decocms 4.499.4 → 4.500.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 (374) hide show
  1. package/dist/client/assets/{ActiveShapeUtils-CdFbjrR7.js → ActiveShapeUtils-CHPU_j8T.js} +1 -1
  2. package/dist/client/assets/{AlertCircle-D64F5QZT.js → AlertCircle-CgfWDsMW.js} +1 -1
  3. package/dist/client/assets/{AreaChart-CYq0YnIM.js → AreaChart-CZuIkHuk.js} +1 -1
  4. package/dist/client/assets/{ArrowLeft-EtQNZvkL.js → ArrowLeft-BkyozCr0.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-BmL0BCqN.js → ArrowUp-C0O7U47F.js} +1 -1
  6. package/dist/client/assets/{BarChart-BUo0UZBI.js → BarChart-D_Vp8_nk.js} +1 -1
  7. package/dist/client/assets/{Building02-BYNzIC0_.js → Building02-C5UvSZSt.js} +1 -1
  8. package/dist/client/assets/{CategoricalChart-gICvYmdu.js → CategoricalChart-CYT1jRTo.js} +1 -1
  9. package/dist/client/assets/{CheckCircle-CH2lIoTv.js → CheckCircle-B1cLRmIj.js} +1 -1
  10. package/dist/client/assets/{ChevronSelectorVertical-CKkMIQxq.js → ChevronSelectorVertical-bEeSv3mr.js} +1 -1
  11. package/dist/client/assets/{ChevronUp-DAOjkMPN.js → ChevronUp-D_qU7VrJ.js} +1 -1
  12. package/dist/client/assets/{Copy01-m_uwkeCD.js → Copy01-CT_cEqll.js} +1 -1
  13. package/dist/client/assets/{CreditCard01-KdIaDPg-.js → CreditCard01-DFGzM4td.js} +1 -1
  14. package/dist/client/assets/{DotsVertical-KRHoqp1L.js → DotsVertical-CGu7Zbqo.js} +1 -1
  15. package/dist/client/assets/{ErrorBarContext-DIkwMkDv.js → ErrorBarContext-BOQmu79L.js} +1 -1
  16. package/dist/client/assets/{Globe04-CHfMY--P.js → Globe04-DtoCZsmb.js} +1 -1
  17. package/dist/client/assets/{Image01-B9K7stDA.js → Image01-CyU1b2Nz.js} +1 -1
  18. package/dist/client/assets/{Key01-c7pIbph9.js → Key01-CV4MPPMx.js} +1 -1
  19. package/dist/client/assets/{Link01-DTA9h0Tu.js → Link01-BL0KHGWk.js} +1 -1
  20. package/dist/client/assets/{LinkBroken01-mDg_NFsQ.js → LinkBroken01-CImL6HGl.js} +1 -1
  21. package/dist/client/assets/{Monitor01-tGDWsmdz.js → Monitor01-jDiltU3l.js} +1 -1
  22. package/dist/client/assets/{Play-BLgdJi2k.js → Play-HeD-LWQ6.js} +1 -1
  23. package/dist/client/assets/{Plus-pPXfDuHo.js → Plus-BzLmRH_e.js} +1 -1
  24. package/dist/client/assets/{SearchMd-DeQ9Yg2y.js → SearchMd-X-m-ot0f.js} +1 -1
  25. package/dist/client/assets/{Sector-BRuBdQGv.js → Sector-Dk1WFIe-.js} +1 -1
  26. package/dist/client/assets/{ShoppingBag01-B29gM6zx.js → ShoppingBag01-C30WMfg1.js} +1 -1
  27. package/dist/client/assets/{Sun-D1zmKedp.js → Sun-D5cuTnns.js} +1 -1
  28. package/dist/client/assets/{SwitchHorizontal01-DqVKqG_v.js → SwitchHorizontal01-iT36Ixqz.js} +1 -1
  29. package/dist/client/assets/{Tool01-lGWsEi__.js → Tool01-BLdqmAM-.js} +1 -1
  30. package/dist/client/assets/{Trash01-DiDmAdCb.js → Trash01-DkcAHDGj.js} +1 -1
  31. package/dist/client/assets/{Upload01-DMts0djm.js → Upload01-CJxfk4_B.js} +1 -1
  32. package/dist/client/assets/{User01-_d4aL8so.js → User01-CuJbE_Yd.js} +1 -1
  33. package/dist/client/assets/{UserSquare-DEMY8dZu.js → UserSquare-BlSFjBrQ.js} +1 -1
  34. package/dist/client/assets/{Users01-BXstoO15.js → Users01-CgCEjxiR.js} +1 -1
  35. package/dist/client/assets/{XAxis-D8Y5Kl9D.js → XAxis-B6hTknR7.js} +1 -1
  36. package/dist/client/assets/{XClose-2vYA1mGz.js → XClose-BcQlXPoY.js} +1 -1
  37. package/dist/client/assets/{ZoomOut-Dncux2m4.js → ZoomOut-C_NtAfgt.js} +1 -1
  38. package/dist/client/assets/{access-gate-D8G3JOM8.js → access-gate-0Qu33vtT.js} +1 -1
  39. package/dist/client/assets/{add-connection-dialog-B5koNYc3.js → add-connection-dialog-CmVGiYmi.js} +1 -1
  40. package/dist/client/assets/{agent-analytics-DLUHcg3e.js → agent-analytics-DbQCZ1PQ.js} +1 -1
  41. package/dist/client/assets/agent-app-BExNHlBs.js +1 -0
  42. package/dist/client/assets/{agent-assets-B1bgJ5fo.js → agent-assets-B-t0qw5_.js} +1 -1
  43. package/dist/client/assets/{agent-automation-Bv-uIzMa.js → agent-automation-AdWBGK9-.js} +1 -1
  44. package/dist/client/assets/{agent-automations-DF7i-4sf.js → agent-automations-x2lM3jDX.js} +1 -1
  45. package/dist/client/assets/{agent-connect-sources-lkHg-cNh.js → agent-connect-sources-DygiFIri.js} +1 -1
  46. package/dist/client/assets/agent-deck-GAA8uH06.js +1 -0
  47. package/dist/client/assets/{agent-e2e-B14Xfx41.js → agent-e2e-CDURPj47.js} +1 -1
  48. package/dist/client/assets/{agent-experiments-DZm0rMa9.js → agent-experiments-BIa2lB5Q.js} +1 -1
  49. package/dist/client/assets/{agent-file-DqhHVftY.js → agent-file-BKXQWZUy.js} +1 -1
  50. package/dist/client/assets/{agent-hosting-DW8hkmOy.js → agent-hosting-BYQZVYMZ.js} +1 -1
  51. package/dist/client/assets/{agent-icon-DsEoh1uc.js → agent-icon-CsQzAnP1.js} +1 -1
  52. package/dist/client/assets/agent-library-CJXihsv5.js +1 -0
  53. package/dist/client/assets/agent-library-file-Cnv04MVV.js +1 -0
  54. package/dist/client/assets/{agent-monitor-AJmZ909K.js → agent-monitor-CCT32NKJ.js} +1 -1
  55. package/dist/client/assets/{agent-overview-C_GU16D4.js → agent-overview-dfgPX_7d.js} +1 -1
  56. package/dist/client/assets/agent-settings-BTMD0j_l.js +1 -0
  57. package/dist/client/assets/{agent-site-editor-DEB1cxAk.js → agent-site-editor-CG3fYjTa.js} +1 -1
  58. package/dist/client/assets/agent-site-editor-code-Crxw0pRq.js +2 -0
  59. package/dist/client/assets/{agent-site-editor-content-Dz7QiUBS.js → agent-site-editor-content-5eCWHoNS.js} +3 -3
  60. package/dist/client/assets/{agent-site-editor-preview-Bmq9D0yU.js → agent-site-editor-preview-uwuaRHqi.js} +3 -3
  61. package/dist/client/assets/agent-view-DVbx7Not.js +1 -0
  62. package/dist/client/assets/{agent-view-guard-CXRvnSDZ.js → agent-view-guard-e44iAytb.js} +1 -1
  63. package/dist/client/assets/{agents-list-CsftxeY4.js → agents-list-C2x26zj4.js} +1 -1
  64. package/dist/client/assets/ai-providers-DwXqL2iz.js +6 -0
  65. package/dist/client/assets/{alert-Dy4dU1R7.js → alert-DYD14Lxr.js} +1 -1
  66. package/dist/client/assets/{alert-dialog-BURK0-VV.js → alert-dialog-D2yDyccd.js} +1 -1
  67. package/dist/client/assets/{analytics-sections-DEh2Id4y.js → analytics-sections-CYXgA9AC.js} +1 -1
  68. package/dist/client/assets/api-keys-B_VU2t2_.js +1 -0
  69. package/dist/client/assets/{api-keys-CjTAbVY8.js → api-keys-BtQl5Awe.js} +1 -1
  70. package/dist/client/assets/app-editor-fWZMbht-.js +1 -0
  71. package/dist/client/assets/{asset-utils-CAN25Z2R.js → asset-utils-cuI-wo7N.js} +1 -1
  72. package/dist/client/assets/{auth-4ol_FgC8.js → auth-CsAAW7Ar.js} +1 -1
  73. package/dist/client/assets/{auth-catchall-DxIzjexT.js → auth-catchall-CDMks_Rc.js} +1 -1
  74. package/dist/client/assets/{auth-entry-Duu0pw9M.js → auth-entry-Cwn8f6E3.js} +1 -1
  75. package/dist/client/assets/{auth-split-layout-DTCIfCq3.js → auth-split-layout-DFsDNY_O.js} +1 -1
  76. package/dist/client/assets/{authenticate-and-persist-oauth-DhKApzWO.js → authenticate-and-persist-oauth-HfpfV8ZS.js} +1 -1
  77. package/dist/client/assets/{automation-list-row-Cdl0VdqB.js → automation-list-row-Bgtl2dei.js} +1 -1
  78. package/dist/client/assets/{automation-runs-DYfkPQkf.js → automation-runs-CBT3E_fm.js} +1 -1
  79. package/dist/client/assets/{automations-C09hGDxa.js → automations-BSD8vInf.js} +1 -1
  80. package/dist/client/assets/{autosend-CZXcTLSS.js → autosend-8ZqTuUx9.js} +1 -1
  81. package/dist/client/assets/{avatar-NvpT5YGL.js → avatar-Da-P84-z.js} +1 -1
  82. package/dist/client/assets/{badge-BeAl2FZH.js → badge-CJ5q8uJu.js} +1 -1
  83. package/dist/client/assets/{block-document-DZ5eZnd4.js → block-document-Drzpg_bb.js} +1 -1
  84. package/dist/client/assets/{blocks-preview-workspace-context-DZFHbEt5.js → blocks-preview-workspace-context-CJnlWxc-.js} +1 -1
  85. package/dist/client/assets/{blog-schema-CW5b1zW6.js → blog-schema-WI1e8zgj.js} +1 -1
  86. package/dist/client/assets/{board-analytics-Dxe4o8ip.js → board-analytics-Cla3ZHOc.js} +1 -1
  87. package/dist/client/assets/{buckets-CHH4zUVE.js → buckets-BO0Sw74J.js} +1 -1
  88. package/dist/client/assets/{build-improve-prompt-doc-DtDq3oLF.js → build-improve-prompt-doc-BWoapP6S.js} +1 -1
  89. package/dist/client/assets/{calendar-BTm6tG9I.js → calendar-DKYy6uOJ.js} +1 -1
  90. package/dist/client/assets/{capability-load-error-_NmD-cOl.js → capability-load-error-DGJphxbe.js} +1 -1
  91. package/dist/client/assets/{category-editor-DYUGLxsQ.js → category-editor-C6uMv0OA.js} +1 -1
  92. package/dist/client/assets/{chart-Ca9eR_5Y.js → chart-CUhY88so.js} +1 -1
  93. package/dist/client/assets/chat-context-y8u3K9Tq.js +39 -0
  94. package/dist/client/assets/{chat-draft-CoTQGBD-.js → chat-draft-RqSOe2VX.js} +1 -1
  95. package/dist/client/assets/{checkbox-B5y_PGOi.js → checkbox-cuQOxwwj.js} +1 -1
  96. package/dist/client/assets/{choose-editor-DIX9TXPq.js → choose-editor-DVY0m-0N.js} +1 -1
  97. package/dist/client/assets/{claim-phase-copy-BFw44X02.js → claim-phase-copy-kSJ81npa.js} +1 -1
  98. package/dist/client/assets/{cli-auth-success-C6re7iuj.js → cli-auth-success-BNNiQ0ff.js} +1 -1
  99. package/dist/client/assets/{client-icons-CPh76puz.js → client-icons-k3K_Wm7m.js} +1 -1
  100. package/dist/client/assets/{collapsible-B1qwBokh.js → collapsible-DEfXG6Ht.js} +1 -1
  101. package/dist/client/assets/{collection-detail-wRbiZfyr.js → collection-detail-CUR7b1nw.js} +1 -1
  102. package/dist/client/assets/{collection-display-button-BUb3CJ9K.js → collection-display-button-Bii74DZw.js} +1 -1
  103. package/dist/client/assets/{collection-search-CxS-WOiV.js → collection-search-C-3HPALa.js} +1 -1
  104. package/dist/client/assets/{collection-table-wrapper-DieyB_hA.js → collection-table-wrapper-BI9XAUwm.js} +1 -1
  105. package/dist/client/assets/{collection-tabs-KA7T80MC.js → collection-tabs-BNpEfqyd.js} +1 -1
  106. package/dist/client/assets/{column-rules-CI9Lb7JH.js → column-rules-B7pcw_Gh.js} +1 -1
  107. package/dist/client/assets/{combobox-Dtc7uzBz.js → combobox-ylZ1_mxm.js} +1 -1
  108. package/dist/client/assets/{command-Bv9q3oXB.js → command-d2fvY4gQ.js} +1 -1
  109. package/dist/client/assets/{companion-mcps-section-yLUv_IVZ.js → companion-mcps-section--NCFPgCd.js} +1 -1
  110. package/dist/client/assets/{config-HoNqSkEt.js → config-BDYRd6Wk.js} +1 -1
  111. package/dist/client/assets/{connect-x3ItRenb.js → connect-CKDAuMYC.js} +1 -1
  112. package/dist/client/assets/{connect-layout-CaGlUaZ7.js → connect-layout-Ca1Vr3vz.js} +1 -1
  113. package/dist/client/assets/{connection-C1oBRXZ9.js → connection-DGqqVA7M.js} +1 -1
  114. package/dist/client/assets/{connection-card-ChCwtZgM.js → connection-card-gIhz0wdg.js} +1 -1
  115. package/dist/client/assets/{connection-detail-D2UPCyZx.js → connection-detail-B9omyXwb.js} +1 -1
  116. package/dist/client/assets/{connection-form-helpers-Co-FH2GL.js → connection-form-helpers-A2MriNrX.js} +1 -1
  117. package/dist/client/assets/{connections-dkoZ4UmD.js → connections-Dh4JuodF.js} +1 -1
  118. package/dist/client/assets/{context-L3sdAYq1.js → context-BnF04rBC.js} +1 -1
  119. package/dist/client/assets/{context-menu-ci_wm1iD.js → context-menu-BD-010iM.js} +1 -1
  120. package/dist/client/assets/{core.esm-DBwtvJuA.js → core.esm-BH3HyyF2.js} +1 -1
  121. package/dist/client/assets/{create-organization-dialog-5xMTV1HD.js → create-organization-dialog-DjZlmVnS.js} +1 -1
  122. package/dist/client/assets/{daily-pulse-Daf5yGVF.js → daily-pulse-BXDtpJQU.js} +1 -1
  123. package/dist/client/assets/{device-hint-BrWR2ybl.js → device-hint-CN2khPPs.js} +1 -1
  124. package/dist/client/assets/{discover-DQJMsLOC.js → discover-C-mYnXQB.js} +1 -1
  125. package/dist/client/assets/{domain-settings-BDkTtrtZ.js → domain-settings-BEwECWE8.js} +1 -1
  126. package/dist/client/assets/{drawer-DgE1Osed.js → drawer-DybzZn1x.js} +1 -1
  127. package/dist/client/assets/{editor-Cy4QovB4.js → editor-CBqQFFb9.js} +1 -1
  128. package/dist/client/assets/{empty-state-DYMOp3h6.js → empty-state-B4qRMioD.js} +1 -1
  129. package/dist/client/assets/{empty-state-CUrIt7uA.js → empty-state-b6tRqzU8.js} +1 -1
  130. package/dist/client/assets/{extract-connection-data-CILHH2Xu.js → extract-connection-data-CIO9f-TD.js} +1 -1
  131. package/dist/client/assets/{feature-gate-YfudQg0F.js → feature-gate-ChDRcm7b.js} +1 -1
  132. package/dist/client/assets/{feature-paywall-DRC24-WT.js → feature-paywall-BN5FphJ8.js} +1 -1
  133. package/dist/client/assets/{file-explorer-Dn5VXdTz.js → file-explorer-DCd1-8-d.js} +1 -1
  134. package/dist/client/assets/{file-preview-BOfVvGBK.js → file-preview-CNp5DdHM.js} +1 -1
  135. package/dist/client/assets/{file-share-button-Ds1jkcUw.js → file-share-button-DOQq6Wrq.js} +1 -1
  136. package/dist/client/assets/{file-type-icon-DGZn7b1q.js → file-type-icon-ClWl2ykw.js} +1 -1
  137. package/dist/client/assets/flat-project-DPnFbnmE.js +1 -0
  138. package/dist/client/assets/{folder-icon-NJlrSxZ7.js → folder-icon-BO5Hlc-b.js} +1 -1
  139. package/dist/client/assets/{form-5FKfuXwS.js → form-Dm1N7Fdz.js} +1 -1
  140. package/dist/client/assets/{general-BdG9aUE5.js → general-CszMiv7n.js} +1 -1
  141. package/dist/client/assets/{home-Rt2zQeR1.js → home-DT4jq_ad.js} +1 -1
  142. package/dist/client/assets/{icon-button-BIVgkjge.js → icon-button-UzqZkmgc.js} +1 -1
  143. package/dist/client/assets/{index-DQzSsgCm.js → index-B4rQ5Ej9.js} +1 -1
  144. package/dist/client/assets/{index-urrD3slz.js → index-BA22z-aT.js} +1 -1
  145. package/dist/client/assets/{index-807EZ9UE.js → index-BkaImz4P.js} +1 -1
  146. package/dist/client/assets/{index-BFhkoNSH.js → index-CeuDCj_w.js} +1 -1
  147. package/dist/client/assets/{index-CPTOUBV5.js → index-ChAMt2d-.js} +1 -1
  148. package/dist/client/assets/{index-CVUxtkJO.js → index-ClN0hPjk.js} +1 -1
  149. package/dist/client/assets/{index-Cgvxdf_Q.js → index-D984WV3U.js} +39 -39
  150. package/dist/client/assets/{index-DCV1G4Vi.js → index-DXSiv_GM.js} +3 -3
  151. package/dist/client/assets/{index-KYovqQVt.js → index-DiGKvbHH.js} +1 -1
  152. package/dist/client/assets/{index-DsrMcmtK.js → index-Dq9ehfIf.js} +1 -1
  153. package/dist/client/assets/{index-D2YD4wQb.js → index-QP5dyfS7.js} +1 -1
  154. package/dist/client/assets/{index-CnJlMbWp.js → index-ba_EB2Zw.js} +1 -1
  155. package/dist/client/assets/{index-redirect-Bn1MaA0x.js → index-redirect-8HspsPDC.js} +1 -1
  156. package/dist/client/assets/{index-DPnYGLNH.js → index-z9lysifj.js} +1 -1
  157. package/dist/client/assets/{infiniteQueryObserver-DwnyW_tg.js → infiniteQueryObserver-Bmwf-SCt.js} +1 -1
  158. package/dist/client/assets/{infra-billing-C7Gt7pP6.js → infra-billing-DlP3vLBN.js} +1 -1
  159. package/dist/client/assets/{input-D1FQHGyA.js → input-CG0PFhS0.js} +1 -1
  160. package/dist/client/assets/input-C_t2NUbp.js +17 -0
  161. package/dist/client/assets/{integration-icon-B9BPa6xZ.js → integration-icon-B4EO_1fi.js} +1 -1
  162. package/dist/client/assets/{jira-icon-BPd8rXDD.js → jira-icon-DAy3a9S9.js} +1 -1
  163. package/dist/client/assets/{label-8JLWVV6w.js → label-BszVxI8j.js} +1 -1
  164. package/dist/client/assets/{layout-CteePcNB.js → layout-BsHSUbxL.js} +1 -1
  165. package/dist/client/assets/{legacy-agents-deep-BU9G_qyx.js → legacy-agents-deep-DCBghYlF.js} +1 -1
  166. package/dist/client/assets/{legacy-main-redirect--KMXMJZX.js → legacy-main-redirect-C_9Fyd8e.js} +1 -1
  167. package/dist/client/assets/library-C2ZRDo2P.js +1 -0
  168. package/dist/client/assets/{library-tab-BFAr00ch.js → library-tab-CZxlOQVR.js} +1 -1
  169. package/dist/client/assets/{login-DI6I_2QT.js → login-CoP-xpgM.js} +1 -1
  170. package/dist/client/assets/{markdown-uBKSlcRL.js → markdown-C8b2SRJt.js} +1 -1
  171. package/dist/client/assets/{mcp-app-renderer-CErXUSq-.js → mcp-app-renderer-qrtR9Z1h.js} +1 -1
  172. package/dist/client/assets/{mcp-oauth-AlD-TzSE.js → mcp-oauth--_7bIOac.js} +1 -1
  173. package/dist/client/assets/{mcp-oauth-sRx18rfQ.js → mcp-oauth-BIr9y8Ow.js} +1 -1
  174. package/dist/client/assets/{members-CPBPwKZ1.js → members-DX1jVu8f.js} +1 -1
  175. package/dist/client/assets/{memory-CJihkZvO.js → memory-DGqh7MMN.js} +1 -1
  176. package/dist/client/assets/{mini-report-page-DFzjTxjy.js → mini-report-page-DeT726Qz.js} +1 -1
  177. package/dist/client/assets/{mock-board-biK2PfSA.js → mock-board-DiXeO9l9.js} +1 -1
  178. package/dist/client/assets/{monaco-editor-BsWCzYXO.js → monaco-editor-BmtkWb9u.js} +1 -1
  179. package/dist/client/assets/{monitoring-stats-row-IO7yauKf.js → monitoring-stats-row-CROD4XJo.js} +1 -1
  180. package/dist/client/assets/{multi-select-BNjoAfeC.js → multi-select-COcK2vp_.js} +1 -1
  181. package/dist/client/assets/{mustache-rvHVzPnO.js → mustache-B3B0mlPh.js} +1 -1
  182. package/dist/client/assets/{new-project-dialog-BNMMgasu.js → new-project-dialog-CQomS8HX.js} +1 -1
  183. package/dist/client/assets/{oauth-callback-BeTiKSrh.js → oauth-callback-BAjl2hrI.js} +1 -1
  184. package/dist/client/assets/{oauth-callback-ai-provider-DDLk0zHp.js → oauth-callback-ai-provider-Dfitdf7t.js} +1 -1
  185. package/dist/client/assets/{onboarding-BjDnSa2-.js → onboarding-DuW4ryZs.js} +1 -1
  186. package/dist/client/assets/{openai-conversation-B69u3s77.js → openai-conversation-klLH_0HC.js} +1 -1
  187. package/dist/client/assets/{optimistic-project-sidebar-views-bgF9KdQy.js → optimistic-project-sidebar-views-CaTvAXwY.js} +1 -1
  188. package/dist/client/assets/{organization-choice-udNpLdVM.js → organization-choice-DtdFVbBZ.js} +1 -1
  189. package/dist/client/assets/{orgs-BXO2vhOY.js → orgs-BBq2qsW_.js} +1 -1
  190. package/dist/client/assets/{page-seo-form-zD7DmA6N.js → page-seo-form-BJN0O5_N.js} +1 -1
  191. package/dist/client/assets/{pair-DIssvTMn.js → pair-D3dg1naQ.js} +1 -1
  192. package/dist/client/assets/{plan-ladder-CAWIPKc5.js → plan-ladder-DUQWM1mB.js} +1 -1
  193. package/dist/client/assets/{popover-13pjOuZU.js → popover-9tPVAoH5.js} +1 -1
  194. package/dist/client/assets/{post-calendar-rAhG8kBe.js → post-calendar-D9oVrQhS.js} +1 -1
  195. package/dist/client/assets/{post-editor-B6gbS3Ci.js → post-editor-C2tsxtV4.js} +1 -1
  196. package/dist/client/assets/{preview-content-DLC7444f.js → preview-content-BIpDQXJu.js} +1 -1
  197. package/dist/client/assets/{preview-dialog-CjNOBFAp.js → preview-dialog-CH8GibCu.js} +1 -1
  198. package/dist/client/assets/{preview-panel-ClNcZ7Jq.js → preview-panel-CCFjojUE.js} +1 -1
  199. package/dist/client/assets/{product-picker-dialog-9jWzS0xD.js → product-picker-dialog-BoGvkEwe.js} +1 -1
  200. package/dist/client/assets/{profile-szk-J5OE.js → profile-BKpvrH_P.js} +1 -1
  201. package/dist/client/assets/{project-app-view-BScfdH5R.js → project-app-view-0HH2t56F.js} +1 -1
  202. package/dist/client/assets/{project-feed-D8bVgmrv.js → project-feed-d2kKPzOq.js} +1 -1
  203. package/dist/client/assets/{project-icon-BEB7bo0T.js → project-icon-DeUPWsC_.js} +1 -1
  204. package/dist/client/assets/project-reports-7r3buXCO.js +1 -0
  205. package/dist/client/assets/project-tasks-Dp-gjCz7.js +1 -0
  206. package/dist/client/assets/{projects-zc5zuYNt.js → projects-dI6btB5J.js} +1 -1
  207. package/dist/client/assets/{projects-empty-state-GodmIrGy.js → projects-empty-state-DAa4wzAP.js} +1 -1
  208. package/dist/client/assets/{prompts-C1AIYXZy.js → prompts-D3LKfm14.js} +1 -1
  209. package/dist/client/assets/record-editor-BDN9ztWf.js +1 -0
  210. package/dist/client/assets/redirect-editor-DBLjC8Z9.js +1 -0
  211. package/dist/client/assets/{reports-Cd8g8CNj.js → reports-B5aLNQGc.js} +1 -1
  212. package/dist/client/assets/reports-CvKnRIKX.js +1 -0
  213. package/dist/client/assets/{reports-onboarding-8b6ysmBv.js → reports-onboarding-D7Nsv0TX.js} +1 -1
  214. package/dist/client/assets/{reports-tab-BI41LuK6.js → reports-tab-bgB5WodW.js} +2 -2
  215. package/dist/client/assets/{repositories-SY3BCP97.js → repositories-Du_yi0rf.js} +1 -1
  216. package/dist/client/assets/{repository-binding-OIkiiBn_.js → repository-binding-CrIQbyJh.js} +1 -1
  217. package/dist/client/assets/{repository-import-picker-BD05Qbz9.js → repository-import-picker-n3EYoF9U.js} +1 -1
  218. package/dist/client/assets/{repository-picker-DHYERC22.js → repository-picker-CjDs0ici.js} +1 -1
  219. package/dist/client/assets/{require-capability-HLF-G2Gn.js → require-capability-BDLtPaM5.js} +1 -1
  220. package/dist/client/assets/{required-auth-layout-COVLs567.js → required-auth-layout-CTKRCLps.js} +1 -1
  221. package/dist/client/assets/{reset-password-D3tROrku.js → reset-password-XiFYESJ5.js} +1 -1
  222. package/dist/client/assets/{resizable-CYK8YYKx.js → resizable-C3INc4c7.js} +1 -1
  223. package/dist/client/assets/{resolve-tab-icon-DRYlqyoT.js → resolve-tab-icon-DuWtsFCw.js} +1 -1
  224. package/dist/client/assets/{review-settings-DpOwh6kJ.js → review-settings-BCvIwiTZ.js} +1 -1
  225. package/dist/client/assets/{rich-text-link-control-yKpCLxk-.js → rich-text-link-control-B2KML_yp.js} +1 -1
  226. package/dist/client/assets/roles-B5KIhtIL.js +1 -0
  227. package/dist/client/assets/{route-Dr_7m0Tv.js → route-BwivpFZQ.js} +1 -1
  228. package/dist/client/assets/route-Fylk_TVt.js +1 -0
  229. package/dist/client/assets/route-nHlGvnBX.js +1 -0
  230. package/dist/client/assets/{runnable-block-editor-B77rsBAp.js → runnable-block-editor-v2diysES.js} +1 -1
  231. package/dist/client/assets/{sandbox-lifecycle-context-cevNxEEE.js → sandbox-lifecycle-context-CtphXAh2.js} +1 -1
  232. package/dist/client/assets/schema-BMqZTcjW.js +1 -0
  233. package/dist/client/assets/{scroll-area-BerbxwSa.js → scroll-area-B9YHNZjL.js} +1 -1
  234. package/dist/client/assets/{search-input-Eqbgvt1Z.js → search-input-BJ-xb_6w.js} +1 -1
  235. package/dist/client/assets/{search-toggle-DjnCmeKu.js → search-toggle-DviE2KK7.js} +1 -1
  236. package/dist/client/assets/{secret-picker-D_IInK4O.js → secret-picker-MDfAhcKZ.js} +1 -1
  237. package/dist/client/assets/{secrets-ChTLi-FR.js → secrets-BWXZ9ADR.js} +1 -1
  238. package/dist/client/assets/{sections-editor-BcCRV-fD.js → sections-editor-DRPdyBr7.js} +1 -1
  239. package/dist/client/assets/{select-CTpu637-.js → select-Cmhyur65.js} +1 -1
  240. package/dist/client/assets/{select-model-BwS3mp6E.js → select-model-DlhjRyXh.js} +1 -1
  241. package/dist/client/assets/{seo-editor-CL5enOUs.js → seo-editor-Cslo5GyR.js} +1 -1
  242. package/dist/client/assets/{separator-BHuQN-Ab.js → separator-XBrskDk1.js} +1 -1
  243. package/dist/client/assets/{settings-tab-CHZtgFBe.js → settings-tab-Bhjq-v1u.js} +1 -1
  244. package/dist/client/assets/{sheet-C6FCafA6.js → sheet-bMLuzpcl.js} +1 -1
  245. package/dist/client/assets/{shell-layout-CGyXmROi.js → shell-layout-CX2kb4As.js} +1 -1
  246. package/dist/client/assets/{skills-F5Uw4Pv1.js → skills-smEsZOyf.js} +1 -1
  247. package/dist/client/assets/{slider-d3xYNxIE.js → slider-xDThp8gG.js} +1 -1
  248. package/dist/client/assets/{sortable.esm-C6z3vfiq.js → sortable.esm-C4yl7HRk.js} +1 -1
  249. package/dist/client/assets/{sso-CmIeF-7l.js → sso-D5XcZRGg.js} +1 -1
  250. package/dist/client/assets/{suggestion-TsE32nPi.js → suggestion-B9eDgKDC.js} +1 -1
  251. package/dist/client/assets/{switch-TCI26U0b.js → switch-D6SJRikA.js} +1 -1
  252. package/dist/client/assets/{symbol-Bmeb5mrx.js → symbol-8pL_EbyE.js} +1 -1
  253. package/dist/client/assets/{synced-repos-CFRe6JC2.js → synced-repos-CvOi5sDr.js} +1 -1
  254. package/dist/client/assets/{tab-icon-glyph-gi6BIarB.js → tab-icon-glyph-B5Fq5S50.js} +1 -1
  255. package/dist/client/assets/{table-pVUW2rwH.js → table-BVuWDAYC.js} +1 -1
  256. package/dist/client/assets/{tabs-BE3vAj8m.js → tabs-CJiVz1UY.js} +1 -1
  257. package/dist/client/assets/{task-board-90M9g_fi.js → task-board-BypYXBtD.js} +1 -1
  258. package/dist/client/assets/{task-route-CS8UQngR.js → task-route-CxLDxVTy.js} +1 -1
  259. package/dist/client/assets/{task-status-C9ibacuz.js → task-status-DR_ZGtmT.js} +1 -1
  260. package/dist/client/assets/taskboard-analytics-B5tiovFi.js +1 -0
  261. package/dist/client/assets/tasks-C5eWHl6J.js +1 -0
  262. package/dist/client/assets/{tasks-BqDBNIqA.js → tasks-pRlF9aKa.js} +1 -1
  263. package/dist/client/assets/{textarea-BpAK_nVQ.js → textarea-C3QvYVs6.js} +1 -1
  264. package/dist/client/assets/{thread-analytics-DIkW4P-1.js → thread-analytics-CVYD56Lv.js} +1 -1
  265. package/dist/client/assets/{thread-button-EBdfzXFx.js → thread-button-Dnwv5gXz.js} +1 -1
  266. package/dist/client/assets/{thread-intent-CRpeRnx2.js → thread-intent-BouO_OhM.js} +1 -1
  267. package/dist/client/assets/{thread-route-zMAwqLeS.js → thread-route-CzzxiajL.js} +1 -1
  268. package/dist/client/assets/{thread-route-Ck1dYsiI.js → thread-route-Dp3ppEkH.js} +1 -1
  269. package/dist/client/assets/{thread-sheet-body-CT23RfVg.js → thread-sheet-body-Z8jKG5ht.js} +1 -1
  270. package/dist/client/assets/{time-range-picker-dZaUQ5ot.js → time-range-picker-DE7fkhif.js} +1 -1
  271. package/dist/client/assets/{toggle-group-Cmucm9d_.js → toggle-group-BxPPN08u.js} +1 -1
  272. package/dist/client/assets/{tool-namespace-W6oSGBwY.js → tool-namespace-C5Z8tVC2.js} +1 -1
  273. package/dist/client/assets/{toolbar-icon-button-D_zSUxYE.js → toolbar-icon-button-539CZpjb.js} +1 -1
  274. package/dist/client/assets/{tooltip-CiYSgLFK.js → tooltip-CfH7_UR9.js} +1 -1
  275. package/dist/client/assets/{tooltipContext-Daig5_qo.js → tooltipContext-Dt4926A5.js} +1 -1
  276. package/dist/client/assets/{track-BNVgjI-e.js → track-D8kXLyAV.js} +1 -1
  277. package/dist/client/assets/{types-DzWYDlOK.js → types-PjheW3sm.js} +1 -1
  278. package/dist/client/assets/{url-slug-BtTWMETT.js → url-slug-D7hdnLPq.js} +1 -1
  279. package/dist/client/assets/{usage-stats-BZiqC0Eq.js → usage-stats-BcmMK-YO.js} +1 -1
  280. package/dist/client/assets/{use-ai-providers-D_-p2XHZ.js → use-ai-providers-CeHzBmwD.js} +1 -1
  281. package/dist/client/assets/{use-automations-AknZaEXT.js → use-automations-DLk4Zq7Y.js} +1 -1
  282. package/dist/client/assets/{use-autosave-DOY-TitN.js → use-autosave-5IDmaWA6.js} +1 -1
  283. package/dist/client/assets/{use-chat-layout-state-BGJ7hecp.js → use-chat-layout-state-C4y1ngrz.js} +1 -1
  284. package/dist/client/assets/{use-chat-navigation-Dn06-EpQ.js → use-chat-navigation-pwxRnoh5.js} +1 -1
  285. package/dist/client/assets/{use-clock-tick-vjL0x3S6.js → use-clock-tick-DcGl_y28.js} +1 -1
  286. package/dist/client/assets/{use-connect-companion-Cfgp9MjD.js → use-connect-companion-DmQTaaXP.js} +1 -1
  287. package/dist/client/assets/{use-connection-BReUf0ym.js → use-connection-B96BwbcD.js} +1 -1
  288. package/dist/client/assets/{use-copy-BA_1zlIX.js → use-copy-COXbZ1Gm.js} +1 -1
  289. package/dist/client/assets/{use-create-virtual-mcp-mFuwkPSo.js → use-create-virtual-mcp-BuymUE2O.js} +1 -1
  290. package/dist/client/assets/{use-date-fns-locale-BtKmaD89.js → use-date-fns-locale-D2o3Y11s.js} +1 -1
  291. package/dist/client/assets/{use-debounced-autosave-BgCQLSRj.js → use-debounced-autosave-Yq56G4iL.js} +1 -1
  292. package/dist/client/assets/{use-debounced-value-DppivyxK.js → use-debounced-value-BZK5uiHm.js} +1 -1
  293. package/dist/client/assets/{use-deco-credits-C6g5nuGf.js → use-deco-credits-COvQvXnV.js} +1 -1
  294. package/dist/client/assets/{use-decopilot-events-BAyb-mQF.js → use-decopilot-events-BDPMNEXz.js} +1 -1
  295. package/dist/client/assets/{use-delete-connection-xCFE_9as.js → use-delete-connection-DT6vWhGX.js} +1 -1
  296. package/dist/client/assets/{use-deployment-admin-k8c5st8B.js → use-deployment-admin-CoVHfZYT.js} +1 -1
  297. package/dist/client/assets/{use-ensure-project-folder-C-CBLCjO.js → use-ensure-project-folder-peTgVhMP.js} +1 -1
  298. package/dist/client/assets/{use-fast-preview-draft-url-DpZxJT8R.js → use-fast-preview-draft-url-BDHxUOYh.js} +1 -1
  299. package/dist/client/assets/{use-file-configs-D-lKeneW.js → use-file-configs-DoW1VYTz.js} +1 -1
  300. package/dist/client/assets/{use-infinite-scroll-BKpwTLbY.js → use-infinite-scroll-1WuTfkvL.js} +1 -1
  301. package/dist/client/assets/{use-join-requests-BFtAo-Nh.js → use-join-requests-uEHIq-wW.js} +1 -1
  302. package/dist/client/assets/{use-main-panel-tabs-DeC1fHi6.js → use-main-panel-tabs-eZgXms3O.js} +1 -1
  303. package/dist/client/assets/{use-mcp-auth-status-I_Qut9IE.js → use-mcp-auth-status-GSONXJ6Y.js} +1 -1
  304. package/dist/client/assets/{use-mcp-client-BnJ4CmVv.js → use-mcp-client-D8-rDWEf.js} +1 -1
  305. package/dist/client/assets/{use-mcp-prompts-pprT3y3c.js → use-mcp-prompts-9xOCFCVM.js} +1 -1
  306. package/dist/client/assets/{use-mcp-tools-nBYl_9Cj.js → use-mcp-tools-BYNW1IvH.js} +1 -1
  307. package/dist/client/assets/{use-members-CjMEwjKK.js → use-members-DuiAoVt0.js} +1 -1
  308. package/dist/client/assets/{use-mobile-CaE2VxXh.js → use-mobile-Cz-N6vVG.js} +1 -1
  309. package/dist/client/assets/{use-navigate-to-agent-C9CNI3wT.js → use-navigate-to-agent-CWPsHr0w.js} +1 -1
  310. package/dist/client/assets/use-new-blocks-editor-B5DYqQrS.js +1 -0
  311. package/dist/client/assets/{use-open-billing-url-C77XyoLh.js → use-open-billing-url-CHALVI7F.js} +1 -1
  312. package/dist/client/assets/{use-org-auth-client-CA-MyDFx.js → use-org-auth-client-DQ6vSNUo.js} +1 -1
  313. package/dist/client/assets/{use-org-fs-BvswiWhM.js → use-org-fs-UdNnQzcG.js} +1 -1
  314. package/dist/client/assets/{use-org-repo-syncs-BZsUkIPj.js → use-org-repo-syncs-CE9Yx0AE.js} +1 -1
  315. package/dist/client/assets/{use-org-sso-uVC0Aeyi.js → use-org-sso-BRZ2xqKg.js} +1 -1
  316. package/dist/client/assets/{use-organization-roles-DHpuUweO.js → use-organization-roles-5fHLGM-_.js} +1 -1
  317. package/dist/client/assets/{use-organization-settings-CcdWKIZG.js → use-organization-settings-BEUCQxuY.js} +1 -1
  318. package/dist/client/assets/{use-panel-navigate-BwaxzeCI.js → use-panel-navigate-B348HV-V.js} +1 -1
  319. package/dist/client/assets/{use-project-scope-DIXfNogh.js → use-project-scope-CJSvss5q.js} +1 -1
  320. package/dist/client/assets/{use-releases-By4PMCal.js → use-releases-DRDEblSZ.js} +1 -1
  321. package/dist/client/assets/{use-reports-diagnostic-Bh5K_gdR.js → use-reports-diagnostic-BQoNp5Lt.js} +1 -1
  322. package/dist/client/assets/{use-sandbox-events-BuzKGb6t.js → use-sandbox-events-afI4fSp9.js} +1 -1
  323. package/dist/client/assets/{use-secrets-Be9wdGLq.js → use-secrets-6NdpjMzr.js} +1 -1
  324. package/dist/client/assets/{use-section-preview-base-Dah5aW9A.js → use-section-preview-base-Du6Z-MWu.js} +1 -1
  325. package/dist/client/assets/{use-tags-CPiAfrfw.js → use-tags-Dkeb0fZQ.js} +1 -1
  326. package/dist/client/assets/{use-task-board-analytics-BzVxQLaZ.js → use-task-board-analytics-BsZ5fOsz.js} +1 -1
  327. package/dist/client/assets/{use-task-board-events-AoW8CB16.js → use-task-board-events-BZPWVwkQ.js} +1 -1
  328. package/dist/client/assets/{use-task-board-item-prs-Cm1nLJbF.js → use-task-board-item-prs-6pzJEXZH.js} +1 -1
  329. package/dist/client/assets/{use-task-board-items-YxLDtbf_.js → use-task-board-items-DDExwWH5.js} +1 -1
  330. package/dist/client/assets/{use-task-metadata-B9JzZCwZ.js → use-task-metadata-QX8Xm3F2.js} +1 -1
  331. package/dist/client/assets/{use-thread-analytics-DKolGKrG.js → use-thread-analytics-4YJ0wSzW.js} +1 -1
  332. package/dist/client/assets/{use-thread-outputs-BeW_ZEj9.js → use-thread-outputs-BaagK6yF.js} +1 -1
  333. package/dist/client/assets/useInfiniteQuery-BgN51nwo.js +1 -0
  334. package/dist/client/assets/{useQueries-C5yFykqS.js → useQueries-BeM3koNG.js} +1 -1
  335. package/dist/client/assets/useSuspenseInfiniteQuery-DnCmqaG2.js +1 -0
  336. package/dist/client/assets/{users-BPaHw_X_.js → users-DA2VVqSS.js} +1 -1
  337. package/dist/client/assets/{utils-D8EfxtqS.js → utils-DGIwcQET.js} +1 -1
  338. package/dist/client/assets/{variant-calendar-Bo3CCQPM.js → variant-calendar-B2z-zkHQ.js} +1 -1
  339. package/dist/client/assets/{variant-matcher-override-B8Xy0hwV.js → variant-matcher-override-WuIO8MOW.js} +1 -1
  340. package/dist/client/assets/{view-mode-toggle-CHGut8Gu.js → view-mode-toggle-DA847UFd.js} +1 -1
  341. package/dist/client/assets/{virtual-mcp-DgndW5tn.js → virtual-mcp-ySkvJvwZ.js} +1 -1
  342. package/dist/client/assets/{watch-sse-pool-DNUoCrky.js → watch-sse-pool-jwr9yBFo.js} +1 -1
  343. package/dist/client/index.html +1 -1
  344. package/dist/server/migrate.js +240 -240
  345. package/dist/server/server.js +623 -622
  346. package/package.json +1 -1
  347. package/dist/client/assets/agent-app-DzLJcblb.js +0 -1
  348. package/dist/client/assets/agent-deck-BZEp8fRL.js +0 -1
  349. package/dist/client/assets/agent-library-Pk0IAtu0.js +0 -1
  350. package/dist/client/assets/agent-library-file-Dv8aM-7k.js +0 -1
  351. package/dist/client/assets/agent-settings-OLjHIWXV.js +0 -1
  352. package/dist/client/assets/agent-site-editor-code-CsFcTfpY.js +0 -2
  353. package/dist/client/assets/agent-view-zjcLXSYx.js +0 -1
  354. package/dist/client/assets/ai-providers-BBzQl4jb.js +0 -6
  355. package/dist/client/assets/api-keys-B2p99l9x.js +0 -1
  356. package/dist/client/assets/app-editor-CmySzZMn.js +0 -1
  357. package/dist/client/assets/chat-context-DPuof8Lx.js +0 -39
  358. package/dist/client/assets/flat-project-DohBB_k-.js +0 -1
  359. package/dist/client/assets/input-BvEtvuLy.js +0 -17
  360. package/dist/client/assets/library-Bk-wI1G3.js +0 -1
  361. package/dist/client/assets/project-reports-CYk0gIHi.js +0 -1
  362. package/dist/client/assets/project-tasks-T7wij8vs.js +0 -1
  363. package/dist/client/assets/record-editor-D8HTL-dd.js +0 -1
  364. package/dist/client/assets/redirect-editor-C5Fcvp6l.js +0 -1
  365. package/dist/client/assets/reports-BZvTaNDE.js +0 -1
  366. package/dist/client/assets/roles-H-ySJM8T.js +0 -1
  367. package/dist/client/assets/route-0IOE_iwR.js +0 -1
  368. package/dist/client/assets/route-DYvSeMz7.js +0 -1
  369. package/dist/client/assets/schema-CLUxJ2Aq.js +0 -1
  370. package/dist/client/assets/taskboard-analytics-D8c5pILu.js +0 -1
  371. package/dist/client/assets/tasks-B9K3xklH.js +0 -1
  372. package/dist/client/assets/use-new-blocks-editor-Dhap32-H.js +0 -1
  373. package/dist/client/assets/useInfiniteQuery-CXvSW1zP.js +0 -1
  374. package/dist/client/assets/useSuspenseInfiniteQuery-CFJbE4jf.js +0 -1
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null,x)}var C=(_,x)=>{for(var u in x)Rz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Gz.bind(x,u)})};import{Migrator as Mz,sql as o}from"kysely";var Ex={};C(Ex,{up:()=>Oz,down:()=>Sz});import{sql as nT}from"kysely";async function Oz(_){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",nT`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",nT`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function Sz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var $x={};C($x,{up:()=>fz,down:()=>Az});import{sql as a}from"kysely";async function fz(_){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
2
+ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null,x)}var C=(_,x)=>{for(var u in x)Bz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Oz.bind(x,u)})};import{Migrator as Rz,sql as o}from"kysely";var Ex={};C(Ex,{up:()=>Sz,down:()=>fz});async function Sz(_){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 fz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var $x={};C($x,{up:()=>Az,down:()=>Iz});import{sql as vm}from"kysely";async function Az(_){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",vm`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",vm`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 Px={};C(Px,{up:()=>yz,down:()=>Vz});import{sql as a}from"kysely";async function yz(_){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
3
3
  DROP COLUMN IF EXISTS registry_config,
4
4
  DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
5
5
  BEGIN RETURN value::jsonb;
@@ -14,24 +14,24 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
14
14
  )`.execute(_),await a`DELETE FROM connections
15
15
  WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
16
16
  OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
17
- OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function Az(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Ux={};C(Ux,{up:()=>Iz,down:()=>yz});import{sql as vT}from"kysely";async function Iz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await vT`
17
+ OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function Vz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Ux={};C(Ux,{up:()=>wz,down:()=>kz});import{sql as pm}from"kysely";async function wz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await pm`
18
18
  select organization_id, metadata
19
19
  from connections
20
20
  where connection_type = 'VIRTUAL'
21
21
  and metadata like '%submoduleCredentials%'
22
22
  order by updated_at asc
23
- `.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let m of T){let z=m?.host,E=m?.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,T]of u){let m=JSON.stringify([...T].map(([z,E])=>({host:z,secretId:E})));await vT`
23
+ `.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 pm`
24
24
  insert into organization_settings
25
25
  ("organizationId", submodule_credentials, "createdAt", "updatedAt")
26
- values (${K}, ${m}, ${N}, ${N})
26
+ values (${K}, ${T}, ${N}, ${N})
27
27
  on conflict ("organizationId") do update
28
28
  set submodule_credentials = excluded.submodule_credentials,
29
29
  "updatedAt" = excluded."updatedAt"
30
- `.execute(_)}}async function yz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Jx={};C(Jx,{up:()=>Vz,down:()=>wz});async function Vz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function wz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Qx={};C(Qx,{up:()=>kz,down:()=>nz});import{sql as Px}from"kysely";async function kz(_){await Px`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Px`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Px`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function nz(_){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 Zx={};C(Zx,{up:()=>gz,down:()=>qz});import{sql as G}from"kysely";var vz={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"}},pz={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"}},Xx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function pT(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function gT(_,x){for(let[K,T]of[[G`organization_id || '_commerce-discovery'`,vz],[G`'commerce-discovery_' || organization_id`,pz]])for(let m of["title","description"]){let{from:z,to:E}=pT(T[m],x);await G`
30
+ `.execute(_)}}async function kz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Jx={};C(Jx,{up:()=>nz,down:()=>vz});async function nz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function vz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Xx={};C(Xx,{up:()=>pz,down:()=>gz});import{sql as Qx}from"kysely";async function pz(_){await Qx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Qx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Qx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function gz(_){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 Wx={};C(Wx,{up:()=>cz,down:()=>hz});import{sql as G}from"kysely";var qz={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"}},iz={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"}},Zx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function gm(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function qm(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,qz],[G`'commerce-discovery_' || organization_id`,iz]])for(let T of["title","description"]){let{from:z,to:E}=gm(m[T],x);await G`
31
31
  UPDATE connections
32
- SET ${G.ref(m)} = ${E}
32
+ SET ${G.ref(T)} = ${E}
33
33
  WHERE id = ${K}
34
- AND ${G.ref(m)} = ANY(${G.val(z)}::text[])
34
+ AND ${G.ref(T)} = ANY(${G.val(z)}::text[])
35
35
  `.execute(_)}await G`
36
36
  CREATE OR REPLACE FUNCTION deco_score_try_jsonb(t text)
37
37
  RETURNS jsonb AS $fn$
@@ -41,7 +41,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
41
41
  RETURN NULL;
42
42
  END;
43
43
  $fn$ LANGUAGE plpgsql IMMUTABLE;
44
- `.execute(_);let{from:u,to:N}=pT(Xx.label,x);await G`
44
+ `.execute(_);let{from:u,to:N}=gm(Zx.label,x);await G`
45
45
  WITH agents AS (
46
46
  SELECT id, deco_score_try_jsonb(metadata) AS m
47
47
  FROM connections
@@ -56,7 +56,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
56
56
  (
57
57
  SELECT jsonb_agg(
58
58
  CASE
59
- WHEN v ->> 'toolName' = ${Xx.toolName}
59
+ WHEN v ->> 'toolName' = ${Zx.toolName}
60
60
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
61
61
  THEN v || jsonb_build_object('label', ${N}::text)
62
62
  ELSE v
@@ -72,7 +72,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
72
72
  AND EXISTS (
73
73
  SELECT 1
74
74
  FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
75
- WHERE v ->> 'toolName' = ${Xx.toolName}
75
+ WHERE v ->> 'toolName' = ${Zx.toolName}
76
76
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
77
77
  )
78
78
  )
@@ -80,7 +80,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
80
80
  SET metadata = r.m::text
81
81
  FROM relabeled r
82
82
  WHERE c.id = r.id
83
- `.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function gz(_){await gT(_,"up")}async function qz(_){await gT(_,"down")}var jx={};C(jx,{up:()=>cz,down:()=>hz,ACTIONS:()=>Wx});import{sql as T_}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"],iz=Wx.filter((_)=>_!=="finding_resolved");async function cz(_){await qT(_,Wx)}async function hz(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await qT(_,iz)}async function qT(_,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 Lx={};C(Lx,{up:()=>tz,down:()=>oz});import{sql as B_}from"kysely";async function tz(_){await B_`
83
+ `.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function cz(_){await qm(_,"up")}async function hz(_){await qm(_,"down")}var Lx={};C(Lx,{up:()=>oz,down:()=>az,ACTIONS:()=>jx});import{sql as m_}from"kysely";var jx=["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"],tz=jx.filter((_)=>_!=="finding_resolved");async function oz(_){await im(_,jx)}async function az(_){await m_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await im(_,tz)}async function im(_,x){await m_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await m_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var Fx={};C(Fx,{up:()=>rz,down:()=>lz});import{sql as B_}from"kysely";async function rz(_){await B_`
84
84
  ALTER TABLE org_jira_column_automations
85
85
  ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
86
86
  CONSTRAINT chk_org_jira_column_automations_from_kind
@@ -91,7 +91,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
91
91
  ALTER TABLE org_jira_column_automations
92
92
  DROP CONSTRAINT org_jira_column_automations_pkey,
93
93
  ADD PRIMARY KEY (organization_id, jira_status, from_key)
94
- `.execute(_)}async function oz(_){await B_`
94
+ `.execute(_)}async function lz(_){await B_`
95
95
  DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
96
96
  `.execute(_),await B_`
97
97
  ALTER TABLE org_jira_column_automations
@@ -100,18 +100,18 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
100
100
  DROP COLUMN from_key,
101
101
  DROP COLUMN from_statuses,
102
102
  DROP COLUMN from_kind
103
- `.execute(_)}var Fx={};C(Fx,{up:()=>az,down:()=>rz});import{sql as iT}from"kysely";async function az(_){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(iT`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(iT`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 rz(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Yx={};C(Yx,{up:()=>lz,down:()=>ez});async function lz(){}async function ez(){}var Hx={};C(Hx,{up:()=>dz,down:()=>bz});import{sql as Dx}from"kysely";async function dz(_){await Dx`
103
+ `.execute(_)}var Yx={};C(Yx,{up:()=>ez,down:()=>dz});import{sql as cm}from"kysely";async function ez(_){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(cm`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(cm`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 dz(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Dx={};C(Dx,{up:()=>sz,down:()=>bz});async function sz(){}async function bz(){}var Mx={};C(Mx,{up:()=>_E,down:()=>xE});import{sql as Hx}from"kysely";async function _E(_){await Hx`
104
104
  ALTER TABLE task_board_prompts
105
105
  ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
106
- `.execute(_)}async function bz(_){await Dx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Dx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Rx={};C(Rx,{up:()=>sz,down:()=>_E});import{sql as Mx}from"kysely";async function sz(_){await Mx`
106
+ `.execute(_)}async function xE(_){await Hx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Hx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Bx={};C(Bx,{up:()=>uE,down:()=>CE});import{sql as Rx}from"kysely";async function uE(_){await Rx`
107
107
  DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
108
- `.execute(_),await Mx`
108
+ `.execute(_),await Rx`
109
109
  DELETE FROM connection_aggregations
110
110
  WHERE parent_connection_id LIKE 'studio-jira\\_%'
111
- `.execute(_),await Mx`
111
+ `.execute(_),await Rx`
112
112
  DELETE FROM connections
113
113
  WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
114
- `.execute(_)}async function _E(){}var Bx={};C(Bx,{up:()=>xE,down:()=>uE});import{sql as cT}from"kysely";async function xE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(cT`audience in ('human', 'internal')`)).execute(),await cT`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function uE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Gx={};C(Gx,{up:()=>KE,down:()=>NE});import{sql as CE}from"kysely";async function KE(_){await CE`
114
+ `.execute(_)}async function CE(){}var Gx={};C(Gx,{up:()=>KE,down:()=>NE});import{sql as hm}from"kysely";async function KE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(hm`audience in ('human', 'internal')`)).execute(),await hm`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function NE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Ox={};C(Ox,{up:()=>TE,down:()=>zE});import{sql as mE}from"kysely";async function TE(_){await mE`
115
115
  UPDATE org_fs_entry AS d
116
116
  SET deleted_at = now(),
117
117
  updated_at = now(),
@@ -130,7 +130,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
130
130
  AND c.parent = d.path
131
131
  AND c.deleted_at IS NULL
132
132
  )
133
- `.execute(_)}async function NE(){}var Sx={};C(Sx,{up:()=>mE,down:()=>zE,ACTIONS:()=>Ox});import{sql as F}from"kysely";var Ox=["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"],TE=Ox.filter((_)=>_!=="sprint_changed");async function mE(_){await F`
133
+ `.execute(_)}async function zE(){}var fx={};C(fx,{up:()=>$E,down:()=>PE,ACTIONS:()=>Sx});import{sql as F}from"kysely";var Sx=["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"],EE=Sx.filter((_)=>_!=="sprint_changed");async function $E(_){await F`
134
134
  CREATE TABLE task_board_sprints (
135
135
  id text PRIMARY KEY,
136
136
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -156,64 +156,64 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
156
156
  CREATE INDEX idx_task_board_items_sprint
157
157
  ON task_board_items (organization_id, sprint_id)
158
158
  WHERE sprint_id IS NOT NULL
159
- `.execute(_),await hT(_,Ox)}async function zE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await hT(_,TE),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 hT(_,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 fx={};C(fx,{up:()=>$E,planOrgSiteProjectLinks:()=>aT,down:()=>UE,applyOrgSiteProjectLinks:()=>rT});import{sql as P}from"kysely";var EE="migration-237",tT=1000;async function oT(_){return(await P`
159
+ `.execute(_),await tm(_,Sx)}async function PE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await tm(_,EE),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 tm(_,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 Ax={};C(Ax,{up:()=>JE,planOrgSiteProjectLinks:()=>rm,down:()=>QE,applyOrgSiteProjectLinks:()=>lm});import{sql as J}from"kysely";var UE="migration-237",om=1000;async function am(_){return(await J`
160
160
  SELECT conname FROM pg_constraint
161
161
  WHERE conrelid = 'org_sites'::regclass
162
162
  AND confrelid = 'organization'::regclass
163
163
  AND contype = 'f'
164
- `.execute(_)).rows[0]?.conname??null}async function aT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await P`
164
+ `.execute(_)).rows[0]?.conname??null}async function rm(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
165
165
  SELECT slug, organization_id FROM org_sites
166
166
  WHERE organization_id IS NOT NULL
167
167
  ORDER BY organization_id, slug
168
- `.execute(_);if(u.rows.length===0)return x;let N=await P`
168
+ `.execute(_);if(u.rows.length===0)return x;let N=await J`
169
169
  SELECT id, organization_id, metadata FROM connections
170
170
  WHERE connection_type = 'VIRTUAL'
171
171
  AND organization_id IN (
172
172
  SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
173
173
  )
174
174
  ORDER BY organization_id, id
175
- `.execute(_),K=new Map;for(let T of N.rows){if(!T.metadata)continue;let m;try{let $=JSON.parse(T.metadata);if($&&typeof $==="object")m=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof m!=="string"||!m)continue;let z=`${T.organization_id}\x00${m}`,E=K.get(z)??[];E.push(T.id),K.set(z,E)}for(let{slug:T,organization_id:m}of u.rows){let z=K.get(`${m}\x00${T}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:T,projectIds:z});else x.links.push({slug:T,projectId:z[0]})}return x}async function rT(_,x){let u=0;for(let N=0;N<x.length;N+=tT){let K=P.join(x.slice(N,N+tT).map((m)=>P`(${m.slug}::text, ${m.projectId}::text)`)),T=await P`
175
+ `.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 lm(_,x){let u=0;for(let N=0;N<x.length;N+=om){let K=J.join(x.slice(N,N+om).map((T)=>J`(${T.slug}::text, ${T.projectId}::text)`)),m=await J`
176
176
  UPDATE org_sites o
177
177
  SET project_id = v.pid,
178
178
  linked_at = now(),
179
- updated_by = ${EE},
179
+ updated_by = ${UE},
180
180
  updated_at = now()
181
181
  FROM (VALUES ${K}) AS v(slug, pid)
182
182
  WHERE o.slug = v.slug
183
183
  AND o.project_id IS NULL
184
184
  AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
185
- `.execute(_);u+=Number(T.numAffectedRows??0n)}return u}async function $E(_){await P`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await aT(_);await P`
185
+ `.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function JE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await rm(_);await J`
186
186
  ALTER TABLE org_sites
187
187
  ADD COLUMN project_id text NULL
188
188
  REFERENCES connections(id) ON DELETE SET NULL,
189
189
  ADD COLUMN linked_at timestamptz NULL
190
- `.execute(_),await P`
190
+ `.execute(_),await J`
191
191
  CREATE UNIQUE INDEX org_sites_project_id_uq
192
192
  ON org_sites (project_id) WHERE project_id IS NOT NULL
193
- `.execute(_);let u=await oT(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
193
+ `.execute(_);let u=await am(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
194
194
  ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
195
- `.execute(_),await P`
195
+ `.execute(_),await J`
196
196
  ALTER TABLE org_sites
197
197
  ADD CONSTRAINT org_sites_organization_id_fkey
198
198
  FOREIGN KEY (organization_id) REFERENCES organization(id)
199
199
  ON DELETE SET NULL NOT VALID
200
- `.execute(_),await P`
200
+ `.execute(_),await J`
201
201
  ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
202
- `.execute(_);let N=await rT(_,x.links),K=await P`
202
+ `.execute(_);let N=await lm(_,x.links),K=await J`
203
203
  UPDATE org_sites SET linked_at = created_at
204
204
  WHERE organization_id IS NOT NULL AND linked_at IS NULL
205
- `.execute(_);await P`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:T,projectIds:m}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${T}": ${m.join(", ")}`)}async function UE(_){if((await P`
205
+ `.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 QE(_){if((await J`
206
206
  SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
207
- `.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 oT(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
207
+ `.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 am(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
208
208
  ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
209
- `.execute(_),await P`
209
+ `.execute(_),await J`
210
210
  ALTER TABLE org_sites
211
211
  ADD CONSTRAINT org_sites_organization_id_fkey
212
212
  FOREIGN KEY (organization_id) REFERENCES organization(id)
213
213
  ON DELETE CASCADE
214
- `.execute(_),await P`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await P`
214
+ `.execute(_),await J`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await J`
215
215
  ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
216
- `.execute(_)}var Ax={};C(Ax,{up:()=>JE,moveRules:()=>Y,down:()=>PE});import{sql as c}from"kysely";async function JE(_){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`
216
+ `.execute(_)}var Ix={};C(Ix,{up:()=>XE,moveRules:()=>Y,down:()=>ZE});import{sql as c}from"kysely";async function XE(_){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`
217
217
  DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
218
218
  `.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`
219
219
  WITH moved AS (
@@ -241,7 +241,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
241
241
  jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
242
242
  now()
243
243
  FROM moved
244
- `.execute(_)}async function PE(){}async function Y(_,x,u,N,K){await c`
244
+ `.execute(_)}async function ZE(){}async function Y(_,x,u,N,K){await c`
245
245
  DELETE FROM ${c.table(x)} AS src
246
246
  WHERE src.column_key = ${N}
247
247
  AND EXISTS (
@@ -255,7 +255,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
255
255
  id = ${u} || organization_id || '_' || ${K},
256
256
  updated_at = now()
257
257
  WHERE column_key = ${N}
258
- `.execute(_)}var Ix={};C(Ix,{up:()=>XE,down:()=>ZE});import{sql as QE}from"kysely";async function XE(_){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 QE`
258
+ `.execute(_)}var yx={};C(yx,{up:()=>jE,down:()=>LE});import{sql as WE}from"kysely";async function jE(_){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 WE`
259
259
  WITH moved AS (
260
260
  UPDATE task_board_items AS i
261
261
  SET status = CASE prev.status
@@ -279,7 +279,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
279
279
  jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
280
280
  now()
281
281
  FROM moved
282
- `.execute(_)}async function ZE(){}var yx={};C(yx,{up:()=>jE,down:()=>LE});import{sql as WE}from"kysely";async function jE(_){await WE`
282
+ `.execute(_)}async function LE(){}var Vx={};C(Vx,{up:()=>YE,down:()=>DE});import{sql as FE}from"kysely";async function YE(_){await FE`
283
283
  WITH restored AS (
284
284
  UPDATE task_board_items AS i
285
285
  SET status = 'todo', updated_at = now()
@@ -306,7 +306,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
306
306
  jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
307
307
  now()
308
308
  FROM restored
309
- `.execute(_)}async function LE(){}var Vx={};C(Vx,{up:()=>FE,down:()=>YE});import{sql as L}from"kysely";async function FE(_){await L`
309
+ `.execute(_)}async function DE(){}var wx={};C(wx,{up:()=>HE,down:()=>ME});import{sql as L}from"kysely";async function HE(_){await L`
310
310
  ALTER TABLE automation_triggers
311
311
  ADD COLUMN column_key text,
312
312
  ADD COLUMN from_kind text,
@@ -332,7 +332,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
332
332
  CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
333
333
  ON task_board_activity (occurred_at)
334
334
  WHERE action = 'status_changed'
335
- `.execute(_)}async function YE(_){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`
335
+ `.execute(_)}async function ME(_){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`
336
336
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
337
337
  CHECK (type IN ('cron', 'event', 'webhook'))
338
338
  `.execute(_),await L`
@@ -340,11 +340,11 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
340
340
  DROP COLUMN IF EXISTS column_key,
341
341
  DROP COLUMN IF EXISTS from_kind,
342
342
  DROP COLUMN IF EXISTS from_statuses
343
- `.execute(_)}var wx={};C(wx,{up:()=>RE,down:()=>BE,backfillUrlSlugs:()=>G_});import{sql as D}from"kysely";var eT=64,DE=new Set(["new","edit","settings","apps","projects","connections"]);function HE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function ME(_,x){let u=HE(_??"").slice(0,eT).replace(/-+$/,"");return u.length>=2&&!DE.has(u)?u:x}function lT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,eT-u.length).replace(/-+$/,"")}${u}`}async function G_(_){let{rows:x}=await D`
343
+ `.execute(_)}var kx={};C(kx,{up:()=>OE,down:()=>SE,backfillUrlSlugs:()=>G_});import{sql as D}from"kysely";var dm=64,RE=new Set(["new","edit","settings","apps","projects","connections"]);function BE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function GE(_,x){let u=BE(_??"").slice(0,dm).replace(/-+$/,"");return u.length>=2&&!RE.has(u)?u:x}function em(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,dm-u.length).replace(/-+$/,"")}${u}`}async function G_(_){let{rows:x}=await D`
344
344
  SELECT id, organization_id, title, connection_type, url_slug
345
345
  FROM connections
346
346
  ORDER BY organization_id, created_at, id
347
- `.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(m)=>{let z=N.get(m);if(!z)N.set(m,z=new Set);return z};for(let m of x)if(m.url_slug)K(m.organization_id).add(m.url_slug);for(let m of u)K(m.organization_id).add(m.slug);let T=[];for(let m of x){if(m.url_slug)continue;let z=K(m.organization_id),E=ME(m.title,m.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(lT(E,$)))$++;let J=lT(E,$);z.add(J),T.push({id:m.id,slug:J})}for(let m=0;m<T.length;m+=1000){let z=T.slice(m,m+1000);await D`
347
+ `.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=GE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(em(E,$)))$++;let U=em(E,$);z.add(U),m.push({id:T.id,slug:U})}for(let T=0;T<m.length;T+=1000){let z=m.slice(T,T+1000);await D`
348
348
  UPDATE connections c
349
349
  SET url_slug = v.slug
350
350
  FROM unnest(
@@ -352,7 +352,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
352
352
  ${D.val(z.map((E)=>E.slug))}::text[]
353
353
  ) AS v(id, slug)
354
354
  WHERE c.id = v.id AND c.url_slug IS NULL
355
- `.execute(_)}}async function RE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
355
+ `.execute(_)}}async function OE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
356
356
  CREATE TABLE connection_slug_aliases (
357
357
  organization_id text NOT NULL,
358
358
  slug text NOT NULL,
@@ -366,22 +366,22 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
366
366
  `.execute(_),await G_(_),await D`
367
367
  CREATE UNIQUE INDEX idx_connections_org_url_slug
368
368
  ON connections (organization_id, url_slug)
369
- `.execute(_)}async function BE(_){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 kx={};C(kx,{up:()=>GE,down:()=>OE});async function GE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function OE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var nx={};C(nx,{up:()=>SE,down:()=>fE});async function SE(_){await G_(_)}async function fE(){}var vx={};C(vx,{up:()=>AE,down:()=>IE});import{sql as O_}from"kysely";async function AE(_){await O_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await O_`
369
+ `.execute(_)}async function SE(_){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 nx={};C(nx,{up:()=>fE,down:()=>AE});async function fE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function AE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var vx={};C(vx,{up:()=>IE,down:()=>yE});async function IE(_){await G_(_)}async function yE(){}var px={};C(px,{up:()=>VE,down:()=>wE});import{sql as O_}from"kysely";async function VE(_){await O_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await O_`
370
370
  CREATE UNIQUE INDEX idx_automations_org_system_key
371
371
  ON automations (organization_id, system_key)
372
372
  WHERE system_key IS NOT NULL
373
- `.execute(_)}async function IE(_){await O_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await O_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var px={};C(px,{up:()=>yE,down:()=>VE});import{sql as m_}from"kysely";async function yE(_){await m_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await m_`
373
+ `.execute(_)}async function wE(_){await O_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await O_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var gx={};C(gx,{up:()=>kE,down:()=>nE});import{sql as T_}from"kysely";async function kE(_){await T_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await T_`
374
374
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
375
375
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
376
376
  'board_pr_ready'))
377
- `.execute(_)}async function VE(_){await m_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await m_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await m_`
377
+ `.execute(_)}async function nE(_){await T_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await T_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await T_`
378
378
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
379
379
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
380
- `.execute(_)}var gx={};C(gx,{up:()=>wE,down:()=>vE});import{sql as H}from"kysely";async function wE(_){let{rows:x}=await H`
380
+ `.execute(_)}var qx={};C(qx,{up:()=>vE,down:()=>qE});import{sql as H}from"kysely";async function vE(_){let{rows:x}=await H`
381
381
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
382
382
  WHERE conname = 'chk_trigger_type'
383
383
  AND conrelid = 'automation_triggers'::regclass
384
- `.execute(_),u=new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((K)=>K[1]));if(!u.has("jira_transition")){u.add("jira_transition");let K=H.join([...u].map((T)=>H.lit(T)));await H`
384
+ `.execute(_),u=new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((K)=>K[1]));if(!u.has("jira_transition")){u.add("jira_transition");let K=H.join([...u].map((m)=>H.lit(m)));await H`
385
385
  ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
386
386
  ADD CONSTRAINT chk_trigger_type CHECK (type IN (${K}))
387
387
  `.execute(_)}await H`
@@ -397,28 +397,28 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
397
397
  r.from_key, r.prompt, i.created_by
398
398
  FROM org_jira_column_automations r
399
399
  JOIN org_jira_integrations i ON i.organization_id = r.organization_id
400
- `.execute(_);for(let K of N){let{rows:T}=await H`
400
+ `.execute(_);for(let K of N){let{rows:m}=await H`
401
401
  SELECT 'auto_jira_' || md5(${K.organization_id} || chr(10) ||
402
402
  ${K.jira_status} || chr(10) || ${K.from_key}) AS id
403
- `.execute(_),m=T[0].id;await H`
403
+ `.execute(_),T=m[0].id;await H`
404
404
  INSERT INTO automations
405
405
  (id, organization_id, name, active, created_by, messages, models,
406
406
  virtual_mcp_id)
407
- VALUES (${m}, ${K.organization_id}, ${kE(K)}, true,
408
- ${K.created_by}, ${JSON.stringify(nE(K.prompt))},
407
+ VALUES (${T}, ${K.organization_id}, ${pE(K)}, true,
408
+ ${K.created_by}, ${JSON.stringify(gE(K.prompt))},
409
409
  '{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
410
410
  ON CONFLICT (id) DO NOTHING
411
411
  `.execute(_),await H`
412
412
  INSERT INTO automation_triggers
413
413
  (id, automation_id, type, column_key, from_kind, from_statuses)
414
- VALUES (${`trg_${m}`}, ${m}, 'jira_transition', ${K.jira_status},
414
+ VALUES (${`trg_${T}`}, ${T}, 'jira_transition', ${K.jira_status},
415
415
  ${K.from_kind}, ${K.from_statuses})
416
416
  ON CONFLICT (id) DO NOTHING
417
- `.execute(_)}}function kE(_){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 nE(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
418
- `).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function vE(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
417
+ `.execute(_)}}function pE(_){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 gE(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
418
+ `).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function qE(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
419
419
  ALTER TABLE automation_triggers
420
420
  DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
421
- `.execute(_)}var qx={};C(qx,{up:()=>pE,down:()=>gE});import{sql as z_}from"kysely";async function pE(_){await z_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await z_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function gE(_){await z_`
421
+ `.execute(_)}var ix={};C(ix,{up:()=>iE,down:()=>cE});import{sql as z_}from"kysely";async function iE(_){await z_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await z_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function cE(_){await z_`
422
422
  CREATE TABLE IF NOT EXISTS task_board_column_automations (
423
423
  id text PRIMARY KEY,
424
424
  organization_id text NOT NULL,
@@ -445,7 +445,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
445
445
  updated_at timestamptz NOT NULL DEFAULT now(),
446
446
  PRIMARY KEY (organization_id, jira_status, from_key)
447
447
  )
448
- `.execute(_)}var ix={};C(ix,{up:()=>qE,down:()=>iE});import{sql as S_}from"kysely";async function qE(_){await S_`
448
+ `.execute(_)}var cx={};C(cx,{up:()=>hE,down:()=>tE});import{sql as S_}from"kysely";async function hE(_){await S_`
449
449
  ALTER TABLE task_board_items
450
450
  ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
451
451
  REFERENCES connections(id) ON DELETE SET NULL
@@ -453,22 +453,22 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
453
453
  CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
454
454
  ON task_board_items (virtual_mcp_id)
455
455
  WHERE virtual_mcp_id IS NOT NULL
456
- `.execute(_)}async function iE(_){await S_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await S_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var cx={};C(cx,{up:()=>cE,down:()=>hE});async function cE(_){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 hE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var hx={};C(hx,{up:()=>tE,down:()=>oE});async function tE(_){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 oE(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var tx={};C(tx,{up:()=>aE,down:()=>rE});import{sql as r}from"kysely";var f_=["linked_chat_run"];async function dT(_){let{rows:x}=await r`
456
+ `.execute(_)}async function tE(_){await S_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await S_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var hx={};C(hx,{up:()=>oE,down:()=>aE});async function oE(_){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 aE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var tx={};C(tx,{up:()=>rE,down:()=>lE});async function rE(_){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 lE(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var ox={};C(ox,{up:()=>eE,down:()=>dE});import{sql as r}from"kysely";var f_=["linked_chat_run"];async function sm(_){let{rows:x}=await r`
457
457
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
458
458
  WHERE conname = 'chk_trigger_type'
459
459
  AND conrelid = 'automation_triggers'::regclass
460
- `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function bT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
460
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function bm(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
461
461
  ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
462
462
  ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
463
- `.execute(_)}async function aE(_){let x=await dT(_);if(f_.every((u)=>x.has(u)))return;for(let u of f_)x.add(u);await bT(_,x)}async function rE(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(f_)})`.execute(_);let x=await dT(_);for(let u of f_)x.delete(u);await bT(_,x)}var ox={};C(ox,{up:()=>lE,down:()=>eE});import{sql as l}from"kysely";var A_=["board_pr_merged","chat_pr_opened"];async function sT(_){let{rows:x}=await l`
463
+ `.execute(_)}async function eE(_){let x=await sm(_);if(f_.every((u)=>x.has(u)))return;for(let u of f_)x.add(u);await bm(_,x)}async function dE(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(f_)})`.execute(_);let x=await sm(_);for(let u of f_)x.delete(u);await bm(_,x)}var ax={};C(ax,{up:()=>sE,down:()=>bE});import{sql as l}from"kysely";var A_=["board_pr_merged","chat_pr_opened"];async function _T(_){let{rows:x}=await l`
464
464
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
465
465
  WHERE conname = 'chk_trigger_type'
466
466
  AND conrelid = 'automation_triggers'::regclass
467
- `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function _m(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
467
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function xT(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
468
468
  ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
469
469
  ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
470
- `.execute(_)}async function lE(_){let x=await sT(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await _m(_,x)}async function eE(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(A_)})`.execute(_);let x=await sT(_);for(let u of A_)x.delete(u);await _m(_,x)}var ax={};C(ax,{up:()=>bE,down:()=>sE});import{sql as dE}from"kysely";async function bE(_){await dE`ALTER TABLE organization_settings
471
- DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function sE(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var rx={};C(rx,{up:()=>_0,down:()=>x0});import{sql as xm}from"kysely";async function _0(_){await xm`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function x0(_){await xm`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var lx={};C(lx,{up:()=>u0,down:()=>C0});import{sql as O}from"kysely";async function u0(_){await O`
470
+ `.execute(_)}async function sE(_){let x=await _T(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await xT(_,x)}async function bE(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(A_)})`.execute(_);let x=await _T(_);for(let u of A_)x.delete(u);await xT(_,x)}var rx={};C(rx,{up:()=>x0,down:()=>u0});import{sql as _0}from"kysely";async function x0(_){await _0`ALTER TABLE organization_settings
471
+ DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function u0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var lx={};C(lx,{up:()=>C0,down:()=>K0});import{sql as uT}from"kysely";async function C0(_){await uT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function K0(_){await uT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var ex={};C(ex,{up:()=>N0,down:()=>m0});import{sql as O}from"kysely";async function N0(_){await O`
472
472
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
473
473
  RETURNS jsonb AS $fn$
474
474
  BEGIN
@@ -542,7 +542,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
542
542
  || '/' ||
543
543
  coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
544
544
  ) = lower(p.path)
545
- `.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 C0(_){await O`
545
+ `.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 m0(_){await O`
546
546
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
547
547
  RETURNS jsonb AS $fn$
548
548
  BEGIN
@@ -569,17 +569,17 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
569
569
  )::text
570
570
  WHERE a.id = 'commerce-discovery_' || a.organization_id
571
571
  AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
572
- `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var dx={};C(dx,{up:()=>K0,down:()=>N0});import{sql as ex}from"kysely";async function K0(_){await ex`ALTER TABLE git_provider_accounts
572
+ `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var sx={};C(sx,{up:()=>T0,down:()=>z0});import{sql as dx}from"kysely";async function T0(_){await dx`ALTER TABLE git_provider_accounts
573
573
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
574
574
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
575
575
  CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
576
576
  ADD CONSTRAINT git_provider_accounts_cli_check
577
577
  CHECK (auth_kind <> 'github_cli' OR
578
- (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function N0(_){await ex`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await ex`ALTER TABLE git_provider_accounts
578
+ (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function z0(_){await dx`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await dx`ALTER TABLE git_provider_accounts
579
579
  DROP CONSTRAINT git_provider_accounts_cli_check,
580
580
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
581
581
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
582
- CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var bx={};C(bx,{up:()=>T0,down:()=>m0});import{sql as um}from"kysely";async function T0(_){await um`
582
+ CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var bx={};C(bx,{up:()=>E0,down:()=>$0});import{sql as CT}from"kysely";async function E0(_){await CT`
583
583
  INSERT INTO "organization" (id, name, slug, "createdAt")
584
584
  SELECT
585
585
  'org_user_fs',
@@ -593,9 +593,9 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
593
593
  END,
594
594
  now()
595
595
  ON CONFLICT (id) DO NOTHING
596
- `.execute(_)}async function m0(_){await um`
596
+ `.execute(_)}async function $0(_){await CT`
597
597
  DELETE FROM "organization" WHERE id = 'org_user_fs'
598
- `.execute(_)}var sx={};C(sx,{up:()=>z0,down:()=>E0});async function z0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function E0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var _u={};C(_u,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function U0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var xu={};C(xu,{up:()=>P0,down:()=>Q0});import{sql as E_}from"kysely";var J0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function Cm(_,x){for(let{table:u,column:N}of J0){let K=`${u}_${N}_check`,T=x.map((m)=>`'${m}'`).join(", ");await E_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await E_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${T}))`).execute(_)}}async function P0(_){await Cm(_,["github","gitlab","bitbucket"])}async function Q0(_){await E_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await Cm(_,["github","gitlab"])}var uu={};C(uu,{up:()=>X0,down:()=>Z0});import{sql as I_}from"kysely";async function X0(_){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(I_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(I_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(I_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(I_`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 Z0(_){await _.schema.dropTable("experiments").execute()}var Cu={};C(Cu,{up:()=>j0,down:()=>L0});import{sql as W0}from"kysely";async function j0(_){await W0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function L0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Nu={};C(Nu,{up:()=>Y0,down:()=>D0,ACTIONS:()=>Ku});import{sql as $_}from"kysely";var Ku=["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"],F0=Ku.filter((_)=>_!=="duplicate_reported");async function Y0(_){await Km(_,Ku)}async function D0(_){await $_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await Km(_,F0)}async function Km(_,x){await $_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await $_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${$_.join(x.map((u)=>$_.lit(u)))}))`.execute(_)}var Tu={};C(Tu,{up:()=>H0,down:()=>M0});async function H0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function M0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var mu={};C(mu,{up:()=>R0,down:()=>B0});async function R0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function B0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var zu={};C(zu,{up:()=>O0,down:()=>S0});import{sql as G0}from"kysely";async function O0(_){await G0`
598
+ `.execute(_)}var _u={};C(_u,{up:()=>P0,down:()=>U0});async function P0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function U0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var xu={};C(xu,{up:()=>J0,down:()=>Q0});async function J0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function Q0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var uu={};C(uu,{up:()=>Z0,down:()=>W0});import{sql as E_}from"kysely";var X0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function KT(_,x){for(let{table:u,column:N}of X0){let K=`${u}_${N}_check`,m=x.map((T)=>`'${T}'`).join(", ");await E_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await E_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${m}))`).execute(_)}}async function Z0(_){await KT(_,["github","gitlab","bitbucket"])}async function W0(_){await E_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await KT(_,["github","gitlab"])}var Cu={};C(Cu,{up:()=>j0,down:()=>L0});import{sql as I_}from"kysely";async function j0(_){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(I_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(I_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(I_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(I_`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 L0(_){await _.schema.dropTable("experiments").execute()}var Ku={};C(Ku,{up:()=>Y0,down:()=>D0});import{sql as F0}from"kysely";async function Y0(_){await F0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function D0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var mu={};C(mu,{up:()=>M0,down:()=>R0,ACTIONS:()=>Nu});import{sql as $_}from"kysely";var Nu=["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"],H0=Nu.filter((_)=>_!=="duplicate_reported");async function M0(_){await NT(_,Nu)}async function R0(_){await $_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await NT(_,H0)}async function NT(_,x){await $_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await $_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${$_.join(x.map((u)=>$_.lit(u)))}))`.execute(_)}var Tu={};C(Tu,{up:()=>B0,down:()=>G0});async function B0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function G0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var zu={};C(zu,{up:()=>O0,down:()=>S0});async function O0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function S0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Eu={};C(Eu,{up:()=>A0,down:()=>I0});import{sql as f0}from"kysely";async function A0(_){await f0`
599
599
  CREATE TABLE github_connect_flows (
600
600
  id text PRIMARY KEY,
601
601
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -605,7 +605,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
605
605
  );
606
606
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
607
607
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
608
- `.execute(_)}async function S0(_){await _.schema.dropTable("github_connect_flows").execute()}var Eu={};C(Eu,{up:()=>f0,down:()=>A0});async function f0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function A0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var $u={};C($u,{up:()=>I0,down:()=>y0});import{sql as y_}from"kysely";async function I0(_){await y_`
608
+ `.execute(_)}async function I0(_){await _.schema.dropTable("github_connect_flows").execute()}var $u={};C($u,{up:()=>y0,down:()=>V0});async function y0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function V0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Pu={};C(Pu,{up:()=>w0,down:()=>k0});import{sql as y_}from"kysely";async function w0(_){await y_`
609
609
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
610
610
  DECLARE
611
611
  metadata_json jsonb;
@@ -661,19 +661,19 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
661
661
  FROM repositories r WHERE s.repository_id IS NULL
662
662
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
663
663
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
664
- `.execute(_)}async function y0(_){await y_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await y_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Uu={};C(Uu,{up:()=>V0,down:()=>w0});import{sql as V}from"kysely";async function V0(_){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 w0(_){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 Ju={};C(Ju,{up:()=>k0,down:()=>n0});import{sql as Nm}from"kysely";async function k0(_){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(Nm`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).execute()}async function n0(_){await _.schema.dropTable("organization_settings").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0});async function v0(_){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 p0(_){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 Qu={};C(Qu,{up:()=>g0,down:()=>q0});async function g0(_){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 q0(_){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 Xu={};C(Xu,{up:()=>i0,down:()=>c0});async function i0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function c0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as h0}from"kysely";async function t0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",h0`text`).execute()}async function o0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Wu={};C(Wu,{up:()=>a0,down:()=>r0});async function a0(_){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 r0(_){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 ju={};C(ju,{up:()=>l0,down:()=>e0});import{sql as U_}from"kysely";async function l0(_){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(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`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(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`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(U_`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 e0(_){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 Lu={};C(Lu,{up:()=>b0,down:()=>s0});import{sql as d0}from"kysely";async function b0(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function s0(_){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(d0`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 Fu={};C(Fu,{up:()=>_$,down:()=>x$});import{sql as V_}from"kysely";async function _$(_){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(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("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(V_`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 V_`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 Yu={};C(Yu,{up:()=>u$,down:()=>C$});async function u$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function C$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Du={};C(Du,{up:()=>K$,down:()=>N$});import{sql as w_}from"kysely";async function K$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await w_`
664
+ `.execute(_)}async function k0(_){await y_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await y_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Uu={};C(Uu,{up:()=>n0,down:()=>v0});import{sql as V}from"kysely";async function n0(_){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 v0(_){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 Ju={};C(Ju,{up:()=>p0,down:()=>g0});import{sql as mT}from"kysely";async function p0(_){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(mT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(mT`CURRENT_TIMESTAMP`)).execute()}async function g0(_){await _.schema.dropTable("organization_settings").execute()}var Qu={};C(Qu,{up:()=>q0,down:()=>i0});async function q0(_){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 i0(_){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 Xu={};C(Xu,{up:()=>c0,down:()=>h0});async function c0(_){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 h0(_){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 Zu={};C(Zu,{up:()=>t0,down:()=>o0});async function t0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function o0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Wu={};C(Wu,{up:()=>r0,down:()=>l0});import{sql as a0}from"kysely";async function r0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",a0`text`).execute()}async function l0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var ju={};C(ju,{up:()=>e0,down:()=>d0});async function e0(_){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 d0(_){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 Lu={};C(Lu,{up:()=>s0,down:()=>b0});import{sql as P_}from"kysely";async function s0(_){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 b0(_){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 Fu={};C(Fu,{up:()=>x$,down:()=>u$});import{sql as _$}from"kysely";async function x$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function u$(_){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 Yu={};C(Yu,{up:()=>C$,down:()=>K$});import{sql as V_}from"kysely";async function C$(_){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(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("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(V_`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 V_`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 K$(_){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 Du={};C(Du,{up:()=>N$,down:()=>m$});async function N$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function m$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Hu={};C(Hu,{up:()=>T$,down:()=>z$});import{sql as w_}from"kysely";async function T$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await w_`
665
665
  UPDATE gateways
666
666
  SET tool_selection_mode = CASE
667
667
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
668
668
  ELSE 'inclusion'
669
669
  END
670
- `.execute(_),await w_`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 N$(_){await w_`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 w_`
670
+ `.execute(_),await w_`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 z$(_){await w_`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 w_`
671
671
  UPDATE gateways
672
672
  SET tool_selection_strategy = CASE
673
673
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
674
674
  ELSE NULL
675
675
  END
676
- `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Hu={};C(Hu,{up:()=>T$,down:()=>m$});async function T$(_){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 Mu={};C(Mu,{up:()=>z$,down:()=>E$});async function z$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function E$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Ru={};C(Ru,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function U$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Bu={};C(Bu,{up:()=>J$,down:()=>P$});async function J$(_){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 P$(_){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 Gu={};C(Gu,{up:()=>X$,down:()=>Z$});import{sql as Q$}from"kysely";async function X$(_){await Q$`
676
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Mu={};C(Mu,{up:()=>E$,down:()=>$$});async function E$(_){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 $$(_){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 Ru={};C(Ru,{up:()=>P$,down:()=>U$});async function P$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function U$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Bu={};C(Bu,{up:()=>J$,down:()=>Q$});async function J$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function Q$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Gu={};C(Gu,{up:()=>X$,down:()=>Z$});async function X$(_){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 Z$(_){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 Ou={};C(Ou,{up:()=>j$,down:()=>L$});import{sql as W$}from"kysely";async function j$(_){await W$`
677
677
  DELETE FROM downstream_tokens
678
678
  WHERE id NOT IN (
679
679
  SELECT id FROM (
@@ -683,7 +683,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
683
683
  ) ranked
684
684
  WHERE rn = 1
685
685
  )
686
- `.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 Z$(_){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 Ou={};C(Ou,{up:()=>W$,down:()=>j$});async function W$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function j$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Su={};C(Su,{up:()=>L$,down:()=>F$});import{sql as Tm}from"kysely";async function L$(_){await Tm`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function F$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await Tm`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var fu={};C(fu,{up:()=>Y$,down:()=>D$});async function Y$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function D$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Au={};C(Au,{up:()=>H$,down:()=>M$});import{sql as k_}from"kysely";async function H$(_){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(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("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(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`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 M$(_){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 Iu={};C(Iu,{up:()=>R$,down:()=>B$});async function R$(_){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 B$(_){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 yu={};C(yu,{up:()=>G$,down:()=>O$});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 O$(_){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 Vu={};C(Vu,{up:()=>S$,down:()=>f$});import{sql as M}from"kysely";async function S$(_){await M`
686
+ `.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 L$(_){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 Su={};C(Su,{up:()=>F$,down:()=>Y$});async function F$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function Y$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var fu={};C(fu,{up:()=>D$,down:()=>H$});import{sql as TT}from"kysely";async function D$(_){await TT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function H$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await TT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Au={};C(Au,{up:()=>M$,down:()=>R$});async function M$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function R$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Iu={};C(Iu,{up:()=>B$,down:()=>G$});import{sql as k_}from"kysely";async function B$(_){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(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("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(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`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 G$(_){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 yu={};C(yu,{up:()=>O$,down:()=>S$});async function O$(_){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 S$(_){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:()=>f$,down:()=>A$});async function f$(_){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 A$(_){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 wu={};C(wu,{up:()=>I$,down:()=>y$});import{sql as M}from"kysely";async function I$(_){await M`
687
687
  INSERT INTO connections (
688
688
  id,
689
689
  organization_id,
@@ -730,7 +730,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
730
730
  created_at,
731
731
  updated_at
732
732
  FROM virtual_mcps
733
- `.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 f$(_){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`
733
+ `.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 y$(_){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`
734
734
  INSERT INTO virtual_mcps (
735
735
  id, organization_id, title, description, icon, status,
736
736
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -740,7 +740,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
740
740
  created_at, updated_at, created_by, NULL, 'inclusion'
741
741
  FROM connections
742
742
  WHERE connection_type = 'VIRTUAL'
743
- `.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 wu={};C(wu,{up:()=>A$,down:()=>I$});async function A$(_){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 I$(_){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 ku={};C(ku,{up:()=>y$,down:()=>V$});import{sql as w}from"kysely";async function y$(_){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`
743
+ `.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 ku={};C(ku,{up:()=>V$,down:()=>w$});async function V$(_){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 w$(_){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 nu={};C(nu,{up:()=>k$,down:()=>n$});import{sql as w}from"kysely";async function k$(_){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`
744
744
  INSERT INTO connection_aggregations_new (
745
745
  id, parent_connection_id, child_connection_id,
746
746
  selected_tools, selected_resources, selected_prompts, created_at
@@ -749,7 +749,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
749
749
  id, parent_connection_id, child_connection_id,
750
750
  selected_tools, selected_resources, selected_prompts, created_at
751
751
  FROM connection_aggregations
752
- `.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 V$(_){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`
752
+ `.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 n$(_){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`
753
753
  INSERT INTO connection_aggregations_new (
754
754
  id, parent_connection_id, child_connection_id,
755
755
  selected_tools, selected_resources, selected_prompts, created_at
@@ -758,7 +758,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
758
758
  id, parent_connection_id, child_connection_id,
759
759
  selected_tools, selected_resources, selected_prompts, created_at
760
760
  FROM connection_aggregations
761
- `.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 vu={};C(vu,{up:()=>w$,down:()=>k$});import{sql as nu}from"kysely";async function w$(_){await nu`
761
+ `.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 pu={};C(pu,{up:()=>v$,down:()=>p$});import{sql as vu}from"kysely";async function v$(_){await vu`
762
762
  UPDATE connections
763
763
  SET connection_url = connection_url || '/management',
764
764
  tools = NULL,
@@ -766,42 +766,42 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
766
766
  WHERE connection_url LIKE '%/mcp'
767
767
  AND connection_url NOT LIKE '%/mcp/management'
768
768
  AND app_name = '@deco/management-mcp'
769
- `.execute(_),await nu`
769
+ `.execute(_),await vu`
770
770
  UPDATE connections
771
771
  SET tools = NULL,
772
772
  updated_at = CURRENT_TIMESTAMP
773
773
  WHERE app_name = '@deco/management-mcp'
774
774
  AND tools IS NOT NULL
775
- `.execute(_)}async function k$(_){await nu`
775
+ `.execute(_)}async function p$(_){await vu`
776
776
  UPDATE connections
777
777
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
778
778
  updated_at = CURRENT_TIMESTAMP
779
779
  WHERE connection_url LIKE '%/mcp/management'
780
780
  AND app_name = '@deco/management-mcp'
781
- `.execute(_)}var gu={};C(gu,{up:()=>n$,down:()=>v$});import{sql as pu}from"kysely";async function n$(_){await pu`
781
+ `.execute(_)}var qu={};C(qu,{up:()=>g$,down:()=>q$});import{sql as gu}from"kysely";async function g$(_){await gu`
782
782
  UPDATE connections
783
783
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
784
784
  tools = NULL,
785
785
  updated_at = CURRENT_TIMESTAMP
786
786
  WHERE connection_url LIKE '%/mcp/management'
787
787
  AND app_name = '@deco/management-mcp'
788
- `.execute(_),await pu`
788
+ `.execute(_),await gu`
789
789
  UPDATE connections
790
790
  SET tools = NULL,
791
791
  updated_at = CURRENT_TIMESTAMP
792
792
  WHERE connection_url LIKE '%/mcp/self'
793
793
  AND app_name = '@deco/management-mcp'
794
794
  AND tools IS NOT NULL
795
- `.execute(_)}async function v$(_){await pu`
795
+ `.execute(_)}async function q$(_){await gu`
796
796
  UPDATE connections
797
797
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
798
798
  updated_at = CURRENT_TIMESTAMP
799
799
  WHERE connection_url LIKE '%/mcp/self'
800
800
  AND app_name = '@deco/management-mcp'
801
- `.execute(_)}var qu={};C(qu,{up:()=>p$,down:()=>g$});async function p$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function g$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var iu={};C(iu,{up:()=>q$,down:()=>i$});import{sql as mm}from"kysely";async function q$(_){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(mm`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(mm`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 i$(_){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 cu={};C(cu,{up:()=>c$,down:()=>h$});import{sql as J_}from"kysely";async function c$(_){await J_`
801
+ `.execute(_)}var iu={};C(iu,{up:()=>i$,down:()=>c$});async function i$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function c$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var cu={};C(cu,{up:()=>h$,down:()=>t$});import{sql as zT}from"kysely";async function h$(_){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 t$(_){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 hu={};C(hu,{up:()=>o$,down:()=>a$});import{sql as U_}from"kysely";async function o$(_){await U_`
802
802
  ALTER TABLE connection_aggregations
803
803
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
804
- `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function h$(_){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_`
804
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function a$(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await U_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await U_`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(U_`CURRENT_TIMESTAMP`)).execute(),await U_`
805
805
  INSERT INTO connection_aggregations_new (
806
806
  id, parent_connection_id, child_connection_id,
807
807
  selected_tools, selected_resources, selected_prompts, created_at
@@ -810,42 +810,42 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
810
810
  id, parent_connection_id, child_connection_id,
811
811
  selected_tools, selected_resources, selected_prompts, created_at
812
812
  FROM connection_aggregations
813
- `.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 hu={};C(hu,{up:()=>l$,down:()=>e$});import{webcrypto as Em}from"crypto";var zm="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var t$=128,h,e;function o$(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*t$),Em.getRandomValues(h),e=0;else if(e+_>h.length)Em.getRandomValues(h),e=0;e+=_}function d(_=21){o$(_|=0);let x="";for(let u=e-_;u<e;u++)x+=zm[h[u]&63];return x}var a$="org-admin",r$="Organization Admin";async function l$(_){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()}`,T=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:a$,name:r$,description:null,enabled_plugins:T?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function e$(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var tu={};C(tu,{up:()=>d$,down:()=>b$});async function d$(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function b$(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var ou={};C(ou,{up:()=>s$,down:()=>_U});async function s$(_){}async function _U(_){}var au={};C(au,{up:()=>xU,down:()=>uU});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 uU(_){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 ru={};C(ru,{up:()=>CU,down:()=>KU});import{sql as $m}from"kysely";async function CU(_){await $m`
813
+ `.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 tu={};C(tu,{up:()=>s$,down:()=>b$});import{webcrypto as $T}from"crypto";var ET="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var r$=128,h,e;function l$(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*r$),$T.getRandomValues(h),e=0;else if(e+_>h.length)$T.getRandomValues(h),e=0;e+=_}function d(_=21){l$(_|=0);let x="";for(let u=e-_;u<e;u++)x+=ET[h[u]&63];return x}var e$="org-admin",d$="Organization Admin";async function s$(_){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:e$,name:d$,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function b$(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var ou={};C(ou,{up:()=>_P,down:()=>xP});async function _P(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function xP(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var au={};C(au,{up:()=>uP,down:()=>CP});async function uP(_){}async function CP(_){}var ru={};C(ru,{up:()=>KP,down:()=>NP});async function KP(_){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 NP(_){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 lu={};C(lu,{up:()=>mP,down:()=>TP});import{sql as PT}from"kysely";async function mP(_){await PT`
814
814
  UPDATE connections
815
815
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
816
816
  tools = NULL,
817
817
  updated_at = CURRENT_TIMESTAMP
818
818
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
819
819
  AND app_name = 'deco-registry'
820
- `.execute(_)}async function KU(_){await $m`
820
+ `.execute(_)}async function TP(_){await PT`
821
821
  UPDATE connections
822
822
  SET connection_url = 'https://api.decocms.com/mcp/registry',
823
823
  updated_at = CURRENT_TIMESTAMP
824
824
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
825
825
  AND app_name = 'deco-registry'
826
- `.execute(_)}var lu={};C(lu,{up:()=>TU,down:()=>mU});import{sql as NU}from"kysely";async function TU(_){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(NU`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 eu={};C(eu,{up:()=>EU,down:()=>$U});import{sql as zU}from"kysely";async function EU(_){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(zU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function $U(_){await _.schema.dropTable("oauth_pkce_states").execute()}var du={};C(du,{up:()=>UU,down:()=>JU});import{sql as p}from"kysely";async function UU(_){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 JU(_){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 bu={};C(bu,{up:()=>PU,down:()=>QU});async function PU(_){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 QU(_){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 su={};C(su,{up:()=>XU,down:()=>ZU});async function XU(_){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 ZU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var _C={};C(_C,{up:()=>WU,down:()=>jU});import{sql as Um}from"kysely";async function WU(_){await Um`
826
+ `.execute(_)}var eu={};C(eu,{up:()=>EP,down:()=>$P});import{sql as zP}from"kysely";async function EP(_){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(zP`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 $P(_){await _.schema.dropTable("ai_provider_keys").execute()}var du={};C(du,{up:()=>UP,down:()=>JP});import{sql as PP}from"kysely";async function UP(_){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(PP`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function JP(_){await _.schema.dropTable("oauth_pkce_states").execute()}var su={};C(su,{up:()=>QP,down:()=>XP});import{sql as p}from"kysely";async function QP(_){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 XP(_){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 bu={};C(bu,{up:()=>ZP,down:()=>WP});async function ZP(_){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 WP(_){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 _C={};C(_C,{up:()=>jP,down:()=>LP});async function jP(_){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 LP(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var xC={};C(xC,{up:()=>FP,down:()=>YP});import{sql as UT}from"kysely";async function FP(_){await UT`
827
827
  UPDATE connections
828
828
  SET title = 'CMS MCP',
829
829
  tools = NULL,
830
830
  updated_at = CURRENT_TIMESTAMP
831
831
  WHERE app_name = '@deco/management-mcp'
832
- `.execute(_)}async function jU(_){await Um`
832
+ `.execute(_)}async function YP(_){await UT`
833
833
  UPDATE connections
834
834
  SET title = 'Mesh MCP',
835
835
  updated_at = CURRENT_TIMESTAMP
836
836
  WHERE app_name = '@deco/management-mcp'
837
- `.execute(_)}var xC={};C(xC,{up:()=>LU,down:()=>FU});import{sql as Jm}from"kysely";async function LU(_){await Jm`
837
+ `.execute(_)}var uC={};C(uC,{up:()=>DP,down:()=>HP});import{sql as JT}from"kysely";async function DP(_){await JT`
838
838
  UPDATE connections
839
839
  SET title = 'Deco CMS',
840
840
  tools = NULL,
841
841
  updated_at = CURRENT_TIMESTAMP
842
842
  WHERE app_name = '@deco/management-mcp'
843
- `.execute(_)}async function FU(_){await Jm`
843
+ `.execute(_)}async function HP(_){await JT`
844
844
  UPDATE connections
845
845
  SET title = 'CMS MCP',
846
846
  updated_at = CURRENT_TIMESTAMP
847
847
  WHERE app_name = '@deco/management-mcp'
848
- `.execute(_)}var uC={};C(uC,{up:()=>YU,down:()=>DU});async function YU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function DU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var CC={};C(CC,{up:()=>HU,down:()=>MU});async function HU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function MU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var NC={};C(NC,{up:()=>RU,down:()=>BU});import{sql as KC}from"kysely";async function RU(_){await KC`
848
+ `.execute(_)}var CC={};C(CC,{up:()=>MP,down:()=>RP});async function MP(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function RP(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var KC={};C(KC,{up:()=>BP,down:()=>GP});async function BP(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function GP(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var mC={};C(mC,{up:()=>OP,down:()=>SP});import{sql as NC}from"kysely";async function OP(_){await NC`
849
849
  UPDATE organization_settings
850
850
  SET enabled_plugins = (
851
851
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -854,7 +854,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
854
854
  )
855
855
  WHERE enabled_plugins IS NOT NULL
856
856
  AND enabled_plugins LIKE '%object-storage%'
857
- `.execute(_),await KC`
857
+ `.execute(_),await NC`
858
858
  UPDATE projects
859
859
  SET enabled_plugins = (
860
860
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -863,28 +863,28 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
863
863
  )
864
864
  WHERE enabled_plugins IS NOT NULL
865
865
  AND enabled_plugins LIKE '%object-storage%'
866
- `.execute(_),await KC`
866
+ `.execute(_),await NC`
867
867
  DELETE FROM project_plugin_configs
868
868
  WHERE plugin_id = 'object-storage'
869
- `.execute(_)}async function BU(_){}var TC={};C(TC,{up:()=>GU,down:()=>OU});import{sql as Pm}from"kysely";async function GU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await Pm`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function OU(_){await Pm`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var zC={};C(zC,{up:()=>SU,down:()=>fU});import{sql as mC}from"kysely";async function SU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await mC`
869
+ `.execute(_)}async function SP(_){}var TC={};C(TC,{up:()=>fP,down:()=>AP});import{sql as QT}from"kysely";async function fP(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await QT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function AP(_){await QT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var EC={};C(EC,{up:()=>IP,down:()=>yP});import{sql as zC}from"kysely";async function IP(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await zC`
870
870
  ALTER TABLE connections
871
871
  ADD CONSTRAINT chk_connections_subtype
872
872
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
873
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await mC`
873
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await zC`
874
874
  UPDATE connections
875
875
  SET subtype = 'agent'
876
876
  WHERE connection_type = 'VIRTUAL'
877
- `.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,J=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:J,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let T=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of T){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 m=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of m){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 fU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await mC`
877
+ `.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,U=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:U,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 yP(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await zC`
878
878
  ALTER TABLE connections
879
879
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
880
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var EC={};C(EC,{up:()=>IU,down:()=>yU});import{sql as AU}from"kysely";async function IU(_){await AU`
880
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var $C={};C($C,{up:()=>wP,down:()=>kP});import{sql as VP}from"kysely";async function wP(_){await VP`
881
881
  DELETE FROM connections
882
882
  WHERE connection_type = 'VIRTUAL'
883
883
  AND subtype = 'project'
884
884
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
885
- `.execute(_)}async function yU(_){}var $C={};C($C,{up:()=>wU,down:()=>kU});import{sql as VU}from"kysely";async function wU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await VU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function kU(_){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 JC={};C(JC,{up:()=>nU,down:()=>vU});import{sql as UC}from"kysely";async function nU(_){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(UC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(UC`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(UC`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 vU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var PC={};C(PC,{up:()=>pU,down:()=>gU});async function pU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function gU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var QC={};C(QC,{up:()=>qU,down:()=>iU});async function qU(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function iU(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var ZC={};C(ZC,{up:()=>hU,down:()=>tU});import{sql as Qm}from"kysely";function XC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function cU(_){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 XC(N)}catch{return XC(_.connection_url)}if(_.title)return XC(_.title);return _.id}async function hU(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await Qm`
885
+ `.execute(_)}async function kP(_){}var PC={};C(PC,{up:()=>vP,down:()=>pP});import{sql as nP}from"kysely";async function vP(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await nP`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function pP(_){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 JC={};C(JC,{up:()=>gP,down:()=>qP});import{sql as UC}from"kysely";async function gP(_){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(UC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(UC`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(UC`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 qP(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var QC={};C(QC,{up:()=>iP,down:()=>cP});async function iP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function cP(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var XC={};C(XC,{up:()=>hP,down:()=>tP});async function hP(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function tP(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var WC={};C(WC,{up:()=>aP,down:()=>rP});import{sql as XT}from"kysely";function ZC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function oP(_){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 ZC(N)}catch{return ZC(_.connection_url)}if(_.title)return ZC(_.title);return _.id}async function aP(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await XT`
886
886
  SELECT id, app_name, connection_url, title FROM connections
887
- `.execute(_);for(let u of x.rows){let N=cU(u);await Qm`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 tU(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var WC={};C(WC,{up:()=>oU,down:()=>aU});import{sql as P_}from"kysely";async function oU(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await P_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await P_`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 aU(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await P_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await P_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await P_`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 jC={};C(jC,{up:()=>rU,down:()=>lU});async function rU(_){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 lU(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var LC={};C(LC,{up:()=>eU,down:()=>dU});import{sql as n_}from"kysely";async function eU(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await n_`
887
+ `.execute(_);for(let u of x.rows){let N=oP(u);await XT`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 rP(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var jC={};C(jC,{up:()=>lP,down:()=>eP});import{sql as J_}from"kysely";async function lP(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await J_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await J_`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 eP(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await J_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await J_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await J_`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 LC={};C(LC,{up:()=>dP,down:()=>sP});async function dP(_){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 sP(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var FC={};C(FC,{up:()=>bP,down:()=>_U});import{sql as n_}from"kysely";async function bP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await n_`
888
888
  UPDATE threads
889
889
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
890
890
  WHERE agent_ids IS NOT NULL
@@ -894,55 +894,55 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
894
894
  `.execute(_),await n_`
895
895
  CREATE INDEX idx_threads_virtual_mcp_id
896
896
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
897
- `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function dU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await n_`
897
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function _U(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await n_`
898
898
  UPDATE threads
899
899
  SET agent_ids = CASE
900
900
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
901
901
  THEN jsonb_build_array(virtual_mcp_id)::text
902
902
  ELSE '[]'
903
903
  END
904
- `.execute(_),await n_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var FC={};C(FC,{up:()=>bU,down:()=>sU});async function bU(_){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 sU(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var YC={};C(YC,{up:()=>_J,down:()=>xJ});async function _J(_){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 xJ(_){await _.schema.dropTable("kv").execute()}var DC={};C(DC,{up:()=>uJ,down:()=>CJ});async function uJ(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function CJ(_){await _.schema.dropIndex("idx_member_user_org").execute()}var HC={};C(HC,{up:()=>KJ,down:()=>NJ});async function KJ(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function NJ(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var MC={};C(MC,{up:()=>TJ,down:()=>mJ});import{sql as S}from"kysely";async function TJ(_){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 mJ(_){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 RC={};C(RC,{up:()=>zJ,down:()=>EJ});import{sql as b}from"kysely";async function zJ(_){await b`
904
+ `.execute(_),await n_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var YC={};C(YC,{up:()=>xU,down:()=>uU});async function xU(_){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 uU(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var DC={};C(DC,{up:()=>CU,down:()=>KU});async function CU(_){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 KU(_){await _.schema.dropTable("kv").execute()}var HC={};C(HC,{up:()=>NU,down:()=>mU});async function NU(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function mU(_){await _.schema.dropIndex("idx_member_user_org").execute()}var MC={};C(MC,{up:()=>TU,down:()=>zU});async function TU(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function zU(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var RC={};C(RC,{up:()=>EU,down:()=>$U});import{sql as S}from"kysely";async function EU(_){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 $U(_){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 BC={};C(BC,{up:()=>PU,down:()=>UU});import{sql as s}from"kysely";async function PU(_){await s`
905
905
  ALTER TABLE event_subscriptions
906
906
  ALTER COLUMN enabled DROP DEFAULT
907
- `.execute(_),await b`
907
+ `.execute(_),await s`
908
908
  ALTER TABLE event_subscriptions
909
909
  ALTER COLUMN enabled TYPE boolean
910
910
  USING enabled::boolean
911
- `.execute(_),await b`
911
+ `.execute(_),await s`
912
912
  ALTER TABLE event_subscriptions
913
913
  ALTER COLUMN enabled SET DEFAULT true
914
- `.execute(_)}async function EJ(_){await b`
914
+ `.execute(_)}async function UU(_){await s`
915
915
  ALTER TABLE event_subscriptions
916
916
  ALTER COLUMN enabled DROP DEFAULT
917
- `.execute(_),await b`
917
+ `.execute(_),await s`
918
918
  ALTER TABLE event_subscriptions
919
919
  ALTER COLUMN enabled TYPE integer
920
920
  USING enabled::integer
921
- `.execute(_),await b`
921
+ `.execute(_),await s`
922
922
  ALTER TABLE event_subscriptions
923
923
  ALTER COLUMN enabled SET DEFAULT 1
924
- `.execute(_)}var BC={};C(BC,{up:()=>$J,down:()=>UJ});import{sql as Xm}from"kysely";async function $J(_){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(Xm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Xm`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function UJ(_){await _.schema.dropTable("brand_context").execute()}var GC={};C(GC,{up:()=>JJ,down:()=>PJ});import{sql as Zm}from"kysely";async function JJ(_){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(Zm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Zm`now()`)).execute()}async function PJ(_){await _.schema.dropTable("organization_domains").execute()}var OC={};C(OC,{up:()=>WJ,down:()=>jJ});import{sql as Wm}from"kysely";var v_=new Set(["primary","secondary","accent","background","foreground"]),QJ={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function XJ(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>v_.has(K))){let K={};for(let[T,m]of Object.entries(u)){if(typeof m!=="string")continue;if(v_.has(T))K[T]=m;else x[T]=m}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,T]of Object.entries(u)){if(typeof T!=="string")continue;if(v_.has(K.toLowerCase()))N[K.toLowerCase()]=T;else x[K]=T}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,T=K.label?.toLowerCase?.(),m=K.value;if(!T||!m)continue;if(v_.has(T))u[T]=m;else x[T]=m}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function ZJ(_){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,T=K.name??K.family??void 0,m=K.role?.toLowerCase?.()??"";if(!T)continue;let z=QJ[m];if(z&&!x[z])x[z]=T;else u.push(T)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function WJ(_){let x=await Wm`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,T=!1,m=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 J=XJ($);if(m=J.structured,N=!0,Object.keys(J.extra).length>0)E.extraColors=J.extra,T=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=ZJ($),K=!0}catch{}if(N||K||T){let $=T?JSON.stringify(E):u.metadata;await Wm`
924
+ `.execute(_)}var GC={};C(GC,{up:()=>JU,down:()=>QU});import{sql as ZT}from"kysely";async function JU(_){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(ZT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(ZT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function QU(_){await _.schema.dropTable("brand_context").execute()}var OC={};C(OC,{up:()=>XU,down:()=>ZU});import{sql as WT}from"kysely";async function XU(_){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(WT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(WT`now()`)).execute()}async function ZU(_){await _.schema.dropTable("organization_domains").execute()}var SC={};C(SC,{up:()=>FU,down:()=>YU});import{sql as jT}from"kysely";var v_=new Set(["primary","secondary","accent","background","foreground"]),WU={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function jU(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>v_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(v_.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(v_.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(v_.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 LU(_){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=WU[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 FU(_){let x=await jT`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 U=jU($);if(T=U.structured,N=!0,Object.keys(U.extra).length>0)E.extraColors=U.extra,m=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=LU($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await jT`
925
925
  UPDATE brand_context
926
926
  SET
927
- colors = ${m},
927
+ colors = ${T},
928
928
  fonts = ${z},
929
929
  metadata = ${$},
930
930
  updated_at = NOW()
931
931
  WHERE id = ${u.id}
932
- `.execute(_)}}}async function jJ(_){}var SC={};C(SC,{up:()=>FJ,down:()=>YJ});import{sql as LJ}from"kysely";async function FJ(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(LJ`'{}'::jsonb`)).execute()}async function YJ(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var fC={};C(fC,{up:()=>DJ,down:()=>HJ});async function DJ(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function HJ(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var AC={};C(AC,{up:()=>MJ,down:()=>RJ});async function MJ(_){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 RJ(_){await _.schema.dropTable("sandbox_runner_state").execute()}var IC={};C(IC,{up:()=>BJ,down:()=>GJ});async function BJ(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function GJ(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var yC={};C(yC,{up:()=>OJ,down:()=>SJ});async function OJ(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function SJ(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var VC={};C(VC,{up:()=>fJ,down:()=>AJ});async function fJ(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function AJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var wC={};C(wC,{up:()=>yJ,down:()=>VJ});import{sql as jm}from"kysely";var IJ=["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 yJ(_){let x=await jm`
932
+ `.execute(_)}}}async function YU(_){}var fC={};C(fC,{up:()=>HU,down:()=>MU});import{sql as DU}from"kysely";async function HU(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(DU`'{}'::jsonb`)).execute()}async function MU(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var AC={};C(AC,{up:()=>RU,down:()=>BU});async function RU(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function BU(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var IC={};C(IC,{up:()=>GU,down:()=>OU});async function GU(_){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 OU(_){await _.schema.dropTable("sandbox_runner_state").execute()}var yC={};C(yC,{up:()=>SU,down:()=>fU});async function SU(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function fU(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var VC={};C(VC,{up:()=>AU,down:()=>IU});async function AU(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function IU(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var wC={};C(wC,{up:()=>yU,down:()=>VU});async function yU(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function VU(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var kC={};C(kC,{up:()=>kU,down:()=>nU});import{sql as LT}from"kysely";var wU=["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 kU(_){let x=await LT`
933
933
  SELECT id, permission FROM "organizationRole"
934
- `.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 T=K,m=Array.from(new Set([...T,...IJ]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await jm`
934
+ `.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,...wU]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await LT`
935
935
  UPDATE "organizationRole"
936
936
  SET permission = ${z}
937
937
  WHERE id = ${u.id}
938
- `.execute(_)}}async function VJ(_){}var kC={};C(kC,{up:()=>wJ,down:()=>kJ});async function wJ(_){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 kJ(_){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 nC={};C(nC,{up:()=>nJ,down:()=>vJ});async function nJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function vJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var vC={};C(vC,{up:()=>pJ,down:()=>gJ});import{sql as Q_}from"kysely";async function pJ(_){await Q_`
938
+ `.execute(_)}}async function nU(_){}var nC={};C(nC,{up:()=>vU,down:()=>pU});async function vU(_){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 pU(_){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 vC={};C(vC,{up:()=>gU,down:()=>qU});async function gU(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function qU(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var pC={};C(pC,{up:()=>iU,down:()=>cU});import{sql as Q_}from"kysely";async function iU(_){await Q_`
939
939
  UPDATE automations
940
940
  SET virtual_mcp_id = (agent::json ->> 'id')
941
941
  WHERE virtual_mcp_id IS NULL
942
942
  `.execute(_),await Q_`
943
943
  ALTER TABLE automations
944
944
  ALTER COLUMN virtual_mcp_id SET NOT NULL
945
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function gJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
945
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function cU(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
946
946
  UPDATE automations
947
947
  SET agent = json_build_object('id', virtual_mcp_id)::text
948
948
  `.execute(_),await Q_`
@@ -951,7 +951,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
951
951
  `.execute(_),await Q_`
952
952
  ALTER TABLE automations
953
953
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
954
- `.execute(_)}var gC={};C(gC,{up:()=>hJ,reshapeSimpleMode:()=>Lm,inferAutomationTier:()=>Fm,down:()=>tJ,__testing:()=>cJ});var qJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},iJ=["fast","smart","thinking","image","web_research"];function pC(_){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 iJ.some((N)=>(N in u))}function Lm(_){if(pC(_))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 qJ;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 Fm(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Ym(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var cJ={isAlreadyReshapedSimpleMode:pC,isAlreadyReshapedAutomationModels:Ym};async function hJ(_){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(pC(K))continue;let T=Lm(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(T)}).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(Ym(K))continue;let T=Fm(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:T})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${T}"`)}}async function tJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var qC={};C(qC,{up:()=>oJ,down:()=>aJ});import{sql as n}from"kysely";async function oJ(_){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`
954
+ `.execute(_)}var qC={};C(qC,{up:()=>aU,reshapeSimpleMode:()=>FT,inferAutomationTier:()=>YT,down:()=>rU,__testing:()=>oU});var hU={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},tU=["fast","smart","thinking","image","web_research"];function gC(_){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 tU.some((N)=>(N in u))}function FT(_){if(gC(_))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 hU;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 YT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function DT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var oU={isAlreadyReshapedSimpleMode:gC,isAlreadyReshapedAutomationModels:DT};async function aU(_){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(gC(K))continue;let m=FT(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(DT(K))continue;let m=YT(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 rU(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var iC={};C(iC,{up:()=>lU,down:()=>eU});import{sql as n}from"kysely";async function lU(_){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`
955
955
  ALTER TABLE automations
956
956
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
957
957
  `.execute(_),await n`
@@ -973,19 +973,19 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
973
973
  AND tool_input IS NOT NULL
974
974
  )
975
975
  )
976
- `.execute(_)}async function aJ(_){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`
976
+ `.execute(_)}async function eU(_){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`
977
977
  ALTER TABLE automations
978
978
  ALTER COLUMN virtual_mcp_id SET NOT NULL
979
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var iC={};C(iC,{up:()=>lJ,down:()=>eJ});import{sql as Dm}from"kysely";var rJ=new Set(["host","docker","agent-sandbox"]);async function lJ(_){let x=await Dm`
979
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var cC={};C(cC,{up:()=>sU,down:()=>bU});import{sql as HT}from"kysely";var dU=new Set(["host","docker","agent-sandbox"]);async function sU(_){let x=await HT`
980
980
  SELECT id, metadata FROM "connections"
981
981
  WHERE connection_type = 'VIRTUAL'
982
982
  AND metadata IS NOT NULL
983
983
  AND metadata LIKE '%vmMap%'
984
- `.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 T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}let y=X.runnerKind;if(y!==void 0&&!rJ.has(y)){T=!0;continue}J[j]=X}if(Object.keys(J).length>0)m[E]=J;else T=!0}if(!T)continue;N.vmMap=m;let z=JSON.stringify(N);await Dm`
984
+ `.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 U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){m=!0;continue}let y=X.runnerKind;if(y!==void 0&&!dU.has(y)){m=!0;continue}U[j]=X}if(Object.keys(U).length>0)T[E]=U;else m=!0}if(!m)continue;N.vmMap=T;let z=JSON.stringify(N);await HT`
985
985
  UPDATE "connections"
986
986
  SET metadata = ${z}
987
987
  WHERE id = ${u.id}
988
- `.execute(_)}}async function eJ(_){}var cC={};C(cC,{up:()=>dJ,down:()=>bJ});import{sql as X_}from"kysely";async function dJ(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(X_`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(X_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(X_`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 X_`
988
+ `.execute(_)}}async function bU(_){}var hC={};C(hC,{up:()=>_J,down:()=>xJ});import{sql as X_}from"kysely";async function _J(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(X_`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(X_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(X_`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 X_`
989
989
  CREATE INDEX async_research_jobs_active_idx
990
990
  ON async_research_jobs (status, last_polled_at)
991
991
  WHERE status IN ('pending', 'polling')
@@ -993,24 +993,24 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
993
993
  ALTER TABLE async_research_jobs
994
994
  ADD CONSTRAINT chk_async_research_jobs_status
995
995
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
996
- `.execute(_)}async function bJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var hC={};C(hC,{up:()=>sJ,down:()=>_P});async function sJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function _P(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var tC={};C(tC,{up:()=>xP,down:()=>uP});import{sql as s}from"kysely";async function xP(_){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`
996
+ `.execute(_)}async function xJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var tC={};C(tC,{up:()=>uJ,down:()=>CJ});async function uJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function CJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var oC={};C(oC,{up:()=>KJ,down:()=>NJ});import{sql as b}from"kysely";async function KJ(_){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`
997
997
  ALTER TABLE secrets
998
998
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
999
- `.execute(_),await s`
999
+ `.execute(_),await b`
1000
1000
  ALTER TABLE secrets
1001
1001
  ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
1002
1002
  (scope = 'user' AND user_id IS NOT NULL)
1003
1003
  OR (scope = 'organization' AND user_id IS NULL)
1004
1004
  )
1005
- `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await s`
1005
+ `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await b`
1006
1006
  CREATE UNIQUE INDEX idx_secrets_user_name
1007
1007
  ON secrets (organization_id, user_id, lower(name))
1008
1008
  WHERE scope = 'user'
1009
- `.execute(_),await s`
1009
+ `.execute(_),await b`
1010
1010
  CREATE UNIQUE INDEX idx_secrets_org_name
1011
1011
  ON secrets (organization_id, lower(name))
1012
1012
  WHERE scope = 'organization'
1013
- `.execute(_)}async function uP(_){await _.schema.dropTable("secrets").execute()}var oC={};C(oC,{up:()=>CP,down:()=>KP});async function CP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function KP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var aC={};C(aC,{up:()=>TP,down:()=>mP});import{sql as NP}from"kysely";async function TP(_){await NP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function mP(_){}var rC={};C(rC,{up:()=>zP,down:()=>EP});import{sql as p_}from"kysely";async function zP(_){await p_`
1013
+ `.execute(_)}async function NJ(_){await _.schema.dropTable("secrets").execute()}var aC={};C(aC,{up:()=>mJ,down:()=>TJ});async function mJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function TJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var rC={};C(rC,{up:()=>EJ,down:()=>$J});import{sql as zJ}from"kysely";async function EJ(_){await zJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function $J(_){}var lC={};C(lC,{up:()=>PJ,down:()=>UJ});import{sql as p_}from"kysely";async function PJ(_){await p_`
1014
1014
  ALTER TABLE sandbox_runner_state
1015
1015
  RENAME COLUMN runner_kind TO sandbox_provider_kind
1016
1016
  `.execute(_),await p_`
@@ -1048,7 +1048,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1048
1048
  EXCEPTION WHEN undefined_table THEN
1049
1049
  NULL;
1050
1050
  END; $$
1051
- `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function EP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await p_`
1051
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function UJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await p_`
1052
1052
  ALTER TABLE sandbox_runner_state
1053
1053
  RENAME COLUMN sandbox_provider_kind TO runner_kind
1054
1054
  `.execute(_),await p_`
@@ -1086,7 +1086,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1086
1086
  EXCEPTION WHEN undefined_table THEN
1087
1087
  NULL;
1088
1088
  END; $$
1089
- `.execute(_)}var lC={};C(lC,{up:()=>$P,down:()=>UP});import{sql as Hm}from"kysely";async function $P(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await Hm`
1089
+ `.execute(_)}var eC={};C(eC,{up:()=>JJ,down:()=>QJ});import{sql as MT}from"kysely";async function JJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await MT`
1090
1090
  DO $$ BEGIN
1091
1091
  UPDATE virtualmcps v
1092
1092
  SET metadata = jsonb_set(
@@ -1125,7 +1125,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1125
1125
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
1126
1126
  NULL;
1127
1127
  END; $$
1128
- `.execute(_)}async function UP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await Hm`
1128
+ `.execute(_)}async function QJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await MT`
1129
1129
  DO $$ BEGIN
1130
1130
  UPDATE virtualmcps v
1131
1131
  SET metadata = jsonb_set(
@@ -1158,7 +1158,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1158
1158
  EXCEPTION WHEN undefined_table THEN
1159
1159
  NULL;
1160
1160
  END; $$
1161
- `.execute(_)}var eC={};C(eC,{up:()=>JP,down:()=>PP});import{sql as Mm}from"kysely";async function JP(_){await Mm`
1161
+ `.execute(_)}var dC={};C(dC,{up:()=>XJ,down:()=>ZJ});import{sql as RT}from"kysely";async function XJ(_){await RT`
1162
1162
  UPDATE connections c
1163
1163
  SET metadata = (
1164
1164
  jsonb_set(
@@ -1202,7 +1202,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1202
1202
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
1203
1203
  WHERE entry ? 'vmId'
1204
1204
  );
1205
- `.execute(_),await Mm`
1205
+ `.execute(_),await RT`
1206
1206
  UPDATE connections c
1207
1207
  SET metadata = (
1208
1208
  jsonb_set(
@@ -1256,10 +1256,10 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1256
1256
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1257
1257
  WHERE inner_entry ? 'runnerKind'
1258
1258
  );
1259
- `.execute(_)}async function PP(_){}var dC={};C(dC,{up:()=>XP,down:()=>ZP});import{sql as QP}from"kysely";async function XP(_){await QP`
1259
+ `.execute(_)}async function ZJ(_){}var sC={};C(sC,{up:()=>jJ,down:()=>LJ});import{sql as WJ}from"kysely";async function jJ(_){await WJ`
1260
1260
  DELETE FROM ai_provider_keys
1261
1261
  WHERE provider_id IN ('claude-code', 'codex')
1262
- `.execute(_)}async function ZP(_){}var bC={};C(bC,{up:()=>WP,down:()=>jP});import{sql as g_}from"kysely";async function WP(_){await g_`
1262
+ `.execute(_)}async function LJ(_){}var bC={};C(bC,{up:()=>FJ,down:()=>YJ});import{sql as g_}from"kysely";async function FJ(_){await g_`
1263
1263
  UPDATE sandbox_runner_state
1264
1264
  SET sandbox_provider_kind = 'desktop'
1265
1265
  WHERE sandbox_provider_kind = 'remote-user'
@@ -1357,13 +1357,13 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1357
1357
  UPDATE threads
1358
1358
  SET sandbox_provider_kind = 'desktop'
1359
1359
  WHERE sandbox_provider_kind = 'remote-user'
1360
- `.execute(_)}async function jP(_){}var sC={};C(sC,{up:()=>LP,down:()=>FP});import{sql as Z_}from"kysely";async function LP(_){await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`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 FP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await Z_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var _K={};C(_K,{up:()=>YP,down:()=>DP});import{sql as Rm}from"kysely";async function YP(_){await Rm`
1360
+ `.execute(_)}async function YJ(_){}var _K={};C(_K,{up:()=>DJ,down:()=>HJ});import{sql as Z_}from"kysely";async function DJ(_){await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`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 HJ(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await Z_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var xK={};C(xK,{up:()=>MJ,down:()=>RJ});import{sql as BT}from"kysely";async function MJ(_){await BT`
1361
1361
  ALTER TABLE organization_domains
1362
1362
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
1363
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function DP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await Rm`
1363
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function RJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await BT`
1364
1364
  ALTER TABLE organization_domains
1365
1365
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
1366
- `.execute(_)}var xK={};C(xK,{up:()=>HP,down:()=>MP});import{sql as q_}from"kysely";async function HP(_){await q_`
1366
+ `.execute(_)}var uK={};C(uK,{up:()=>BJ,down:()=>GJ});import{sql as q_}from"kysely";async function BJ(_){await q_`
1367
1367
  UPDATE sandbox_runner_state
1368
1368
  SET sandbox_provider_kind = CASE sandbox_provider_kind
1369
1369
  WHEN 'docker' THEN 'local-docker'
@@ -1452,19 +1452,19 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1452
1452
  WHERE c.connection_type = 'VIRTUAL'
1453
1453
  AND c.metadata IS NOT NULL
1454
1454
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
1455
- `.execute(_)}async function MP(_){}var uK={};C(uK,{up:()=>BP,down:()=>GP});import{sql as Bm}from"kysely";var RP=["GLOBAL_SEARCH"];async function BP(_){let x=await Bm`
1455
+ `.execute(_)}async function GJ(_){}var CK={};C(CK,{up:()=>SJ,down:()=>fJ});import{sql as GT}from"kysely";var OJ=["GLOBAL_SEARCH"];async function SJ(_){let x=await GT`
1456
1456
  SELECT id, permission FROM "organizationRole"
1457
- `.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 T=K,m=Array.from(new Set([...T,...RP]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await Bm`
1457
+ `.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,...OJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await GT`
1458
1458
  UPDATE "organizationRole"
1459
1459
  SET permission = ${z}
1460
1460
  WHERE id = ${u.id}
1461
- `.execute(_)}}async function GP(_){}var KK={};C(KK,{up:()=>OP,down:()=>SP});import{sql as CK}from"kysely";async function OP(_){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(CK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(CK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await CK`
1461
+ `.execute(_)}}async function fJ(_){}var NK={};C(NK,{up:()=>AJ,down:()=>IJ});import{sql as KK}from"kysely";async function AJ(_){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(KK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(KK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await KK`
1462
1462
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
1463
1463
  ON org_file_configs (organization_id, lower(name))
1464
- `.execute(_)}async function SP(_){await _.schema.dropTable("org_file_configs").execute()}var NK={};C(NK,{up:()=>fP,down:()=>AP});import{sql as v}from"kysely";async function fP(_){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`
1464
+ `.execute(_)}async function IJ(_){await _.schema.dropTable("org_file_configs").execute()}var mK={};C(mK,{up:()=>yJ,down:()=>VJ});import{sql as v}from"kysely";async function yJ(_){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`
1465
1465
  ALTER TABLE automations
1466
1466
  ALTER COLUMN virtual_mcp_id SET NOT NULL
1467
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function AP(_){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`
1467
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function VJ(_){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`
1468
1468
  ALTER TABLE automations
1469
1469
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
1470
1470
  `.execute(_),await v`
@@ -1486,25 +1486,25 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1486
1486
  AND tool_input IS NOT NULL
1487
1487
  )
1488
1488
  )
1489
- `.execute(_)}var TK={};C(TK,{up:()=>IP,down:()=>yP});async function IP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function yP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var zK={};C(zK,{up:()=>VP,down:()=>wP});import{sql as mK}from"kysely";var i_="local-docker";async function VP(_){await mK`delete from sandbox_runner_state where sandbox_provider_kind = ${i_}`.execute(_);let x=await mK`
1489
+ `.execute(_)}var TK={};C(TK,{up:()=>wJ,down:()=>kJ});async function wJ(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function kJ(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var EK={};C(EK,{up:()=>nJ,down:()=>vJ});import{sql as zK}from"kysely";var i_="local-docker";async function nJ(_){await zK`delete from sandbox_runner_state where sandbox_provider_kind = ${i_}`.execute(_);let x=await zK`
1490
1490
  SELECT id, metadata FROM "connections"
1491
1491
  WHERE connection_type = 'VIRTUAL'
1492
1492
  AND metadata IS NOT NULL
1493
1493
  AND metadata LIKE ${"%"+i_+"%"}
1494
- `.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 T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}if(i_ in X){T=!0;let y={...X};if(delete y[i_],Object.keys(y).length>0)J[j]=y}else J[j]=X}if(Object.keys(J).length>0)m[E]=J;else T=!0}if(!T)continue;N.sandboxMap=m;let z=JSON.stringify(N);await mK`
1494
+ `.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 U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){m=!0;continue}if(i_ in X){m=!0;let y={...X};if(delete y[i_],Object.keys(y).length>0)U[j]=y}else U[j]=X}if(Object.keys(U).length>0)T[E]=U;else m=!0}if(!m)continue;N.sandboxMap=T;let z=JSON.stringify(N);await zK`
1495
1495
  UPDATE "connections"
1496
1496
  SET metadata = ${z}
1497
1497
  WHERE id = ${u.id}
1498
- `.execute(_)}}async function wP(_){}var EK={};C(EK,{up:()=>kP,down:()=>nP});import{sql as c_}from"kysely";async function kP(_){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 c_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await c_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await c_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await c_`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 nP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var $K={};C($K,{up:()=>vP,down:()=>pP});async function vP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function pP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var UK={};C(UK,{up:()=>gP,down:()=>qP});async function gP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function qP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var JK={};C(JK,{up:()=>iP,down:()=>cP});async function iP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function cP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var PK={};C(PK,{up:()=>hP,down:()=>tP});async function hP(_){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 tP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var QK={};C(QK,{up:()=>oP,down:()=>aP});async function oP(_){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 aP(_){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 ZK={};C(ZK,{up:()=>lP,down:()=>eP});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function XK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function h_(_){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 rP(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[T,m]of Object.entries(_)){if(!__(m)){K[T]=m;continue}let z={};for(let[E,$]of Object.entries(m)){if(!__($)){z[E]=$;continue}let J={};for(let[j,X]of Object.entries($)){if(j===x){if(N=!0,!(u in $))J[u]=XK(X,x,u);else if(!h_($[u])&&h_(X))J[u]=XK(X,x,u);continue}let y=XK(X,x,u);if(y!==X)N=!0;if(j===u&&j in J&&h_(J[j])&&!h_(y))continue;J[j]=y}z[E]=J}K[T]=z}return{sandboxMap:K,changed:N}}async function Gm(_,x,u){let N=await k`
1498
+ `.execute(_)}}async function vJ(_){}var $K={};C($K,{up:()=>pJ,down:()=>gJ});import{sql as c_}from"kysely";async function pJ(_){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 c_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await c_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await c_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await c_`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 gJ(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var PK={};C(PK,{up:()=>qJ,down:()=>iJ});async function qJ(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function iJ(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var UK={};C(UK,{up:()=>cJ,down:()=>hJ});async function cJ(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function hJ(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var JK={};C(JK,{up:()=>tJ,down:()=>oJ});async function tJ(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function oJ(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var QK={};C(QK,{up:()=>aJ,down:()=>rJ});async function aJ(_){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 rJ(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var XK={};C(XK,{up:()=>lJ,down:()=>eJ});async function lJ(_){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 eJ(_){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 WK={};C(WK,{up:()=>sJ,down:()=>bJ});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function ZK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function h_(_){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 dJ(_,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 U={};for(let[j,X]of Object.entries($)){if(j===x){if(N=!0,!(u in $))U[u]=ZK(X,x,u);else if(!h_($[u])&&h_(X))U[u]=ZK(X,x,u);continue}let y=ZK(X,x,u);if(y!==X)N=!0;if(j===u&&j in U&&h_(U[j])&&!h_(y))continue;U[j]=y}z[E]=U}K[m]=z}return{sandboxMap:K,changed:N}}async function OT(_,x,u){let N=await k`
1499
1499
  SELECT id, metadata FROM connections
1500
1500
  WHERE connection_type = 'VIRTUAL'
1501
1501
  AND metadata IS NOT NULL
1502
1502
  AND metadata LIKE ${"%"+x+"%"}
1503
- `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)}catch{continue}let m=rP(T.sandboxMap,x,u);if(!m?.changed)continue;T.sandboxMap=m.sandboxMap,await k`
1503
+ `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=dJ(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
1504
1504
  UPDATE connections
1505
- SET metadata = ${JSON.stringify(T)}
1505
+ SET metadata = ${JSON.stringify(m)}
1506
1506
  WHERE id = ${K.id}
1507
- `.execute(_)}}async function lP(_){await k`
1507
+ `.execute(_)}}async function sJ(_){await k`
1508
1508
  UPDATE threads
1509
1509
  SET sandbox_provider_kind = ${A}
1510
1510
  WHERE sandbox_provider_kind = ${f}
@@ -1533,7 +1533,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1533
1533
  UPDATE sandbox_runner_state
1534
1534
  SET sandbox_provider_kind = ${A}
1535
1535
  WHERE sandbox_provider_kind = ${f}
1536
- `.execute(_),await Gm(_,f,A)}async function eP(_){await k`
1536
+ `.execute(_),await OT(_,f,A)}async function bJ(_){await k`
1537
1537
  UPDATE threads
1538
1538
  SET sandbox_provider_kind = ${f}
1539
1539
  WHERE sandbox_provider_kind = ${A}
@@ -1562,7 +1562,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1562
1562
  UPDATE sandbox_runner_state
1563
1563
  SET sandbox_provider_kind = ${f}
1564
1564
  WHERE sandbox_provider_kind = ${A}
1565
- `.execute(_),await Gm(_,A,f)}var WK={};C(WK,{up:()=>dP,down:()=>bP});import{sql as g}from"kysely";async function dP(_){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`
1565
+ `.execute(_),await OT(_,A,f)}var jK={};C(jK,{up:()=>_Q,down:()=>xQ});import{sql as g}from"kysely";async function _Q(_){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`
1566
1566
  CREATE INDEX idx_org_fs_entry_parent
1567
1567
  ON org_fs_entry (organization_id, volume, parent)
1568
1568
  WHERE deleted_at IS NULL
@@ -1570,7 +1570,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1570
1570
  CREATE INDEX idx_org_fs_entry_usage
1571
1571
  ON org_fs_entry (organization_id, volume, size)
1572
1572
  WHERE kind = 'file' AND deleted_at IS NULL
1573
- `.execute(_)}async function bP(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var jK={};C(jK,{up:()=>sP,down:()=>_Q});async function sP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function _Q(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var LK={};C(LK,{up:()=>xQ,down:()=>uQ});import{sql as Om}from"kysely";async function xQ(_){await Om`
1573
+ `.execute(_)}async function xQ(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var LK={};C(LK,{up:()=>uQ,down:()=>CQ});async function uQ(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function CQ(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var FK={};C(FK,{up:()=>KQ,down:()=>NQ});import{sql as ST}from"kysely";async function KQ(_){await ST`
1574
1574
  INSERT INTO "organization" (id, name, slug, "createdAt")
1575
1575
  SELECT
1576
1576
  'org_orgfs_public_skills',
@@ -1584,13 +1584,13 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1584
1584
  END,
1585
1585
  now()
1586
1586
  ON CONFLICT (id) DO NOTHING
1587
- `.execute(_)}async function uQ(_){await Om`
1587
+ `.execute(_)}async function NQ(_){await ST`
1588
1588
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
1589
- `.execute(_)}var FK={};C(FK,{up:()=>CQ,down:()=>KQ});async function CQ(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function KQ(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var YK={};C(YK,{up:()=>NQ,down:()=>TQ});import{sql as Sm}from"kysely";async function NQ(_){await Sm`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function TQ(_){await Sm`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var DK={};C(DK,{up:()=>zQ,down:()=>EQ});import{sql as mQ}from"kysely";async function zQ(_){await mQ`
1589
+ `.execute(_)}var YK={};C(YK,{up:()=>mQ,down:()=>TQ});async function mQ(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function TQ(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var DK={};C(DK,{up:()=>zQ,down:()=>EQ});import{sql as fT}from"kysely";async function zQ(_){await fT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function EQ(_){await fT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var HK={};C(HK,{up:()=>PQ,down:()=>UQ});import{sql as $Q}from"kysely";async function PQ(_){await $Q`
1590
1590
  UPDATE downstream_tokens
1591
1591
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1592
1592
  WHERE "expiresAt" IS NULL
1593
- `.execute(_)}async function EQ(_){}var HK={};C(HK,{up:()=>$Q,down:()=>UQ});async function $Q(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function UQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var MK={};C(MK,{up:()=>JQ,down:()=>PQ});async function JQ(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function PQ(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var RK={};C(RK,{up:()=>QQ,down:()=>XQ});async function QQ(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function XQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var BK={};C(BK,{up:()=>ZQ,down:()=>WQ});async function ZQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function WQ(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var GK={};C(GK,{up:()=>jQ,down:()=>LQ});async function jQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function LQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var OK={};C(OK,{up:()=>FQ,down:()=>YQ});import{sql as fm}from"kysely";async function FQ(_){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(fm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(fm`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function YQ(_){await _.schema.dropTable("org_sites").execute()}var SK={};C(SK,{up:()=>DQ,down:()=>HQ});async function DQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function HQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var fK={};C(fK,{up:()=>MQ,down:()=>RQ});import{sql as R}from"kysely";async function MQ(_){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`
1593
+ `.execute(_)}async function UQ(_){}var MK={};C(MK,{up:()=>JQ,down:()=>QQ});async function JQ(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function QQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var RK={};C(RK,{up:()=>XQ,down:()=>ZQ});async function XQ(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function ZQ(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var BK={};C(BK,{up:()=>WQ,down:()=>jQ});async function WQ(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function jQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var GK={};C(GK,{up:()=>LQ,down:()=>FQ});async function LQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function FQ(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var OK={};C(OK,{up:()=>YQ,down:()=>DQ});async function YQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function DQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var SK={};C(SK,{up:()=>HQ,down:()=>MQ});import{sql as AT}from"kysely";async function HQ(_){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(AT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(AT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function MQ(_){await _.schema.dropTable("org_sites").execute()}var fK={};C(fK,{up:()=>RQ,down:()=>BQ});async function RQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function BQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var AK={};C(AK,{up:()=>GQ,down:()=>OQ});import{sql as R}from"kysely";async function GQ(_){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`
1594
1594
  UPDATE organization_domains
1595
1595
  SET
1596
1596
  id = gen_random_uuid()::text,
@@ -1599,18 +1599,18 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1599
1599
  verification_method = 'email',
1600
1600
  verified_at = created_at
1601
1601
  WHERE id IS NULL
1602
- `.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 RQ(_){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`
1602
+ `.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 OQ(_){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`
1603
1603
  UPDATE organization_domains
1604
1604
  SET auto_join_enabled = (join_mode = 'auto')
1605
- `.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 AK={};C(AK,{up:()=>BQ,down:()=>GQ});import{sql as t_}from"kysely";async function BQ(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(t_`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(t_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t_`now()`)).execute(),await t_`
1605
+ `.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 IK={};C(IK,{up:()=>SQ,down:()=>fQ});import{sql as t_}from"kysely";async function SQ(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(t_`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(t_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t_`now()`)).execute(),await t_`
1606
1606
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1607
1607
  ON organization_join_requests (organization_id, user_id)
1608
1608
  WHERE status = 'pending'
1609
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function GQ(_){await _.schema.dropTable("organization_join_requests").execute()}var IK={};C(IK,{up:()=>OQ,down:()=>SQ});async function OQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function SQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var yK={};C(yK,{up:()=>fQ,down:()=>AQ});async function fQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function AQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var kK={};C(kK,{up:()=>VQ,splitWebResearchTier:()=>wK,down:()=>wQ,__testing:()=>yQ});function IQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function VK(_){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 wK(_){if(!_||VK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,T=null,m=null;if(u)if(IQ(u.modelId))m=u;else T=u;return{..._,tiers:{...K,web_search:T,deep_research:m}}}var yQ={splitWebResearchTier:wK,isAlreadySplit:VK};async function VQ(_){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(VK(N))continue;let K=wK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function wQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var nK={};C(nK,{up:()=>kQ,down:()=>nQ});import{sql as W_}from"kysely";async function kQ(_){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(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await W_`
1609
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function fQ(_){await _.schema.dropTable("organization_join_requests").execute()}var yK={};C(yK,{up:()=>AQ,down:()=>IQ});async function AQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function IQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var VK={};C(VK,{up:()=>yQ,down:()=>VQ});async function yQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function VQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var nK={};C(nK,{up:()=>nQ,splitWebResearchTier:()=>kK,down:()=>vQ,__testing:()=>kQ});function wQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function wK(_){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 kK(_){if(!_||wK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(wQ(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var kQ={splitWebResearchTier:kK,isAlreadySplit:wK};async function nQ(_){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(wK(N))continue;let K=kK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function vQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var vK={};C(vK,{up:()=>pQ,down:()=>gQ});import{sql as W_}from"kysely";async function pQ(_){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(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await W_`
1610
1610
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1611
1611
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1612
1612
  WHERE revoked_at IS NULL
1613
- `.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(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`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 nQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var vK={};C(vK,{up:()=>vQ,down:()=>pQ});async function vQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function pQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var pK={};C(pK,{up:()=>gQ,down:()=>qQ});import{sql as t}from"kysely";async function gQ(_){await t`
1613
+ `.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(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`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 gQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var pK={};C(pK,{up:()=>qQ,down:()=>iQ});async function qQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function iQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var gK={};C(gK,{up:()=>cQ,down:()=>hQ});import{sql as t}from"kysely";async function cQ(_){await t`
1614
1614
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1615
1615
  RETURNS jsonb AS $fn$
1616
1616
  BEGIN
@@ -1669,7 +1669,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1669
1669
  BEFORE INSERT ON connection_aggregations
1670
1670
  FOR EACH ROW
1671
1671
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1672
- `.execute(_)}async function qQ(_){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 qK={};C(qK,{up:()=>iQ,down:()=>cQ});import{sql as gK}from"kysely";async function iQ(_){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(gK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(gK`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(gK`false`)).execute()}async function cQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var iK={};C(iK,{up:()=>hQ,down:()=>tQ});async function hQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function tQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var cK={};C(cK,{up:()=>oQ,down:()=>aQ});async function oQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function aQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var hK={};C(hK,{up:()=>rQ,down:()=>lQ});async function rQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function lQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var tK={};C(tK,{up:()=>dQ,down:()=>bQ});import{sql as eQ}from"kysely";async function dQ(_){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 bQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var oK={};C(oK,{up:()=>sQ,down:()=>_X});async function sQ(_){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 _X(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var aK={};C(aK,{up:()=>uX,down:()=>CX});import{sql as xX}from"kysely";async function uX(_){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(xX`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 CX(_){await _.schema.dropTable("task_board_item_prs").execute()}var rK={};C(rK,{up:()=>NX,down:()=>TX});import{sql as KX}from"kysely";async function NX(_){await KX`
1672
+ `.execute(_)}async function hQ(_){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 iK={};C(iK,{up:()=>tQ,down:()=>oQ});import{sql as qK}from"kysely";async function tQ(_){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(qK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qK`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(qK`false`)).execute()}async function oQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var cK={};C(cK,{up:()=>aQ,down:()=>rQ});async function aQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function rQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var hK={};C(hK,{up:()=>lQ,down:()=>eQ});async function lQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function eQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var tK={};C(tK,{up:()=>dQ,down:()=>sQ});async function dQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function sQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var oK={};C(oK,{up:()=>_X,down:()=>xX});import{sql as bQ}from"kysely";async function _X(_){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(bQ`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 xX(_){await _.schema.dropTable("task_board_item_threads").execute()}var aK={};C(aK,{up:()=>uX,down:()=>CX});async function uX(_){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 CX(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var rK={};C(rK,{up:()=>NX,down:()=>mX});import{sql as KX}from"kysely";async function NX(_){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(KX`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 mX(_){await _.schema.dropTable("task_board_item_prs").execute()}var lK={};C(lK,{up:()=>zX,down:()=>EX});import{sql as TX}from"kysely";async function zX(_){await TX`
1673
1673
  DELETE FROM member
1674
1674
  WHERE id IN (
1675
1675
  SELECT id FROM (
@@ -1688,38 +1688,38 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1688
1688
  ) ranked
1689
1689
  WHERE ranked.rn > 1
1690
1690
  )
1691
- `.execute(_)}async function TX(_){}var lK={};C(lK,{up:()=>mX,down:()=>zX});async function mX(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function zX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var eK={};C(eK,{up:()=>EX,down:()=>$X});async function EX(_){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 $X(_){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 dK={};C(dK,{up:()=>JX,down:()=>PX});import{sql as UX}from"kysely";async function JX(_){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(UX`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 PX(_){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 bK={};C(bK,{up:()=>XX,down:()=>ZX});import{sql as QX}from"kysely";async function XX(_){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(QX`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 ZX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var sK={};C(sK,{up:()=>WX,down:()=>jX});import{sql as o_}from"kysely";async function WX(_){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(o_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",o_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",o_`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 jX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var _N={};C(_N,{up:()=>LX,down:()=>FX});import{sql as a_}from"kysely";async function LX(_){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(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`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(a_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await a_`
1691
+ `.execute(_)}async function EX(_){}var eK={};C(eK,{up:()=>$X,down:()=>PX});async function $X(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function PX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var dK={};C(dK,{up:()=>UX,down:()=>JX});async function UX(_){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 JX(_){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 sK={};C(sK,{up:()=>XX,down:()=>ZX});import{sql as QX}from"kysely";async function XX(_){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(QX`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 ZX(_){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 bK={};C(bK,{up:()=>jX,down:()=>LX});import{sql as WX}from"kysely";async function jX(_){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(WX`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 LX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var _N={};C(_N,{up:()=>FX,down:()=>YX});import{sql as o_}from"kysely";async function FX(_){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(o_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",o_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",o_`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 YX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var xN={};C(xN,{up:()=>DX,down:()=>HX});import{sql as a_}from"kysely";async function DX(_){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(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`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(a_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await a_`
1692
1692
  insert into organization_billing (organization_id, legacy)
1693
1693
  select id, true from organization
1694
1694
  on conflict (organization_id) do nothing
1695
- `.execute(_)}async function FX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var xN={};C(xN,{up:()=>YX,down:()=>DX});import{sql as Am}from"kysely";async function YX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Am`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(Am`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function DX(_){await _.schema.dropTable("seat_change_log").execute()}var uN={};C(uN,{up:()=>HX,down:()=>MX});async function HX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function MX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var CN={};C(CN,{up:()=>RX,down:()=>BX});import{sql as Im}from"kysely";async function RX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await Im`
1695
+ `.execute(_)}async function HX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var uN={};C(uN,{up:()=>MX,down:()=>RX});import{sql as IT}from"kysely";async function MX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(IT`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(IT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function RX(_){await _.schema.dropTable("seat_change_log").execute()}var CN={};C(CN,{up:()=>BX,down:()=>GX});async function BX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function GX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var KN={};C(KN,{up:()=>OX,down:()=>SX});import{sql as yT}from"kysely";async function OX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await yT`
1696
1696
  create unique index organization_billing_stripe_subscription_id_uq
1697
1697
  on organization_billing (stripe_subscription_id)
1698
1698
  where stripe_subscription_id is not null
1699
- `.execute(_)}async function BX(_){await Im`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var KN={};C(KN,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function OX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var NN={};C(NN,{up:()=>SX,down:()=>fX});import{sql as ym}from"kysely";async function SX(_){await ym`
1699
+ `.execute(_)}async function SX(_){await yT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var NN={};C(NN,{up:()=>fX,down:()=>AX});async function fX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function AX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var mN={};C(mN,{up:()=>IX,down:()=>yX});import{sql as VT}from"kysely";async function IX(_){await VT`
1700
1700
  create index idx_org_billing_benefits_pending
1701
1701
  on organization_billing (updated_at)
1702
1702
  where benefits_reference_id is not null
1703
- `.execute(_)}async function fX(_){await ym`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var TN={};C(TN,{up:()=>AX,down:()=>IX});import{sql as Vm}from"kysely";async function AX(_){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(Vm`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Vm`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 IX(_){await _.schema.dropTable("user_model_preferences").execute()}var mN={};C(mN,{up:()=>yX,down:()=>VX});async function yX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function VX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var zN={};C(zN,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function kX(_){}var EN={};C(EN,{up:()=>nX,down:()=>vX});import{sql as wm}from"kysely";async function nX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await wm`
1703
+ `.execute(_)}async function yX(_){await VT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var TN={};C(TN,{up:()=>VX,down:()=>wX});import{sql as wT}from"kysely";async function VX(_){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(wT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(wT`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 wX(_){await _.schema.dropTable("user_model_preferences").execute()}var zN={};C(zN,{up:()=>kX,down:()=>nX});async function kX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function nX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var EN={};C(EN,{up:()=>vX,down:()=>pX});async function vX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function pX(_){}var $N={};C($N,{up:()=>gX,down:()=>qX});import{sql as kT}from"kysely";async function gX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await kT`
1704
1704
  UPDATE organization_settings
1705
1705
  SET flags = jsonb_build_object('reports_only', reports_only)
1706
1706
  WHERE reports_only IS NOT NULL
1707
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function vX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await wm`
1707
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function qX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await kT`
1708
1708
  UPDATE organization_settings
1709
1709
  SET reports_only = (flags ->> 'reports_only')::boolean
1710
1710
  WHERE flags ? 'reports_only'
1711
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var $N={};C($N,{up:()=>gX,down:()=>qX});import{sql as pX}from"kysely";async function gX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await pX`
1711
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var PN={};C(PN,{up:()=>cX,down:()=>hX});import{sql as iX}from"kysely";async function cX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await iX`
1712
1712
  update task_board_items
1713
1713
  set sort_order = -extract(epoch from created_at)
1714
- `.execute(_)}async function qX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var UN={};C(UN,{up:()=>iX,down:()=>cX,ACTIONS:()=>km});import{sql as r_}from"kysely";var km=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function iX(_){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(r_`now()`)).addCheckConstraint("chk_task_board_activity_action",r_`action IN (${r_.join(km.map((x)=>r_.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 cX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var PN={};C(PN,{up:()=>hX,down:()=>tX,ACTIONS:()=>JN});import{sql as j_}from"kysely";var JN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function hX(_){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 nm(_,JN)}async function tX(_){await nm(_,JN.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 nm(_,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 XN={};C(XN,{up:()=>aX,down:()=>rX});import{sql as vm}from"kysely";function QN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function oX(_){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 QN(N)}catch{return QN(_.connection_url)}if(_.title)return QN(_.title);return _.id}async function aX(_){let x=await vm`
1714
+ `.execute(_)}async function hX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var UN={};C(UN,{up:()=>tX,down:()=>oX,ACTIONS:()=>nT});import{sql as r_}from"kysely";var nT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function tX(_){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(r_`now()`)).addCheckConstraint("chk_task_board_activity_action",r_`action IN (${r_.join(nT.map((x)=>r_.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 oX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var QN={};C(QN,{up:()=>aX,down:()=>rX,ACTIONS:()=>JN});import{sql as j_}from"kysely";var JN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function aX(_){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 vT(_,JN)}async function rX(_){await vT(_,JN.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 vT(_,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 ZN={};C(ZN,{up:()=>eX,down:()=>dX});import{sql as pT}from"kysely";function XN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function lX(_){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 XN(N)}catch{return XN(_.connection_url)}if(_.title)return XN(_.title);return _.id}async function eX(_){let x=await pT`
1715
1715
  SELECT id, app_name, connection_url, title, slug
1716
1716
  FROM connections
1717
1717
  WHERE connection_type != 'VIRTUAL'
1718
- `.execute(_),u=0;for(let N of x.rows){let K=oX(N);if(K===N.slug)continue;await vm`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 rX(){}var ZN={};C(ZN,{up:()=>eX,down:()=>dX});import{sql as lX}from"kysely";async function eX(_){await lX`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 dX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var jN={};C(jN,{up:()=>sX,down:()=>_Z,ACTIONS:()=>WN});import{sql as l_}from"kysely";var WN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],bX=new Set(["review_requested","review_approved","review_changes_requested"]);async function sX(_){await pm(_,WN)}async function _Z(_){await pm(_,WN.filter((x)=>!bX.has(x)))}async function pm(_,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 LN={};C(LN,{up:()=>uZ,down:()=>CZ});import{sql as xZ}from"kysely";async function uZ(_){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 CZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var YN={};C(YN,{up:()=>NZ,down:()=>TZ,ACTIONS:()=>FN});import{sql as e_}from"kysely";var FN=["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"],KZ=new Set(["merge_conflict_resolution"]);async function NZ(_){await gm(_,FN)}async function TZ(_){await gm(_,FN.filter((x)=>!KZ.has(x)))}async function gm(_,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 DN={};C(DN,{up:()=>mZ,down:()=>zZ});import{sql as L_}from"kysely";async function mZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await L_`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 zZ(_){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 L_`
1718
+ `.execute(_),u=0;for(let N of x.rows){let K=lX(N);if(K===N.slug)continue;await pT`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 dX(){}var WN={};C(WN,{up:()=>bX,down:()=>_Z});import{sql as sX}from"kysely";async function bX(_){await sX`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 LN={};C(LN,{up:()=>uZ,down:()=>CZ,ACTIONS:()=>jN});import{sql as l_}from"kysely";var jN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],xZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function uZ(_){await gT(_,jN)}async function CZ(_){await gT(_,jN.filter((x)=>!xZ.has(x)))}async function gT(_,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 FN={};C(FN,{up:()=>NZ,down:()=>mZ});import{sql as KZ}from"kysely";async function NZ(_){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(KZ`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 mZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var DN={};C(DN,{up:()=>zZ,down:()=>EZ,ACTIONS:()=>YN});import{sql as e_}from"kysely";var YN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],TZ=new Set(["merge_conflict_resolution"]);async function zZ(_){await qT(_,YN)}async function EZ(_){await qT(_,YN.filter((x)=>!TZ.has(x)))}async function qT(_,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 HN={};C(HN,{up:()=>$Z,down:()=>PZ});import{sql as L_}from"kysely";async function $Z(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await L_`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 PZ(_){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 L_`
1719
1719
  create index idx_org_billing_benefits_pending
1720
1720
  on organization_billing (updated_at)
1721
1721
  where benefits_reference_id is not null
1722
- `.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_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(L_`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(L_`now()`)).execute()}var HN={};C(HN,{up:()=>EZ,down:()=>$Z});import{sql as d_}from"kysely";async function EZ(_){await d_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await d_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function $Z(_){await d_`
1722
+ `.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_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(L_`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(L_`now()`)).execute()}var MN={};C(MN,{up:()=>UZ,down:()=>JZ});import{sql as d_}from"kysely";async function UZ(_){await d_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await d_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function JZ(_){await d_`
1723
1723
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1724
1724
  RETURNS trigger AS $fn$
1725
1725
  BEGIN
@@ -1745,35 +1745,35 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1745
1745
  BEFORE INSERT ON connection_aggregations
1746
1746
  FOR EACH ROW
1747
1747
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1748
- `.execute(_)}var MN={};C(MN,{up:()=>UZ,down:()=>JZ});import{sql as qm}from"kysely";async function UZ(_){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(qm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qm`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function JZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var RN={};C(RN,{up:()=>PZ,down:()=>QZ});import{sql as im}from"kysely";async function PZ(_){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(im`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(im`now()`)).execute()}async function QZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var GN={};C(GN,{up:()=>XZ,down:()=>ZZ});import{sql as BN}from"kysely";async function XZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(BN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await BN`
1748
+ `.execute(_)}var RN={};C(RN,{up:()=>QZ,down:()=>XZ});import{sql as iT}from"kysely";async function QZ(_){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(iT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function XZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var BN={};C(BN,{up:()=>ZZ,down:()=>WZ});import{sql as cT}from"kysely";async function ZZ(_){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(cT`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(cT`now()`)).execute()}async function WZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var ON={};C(ON,{up:()=>jZ,down:()=>LZ});import{sql as GN}from"kysely";async function jZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(GN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await GN`
1749
1749
  create index idx_task_quota_claims_org_period_live
1750
1750
  on task_quota_claims (organization_id, period_key)
1751
1751
  where state <> 'released'
1752
- `.execute(_)}async function ZZ(_){await BN`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 ON={};C(ON,{up:()=>WZ,down:()=>jZ});async function WZ(_){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 jZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var SN={};C(SN,{up:()=>LZ,down:()=>FZ});async function LZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function FZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var fN={};C(fN,{up:()=>YZ,down:()=>DZ});import{sql as cm}from"kysely";async function YZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(cm`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(cm`monthly_task_executions > 0`)).execute()}async function DZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var AN={};C(AN,{up:()=>MZ,down:()=>RZ});import{sql as HZ}from"kysely";async function MZ(_){await HZ`
1752
+ `.execute(_)}async function LZ(_){await GN`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 SN={};C(SN,{up:()=>FZ,down:()=>YZ});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 YZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var fN={};C(fN,{up:()=>DZ,down:()=>HZ});async function DZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function HZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var AN={};C(AN,{up:()=>MZ,down:()=>RZ});import{sql as hT}from"kysely";async function MZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(hT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(hT`monthly_task_executions > 0`)).execute()}async function RZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var IN={};C(IN,{up:()=>GZ,down:()=>OZ});import{sql as BZ}from"kysely";async function GZ(_){await BZ`
1753
1753
  CREATE INDEX idx_task_board_items_pending_review
1754
1754
  ON task_board_items (updated_at, id)
1755
1755
  WHERE status = 'in_review'
1756
1756
  AND assignee_id = 'super-agent'
1757
1757
  AND dismissed_at IS NULL
1758
- `.execute(_)}async function RZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var IN={};C(IN,{up:()=>BZ,down:()=>GZ});import{sql as hm}from"kysely";async function BZ(_){await hm`
1758
+ `.execute(_)}async function OZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var yN={};C(yN,{up:()=>SZ,down:()=>fZ});import{sql as tT}from"kysely";async function SZ(_){await tT`
1759
1759
  ALTER TABLE task_board_items
1760
1760
  ADD COLUMN last_swept_at timestamptz
1761
- `.execute(_)}async function GZ(_){await hm`
1761
+ `.execute(_)}async function fZ(_){await tT`
1762
1762
  ALTER TABLE task_board_items
1763
1763
  DROP COLUMN last_swept_at
1764
- `.execute(_)}var yN={};C(yN,{up:()=>OZ,down:()=>SZ});import{sql as b_}from"kysely";async function OZ(_){await b_`
1764
+ `.execute(_)}var VN={};C(VN,{up:()=>AZ,down:()=>IZ});import{sql as s_}from"kysely";async function AZ(_){await s_`
1765
1765
  ALTER TABLE task_board_items
1766
1766
  ADD COLUMN retry_at timestamptz,
1767
1767
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
1768
- `.execute(_),await b_`
1768
+ `.execute(_),await s_`
1769
1769
  CREATE INDEX idx_task_board_items_retry_due
1770
1770
  ON task_board_items (retry_at)
1771
1771
  WHERE retry_at IS NOT NULL
1772
- `.execute(_)}async function SZ(_){await b_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await b_`
1772
+ `.execute(_)}async function IZ(_){await s_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await s_`
1773
1773
  ALTER TABLE task_board_items
1774
1774
  DROP COLUMN retry_at,
1775
1775
  DROP COLUMN retry_attempts
1776
- `.execute(_)}var wN={};C(wN,{up:()=>fZ,down:()=>AZ});import{sql as VN}from"kysely";async function fZ(_){await VN`
1776
+ `.execute(_)}var kN={};C(kN,{up:()=>yZ,down:()=>VZ});import{sql as wN}from"kysely";async function yZ(_){await wN`
1777
1777
  CREATE TABLE org_repo_sync (
1778
1778
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1779
1779
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1791,11 +1791,11 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1791
1791
  updated_at timestamptz NOT NULL DEFAULT now(),
1792
1792
  UNIQUE (organization_id, volume)
1793
1793
  )
1794
- `.execute(_),await VN`
1794
+ `.execute(_),await wN`
1795
1795
  CREATE INDEX idx_org_repo_sync_enabled
1796
1796
  ON org_repo_sync (organization_id)
1797
1797
  WHERE enabled
1798
- `.execute(_)}async function AZ(_){await VN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var nN={};C(nN,{up:()=>yZ,down:()=>VZ,ACTIONS:()=>kN});import{sql as s_}from"kysely";var kN=["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"],IZ=new Set(["merge_failed"]);async function yZ(_){await tm(_,kN)}async function VZ(_){await tm(_,kN.filter((x)=>!IZ.has(x)))}async function tm(_,x){await s_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await s_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${s_.join(x.map((u)=>s_.lit(u)))}))`.execute(_)}var vN={};C(vN,{up:()=>wZ,down:()=>kZ});async function wZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function kZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var pN={};C(pN,{up:()=>nZ,down:()=>vZ});import{sql as x_}from"kysely";async function nZ(_){await x_`
1798
+ `.execute(_)}async function VZ(_){await wN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var vN={};C(vN,{up:()=>kZ,down:()=>nZ,ACTIONS:()=>nN});import{sql as b_}from"kysely";var nN=["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"],wZ=new Set(["merge_failed"]);async function kZ(_){await oT(_,nN)}async function nZ(_){await oT(_,nN.filter((x)=>!wZ.has(x)))}async function oT(_,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 pN={};C(pN,{up:()=>vZ,down:()=>pZ});async function vZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function pZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var gN={};C(gN,{up:()=>gZ,down:()=>qZ});import{sql as x_}from"kysely";async function gZ(_){await x_`
1799
1799
  CREATE TABLE org_jira_integrations (
1800
1800
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1801
1801
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1834,7 +1834,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1834
1834
  created_at timestamptz NOT NULL DEFAULT now(),
1835
1835
  UNIQUE (organization_id, jira_comment_id)
1836
1836
  )
1837
- `.execute(_)}async function vZ(_){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 gN={};C(gN,{up:()=>gZ,down:()=>qZ});import{sql as pZ}from"kysely";async function gZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await pZ`
1837
+ `.execute(_)}async function qZ(_){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 qN={};C(qN,{up:()=>cZ,down:()=>hZ});import{sql as iZ}from"kysely";async function cZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await iZ`
1838
1838
  update task_board_items as t
1839
1839
  set key_seq = numbered.seq
1840
1840
  from (
@@ -1847,25 +1847,25 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1847
1847
  from task_board_items
1848
1848
  ) as numbered
1849
1849
  where t.id = numbered.id
1850
- `.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 qZ(_){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 qN={};C(qN,{up:()=>iZ,down:()=>cZ});import{sql as om}from"kysely";async function iZ(_){await om`
1850
+ `.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 hZ(_){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 iN={};C(iN,{up:()=>tZ,down:()=>oZ});import{sql as aT}from"kysely";async function tZ(_){await aT`
1851
1851
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1852
1852
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1853
1853
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1854
- `.execute(_)}async function cZ(_){await om`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var cN={};C(cN,{up:()=>hZ,down:()=>tZ});import{sql as iN}from"kysely";async function hZ(_){await iN`
1854
+ `.execute(_)}async function oZ(_){await aT`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var hN={};C(hN,{up:()=>aZ,down:()=>rZ});import{sql as cN}from"kysely";async function aZ(_){await cN`
1855
1855
  ALTER TABLE thread_message_parts
1856
1856
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1857
- `.execute(_),await iN`
1857
+ `.execute(_),await cN`
1858
1858
  ALTER TABLE thread_message_parts
1859
1859
  ALTER COLUMN persisted_at SET DEFAULT now()
1860
- `.execute(_)}async function tZ(_){await iN`
1860
+ `.execute(_)}async function rZ(_){await cN`
1861
1861
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1862
- `.execute(_)}var hN={};C(hN,{up:()=>oZ,down:()=>aZ});async function oZ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function aZ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var tN={};C(tN,{up:()=>lZ,down:()=>eZ});import{sql as rZ}from"kysely";async function lZ(_){await rZ`
1862
+ `.execute(_)}var tN={};C(tN,{up:()=>lZ,down:()=>eZ});async function lZ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function eZ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var oN={};C(oN,{up:()=>sZ,down:()=>bZ});import{sql as dZ}from"kysely";async function sZ(_){await dZ`
1863
1863
  CREATE INDEX idx_task_board_items_done_sweep
1864
1864
  ON task_board_items (updated_at)
1865
1865
  WHERE status = 'done' AND dismissed_at IS NULL
1866
- `.execute(_)}async function eZ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var oN={};C(oN,{up:()=>dZ,down:()=>bZ,TYPES:()=>am});import{sql as q}from"kysely";var am=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function dZ(_){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(am.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1866
+ `.execute(_)}async function bZ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var aN={};C(aN,{up:()=>_6,down:()=>x6,TYPES:()=>rT});import{sql as q}from"kysely";var rT=["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(rT.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1867
1867
  (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
1868
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function bZ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var aN={};C(aN,{up:()=>sZ,down:()=>_6});import{sql as rm}from"kysely";async function sZ(_){await rm`
1868
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function x6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var rN={};C(rN,{up:()=>u6,down:()=>C6});import{sql as lT}from"kysely";async function u6(_){await lT`
1869
1869
  UPDATE org_jira_integrations
1870
1870
  SET status_mapping = (
1871
1871
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1880,7 +1880,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1880
1880
  SELECT 1 FROM jsonb_each(status_mapping)
1881
1881
  WHERE jsonb_typeof(value) = 'array'
1882
1882
  )
1883
- `.execute(_)}async function _6(_){await rm`
1883
+ `.execute(_)}async function C6(_){await lT`
1884
1884
  UPDATE org_jira_integrations
1885
1885
  SET status_mapping = (
1886
1886
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1895,7 +1895,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1895
1895
  SELECT 1 FROM jsonb_each(status_mapping)
1896
1896
  WHERE jsonb_typeof(value) = 'array'
1897
1897
  )
1898
- `.execute(_)}var lN={};C(lN,{up:()=>u6,down:()=>C6,TYPES:()=>rN});import{sql as _x}from"kysely";var rN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],x6=new Set(["mentioned"]);async function u6(_){await lm(_,rN)}async function C6(_){await lm(_,rN.filter((x)=>!x6.has(x)))}async function lm(_,x){await _x`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await _x`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${_x.join(x.map((u)=>_x.lit(u)))}))`.execute(_)}var dN={};C(dN,{up:()=>T6,down:()=>m6,ACTIONS:()=>eN});import{sql as i}from"kysely";var K6=["bug","feature","chore","spike","security"],eN=["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"],N6=new Set(["type_changed"]);async function T6(_){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(K6.map((x)=>i.lit(x)))}))`.execute(_),await em(_,eN)}async function m6(_){await em(_,eN.filter((x)=>!N6.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 em(_,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 bN={};C(bN,{up:()=>z6,down:()=>E6});import{sql as W}from"kysely";var bm=["bug","feature","chore","spike","security"],dm="chore";async function z6(_){await W`UPDATE task_board_items SET type = ${W.lit(dm)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(dm)}`.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(bm.map((x)=>W.lit(x)))}))`.execute(_)}async function E6(_){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(bm.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 sN={};C(sN,{up:()=>$6,down:()=>U6});import{sql as u_}from"kysely";async function $6(_){await u_`
1898
+ `.execute(_)}var eN={};C(eN,{up:()=>N6,down:()=>m6,TYPES:()=>lN});import{sql as _x}from"kysely";var lN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],K6=new Set(["mentioned"]);async function N6(_){await eT(_,lN)}async function m6(_){await eT(_,lN.filter((x)=>!K6.has(x)))}async function eT(_,x){await _x`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await _x`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${_x.join(x.map((u)=>_x.lit(u)))}))`.execute(_)}var sN={};C(sN,{up:()=>E6,down:()=>$6,ACTIONS:()=>dN});import{sql as i}from"kysely";var T6=["bug","feature","chore","spike","security"],dN=["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"],z6=new Set(["type_changed"]);async function E6(_){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(T6.map((x)=>i.lit(x)))}))`.execute(_),await dT(_,dN)}async function $6(_){await dT(_,dN.filter((x)=>!z6.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 dT(_,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 bN={};C(bN,{up:()=>P6,down:()=>U6});import{sql as W}from"kysely";var bT=["bug","feature","chore","spike","security"],sT="chore";async function P6(_){await W`UPDATE task_board_items SET type = ${W.lit(sT)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(sT)}`.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(bT.map((x)=>W.lit(x)))}))`.execute(_)}async function U6(_){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(bT.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 _m={};C(_m,{up:()=>J6,down:()=>Q6});import{sql as u_}from"kysely";async function J6(_){await u_`
1899
1899
  CREATE TABLE task_board_sprints (
1900
1900
  id text PRIMARY KEY,
1901
1901
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1920,34 +1920,34 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1920
1920
  CREATE INDEX idx_task_board_items_sprint
1921
1921
  ON task_board_items (organization_id, sprint_id)
1922
1922
  WHERE sprint_id IS NOT NULL
1923
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function U6(_){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 _T={};C(_T,{up:()=>P6,down:()=>Q6});import{sql as J6}from"kysely";async function P6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function Q6(_){await J6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var xT={};C(xT,{up:()=>Z6,down:()=>W6});import{sql as X6}from"kysely";async function Z6(_){await X6`
1923
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function Q6(_){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 xm={};C(xm,{up:()=>Z6,down:()=>W6});import{sql as X6}from"kysely";async function Z6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function W6(_){await X6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var um={};C(um,{up:()=>L6,down:()=>F6});import{sql as j6}from"kysely";async function L6(_){await j6`
1924
1924
  UPDATE org_jira_integrations
1925
1925
  SET last_synced_at = NULL,
1926
1926
  last_sync_error = NULL
1927
1927
  WHERE last_synced_at IS NOT NULL
1928
- `.execute(_)}async function W6(){}var uT={};C(uT,{up:()=>L6,down:()=>F6});import{sql as j6}from"kysely";async function L6(_){await j6`
1928
+ `.execute(_)}async function F6(){}var Cm={};C(Cm,{up:()=>D6,down:()=>H6});import{sql as Y6}from"kysely";async function D6(_){await Y6`
1929
1929
  UPDATE org_jira_integrations
1930
1930
  SET last_synced_at = NULL,
1931
1931
  last_sync_error = NULL
1932
1932
  WHERE last_synced_at IS NOT NULL
1933
- `.execute(_)}async function F6(){}var KT={};C(KT,{up:()=>Y6,down:()=>D6});import{sql as CT}from"kysely";async function Y6(_){await CT`
1933
+ `.execute(_)}async function H6(){}var Nm={};C(Nm,{up:()=>M6,down:()=>R6});import{sql as Km}from"kysely";async function M6(_){await Km`
1934
1934
  ALTER TABLE org_jira_integrations
1935
1935
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1936
- `.execute(_),await CT`
1936
+ `.execute(_),await Km`
1937
1937
  UPDATE org_jira_integrations
1938
1938
  SET rescan_pending = true
1939
1939
  WHERE last_synced_at IS NULL
1940
- `.execute(_)}async function D6(_){await CT`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var NT={};C(NT,{up:()=>H6,down:()=>M6});async function H6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function M6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var TT={};C(TT,{up:()=>R6,down:()=>B6});import{sql as sm}from"kysely";async function R6(_){await sm`
1940
+ `.execute(_)}async function R6(_){await Km`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var mm={};C(mm,{up:()=>B6,down:()=>G6});async function B6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function G6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Tm={};C(Tm,{up:()=>O6,down:()=>S6});import{sql as _z}from"kysely";async function O6(_){await _z`
1941
1941
  ALTER TABLE invitation
1942
1942
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1943
- `.execute(_)}async function B6(_){await sm`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var zT={};C(zT,{up:()=>G6,down:()=>O6});import{sql as mT}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(mT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(mT`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 mT`
1943
+ `.execute(_)}async function S6(_){await _z`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Em={};C(Em,{up:()=>f6,down:()=>A6});import{sql as zm}from"kysely";async function f6(_){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(zm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(zm`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 zm`
1944
1944
  INSERT INTO task_board_column_automations
1945
1945
  (id, organization_id, column_key, prompt)
1946
1946
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1947
1947
  FROM org_jira_integrations
1948
1948
  WHERE auto_delegate = true
1949
1949
  ON CONFLICT DO NOTHING
1950
- `.execute(_)}async function O6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var ET={};C(ET,{up:()=>S6,down:()=>f6});import{sql as F_}from"kysely";async function S6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await F_`
1950
+ `.execute(_)}async function A6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var $m={};C($m,{up:()=>I6,down:()=>y6});import{sql as F_}from"kysely";async function I6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await F_`
1951
1951
  UPDATE task_board_items i
1952
1952
  SET review_cycle_started_at = (
1953
1953
  SELECT max(a.occurred_at)
@@ -1963,13 +1963,13 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1963
1963
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1964
1964
  AND assignee_id = 'super-agent'
1965
1965
  AND dismissed_at IS NULL
1966
- `.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function f6(_){await F_`
1966
+ `.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function y6(_){await F_`
1967
1967
  CREATE INDEX idx_task_board_items_pending_review
1968
1968
  ON task_board_items (updated_at, id)
1969
1969
  WHERE status = 'in_review'
1970
1970
  AND assignee_id = 'super-agent'
1971
1971
  AND dismissed_at IS NULL
1972
- `.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var $T={};C($T,{up:()=>A6,down:()=>I6});import{sql as _z}from"kysely";async function A6(_){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(_z`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(_z`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 I6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var JT={};C(JT,{up:()=>V6,down:()=>w6,ACTIONS:()=>UT});import{sql as xx}from"kysely";var UT=["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"],y6=new Set(["review_verdict_requested"]);async function V6(_){await xz(_,UT)}async function w6(_){await xz(_,UT.filter((x)=>!y6.has(x)))}async function xz(_,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 PT={};C(PT,{up:()=>k6,down:()=>n6});import{sql as ux}from"kysely";async function k6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await ux`
1972
+ `.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var Pm={};C(Pm,{up:()=>V6,down:()=>w6});import{sql as xz}from"kysely";async function V6(_){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(xz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(xz`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 w6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Jm={};C(Jm,{up:()=>n6,down:()=>v6,ACTIONS:()=>Um});import{sql as xx}from"kysely";var Um=["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"],k6=new Set(["review_verdict_requested"]);async function n6(_){await uz(_,Um)}async function v6(_){await uz(_,Um.filter((x)=>!k6.has(x)))}async function uz(_,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 Qm={};C(Qm,{up:()=>p6,down:()=>g6});import{sql as ux}from"kysely";async function p6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await ux`
1973
1973
  ALTER TABLE task_board_items
1974
1974
  ADD CONSTRAINT chk_task_board_items_column_org
1975
1975
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
@@ -1979,13 +1979,13 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
1979
1979
  FOREIGN KEY (board_column_org, status)
1980
1980
  REFERENCES task_board_columns (organization_id, key)
1981
1981
  ON DELETE RESTRICT
1982
- `.execute(_)}async function n6(_){await ux`
1982
+ `.execute(_)}async function g6(_){await ux`
1983
1983
  ALTER TABLE task_board_items
1984
1984
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1985
1985
  `.execute(_),await ux`
1986
1986
  ALTER TABLE task_board_items
1987
1987
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
1988
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var QT={};C(QT,{up:()=>v6,down:()=>p6});async function v6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function p6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var ZT={};C(ZT,{up:()=>q6,down:()=>i6,ACTIONS:()=>XT});import{sql as Cx}from"kysely";var XT=["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"],g6=new Set(["sprint_changed"]);async function q6(_){await uz(_,XT)}async function i6(_){await uz(_,XT.filter((x)=>!g6.has(x)))}async function uz(_,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 WT={};C(WT,{up:()=>h6,down:()=>t6});import{sql as c6}from"kysely";async function h6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(c6`'[]'::jsonb`)).execute()}async function t6(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var jT={};C(jT,{up:()=>o6,down:()=>a6});import{sql as Cz}from"kysely";async function o6(_){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(Cz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Cz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function a6(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var LT={};C(LT,{up:()=>l6,down:()=>e6});import{sql as r6}from"kysely";async function l6(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await r6`
1988
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var Xm={};C(Xm,{up:()=>q6,down:()=>i6});async function q6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function i6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Wm={};C(Wm,{up:()=>h6,down:()=>t6,ACTIONS:()=>Zm});import{sql as Cx}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","sprint_changed"],c6=new Set(["sprint_changed"]);async function h6(_){await Cz(_,Zm)}async function t6(_){await Cz(_,Zm.filter((x)=>!c6.has(x)))}async function Cz(_,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 jm={};C(jm,{up:()=>a6,down:()=>r6});import{sql as o6}from"kysely";async function a6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(o6`'[]'::jsonb`)).execute()}async function r6(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Lm={};C(Lm,{up:()=>l6,down:()=>e6});import{sql as Kz}from"kysely";async function l6(_){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(Kz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Kz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function e6(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Fm={};C(Fm,{up:()=>s6,down:()=>b6});import{sql as d6}from"kysely";async function s6(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await d6`
1989
1989
  UPDATE task_board_items i
1990
1990
  SET external_url = t.url,
1991
1991
  description = CASE
@@ -2004,11 +2004,11 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2004
2004
  ON g.organization_id = l.organization_id
2005
2005
  ) t
2006
2006
  WHERE t.item_id = i.id
2007
- `.execute(_)}async function e6(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var FT={};C(FT,{up:()=>b6,down:()=>s6,ACTIONS:()=>Kz});import{sql as Q}from"kysely";var d6=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Kz=["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 b6(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await Q`DROP TABLE IF EXISTS task_board_columns`.execute(_),await Q`
2007
+ `.execute(_)}async function b6(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Ym={};C(Ym,{up:()=>xW,down:()=>uW,ACTIONS:()=>Nz});import{sql as Q}from"kysely";var _W=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Nz=["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 xW(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await Q`DROP TABLE IF EXISTS task_board_columns`.execute(_),await Q`
2008
2008
  UPDATE task_board_items
2009
2009
  SET status = 'triage'
2010
- WHERE status NOT IN (${Q.join(d6.map((x)=>Q.lit(x)))})
2011
- `.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await _W(_,Kz),await Q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await Q`
2010
+ WHERE status NOT IN (${Q.join(_W.map((x)=>Q.lit(x)))})
2011
+ `.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await CW(_,Nz),await Q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await Q`
2012
2012
  ALTER TABLE task_board_item_jira_links
2013
2013
  DROP COLUMN IF EXISTS jira_updated_at,
2014
2014
  DROP COLUMN IF EXISTS jira_status,
@@ -2020,7 +2020,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2020
2020
  DROP COLUMN IF EXISTS last_synced_at,
2021
2021
  DROP COLUMN IF EXISTS last_sync_error,
2022
2022
  DROP COLUMN IF EXISTS rescan_pending
2023
- `.execute(_)}async function s6(){}async function _W(_,x){await Q`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Q`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Q.join(x.map((u)=>Q.lit(u)))}))`.execute(_)}var YT={};C(YT,{up:()=>xW,down:()=>uW});import{sql as C_}from"kysely";async function xW(_){await C_`
2023
+ `.execute(_)}async function uW(){}async function CW(_,x){await Q`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Q`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Q.join(x.map((u)=>Q.lit(u)))}))`.execute(_)}var Dm={};C(Dm,{up:()=>KW,down:()=>NW});import{sql as C_}from"kysely";async function KW(_){await C_`
2024
2024
  ALTER TABLE task_board_items
2025
2025
  ADD COLUMN IF NOT EXISTS source text
2026
2026
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
@@ -2041,24 +2041,24 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2041
2041
  created_at timestamptz NOT NULL DEFAULT now(),
2042
2042
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
2043
2043
  )
2044
- `.execute(_)}async function uW(_){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 DT={};C(DT,{up:()=>CW,down:()=>KW});import{sql as Y_}from"kysely";async function CW(_){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(Y_`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(Y_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).execute(),await Y_`
2044
+ `.execute(_)}async function NW(_){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 Hm={};C(Hm,{up:()=>mW,down:()=>TW});import{sql as Y_}from"kysely";async function mW(_){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(Y_`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(Y_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).execute(),await Y_`
2045
2045
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
2046
2046
  ON organization_notices (organization_id)
2047
2047
  WHERE resolved_at IS NULL
2048
2048
  `.execute(_),await Y_`
2049
2049
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
2050
2050
  ON organization_notices (organization_id, created_at DESC)
2051
- `.execute(_)}async function KW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var MT={};C(MT,{up:()=>QW,down:()=>XW});import{sql as HT}from"kysely";import{sql as aj}from"kysely";var Nz=50000000,NW=1e5;function TW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>NW)return 1/0;let T=K.pop();if(typeof T==="string")u+=T.length;else if(Array.isArray(T))for(let m of T)K.push(m);else if(T!==null&&typeof T==="object")for(let m of Object.values(T))K.push(m)}return u}var mW=/\u0000/g,zW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,EW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,$W=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,UW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function JW(_){return _.replace(mW,"").replace(zW,"\uFFFD").replace(EW,"$1***@").replace($W,"$1***").replace(UW,"[base64 data omitted]")}function PW(_){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 Tz(_){if(TW(_,Nz)>Nz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return JW(u);if(PW(u))return{type:"text",text:"[image omitted]"};return u})}var mz=20;async function QW(_){let x=await HT`
2051
+ `.execute(_)}async function TW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Rm={};C(Rm,{up:()=>WW,down:()=>jW});import{sql as Mm}from"kysely";import{sql as ej}from"kysely";var mz=50000000,zW=1e5;function EW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>zW)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 $W=/\u0000/g,PW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,UW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,JW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,QW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function XW(_){return _.replace($W,"").replace(PW,"\uFFFD").replace(UW,"$1***@").replace(JW,"$1***").replace(QW,"[base64 data omitted]")}function ZW(_){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 Tz(_){if(EW(_,mz)>mz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return XW(u);if(ZW(u))return{type:"text",text:"[image omitted]"};return u})}var zz=20;async function WW(_){let x=await Mm`
2052
2052
  SELECT id FROM thread_message_parts
2053
2053
  WHERE pg_column_size(payload) > 8192
2054
2054
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
2055
- `.execute(_);for(let u=0;u<x.rows.length;u+=mz){let N=x.rows.slice(u,u+mz).map((T)=>T.id),K=await HT`
2055
+ `.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 Mm`
2056
2056
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
2057
- `.execute(_);for(let T of K.rows){let m=Tz(T.payload);if(m===JSON.stringify(T.payload))continue;await HT`
2057
+ `.execute(_);for(let m of K.rows){let T=Tz(m.payload);if(T===JSON.stringify(m.payload))continue;await Mm`
2058
2058
  UPDATE thread_message_parts
2059
- SET payload = ${m}::jsonb
2060
- WHERE id = ${T.id}
2061
- `.execute(_)}}}async function XW(){}var RT={};C(RT,{up:()=>ZW,down:()=>WW});async function ZW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function WW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var BT={};C(BT,{up:()=>jW,down:()=>LW});import{sql as U}from"kysely";async function jW(_){await U`
2059
+ SET payload = ${T}::jsonb
2060
+ WHERE id = ${m.id}
2061
+ `.execute(_)}}}async function jW(){}var Bm={};C(Bm,{up:()=>LW,down:()=>FW});async function LW(_){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 Gm={};C(Gm,{up:()=>YW,down:()=>DW});import{sql as P}from"kysely";async function YW(_){await P`
2062
2062
  CREATE TABLE git_provider_accounts (
2063
2063
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
2064
2064
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -2076,7 +2076,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2076
2076
  updated_at timestamptz NOT NULL DEFAULT now(),
2077
2077
  UNIQUE (organization_id, host, external_account_id)
2078
2078
  )
2079
- `.execute(_),await U`
2079
+ `.execute(_),await P`
2080
2080
  CREATE TABLE git_provider_account_credentials (
2081
2081
  account_id text PRIMARY KEY REFERENCES git_provider_accounts(id) ON DELETE CASCADE,
2082
2082
  access_token text NOT NULL,
@@ -2089,7 +2089,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2089
2089
  created_at timestamptz NOT NULL DEFAULT now(),
2090
2090
  updated_at timestamptz NOT NULL DEFAULT now()
2091
2091
  )
2092
- `.execute(_),await U`
2092
+ `.execute(_),await P`
2093
2093
  CREATE TABLE git_provider_oauth_states (
2094
2094
  id text PRIMARY KEY,
2095
2095
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -2100,10 +2100,10 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2100
2100
  expires_at timestamptz NOT NULL,
2101
2101
  created_at timestamptz NOT NULL DEFAULT now()
2102
2102
  )
2103
- `.execute(_),await U`
2103
+ `.execute(_),await P`
2104
2104
  CREATE INDEX idx_git_provider_oauth_states_expires_at
2105
2105
  ON git_provider_oauth_states (expires_at)
2106
- `.execute(_),await U`
2106
+ `.execute(_),await P`
2107
2107
  CREATE TABLE repositories (
2108
2108
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
2109
2109
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -2120,27 +2120,27 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2120
2120
  created_at timestamptz NOT NULL DEFAULT now(),
2121
2121
  updated_at timestamptz NOT NULL DEFAULT now()
2122
2122
  )
2123
- `.execute(_),await U`
2123
+ `.execute(_),await P`
2124
2124
  CREATE UNIQUE INDEX uq_repositories_org_host_path
2125
2125
  ON repositories (organization_id, host, lower(path))
2126
- `.execute(_),await U`
2126
+ `.execute(_),await P`
2127
2127
  CREATE INDEX idx_repositories_account ON repositories (account_id)
2128
- `.execute(_),await U`
2128
+ `.execute(_),await P`
2129
2129
  ALTER TABLE task_board_items
2130
2130
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2131
- `.execute(_),await U`
2131
+ `.execute(_),await P`
2132
2132
  ALTER TABLE task_board_item_prs
2133
2133
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2134
- `.execute(_),await U`
2134
+ `.execute(_),await P`
2135
2135
  ALTER TABLE org_repo_sync
2136
2136
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2137
- `.execute(_),await U`
2137
+ `.execute(_),await P`
2138
2138
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id DROP NOT NULL
2139
- `.execute(_),await U`
2139
+ `.execute(_),await P`
2140
2140
  ALTER TABLE org_repo_sync
2141
2141
  ADD CONSTRAINT org_repo_sync_source_present
2142
2142
  CHECK (connection_id IS NOT NULL OR repository_id IS NOT NULL)
2143
- `.execute(_),await U`
2143
+ `.execute(_),await P`
2144
2144
  CREATE OR REPLACE FUNCTION git_provider_try_jsonb(t text)
2145
2145
  RETURNS jsonb AS $fn$
2146
2146
  BEGIN
@@ -2149,7 +2149,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2149
2149
  RETURN NULL;
2150
2150
  END;
2151
2151
  $fn$ LANGUAGE plpgsql IMMUTABLE;
2152
- `.execute(_),await U`
2152
+ `.execute(_),await P`
2153
2153
  INSERT INTO git_provider_accounts (
2154
2154
  organization_id, type, host, auth_kind, external_account_id, login,
2155
2155
  installation_id, credential_connection_id, created_by
@@ -2183,7 +2183,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2183
2183
  AND coalesce(s.owner, '') <> ''
2184
2184
  ORDER BY c.organization_id, s.installation_id, c.created_at ASC
2185
2185
  ON CONFLICT (organization_id, host, external_account_id) DO NOTHING
2186
- `.execute(_),await U`
2186
+ `.execute(_),await P`
2187
2187
  INSERT INTO repositories (
2188
2188
  organization_id, account_id, provider, host, path, external_id, web_url,
2189
2189
  legacy_connection_id, created_by
@@ -2220,7 +2220,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2220
2220
  ORDER BY c.organization_id, lower(s.owner || '/' || s.repo),
2221
2221
  coalesce(s.org_shared = 'true', false) DESC, c.created_at ASC
2222
2222
  ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
2223
- `.execute(_),await U`
2223
+ `.execute(_),await P`
2224
2224
  UPDATE repositories r
2225
2225
  SET external_id = s.repository_id
2226
2226
  FROM connections c
@@ -2235,7 +2235,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2235
2235
  AND c.organization_id = r.organization_id
2236
2236
  AND coalesce(s.repository_id, '') <> ''
2237
2237
  AND lower(s.owner || '/' || s.repo) = lower(r.path)
2238
- `.execute(_),await U`
2238
+ `.execute(_),await P`
2239
2239
  INSERT INTO repositories (
2240
2240
  organization_id, account_id, provider, host, path, web_url, created_by
2241
2241
  )
@@ -2259,7 +2259,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2259
2259
  AND g.name NOT LIKE '%/%'
2260
2260
  ORDER BY c.organization_id, lower(g.owner || '/' || g.name), c.created_at ASC
2261
2261
  ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
2262
- `.execute(_),await U`
2262
+ `.execute(_),await P`
2263
2263
  INSERT INTO repositories (
2264
2264
  organization_id, account_id, provider, host, path, web_url
2265
2265
  )
@@ -2277,7 +2277,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2277
2277
  WHERE EXISTS (SELECT 1 FROM organization o WHERE o.id = x.organization_id)
2278
2278
  ORDER BY x.organization_id, lower(x.path)
2279
2279
  ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
2280
- `.execute(_),await U`
2280
+ `.execute(_),await P`
2281
2281
  UPDATE task_board_items t
2282
2282
  SET repository_id = r.id
2283
2283
  FROM repositories r
@@ -2286,7 +2286,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2286
2286
  AND r.organization_id = t.organization_id
2287
2287
  AND r.host = 'github.com'
2288
2288
  AND lower(r.path) = lower(t.repo)
2289
- `.execute(_),await U`
2289
+ `.execute(_),await P`
2290
2290
  UPDATE task_board_item_prs p
2291
2291
  SET repository_id = r.id
2292
2292
  FROM repositories r
@@ -2294,7 +2294,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2294
2294
  AND r.organization_id = p.organization_id
2295
2295
  AND r.host = 'github.com'
2296
2296
  AND lower(r.path) = lower(p.repo_owner || '/' || p.repo_name)
2297
- `.execute(_),await U`
2297
+ `.execute(_),await P`
2298
2298
  UPDATE org_repo_sync s
2299
2299
  SET repository_id = r.id
2300
2300
  FROM repositories r
@@ -2302,11 +2302,11 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2302
2302
  AND r.organization_id = s.organization_id
2303
2303
  AND r.host = 'github.com'
2304
2304
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
2305
- `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function LW(_){await U`
2305
+ `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function DW(_){await P`
2306
2306
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
2307
- `.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
2307
+ `.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
2308
2308
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
2309
- `.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 GT={};C(GT,{up:()=>YW,down:()=>DW});import{sql as I}from"kysely";var FW=I`
2309
+ `.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var Om={};C(Om,{up:()=>MW,down:()=>RW});import{sql as I}from"kysely";var HW=I`
2310
2310
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
2311
2311
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
2312
2312
  BEGIN
@@ -2315,7 +2315,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2315
2315
  RETURN NULL;
2316
2316
  END;
2317
2317
  $$
2318
- `;async function YW(_){await FW.execute(_),await I`
2318
+ `;async function MW(_){await HW.execute(_),await I`
2319
2319
  ALTER TABLE connections
2320
2320
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2321
2321
  `.execute(_),await I`
@@ -2377,31 +2377,31 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
2377
2377
  AND r.host = 'github.com'
2378
2378
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
2379
2379
  ON CONFLICT (thread_id, repository_id) DO NOTHING
2380
- `.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function DW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
2380
+ `.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function RW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
2381
2381
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
2382
- `.execute(_)}var HW={"001-initial-schema":Uu,"002-organization-settings":Ju,"003-connection-schema-align":Pu,"004-remove-models-binding":Qu,"005-connection-configuration":Xu,"006-add-views-to-settings":Zu,"007-monitoring-logs":Wu,"008-event-bus":ju,"009-drop-audit-logs":Lu,"010-gateways":Fu,"011-gateway-icon":Yu,"012-gateway-tool-selection-mode":Du,"013-monitoring-user-agent-gateway":Hu,"014-gateway-resources-prompts":Mu,"015-monitoring-properties":Ru,"016-downstream-token-client-info":Bu,"017-downstream-token-remove-userid":Gu,"018-drop-gateway-tool-selection-strategy":Ou,"019-remove-gateway-is-default":Su,"020-enabled-plugins":fu,"021-threads":Au,"022-rename-gateway-to-virtual-mcp":Iu,"023-optimize-thread-indexes":yu,"024-consolidate-virtual-mcp":Vu,"025-add-monitoring-virtual-mcp-id":wu,"026-restrict-child-connection-delete":ku,"027-update-management-mcp-url":vu,"028-update-management-mcp-to-self":gu,"029-add-updated-by-to-connections":qu,"030-member-tags":iu,"031-add-dependency-mode":cu,"032-projects":hu,"033-thread-status":tu,"034-monitoring-dashboards":ou,"035-project-connections":au,"036-update-registry-url":ru,"037-ai-provider-keys":lu,"038-oauth-pkce-states":eu,"039-automations":du,"040-replace-next-run-at-with-last-run-at":bu,"041-ai-provider-keys-unique-constraint":su,"042-rename-mesh-mcp-to-cms-mcp":_C,"043-rename-cms-mcp-to-deco-cms":xC,"044-drop-connections-tools-column":uC,"045-thread-context-start-message":CC,"046-remove-object-storage-plugin":NC,"047-add-next-run-at":TC,"048-merge-projects-agents":zC,"049-remove-org-admin-projects":EC,"050-durable-agent-runs":$C,"051-org-sso":JC,"052-thread-agent-ids":PC,"053-registry-config":QC,"054-connection-slug":ZC,"055-spaces":WC,"056-automation-project-scope":jC,"057-thread-virtual-mcp-id":LC,"058-trigger-callback-tokens":FC,"059-kv":YC,"060-member-index":DC,"061-downstream-token-connection-index":HC,"062-private-registry":MC,"063-event-subscriptions-enabled-boolean":RC,"064-brand-context":BC,"065-organization-domains":GC,"066-brand-context-structured":OC,"067-threads-metadata":SC,"068-threads-branch":fC,"069-sandbox-runner-state":AC,"070-model-categories":IC,"071-default-home-agents":yC,"072-ai-provider-key-preset-id":VC,"073-backfill-basic-usage-roles":wC,"074-sandbox-runner-state-handle-nonunique":kC,"075-thread-inflight-async-jobs":nC,"076-automations-drop-agent-json":vC,"077-tier-only-model-selection":gC,"078-automation-tool-call-kind":qC,"079-strip-legacy-freestyle-vm-map-entries":iC,"080-async-research-jobs":cC,"081-async-research-jobs-result-content":hC,"082-secrets":tC,"083-thread-run-locally":oC,"084-drop-host-sandbox-rows":aC,"085-rename-runner-kind":rC,"086-thread-pins-and-vm-map-rekey":lC,"087-fix-vm-map-rekey":eC,"088-purge-cli-activate-keys":dC,"089-rename-remote-user-to-desktop":bC,"090-automation-webhook-triggers":sC,"091-organization-domains-allow-multi":_K,"092-sandbox-naming-uniformization":xK,"093-backfill-global-search-basic-usage":uK,"094-org-file-configs":KK,"095-remove-automation-tool-call-kind":NK,"096-org-file-configs-public-url-base":TK,"097-drop-local-docker-sandbox-state":zK,"098-thread-message-parts":EK,"099-run-fence":$K,"100-link-transport":UK,"101-cancel-requested-at":JK,"102-observational-agent":PK,"103-revert-observational-agent":QK,"104-agent-sandbox-provider-kind":ZK,"105-org-fs":WK,"106-automation-tools":jK,"107-org-fs-public-org":LK,"108-automation-max-agent-steps":FK,"109-thread-message-parts-per-message-seq":YK,"110-backfill-ghs-token-expiry":DK,"111-org-fs-thread-id":HK,"112-org-file-configs-credential-type":MK,"113-thread-failure-reason":RK,"114-run-acked-seq":BK,"115-thread-projected-seq":GK,"116-org-sites":OK,"117-org-file-configs-site-slug":SK,"118-organization-domains-multi-verify":fK,"119-organization-join-requests":AK,"120-org-fs-read-public":IK,"121-org-fs-share-password":yK,"122-split-web-research-tier":kK,"123-connection-credential-vault":nK,"124-drop-thread-projected-seq":vK,"125-github-child-single-parent":pK,"126-task-board":qK,"127-task-board-due-date":iK,"128-reports-only":cK,"129-task-board-assigned-by":hK,"130-task-board-thread-id":tK,"131-task-board-thread-link-cascade":oK,"132-task-board-item-prs":aK,"133-dedupe-duplicate-members":rK,"134-drop-task-board-enabled":lK,"135-task-board-item-fk-cascade":eK,"136-task-board-import-idempotency":dK,"137-agent-sandbox-runner-state":bK,"138-agent-sandbox-sessions":sK,"139-organization-billing":_N,"140-seat-change-log":xN,"141-benefits-sync-pending":uN,"142-stripe-event-watermark":CN,"143-armed-report-url":KN,"144-benefits-pending-index":NN,"145-user-model-preferences":TN,"146-organization-main-agent":mN,"147-drop-agent-sandbox-tables":zN,"148-org-flags":EN,"149-task-board-item-sort-order":$N,"150-task-board-activity":UN,"151-task-board-tags":PN,"152-repair-connection-slug":XN,"153-task-board-latest-assistant-part-index":ZN,"154-task-board-qa-activity":jN,"155-task-board-review-claims":LN,"156-task-board-conflict-activity":YN,"157-drop-seat-billing":DN,"158-drop-github-child-single-parent":HN,"159-task-board-comments":MN,"160-task-quota-billing":RN,"161-task-quota-claim-state":GN,"162-claude-subscriptions":ON,"163-task-board-item-dismissed":SN,"164-per-org-task-quota":fN,"165-task-board-pending-review-index":AN,"166-task-board-last-swept-at":IN,"167-task-board-run-retry":yN,"168-org-repo-sync":wN,"169-task-board-merge-failed-activity":nN,"170-task-board-item-repo":vN,"171-jira-integration":pN,"172-task-board-item-key-seq":gN,"173-thread-github-repo-connection-index":qN,"174-thread-message-parts-persisted-at":cN,"175-task-board-sprints":hN,"176-task-board-done-sweep-index":tN,"177-notifications":oN,"178-jira-status-mapping-array":aN,"179-notification-mentioned":lN,"180-task-board-item-type":dN,"181-task-board-item-type-required":bN,"182-task-board-sprints-entities":sN,"183-drop-jira-jql-filter":_T,"184-jira-rescan-after-scope-change":xT,"185-jira-rescan-existing-cards":uT,"186-jira-rescan-pending-flag":KT,"187-task-board-comment-thread":NT,"188-invitation-auto-accept":TT,"189-task-board-column-automations":zT,"190-task-board-review-cycle-started-at":ET,"191-task-board-columns":$T,"192-task-board-verdict-nudge-activity":JT,"193-task-board-status-column-fk":PT,"194-jira-link-sprint":QT,"195-task-board-sprint-activity":ZT,"196-task-board-column-tracker-statuses":WT,"197-task-board-prompts":jT,"198-task-board-external-url":LT,"199-drop-jira-mirror-and-org-columns":FT,"200-jira-run-trigger":YT,"201-organization-notices":DT,"202-redact-base64-thread-parts":MT,"203-task-board-preview-routes":RT,"204-git-provider-accounts-and-repositories":BT,"205-repository-references":GT,"206-repository-consumers":$u,"207-task-board-prs-repo-idx":Eu,"208-github-connect-flows":zu,"209-github-installation-authorization":mu,"210-github-repository-authorization":sx,"211-user-fs-org":bx,"212-coding-agent-mcp-excluded":_u,"213-bitbucket-git-provider":xu,"214-connections-sanitized-id-idx":rx,"215-commerce-discovery-repository":lx,"216-github-cli-auth":dx,"217-experiments":uu,"218-thread-message-parts-error-idx":Cu,"219-task-board-duplicate-reported-activity":Nu,"220-jira-automation-continue-pr":Tu,"221-remove-private-registry":$x,"222-org-git-credentials":Ux,"223-drop-org-main-agent-id":ax,"224-repository-sandbox-image":Jx,"225-thread-analytics-indexes":Qx,"226-deco-score-names":Zx,"227-task-board-finding-resolved-activity":jx,"228-org-voice-config":Ex,"229-jira-automation-from":Lx,"230-project-sidebar":Fx,"231-jira-chat-agent":Yx,"232-task-board-prompt-skills":Hx,"233-remove-jira-chat-agent":Rx,"234-task-board-comment-audience":Bx,"235-prune-empty-thread-dirs":Gx,"236-task-board-sprints":Sx,"237-org-sites-project-link":fx,"238-task-board-default-lanes":Ax,"239-task-board-retire-old-lanes":Ix,"240-task-board-restore-todo":yx,"241-automation-board-column-transition":Vx,"242-connection-url-slug":wx,"243-experiment-task-board-item":kx,"244-connection-url-slug-rollout-backfill":nx,"245-automation-system-key":vx,"246-automation-pr-ready-trigger":px,"247-automation-jira-transition":gx,"248-drop-retired-rule-tables":qx,"249-task-board-item-project":ix,"250-github-copilot-subscriptions":cx,"251-org-shared-plans":hx,"252-automation-linked-chat-trigger":tx,"253-automation-pr-builtin-triggers":ox},Kx=HW;import{getMigrations as u9}from"better-auth/db";import{sso as C9}from"@better-auth/sso";import{organization as K9}from"@decocms/better-auth/plugins";import{admin as N9,apiKey as T9,jwt as m9,magicLink as z9,mcp as E9,openAPI as $9}from"better-auth/plugins";import{emailOTP as U9}from"better-auth/plugins/email-otp";import{Kysely as rW,PostgresDialect as Wz}from"kysely";import{Pool as jz}from"pg";import{homedir as MW}from"os";var RW=new Set(["all","worker","api"]);function BW(_){let x=(_??"").trim();return RW.has(x)?x:"all"}var GW=new Set(["production","development","test"]);function OW(_){let x=(_??"").trim();return GW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function ST(_,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 ST(_,x,N)??u}function SW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),T=K>0?N.slice(0,K).trim():"",m=K>0?N.slice(K+1).trim():"";if(!T||!m){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=m}return x}function fW(_,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 OT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function AW(_){return _===void 0||_===""||_==="true"||_==="1"}function D_(_,x){return _||x}function zz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${MW()}/deco`,u=OW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:D_(_.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:D_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((T)=>T.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((T)=>T.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:ST("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((T)=>T.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:SW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:fW("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:OT(_.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:OT(_.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:AW(_.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:ST("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:BW(D_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:OT(_.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,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:D_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:D_(_.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://decoims.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};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 IW=null;function K_(){return IW??=Object.freeze(zz(process.env))}import{createContextKey as vW,metrics as pW,propagation as J8,ROOT_CONTEXT as P8,SpanStatusCode as Q8,trace as gW}from"@opentelemetry/api";import{logs as qW,SeverityNumber as fT}from"@opentelemetry/api-logs";import{OTLPLogExporter as W8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as iW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as F8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as D8}from"@opentelemetry/instrumentation-runtime-node";import{context as T5,propagation as m5,SpanKind as z5,SpanStatusCode as E5}from"@opentelemetry/api";var U5=globalThis.fetch;import{ExportResultCode as H5}from"@opentelemetry/core";import{ExportResultCode as Nx}from"@opentelemetry/core";import{mkdir as yW,rename as VW,writeFile as wW}from"fs/promises";import{join as Tx}from"path";class mx{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:Nx.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:Nx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Nx.FAILED}});return Promise.resolve({code:Nx.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 T=x.get(K.partition);if(!T)T=[],x.set(K.partition,T);T.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,T])=>this.writeNDJSON(T,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let m of u)if(m.status==="fulfilled")K.add(m.value);let T=_.filter((m)=>!K.has(m.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.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 yW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let T=`${crypto.randomUUID()}.ndjson`,m=Tx(K,`.${T}.tmp`),z=Tx(K,T),E=_.join(`
2382
+ `.execute(_)}var BW={"001-initial-schema":Uu,"002-organization-settings":Ju,"003-connection-schema-align":Qu,"004-remove-models-binding":Xu,"005-connection-configuration":Zu,"006-add-views-to-settings":Wu,"007-monitoring-logs":ju,"008-event-bus":Lu,"009-drop-audit-logs":Fu,"010-gateways":Yu,"011-gateway-icon":Du,"012-gateway-tool-selection-mode":Hu,"013-monitoring-user-agent-gateway":Mu,"014-gateway-resources-prompts":Ru,"015-monitoring-properties":Bu,"016-downstream-token-client-info":Gu,"017-downstream-token-remove-userid":Ou,"018-drop-gateway-tool-selection-strategy":Su,"019-remove-gateway-is-default":fu,"020-enabled-plugins":Au,"021-threads":Iu,"022-rename-gateway-to-virtual-mcp":yu,"023-optimize-thread-indexes":Vu,"024-consolidate-virtual-mcp":wu,"025-add-monitoring-virtual-mcp-id":ku,"026-restrict-child-connection-delete":nu,"027-update-management-mcp-url":pu,"028-update-management-mcp-to-self":qu,"029-add-updated-by-to-connections":iu,"030-member-tags":cu,"031-add-dependency-mode":hu,"032-projects":tu,"033-thread-status":ou,"034-monitoring-dashboards":au,"035-project-connections":ru,"036-update-registry-url":lu,"037-ai-provider-keys":eu,"038-oauth-pkce-states":du,"039-automations":su,"040-replace-next-run-at-with-last-run-at":bu,"041-ai-provider-keys-unique-constraint":_C,"042-rename-mesh-mcp-to-cms-mcp":xC,"043-rename-cms-mcp-to-deco-cms":uC,"044-drop-connections-tools-column":CC,"045-thread-context-start-message":KC,"046-remove-object-storage-plugin":mC,"047-add-next-run-at":TC,"048-merge-projects-agents":EC,"049-remove-org-admin-projects":$C,"050-durable-agent-runs":PC,"051-org-sso":JC,"052-thread-agent-ids":QC,"053-registry-config":XC,"054-connection-slug":WC,"055-spaces":jC,"056-automation-project-scope":LC,"057-thread-virtual-mcp-id":FC,"058-trigger-callback-tokens":YC,"059-kv":DC,"060-member-index":HC,"061-downstream-token-connection-index":MC,"062-private-registry":RC,"063-event-subscriptions-enabled-boolean":BC,"064-brand-context":GC,"065-organization-domains":OC,"066-brand-context-structured":SC,"067-threads-metadata":fC,"068-threads-branch":AC,"069-sandbox-runner-state":IC,"070-model-categories":yC,"071-default-home-agents":VC,"072-ai-provider-key-preset-id":wC,"073-backfill-basic-usage-roles":kC,"074-sandbox-runner-state-handle-nonunique":nC,"075-thread-inflight-async-jobs":vC,"076-automations-drop-agent-json":pC,"077-tier-only-model-selection":qC,"078-automation-tool-call-kind":iC,"079-strip-legacy-freestyle-vm-map-entries":cC,"080-async-research-jobs":hC,"081-async-research-jobs-result-content":tC,"082-secrets":oC,"083-thread-run-locally":aC,"084-drop-host-sandbox-rows":rC,"085-rename-runner-kind":lC,"086-thread-pins-and-vm-map-rekey":eC,"087-fix-vm-map-rekey":dC,"088-purge-cli-activate-keys":sC,"089-rename-remote-user-to-desktop":bC,"090-automation-webhook-triggers":_K,"091-organization-domains-allow-multi":xK,"092-sandbox-naming-uniformization":uK,"093-backfill-global-search-basic-usage":CK,"094-org-file-configs":NK,"095-remove-automation-tool-call-kind":mK,"096-org-file-configs-public-url-base":TK,"097-drop-local-docker-sandbox-state":EK,"098-thread-message-parts":$K,"099-run-fence":PK,"100-link-transport":UK,"101-cancel-requested-at":JK,"102-observational-agent":QK,"103-revert-observational-agent":XK,"104-agent-sandbox-provider-kind":WK,"105-org-fs":jK,"106-automation-tools":LK,"107-org-fs-public-org":FK,"108-automation-max-agent-steps":YK,"109-thread-message-parts-per-message-seq":DK,"110-backfill-ghs-token-expiry":HK,"111-org-fs-thread-id":MK,"112-org-file-configs-credential-type":RK,"113-thread-failure-reason":BK,"114-run-acked-seq":GK,"115-thread-projected-seq":OK,"116-org-sites":SK,"117-org-file-configs-site-slug":fK,"118-organization-domains-multi-verify":AK,"119-organization-join-requests":IK,"120-org-fs-read-public":yK,"121-org-fs-share-password":VK,"122-split-web-research-tier":nK,"123-connection-credential-vault":vK,"124-drop-thread-projected-seq":pK,"125-github-child-single-parent":gK,"126-task-board":iK,"127-task-board-due-date":cK,"128-reports-only":hK,"129-task-board-assigned-by":tK,"130-task-board-thread-id":oK,"131-task-board-thread-link-cascade":aK,"132-task-board-item-prs":rK,"133-dedupe-duplicate-members":lK,"134-drop-task-board-enabled":eK,"135-task-board-item-fk-cascade":dK,"136-task-board-import-idempotency":sK,"137-agent-sandbox-runner-state":bK,"138-agent-sandbox-sessions":_N,"139-organization-billing":xN,"140-seat-change-log":uN,"141-benefits-sync-pending":CN,"142-stripe-event-watermark":KN,"143-armed-report-url":NN,"144-benefits-pending-index":mN,"145-user-model-preferences":TN,"146-organization-main-agent":zN,"147-drop-agent-sandbox-tables":EN,"148-org-flags":$N,"149-task-board-item-sort-order":PN,"150-task-board-activity":UN,"151-task-board-tags":QN,"152-repair-connection-slug":ZN,"153-task-board-latest-assistant-part-index":WN,"154-task-board-qa-activity":LN,"155-task-board-review-claims":FN,"156-task-board-conflict-activity":DN,"157-drop-seat-billing":HN,"158-drop-github-child-single-parent":MN,"159-task-board-comments":RN,"160-task-quota-billing":BN,"161-task-quota-claim-state":ON,"162-claude-subscriptions":SN,"163-task-board-item-dismissed":fN,"164-per-org-task-quota":AN,"165-task-board-pending-review-index":IN,"166-task-board-last-swept-at":yN,"167-task-board-run-retry":VN,"168-org-repo-sync":kN,"169-task-board-merge-failed-activity":vN,"170-task-board-item-repo":pN,"171-jira-integration":gN,"172-task-board-item-key-seq":qN,"173-thread-github-repo-connection-index":iN,"174-thread-message-parts-persisted-at":hN,"175-task-board-sprints":tN,"176-task-board-done-sweep-index":oN,"177-notifications":aN,"178-jira-status-mapping-array":rN,"179-notification-mentioned":eN,"180-task-board-item-type":sN,"181-task-board-item-type-required":bN,"182-task-board-sprints-entities":_m,"183-drop-jira-jql-filter":xm,"184-jira-rescan-after-scope-change":um,"185-jira-rescan-existing-cards":Cm,"186-jira-rescan-pending-flag":Nm,"187-task-board-comment-thread":mm,"188-invitation-auto-accept":Tm,"189-task-board-column-automations":Em,"190-task-board-review-cycle-started-at":$m,"191-task-board-columns":Pm,"192-task-board-verdict-nudge-activity":Jm,"193-task-board-status-column-fk":Qm,"194-jira-link-sprint":Xm,"195-task-board-sprint-activity":Wm,"196-task-board-column-tracker-statuses":jm,"197-task-board-prompts":Lm,"198-task-board-external-url":Fm,"199-drop-jira-mirror-and-org-columns":Ym,"200-jira-run-trigger":Dm,"201-organization-notices":Hm,"202-redact-base64-thread-parts":Rm,"203-task-board-preview-routes":Bm,"204-git-provider-accounts-and-repositories":Gm,"205-repository-references":Om,"206-repository-consumers":Pu,"207-task-board-prs-repo-idx":$u,"208-github-connect-flows":Eu,"209-github-installation-authorization":zu,"210-github-repository-authorization":_u,"211-user-fs-org":bx,"212-coding-agent-mcp-excluded":xu,"213-bitbucket-git-provider":uu,"214-connections-sanitized-id-idx":lx,"215-commerce-discovery-repository":ex,"216-github-cli-auth":sx,"217-experiments":Cu,"218-thread-message-parts-error-idx":Ku,"219-task-board-duplicate-reported-activity":mu,"220-jira-automation-continue-pr":Tu,"221-remove-private-registry":Px,"222-org-git-credentials":Ux,"223-drop-org-main-agent-id":rx,"224-repository-sandbox-image":Jx,"225-thread-analytics-indexes":Xx,"226-deco-score-names":Wx,"227-task-board-finding-resolved-activity":Lx,"228-org-voice-config":$x,"229-jira-automation-from":Fx,"230-project-sidebar":Yx,"231-jira-chat-agent":Dx,"232-task-board-prompt-skills":Mx,"233-remove-jira-chat-agent":Bx,"234-task-board-comment-audience":Gx,"235-prune-empty-thread-dirs":Ox,"236-task-board-sprints":fx,"237-org-sites-project-link":Ax,"238-task-board-default-lanes":Ix,"239-task-board-retire-old-lanes":yx,"240-task-board-restore-todo":Vx,"241-automation-board-column-transition":wx,"242-connection-url-slug":kx,"243-experiment-task-board-item":nx,"244-connection-url-slug-rollout-backfill":vx,"245-automation-system-key":px,"246-automation-pr-ready-trigger":gx,"247-automation-jira-transition":qx,"248-drop-retired-rule-tables":ix,"249-task-board-item-project":cx,"250-github-copilot-subscriptions":hx,"251-org-shared-plans":tx,"252-automation-linked-chat-trigger":ox,"253-automation-pr-builtin-triggers":ax,"254-codex-subscriptions":Ex},Kx=BW;import{getMigrations as N9}from"better-auth/db";import{sso as m9}from"@better-auth/sso";import{organization as T9}from"@decocms/better-auth/plugins";import{admin as z9,apiKey as E9,jwt as $9,magicLink as P9,mcp as U9,openAPI as J9}from"better-auth/plugins";import{emailOTP as Q9}from"better-auth/plugins/email-otp";import{Kysely as dW,PostgresDialect as jz}from"kysely";import{Pool as Lz}from"pg";import{homedir as GW}from"os";var OW=new Set(["all","worker","api"]);function SW(_){let x=(_??"").trim();return OW.has(x)?x:"all"}var fW=new Set(["production","development","test"]);function AW(_){let x=(_??"").trim();return fW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function fm(_,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 fm(_,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 yW(_,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 Sm(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function VW(_){return _===void 0||_===""||_==="true"||_==="1"}function D_(_,x){return _||x}function Ez(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${GW()}/deco`,u=AW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:D_(_.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:D_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),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:fm("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:yW("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:Sm(_.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:Sm(_.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:VW(_.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:fm("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:SW(D_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:Sm(_.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,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:D_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:D_(_.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://decoims.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};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 wW=null;function K_(){return wW??=Object.freeze(Ez(process.env))}import{createContextKey as qW,metrics as iW,propagation as X8,ROOT_CONTEXT as Z8,SpanStatusCode as W8,trace as cW}from"@opentelemetry/api";import{logs as hW,SeverityNumber as Am}from"@opentelemetry/api-logs";import{OTLPLogExporter as F8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as tW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as H8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as R8}from"@opentelemetry/instrumentation-runtime-node";import{context as E5,propagation as $5,SpanKind as P5,SpanStatusCode as U5}from"@opentelemetry/api";var Q5=globalThis.fetch;import{ExportResultCode as B5}from"@opentelemetry/core";import{ExportResultCode as Nx}from"@opentelemetry/core";import{mkdir as kW,rename as nW,writeFile as vW}from"fs/promises";import{join as mx}from"path";class Tx{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:Nx.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:Nx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Nx.FAILED}});return Promise.resolve({code:Nx.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?mx(this.basePath,x,...N):mx(this.basePath,...N);if(!this.knownDirs.has(K))await kW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=mx(K,`.${m}.tmp`),z=mx(K,m),E=_.join(`
2383
2383
  `)+`
2384
- `;await wW(m,E,{mode:384}),await VW(m,z)}}import{ExportResultCode as O5}from"@opentelemetry/core";import{AggregationTemporality as f5,DataPointType as A5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as n5}from"@opentelemetry/core";var q5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as A8,LoggerProvider as I8}from"@opentelemetry/sdk-logs";import{detectResources as V8,envDetector as w8,hostDetector as k8,osDetector as n8,processDetector as v8,resourceFromAttributes as p8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as q8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as h5}from"@opentelemetry/api-logs";import{NodeSDK as h8}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as o8,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as l5}from"@opentelemetry/api";var cW="__d",hW=vW("Current request"),tW=1;var $z=(_)=>{let u=new URL(_.url).searchParams.get(cW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Uz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,T){let m=_.getValue(hW);if(!m){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,T);return{decision:N_.RECORD_AND_SAMPLED}}let z=$z(m);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,T);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 r8=new iW({preventServerStart:!0}),l8=new Uz(new Jz(tW));var Ez=gW.getTracer("studio","1.0.0"),H_=pW.getMeter("studio","1.0.0"),oW=qW.getLogger("studio","1.0.0"),AT=(_,x,u)=>{let N={},K=u,T=u[u.length-1];if(T!==null&&typeof T==="object"&&!Array.isArray(T)&&!(T instanceof Error)&&Object.getPrototypeOf(T)===Object.prototype)N=T,K=u.slice(0,-1);let m=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(" ");oW.emit({severityNumber:_,severityText:x,body:m,attributes:{"log.source":"console",...N}})},IT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{AT(fT.ERROR,"ERROR",_),IT.error(..._)};console.warn=(..._)=>{AT(fT.WARN,"WARN",_),IT.warn(..._)};console.debug=(..._)=>{AT(fT.DEBUG,"DEBUG",_),IT.debug(..._)};var yT,Pz=0,VT=500;function aW(){if(yT)return;let _=performance.now()+VT;yT=setInterval(()=>{let x=performance.now();Pz=Math.max(0,x-_),_=x+VT},VT),yT.unref?.()}function Qz(){return aW(),Pz}var lW=()=>H_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Xz=()=>H_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Zz=400,eW=100,dW=(_)=>({"db.status":_.level==="error"?"error":"success"}),bW=(_)=>(x)=>{let u=dW(x);if(x.queryDurationMillis>Zz){let N=Qz(),K=N>Zz/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:zx()}})}if(lW().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function sW(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=zx(),T=_.idleCount===0&&_.totalCount>=K,m=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Xz().record(E,{"db.pool.outcome":T?"contended":"available"}),E>eW)if(T)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:m,total:_.totalCount,max:K});return z},(z)=>{throw Xz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Lz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Fz(){try{return K_().databasePgSsl}catch{return!1}}function zx(){try{return K_().databasePoolMax}catch{return 10}}function _9(_){let x=sW(new jz({connectionString:_,max:zx(),ssl:Fz(),...Lz})),u=new Wz({pool:x});return{type:"postgres",db:new rW({dialect:u,log:bW(x)}),pool:x}}function R_(){return K_().databaseUrl}function Yz(_){let x=_||R_();return new Wz({pool:new jz({connectionString:x,max:zx(),ssl:Fz(),...Lz})})}function x9(_){let x=_||R_();return _9(x)}async function Dz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===M_)M_=null}var M_=null;function wT(){if(!M_)M_=x9(R_());return M_}async function Hz(_){let u={database:Yz(_||R_()),plugins:[K9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),N9(),T9(),m9(),$9(),E9({loginPage:"/login"}),C9(),z9({sendMagicLink:async()=>{}}),U9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:T}=await u9(u);if(!N.length&&!K.length)return"up to date";return await T(),`${K.length+N.length} table(s) migrated`}async function kT(_,x){return(await o`
2384
+ `;await vW(T,E,{mode:384}),await nW(T,z)}}import{ExportResultCode as A5}from"@opentelemetry/core";import{AggregationTemporality as y5,DataPointType as V5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as g5}from"@opentelemetry/core";var h5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as V8,LoggerProvider as w8}from"@opentelemetry/sdk-logs";import{detectResources as n8,envDetector as v8,hostDetector as p8,osDetector as g8,processDetector as q8,resourceFromAttributes as i8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as h8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as a5}from"@opentelemetry/api-logs";import{NodeSDK as a8}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as l8,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as s5}from"@opentelemetry/api";var oW="__d",aW=qW("Current request"),rW=1;var Pz=(_)=>{let u=new URL(_.url).searchParams.get(oW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Uz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(aW);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Pz(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 d8=new tW({preventServerStart:!0}),s8=new Uz(new Jz(rW));var $z=cW.getTracer("studio","1.0.0"),H_=iW.getMeter("studio","1.0.0"),lW=hW.getLogger("studio","1.0.0"),Im=(_,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(" ");lW.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},ym={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{Im(Am.ERROR,"ERROR",_),ym.error(..._)};console.warn=(..._)=>{Im(Am.WARN,"WARN",_),ym.warn(..._)};console.debug=(..._)=>{Im(Am.DEBUG,"DEBUG",_),ym.debug(..._)};var Vm,Qz=0,wm=500;function eW(){if(Vm)return;let _=performance.now()+wm;Vm=setInterval(()=>{let x=performance.now();Qz=Math.max(0,x-_),_=x+wm},wm),Vm.unref?.()}function Xz(){return eW(),Qz}var sW=()=>H_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Zz=()=>H_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Wz=400,bW=100,_9=(_)=>({"db.status":_.level==="error"?"error":"success"}),x9=(_)=>(x)=>{let u=_9(x);if(x.queryDurationMillis>Wz){let N=Xz(),K=N>Wz/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:zx()}})}if(sW().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function u9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=zx(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Zz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>bW)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 Zz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Fz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Yz(){try{return K_().databasePgSsl}catch{return!1}}function zx(){try{return K_().databasePoolMax}catch{return 10}}function C9(_){let x=u9(new Lz({connectionString:_,max:zx(),ssl:Yz(),...Fz})),u=new jz({pool:x});return{type:"postgres",db:new dW({dialect:u,log:x9(x)}),pool:x}}function R_(){return K_().databaseUrl}function Dz(_){let x=_||R_();return new jz({pool:new Lz({connectionString:x,max:zx(),ssl:Yz(),...Fz})})}function K9(_){let x=_||R_();return C9(x)}async function Hz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===M_)M_=null}var M_=null;function km(){if(!M_)M_=K9(R_());return M_}async function Mz(_){let u={database:Dz(_||R_()),plugins:[T9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),z9(),E9(),$9(),J9(),U9({loginPage:"/login"}),m9(),P9({sendMagicLink:async()=>{}}),Q9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await N9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function nm(_,x){return(await o`
2385
2385
  SELECT table_name FROM information_schema.tables
2386
2386
  WHERE table_schema='public' AND table_name=${x}
2387
- `.execute(_)).rows.length>0}async function J9(_){if(await kT(_,"plugin_migrations"))return;await o`
2387
+ `.execute(_)).rows.length>0}async function X9(_){if(await nm(_,"plugin_migrations"))return;await o`
2388
2388
  CREATE TABLE plugin_migrations (
2389
2389
  plugin_id TEXT NOT NULL,
2390
2390
  name TEXT NOT NULL,
2391
2391
  timestamp TEXT NOT NULL,
2392
2392
  PRIMARY KEY (plugin_id, name)
2393
2393
  )
2394
- `.execute(_)}async function P9(_){if(!await kT(_,"kysely_migration"))return;let x=await o`
2394
+ `.execute(_)}async function Z9(_){if(!await nm(_,"kysely_migration"))return;let x=await o`
2395
2395
  SELECT name, timestamp FROM kysely_migration
2396
2396
  WHERE name LIKE '%/%'
2397
- `.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 T=K.indexOf("/");if(T===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let m=K.substring(0,T),z=K.substring(T+1);try{await o`
2397
+ `.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`
2398
2398
  INSERT INTO plugin_migrations (plugin_id, name, timestamp)
2399
- VALUES (${m}, ${z}, ${N})
2399
+ VALUES (${T}, ${z}, ${N})
2400
2400
  `.execute(_)}catch{let E=await o`
2401
2401
  SELECT COUNT(*) as cnt FROM plugin_migrations
2402
- WHERE plugin_id = ${m} AND name = ${z}
2403
- `.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${m}/${z}, keeping in old table`);continue}}await o`
2402
+ WHERE plugin_id = ${T} AND name = ${z}
2403
+ `.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${T}/${z}, keeping in old table`);continue}}await o`
2404
2404
  DELETE FROM kysely_migration WHERE name = ${u}
2405
- `.execute(_)}}async function Q9(_){if(!await kT(_,"kysely_migration"))return{};let{rows:x}=await o`
2405
+ `.execute(_)}}async function W9(_){if(!await nm(_,"kysely_migration"))return{};let{rows:x}=await o`
2406
2406
  SELECT name FROM kysely_migration
2407
- `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Kx,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 X9(_){await J9(_),await P9(_);let x=new Mz({db:_,provider:{getMigrations:async()=>({...await Q9(_),...Kx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((T)=>{if(T.status==="Success")K++;else if(T.status==="Error")console.error(`Failed to execute migration "${T.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function Z9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Hz();let T=u??wT(),m=async()=>{if(!x&&!u)await Dz(T).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await X9(T.db);return await m(),{betterAuth:K,kysely:z}}catch(z){throw await m(),z}}async function R3(){let _=wT(),x=new Mz({db:_.db,provider:{getMigrations:()=>Promise.resolve(Kx)}}),{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 Z9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{X9 as runKyselyMigrations,Z9 as migrateToLatest,R3 as migrateDown};
2407
+ `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Kx,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 j9(_){await X9(_),await Z9(_);let x=new Rz({db:_,provider:{getMigrations:async()=>({...await W9(_),...Kx})}}),{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 L9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Mz();let m=u??km(),T=async()=>{if(!x&&!u)await Hz(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await j9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function O3(){let _=km(),x=new Rz({db:_.db,provider:{getMigrations:()=>Promise.resolve(Kx)}}),{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 L9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{j9 as runKyselyMigrations,L9 as migrateToLatest,O3 as migrateDown};