decocms 4.502.10 → 4.503.2

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 (392) hide show
  1. package/dist/client/assets/{ActiveShapeUtils-CTZB0gAT.js → ActiveShapeUtils-CBLSJqBl.js} +1 -1
  2. package/dist/client/assets/{AlertCircle-DbZXzHU4.js → AlertCircle-BFUZ4yx0.js} +1 -1
  3. package/dist/client/assets/AreaChart-DKrmhkRJ.js +1 -0
  4. package/dist/client/assets/{ArrowLeft-DHzrTLxh.js → ArrowLeft-CK2OAC0l.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-B82v86-f.js → ArrowUp-U6_gobY2.js} +1 -1
  6. package/dist/client/assets/{BarChart-BJWxjtS7.js → BarChart-DBqZyJQX.js} +1 -1
  7. package/dist/client/assets/{Building02-DlUkTaCT.js → Building02-Ddm6hNyu.js} +1 -1
  8. package/dist/client/assets/{CategoricalChart-DpAvLSfP.js → CategoricalChart-DYWjGYq1.js} +3 -3
  9. package/dist/client/assets/{CheckCircle-C9xArOgT.js → CheckCircle-BWW06ZXQ.js} +1 -1
  10. package/dist/client/assets/{ChevronSelectorVertical-DhFNZZ7b.js → ChevronSelectorVertical-DKcwgXpF.js} +1 -1
  11. package/dist/client/assets/{ChevronUp-9p6Wfyjc.js → ChevronUp-CTrNq9Nk.js} +1 -1
  12. package/dist/client/assets/{Copy01-C21BKNhK.js → Copy01-TJP2zB12.js} +1 -1
  13. package/dist/client/assets/{CreditCard01-BBQFm-D2.js → CreditCard01-Bm6_xB5H.js} +1 -1
  14. package/dist/client/assets/{DotsVertical-C79u6eki.js → DotsVertical-DKl8j3BE.js} +1 -1
  15. package/dist/client/assets/{ErrorBarContext-BPj030RE.js → ErrorBarContext-CR5xIaDQ.js} +1 -1
  16. package/dist/client/assets/{Globe04-C7fefIAW.js → Globe04-ClrCqE7c.js} +1 -1
  17. package/dist/client/assets/{Image01-DLGYTG6l.js → Image01-Cf_YxPro.js} +1 -1
  18. package/dist/client/assets/{Key01-BdXZUygf.js → Key01-55Z6tHcr.js} +1 -1
  19. package/dist/client/assets/{Link01-nN5I95Fv.js → Link01-DNXOSsg9.js} +1 -1
  20. package/dist/client/assets/{LinkBroken01-zQXz81xm.js → LinkBroken01-Vuoqu_ZW.js} +1 -1
  21. package/dist/client/assets/{Monitor01-fhRCZgsV.js → Monitor01-C-mB2rao.js} +1 -1
  22. package/dist/client/assets/{Play-BVd9KRbk.js → Play-CUFyJJIt.js} +1 -1
  23. package/dist/client/assets/{Plus-BQGAsZcO.js → Plus-D-GSl2MA.js} +1 -1
  24. package/dist/client/assets/{SearchMd-DpkjOBW1.js → SearchMd-CkV8MM4H.js} +1 -1
  25. package/dist/client/assets/{Sector-BwVl_qyy.js → Sector-CNZsIxmG.js} +1 -1
  26. package/dist/client/assets/{ShoppingBag01-B8fMxhTk.js → ShoppingBag01-dI1cRqeE.js} +1 -1
  27. package/dist/client/assets/{Sun-zOV0D2Wt.js → Sun-BPl8u-yx.js} +1 -1
  28. package/dist/client/assets/{SwitchHorizontal01-rhX6IQru.js → SwitchHorizontal01-KDjTaTLX.js} +1 -1
  29. package/dist/client/assets/{Tool01-Dg-pQnlG.js → Tool01-CvAlZ6_R.js} +1 -1
  30. package/dist/client/assets/{Trash01-Xx4Vpu1z.js → Trash01-BzUZQR5Y.js} +1 -1
  31. package/dist/client/assets/{Upload01-BQIZ0qft.js → Upload01-CdgDB-zC.js} +1 -1
  32. package/dist/client/assets/{User01-G7-LShqY.js → User01-CinpYulR.js} +1 -1
  33. package/dist/client/assets/{UserSquare-nowvR0IP.js → UserSquare-0R6kuy9W.js} +1 -1
  34. package/dist/client/assets/{Users01-DQmBq_uH.js → Users01-DFSTtPtZ.js} +1 -1
  35. package/dist/client/assets/{XAxis-DnACCXBs.js → XAxis-CMCcO3jI.js} +1 -1
  36. package/dist/client/assets/{XClose-COhsaGEO.js → XClose-CXxsMd9c.js} +1 -1
  37. package/dist/client/assets/{ZoomOut-BfZ_MoNU.js → ZoomOut-C1rwTYBB.js} +1 -1
  38. package/dist/client/assets/{access-gate-CSIEzs4r.js → access-gate-BSx5LbNZ.js} +1 -1
  39. package/dist/client/assets/{add-connection-dialog-BJ9BKenv.js → add-connection-dialog-CNB1XZS8.js} +1 -1
  40. package/dist/client/assets/{agent-analytics-D6kjzCQ7.js → agent-analytics-BKsJAgnt.js} +1 -1
  41. package/dist/client/assets/agent-app-DBSthuoA.js +1 -0
  42. package/dist/client/assets/{agent-assets-zN5MFK69.js → agent-assets-CvHLRtfR.js} +1 -1
  43. package/dist/client/assets/{agent-automation-DrGgySuT.js → agent-automation-DG660AlN.js} +1 -1
  44. package/dist/client/assets/{agent-automations-B2esCZDo.js → agent-automations-DkNZsDdV.js} +1 -1
  45. package/dist/client/assets/{agent-connect-sources-RG33fd5J.js → agent-connect-sources-DFGjLsvu.js} +1 -1
  46. package/dist/client/assets/agent-deck-DW69LMk-.js +1 -0
  47. package/dist/client/assets/{agent-e2e-kwpPDUnP.js → agent-e2e-CTTKhY1C.js} +1 -1
  48. package/dist/client/assets/{agent-experiments-CNdgRxuu.js → agent-experiments-B23reQrT.js} +1 -1
  49. package/dist/client/assets/{agent-file-DXydhQME.js → agent-file-CFgK4Fqg.js} +1 -1
  50. package/dist/client/assets/{agent-hosting-DlozufnU.js → agent-hosting-BL7RyxMT.js} +1 -1
  51. package/dist/client/assets/{agent-icon-w0fx2BM9.js → agent-icon-Bmu0Xuy8.js} +1 -1
  52. package/dist/client/assets/agent-library-D9aAC92j.js +1 -0
  53. package/dist/client/assets/agent-library-file-Dlq-Vts6.js +1 -0
  54. package/dist/client/assets/agent-monitor-Dxt5K5x_.js +1 -0
  55. package/dist/client/assets/agent-overview-CAzScYJD.js +1 -0
  56. package/dist/client/assets/{agent-releases-BkIdH2My.js → agent-releases-RSbZ96r7.js} +1 -1
  57. package/dist/client/assets/agent-settings-5EOlZJW6.js +1 -0
  58. package/dist/client/assets/{agent-site-editor-Dip0L8FQ.js → agent-site-editor-DFWKub_t.js} +1 -1
  59. package/dist/client/assets/agent-site-editor-code-I8N3vaXE.js +2 -0
  60. package/dist/client/assets/agent-site-editor-content-uhd8Bnc-.js +1 -0
  61. package/dist/client/assets/agent-site-editor-preview-CV5DbDBm.js +1 -0
  62. package/dist/client/assets/agent-view-QNUTYcIi.js +1 -0
  63. package/dist/client/assets/{agent-view-guard-C6h6rG-Z.js → agent-view-guard-BwubZYi8.js} +1 -1
  64. package/dist/client/assets/{agents-list-DDQraAcj.js → agents-list-L7YgNFph.js} +1 -1
  65. package/dist/client/assets/{ai-providers-DmFV4s-Y.js → ai-providers-DEeLkiCM.js} +1 -1
  66. package/dist/client/assets/{alert-Bl0z1bzt.js → alert-CnRQ3m-7.js} +1 -1
  67. package/dist/client/assets/{alert-dialog-BudrRkY9.js → alert-dialog-BaBKldUA.js} +1 -1
  68. package/dist/client/assets/{analytics-sections-BYrQ2Tus.js → analytics-sections-BIEC86HP.js} +1 -1
  69. package/dist/client/assets/api-keys-BgtInlXe.js +1 -0
  70. package/dist/client/assets/{api-keys-Du67GzRh.js → api-keys-CmpJo1Rr.js} +1 -1
  71. package/dist/client/assets/{app-editor-4p8eBhOq.js → app-editor-BqvAOKlk.js} +1 -1
  72. package/dist/client/assets/{asset-utils-COm4-tit.js → asset-utils--N2gsOKr.js} +1 -1
  73. package/dist/client/assets/{auth-BBFulaR2.js → auth-BeK8rRbB.js} +1 -1
  74. package/dist/client/assets/{auth-catchall-BP0YZzgG.js → auth-catchall-fFMHk_ps.js} +1 -1
  75. package/dist/client/assets/{auth-entry-BfanHpTj.js → auth-entry-C1_Znn_c.js} +1 -1
  76. package/dist/client/assets/{auth-split-layout-OXHnaFJZ.js → auth-split-layout-CocPnGfp.js} +1 -1
  77. package/dist/client/assets/{authenticate-and-persist-oauth-uNX2a7wo.js → authenticate-and-persist-oauth-DJwJCiC8.js} +1 -1
  78. package/dist/client/assets/{automation-list-row-Cxes9h3I.js → automation-list-row-3WI1rtPZ.js} +1 -1
  79. package/dist/client/assets/{automation-runs-CkMQ30IJ.js → automation-runs-dkpbdf4I.js} +1 -1
  80. package/dist/client/assets/{automations-DYMDL0bR.js → automations-CaP79ol1.js} +1 -1
  81. package/dist/client/assets/{autosend-8U0-dRxu.js → autosend-B-VPnrp2.js} +1 -1
  82. package/dist/client/assets/{avatar--kF1Sxbg.js → avatar-yCbsNNbw.js} +1 -1
  83. package/dist/client/assets/{badge-CalXC-Hw.js → badge-Zdi_g359.js} +1 -1
  84. package/dist/client/assets/{block-document-DIEwEDyG.js → block-document-D4x1DRNW.js} +1 -1
  85. package/dist/client/assets/{blocks-preview-workspace-context-DHduztUh.js → blocks-preview-workspace-context-CMtVQxL8.js} +1 -1
  86. package/dist/client/assets/{blocks-tab-states-Dj62473g.js → blocks-tab-states-B7_Q2Byx.js} +3 -3
  87. package/dist/client/assets/{blog-schema-C78FYDZX.js → blog-schema-D0r94Mwa.js} +1 -1
  88. package/dist/client/assets/{board-analytics-C_fzmWgr.js → board-analytics-DjFw48Ii.js} +1 -1
  89. package/dist/client/assets/{buckets-CvusBLr6.js → buckets-DmovZm0n.js} +1 -1
  90. package/dist/client/assets/{build-improve-prompt-doc-CvtJUY07.js → build-improve-prompt-doc-Cd4DLFMv.js} +1 -1
  91. package/dist/client/assets/{calendar-BrDGheLn.js → calendar-aMW3a7Qx.js} +1 -1
  92. package/dist/client/assets/{capability-load-error-unMOGE7-.js → capability-load-error-xmV40q_-.js} +1 -1
  93. package/dist/client/assets/{category-editor-BHP5YPUn.js → category-editor-BYf-_N2d.js} +1 -1
  94. package/dist/client/assets/{chart-DHN0nyqC.js → chart-D1eqwoYD.js} +1 -1
  95. package/dist/client/assets/{chat-context-C7boc8JM.js → chat-context-C4pDshj1.js} +1 -1
  96. package/dist/client/assets/{chat-draft-Y7uteI96.js → chat-draft-D5dlb_sl.js} +1 -1
  97. package/dist/client/assets/{checkbox-CWYWbV7j.js → checkbox-C2l5tKo2.js} +1 -1
  98. package/dist/client/assets/{choose-editor-CuZGoYGT.js → choose-editor-C_NzKjq2.js} +1 -1
  99. package/dist/client/assets/{cli-auth-success-B-M6jnbq.js → cli-auth-success-DSx-mAhh.js} +1 -1
  100. package/dist/client/assets/{client-icons-DNcBuTjH.js → client-icons-BasHQFnS.js} +1 -1
  101. package/dist/client/assets/cms-settings-editor-BB3l1bfM.js +1 -0
  102. package/dist/client/assets/{collapsible-dPqRUFUS.js → collapsible-CDZFoOK-.js} +1 -1
  103. package/dist/client/assets/{collection-detail-By5cY3Zd.js → collection-detail-DkNCk0OQ.js} +1 -1
  104. package/dist/client/assets/{collection-display-button-C8-mjKkg.js → collection-display-button--eCg5c5n.js} +1 -1
  105. package/dist/client/assets/{collection-search-Cpx0YrAf.js → collection-search-sopr7ssV.js} +1 -1
  106. package/dist/client/assets/{collection-table-wrapper-DEDdyYPP.js → collection-table-wrapper-Cy3Cbckv.js} +1 -1
  107. package/dist/client/assets/{collection-tabs-dQf8n2Wy.js → collection-tabs-DU5QTifc.js} +1 -1
  108. package/dist/client/assets/{column-rules-CB8_X7l2.js → column-rules-Z54WqqNc.js} +1 -1
  109. package/dist/client/assets/{combobox-CIJ-TFnx.js → combobox-C2hXpc1p.js} +1 -1
  110. package/dist/client/assets/{command-D5QXIfZJ.js → command-BSGZ-TwS.js} +1 -1
  111. package/dist/client/assets/{companion-mcps-section-CCrMSp7z.js → companion-mcps-section-d9HGklIc.js} +1 -1
  112. package/dist/client/assets/{config-C_5rJ3AS.js → config-CddNRjRY.js} +1 -1
  113. package/dist/client/assets/{connect-D80egF9f.js → connect-BGfL3A9r.js} +1 -1
  114. package/dist/client/assets/{connect-layout-BZV7md2x.js → connect-layout-DoM7vuFX.js} +1 -1
  115. package/dist/client/assets/{connection-DodWF9zN.js → connection-B0eFNfCu.js} +1 -1
  116. package/dist/client/assets/{connection-card-BNE5emfZ.js → connection-card-BzTYJa6s.js} +1 -1
  117. package/dist/client/assets/{connection-detail-CsNgDg4n.js → connection-detail-Cwz-qT82.js} +1 -1
  118. package/dist/client/assets/{connection-form-helpers-C3pfz3w3.js → connection-form-helpers-ChgreO5F.js} +1 -1
  119. package/dist/client/assets/{connections-BTwsUVHU.js → connections-CnirV_66.js} +1 -1
  120. package/dist/client/assets/{content-tab-FdqIt_Oh.js → content-tab-BIEsoSfa.js} +3 -3
  121. package/dist/client/assets/{context-BSqPFNMt.js → context-DEuw9CjH.js} +1 -1
  122. package/dist/client/assets/{context-menu-DMp6u7s_.js → context-menu-CHrxflOD.js} +1 -1
  123. package/dist/client/assets/{core.esm-B8TX0IEB.js → core.esm-CWXW2IWJ.js} +1 -1
  124. package/dist/client/assets/{create-organization-dialog-DBgtiZ3V.js → create-organization-dialog-Bci4qKSS.js} +1 -1
  125. package/dist/client/assets/{daily-pulse-D6PbLmHv.js → daily-pulse-CRZ8lDnm.js} +1 -1
  126. package/dist/client/assets/{discover-CCdXzYXu.js → discover-C3iLTVFB.js} +1 -1
  127. package/dist/client/assets/{domain-settings-B97ncMbo.js → domain-settings-DdY9W_8b.js} +1 -1
  128. package/dist/client/assets/{drawer-CYWmH_yu.js → drawer-BpEasqMM.js} +1 -1
  129. package/dist/client/assets/{editor-BhHZG0fs.js → editor-DQK8Gbky.js} +1 -1
  130. package/dist/client/assets/{editor-classes-D8DelYa3.js → editor-classes-wKHzvXkJ.js} +1 -1
  131. package/dist/client/assets/{empty-state-D5cCxi9-.js → empty-state-Ck0Y0zH4.js} +1 -1
  132. package/dist/client/assets/{empty-state-CsxboN3T.js → empty-state-GUv-DLNf.js} +1 -1
  133. package/dist/client/assets/{extract-connection-data-BAExt33p.js → extract-connection-data-CyaR6DQN.js} +1 -1
  134. package/dist/client/assets/{feature-gate-C4xy7xJ2.js → feature-gate-Cd3TCuYG.js} +1 -1
  135. package/dist/client/assets/{feature-paywall-yoBHjyVR.js → feature-paywall-HnwykYzM.js} +1 -1
  136. package/dist/client/assets/{file-explorer-0Yc8xmWi.js → file-explorer-B8GvovSI.js} +1 -1
  137. package/dist/client/assets/{file-preview-BdFmryUk.js → file-preview-KNDU2UhF.js} +1 -1
  138. package/dist/client/assets/{file-share-button-D-jwYu_R.js → file-share-button-BX7_JCXp.js} +1 -1
  139. package/dist/client/assets/{file-type-icon-DQMhIyFo.js → file-type-icon-C2WSm6EM.js} +1 -1
  140. package/dist/client/assets/flat-project-XWFiDywx.js +1 -0
  141. package/dist/client/assets/{folder-icon-qj3AAsYb.js → folder-icon-DOSAeTvE.js} +1 -1
  142. package/dist/client/assets/{form-DLKWVYAo.js → form-Dz-wry37.js} +1 -1
  143. package/dist/client/assets/{general-ek_y6y3g.js → general-lahSHdvs.js} +1 -1
  144. package/dist/client/assets/home-CfslMwmV.js +1 -0
  145. package/dist/client/assets/{hosted-publish-feedback-DxQxeJ4m.js → hosted-publish-feedback-D7K1BgAP.js} +1 -1
  146. package/dist/client/assets/{icon-button-_GCussIb.js → icon-button-BbQESQAz.js} +1 -1
  147. package/dist/client/assets/{index-B58qKdtq.js → index-BFWcpEys.js} +1 -1
  148. package/dist/client/assets/index-BX4Ek3Q9.js +5 -0
  149. package/dist/client/assets/{index-dpDf5Mys.js → index-BhuMySoe.js} +1 -1
  150. package/dist/client/assets/{index-DzGYQ4je.js → index-BoB02eW2.js} +37 -37
  151. package/dist/client/assets/{index-D5cXidcn.js → index-CAsLc9Zw.js} +1 -1
  152. package/dist/client/assets/{index-By2pGaur.js → index-CD1O2KuY.js} +5 -5
  153. package/dist/client/assets/{index-DRl6L2p1.js → index-COyZFAVd.js} +1 -1
  154. package/dist/client/assets/{index-Ch32U0g7.js → index-CVeMcxNw.js} +1 -1
  155. package/dist/client/assets/{index-C6EeQiXi.js → index-Cdsu1Nw_.js} +1 -1
  156. package/dist/client/assets/{index-2oqi1IPe.js → index-DSuQX-Dj.js} +1 -1
  157. package/dist/client/assets/{index-2P0tcyzM.js → index-DhnL-yRw.js} +1 -1
  158. package/dist/client/assets/{index-DEpAEWYh.js → index-DuSo48nd.js} +1 -1
  159. package/dist/client/assets/{index-CFsJz__8.js → index-Fqg3dcpq.js} +1 -1
  160. package/dist/client/assets/{index-DkvszBzo.js → index-mPiuZtAa.js} +1 -1
  161. package/dist/client/assets/{index-CO_EJ9J6.js → index-qp2WMoaq.js} +1 -1
  162. package/dist/client/assets/{index-redirect-BU3dut4I.js → index-redirect-LGC8XAQa.js} +1 -1
  163. package/dist/client/assets/{infiniteQueryObserver-pgDKCF24.js → infiniteQueryObserver-BuOPvaCd.js} +1 -1
  164. package/dist/client/assets/{infra-billing-DiVJM4iA.js → infra-billing-C7a9CxBG.js} +1 -1
  165. package/dist/client/assets/{input-B1h4zvN9.js → input-CC2XqVda.js} +1 -1
  166. package/dist/client/assets/{input-B38h0Qtk.js → input-Dx6Yl3YV.js} +3 -3
  167. package/dist/client/assets/{integration-icon-BxOhvDOr.js → integration-icon-YHEiRLgT.js} +1 -1
  168. package/dist/client/assets/{jira-icon-DY_jBl8B.js → jira-icon-i9apovX2.js} +1 -1
  169. package/dist/client/assets/{label-CW8ZlpsA.js → label-CsyEQPG4.js} +1 -1
  170. package/dist/client/assets/{layout-DnHQN45O.js → layout-BT112QdT.js} +1 -1
  171. package/dist/client/assets/{legacy-agents-deep-CIAoGOpa.js → legacy-agents-deep-HgU3c2Dz.js} +1 -1
  172. package/dist/client/assets/{legacy-main-redirect-CsdcjRMa.js → legacy-main-redirect-jScx_XSf.js} +1 -1
  173. package/dist/client/assets/library-CWV47kSp.js +1 -0
  174. package/dist/client/assets/{library-tab-Dax3-FxG.js → library-tab-9158ORpA.js} +1 -1
  175. package/dist/client/assets/{login-CUYStE89.js → login-OE28YT2s.js} +1 -1
  176. package/dist/client/assets/{markdown-DeT-O_Oi.js → markdown-TXCHEe-4.js} +1 -1
  177. package/dist/client/assets/{mcp-app-renderer-DcFodUL5.js → mcp-app-renderer-BAlCN3Lv.js} +1 -1
  178. package/dist/client/assets/{mcp-oauth-BpHonAUS.js → mcp-oauth-BFqNJ-iQ.js} +1 -1
  179. package/dist/client/assets/{mcp-oauth-BNbzufHU.js → mcp-oauth-CuU6LL15.js} +1 -1
  180. package/dist/client/assets/{members-DtzKsLnR.js → members-CbEEa2ua.js} +1 -1
  181. package/dist/client/assets/{memory-BfLKA6nk.js → memory-malk94i-.js} +1 -1
  182. package/dist/client/assets/{mini-report-page-DHTuyxkC.js → mini-report-page-Dhes7qGv.js} +1 -1
  183. package/dist/client/assets/{mock-board-BN3sYkpd.js → mock-board-B4GBU96k.js} +1 -1
  184. package/dist/client/assets/{monaco-editor-DIoQcD6P.js → monaco-editor-DIn5LVAo.js} +1 -1
  185. package/dist/client/assets/{monitoring-stats-row-DWB3Il2o.js → monitoring-stats-row-CsXWM1-N.js} +1 -1
  186. package/dist/client/assets/{multi-select-DW--_mMy.js → multi-select-jv5l4gKB.js} +1 -1
  187. package/dist/client/assets/{mustache-C198M5dI.js → mustache-C3mAjW3w.js} +1 -1
  188. package/dist/client/assets/{new-project-dialog-rdjKEc0R.js → new-project-dialog-DCPZVRuS.js} +1 -1
  189. package/dist/client/assets/{oauth-callback-aF742nt_.js → oauth-callback-C7bM7rgT.js} +1 -1
  190. package/dist/client/assets/{oauth-callback-ai-provider-C4-2VbK9.js → oauth-callback-ai-provider-maa6Zm5e.js} +1 -1
  191. package/dist/client/assets/{onboarding-DL3n8PFk.js → onboarding-ds1UbiQ9.js} +1 -1
  192. package/dist/client/assets/{openai-conversation-DCn05VED.js → openai-conversation-BSvbWT0F.js} +1 -1
  193. package/dist/client/assets/{optimistic-project-sidebar-views-D4gNzi2A.js → optimistic-project-sidebar-views-2rlAyeqj.js} +1 -1
  194. package/dist/client/assets/order-monitor-day-CZG8_Uqo.js +1 -0
  195. package/dist/client/assets/{organization-choice-CdLzIyKm.js → organization-choice-CGGV7pYx.js} +1 -1
  196. package/dist/client/assets/{orgs-CKuopKwY.js → orgs-DSh5ncFV.js} +1 -1
  197. package/dist/client/assets/{page-seo-form-8rJfoHEA.js → page-seo-form-BPMiXtW-.js} +1 -1
  198. package/dist/client/assets/{pair-D9iXgt--.js → pair-C9IKm4JE.js} +1 -1
  199. package/dist/client/assets/{plan-ladder-BpZwGVg8.js → plan-ladder-DbkDT52b.js} +1 -1
  200. package/dist/client/assets/{popover-BEsj6vR3.js → popover-CzNTcDJM.js} +1 -1
  201. package/dist/client/assets/{post-calendar-D-CBcyUU.js → post-calendar-DGIFZvru.js} +1 -1
  202. package/dist/client/assets/{post-editor-N7AeVTTK.js → post-editor-BINaZa6q.js} +1 -1
  203. package/dist/client/assets/{preview-content-CX-RAAIs.js → preview-content-BjX4Mivy.js} +1 -1
  204. package/dist/client/assets/{preview-dialog-BG9NdirF.js → preview-dialog-C8Boj2eR.js} +1 -1
  205. package/dist/client/assets/{preview-panel-DFmf2KiU.js → preview-panel-BTtWNKn9.js} +1 -1
  206. package/dist/client/assets/{preview-tab-Cq0FzOLH.js → preview-tab-BYhuHpLV.js} +3 -3
  207. package/dist/client/assets/{product-picker-dialog-Ce-UR28c.js → product-picker-dialog-qxyRXjlS.js} +1 -1
  208. package/dist/client/assets/{profile-ssV3RkZV.js → profile-Cgb34CQu.js} +1 -1
  209. package/dist/client/assets/project-app-view-B5MD1o9B.js +1 -0
  210. package/dist/client/assets/project-feed-DnDlefHV.js +1 -0
  211. package/dist/client/assets/{project-icon-BOZuHsb6.js → project-icon-CP0m7tWm.js} +1 -1
  212. package/dist/client/assets/project-reports-8XAuspn6.js +1 -0
  213. package/dist/client/assets/project-tasks-CGbl7DTy.js +1 -0
  214. package/dist/client/assets/{projects-CkR0cdT4.js → projects-DmCmaniu.js} +1 -1
  215. package/dist/client/assets/{projects-empty-state-Cpuqs4EG.js → projects-empty-state-fIhR2Z5I.js} +1 -1
  216. package/dist/client/assets/{prompts-BSPLyPpm.js → prompts-CW5UUH65.js} +1 -1
  217. package/dist/client/assets/record-editor--8X4AXV_.js +1 -0
  218. package/dist/client/assets/{redirect-editor-D805B62q.js → redirect-editor-CxJl2CVJ.js} +1 -1
  219. package/dist/client/assets/{reports-CNap1_Uc.js → reports-BXGEiRjn.js} +1 -1
  220. package/dist/client/assets/reports-eZ_It7qc.js +1 -0
  221. package/dist/client/assets/{reports-onboarding-CGwOTesM.js → reports-onboarding-DNEAbZJV.js} +1 -1
  222. package/dist/client/assets/reports-tab-CwK-fp7x.js +2 -0
  223. package/dist/client/assets/{repositories-CjjlbHXH.js → repositories-ClghJilC.js} +1 -1
  224. package/dist/client/assets/{repository-binding-Bi-DIonY.js → repository-binding-BYnKmLVI.js} +1 -1
  225. package/dist/client/assets/{repository-import-picker-DOf1x-tI.js → repository-import-picker-De4qAOck.js} +1 -1
  226. package/dist/client/assets/{repository-picker-BWuJDa_H.js → repository-picker-B7BUYgB7.js} +1 -1
  227. package/dist/client/assets/{require-capability-CwAFbuBD.js → require-capability-hn1SreP5.js} +1 -1
  228. package/dist/client/assets/{required-auth-layout-CLr_4vv9.js → required-auth-layout-Mqzz7XgH.js} +1 -1
  229. package/dist/client/assets/{reset-password-CTxZk19a.js → reset-password-BOpvbCSW.js} +1 -1
  230. package/dist/client/assets/{resizable-DD98lqRp.js → resizable-DpCFVPH5.js} +1 -1
  231. package/dist/client/assets/{resolve-tab-icon-BPVtTVku.js → resolve-tab-icon-8PRTNpAS.js} +1 -1
  232. package/dist/client/assets/{review-settings-CI3bfaH0.js → review-settings-Bw0A1sn1.js} +1 -1
  233. package/dist/client/assets/{roles-Dz-VLGCL.js → roles-BMCtr4MB.js} +1 -1
  234. package/dist/client/assets/{route-DobCmO6a.js → route-DLSqOpoM.js} +1 -1
  235. package/dist/client/assets/route-DnP6JRb8.js +1 -0
  236. package/dist/client/assets/route-yiouOCXy.js +1 -0
  237. package/dist/client/assets/{sandbox-lifecycle-context-BRQHpP7A.js → sandbox-lifecycle-context-Dg7K5ioC.js} +1 -1
  238. package/dist/client/assets/{schema-BGyA--3u.js → schema-D-qEbXZ-.js} +1 -1
  239. package/dist/client/assets/{schema-mfoOTdbg.js → schema-zU96PUAb.js} +1 -1
  240. package/dist/client/assets/{scroll-area-DaaLgz_s.js → scroll-area-D_ro8hTm.js} +1 -1
  241. package/dist/client/assets/{search-input-eg4Y4YFa.js → search-input-qNQGHbDh.js} +1 -1
  242. package/dist/client/assets/{search-toggle-zYkiRJNX.js → search-toggle-Dfh8XGYH.js} +1 -1
  243. package/dist/client/assets/{secret-ciphertext-I7QauOs3.js → secret-ciphertext-DkD2R7dc.js} +1 -1
  244. package/dist/client/assets/{secret-picker-DfGNpKHv.js → secret-picker-CmVVvqgZ.js} +1 -1
  245. package/dist/client/assets/{secrets-Dc03pb2z.js → secrets-BDW-A1kb.js} +1 -1
  246. package/dist/client/assets/{sections-editor-BW5ddo_f.js → sections-editor-BKmXdadO.js} +1 -1
  247. package/dist/client/assets/{select-QBZaLypJ.js → select-C4iThYr6.js} +1 -1
  248. package/dist/client/assets/{select-model-Dq1aN4vX.js → select-model-BND792Uy.js} +1 -1
  249. package/dist/client/assets/{seo-editor-CHwUmjlz.js → seo-editor-ClpJZQda.js} +1 -1
  250. package/dist/client/assets/{separator-CdijOcZe.js → separator-DYHY_XVB.js} +1 -1
  251. package/dist/client/assets/{settings-tab-WSqsQnVz.js → settings-tab-A8T1BHYG.js} +1 -1
  252. package/dist/client/assets/{sheet-CkMWrJVJ.js → sheet-BXRHJIP3.js} +1 -1
  253. package/dist/client/assets/{shell-layout-SkoXOd1a.js → shell-layout-BhM3Q_22.js} +1 -1
  254. package/dist/client/assets/site-editor-LulM9jUZ.js +1 -0
  255. package/dist/client/assets/{site-editor-toast-B0pO5yON.js → site-editor-toast-DPPGE5LH.js} +1 -1
  256. package/dist/client/assets/{skills-3AkZMRJC.js → skills-Kw1j3-7B.js} +1 -1
  257. package/dist/client/assets/{slider-BUbDFjHG.js → slider-CpU4rmfX.js} +1 -1
  258. package/dist/client/assets/{sortable.esm-r_0kxOCd.js → sortable.esm-CBSg5QWi.js} +1 -1
  259. package/dist/client/assets/{sso-Dc5pWnzG.js → sso-GSEhvAQ2.js} +1 -1
  260. package/dist/client/assets/{suggestion-D84t4pYi.js → suggestion-BPVDnpZj.js} +1 -1
  261. package/dist/client/assets/{switch-BmYqPGgo.js → switch-63WSXheM.js} +1 -1
  262. package/dist/client/assets/{symbol-CJzDXO7c.js → symbol-rviHpBrN.js} +1 -1
  263. package/dist/client/assets/{synced-repos-fVXqYXys.js → synced-repos-D3YnOlYC.js} +1 -1
  264. package/dist/client/assets/{tab-icon-glyph-C5tGzEgb.js → tab-icon-glyph-Dqe-yN6V.js} +1 -1
  265. package/dist/client/assets/{table-CIfuKXR7.js → table-CLaOCONQ.js} +1 -1
  266. package/dist/client/assets/{tabs-D_cbCZvQ.js → tabs-BQUPeDjf.js} +1 -1
  267. package/dist/client/assets/{task-board-D3hDrEMs.js → task-board-DxxiAR5A.js} +1 -1
  268. package/dist/client/assets/task-key-BCHdFiOO.js +1 -0
  269. package/dist/client/assets/task-route-Ce6MTE8h.js +1 -0
  270. package/dist/client/assets/{task-status-BtShubbX.js → task-status-CMbp-PaL.js} +1 -1
  271. package/dist/client/assets/taskboard-analytics-_ZvfL2sj.js +1 -0
  272. package/dist/client/assets/{tasks-aU51vuBa.js → tasks-BarD4hla.js} +1 -1
  273. package/dist/client/assets/tasks-DcunZstc.js +1 -0
  274. package/dist/client/assets/{textarea-YNmZlxz9.js → textarea-CxYAsAPe.js} +1 -1
  275. package/dist/client/assets/{thread-analytics-CSwkdFem.js → thread-analytics-Cjx1orRq.js} +1 -1
  276. package/dist/client/assets/{thread-intent-C0peckWT.js → thread-intent-DikZOwd-.js} +1 -1
  277. package/dist/client/assets/{thread-route-BIabyzB_.js → thread-route-CRU_aqN9.js} +1 -1
  278. package/dist/client/assets/{thread-route-BiWGG6Nf.js → thread-route-ChugAIRh.js} +1 -1
  279. package/dist/client/assets/{thread-sheet-body-o-wpyh-M.js → thread-sheet-body-DfFj6DBB.js} +1 -1
  280. package/dist/client/assets/{time-range-picker-BrI8y_uu.js → time-range-picker-Bf6M5ihN.js} +1 -1
  281. package/dist/client/assets/{toggle-group-CIDl0GvE.js → toggle-group-DbSldXZX.js} +1 -1
  282. package/dist/client/assets/{tool-namespace-1HqDTB0T.js → tool-namespace-pIFYrei5.js} +1 -1
  283. package/dist/client/assets/{toolbar-icon-button-DXjKtTYI.js → toolbar-icon-button-B24Twz-b.js} +1 -1
  284. package/dist/client/assets/{tooltip-OOT2FRXJ.js → tooltip-Bs0EJaD7.js} +1 -1
  285. package/dist/client/assets/{tooltipContext-B-cNOrp0.js → tooltipContext-fXkDpiI8.js} +1 -1
  286. package/dist/client/assets/{track-Bbr1fYQY.js → track-BzGhLw1A.js} +1 -1
  287. package/dist/client/assets/{types-BETxN8TR.js → types-IpdOmnYx.js} +1 -1
  288. package/dist/client/assets/{url-slug-63gf-C65.js → url-slug-CMCbwnaP.js} +1 -1
  289. package/dist/client/assets/{usage-stats-B912Tchp.js → usage-stats-DuvxTL2m.js} +1 -1
  290. package/dist/client/assets/{use-ai-providers-Boin6TrZ.js → use-ai-providers-Becg3IYt.js} +1 -1
  291. package/dist/client/assets/{use-app-takeover-bAb0Bn22.js → use-app-takeover-DFb1RzQs.js} +1 -1
  292. package/dist/client/assets/{use-automations-BA1S9JI2.js → use-automations-Cp9pysoO.js} +1 -1
  293. package/dist/client/assets/{use-autosave-nQjtFOs-.js → use-autosave-C5CskRdQ.js} +1 -1
  294. package/dist/client/assets/{use-chat-navigation-CTkiB6Jn.js → use-chat-navigation-BJSvg7rH.js} +1 -1
  295. package/dist/client/assets/{use-clock-tick-CEu8zq2_.js → use-clock-tick-B1PaG9d4.js} +1 -1
  296. package/dist/client/assets/{use-connect-companion-3Gaurk9V.js → use-connect-companion-ClLk9Ret.js} +1 -1
  297. package/dist/client/assets/{use-connection-CIk0SysG.js → use-connection-CLmhN_H7.js} +1 -1
  298. package/dist/client/assets/{use-copy-DdqqSOOQ.js → use-copy-T3xwaExj.js} +1 -1
  299. package/dist/client/assets/{use-create-virtual-mcp-DLCnN0Bc.js → use-create-virtual-mcp-CVTk_yNo.js} +1 -1
  300. package/dist/client/assets/{use-date-fns-locale-D224q4hz.js → use-date-fns-locale-CYDYn543.js} +1 -1
  301. package/dist/client/assets/{use-debounced-autosave-BeG6Pney.js → use-debounced-autosave-8fEcHiWI.js} +1 -1
  302. package/dist/client/assets/{use-debounced-value-CIdisYkq.js → use-debounced-value-d254MtLc.js} +1 -1
  303. package/dist/client/assets/{use-deco-credits-DkGJI-x1.js → use-deco-credits-BJdkVUlJ.js} +1 -1
  304. package/dist/client/assets/{use-decopilot-events-BENb56k0.js → use-decopilot-events-D42PqykU.js} +1 -1
  305. package/dist/client/assets/{use-delete-connection-Bp53G_uo.js → use-delete-connection-Bp41mUbu.js} +1 -1
  306. package/dist/client/assets/{use-deployment-admin-CzPDXfcD.js → use-deployment-admin-Cz36UM7j.js} +1 -1
  307. package/dist/client/assets/{use-ensure-project-folder-BcmfbAuR.js → use-ensure-project-folder-DV9pI0pa.js} +1 -1
  308. package/dist/client/assets/{use-fast-preview-draft-url-uP7_OFcR.js → use-fast-preview-draft-url-Dbj9pvCB.js} +1 -1
  309. package/dist/client/assets/{use-file-configs-Ch0NS5Pc.js → use-file-configs-D_kGDRPd.js} +1 -1
  310. package/dist/client/assets/{use-infinite-scroll-G4rzGI3v.js → use-infinite-scroll-C47I-wuH.js} +1 -1
  311. package/dist/client/assets/{use-join-requests-yp6IAr0h.js → use-join-requests-Cy3hlZv5.js} +1 -1
  312. package/dist/client/assets/{use-main-panel-tabs-0bYC8cZT.js → use-main-panel-tabs-DjhEbRyd.js} +1 -1
  313. package/dist/client/assets/{use-mcp-auth-status-yFWtpTs2.js → use-mcp-auth-status-5SUSMsp-.js} +1 -1
  314. package/dist/client/assets/{use-mcp-client-CwFvp4EC.js → use-mcp-client-CEKqqblF.js} +1 -1
  315. package/dist/client/assets/{use-mcp-prompts-CAOKsDB1.js → use-mcp-prompts-CwF-bqUg.js} +1 -1
  316. package/dist/client/assets/{use-mcp-tools-DV8Ssa-N.js → use-mcp-tools-_07-mu_D.js} +1 -1
  317. package/dist/client/assets/{use-members-DKlVbBsg.js → use-members-CFcpHrvE.js} +1 -1
  318. package/dist/client/assets/{use-mobile-Bv4e9giO.js → use-mobile-CYsZ0F3X.js} +1 -1
  319. package/dist/client/assets/{use-navigate-to-agent-Br865bX5.js → use-navigate-to-agent-DNsHLJD8.js} +1 -1
  320. package/dist/client/assets/{use-open-billing-url-D1GUbTgf.js → use-open-billing-url-C1m0KS6b.js} +1 -1
  321. package/dist/client/assets/{use-org-auth-client-CNVATKKL.js → use-org-auth-client-9ZqTxhaU.js} +1 -1
  322. package/dist/client/assets/{use-org-fs-Byjmod8E.js → use-org-fs-Wo4_O8nn.js} +1 -1
  323. package/dist/client/assets/{use-org-repo-syncs-DsFnwWov.js → use-org-repo-syncs-HjlHy8Rb.js} +1 -1
  324. package/dist/client/assets/{use-org-sso-ktfOKKdk.js → use-org-sso-BSkklN8h.js} +1 -1
  325. package/dist/client/assets/{use-organization-roles-DeL0SOnB.js → use-organization-roles-Dga2ANZJ.js} +1 -1
  326. package/dist/client/assets/{use-organization-settings-CRThO_Bk.js → use-organization-settings-DHSMN_14.js} +1 -1
  327. package/dist/client/assets/{use-panel-navigate-Cqu8Xb_L.js → use-panel-navigate-62gIHptt.js} +1 -1
  328. package/dist/client/assets/{use-project-native-view-presence-EAxaV-35.js → use-project-native-view-presence-D12oGF6A.js} +1 -1
  329. package/dist/client/assets/{use-project-scope-BFkfMXrm.js → use-project-scope-Dk4Q60O6.js} +1 -1
  330. package/dist/client/assets/{use-recent-apps-BdqTYWmf.js → use-recent-apps-CCwo686W.js} +1 -1
  331. package/dist/client/assets/{use-releases-DPoATUeI.js → use-releases-wK1mECcA.js} +1 -1
  332. package/dist/client/assets/{use-reports-diagnostic-BMtStgbM.js → use-reports-diagnostic-CfPcDRof.js} +1 -1
  333. package/dist/client/assets/{use-secrets-9Nv6GJGB.js → use-secrets-Cmhjz2bf.js} +1 -1
  334. package/dist/client/assets/{use-section-preview-base-BJN5vPDz.js → use-section-preview-base-DJFgOhQZ.js} +1 -1
  335. package/dist/client/assets/{use-tags-DzaE0p5G.js → use-tags-D0LqZNOI.js} +1 -1
  336. package/dist/client/assets/{use-task-board-analytics-yq3fDjmF.js → use-task-board-analytics-BpQqtB1w.js} +1 -1
  337. package/dist/client/assets/{use-task-board-events-Cm7RiaOR.js → use-task-board-events-BrTJpTlj.js} +1 -1
  338. package/dist/client/assets/{use-task-board-item-prs-CpuwpMX_.js → use-task-board-item-prs-BHRZFWqk.js} +1 -1
  339. package/dist/client/assets/{use-task-board-items-BXjcIp4o.js → use-task-board-items-CZjiF2uB.js} +1 -1
  340. package/dist/client/assets/{use-task-metadata-CEqKqYBo.js → use-task-metadata-Bef5UioD.js} +1 -1
  341. package/dist/client/assets/{use-thread-analytics-KrnGogU9.js → use-thread-analytics-CiJumHRj.js} +1 -1
  342. package/dist/client/assets/{use-thread-outputs-Bhilo9S-.js → use-thread-outputs-BVEM1vsy.js} +1 -1
  343. package/dist/client/assets/useInfiniteQuery-S3a_-GqY.js +1 -0
  344. package/dist/client/assets/{useQueries-CDCmtMzA.js → useQueries-D52x651p.js} +1 -1
  345. package/dist/client/assets/useSuspenseInfiniteQuery-DiRI5XkI.js +1 -0
  346. package/dist/client/assets/{users-DpioRMZR.js → users-DfEzbgjc.js} +1 -1
  347. package/dist/client/assets/{utils-CyO0sFRF.js → utils-DVs-Bhj-.js} +1 -1
  348. package/dist/client/assets/{variant-calendar-D2Ue9ttA.js → variant-calendar-B4damr_G.js} +1 -1
  349. package/dist/client/assets/{variant-draft-pointer-DVvHww7x.js → variant-draft-pointer-BnxZeLy_.js} +1 -1
  350. package/dist/client/assets/{view-mode-toggle-DR63ro4_.js → view-mode-toggle-DKlegHXH.js} +1 -1
  351. package/dist/client/assets/{virtual-mcp-BEkVRfgx.js → virtual-mcp-UT0zZzHO.js} +1 -1
  352. package/dist/client/assets/watch-sse-pool-BdkzrgTO.js +1 -0
  353. package/dist/client/index.html +1 -1
  354. package/dist/server/cli.js +1 -1
  355. package/dist/server/migrate-dbos.js +2 -2
  356. package/dist/server/migrate.js +244 -244
  357. package/dist/server/server.js +723 -693
  358. package/package.json +1 -1
  359. package/dist/client/assets/AreaChart-BDK36Hx4.js +0 -1
  360. package/dist/client/assets/agent-app-Cy0Wb8nQ.js +0 -1
  361. package/dist/client/assets/agent-deck-D_FtTpRb.js +0 -1
  362. package/dist/client/assets/agent-library-DuNdcBDQ.js +0 -1
  363. package/dist/client/assets/agent-library-file-BfuKcUpc.js +0 -1
  364. package/dist/client/assets/agent-monitor-CtwdZs_a.js +0 -1
  365. package/dist/client/assets/agent-overview-CXUTFZ-0.js +0 -1
  366. package/dist/client/assets/agent-settings-VI8Jye-y.js +0 -1
  367. package/dist/client/assets/agent-site-editor-code-H-580bQR.js +0 -2
  368. package/dist/client/assets/agent-site-editor-content-Sx7h5Jhh.js +0 -1
  369. package/dist/client/assets/agent-site-editor-preview-GqVBwoZa.js +0 -1
  370. package/dist/client/assets/agent-view-CYDFPIV_.js +0 -1
  371. package/dist/client/assets/api-keys-CcdfCp8Z.js +0 -1
  372. package/dist/client/assets/cms-settings-editor-D_UEmRaG.js +0 -1
  373. package/dist/client/assets/flat-project-Djf43rrR.js +0 -1
  374. package/dist/client/assets/home-B0VHSSDj.js +0 -1
  375. package/dist/client/assets/index-CEMpcZH2.js +0 -5
  376. package/dist/client/assets/library-qn0udAVP.js +0 -1
  377. package/dist/client/assets/project-app-view-CbRGVruN.js +0 -1
  378. package/dist/client/assets/project-feed-BYkTxe8U.js +0 -1
  379. package/dist/client/assets/project-reports-Cby7ToLK.js +0 -1
  380. package/dist/client/assets/project-tasks-DWvwJU4i.js +0 -1
  381. package/dist/client/assets/record-editor-BTpwFXbZ.js +0 -1
  382. package/dist/client/assets/reports-B_aoe-_-.js +0 -1
  383. package/dist/client/assets/reports-tab-BfjGKI8Z.js +0 -2
  384. package/dist/client/assets/route-B3ci9bDJ.js +0 -1
  385. package/dist/client/assets/route-BGgyso4O.js +0 -1
  386. package/dist/client/assets/site-editor-Db8otCJp.js +0 -1
  387. package/dist/client/assets/task-route-Ct_lSat4.js +0 -1
  388. package/dist/client/assets/taskboard-analytics-xs2Qkqls.js +0 -1
  389. package/dist/client/assets/tasks-B1SLqYgx.js +0 -1
  390. package/dist/client/assets/useInfiniteQuery-Ddm9V9zO.js +0 -1
  391. package/dist/client/assets/useSuspenseInfiniteQuery-Zvo1j3mt.js +0 -1
  392. package/dist/client/assets/watch-sse-pool-DtoO-1Ad.js +0 -1
@@ -1,5 +1,5 @@
1
1
  // @bun
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
2
+ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null,x)}var C=(_,x)=>{for(var u in x)fz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Iz.bind(x,u)})};import{Migrator as Sz,sql as o}from"kysely";var $x={};C($x,{up:()=>yz,down:()=>Vz});async function yz(_){await _.schema.createTable("codex_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey().references("user.id").onDelete("cascade")).addColumn("encrypted_auth","text",(x)=>x.notNull()).addColumn("auth_hash","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function Vz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Jx={};C(Jx,{up:()=>wz,down:()=>kz,TYPES:()=>Ux});import{sql as m_}from"kysely";var Ux=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function wz(_){await _.schema.createTable("order_monitor_state").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("rule","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("since","timestamptz",(x)=>x.notNull()).addColumn("evaluated_at","timestamptz",(x)=>x.notNull()).addColumn("verdict","jsonb",(x)=>x.notNull()).addColumn("prev_status","text").addColumn("task_board_item_id","text",(x)=>x.references("task_board_items.id").onDelete("set null")).addPrimaryKeyConstraint("order_monitor_state_pkey",["organization_id","connection_id","rule"]).execute(),await qm(_,Ux)}async function kz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await qm(_,Ux.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function qm(_,x){await m_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await m_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var Px={};C(Px,{up:()=>nz,down:()=>vz});import{sql as im}from"kysely";async function nz(_){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",im`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",im`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function vz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Qx={};C(Qx,{up:()=>pz,down:()=>gz});import{sql as a}from"kysely";async function pz(_){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,20 +14,20 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
17
+ OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function gz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Xx={};C(Xx,{up:()=>qz,down:()=>iz});import{sql as cm}from"kysely";async function qz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await cm`
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 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`
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 cm`
24
24
  insert into organization_settings
25
25
  ("organizationId", submodule_credentials, "createdAt", "updatedAt")
26
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 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`
30
+ `.execute(_)}}async function iz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Zx={};C(Zx,{up:()=>cz,down:()=>hz});async function cz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function hz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var jx={};C(jx,{up:()=>tz,down:()=>oz});import{sql as Wx}from"kysely";async function tz(_){await Wx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Wx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Wx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function oz(_){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 Fx={};C(Fx,{up:()=>lz,down:()=>ez});import{sql as G}from"kysely";var az={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"}},rz={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"}},Lx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function hm(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function tm(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,az],[G`'commerce-discovery_' || organization_id`,rz]])for(let T of["title","description"]){let{from:z,to:E}=hm(m[T],x);await G`
31
31
  UPDATE connections
32
32
  SET ${G.ref(T)} = ${E}
33
33
  WHERE id = ${K}
@@ -41,7 +41,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
41
41
  RETURN NULL;
42
42
  END;
43
43
  $fn$ LANGUAGE plpgsql IMMUTABLE;
44
- `.execute(_);let{from:u,to:N}=gm(Zx.label,x);await G`
44
+ `.execute(_);let{from:u,to:N}=hm(Lx.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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
56
56
  (
57
57
  SELECT jsonb_agg(
58
58
  CASE
59
- WHEN v ->> 'toolName' = ${Zx.toolName}
59
+ WHEN v ->> 'toolName' = ${Lx.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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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' = ${Zx.toolName}
75
+ WHERE v ->> 'toolName' = ${Lx.toolName}
76
76
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
77
77
  )
78
78
  )
@@ -80,38 +80,38 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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_`
83
+ `.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function lz(_){await tm(_,"up")}async function ez(_){await tm(_,"down")}var Dx={};C(Dx,{up:()=>bz,down:()=>sz,ACTIONS:()=>Yx});import{sql as T_}from"kysely";var Yx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],dz=Yx.filter((_)=>_!=="finding_resolved");async function bz(_){await om(_,Yx)}async function sz(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await om(_,dz)}async function om(_,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 Hx={};C(Hx,{up:()=>_E,down:()=>xE});import{sql as G_}from"kysely";async function _E(_){await G_`
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
87
87
  CHECK (from_kind IN ('any', 'earlier', 'later', 'statuses')),
88
88
  ADD COLUMN IF NOT EXISTS from_statuses text[] NOT NULL DEFAULT '{}',
89
89
  ADD COLUMN IF NOT EXISTS from_key text NOT NULL DEFAULT 'any'
90
- `.execute(_),await B_`
90
+ `.execute(_),await G_`
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 lz(_){await B_`
94
+ `.execute(_)}async function xE(_){await G_`
95
95
  DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
96
- `.execute(_),await B_`
96
+ `.execute(_),await G_`
97
97
  ALTER TABLE org_jira_column_automations
98
98
  DROP CONSTRAINT org_jira_column_automations_pkey,
99
99
  ADD PRIMARY KEY (organization_id, jira_status),
100
100
  DROP COLUMN from_key,
101
101
  DROP COLUMN from_statuses,
102
102
  DROP COLUMN from_kind
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:()=>bz,down:()=>sz});async function bz(){}async function sz(){}var Mx={};C(Mx,{up:()=>_E,down:()=>xE});import{sql as Hx}from"kysely";async function _E(_){await Hx`
103
+ `.execute(_)}var Mx={};C(Mx,{up:()=>uE,down:()=>CE});import{sql as am}from"kysely";async function uE(_){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(am`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(am`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 CE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Rx={};C(Rx,{up:()=>KE,down:()=>NE});async function KE(){}async function NE(){}var Gx={};C(Gx,{up:()=>mE,down:()=>TE});import{sql as Bx}from"kysely";async function mE(_){await Bx`
104
104
  ALTER TABLE task_board_prompts
105
105
  ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
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`
106
+ `.execute(_)}async function TE(_){await Bx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Bx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Sx={};C(Sx,{up:()=>zE,down:()=>EE});import{sql as Ox}from"kysely";async function zE(_){await Ox`
107
107
  DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
108
- `.execute(_),await Rx`
108
+ `.execute(_),await Ox`
109
109
  DELETE FROM connection_aggregations
110
110
  WHERE parent_connection_id LIKE 'studio-jira\\_%'
111
- `.execute(_),await Rx`
111
+ `.execute(_),await Ox`
112
112
  DELETE FROM connections
113
113
  WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
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`
114
+ `.execute(_)}async function EE(){}var fx={};C(fx,{up:()=>$E,down:()=>UE});import{sql as rm}from"kysely";async function $E(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(rm`audience in ('human', 'internal')`)).execute(),await rm`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 Ax={};C(Ax,{up:()=>PE,down:()=>QE});import{sql as JE}from"kysely";async function PE(_){await JE`
115
115
  UPDATE org_fs_entry AS d
116
116
  SET deleted_at = now(),
117
117
  updated_at = now(),
@@ -130,7 +130,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
130
130
  AND c.parent = d.path
131
131
  AND c.deleted_at IS NULL
132
132
  )
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`
133
+ `.execute(_)}async function QE(){}var yx={};C(yx,{up:()=>ZE,down:()=>WE,ACTIONS:()=>Ix});import{sql as F}from"kysely";var Ix=["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"],XE=Ix.filter((_)=>_!=="sprint_changed");async function ZE(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
159
+ `.execute(_),await lm(_,Ix)}async function WE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await lm(_,XE),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 lm(_,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 Vx={};C(Vx,{up:()=>LE,planOrgSiteProjectLinks:()=>bm,down:()=>FE,applyOrgSiteProjectLinks:()=>sm});import{sql as P}from"kysely";var jE="migration-237",em=1000;async function dm(_){return(await P`
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 rm(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
164
+ `.execute(_)).rows[0]?.conname??null}async function bm(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await P`
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 J`
168
+ `.execute(_);if(u.rows.length===0)return x;let N=await P`
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 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`
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 sm(_,x){let u=0;for(let N=0;N<x.length;N+=em){let K=P.join(x.slice(N,N+em).map((T)=>P`(${T.slug}::text, ${T.projectId}::text)`)),m=await P`
176
176
  UPDATE org_sites o
177
177
  SET project_id = v.pid,
178
178
  linked_at = now(),
179
- updated_by = ${UE},
179
+ updated_by = ${jE},
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(m.numAffectedRows??0n)}return u}async function JE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await rm(_);await J`
185
+ `.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function LE(_){await P`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await bm(_);await P`
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 J`
190
+ `.execute(_),await P`
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 am(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
193
+ `.execute(_);let u=await dm(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
194
194
  ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
195
- `.execute(_),await J`
195
+ `.execute(_),await P`
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 J`
200
+ `.execute(_),await P`
201
201
  ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
202
- `.execute(_);let N=await lm(_,x.links),K=await J`
202
+ `.execute(_);let N=await sm(_,x.links),K=await P`
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 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`
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:m,projectIds:T}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${m}": ${T.join(", ")}`)}async function FE(_){if((await P`
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 am(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
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 dm(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
208
208
  ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
209
- `.execute(_),await J`
209
+ `.execute(_),await P`
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 J`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await J`
214
+ `.execute(_),await P`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await P`
215
215
  ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
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`
216
+ `.execute(_)}var wx={};C(wx,{up:()=>YE,moveRules:()=>Y,down:()=>DE});import{sql as c}from"kysely";async function YE(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 ZE(){}async function Y(_,x,u,N,K){await c`
244
+ `.execute(_)}async function DE(){}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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
255
255
  id = ${u} || organization_id || '_' || ${K},
256
256
  updated_at = now()
257
257
  WHERE column_key = ${N}
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`
258
+ `.execute(_)}var kx={};C(kx,{up:()=>ME,down:()=>RE});import{sql as HE}from"kysely";async function ME(_){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 HE`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 LE(){}var Vx={};C(Vx,{up:()=>YE,down:()=>DE});import{sql as FE}from"kysely";async function YE(_){await FE`
282
+ `.execute(_)}async function RE(){}var nx={};C(nx,{up:()=>GE,down:()=>OE});import{sql as BE}from"kysely";async function GE(_){await BE`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 DE(){}var wx={};C(wx,{up:()=>HE,down:()=>ME});import{sql as L}from"kysely";async function HE(_){await L`
309
+ `.execute(_)}async function OE(){}var vx={};C(vx,{up:()=>SE,down:()=>fE});import{sql as L}from"kysely";async function SE(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
335
+ `.execute(_)}async function fE(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
343
+ `.execute(_)}var px={};C(px,{up:()=>VE,down:()=>wE,backfillUrlSlugs:()=>O_});import{sql as D}from"kysely";var xT=64,AE=new Set(["new","edit","settings","apps","projects","connections"]);function IE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function yE(_,x){let u=IE(_??"").slice(0,xT).replace(/-+$/,"");return u.length>=2&&!AE.has(u)?u:x}function _T(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,xT-u.length).replace(/-+$/,"")}${u}`}async function O_(_){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=(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`
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=yE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(_T(E,$)))$++;let J=_T(E,$);z.add(J),m.push({id:T.id,slug:J})}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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 OE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
355
+ `.execute(_)}}async function VE(_){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,
@@ -363,21 +363,21 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
363
363
  `.execute(_),await D`
364
364
  CREATE INDEX idx_connection_slug_aliases_connection
365
365
  ON connection_slug_aliases (connection_id)
366
- `.execute(_),await G_(_),await D`
366
+ `.execute(_),await O_(_),await D`
367
367
  CREATE UNIQUE INDEX idx_connections_org_url_slug
368
368
  ON connections (organization_id, url_slug)
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_`
369
+ `.execute(_)}async function wE(_){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 gx={};C(gx,{up:()=>kE,down:()=>nE});async function kE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function nE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var qx={};C(qx,{up:()=>vE,down:()=>pE});async function vE(_){await O_(_)}async function pE(){}var ix={};C(ix,{up:()=>gE,down:()=>qE});import{sql as S_}from"kysely";async function gE(_){await S_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await S_`
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 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_`
373
+ `.execute(_)}async function qE(_){await S_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await S_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var cx={};C(cx,{up:()=>iE,down:()=>cE});import{sql as z_}from"kysely";async function iE(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
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 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_`
377
+ `.execute(_)}async function cE(_){await z_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
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 qx={};C(qx,{up:()=>vE,down:()=>qE});import{sql as H}from"kysely";async function vE(_){let{rows:x}=await H`
380
+ `.execute(_)}var hx={};C(hx,{up:()=>hE,down:()=>aE});import{sql as H}from"kysely";async function hE(_){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
@@ -404,8 +404,8 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
404
404
  INSERT INTO automations
405
405
  (id, organization_id, name, active, created_by, messages, models,
406
406
  virtual_mcp_id)
407
- VALUES (${T}, ${K.organization_id}, ${pE(K)}, true,
408
- ${K.created_by}, ${JSON.stringify(gE(K.prompt))},
407
+ VALUES (${T}, ${K.organization_id}, ${tE(K)}, true,
408
+ ${K.created_by}, ${JSON.stringify(oE(K.prompt))},
409
409
  '{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
410
410
  ON CONFLICT (id) DO NOTHING
411
411
  `.execute(_),await H`
@@ -414,11 +414,11 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
414
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 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`
417
+ `.execute(_)}}function tE(_){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 oE(_){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 aE(_){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 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_`
421
+ `.execute(_)}var tx={};C(tx,{up:()=>rE,down:()=>lE});import{sql as E_}from"kysely";async function rE(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function lE(_){await E_`
422
422
  CREATE TABLE IF NOT EXISTS task_board_column_automations (
423
423
  id text PRIMARY KEY,
424
424
  organization_id text NOT NULL,
@@ -427,10 +427,10 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
427
427
  created_at timestamptz NOT NULL DEFAULT now(),
428
428
  updated_at timestamptz NOT NULL DEFAULT now()
429
429
  )
430
- `.execute(_),await z_`
430
+ `.execute(_),await E_`
431
431
  CREATE UNIQUE INDEX IF NOT EXISTS task_board_column_automations_org_column_uniq
432
432
  ON task_board_column_automations (organization_id, column_key)
433
- `.execute(_),await z_`
433
+ `.execute(_),await E_`
434
434
  CREATE TABLE IF NOT EXISTS org_jira_column_automations (
435
435
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
436
436
  jira_status text NOT NULL,
@@ -445,30 +445,30 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 cx={};C(cx,{up:()=>hE,down:()=>tE});import{sql as S_}from"kysely";async function hE(_){await S_`
448
+ `.execute(_)}var ox={};C(ox,{up:()=>eE,down:()=>dE});import{sql as f_}from"kysely";async function eE(_){await f_`
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
452
- `.execute(_),await S_`
452
+ `.execute(_),await f_`
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 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 bm(_){let{rows:x}=await r`
456
+ `.execute(_)}async function dE(_){await f_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await f_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var ax={};C(ax,{up:()=>bE,down:()=>sE});async function bE(_){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 sE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var rx={};C(rx,{up:()=>_0,down:()=>x0});async function _0(_){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 x0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var lx={};C(lx,{up:()=>u0,down:()=>C0});import{sql as r}from"kysely";var A_=["linked_chat_run"];async function uT(_){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 sm(_,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 CT(_,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 eE(_){let x=await bm(_);if(f_.every((u)=>x.has(u)))return;for(let u of f_)x.add(u);await sm(_,x)}async function dE(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(f_)})`.execute(_);let x=await bm(_);for(let u of f_)x.delete(u);await sm(_,x)}var ax={};C(ax,{up:()=>bE,down:()=>sE});import{sql as l}from"kysely";var A_=["board_pr_merged","chat_pr_opened"];async function _T(_){let{rows:x}=await l`
463
+ `.execute(_)}async function u0(_){let x=await uT(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await CT(_,x)}async function C0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(A_)})`.execute(_);let x=await uT(_);for(let u of A_)x.delete(u);await CT(_,x)}var ex={};C(ex,{up:()=>K0,down:()=>N0});import{sql as l}from"kysely";var I_=["board_pr_merged","chat_pr_opened"];async function KT(_){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 xT(_,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 NT(_,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 bE(_){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 sE(_){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`
470
+ `.execute(_)}async function K0(_){let x=await KT(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await NT(_,x)}async function N0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(I_)})`.execute(_);let x=await KT(_);for(let u of I_)x.delete(u);await NT(_,x)}var dx={};C(dx,{up:()=>T0,down:()=>z0});import{sql as m0}from"kysely";async function T0(_){await m0`ALTER TABLE organization_settings
471
+ DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function z0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var bx={};C(bx,{up:()=>E0,down:()=>$0});import{sql as mT}from"kysely";async function E0(_){await mT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function $0(_){await mT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var sx={};C(sx,{up:()=>U0,down:()=>J0});import{sql as O}from"kysely";async function U0(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 m0(_){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 J0(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 bx={};C(bx,{up:()=>T0,down:()=>z0});import{sql as dx}from"kysely";async function T0(_){await dx`ALTER TABLE git_provider_accounts
572
+ `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var xu={};C(xu,{up:()=>P0,down:()=>Q0});import{sql as _u}from"kysely";async function P0(_){await _u`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 z0(_){await dx`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await dx`ALTER TABLE git_provider_accounts
578
+ (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function Q0(_){await _u`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await _u`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 sx={};C(sx,{up:()=>E0,down:()=>$0});import{sql as CT}from"kysely";async function E0(_){await CT`
582
+ CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var uu={};C(uu,{up:()=>X0,down:()=>Z0});import{sql as TT}from"kysely";async function X0(_){await TT`
583
583
  INSERT INTO "organization" (id, name, slug, "createdAt")
584
584
  SELECT
585
585
  'org_user_fs',
@@ -593,9 +593,9 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
593
593
  END,
594
594
  now()
595
595
  ON CONFLICT (id) DO NOTHING
596
- `.execute(_)}async function $0(_){await CT`
596
+ `.execute(_)}async function Z0(_){await TT`
597
597
  DELETE FROM "organization" WHERE id = 'org_user_fs'
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`
598
+ `.execute(_)}var Cu={};C(Cu,{up:()=>W0,down:()=>j0});async function W0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function j0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Ku={};C(Ku,{up:()=>L0,down:()=>F0});async function L0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function F0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var Nu={};C(Nu,{up:()=>D0,down:()=>H0});import{sql as $_}from"kysely";var Y0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function zT(_,x){for(let{table:u,column:N}of Y0){let K=`${u}_${N}_check`,m=x.map((T)=>`'${T}'`).join(", ");await $_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await $_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${m}))`).execute(_)}}async function D0(_){await zT(_,["github","gitlab","bitbucket"])}async function H0(_){await $_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await zT(_,["github","gitlab"])}var mu={};C(mu,{up:()=>M0,down:()=>R0});import{sql as y_}from"kysely";async function M0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(y_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(y_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function R0(_){await _.schema.dropTable("experiments").execute()}var Tu={};C(Tu,{up:()=>G0,down:()=>O0});import{sql as B0}from"kysely";async function G0(_){await B0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function O0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Eu={};C(Eu,{up:()=>f0,down:()=>A0,ACTIONS:()=>zu});import{sql as U_}from"kysely";var zu=["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"],S0=zu.filter((_)=>_!=="duplicate_reported");async function f0(_){await ET(_,zu)}async function A0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await ET(_,S0)}async function ET(_,x){await U_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await U_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${U_.join(x.map((u)=>U_.lit(u)))}))`.execute(_)}var $u={};C($u,{up:()=>I0,down:()=>y0});async function I0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function y0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Uu={};C(Uu,{up:()=>V0,down:()=>w0});async function V0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function w0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Ju={};C(Ju,{up:()=>n0,down:()=>v0});import{sql as k0}from"kysely";async function n0(_){await k0`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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_`
608
+ `.execute(_)}async function v0(_){await _.schema.dropTable("github_connect_flows").execute()}var Pu={};C(Pu,{up:()=>p0,down:()=>g0});async function p0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function g0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Qu={};C(Qu,{up:()=>q0,down:()=>i0});import{sql as V_}from"kysely";async function q0(_){await V_`
609
609
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
610
610
  DECLARE
611
611
  metadata_json jsonb;
@@ -656,24 +656,24 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
656
656
  AFTER INSERT OR UPDATE OF metadata ON connections
657
657
  FOR EACH ROW EXECUTE FUNCTION adopt_legacy_repository();
658
658
  UPDATE connections SET metadata = metadata WHERE slug = 'mcp-github';
659
- `.execute(_),await y_`
659
+ `.execute(_),await V_`
660
660
  UPDATE org_repo_sync s SET repository_id = r.id
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 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:()=>b0,down:()=>s0});import{sql as P_}from"kysely";async function b0(_){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 s0(_){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_`
664
+ `.execute(_)}async function i0(_){await V_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await V_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Xu={};C(Xu,{up:()=>c0,down:()=>h0});import{sql as V}from"kysely";async function c0(_){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 h0(_){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 Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as $T}from"kysely";async function t0(_){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($T`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo($T`CURRENT_TIMESTAMP`)).execute()}async function o0(_){await _.schema.dropTable("organization_settings").execute()}var Wu={};C(Wu,{up:()=>a0,down:()=>r0});async function a0(_){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 r0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var ju={};C(ju,{up:()=>l0,down:()=>e0});async function l0(_){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 e0(_){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 Lu={};C(Lu,{up:()=>d0,down:()=>b0});async function d0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function b0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Fu={};C(Fu,{up:()=>_$,down:()=>x$});import{sql as s0}from"kysely";async function _$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",s0`text`).execute()}async function x$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Yu={};C(Yu,{up:()=>u$,down:()=>C$});async function u$(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function C$(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var Du={};C(Du,{up:()=>K$,down:()=>N$});import{sql as J_}from"kysely";async function K$(_){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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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(J_`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 N$(_){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 Hu={};C(Hu,{up:()=>T$,down:()=>z$});import{sql as m$}from"kysely";async function T$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function z$(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(m$`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 Mu={};C(Mu,{up:()=>E$,down:()=>$$});import{sql as w_}from"kysely";async function E$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await w_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function $$(_){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 Ru={};C(Ru,{up:()=>U$,down:()=>J$});async function U$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function J$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Bu={};C(Bu,{up:()=>P$,down:()=>Q$});import{sql as k_}from"kysely";async function P$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await k_`
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 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_`
670
+ `.execute(_),await k_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function Q$(_){await k_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await k_`
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 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$`
676
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Gu={};C(Gu,{up:()=>X$,down:()=>Z$});async function X$(_){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 Z$(_){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 Ou={};C(Ou,{up:()=>W$,down:()=>j$});async function W$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function j$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Su={};C(Su,{up:()=>L$,down:()=>F$});async function L$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function F$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var fu={};C(fu,{up:()=>Y$,down:()=>D$});async function Y$(_){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 D$(_){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 Au={};C(Au,{up:()=>M$,down:()=>R$});import{sql as H$}from"kysely";async function M$(_){await H$`
677
677
  DELETE FROM downstream_tokens
678
678
  WHERE id NOT IN (
679
679
  SELECT id FROM (
@@ -683,7 +683,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
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 R$(_){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 Iu={};C(Iu,{up:()=>B$,down:()=>G$});async function B$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function G$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var yu={};C(yu,{up:()=>O$,down:()=>S$});import{sql as UT}from"kysely";async function O$(_){await UT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function S$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await UT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Vu={};C(Vu,{up:()=>f$,down:()=>A$});async function f$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function A$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var wu={};C(wu,{up:()=>I$,down:()=>y$});import{sql as n_}from"kysely";async function I$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function y$(_){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 ku={};C(ku,{up:()=>V$,down:()=>w$});async function V$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function w$(_){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 nu={};C(nu,{up:()=>k$,down:()=>n$});async function k$(_){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 n$(_){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:()=>v$,down:()=>p$});import{sql as M}from"kysely";async function v$(_){await M`
687
687
  INSERT INTO connections (
688
688
  id,
689
689
  organization_id,
@@ -730,7 +730,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
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 p$(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
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 pu={};C(pu,{up:()=>g$,down:()=>q$});async function g$(_){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 q$(_){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 gu={};C(gu,{up:()=>i$,down:()=>c$});import{sql as w}from"kysely";async function i$(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
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 c$(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 pu={};C(pu,{up:()=>v$,down:()=>p$});import{sql as vu}from"kysely";async function v$(_){await vu`
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 iu={};C(iu,{up:()=>h$,down:()=>t$});import{sql as qu}from"kysely";async function h$(_){await qu`
762
762
  UPDATE connections
763
763
  SET connection_url = connection_url || '/management',
764
764
  tools = NULL,
@@ -766,42 +766,42 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 vu`
769
+ `.execute(_),await qu`
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 p$(_){await vu`
775
+ `.execute(_)}async function t$(_){await qu`
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 qu={};C(qu,{up:()=>g$,down:()=>q$});import{sql as gu}from"kysely";async function g$(_){await gu`
781
+ `.execute(_)}var hu={};C(hu,{up:()=>o$,down:()=>a$});import{sql as cu}from"kysely";async function o$(_){await cu`
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 gu`
788
+ `.execute(_),await cu`
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 q$(_){await gu`
795
+ `.execute(_)}async function a$(_){await cu`
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 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_`
801
+ `.execute(_)}var tu={};C(tu,{up:()=>r$,down:()=>l$});async function r$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function l$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var ou={};C(ou,{up:()=>e$,down:()=>d$});import{sql as JT}from"kysely";async function e$(_){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(JT`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(JT`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 d$(_){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 au={};C(au,{up:()=>b$,down:()=>s$});import{sql as P_}from"kysely";async function b$(_){await P_`
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 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_`
804
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function s$(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await P_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await P_`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(P_`CURRENT_TIMESTAMP`)).execute(),await P_`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 tu={};C(tu,{up:()=>b$,down:()=>s$});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 b$(_){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 s$(_){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`
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 ru={};C(ru,{up:()=>KU,down:()=>NU});import{webcrypto as QT}from"crypto";var PT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var _U=128,h,e;function xU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*_U),QT.getRandomValues(h),e=0;else if(e+_>h.length)QT.getRandomValues(h),e=0;e+=_}function d(_=21){xU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=PT[h[u]&63];return x}var uU="org-admin",CU="Organization Admin";async function KU(_){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:uU,name:CU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function NU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var lu={};C(lu,{up:()=>mU,down:()=>TU});async function mU(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function TU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var eu={};C(eu,{up:()=>zU,down:()=>EU});async function zU(_){}async function EU(_){}var du={};C(du,{up:()=>$U,down:()=>UU});async function $U(_){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 bu={};C(bu,{up:()=>JU,down:()=>PU});import{sql as XT}from"kysely";async function JU(_){await XT`
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 TP(_){await PT`
820
+ `.execute(_)}async function PU(_){await XT`
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 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 bu={};C(bu,{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 su={};C(su,{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`
826
+ `.execute(_)}var su={};C(su,{up:()=>XU,down:()=>ZU});import{sql as QU}from"kysely";async function XU(_){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(QU`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 ZU(_){await _.schema.dropTable("ai_provider_keys").execute()}var _C={};C(_C,{up:()=>jU,down:()=>LU});import{sql as WU}from"kysely";async function jU(_){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(WU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function LU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var xC={};C(xC,{up:()=>FU,down:()=>YU});import{sql as p}from"kysely";async function FU(_){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 YU(_){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 uC={};C(uC,{up:()=>DU,down:()=>HU});async function DU(_){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 HU(_){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 CC={};C(CC,{up:()=>MU,down:()=>RU});async function MU(_){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 RU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var KC={};C(KC,{up:()=>BU,down:()=>GU});import{sql as ZT}from"kysely";async function BU(_){await ZT`
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 YP(_){await UT`
832
+ `.execute(_)}async function GU(_){await ZT`
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 uC={};C(uC,{up:()=>DP,down:()=>HP});import{sql as JT}from"kysely";async function DP(_){await JT`
837
+ `.execute(_)}var NC={};C(NC,{up:()=>OU,down:()=>SU});import{sql as WT}from"kysely";async function OU(_){await WT`
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 HP(_){await JT`
843
+ `.execute(_)}async function SU(_){await WT`
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 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`
848
+ `.execute(_)}var mC={};C(mC,{up:()=>fU,down:()=>AU});async function fU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function AU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var TC={};C(TC,{up:()=>IU,down:()=>yU});async function IU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function yU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var EC={};C(EC,{up:()=>VU,down:()=>wU});import{sql as zC}from"kysely";async function VU(_){await zC`
849
849
  UPDATE organization_settings
850
850
  SET enabled_plugins = (
851
851
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -854,7 +854,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
854
854
  )
855
855
  WHERE enabled_plugins IS NOT NULL
856
856
  AND enabled_plugins LIKE '%object-storage%'
857
- `.execute(_),await NC`
857
+ `.execute(_),await zC`
858
858
  UPDATE projects
859
859
  SET enabled_plugins = (
860
860
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -863,45 +863,45 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
863
863
  )
864
864
  WHERE enabled_plugins IS NOT NULL
865
865
  AND enabled_plugins LIKE '%object-storage%'
866
- `.execute(_),await NC`
866
+ `.execute(_),await zC`
867
867
  DELETE FROM project_plugin_configs
868
868
  WHERE plugin_id = 'object-storage'
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`
869
+ `.execute(_)}async function wU(_){}var $C={};C($C,{up:()=>kU,down:()=>nU});import{sql as jT}from"kysely";async function kU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await jT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function nU(_){await jT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var JC={};C(JC,{up:()=>vU,down:()=>pU});import{sql as UC}from"kysely";async function vU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await UC`
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 zC`
873
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await UC`
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,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`
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 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 pU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await UC`
878
878
  ALTER TABLE connections
879
879
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
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`
880
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var PC={};C(PC,{up:()=>qU,down:()=>iU});import{sql as gU}from"kysely";async function qU(_){await gU`
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 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`
885
+ `.execute(_)}async function iU(_){}var QC={};C(QC,{up:()=>hU,down:()=>tU});import{sql as cU}from"kysely";async function hU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await cU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function tU(_){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 ZC={};C(ZC,{up:()=>oU,down:()=>aU});import{sql as XC}from"kysely";async function oU(_){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(XC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(XC`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(XC`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 aU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var WC={};C(WC,{up:()=>rU,down:()=>lU});async function rU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function lU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var jC={};C(jC,{up:()=>eU,down:()=>dU});async function eU(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function dU(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var FC={};C(FC,{up:()=>sU,down:()=>_J});import{sql as LT}from"kysely";function LC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function bU(_){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 LC(N)}catch{return LC(_.connection_url)}if(_.title)return LC(_.title);return _.id}async function sU(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await LT`
886
886
  SELECT id, app_name, connection_url, title FROM connections
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:()=>bP});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 bP(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var FC={};C(FC,{up:()=>sP,down:()=>_U});import{sql as n_}from"kysely";async function sP(_){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=bU(u);await LT`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 _J(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var YC={};C(YC,{up:()=>xJ,down:()=>uJ});import{sql as Q_}from"kysely";async function xJ(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await Q_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Q_`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 uJ(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await Q_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await Q_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await Q_`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 DC={};C(DC,{up:()=>CJ,down:()=>KJ});async function CJ(_){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 KJ(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var HC={};C(HC,{up:()=>NJ,down:()=>mJ});import{sql as v_}from"kysely";async function NJ(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await v_`
888
888
  UPDATE threads
889
889
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
890
890
  WHERE agent_ids IS NOT NULL
891
891
  AND agent_ids != '[]'
892
892
  AND agent_ids != ''
893
893
  AND (agent_ids::jsonb ->> 0) IS NOT NULL
894
- `.execute(_),await n_`
894
+ `.execute(_),await v_`
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 _U(_){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 mJ(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await v_`
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 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 b}from"kysely";async function PU(_){await b`
904
+ `.execute(_),await v_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var MC={};C(MC,{up:()=>TJ,down:()=>zJ});async function TJ(_){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 zJ(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var RC={};C(RC,{up:()=>EJ,down:()=>$J});async function EJ(_){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 $J(_){await _.schema.dropTable("kv").execute()}var BC={};C(BC,{up:()=>UJ,down:()=>JJ});async function UJ(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function JJ(_){await _.schema.dropIndex("idx_member_user_org").execute()}var GC={};C(GC,{up:()=>PJ,down:()=>QJ});async function PJ(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function QJ(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var OC={};C(OC,{up:()=>XJ,down:()=>ZJ});import{sql as S}from"kysely";async function XJ(_){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 ZJ(_){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 SC={};C(SC,{up:()=>WJ,down:()=>jJ});import{sql as b}from"kysely";async function WJ(_){await b`
905
905
  ALTER TABLE event_subscriptions
906
906
  ALTER COLUMN enabled DROP DEFAULT
907
907
  `.execute(_),await b`
@@ -911,7 +911,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
911
911
  `.execute(_),await b`
912
912
  ALTER TABLE event_subscriptions
913
913
  ALTER COLUMN enabled SET DEFAULT true
914
- `.execute(_)}async function UU(_){await b`
914
+ `.execute(_)}async function jJ(_){await b`
915
915
  ALTER TABLE event_subscriptions
916
916
  ALTER COLUMN enabled DROP DEFAULT
917
917
  `.execute(_),await b`
@@ -921,7 +921,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
921
921
  `.execute(_),await b`
922
922
  ALTER TABLE event_subscriptions
923
923
  ALTER COLUMN enabled SET DEFAULT 1
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`
924
+ `.execute(_)}var fC={};C(fC,{up:()=>LJ,down:()=>FJ});import{sql as FT}from"kysely";async function LJ(_){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(FT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(FT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function FJ(_){await _.schema.dropTable("brand_context").execute()}var AC={};C(AC,{up:()=>YJ,down:()=>DJ});import{sql as YT}from"kysely";async function YJ(_){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(YT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(YT`now()`)).execute()}async function DJ(_){await _.schema.dropTable("organization_domains").execute()}var IC={};C(IC,{up:()=>BJ,down:()=>GJ});import{sql as DT}from"kysely";var p_=new Set(["primary","secondary","accent","background","foreground"]),HJ={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function MJ(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>p_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(p_.has(m))K[m]=T;else x[m]=T}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,m]of Object.entries(u)){if(typeof m!=="string")continue;if(p_.has(K.toLowerCase()))N[K.toLowerCase()]=m;else x[K]=m}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,m=K.label?.toLowerCase?.(),T=K.value;if(!m||!T)continue;if(p_.has(m))u[m]=T;else x[m]=T}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function RJ(_){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=HJ[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 BJ(_){let x=await DT`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 J=MJ($);if(T=J.structured,N=!0,Object.keys(J.extra).length>0)E.extraColors=J.extra,m=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=RJ($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await DT`
925
925
  UPDATE brand_context
926
926
  SET
927
927
  colors = ${T},
@@ -929,29 +929,29 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
929
929
  metadata = ${$},
930
930
  updated_at = NOW()
931
931
  WHERE id = ${u.id}
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`
932
+ `.execute(_)}}}async function GJ(_){}var yC={};C(yC,{up:()=>SJ,down:()=>fJ});import{sql as OJ}from"kysely";async function SJ(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(OJ`'{}'::jsonb`)).execute()}async function fJ(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var VC={};C(VC,{up:()=>AJ,down:()=>IJ});async function AJ(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function IJ(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var wC={};C(wC,{up:()=>yJ,down:()=>VJ});async function yJ(_){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 VJ(_){await _.schema.dropTable("sandbox_runner_state").execute()}var kC={};C(kC,{up:()=>wJ,down:()=>kJ});async function wJ(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function kJ(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var nC={};C(nC,{up:()=>nJ,down:()=>vJ});async function nJ(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function vJ(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var vC={};C(vC,{up:()=>pJ,down:()=>gJ});async function pJ(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function gJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var pC={};C(pC,{up:()=>iJ,down:()=>cJ});import{sql as HT}from"kysely";var qJ=["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 iJ(_){let x=await HT`
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 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`
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,...qJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await HT`
935
935
  UPDATE "organizationRole"
936
936
  SET permission = ${z}
937
937
  WHERE id = ${u.id}
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_`
938
+ `.execute(_)}}async function cJ(_){}var gC={};C(gC,{up:()=>hJ,down:()=>tJ});async function hJ(_){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 tJ(_){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 qC={};C(qC,{up:()=>oJ,down:()=>aJ});async function oJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function aJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var iC={};C(iC,{up:()=>rJ,down:()=>lJ});import{sql as X_}from"kysely";async function rJ(_){await X_`
939
939
  UPDATE automations
940
940
  SET virtual_mcp_id = (agent::json ->> 'id')
941
941
  WHERE virtual_mcp_id IS NULL
942
- `.execute(_),await Q_`
942
+ `.execute(_),await X_`
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 cU(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
945
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function lJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await X_`
946
946
  UPDATE automations
947
947
  SET agent = json_build_object('id', virtual_mcp_id)::text
948
- `.execute(_),await Q_`
948
+ `.execute(_),await X_`
949
949
  ALTER TABLE automations
950
950
  ALTER COLUMN agent SET NOT NULL
951
- `.execute(_),await Q_`
951
+ `.execute(_),await X_`
952
952
  ALTER TABLE automations
953
953
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
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`
954
+ `.execute(_)}var hC={};C(hC,{up:()=>sJ,reshapeSimpleMode:()=>MT,inferAutomationTier:()=>RT,down:()=>_P,__testing:()=>bJ});var eJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},dJ=["fast","smart","thinking","image","web_research"];function cC(_){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 dJ.some((N)=>(N in u))}function MT(_){if(cC(_))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 eJ;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 RT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function BT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var bJ={isAlreadyReshapedSimpleMode:cC,isAlreadyReshapedAutomationModels:BT};async function sJ(_){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(cC(K))continue;let m=MT(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(BT(K))continue;let m=RT(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 _P(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var tC={};C(tC,{up:()=>xP,down:()=>uP});import{sql as n}from"kysely";async function xP(_){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,27 +973,27 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
973
973
  AND tool_input IS NOT NULL
974
974
  )
975
975
  )
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`
976
+ `.execute(_)}async function uP(_){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 cC={};C(cC,{up:()=>bU,down:()=>sU});import{sql as HT}from"kysely";var dU=new Set(["host","docker","agent-sandbox"]);async function bU(_){let x=await HT`
979
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var oC={};C(oC,{up:()=>KP,down:()=>NP});import{sql as GT}from"kysely";var CP=new Set(["host","docker","agent-sandbox"]);async function KP(_){let x=await GT`
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 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`
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 J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){m=!0;continue}let y=X.runnerKind;if(y!==void 0&&!CP.has(y)){m=!0;continue}J[j]=X}if(Object.keys(J).length>0)T[E]=J;else m=!0}if(!m)continue;N.vmMap=T;let z=JSON.stringify(N);await GT`
985
985
  UPDATE "connections"
986
986
  SET metadata = ${z}
987
987
  WHERE id = ${u.id}
988
- `.execute(_)}}async function sU(_){}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_`
988
+ `.execute(_)}}async function NP(_){}var aC={};C(aC,{up:()=>mP,down:()=>TP});import{sql as Z_}from"kysely";async function mP(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Z_`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await Z_`
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')
992
- `.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await X_`
992
+ `.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await Z_`
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 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 s}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(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 TP(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var rC={};C(rC,{up:()=>zP,down:()=>EP});async function zP(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function EP(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var lC={};C(lC,{up:()=>$P,down:()=>UP});import{sql as s}from"kysely";async function $P(_){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`
997
997
  ALTER TABLE secrets
998
998
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
999
999
  `.execute(_),await s`
@@ -1010,10 +1010,10 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
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 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_`
1013
+ `.execute(_)}async function UP(_){await _.schema.dropTable("secrets").execute()}var eC={};C(eC,{up:()=>JP,down:()=>PP});async function JP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function PP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var dC={};C(dC,{up:()=>XP,down:()=>ZP});import{sql as QP}from"kysely";async function XP(_){await QP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function ZP(_){}var bC={};C(bC,{up:()=>WP,down:()=>jP});import{sql as g_}from"kysely";async function WP(_){await g_`
1014
1014
  ALTER TABLE sandbox_runner_state
1015
1015
  RENAME COLUMN runner_kind TO sandbox_provider_kind
1016
- `.execute(_),await p_`
1016
+ `.execute(_),await g_`
1017
1017
  DO $$ BEGIN
1018
1018
  UPDATE virtualmcps v
1019
1019
  SET metadata = jsonb_set(
@@ -1048,10 +1048,10 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 UJ(_){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 jP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await g_`
1052
1052
  ALTER TABLE sandbox_runner_state
1053
1053
  RENAME COLUMN sandbox_provider_kind TO runner_kind
1054
- `.execute(_),await p_`
1054
+ `.execute(_),await g_`
1055
1055
  DO $$ BEGIN
1056
1056
  UPDATE virtualmcps v
1057
1057
  SET metadata = jsonb_set(
@@ -1086,7 +1086,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1086
1086
  EXCEPTION WHEN undefined_table THEN
1087
1087
  NULL;
1088
1088
  END; $$
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`
1089
+ `.execute(_)}var sC={};C(sC,{up:()=>LP,down:()=>FP});import{sql as OT}from"kysely";async function LP(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await OT`
1090
1090
  DO $$ BEGIN
1091
1091
  UPDATE virtualmcps v
1092
1092
  SET metadata = jsonb_set(
@@ -1125,7 +1125,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1125
1125
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
1126
1126
  NULL;
1127
1127
  END; $$
1128
- `.execute(_)}async function QJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await MT`
1128
+ `.execute(_)}async function FP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await OT`
1129
1129
  DO $$ BEGIN
1130
1130
  UPDATE virtualmcps v
1131
1131
  SET metadata = jsonb_set(
@@ -1158,7 +1158,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1158
1158
  EXCEPTION WHEN undefined_table THEN
1159
1159
  NULL;
1160
1160
  END; $$
1161
- `.execute(_)}var dC={};C(dC,{up:()=>XJ,down:()=>ZJ});import{sql as RT}from"kysely";async function XJ(_){await RT`
1161
+ `.execute(_)}var _K={};C(_K,{up:()=>YP,down:()=>DP});import{sql as ST}from"kysely";async function YP(_){await ST`
1162
1162
  UPDATE connections c
1163
1163
  SET metadata = (
1164
1164
  jsonb_set(
@@ -1202,7 +1202,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 RT`
1205
+ `.execute(_),await ST`
1206
1206
  UPDATE connections c
1207
1207
  SET metadata = (
1208
1208
  jsonb_set(
@@ -1256,14 +1256,14 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 ZJ(_){}var bC={};C(bC,{up:()=>jJ,down:()=>LJ});import{sql as WJ}from"kysely";async function jJ(_){await WJ`
1259
+ `.execute(_)}async function DP(_){}var xK={};C(xK,{up:()=>MP,down:()=>RP});import{sql as HP}from"kysely";async function MP(_){await HP`
1260
1260
  DELETE FROM ai_provider_keys
1261
1261
  WHERE provider_id IN ('claude-code', 'codex')
1262
- `.execute(_)}async function LJ(_){}var sC={};C(sC,{up:()=>FJ,down:()=>YJ});import{sql as g_}from"kysely";async function FJ(_){await g_`
1262
+ `.execute(_)}async function RP(_){}var uK={};C(uK,{up:()=>BP,down:()=>GP});import{sql as q_}from"kysely";async function BP(_){await q_`
1263
1263
  UPDATE sandbox_runner_state
1264
1264
  SET sandbox_provider_kind = 'desktop'
1265
1265
  WHERE sandbox_provider_kind = 'remote-user'
1266
- `.execute(_),await g_`
1266
+ `.execute(_),await q_`
1267
1267
  UPDATE connections c
1268
1268
  SET metadata = (
1269
1269
  jsonb_set(
@@ -1306,7 +1306,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1306
1306
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1307
1307
  WHERE kind_key = 'remote-user'
1308
1308
  );
1309
- `.execute(_),await g_`
1309
+ `.execute(_),await q_`
1310
1310
  UPDATE connections c
1311
1311
  SET metadata = (
1312
1312
  jsonb_set(
@@ -1353,17 +1353,17 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1353
1353
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1354
1354
  WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
1355
1355
  );
1356
- `.execute(_),await g_`
1356
+ `.execute(_),await q_`
1357
1357
  UPDATE threads
1358
1358
  SET sandbox_provider_kind = 'desktop'
1359
1359
  WHERE sandbox_provider_kind = 'remote-user'
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`
1360
+ `.execute(_)}async function GP(_){}var CK={};C(CK,{up:()=>OP,down:()=>SP});import{sql as W_}from"kysely";async function OP(_){await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function SP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await W_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var KK={};C(KK,{up:()=>fP,down:()=>AP});import{sql as fT}from"kysely";async function fP(_){await fT`
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 RJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await BT`
1363
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function AP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await fT`
1364
1364
  ALTER TABLE organization_domains
1365
1365
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
1366
- `.execute(_)}var uK={};C(uK,{up:()=>BJ,down:()=>GJ});import{sql as q_}from"kysely";async function BJ(_){await q_`
1366
+ `.execute(_)}var NK={};C(NK,{up:()=>IP,down:()=>yP});import{sql as i_}from"kysely";async function IP(_){await i_`
1367
1367
  UPDATE sandbox_runner_state
1368
1368
  SET sandbox_provider_kind = CASE sandbox_provider_kind
1369
1369
  WHEN 'docker' THEN 'local-docker'
@@ -1373,7 +1373,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1373
1373
  ELSE sandbox_provider_kind
1374
1374
  END
1375
1375
  WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
1376
- `.execute(_),await q_`
1376
+ `.execute(_),await i_`
1377
1377
  UPDATE connections c
1378
1378
  SET metadata = (
1379
1379
  (c.metadata::jsonb - 'vmMap')
@@ -1382,7 +1382,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1382
1382
  WHERE c.connection_type = 'VIRTUAL'
1383
1383
  AND c.metadata IS NOT NULL
1384
1384
  AND c.metadata::jsonb ? 'vmMap'
1385
- `.execute(_),await q_`
1385
+ `.execute(_),await i_`
1386
1386
  UPDATE connections c
1387
1387
  SET metadata = (
1388
1388
  jsonb_set(
@@ -1443,7 +1443,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1443
1443
  WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
1444
1444
  OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
1445
1445
  );
1446
- `.execute(_),await q_`
1446
+ `.execute(_),await i_`
1447
1447
  UPDATE connections c
1448
1448
  SET metadata = REPLACE(
1449
1449
  REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
@@ -1452,19 +1452,19 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
1455
+ `.execute(_)}async function yP(_){}var mK={};C(mK,{up:()=>wP,down:()=>kP});import{sql as AT}from"kysely";var VP=["GLOBAL_SEARCH"];async function wP(_){let x=await AT`
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 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`
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,...VP]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await AT`
1458
1458
  UPDATE "organizationRole"
1459
1459
  SET permission = ${z}
1460
1460
  WHERE id = ${u.id}
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`
1461
+ `.execute(_)}}async function kP(_){}var zK={};C(zK,{up:()=>nP,down:()=>vP});import{sql as TK}from"kysely";async function nP(_){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(TK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(TK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await TK`
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 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`
1464
+ `.execute(_)}async function vP(_){await _.schema.dropTable("org_file_configs").execute()}var EK={};C(EK,{up:()=>pP,down:()=>gP});import{sql as v}from"kysely";async function pP(_){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 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`
1467
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function gP(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1486
1486
  AND tool_input IS NOT NULL
1487
1487
  )
1488
1488
  )
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`
1489
+ `.execute(_)}var $K={};C($K,{up:()=>qP,down:()=>iP});async function qP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function iP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var JK={};C(JK,{up:()=>cP,down:()=>hP});import{sql as UK}from"kysely";var c_="local-docker";async function cP(_){await UK`delete from sandbox_runner_state where sandbox_provider_kind = ${c_}`.execute(_);let x=await UK`
1490
1490
  SELECT id, metadata FROM "connections"
1491
1491
  WHERE connection_type = 'VIRTUAL'
1492
1492
  AND metadata IS NOT NULL
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 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`
1493
+ AND metadata LIKE ${"%"+c_+"%"}
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 J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){m=!0;continue}if(c_ in X){m=!0;let y={...X};if(delete y[c_],Object.keys(y).length>0)J[j]=y}else J[j]=X}if(Object.keys(J).length>0)T[E]=J;else m=!0}if(!m)continue;N.sandboxMap=T;let z=JSON.stringify(N);await UK`
1495
1495
  UPDATE "connections"
1496
1496
  SET metadata = ${z}
1497
1497
  WHERE id = ${u.id}
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:()=>bJ,down:()=>sJ});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`
1498
+ `.execute(_)}}async function hP(_){}var PK={};C(PK,{up:()=>tP,down:()=>oP});import{sql as h_}from"kysely";async function tP(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await h_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await h_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await h_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await h_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function oP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var QK={};C(QK,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function rP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var XK={};C(XK,{up:()=>lP,down:()=>eP});async function lP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function eP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var ZK={};C(ZK,{up:()=>dP,down:()=>bP});async function dP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function bP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var WK={};C(WK,{up:()=>sP,down:()=>_Q});async function sP(_){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 _Q(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var jK={};C(jK,{up:()=>xQ,down:()=>uQ});async function xQ(_){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 uQ(_){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 FK={};C(FK,{up:()=>KQ,down:()=>NQ});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function LK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function t_(_){if(!__(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function CQ(_,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 J={};for(let[j,X]of Object.entries($)){if(j===x){if(N=!0,!(u in $))J[u]=LK(X,x,u);else if(!t_($[u])&&t_(X))J[u]=LK(X,x,u);continue}let y=LK(X,x,u);if(y!==X)N=!0;if(j===u&&j in J&&t_(J[j])&&!t_(y))continue;J[j]=y}z[E]=J}K[m]=z}return{sandboxMap:K,changed:N}}async function IT(_,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 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`
1503
+ `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=CQ(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
1504
1504
  UPDATE connections
1505
1505
  SET metadata = ${JSON.stringify(m)}
1506
1506
  WHERE id = ${K.id}
1507
- `.execute(_)}}async function bJ(_){await k`
1507
+ `.execute(_)}}async function KQ(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 OT(_,f,A)}async function sJ(_){await k`
1536
+ `.execute(_),await IT(_,f,A)}async function NQ(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
1565
+ `.execute(_),await IT(_,A,f)}var YK={};C(YK,{up:()=>mQ,down:()=>TQ});import{sql as g}from"kysely";async function mQ(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
1573
+ `.execute(_)}async function TQ(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var DK={};C(DK,{up:()=>zQ,down:()=>EQ});async function zQ(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function EQ(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var HK={};C(HK,{up:()=>$Q,down:()=>UQ});import{sql as yT}from"kysely";async function $Q(_){await yT`
1574
1574
  INSERT INTO "organization" (id, name, slug, "createdAt")
1575
1575
  SELECT
1576
1576
  'org_orgfs_public_skills',
@@ -1584,13 +1584,13 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1584
1584
  END,
1585
1585
  now()
1586
1586
  ON CONFLICT (id) DO NOTHING
1587
- `.execute(_)}async function NQ(_){await ST`
1587
+ `.execute(_)}async function UQ(_){await yT`
1588
1588
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
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`
1589
+ `.execute(_)}var MK={};C(MK,{up:()=>JQ,down:()=>PQ});async function JQ(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function PQ(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var RK={};C(RK,{up:()=>QQ,down:()=>XQ});import{sql as VT}from"kysely";async function QQ(_){await VT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function XQ(_){await VT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var BK={};C(BK,{up:()=>WQ,down:()=>jQ});import{sql as ZQ}from"kysely";async function WQ(_){await ZQ`
1590
1590
  UPDATE downstream_tokens
1591
1591
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1592
1592
  WHERE "expiresAt" IS NULL
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`
1593
+ `.execute(_)}async function jQ(_){}var GK={};C(GK,{up:()=>LQ,down:()=>FQ});async function LQ(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function FQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var OK={};C(OK,{up:()=>YQ,down:()=>DQ});async function YQ(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function DQ(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var SK={};C(SK,{up:()=>HQ,down:()=>MQ});async function HQ(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function MQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var fK={};C(fK,{up:()=>RQ,down:()=>BQ});async function RQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function BQ(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var AK={};C(AK,{up:()=>GQ,down:()=>OQ});async function GQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function OQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var IK={};C(IK,{up:()=>SQ,down:()=>fQ});import{sql as wT}from"kysely";async function SQ(_){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(wT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(wT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function fQ(_){await _.schema.dropTable("org_sites").execute()}var yK={};C(yK,{up:()=>AQ,down:()=>IQ});async function AQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function IQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var VK={};C(VK,{up:()=>yQ,down:()=>VQ});import{sql as R}from"kysely";async function yQ(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
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 VQ(_){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 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_`
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 wK={};C(wK,{up:()=>wQ,down:()=>kQ});import{sql as o_}from"kysely";async function wQ(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(o_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).execute(),await o_`
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 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_`
1609
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function kQ(_){await _.schema.dropTable("organization_join_requests").execute()}var kK={};C(kK,{up:()=>nQ,down:()=>vQ});async function nQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function vQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var nK={};C(nK,{up:()=>pQ,down:()=>gQ});async function pQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function gQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var gK={};C(gK,{up:()=>cQ,splitWebResearchTier:()=>pK,down:()=>hQ,__testing:()=>iQ});function qQ(_){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 pK(_){if(!_||vK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(qQ(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var iQ={splitWebResearchTier:pK,isAlreadySplit:vK};async function cQ(_){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=pK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function hQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var qK={};C(qK,{up:()=>tQ,down:()=>oQ});import{sql as j_}from"kysely";async function tQ(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await j_`
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 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`
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(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function oQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var iK={};C(iK,{up:()=>aQ,down:()=>rQ});async function aQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function rQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var cK={};C(cK,{up:()=>lQ,down:()=>eQ});import{sql as t}from"kysely";async function lQ(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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:()=>bQ});async function dQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function bQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var oK={};C(oK,{up:()=>_X,down:()=>xX});import{sql as sQ}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(sQ`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`
1672
+ `.execute(_)}async function eQ(_){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 tK={};C(tK,{up:()=>dQ,down:()=>bQ});import{sql as hK}from"kysely";async function dQ(_){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(hK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(hK`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(hK`false`)).execute()}async function bQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var oK={};C(oK,{up:()=>sQ,down:()=>_X});async function sQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function _X(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var aK={};C(aK,{up:()=>xX,down:()=>uX});async function xX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function uX(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var rK={};C(rK,{up:()=>CX,down:()=>KX});async function CX(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function KX(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var lK={};C(lK,{up:()=>mX,down:()=>TX});import{sql as NX}from"kysely";async function mX(_){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(NX`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 TX(_){await _.schema.dropTable("task_board_item_threads").execute()}var eK={};C(eK,{up:()=>zX,down:()=>EX});async function zX(_){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 EX(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var dK={};C(dK,{up:()=>UX,down:()=>JX});import{sql as $X}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($X`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 JX(_){await _.schema.dropTable("task_board_item_prs").execute()}var bK={};C(bK,{up:()=>QX,down:()=>XX});import{sql as PX}from"kysely";async function QX(_){await PX`
1673
1673
  DELETE FROM member
1674
1674
  WHERE id IN (
1675
1675
  SELECT id FROM (
@@ -1688,38 +1688,38 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1688
1688
  ) ranked
1689
1689
  WHERE ranked.rn > 1
1690
1690
  )
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 bK={};C(bK,{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 sK={};C(sK,{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_`
1691
+ `.execute(_)}async function XX(_){}var sK={};C(sK,{up:()=>ZX,down:()=>WX});async function ZX(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function WX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var _N={};C(_N,{up:()=>jX,down:()=>LX});async function jX(_){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 LX(_){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 xN={};C(xN,{up:()=>YX,down:()=>DX});import{sql as FX}from"kysely";async function YX(_){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(FX`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 DX(_){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 uN={};C(uN,{up:()=>MX,down:()=>RX});import{sql as HX}from"kysely";async function MX(_){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(HX`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 RX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var CN={};C(CN,{up:()=>BX,down:()=>GX});import{sql as a_}from"kysely";async function BX(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",a_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",a_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function GX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var KN={};C(KN,{up:()=>OX,down:()=>SX});import{sql as r_}from"kysely";async function OX(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await r_`
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 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`
1695
+ `.execute(_)}async function SX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var NN={};C(NN,{up:()=>fX,down:()=>AX});import{sql as kT}from"kysely";async function fX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(kT`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(kT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function AX(_){await _.schema.dropTable("seat_change_log").execute()}var mN={};C(mN,{up:()=>IX,down:()=>yX});async function IX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function yX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var TN={};C(TN,{up:()=>VX,down:()=>wX});import{sql as nT}from"kysely";async function VX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await nT`
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 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`
1699
+ `.execute(_)}async function wX(_){await nT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var zN={};C(zN,{up:()=>kX,down:()=>nX});async function kX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function nX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var EN={};C(EN,{up:()=>vX,down:()=>pX});import{sql as vT}from"kysely";async function vX(_){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 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`
1703
+ `.execute(_)}async function pX(_){await vT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var $N={};C($N,{up:()=>gX,down:()=>qX});import{sql as pT}from"kysely";async function gX(_){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(pT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(pT`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 qX(_){await _.schema.dropTable("user_model_preferences").execute()}var UN={};C(UN,{up:()=>iX,down:()=>cX});async function iX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function cX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var JN={};C(JN,{up:()=>hX,down:()=>tX});async function hX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function tX(_){}var PN={};C(PN,{up:()=>oX,down:()=>aX});import{sql as gT}from"kysely";async function oX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await gT`
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 qX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await kT`
1707
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function aX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await gT`
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 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`
1711
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var QN={};C(QN,{up:()=>lX,down:()=>eX});import{sql as rX}from"kysely";async function lX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await rX`
1712
1712
  update task_board_items
1713
1713
  set sort_order = -extract(epoch from created_at)
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`
1714
+ `.execute(_)}async function eX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var XN={};C(XN,{up:()=>dX,down:()=>bX,ACTIONS:()=>qT});import{sql as l_}from"kysely";var qT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function dX(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(l_`now()`)).addCheckConstraint("chk_task_board_activity_action",l_`action IN (${l_.join(qT.map((x)=>l_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function bX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var WN={};C(WN,{up:()=>sX,down:()=>_Z,ACTIONS:()=>ZN});import{sql as L_}from"kysely";var ZN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function sX(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await iT(_,ZN)}async function _Z(_){await iT(_,ZN.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 iT(_,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 cT}from"kysely";function jN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function xZ(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return jN(N)}catch{return jN(_.connection_url)}if(_.title)return jN(_.title);return _.id}async function uZ(_){let x=await cT`
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=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:()=>sX,down:()=>_Z});import{sql as bX}from"kysely";async function sX(_){await bX`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_`
1718
+ `.execute(_),u=0;for(let N of x.rows){let K=xZ(N);if(K===N.slug)continue;await cT`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 CZ(){}var FN={};C(FN,{up:()=>NZ,down:()=>mZ});import{sql as KZ}from"kysely";async function NZ(_){await KZ`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 mZ(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").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"],TZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function zZ(_){await hT(_,YN)}async function EZ(_){await hT(_,YN.filter((x)=>!TZ.has(x)))}async function hT(_,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:()=>UZ,down:()=>JZ});import{sql as $Z}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($Z`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 JZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var RN={};C(RN,{up:()=>QZ,down:()=>XZ,ACTIONS:()=>MN});import{sql as d_}from"kysely";var MN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],PZ=new Set(["merge_conflict_resolution"]);async function QZ(_){await tT(_,MN)}async function XZ(_){await tT(_,MN.filter((x)=>!PZ.has(x)))}async function tT(_,x){await d_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await d_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${d_.join(x.map((u)=>d_.lit(u)))}))`.execute(_)}var BN={};C(BN,{up:()=>ZZ,down:()=>WZ});import{sql as F_}from"kysely";async function ZZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await F_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function WZ(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await F_`
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 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_`
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(F_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(F_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).execute()}var GN={};C(GN,{up:()=>jZ,down:()=>LZ});import{sql as b_}from"kysely";async function jZ(_){await b_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await b_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function LZ(_){await b_`
1723
1723
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1724
1724
  RETURNS trigger AS $fn$
1725
1725
  BEGIN
@@ -1740,40 +1740,40 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1740
1740
  RETURN NEW;
1741
1741
  END;
1742
1742
  $fn$ LANGUAGE plpgsql;
1743
- `.execute(_),await d_`
1743
+ `.execute(_),await b_`
1744
1744
  CREATE TRIGGER trg_repo_github_child_single_parent
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 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`
1748
+ `.execute(_)}var ON={};C(ON,{up:()=>FZ,down:()=>YZ});import{sql as oT}from"kysely";async function FZ(_){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(oT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(oT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function YZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var SN={};C(SN,{up:()=>DZ,down:()=>HZ});import{sql as aT}from"kysely";async function DZ(_){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(aT`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(aT`now()`)).execute()}async function HZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var AN={};C(AN,{up:()=>MZ,down:()=>RZ});import{sql as fN}from"kysely";async function MZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(fN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await fN`
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 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`
1752
+ `.execute(_)}async function RZ(_){await fN`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 IN={};C(IN,{up:()=>BZ,down:()=>GZ});async function BZ(_){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 GZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var yN={};C(yN,{up:()=>OZ,down:()=>SZ});async function OZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function SZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var VN={};C(VN,{up:()=>fZ,down:()=>AZ});import{sql as rT}from"kysely";async function fZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(rT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(rT`monthly_task_executions > 0`)).execute()}async function AZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var wN={};C(wN,{up:()=>yZ,down:()=>VZ});import{sql as IZ}from"kysely";async function yZ(_){await IZ`
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 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`
1758
+ `.execute(_)}async function VZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var kN={};C(kN,{up:()=>wZ,down:()=>kZ});import{sql as lT}from"kysely";async function wZ(_){await lT`
1759
1759
  ALTER TABLE task_board_items
1760
1760
  ADD COLUMN last_swept_at timestamptz
1761
- `.execute(_)}async function fZ(_){await tT`
1761
+ `.execute(_)}async function kZ(_){await lT`
1762
1762
  ALTER TABLE task_board_items
1763
1763
  DROP COLUMN last_swept_at
1764
- `.execute(_)}var VN={};C(VN,{up:()=>AZ,down:()=>IZ});import{sql as b_}from"kysely";async function AZ(_){await b_`
1764
+ `.execute(_)}var nN={};C(nN,{up:()=>nZ,down:()=>vZ});import{sql as s_}from"kysely";async function nZ(_){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 IZ(_){await b_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await b_`
1772
+ `.execute(_)}async function vZ(_){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 kN={};C(kN,{up:()=>yZ,down:()=>VZ});import{sql as wN}from"kysely";async function yZ(_){await wN`
1776
+ `.execute(_)}var pN={};C(pN,{up:()=>pZ,down:()=>gZ});import{sql as vN}from"kysely";async function pZ(_){await vN`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1791
1791
  updated_at timestamptz NOT NULL DEFAULT now(),
1792
1792
  UNIQUE (organization_id, volume)
1793
1793
  )
1794
- `.execute(_),await wN`
1794
+ `.execute(_),await vN`
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 VZ(_){await wN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var vN={};C(vN,{up:()=>kZ,down:()=>nZ,ACTIONS:()=>nN});import{sql as s_}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 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 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_`
1798
+ `.execute(_)}async function gZ(_){await vN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var qN={};C(qN,{up:()=>iZ,down:()=>cZ,ACTIONS:()=>gN});import{sql as _x}from"kysely";var gN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],qZ=new Set(["merge_failed"]);async function iZ(_){await eT(_,gN)}async function cZ(_){await eT(_,gN.filter((x)=>!qZ.has(x)))}async function eT(_,x){await _x`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await _x`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${_x.join(x.map((u)=>_x.lit(u)))}))`.execute(_)}var iN={};C(iN,{up:()=>hZ,down:()=>tZ});async function hZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function tZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var cN={};C(cN,{up:()=>oZ,down:()=>aZ});import{sql as x_}from"kysely";async function oZ(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
1837
+ `.execute(_)}async function aZ(_){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 hN={};C(hN,{up:()=>lZ,down:()=>eZ});import{sql as rZ}from"kysely";async function lZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await rZ`
1838
1838
  update task_board_items as t
1839
1839
  set key_seq = numbered.seq
1840
1840
  from (
@@ -1847,25 +1847,25 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
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 eZ(_){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 tN={};C(tN,{up:()=>dZ,down:()=>bZ});import{sql as dT}from"kysely";async function dZ(_){await dT`
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 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`
1854
+ `.execute(_)}async function bZ(_){await dT`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var aN={};C(aN,{up:()=>sZ,down:()=>_6});import{sql as oN}from"kysely";async function sZ(_){await oN`
1855
1855
  ALTER TABLE thread_message_parts
1856
1856
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1857
- `.execute(_),await cN`
1857
+ `.execute(_),await oN`
1858
1858
  ALTER TABLE thread_message_parts
1859
1859
  ALTER COLUMN persisted_at SET DEFAULT now()
1860
- `.execute(_)}async function rZ(_){await cN`
1860
+ `.execute(_)}async function _6(_){await oN`
1861
1861
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
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:()=>bZ,down:()=>sZ});import{sql as dZ}from"kysely";async function bZ(_){await dZ`
1862
+ `.execute(_)}var rN={};C(rN,{up:()=>x6,down:()=>u6});async function x6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function u6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var lN={};C(lN,{up:()=>K6,down:()=>N6});import{sql as C6}from"kysely";async function K6(_){await C6`
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 sZ(_){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
1866
+ `.execute(_)}async function N6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var eN={};C(eN,{up:()=>m6,down:()=>T6,TYPES:()=>bT});import{sql as q}from"kysely";var bT=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function m6(_){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(bT.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 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`
1868
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function T6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var dN={};C(dN,{up:()=>z6,down:()=>E6});import{sql as sT}from"kysely";async function z6(_){await sT`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1880
1880
  SELECT 1 FROM jsonb_each(status_mapping)
1881
1881
  WHERE jsonb_typeof(value) = 'array'
1882
1882
  )
1883
- `.execute(_)}async function C6(_){await lT`
1883
+ `.execute(_)}async function E6(_){await sT`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1895
1895
  SELECT 1 FROM jsonb_each(status_mapping)
1896
1896
  WHERE jsonb_typeof(value) = 'array'
1897
1897
  )
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 bN={};C(bN,{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 sN={};C(sN,{up:()=>P6,down:()=>U6});import{sql as W}from"kysely";var sT=["bug","feature","chore","spike","security"],bT="chore";async function P6(_){await W`UPDATE task_board_items SET type = ${W.lit(bT)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(bT)}`.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(sT.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(sT.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_`
1898
+ `.execute(_)}var sN={};C(sN,{up:()=>U6,down:()=>J6,TYPES:()=>bN});import{sql as xx}from"kysely";var bN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],$6=new Set(["mentioned"]);async function U6(_){await _z(_,bN)}async function J6(_){await _z(_,bN.filter((x)=>!$6.has(x)))}async function _z(_,x){await xx`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await xx`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var xm={};C(xm,{up:()=>X6,down:()=>Z6,ACTIONS:()=>_m});import{sql as i}from"kysely";var P6=["bug","feature","chore","spike","security"],_m=["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"],Q6=new Set(["type_changed"]);async function X6(_){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(P6.map((x)=>i.lit(x)))}))`.execute(_),await xz(_,_m)}async function Z6(_){await xz(_,_m.filter((x)=>!Q6.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 xz(_,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 um={};C(um,{up:()=>W6,down:()=>j6});import{sql as W}from"kysely";var Cz=["bug","feature","chore","spike","security"],uz="chore";async function W6(_){await W`UPDATE task_board_items SET type = ${W.lit(uz)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(uz)}`.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(Cz.map((x)=>W.lit(x)))}))`.execute(_)}async function j6(_){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(Cz.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 Cm={};C(Cm,{up:()=>L6,down:()=>F6});import{sql as u_}from"kysely";async function L6(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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`
1923
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function F6(_){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 Km={};C(Km,{up:()=>D6,down:()=>H6});import{sql as Y6}from"kysely";async function D6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function H6(_){await Y6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var Nm={};C(Nm,{up:()=>R6,down:()=>B6});import{sql as M6}from"kysely";async function R6(_){await M6`
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 F6(){}var Cm={};C(Cm,{up:()=>D6,down:()=>H6});import{sql as Y6}from"kysely";async function D6(_){await Y6`
1928
+ `.execute(_)}async function B6(){}var mm={};C(mm,{up:()=>O6,down:()=>S6});import{sql as G6}from"kysely";async function O6(_){await G6`
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 H6(){}var Nm={};C(Nm,{up:()=>M6,down:()=>R6});import{sql as Km}from"kysely";async function M6(_){await Km`
1933
+ `.execute(_)}async function S6(){}var zm={};C(zm,{up:()=>f6,down:()=>A6});import{sql as Tm}from"kysely";async function f6(_){await Tm`
1934
1934
  ALTER TABLE org_jira_integrations
1935
1935
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1936
- `.execute(_),await Km`
1936
+ `.execute(_),await Tm`
1937
1937
  UPDATE org_jira_integrations
1938
1938
  SET rescan_pending = true
1939
1939
  WHERE last_synced_at IS NULL
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`
1940
+ `.execute(_)}async function A6(_){await Tm`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var Em={};C(Em,{up:()=>I6,down:()=>y6});async function I6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function y6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var $m={};C($m,{up:()=>V6,down:()=>w6});import{sql as Kz}from"kysely";async function V6(_){await Kz`
1941
1941
  ALTER TABLE invitation
1942
1942
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
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`
1943
+ `.execute(_)}async function w6(_){await Kz`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Jm={};C(Jm,{up:()=>k6,down:()=>n6});import{sql as Um}from"kysely";async function k6(_){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(Um`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Um`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 Um`
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 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_`
1950
+ `.execute(_)}async function n6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Pm={};C(Pm,{up:()=>v6,down:()=>p6});import{sql as Y_}from"kysely";async function v6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
1951
1951
  UPDATE task_board_items i
1952
1952
  SET review_cycle_started_at = (
1953
1953
  SELECT max(a.occurred_at)
@@ -1957,35 +1957,35 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
1957
1957
  AND a.data ->> 'to' = 'in_review'
1958
1958
  )
1959
1959
  WHERE i.status = 'in_review'
1960
- `.execute(_),await F_`
1960
+ `.execute(_),await Y_`
1961
1961
  CREATE INDEX idx_task_board_items_review_cycle
1962
1962
  ON task_board_items (updated_at, id)
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 y6(_){await F_`
1966
+ `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function p6(_){await Y_`
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 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`
1972
+ `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var Qm={};C(Qm,{up:()=>g6,down:()=>q6});import{sql as Nz}from"kysely";async function g6(_){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(Nz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Nz`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 q6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Zm={};C(Zm,{up:()=>c6,down:()=>h6,ACTIONS:()=>Xm});import{sql as ux}from"kysely";var Xm=["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"],i6=new Set(["review_verdict_requested"]);async function c6(_){await mz(_,Xm)}async function h6(_){await mz(_,Xm.filter((x)=>!i6.has(x)))}async function mz(_,x){await ux`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await ux`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${ux.join(x.map((u)=>ux.lit(u)))}))`.execute(_)}var Wm={};C(Wm,{up:()=>t6,down:()=>o6});import{sql as Cx}from"kysely";async function t6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Cx`
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)
1976
- `.execute(_),await ux`
1976
+ `.execute(_),await Cx`
1977
1977
  ALTER TABLE task_board_items
1978
1978
  ADD CONSTRAINT task_board_items_board_column_fkey
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 g6(_){await ux`
1982
+ `.execute(_)}async function o6(_){await Cx`
1983
1983
  ALTER TABLE task_board_items
1984
1984
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1985
- `.execute(_),await ux`
1985
+ `.execute(_),await Cx`
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 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:()=>b6,down:()=>s6});import{sql as d6}from"kysely";async function b6(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await d6`
1988
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var jm={};C(jm,{up:()=>a6,down:()=>r6});async function a6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function r6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Fm={};C(Fm,{up:()=>e6,down:()=>d6,ACTIONS:()=>Lm});import{sql as Kx}from"kysely";var Lm=["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"],l6=new Set(["sprint_changed"]);async function e6(_){await Tz(_,Lm)}async function d6(_){await Tz(_,Lm.filter((x)=>!l6.has(x)))}async function Tz(_,x){await Kx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Kx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Kx.join(x.map((u)=>Kx.lit(u)))}))`.execute(_)}var Ym={};C(Ym,{up:()=>s6,down:()=>_W});import{sql as b6}from"kysely";async function s6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(b6`'[]'::jsonb`)).execute()}async function _W(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Dm={};C(Dm,{up:()=>xW,down:()=>uW});import{sql as zz}from"kysely";async function xW(_){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(zz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(zz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function uW(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Hm={};C(Hm,{up:()=>KW,down:()=>NW});import{sql as CW}from"kysely";async function KW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await CW`
1989
1989
  UPDATE task_board_items i
1990
1990
  SET external_url = t.url,
1991
1991
  description = CASE
@@ -2004,11 +2004,11 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 s6(_){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`
2007
+ `.execute(_)}async function NW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Mm={};C(Mm,{up:()=>TW,down:()=>zW,ACTIONS:()=>Ez});import{sql as Q}from"kysely";var mW=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Ez=["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 TW(_){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(_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`
2010
+ WHERE status NOT IN (${Q.join(mW.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 EW(_,Ez),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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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_`
2023
+ `.execute(_)}async function zW(){}async function EW(_,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 Rm={};C(Rm,{up:()=>$W,down:()=>UW});import{sql as C_}from"kysely";async function $W(_){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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 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_`
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 Bm={};C(Bm,{up:()=>JW,down:()=>PW});import{sql as D_}from"kysely";async function JW(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(D_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).execute(),await D_`
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
- `.execute(_),await Y_`
2048
+ `.execute(_),await D_`
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 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`
2051
+ `.execute(_)}async function PW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Om={};C(Om,{up:()=>HW,down:()=>MW});import{sql as Gm}from"kysely";import{sql as C5}from"kysely";var $z=50000000,QW=1e5;function XW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>QW)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 ZW=/\u0000/g,WW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,jW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,LW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,FW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function YW(_){return _.replace(ZW,"").replace(WW,"\uFFFD").replace(jW,"$1***@").replace(LW,"$1***").replace(FW,"[base64 data omitted]")}function DW(_){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 Uz(_){if(XW(_,$z)>$z)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return YW(u);if(DW(u))return{type:"text",text:"[image omitted]"};return u})}var Jz=20;async function HW(_){let x=await Gm`
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+=zz){let N=x.rows.slice(u,u+zz).map((m)=>m.id),K=await Mm`
2055
+ `.execute(_);for(let u=0;u<x.rows.length;u+=Jz){let N=x.rows.slice(u,u+Jz).map((m)=>m.id),K=await Gm`
2056
2056
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
2057
- `.execute(_);for(let m of K.rows){let T=Tz(m.payload);if(T===JSON.stringify(m.payload))continue;await Mm`
2057
+ `.execute(_);for(let m of K.rows){let T=Uz(m.payload);if(T===JSON.stringify(m.payload))continue;await Gm`
2058
2058
  UPDATE thread_message_parts
2059
2059
  SET payload = ${T}::jsonb
2060
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`
2061
+ `.execute(_)}}}async function MW(){}var Sm={};C(Sm,{up:()=>RW,down:()=>BW});async function RW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function BW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var fm={};C(fm,{up:()=>GW,down:()=>OW});import{sql as U}from"kysely";async function GW(_){await U`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 P`
2079
+ `.execute(_),await U`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 P`
2092
+ `.execute(_),await U`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
2100
2100
  expires_at timestamptz NOT NULL,
2101
2101
  created_at timestamptz NOT NULL DEFAULT now()
2102
2102
  )
2103
- `.execute(_),await P`
2103
+ `.execute(_),await U`
2104
2104
  CREATE INDEX idx_git_provider_oauth_states_expires_at
2105
2105
  ON git_provider_oauth_states (expires_at)
2106
- `.execute(_),await P`
2106
+ `.execute(_),await U`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 P`
2123
+ `.execute(_),await U`
2124
2124
  CREATE UNIQUE INDEX uq_repositories_org_host_path
2125
2125
  ON repositories (organization_id, host, lower(path))
2126
- `.execute(_),await P`
2126
+ `.execute(_),await U`
2127
2127
  CREATE INDEX idx_repositories_account ON repositories (account_id)
2128
- `.execute(_),await P`
2128
+ `.execute(_),await U`
2129
2129
  ALTER TABLE task_board_items
2130
2130
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2131
- `.execute(_),await P`
2131
+ `.execute(_),await U`
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 P`
2134
+ `.execute(_),await U`
2135
2135
  ALTER TABLE org_repo_sync
2136
2136
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2137
- `.execute(_),await P`
2137
+ `.execute(_),await U`
2138
2138
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id DROP NOT NULL
2139
- `.execute(_),await P`
2139
+ `.execute(_),await U`
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 P`
2143
+ `.execute(_),await U`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
2149
2149
  RETURN NULL;
2150
2150
  END;
2151
2151
  $fn$ LANGUAGE plpgsql IMMUTABLE;
2152
- `.execute(_),await P`
2152
+ `.execute(_),await U`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 P`
2186
+ `.execute(_),await U`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 P`
2223
+ `.execute(_),await U`
2224
2224
  UPDATE repositories r
2225
2225
  SET external_id = s.repository_id
2226
2226
  FROM connections c
@@ -2235,7 +2235,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 P`
2238
+ `.execute(_),await U`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 P`
2262
+ `.execute(_),await U`
2263
2263
  INSERT INTO repositories (
2264
2264
  organization_id, account_id, provider, host, path, web_url
2265
2265
  )
@@ -2277,7 +2277,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 P`
2280
+ `.execute(_),await U`
2281
2281
  UPDATE task_board_items t
2282
2282
  SET repository_id = r.id
2283
2283
  FROM repositories r
@@ -2286,7 +2286,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 P`
2289
+ `.execute(_),await U`
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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 P`
2297
+ `.execute(_),await U`
2298
2298
  UPDATE org_repo_sync s
2299
2299
  SET repository_id = r.id
2300
2300
  FROM repositories r
@@ -2302,11 +2302,11 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function DW(_){await P`
2305
+ `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function OW(_){await U`
2306
2306
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
2307
- `.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
2307
+ `.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
2308
2308
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
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`
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 Am={};C(Am,{up:()=>fW,down:()=>AW});import{sql as I}from"kysely";var SW=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 Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
2315
2315
  RETURN NULL;
2316
2316
  END;
2317
2317
  $$
2318
- `;async function MW(_){await HW.execute(_),await I`
2318
+ `;async function fW(_){await SW.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,21 +2377,21 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.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 RW(_){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 AW(_){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 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":bu,"040-replace-next-run-at-with-last-run-at":su,"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":bC,"089-rename-remote-user-to-desktop":sC,"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":bK,"137-agent-sandbox-runner-state":sK,"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":bN,"181-task-board-item-type-required":sN,"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":sx,"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":bx,"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,customerLakeUrl:_.CUSTOMER_LAKE_URL,customerLakeAdminUsername:_.CUSTOMER_LAKE_ADMIN_USERNAME||"customer_lake_user_admin",customerLakeAdminPassword:_.CUSTOMER_LAKE_ADMIN_PASSWORD,customerLakeTenantSecret:_.CUSTOMER_LAKE_TENANT_SECRET,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://assets.decocms.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY,deliveryR2AccountId:_.DELIVERY_R2_ACCOUNT_ID,deliveryR2AccessKeyId:_.DELIVERY_R2_ACCESS_KEY_ID,deliveryR2SecretAccessKey:_.DELIVERY_R2_SECRET_ACCESS_KEY,deliveryR2Bucket:_.DELIVERY_R2_BUCKET,deliveryR2Endpoint:_.DELIVERY_R2_ENDPOINT,deliveryPublicOrigin:_.DELIVERY_PUBLIC_ORIGIN,siteTokenSigningKey:_.DECO_SITE_TOKEN_SIGNING_KEY,cfDeliveryZoneId:_.CF_DELIVERY_ZONE_ID,cfPurgeApiToken:_.CF_PURGE_API_TOKEN};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var 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(`
2382
+ `.execute(_)}var IW={"001-initial-schema":Xu,"002-organization-settings":Zu,"003-connection-schema-align":Wu,"004-remove-models-binding":ju,"005-connection-configuration":Lu,"006-add-views-to-settings":Fu,"007-monitoring-logs":Yu,"008-event-bus":Du,"009-drop-audit-logs":Hu,"010-gateways":Mu,"011-gateway-icon":Ru,"012-gateway-tool-selection-mode":Bu,"013-monitoring-user-agent-gateway":Gu,"014-gateway-resources-prompts":Ou,"015-monitoring-properties":Su,"016-downstream-token-client-info":fu,"017-downstream-token-remove-userid":Au,"018-drop-gateway-tool-selection-strategy":Iu,"019-remove-gateway-is-default":yu,"020-enabled-plugins":Vu,"021-threads":wu,"022-rename-gateway-to-virtual-mcp":ku,"023-optimize-thread-indexes":nu,"024-consolidate-virtual-mcp":vu,"025-add-monitoring-virtual-mcp-id":pu,"026-restrict-child-connection-delete":gu,"027-update-management-mcp-url":iu,"028-update-management-mcp-to-self":hu,"029-add-updated-by-to-connections":tu,"030-member-tags":ou,"031-add-dependency-mode":au,"032-projects":ru,"033-thread-status":lu,"034-monitoring-dashboards":eu,"035-project-connections":du,"036-update-registry-url":bu,"037-ai-provider-keys":su,"038-oauth-pkce-states":_C,"039-automations":xC,"040-replace-next-run-at-with-last-run-at":uC,"041-ai-provider-keys-unique-constraint":CC,"042-rename-mesh-mcp-to-cms-mcp":KC,"043-rename-cms-mcp-to-deco-cms":NC,"044-drop-connections-tools-column":mC,"045-thread-context-start-message":TC,"046-remove-object-storage-plugin":EC,"047-add-next-run-at":$C,"048-merge-projects-agents":JC,"049-remove-org-admin-projects":PC,"050-durable-agent-runs":QC,"051-org-sso":ZC,"052-thread-agent-ids":WC,"053-registry-config":jC,"054-connection-slug":FC,"055-spaces":YC,"056-automation-project-scope":DC,"057-thread-virtual-mcp-id":HC,"058-trigger-callback-tokens":MC,"059-kv":RC,"060-member-index":BC,"061-downstream-token-connection-index":GC,"062-private-registry":OC,"063-event-subscriptions-enabled-boolean":SC,"064-brand-context":fC,"065-organization-domains":AC,"066-brand-context-structured":IC,"067-threads-metadata":yC,"068-threads-branch":VC,"069-sandbox-runner-state":wC,"070-model-categories":kC,"071-default-home-agents":nC,"072-ai-provider-key-preset-id":vC,"073-backfill-basic-usage-roles":pC,"074-sandbox-runner-state-handle-nonunique":gC,"075-thread-inflight-async-jobs":qC,"076-automations-drop-agent-json":iC,"077-tier-only-model-selection":hC,"078-automation-tool-call-kind":tC,"079-strip-legacy-freestyle-vm-map-entries":oC,"080-async-research-jobs":aC,"081-async-research-jobs-result-content":rC,"082-secrets":lC,"083-thread-run-locally":eC,"084-drop-host-sandbox-rows":dC,"085-rename-runner-kind":bC,"086-thread-pins-and-vm-map-rekey":sC,"087-fix-vm-map-rekey":_K,"088-purge-cli-activate-keys":xK,"089-rename-remote-user-to-desktop":uK,"090-automation-webhook-triggers":CK,"091-organization-domains-allow-multi":KK,"092-sandbox-naming-uniformization":NK,"093-backfill-global-search-basic-usage":mK,"094-org-file-configs":zK,"095-remove-automation-tool-call-kind":EK,"096-org-file-configs-public-url-base":$K,"097-drop-local-docker-sandbox-state":JK,"098-thread-message-parts":PK,"099-run-fence":QK,"100-link-transport":XK,"101-cancel-requested-at":ZK,"102-observational-agent":WK,"103-revert-observational-agent":jK,"104-agent-sandbox-provider-kind":FK,"105-org-fs":YK,"106-automation-tools":DK,"107-org-fs-public-org":HK,"108-automation-max-agent-steps":MK,"109-thread-message-parts-per-message-seq":RK,"110-backfill-ghs-token-expiry":BK,"111-org-fs-thread-id":GK,"112-org-file-configs-credential-type":OK,"113-thread-failure-reason":SK,"114-run-acked-seq":fK,"115-thread-projected-seq":AK,"116-org-sites":IK,"117-org-file-configs-site-slug":yK,"118-organization-domains-multi-verify":VK,"119-organization-join-requests":wK,"120-org-fs-read-public":kK,"121-org-fs-share-password":nK,"122-split-web-research-tier":gK,"123-connection-credential-vault":qK,"124-drop-thread-projected-seq":iK,"125-github-child-single-parent":cK,"126-task-board":tK,"127-task-board-due-date":oK,"128-reports-only":aK,"129-task-board-assigned-by":rK,"130-task-board-thread-id":lK,"131-task-board-thread-link-cascade":eK,"132-task-board-item-prs":dK,"133-dedupe-duplicate-members":bK,"134-drop-task-board-enabled":sK,"135-task-board-item-fk-cascade":_N,"136-task-board-import-idempotency":xN,"137-agent-sandbox-runner-state":uN,"138-agent-sandbox-sessions":CN,"139-organization-billing":KN,"140-seat-change-log":NN,"141-benefits-sync-pending":mN,"142-stripe-event-watermark":TN,"143-armed-report-url":zN,"144-benefits-pending-index":EN,"145-user-model-preferences":$N,"146-organization-main-agent":UN,"147-drop-agent-sandbox-tables":JN,"148-org-flags":PN,"149-task-board-item-sort-order":QN,"150-task-board-activity":XN,"151-task-board-tags":WN,"152-repair-connection-slug":LN,"153-task-board-latest-assistant-part-index":FN,"154-task-board-qa-activity":DN,"155-task-board-review-claims":HN,"156-task-board-conflict-activity":RN,"157-drop-seat-billing":BN,"158-drop-github-child-single-parent":GN,"159-task-board-comments":ON,"160-task-quota-billing":SN,"161-task-quota-claim-state":AN,"162-claude-subscriptions":IN,"163-task-board-item-dismissed":yN,"164-per-org-task-quota":VN,"165-task-board-pending-review-index":wN,"166-task-board-last-swept-at":kN,"167-task-board-run-retry":nN,"168-org-repo-sync":pN,"169-task-board-merge-failed-activity":qN,"170-task-board-item-repo":iN,"171-jira-integration":cN,"172-task-board-item-key-seq":hN,"173-thread-github-repo-connection-index":tN,"174-thread-message-parts-persisted-at":aN,"175-task-board-sprints":rN,"176-task-board-done-sweep-index":lN,"177-notifications":eN,"178-jira-status-mapping-array":dN,"179-notification-mentioned":sN,"180-task-board-item-type":xm,"181-task-board-item-type-required":um,"182-task-board-sprints-entities":Cm,"183-drop-jira-jql-filter":Km,"184-jira-rescan-after-scope-change":Nm,"185-jira-rescan-existing-cards":mm,"186-jira-rescan-pending-flag":zm,"187-task-board-comment-thread":Em,"188-invitation-auto-accept":$m,"189-task-board-column-automations":Jm,"190-task-board-review-cycle-started-at":Pm,"191-task-board-columns":Qm,"192-task-board-verdict-nudge-activity":Zm,"193-task-board-status-column-fk":Wm,"194-jira-link-sprint":jm,"195-task-board-sprint-activity":Fm,"196-task-board-column-tracker-statuses":Ym,"197-task-board-prompts":Dm,"198-task-board-external-url":Hm,"199-drop-jira-mirror-and-org-columns":Mm,"200-jira-run-trigger":Rm,"201-organization-notices":Bm,"202-redact-base64-thread-parts":Om,"203-task-board-preview-routes":Sm,"204-git-provider-accounts-and-repositories":fm,"205-repository-references":Am,"206-repository-consumers":Qu,"207-task-board-prs-repo-idx":Pu,"208-github-connect-flows":Ju,"209-github-installation-authorization":Uu,"210-github-repository-authorization":Cu,"211-user-fs-org":uu,"212-coding-agent-mcp-excluded":Ku,"213-bitbucket-git-provider":Nu,"214-connections-sanitized-id-idx":bx,"215-commerce-discovery-repository":sx,"216-github-cli-auth":xu,"217-experiments":mu,"218-thread-message-parts-error-idx":Tu,"219-task-board-duplicate-reported-activity":Eu,"220-jira-automation-continue-pr":$u,"221-remove-private-registry":Qx,"222-org-git-credentials":Xx,"223-drop-org-main-agent-id":dx,"224-repository-sandbox-image":Zx,"225-thread-analytics-indexes":jx,"226-deco-score-names":Fx,"227-task-board-finding-resolved-activity":Dx,"228-org-voice-config":Px,"229-jira-automation-from":Hx,"230-project-sidebar":Mx,"231-jira-chat-agent":Rx,"232-task-board-prompt-skills":Gx,"233-remove-jira-chat-agent":Sx,"234-task-board-comment-audience":fx,"235-prune-empty-thread-dirs":Ax,"236-task-board-sprints":yx,"237-org-sites-project-link":Vx,"238-task-board-default-lanes":wx,"239-task-board-retire-old-lanes":kx,"240-task-board-restore-todo":nx,"241-automation-board-column-transition":vx,"242-connection-url-slug":px,"243-experiment-task-board-item":gx,"244-connection-url-slug-rollout-backfill":qx,"245-automation-system-key":ix,"246-automation-pr-ready-trigger":cx,"247-automation-jira-transition":hx,"248-drop-retired-rule-tables":tx,"249-task-board-item-project":ox,"250-github-copilot-subscriptions":ax,"251-org-shared-plans":rx,"252-automation-linked-chat-trigger":lx,"253-automation-pr-builtin-triggers":ex,"254-codex-subscriptions":$x,"255-order-monitor":Jx},Nx=IW;import{getMigrations as U9}from"better-auth/db";import{sso as J9}from"@better-auth/sso";import{organization as P9}from"@decocms/better-auth/plugins";import{admin as Q9,apiKey as X9,jwt as Z9,magicLink as W9,mcp as j9,openAPI as L9}from"better-auth/plugins";import{emailOTP as F9}from"better-auth/plugins/email-otp";import{Kysely as C9,PostgresDialect as Dz}from"kysely";import{Pool as Hz}from"pg";import{homedir as yW}from"os";var VW=new Set(["all","worker","api"]);function wW(_){let x=(_??"").trim();return VW.has(x)?x:"all"}var kW=new Set(["production","development","test"]);function nW(_){let x=(_??"").trim();return kW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function ym(_,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 ym(_,x,N)??u}function vW(_){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 pW(_,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 Im(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function gW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Pz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${yW()}/deco`,u=nW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:H_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:H_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),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:ym("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:vW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:pW("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:Im(_.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:Im(_.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:gW(_.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:ym("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:wW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:Im(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,customerLakeUrl:_.CUSTOMER_LAKE_URL,customerLakeAdminUsername:_.CUSTOMER_LAKE_ADMIN_USERNAME||"customer_lake_user_admin",customerLakeAdminPassword:_.CUSTOMER_LAKE_ADMIN_PASSWORD,customerLakeTenantSecret:_.CUSTOMER_LAKE_TENANT_SECRET,orderMonitorIngestUrl:_.ORDER_MONITOR_INGEST_URL,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:H_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:H_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://assets.decocms.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY,deliveryR2AccountId:_.DELIVERY_R2_ACCOUNT_ID,deliveryR2AccessKeyId:_.DELIVERY_R2_ACCESS_KEY_ID,deliveryR2SecretAccessKey:_.DELIVERY_R2_SECRET_ACCESS_KEY,deliveryR2Bucket:_.DELIVERY_R2_BUCKET,deliveryR2Endpoint:_.DELIVERY_R2_ENDPOINT,deliveryPublicOrigin:_.DELIVERY_PUBLIC_ORIGIN,siteTokenSigningKey:_.DECO_SITE_TOKEN_SIGNING_KEY,cfDeliveryZoneId:_.CF_DELIVERY_ZONE_ID,cfPurgeApiToken:_.CF_PURGE_API_TOKEN};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var qW=null;function K_(){return qW??=Object.freeze(Pz(process.env))}import{createContextKey as aW,metrics as rW,propagation as D8,ROOT_CONTEXT as H8,SpanStatusCode as M8,trace as lW}from"@opentelemetry/api";import{logs as eW,SeverityNumber as Vm}from"@opentelemetry/api-logs";import{OTLPLogExporter as G8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as dW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as f8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as I8}from"@opentelemetry/instrumentation-runtime-node";import{context as Z5,propagation as W5,SpanKind as j5,SpanStatusCode as L5}from"@opentelemetry/api";var Y5=globalThis.fetch;import{ExportResultCode as y5}from"@opentelemetry/core";import{ExportResultCode as mx}from"@opentelemetry/core";import{mkdir as iW,rename as cW,writeFile as hW}from"fs/promises";import{join as Tx}from"path";class zx{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:mx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:mx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:mx.FAILED}});return Promise.resolve({code:mx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Tx(this.basePath,x,...N):Tx(this.basePath,...N);if(!this.knownDirs.has(K))await iW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=Tx(K,`.${m}.tmp`),z=Tx(K,m),E=_.join(`
2383
2383
  `)+`
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 b5}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}),b8=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 bW=()=>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,sW=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(bW().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>sW)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`
2384
+ `;await hW(T,E,{mode:384}),await cW(T,z)}}import{ExportResultCode as v5}from"@opentelemetry/core";import{AggregationTemporality as g5,DataPointType as q5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as a5}from"@opentelemetry/core";var d5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as q8,LoggerProvider as i8}from"@opentelemetry/sdk-logs";import{detectResources as h8,envDetector as t8,hostDetector as o8,osDetector as a8,processDetector as r8,resourceFromAttributes as l8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as d8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as _8}from"@opentelemetry/api-logs";import{NodeSDK as _3}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as u3,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as N8}from"@opentelemetry/api";var bW="__d",sW=aW("Current request"),_9=1;var Xz=(_)=>{let u=new URL(_.url).searchParams.get(bW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Zz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(sW);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Xz(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 Wz{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 K3=new dW({preventServerStart:!0}),N3=new Zz(new Wz(_9));var Qz=lW.getTracer("studio","1.0.0"),M_=rW.getMeter("studio","1.0.0"),x9=eW.getLogger("studio","1.0.0"),wm=(_,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(" ");x9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},km={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{wm(Vm.ERROR,"ERROR",_),km.error(..._)};console.warn=(..._)=>{wm(Vm.WARN,"WARN",_),km.warn(..._)};console.debug=(..._)=>{wm(Vm.DEBUG,"DEBUG",_),km.debug(..._)};var nm,jz=0,vm=500;function u9(){if(nm)return;let _=performance.now()+vm;nm=setInterval(()=>{let x=performance.now();jz=Math.max(0,x-_),_=x+vm},vm),nm.unref?.()}function Lz(){return u9(),jz}var K9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Fz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Yz=400,N9=100,m9=(_)=>({"db.status":_.level==="error"?"error":"success"}),T9=(_)=>(x)=>{let u=m9(x);if(x.queryDurationMillis>Yz){let N=Lz(),K=N>Yz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:Ex()}})}if(K9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function z9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=Ex(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Fz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>N9)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 Fz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Mz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Rz(){try{return K_().databasePgSsl}catch{return!1}}function Ex(){try{return K_().databasePoolMax}catch{return 10}}function E9(_){let x=z9(new Hz({connectionString:_,max:Ex(),ssl:Rz(),...Mz})),u=new Dz({pool:x});return{type:"postgres",db:new C9({dialect:u,log:T9(x)}),pool:x}}function B_(){return K_().databaseUrl}function Bz(_){let x=_||B_();return new Dz({pool:new Hz({connectionString:x,max:Ex(),ssl:Rz(),...Mz})})}function $9(_){let x=_||B_();return E9(x)}async function Gz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function pm(){if(!R_)R_=$9(B_());return R_}async function Oz(_){let u={database:Bz(_||B_()),plugins:[P9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),Q9(),X9(),Z9(),L9(),j9({loginPage:"/login"}),J9(),W9({sendMagicLink:async()=>{}}),F9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await U9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function gm(_,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 X9(_){if(await nm(_,"plugin_migrations"))return;await o`
2387
+ `.execute(_)).rows.length>0}async function Y9(_){if(await gm(_,"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 Z9(_){if(!await nm(_,"kysely_migration"))return;let x=await o`
2394
+ `.execute(_)}async function D9(_){if(!await gm(_,"kysely_migration"))return;let x=await o`
2395
2395
  SELECT name, timestamp FROM kysely_migration
2396
2396
  WHERE name LIKE '%/%'
2397
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`
@@ -2402,6 +2402,6 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
2402
2402
  WHERE plugin_id = ${T} AND name = ${z}
2403
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 W9(_){if(!await nm(_,"kysely_migration"))return{};let{rows:x}=await o`
2405
+ `.execute(_)}}async function H9(_){if(!await gm(_,"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 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};
2407
+ `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Nx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function M9(_){await Y9(_),await D9(_);let x=new Sz({db:_,provider:{getMigrations:async()=>({...await H9(_),...Nx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((m)=>{if(m.status==="Success")K++;else if(m.status==="Error")console.error(`Failed to execute migration "${m.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function R9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Oz();let m=u??pm(),T=async()=>{if(!x&&!u)await Gz(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await M9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function w3(){let _=pm(),x=new Sz({db:_.db,provider:{getMigrations:()=>Promise.resolve(Nx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await R9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{M9 as runKyselyMigrations,R9 as migrateToLatest,w3 as migrateDown};