decocms 4.497.0 → 4.498.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/dist/client/assets/{ActiveShapeUtils-BfToWUeb.js → ActiveShapeUtils-h37U-AjP.js} +1 -1
  2. package/dist/client/assets/{AlertCircle-uVTE_i_c.js → AlertCircle-D6PAHKjV.js} +1 -1
  3. package/dist/client/assets/{AreaChart-D-XLuzTF.js → AreaChart-BARo54FY.js} +1 -1
  4. package/dist/client/assets/{ArrowLeft-D8kMxyF3.js → ArrowLeft-CG9rYORx.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-baihphF6.js → ArrowUp-t0hf8rM7.js} +1 -1
  6. package/dist/client/assets/{BarChart-CmpYBluB.js → BarChart-B21k04bX.js} +1 -1
  7. package/dist/client/assets/{Building02-C-k2Qn__.js → Building02-fUucitQx.js} +1 -1
  8. package/dist/client/assets/{CategoricalChart-MIe_roxn.js → CategoricalChart-VabRcjcu.js} +1 -1
  9. package/dist/client/assets/{CheckCircle-BgOw0_dD.js → CheckCircle-of-fJlvu.js} +1 -1
  10. package/dist/client/assets/{ChevronSelectorVertical-e0qa2qKk.js → ChevronSelectorVertical-lAvz2cuG.js} +1 -1
  11. package/dist/client/assets/{ChevronUp-B7O2Z2_x.js → ChevronUp-IQvZuGmJ.js} +1 -1
  12. package/dist/client/assets/{Copy01-BR4eoDaW.js → Copy01-D6HfKiqy.js} +1 -1
  13. package/dist/client/assets/{CreditCard01-pJwQfpbv.js → CreditCard01-D5Mtkf7j.js} +1 -1
  14. package/dist/client/assets/{DotsVertical-DOuXLsMk.js → DotsVertical-LyDkiB3Q.js} +1 -1
  15. package/dist/client/assets/{ErrorBarContext-BvlCrLLk.js → ErrorBarContext-BbITcgQP.js} +1 -1
  16. package/dist/client/assets/{Globe04-CYweJqdP.js → Globe04-LlNkyupL.js} +1 -1
  17. package/dist/client/assets/{Image01-S90CE8VS.js → Image01-Ch6fYTX9.js} +1 -1
  18. package/dist/client/assets/{Key01-B5JsqJav.js → Key01-CzAYk09-.js} +1 -1
  19. package/dist/client/assets/{Link01-Dz3IyYPr.js → Link01-yIpHC1tA.js} +1 -1
  20. package/dist/client/assets/{LinkBroken01-BKVx2uSk.js → LinkBroken01-4mWpjTP6.js} +1 -1
  21. package/dist/client/assets/{Monitor01-KqB9ZF5U.js → Monitor01-Ou5m5HXM.js} +1 -1
  22. package/dist/client/assets/{Play-CygY0DVf.js → Play-BeSRLN2O.js} +1 -1
  23. package/dist/client/assets/{Plus-Bj_QsLcq.js → Plus-CBwPsBC8.js} +1 -1
  24. package/dist/client/assets/{SearchMd-CVAVwuts.js → SearchMd-DFKnlLzg.js} +1 -1
  25. package/dist/client/assets/{Sector-CRN92mNE.js → Sector-BE7eLjHh.js} +1 -1
  26. package/dist/client/assets/{ShoppingBag01-DhR5OJ_o.js → ShoppingBag01-DMrkFjeJ.js} +1 -1
  27. package/dist/client/assets/{Sun-BCMSoFWP.js → Sun-Bx7SBlM-.js} +1 -1
  28. package/dist/client/assets/{SwitchHorizontal01-fI9_GGzc.js → SwitchHorizontal01-JU6fMv1N.js} +1 -1
  29. package/dist/client/assets/{Tool01-Dpcs_fEX.js → Tool01-Dx9izhNQ.js} +1 -1
  30. package/dist/client/assets/{Trash01-BwiN-bXW.js → Trash01-BTFm5tCg.js} +1 -1
  31. package/dist/client/assets/{Upload01-nkaaAbTH.js → Upload01-Bh-Emxn2.js} +1 -1
  32. package/dist/client/assets/{User01-BSbwHeDW.js → User01-CQJ9yvoz.js} +1 -1
  33. package/dist/client/assets/{UserSquare-CG780QF2.js → UserSquare-BAt_wzJ-.js} +1 -1
  34. package/dist/client/assets/{Users01-BuQlctw3.js → Users01-D5wZqDor.js} +1 -1
  35. package/dist/client/assets/{XAxis-BIvxXYwH.js → XAxis-BZWDI5GS.js} +1 -1
  36. package/dist/client/assets/{XClose-CohaLXz5.js → XClose-DbfrVehX.js} +1 -1
  37. package/dist/client/assets/{ZoomOut-BSXGk2sm.js → ZoomOut-CnrqTNds.js} +1 -1
  38. package/dist/client/assets/{access-gate-DOzt68zj.js → access-gate-Du7U7Rzo.js} +1 -1
  39. package/dist/client/assets/{add-connection-dialog-BHghNpDD.js → add-connection-dialog-oB2v8vkB.js} +1 -1
  40. package/dist/client/assets/{agent-analytics-652550mA.js → agent-analytics-DoqorIVJ.js} +1 -1
  41. package/dist/client/assets/agent-app-CCz5q2dj.js +1 -0
  42. package/dist/client/assets/{agent-assets-CO2mf3B-.js → agent-assets-udkmrdmj.js} +1 -1
  43. package/dist/client/assets/agent-automation-YdAcul3v.js +20 -0
  44. package/dist/client/assets/{agent-automations-DDRyU4rP.js → agent-automations-B5oxB7jR.js} +1 -1
  45. package/dist/client/assets/{agent-connect-sources-DCAIhIe3.js → agent-connect-sources-BjkrraY5.js} +1 -1
  46. package/dist/client/assets/agent-deck-CsNgUsES.js +1 -0
  47. package/dist/client/assets/{agent-e2e-BDY9ZD6D.js → agent-e2e-B5oARVfC.js} +1 -1
  48. package/dist/client/assets/{agent-experiments-BxeTATqf.js → agent-experiments-DfpT1sD2.js} +1 -1
  49. package/dist/client/assets/{agent-file-BmYB54QY.js → agent-file-BDStqhoT.js} +1 -1
  50. package/dist/client/assets/{agent-hosting-RRRWwDeW.js → agent-hosting-prc-duXm.js} +1 -1
  51. package/dist/client/assets/{agent-icon-CIAqO6q_.js → agent-icon-BZX5a0rN.js} +1 -1
  52. package/dist/client/assets/agent-library-BqNk_ysL.js +1 -0
  53. package/dist/client/assets/agent-library-file-BMyjR4a-.js +1 -0
  54. package/dist/client/assets/{agent-monitor-DsQakvWJ.js → agent-monitor-CtMBSYOs.js} +1 -1
  55. package/dist/client/assets/{agent-overview-3FcxOPM6.js → agent-overview-B23wW22S.js} +1 -1
  56. package/dist/client/assets/agent-settings-QtGp3bU0.js +1 -0
  57. package/dist/client/assets/{agent-site-editor-KhAad4Sw.js → agent-site-editor-Dtpy7m_F.js} +1 -1
  58. package/dist/client/assets/agent-site-editor-code-C29bJKGS.js +2 -0
  59. package/dist/client/assets/{agent-site-editor-content-Fitmb8o7.js → agent-site-editor-content-PQwLsy2Z.js} +3 -3
  60. package/dist/client/assets/{agent-site-editor-preview-DnnUYHiU.js → agent-site-editor-preview-DfEJR2-i.js} +3 -3
  61. package/dist/client/assets/agent-view-D-eSYJoz.js +1 -0
  62. package/dist/client/assets/{agent-view-guard-CKn2tf5j.js → agent-view-guard-BhsT9KMv.js} +1 -1
  63. package/dist/client/assets/{agents-list-DSQETxBR.js → agents-list-BEnHZ3f8.js} +1 -1
  64. package/dist/client/assets/{ai-providers-DdDoqHhw.js → ai-providers-DaLz3LDZ.js} +1 -1
  65. package/dist/client/assets/{alert-DWd3_VEN.js → alert-DZ-Sik7-.js} +1 -1
  66. package/dist/client/assets/{alert-dialog-ivXO19po.js → alert-dialog-DFCHlrdG.js} +1 -1
  67. package/dist/client/assets/{analytics-sections-Bhuxqwzw.js → analytics-sections-BpmplX7W.js} +1 -1
  68. package/dist/client/assets/api-keys-Cs5VWUE9.js +1 -0
  69. package/dist/client/assets/{api-keys-DjqDXSVz.js → api-keys-D6bA8zbA.js} +1 -1
  70. package/dist/client/assets/app-editor-CpUCMZta.js +1 -0
  71. package/dist/client/assets/{asset-utils-jXJjDaKi.js → asset-utils-DSAV30pE.js} +1 -1
  72. package/dist/client/assets/{auth-C16DiwpU.js → auth-CKRkGXX0.js} +1 -1
  73. package/dist/client/assets/{auth-catchall-CMZXJiIT.js → auth-catchall-A973ZSm_.js} +1 -1
  74. package/dist/client/assets/{auth-entry-D2I0FV-M.js → auth-entry-B6EUZx-E.js} +1 -1
  75. package/dist/client/assets/{auth-split-layout-lGr4mQP-.js → auth-split-layout-ppDoBfGB.js} +1 -1
  76. package/dist/client/assets/{authenticate-and-persist-oauth-BzcsLm_G.js → authenticate-and-persist-oauth-hMQu3mut.js} +1 -1
  77. package/dist/client/assets/{automation-list-row-BIpt7Z6o.js → automation-list-row-CIgywn5_.js} +1 -1
  78. package/dist/client/assets/{automation-runs-Dx7LKstr.js → automation-runs-C6KynleS.js} +1 -1
  79. package/dist/client/assets/{automations-CbuyiPha.js → automations-BTR4ZUpt.js} +1 -1
  80. package/dist/client/assets/{autosend-8Zl7NQ67.js → autosend-CfJ-txst.js} +1 -1
  81. package/dist/client/assets/{avatar-PHlRD3By.js → avatar-D0TV3cL_.js} +1 -1
  82. package/dist/client/assets/{badge-BTJCq3tr.js → badge-Djw87oeQ.js} +1 -1
  83. package/dist/client/assets/{block-document-BKlsJNkE.js → block-document-e1vZMHc5.js} +1 -1
  84. package/dist/client/assets/{blocks-preview-workspace-context-D9S2qjUS.js → blocks-preview-workspace-context-D3H9wyCz.js} +1 -1
  85. package/dist/client/assets/{blog-schema-B0HiB2cA.js → blog-schema-Dk8m1thm.js} +1 -1
  86. package/dist/client/assets/{board-analytics-DYBHTjV-.js → board-analytics-DcHI9tGL.js} +1 -1
  87. package/dist/client/assets/{buckets-DNw0rMyq.js → buckets-DtxAkodo.js} +1 -1
  88. package/dist/client/assets/{build-improve-prompt-doc-CmTPuV4H.js → build-improve-prompt-doc-C53Lrdih.js} +1 -1
  89. package/dist/client/assets/{calendar-Bpz7Lz-y.js → calendar-Cm_oXX6s.js} +1 -1
  90. package/dist/client/assets/{capability-load-error-B3pMqWw1.js → capability-load-error-CTNI2hrf.js} +1 -1
  91. package/dist/client/assets/{category-editor-DLwiIFGA.js → category-editor-Bua_fHQ9.js} +1 -1
  92. package/dist/client/assets/{chart-5JvOgFAK.js → chart-u_PCedAi.js} +1 -1
  93. package/dist/client/assets/{chat-context-3OXKEqSh.js → chat-context-CBev6aq3.js} +1 -1
  94. package/dist/client/assets/{chat-draft-oK0pqHaC.js → chat-draft-C2IQcwKW.js} +1 -1
  95. package/dist/client/assets/{checkbox-CRsuhP53.js → checkbox-C6RcKsRC.js} +1 -1
  96. package/dist/client/assets/{choose-editor-PDE1zqLa.js → choose-editor-4RqxQ2Kh.js} +1 -1
  97. package/dist/client/assets/{claim-phase-copy-BOnhDNWe.js → claim-phase-copy-azjvrOLz.js} +1 -1
  98. package/dist/client/assets/{cli-auth-success-DFy-lvLA.js → cli-auth-success-CSxmM9Mc.js} +1 -1
  99. package/dist/client/assets/{client-icons-GrM8G8gc.js → client-icons-DafWzw5-.js} +1 -1
  100. package/dist/client/assets/{collapsible-z-JwdUiM.js → collapsible-Bwspbfl2.js} +1 -1
  101. package/dist/client/assets/{collection-detail-Dhq8Wz0G.js → collection-detail-CZGVnn_N.js} +1 -1
  102. package/dist/client/assets/{collection-display-button-COwoiqJ0.js → collection-display-button-D2vvIKbf.js} +1 -1
  103. package/dist/client/assets/{collection-search-ZrNbDYaq.js → collection-search-DaDlBD_E.js} +1 -1
  104. package/dist/client/assets/{collection-table-wrapper-BxHhUj6Y.js → collection-table-wrapper-jG2oYxE8.js} +1 -1
  105. package/dist/client/assets/{collection-tabs-CZnO-KJm.js → collection-tabs-CqZ0YLaH.js} +1 -1
  106. package/dist/client/assets/{column-rules-CU0QM4zZ.js → column-rules-P9xAwA0r.js} +1 -1
  107. package/dist/client/assets/{combobox-bRQw-jDN.js → combobox-BsiHAQYf.js} +1 -1
  108. package/dist/client/assets/{command--1ySxBzC.js → command-BWDE-FNh.js} +1 -1
  109. package/dist/client/assets/{companion-mcps-section-DbOOs4Di.js → companion-mcps-section-C3mRXa0s.js} +1 -1
  110. package/dist/client/assets/{config-DxkhWHvI.js → config-C--9g5dZ.js} +1 -1
  111. package/dist/client/assets/{connect-Cy-QXX6T.js → connect-DJluRO9r.js} +1 -1
  112. package/dist/client/assets/{connect-layout-B_xraWMz.js → connect-layout-CTtD_uUg.js} +1 -1
  113. package/dist/client/assets/{connection-eFBHXnq8.js → connection-BKH2vnra.js} +1 -1
  114. package/dist/client/assets/{connection-card-Dd1Miwos.js → connection-card-BqF_7Vxz.js} +1 -1
  115. package/dist/client/assets/{connection-detail-BhSOyfOS.js → connection-detail-gLie6k82.js} +1 -1
  116. package/dist/client/assets/{connection-form-helpers-CjAkllf4.js → connection-form-helpers-C6ev_pGu.js} +1 -1
  117. package/dist/client/assets/{connections-DptsGWqU.js → connections-C4cDvjtx.js} +1 -1
  118. package/dist/client/assets/{context-DvjPJlI1.js → context-C-Rr1spp.js} +1 -1
  119. package/dist/client/assets/{context-menu-DTbN-B-u.js → context-menu-CYtUPpu0.js} +1 -1
  120. package/dist/client/assets/{core.esm-BmdNjDzv.js → core.esm-BqWXbE7p.js} +1 -1
  121. package/dist/client/assets/{create-organization-dialog-BRn1itMS.js → create-organization-dialog-Ci8n8-Qw.js} +1 -1
  122. package/dist/client/assets/{daily-pulse-C_sHN310.js → daily-pulse-0HhsWI2C.js} +1 -1
  123. package/dist/client/assets/{device-hint-BA8nYrWU.js → device-hint-C8SeBwQ9.js} +1 -1
  124. package/dist/client/assets/{discover-DGp_fHdG.js → discover-CRupEDof.js} +1 -1
  125. package/dist/client/assets/{domain-settings-Bz6k7ub5.js → domain-settings-9i4lE6z4.js} +1 -1
  126. package/dist/client/assets/{drawer-wiDylD44.js → drawer-DmaKd3D8.js} +1 -1
  127. package/dist/client/assets/{editor-DbVDLInM.js → editor-Clsq2fLP.js} +1 -1
  128. package/dist/client/assets/{empty-state-CpJixEa0.js → empty-state-CYf1fvjk.js} +1 -1
  129. package/dist/client/assets/{empty-state-GrM64x-h.js → empty-state-ervoES7F.js} +1 -1
  130. package/dist/client/assets/{extract-connection-data-BFr1XefI.js → extract-connection-data-C5DfHTe9.js} +1 -1
  131. package/dist/client/assets/{feature-gate-DIjgMR-H.js → feature-gate-DyJpZ6nd.js} +1 -1
  132. package/dist/client/assets/{feature-paywall-DygeAwCp.js → feature-paywall-CeiXnB_u.js} +1 -1
  133. package/dist/client/assets/{file-explorer-sgwcJgTB.js → file-explorer-_3Yay2x8.js} +1 -1
  134. package/dist/client/assets/{file-preview-KMq6kQbY.js → file-preview-CHpcXovu.js} +1 -1
  135. package/dist/client/assets/{file-share-button-BmW3xptu.js → file-share-button-CXVf0V10.js} +1 -1
  136. package/dist/client/assets/{file-type-icon-CH0zVmFE.js → file-type-icon-poPLKUlK.js} +1 -1
  137. package/dist/client/assets/flat-project-BXwoPNzs.js +1 -0
  138. package/dist/client/assets/{folder-icon-Dvr9Xy_h.js → folder-icon-B1u0MiCk.js} +1 -1
  139. package/dist/client/assets/{form-ChrFSKbl.js → form-Dg_6Hf9j.js} +1 -1
  140. package/dist/client/assets/{general-CSM1Afsf.js → general-B4ZNIMkv.js} +1 -1
  141. package/dist/client/assets/{home-CmR382BT.js → home-ELjwftjN.js} +1 -1
  142. package/dist/client/assets/{icon-button-BEh8g82p.js → icon-button-CH2OxNKZ.js} +1 -1
  143. package/dist/client/assets/{index-1lCyt6wZ.js → index-BK3UZ3iw.js} +1 -1
  144. package/dist/client/assets/{index-BL1llwK-.js → index-BTY2QFMJ.js} +1 -1
  145. package/dist/client/assets/{index-BdbMrrND.js → index-CFz3Hn6w.js} +1 -1
  146. package/dist/client/assets/{index-5v4d81Co.js → index-CN-5kkc7.js} +1 -1
  147. package/dist/client/assets/{index-Dpzy6FT0.js → index-CPYLUZ6w.js} +1 -1
  148. package/dist/client/assets/{index-Br_k5ZoS.js → index-CQZm7V7F.js} +1 -1
  149. package/dist/client/assets/{index-FPsrk3s0.js → index-CuZxCor5.js} +1 -1
  150. package/dist/client/assets/{index-Dp4NtPWu.js → index-DEwWVQT2.js} +1 -1
  151. package/dist/client/assets/{index-CNBMfDzu.js → index-DoXTlFZn.js} +3 -3
  152. package/dist/client/assets/{index-CAxew9_u.js → index-GzUyiAtq.js} +1 -1
  153. package/dist/client/assets/{index-BvNW8UPM.js → index-XXahSrQ2.js} +1 -1
  154. package/dist/client/assets/{index-redirect-B_k2XKG7.js → index-redirect-BJu2viW0.js} +1 -1
  155. package/dist/client/assets/{index-E8HkK7le.js → index-xs_k6Ktz.js} +4 -4
  156. package/dist/client/assets/{index-GNzYGBzv.js → index-zt_Z_Heg.js} +1 -1
  157. package/dist/client/assets/{infiniteQueryObserver-B_6kT4Pu.js → infiniteQueryObserver-7uXBxwIZ.js} +1 -1
  158. package/dist/client/assets/{infra-billing-DntZ94Fv.js → infra-billing-DaXwvysV.js} +1 -1
  159. package/dist/client/assets/{input-Bf9hsVol.js → input-BndsYgrN.js} +1 -1
  160. package/dist/client/assets/{input-DzGUnaT4.js → input-DsuaqMOh.js} +3 -3
  161. package/dist/client/assets/{integration-icon-BMM9bKRw.js → integration-icon-Cx3J1TrD.js} +1 -1
  162. package/dist/client/assets/{jira-icon-Cj12G8eH.js → jira-icon-CIrGorhP.js} +1 -1
  163. package/dist/client/assets/{label-DAC0PXH6.js → label-BHQ7fAmu.js} +1 -1
  164. package/dist/client/assets/{layout-DH0wfMvp.js → layout-DJrVrTHk.js} +1 -1
  165. package/dist/client/assets/{legacy-agents-deep-DKcmw_C9.js → legacy-agents-deep-rCcS2UBo.js} +1 -1
  166. package/dist/client/assets/{legacy-main-redirect-xF3AIf85.js → legacy-main-redirect-DMe57jXo.js} +1 -1
  167. package/dist/client/assets/library-CbX8eoDf.js +1 -0
  168. package/dist/client/assets/{library-tab-C0sI5AvO.js → library-tab-DpE23FB4.js} +1 -1
  169. package/dist/client/assets/{login-CyNOjPxx.js → login-BRxzp--X.js} +1 -1
  170. package/dist/client/assets/{markdown-D9Q4_EWf.js → markdown-BQE0Sc_A.js} +1 -1
  171. package/dist/client/assets/{mcp-app-renderer-CJllCuFA.js → mcp-app-renderer-Bl0xOGsc.js} +1 -1
  172. package/dist/client/assets/{mcp-oauth-D5hp_76q.js → mcp-oauth-DOxWKmTF.js} +1 -1
  173. package/dist/client/assets/{mcp-oauth-Cm-FGk67.js → mcp-oauth-xPr142sb.js} +1 -1
  174. package/dist/client/assets/{members-aCVioT1N.js → members-BJNHqWz2.js} +1 -1
  175. package/dist/client/assets/{memory-Fzdui2vo.js → memory-CGilhYH2.js} +1 -1
  176. package/dist/client/assets/{mini-report-page-BTvq-myp.js → mini-report-page-BbCM6VM6.js} +1 -1
  177. package/dist/client/assets/{mock-board-BctOoM75.js → mock-board-CSphyYm-.js} +1 -1
  178. package/dist/client/assets/{monaco-editor-DxsHSHr3.js → monaco-editor-C2uEeF5_.js} +1 -1
  179. package/dist/client/assets/{monitoring-stats-row-BPpGukbV.js → monitoring-stats-row-4mryZRhX.js} +1 -1
  180. package/dist/client/assets/{multi-select-BEZlzNPL.js → multi-select-CcwfeB_X.js} +1 -1
  181. package/dist/client/assets/{mustache-C_2NGupD.js → mustache-Bpchj0JB.js} +1 -1
  182. package/dist/client/assets/{new-project-dialog-CBz8t6bW.js → new-project-dialog-nyD817-y.js} +1 -1
  183. package/dist/client/assets/{oauth-callback-ai-provider-COJwjuqo.js → oauth-callback-ai-provider-BpVSOAoL.js} +1 -1
  184. package/dist/client/assets/{oauth-callback-D-TIiYCW.js → oauth-callback-gTMv-zQg.js} +1 -1
  185. package/dist/client/assets/{onboarding-BvA8qKid.js → onboarding-CMWpJjZw.js} +1 -1
  186. package/dist/client/assets/{openai-conversation-DMNH07wd.js → openai-conversation-CeefM3R3.js} +1 -1
  187. package/dist/client/assets/{optimistic-project-sidebar-views-B82d2Iyt.js → optimistic-project-sidebar-views-v1rJRps1.js} +1 -1
  188. package/dist/client/assets/{organization-choice-DZk2VZFD.js → organization-choice-VbmGVdvE.js} +1 -1
  189. package/dist/client/assets/{orgs-D1rtBs1u.js → orgs-Cri0Ia7k.js} +1 -1
  190. package/dist/client/assets/{page-seo-form-DC_uQ_yb.js → page-seo-form-DY79__rL.js} +1 -1
  191. package/dist/client/assets/{pair-BHsCddMQ.js → pair-DwD5SdrN.js} +1 -1
  192. package/dist/client/assets/{plan-ladder-D5P8cNNU.js → plan-ladder-Cec8Hw6v.js} +1 -1
  193. package/dist/client/assets/{popover-BiATgeVZ.js → popover-CUbGh9FO.js} +1 -1
  194. package/dist/client/assets/{post-calendar-XwNvndsR.js → post-calendar-BQ6RASS0.js} +1 -1
  195. package/dist/client/assets/{post-editor-CIVzwScJ.js → post-editor-BlxejBOv.js} +1 -1
  196. package/dist/client/assets/{preview-content-D4a4Kxnw.js → preview-content-BNo5Q8c2.js} +1 -1
  197. package/dist/client/assets/{preview-dialog-DXvP_rSt.js → preview-dialog-CUTnny3X.js} +1 -1
  198. package/dist/client/assets/{preview-panel-9m4lCkpb.js → preview-panel-CbuRn5QK.js} +1 -1
  199. package/dist/client/assets/{product-picker-dialog-BFXbOjF7.js → product-picker-dialog-DWydhMcM.js} +1 -1
  200. package/dist/client/assets/{profile-UHLqhuh9.js → profile-Wgp3fAd7.js} +1 -1
  201. package/dist/client/assets/{project-app-view-7PLU79fP.js → project-app-view-BY4Z9zY6.js} +1 -1
  202. package/dist/client/assets/{project-feed-BMzjV3aS.js → project-feed-LzJO1RwA.js} +1 -1
  203. package/dist/client/assets/{project-icon-CtWmpx-o.js → project-icon-D9ZMEkrO.js} +1 -1
  204. package/dist/client/assets/project-reports-DHKecVyf.js +1 -0
  205. package/dist/client/assets/project-tasks-D-gNfCJd.js +1 -0
  206. package/dist/client/assets/{projects-BKfqSW6u.js → projects-D9E0KMO5.js} +1 -1
  207. package/dist/client/assets/{projects-empty-state-CansCxa8.js → projects-empty-state-CVyY4QD-.js} +1 -1
  208. package/dist/client/assets/{prompts-DF0ao_FF.js → prompts-BGmz7B8b.js} +1 -1
  209. package/dist/client/assets/record-editor-DeAErR2x.js +1 -0
  210. package/dist/client/assets/redirect-editor-B-TForOi.js +1 -0
  211. package/dist/client/assets/reports-5CTNIsDn.js +1 -0
  212. package/dist/client/assets/{reports-BtVp7TUw.js → reports-CwAchcdk.js} +1 -1
  213. package/dist/client/assets/{reports-onboarding-DJFr_1o0.js → reports-onboarding-4tevrhgv.js} +1 -1
  214. package/dist/client/assets/{reports-tab-lxUznXDf.js → reports-tab-BWxj7M8g.js} +2 -2
  215. package/dist/client/assets/{repositories-D-XY1mEG.js → repositories-BPCvyVf9.js} +1 -1
  216. package/dist/client/assets/{repository-binding-DJSfVmK0.js → repository-binding-DmdeiZmO.js} +1 -1
  217. package/dist/client/assets/{repository-import-picker-CN4nBNQQ.js → repository-import-picker-CQI4CdeM.js} +1 -1
  218. package/dist/client/assets/{repository-picker-Bq1Xf_Nc.js → repository-picker-BsT7lJxX.js} +1 -1
  219. package/dist/client/assets/{require-capability-tnxMTQ41.js → require-capability-DDfk0Kb5.js} +1 -1
  220. package/dist/client/assets/{required-auth-layout-OT71YdwW.js → required-auth-layout-BBSjYqsc.js} +1 -1
  221. package/dist/client/assets/{reset-password-b4ZAeKZf.js → reset-password-BWTQRa6I.js} +1 -1
  222. package/dist/client/assets/{resizable-zpo8XDIL.js → resizable-DUdjqiGj.js} +1 -1
  223. package/dist/client/assets/{resolve-tab-icon-DELF6fBY.js → resolve-tab-icon-JA5rc6Tv.js} +1 -1
  224. package/dist/client/assets/{review-settings-C7_0upab.js → review-settings-z03jMXZX.js} +1 -1
  225. package/dist/client/assets/{rich-text-link-control-r6aMgCnO.js → rich-text-link-control-Cx8fBuQI.js} +1 -1
  226. package/dist/client/assets/{roles-BNqONgK2.js → roles-DucC2Xmn.js} +1 -1
  227. package/dist/client/assets/{route-2S2BeRzM.js → route-DlzJTX4w.js} +1 -1
  228. package/dist/client/assets/route-DtPgqOWq.js +1 -0
  229. package/dist/client/assets/{route-ClCedNlY.js → route-T44vpxHb.js} +1 -1
  230. package/dist/client/assets/{runnable-block-editor-TLQt5HEP.js → runnable-block-editor-DEHfe8Jn.js} +1 -1
  231. package/dist/client/assets/{sandbox-lifecycle-context-B3tBEBAU.js → sandbox-lifecycle-context-DwGA5vHg.js} +1 -1
  232. package/dist/client/assets/{schema-DAFIdNnw.js → schema-BgIvb0Gx.js} +1 -1
  233. package/dist/client/assets/{scroll-area-D65kWya9.js → scroll-area-D4DX2ZIG.js} +1 -1
  234. package/dist/client/assets/{search-input-CZqwR2Em.js → search-input-JdMKjHSx.js} +1 -1
  235. package/dist/client/assets/{search-toggle-CZvcgEuO.js → search-toggle-pL0dggP1.js} +1 -1
  236. package/dist/client/assets/{secret-picker-D9zGuUhM.js → secret-picker-BQp7jdXk.js} +1 -1
  237. package/dist/client/assets/{secrets-BL-nilzb.js → secrets-oDHSjIYO.js} +1 -1
  238. package/dist/client/assets/{sections-editor-Cj-wrCnm.js → sections-editor-atX3TwPF.js} +1 -1
  239. package/dist/client/assets/{select-JMx_Daeq.js → select-DnxgNE4v.js} +1 -1
  240. package/dist/client/assets/{select-model-DcZybkpW.js → select-model-DXVspEVT.js} +1 -1
  241. package/dist/client/assets/{seo-editor-5GEPfBh6.js → seo-editor-DNDnxeNs.js} +1 -1
  242. package/dist/client/assets/{separator-BQJNbeVU.js → separator-2C8rNgYN.js} +1 -1
  243. package/dist/client/assets/{settings-tab-yEsrogNk.js → settings-tab-Mf3STlzh.js} +1 -1
  244. package/dist/client/assets/{sheet-ft1vIPTI.js → sheet-COKPXrMt.js} +1 -1
  245. package/dist/client/assets/{shell-layout-BfZ3aLwK.js → shell-layout-BJ2bouq5.js} +1 -1
  246. package/dist/client/assets/{skills-DIxWKIpf.js → skills-DO3tbITh.js} +1 -1
  247. package/dist/client/assets/{slider-DzfY-AKn.js → slider-BrBnaDSJ.js} +1 -1
  248. package/dist/client/assets/{sortable.esm-C25gMPOU.js → sortable.esm-ldWM5mlg.js} +1 -1
  249. package/dist/client/assets/{sso-DMISGA1g.js → sso-tkyC_08g.js} +1 -1
  250. package/dist/client/assets/{suggestion-CkSKi3Ko.js → suggestion-BZNfKCnl.js} +1 -1
  251. package/dist/client/assets/{switch-D1o5UUPU.js → switch-DDSkOeLA.js} +1 -1
  252. package/dist/client/assets/{symbol-BihNL2x9.js → symbol-DzwMqsxT.js} +1 -1
  253. package/dist/client/assets/{synced-repos-THZeI2TX.js → synced-repos-BkSO5Q1Y.js} +1 -1
  254. package/dist/client/assets/{tab-icon-glyph-D-qnzCLe.js → tab-icon-glyph-BuzlFWHk.js} +1 -1
  255. package/dist/client/assets/{table-_5HbhT_S.js → table-CMK8QC8D.js} +1 -1
  256. package/dist/client/assets/{tabs-BaVhZf2S.js → tabs-B9VR2rbK.js} +1 -1
  257. package/dist/client/assets/{task-board-BhjqCSbG.js → task-board--9goOhkE.js} +1 -1
  258. package/dist/client/assets/{task-route-RXmOd-Sg.js → task-route-0VBQiuCM.js} +1 -1
  259. package/dist/client/assets/{task-status-BMH2aOWE.js → task-status-CNJzd27h.js} +1 -1
  260. package/dist/client/assets/taskboard-analytics-CM-a1hkv.js +1 -0
  261. package/dist/client/assets/tasks-F-hM9qNc.js +1 -0
  262. package/dist/client/assets/{tasks-BmHnYLCK.js → tasks-jC2y5QyA.js} +1 -1
  263. package/dist/client/assets/{textarea-DUqfavim.js → textarea-V-Ewr6Em.js} +1 -1
  264. package/dist/client/assets/{thread-analytics-CaZ650wR.js → thread-analytics-LPGZ7GJl.js} +1 -1
  265. package/dist/client/assets/{thread-button-C_voRhAW.js → thread-button-CgW1daN2.js} +1 -1
  266. package/dist/client/assets/{thread-intent-DIdLWs3T.js → thread-intent-BzcsRkEY.js} +1 -1
  267. package/dist/client/assets/{thread-route-C0aHNen1.js → thread-route-C6etrVa0.js} +1 -1
  268. package/dist/client/assets/{thread-route-Bsh0W3WI.js → thread-route-Dcfq6vF9.js} +1 -1
  269. package/dist/client/assets/{thread-sheet-body-Ck9K6X-O.js → thread-sheet-body-BAcB1e7q.js} +1 -1
  270. package/dist/client/assets/{time-range-picker-CNwi7PKe.js → time-range-picker-DF3Ygb5C.js} +1 -1
  271. package/dist/client/assets/{toggle-group-B-oqQV0Q.js → toggle-group-a4ytF4Oj.js} +1 -1
  272. package/dist/client/assets/{tool-namespace-D73-Yt47.js → tool-namespace-DgKSlqBK.js} +1 -1
  273. package/dist/client/assets/{toolbar-icon-button-CWTFjB2x.js → toolbar-icon-button-DYnkRqZ7.js} +1 -1
  274. package/dist/client/assets/{tooltip-Bgaj6wao.js → tooltip-BwqXknMj.js} +1 -1
  275. package/dist/client/assets/{tooltipContext-Hyh6Z90v.js → tooltipContext-BpwAgADs.js} +1 -1
  276. package/dist/client/assets/{track-bmLGXYyb.js → track-8eJZpOmx.js} +1 -1
  277. package/dist/client/assets/{types-DSarHVWN.js → types-uLyd8Klr.js} +1 -1
  278. package/dist/client/assets/{url-slug-BCtPmKcV.js → url-slug-DQb0tXSj.js} +1 -1
  279. package/dist/client/assets/{usage-stats-CPP4mykS.js → usage-stats-5hdJRwfv.js} +1 -1
  280. package/dist/client/assets/{use-ai-providers-4IWNnMYR.js → use-ai-providers-BW9u4951.js} +1 -1
  281. package/dist/client/assets/{use-automations-BNBMB7NJ.js → use-automations-DhHqb9o9.js} +1 -1
  282. package/dist/client/assets/{use-autosave-CCI_H2Jh.js → use-autosave-DBs1Dhkn.js} +1 -1
  283. package/dist/client/assets/{use-chat-layout-state-CbsP3hVN.js → use-chat-layout-state-DMre3rzo.js} +1 -1
  284. package/dist/client/assets/{use-chat-navigation-Bvo_pyzq.js → use-chat-navigation-OgErkHag.js} +1 -1
  285. package/dist/client/assets/{use-clock-tick-BH2s8rwm.js → use-clock-tick-BzZc0p17.js} +1 -1
  286. package/dist/client/assets/{use-connect-companion-D-T5tZi4.js → use-connect-companion-DFtJCq_R.js} +1 -1
  287. package/dist/client/assets/{use-connection-B7mxZZZr.js → use-connection-DmWKxQIp.js} +1 -1
  288. package/dist/client/assets/{use-copy-BDIhU1a3.js → use-copy-yOqXjxUA.js} +1 -1
  289. package/dist/client/assets/{use-create-virtual-mcp-DzT7Wi_g.js → use-create-virtual-mcp-DyD0K90B.js} +1 -1
  290. package/dist/client/assets/{use-date-fns-locale-CcYc8FC-.js → use-date-fns-locale-CD7FGq8S.js} +1 -1
  291. package/dist/client/assets/{use-debounced-autosave-BZQvNBgR.js → use-debounced-autosave-DHlAwbI3.js} +1 -1
  292. package/dist/client/assets/{use-debounced-value-DogqGlHA.js → use-debounced-value-DuWNcnXn.js} +1 -1
  293. package/dist/client/assets/{use-deco-credits-D8fC6T0N.js → use-deco-credits-Bea6ChUy.js} +1 -1
  294. package/dist/client/assets/{use-decopilot-events-CG41uF0G.js → use-decopilot-events-ClCuNwhP.js} +1 -1
  295. package/dist/client/assets/{use-delete-connection-B8gkfexB.js → use-delete-connection-BHdzlaZN.js} +1 -1
  296. package/dist/client/assets/{use-deployment-admin-DMHoNV8K.js → use-deployment-admin-9qJi8NmW.js} +1 -1
  297. package/dist/client/assets/{use-ensure-project-folder-BXtCOD89.js → use-ensure-project-folder-Pz6kG32X.js} +1 -1
  298. package/dist/client/assets/{use-fast-preview-draft-url-ClgFfcai.js → use-fast-preview-draft-url-BcFHzHFy.js} +1 -1
  299. package/dist/client/assets/{use-file-configs-CfHrYQ0D.js → use-file-configs-Cnc56owU.js} +1 -1
  300. package/dist/client/assets/{use-infinite-scroll-Doz-tD5w.js → use-infinite-scroll-CqsPoGk1.js} +1 -1
  301. package/dist/client/assets/{use-join-requests-C6Zrd-wF.js → use-join-requests-B8p2Zeas.js} +1 -1
  302. package/dist/client/assets/{use-main-panel-tabs-BI-yjZaf.js → use-main-panel-tabs-C0Ktj2i7.js} +1 -1
  303. package/dist/client/assets/{use-mcp-auth-status-DT1RFPS5.js → use-mcp-auth-status-BY6UXdeD.js} +1 -1
  304. package/dist/client/assets/{use-mcp-client-HXdOgSo1.js → use-mcp-client-DTwq_7MH.js} +1 -1
  305. package/dist/client/assets/{use-mcp-prompts-Dc22OpBz.js → use-mcp-prompts-CE81wOkK.js} +1 -1
  306. package/dist/client/assets/{use-mcp-tools-SgFCxAm4.js → use-mcp-tools-BDslTiVH.js} +1 -1
  307. package/dist/client/assets/{use-members-BnU8sD2a.js → use-members-CmWLwd2e.js} +1 -1
  308. package/dist/client/assets/{use-mobile-DMhjc8sS.js → use-mobile-BD5GPe5Y.js} +1 -1
  309. package/dist/client/assets/{use-navigate-to-agent-8FxeDEql.js → use-navigate-to-agent-CiQs8YZp.js} +1 -1
  310. package/dist/client/assets/use-new-blocks-editor-Bi1eoiEH.js +1 -0
  311. package/dist/client/assets/{use-open-billing-url-CGiwz5yQ.js → use-open-billing-url-DVE0afgz.js} +1 -1
  312. package/dist/client/assets/{use-org-auth-client-CjFoGBiw.js → use-org-auth-client-D907jz51.js} +1 -1
  313. package/dist/client/assets/{use-org-fs-Brfqc0DM.js → use-org-fs-DC-NuNXo.js} +1 -1
  314. package/dist/client/assets/{use-org-repo-syncs-Dn8ueEn8.js → use-org-repo-syncs-CFHiMPUk.js} +1 -1
  315. package/dist/client/assets/{use-org-sso-5XSC3bo7.js → use-org-sso-CJ9T2BXL.js} +1 -1
  316. package/dist/client/assets/{use-organization-roles-CPEXva6v.js → use-organization-roles-CRyk_oUV.js} +1 -1
  317. package/dist/client/assets/{use-organization-settings-C1JjAa2e.js → use-organization-settings-QfwaDuvt.js} +1 -1
  318. package/dist/client/assets/{use-panel-navigate-B5g-cXoX.js → use-panel-navigate-BQzwPyBR.js} +1 -1
  319. package/dist/client/assets/{use-project-scope-C_W_iYCG.js → use-project-scope-0K714duc.js} +1 -1
  320. package/dist/client/assets/{use-releases-aiz7Xp_5.js → use-releases-DZTFt5jN.js} +1 -1
  321. package/dist/client/assets/{use-reports-diagnostic-Dx6jRAHR.js → use-reports-diagnostic-DpILmwBe.js} +1 -1
  322. package/dist/client/assets/{use-sandbox-events-VQD2dbMh.js → use-sandbox-events-v_kGJN2U.js} +1 -1
  323. package/dist/client/assets/{use-secrets-COPHY6zn.js → use-secrets-C-9G8ydk.js} +1 -1
  324. package/dist/client/assets/{use-section-preview-base-DPHgFiJr.js → use-section-preview-base-CmZa6K6g.js} +1 -1
  325. package/dist/client/assets/{use-tags-NK0RVjrR.js → use-tags-BJbdefCg.js} +1 -1
  326. package/dist/client/assets/{use-task-board-analytics-CDUEw4yr.js → use-task-board-analytics-CILYZiLT.js} +1 -1
  327. package/dist/client/assets/{use-task-board-events-DtM0CgpV.js → use-task-board-events-CjirQYQ9.js} +1 -1
  328. package/dist/client/assets/{use-task-board-item-prs-uJK_d1d_.js → use-task-board-item-prs-BIQrUm4A.js} +1 -1
  329. package/dist/client/assets/{use-task-board-items-ByQWsAvO.js → use-task-board-items-CGAY-jQW.js} +1 -1
  330. package/dist/client/assets/{use-task-metadata-YcyCc5iY.js → use-task-metadata-DPgHRFmq.js} +1 -1
  331. package/dist/client/assets/{use-thread-analytics-VXUKGF1M.js → use-thread-analytics-xBLnk1IS.js} +1 -1
  332. package/dist/client/assets/{use-thread-outputs-CcHD0dx2.js → use-thread-outputs-DfvzI16S.js} +1 -1
  333. package/dist/client/assets/useInfiniteQuery-y40gwZ85.js +1 -0
  334. package/dist/client/assets/{useQueries-D6R5SUUn.js → useQueries-J6gaISLv.js} +1 -1
  335. package/dist/client/assets/useSuspenseInfiniteQuery-CQ4v8A2V.js +1 -0
  336. package/dist/client/assets/{users-CpYFV7v9.js → users-yYj2VUTN.js} +1 -1
  337. package/dist/client/assets/{utils-DcA-ys_Q.js → utils-CeckZkhk.js} +1 -1
  338. package/dist/client/assets/{variant-calendar-BCj7kcYa.js → variant-calendar-kyOtq8lu.js} +1 -1
  339. package/dist/client/assets/{variant-matcher-override-uy8AIyK6.js → variant-matcher-override-5Sa4pTWa.js} +1 -1
  340. package/dist/client/assets/{view-mode-toggle-Fs_5ypxv.js → view-mode-toggle-BNtxS74L.js} +1 -1
  341. package/dist/client/assets/{virtual-mcp-BQkclqkV.js → virtual-mcp-Baro2XYn.js} +1 -1
  342. package/dist/client/assets/{watch-sse-pool-afzfEiDL.js → watch-sse-pool-LLzHE8XH.js} +1 -1
  343. package/dist/client/index.html +1 -1
  344. package/dist/server/migrate.js +253 -239
  345. package/dist/server/server.js +625 -625
  346. package/package.json +1 -1
  347. package/dist/client/assets/agent-app-CdQYM_ZA.js +0 -1
  348. package/dist/client/assets/agent-automation-Bvt8DrKn.js +0 -20
  349. package/dist/client/assets/agent-deck-BsXvzeBG.js +0 -1
  350. package/dist/client/assets/agent-library-D-aCuCTB.js +0 -1
  351. package/dist/client/assets/agent-library-file-BuoS_Z6e.js +0 -1
  352. package/dist/client/assets/agent-settings-bSj1beF7.js +0 -1
  353. package/dist/client/assets/agent-site-editor-code-B8CEWJnJ.js +0 -2
  354. package/dist/client/assets/agent-view-wYzAXyAR.js +0 -1
  355. package/dist/client/assets/api-keys-2HQGF5-h.js +0 -1
  356. package/dist/client/assets/app-editor-i2ce0F8B.js +0 -1
  357. package/dist/client/assets/flat-project-B1VoRXiA.js +0 -1
  358. package/dist/client/assets/library-IZ6uiAlE.js +0 -1
  359. package/dist/client/assets/project-reports-BFIkPtSH.js +0 -1
  360. package/dist/client/assets/project-tasks-DD_fl4Sm.js +0 -1
  361. package/dist/client/assets/record-editor-VsMWy81Y.js +0 -1
  362. package/dist/client/assets/redirect-editor-DaEa0GfW.js +0 -1
  363. package/dist/client/assets/reports-CCgdm6dz.js +0 -1
  364. package/dist/client/assets/route-Bo2LQsMZ.js +0 -1
  365. package/dist/client/assets/taskboard-analytics-BfqBcYab.js +0 -1
  366. package/dist/client/assets/tasks-BOGH2SxB.js +0 -1
  367. package/dist/client/assets/use-new-blocks-editor-C-_W9FQg.js +0 -1
  368. package/dist/client/assets/useInfiniteQuery-BtM1Ign2.js +0 -1
  369. package/dist/client/assets/useSuspenseInfiniteQuery-DxUIRGU7.js +0 -1
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null,x)}var C=(_,x)=>{for(var u in x)Xz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Wz.bind(x,u)})};import{Migrator as Qz,sql as o}from"kysely";var Nx={};C(Nx,{up:()=>Dz,down:()=>jz});import{sql as AT}from"kysely";async function Dz(_){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",AT`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",AT`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function jz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Tx={};C(Tx,{up:()=>Lz,down:()=>Fz});import{sql as a}from"kysely";async function Lz(_){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 Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null,x)}var C=(_,x)=>{for(var u in x)Rz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Gz.bind(x,u)})};import{Migrator as Mz,sql as o}from"kysely";var Ex={};C(Ex,{up:()=>Oz,down:()=>Sz});import{sql as nT}from"kysely";async function Oz(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",nT`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",nT`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function Sz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var $x={};C($x,{up:()=>fz,down:()=>Az});import{sql as a}from"kysely";async function fz(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await a`ALTER TABLE organization_settings
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 Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.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 Fz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var mx={};C(mx,{up:()=>Yz,down:()=>Hz});import{sql as IT}from"kysely";async function Yz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await IT`
17
+ OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function Az(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Ux={};C(Ux,{up:()=>Iz,down:()=>yz});import{sql as vT}from"kysely";async function Iz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await vT`
18
18
  select organization_id, metadata
19
19
  from connections
20
20
  where connection_type = 'VIRTUAL'
21
21
  and metadata like '%submoduleCredentials%'
22
22
  order by updated_at asc
23
- `.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let m of T){let z=m?.host,E=m?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,T]of u){let m=JSON.stringify([...T].map(([z,E])=>({host:z,secretId:E})));await IT`
23
+ `.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let m of T){let z=m?.host,E=m?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,T]of u){let m=JSON.stringify([...T].map(([z,E])=>({host:z,secretId:E})));await vT`
24
24
  insert into organization_settings
25
25
  ("organizationId", submodule_credentials, "createdAt", "updatedAt")
26
26
  values (${K}, ${m}, ${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 Hz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var zx={};C(zx,{up:()=>Mz,down:()=>Rz});async function Mz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function Rz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var $x={};C($x,{up:()=>Bz,down:()=>Gz});import{sql as Ex}from"kysely";async function Bz(_){await Ex`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Ex`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Ex`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 Jx={};C(Jx,{up:()=>fz,down:()=>Az});import{sql as G}from"kysely";var Oz={title:{old:["Store Report","Commerce Discovery"],new:"Deco Score"},description:{old:["Your store's report and diagnostics","Commerce report and diagnostics","Commerce Discovery report and commerce diagnostics."],new:"Your store's Deco Score"}},Sz={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},Ux={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function yT(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function VT(_,x){for(let[K,T]of[[G`organization_id || '_commerce-discovery'`,Oz],[G`'commerce-discovery_' || organization_id`,Sz]])for(let m of["title","description"]){let{from:z,to:E}=yT(T[m],x);await G`
30
+ `.execute(_)}}async function yz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Jx={};C(Jx,{up:()=>Vz,down:()=>wz});async function Vz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function wz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Qx={};C(Qx,{up:()=>kz,down:()=>nz});import{sql as Px}from"kysely";async function kz(_){await Px`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Px`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Px`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function nz(_){await _.schema.dropIndex("idx_threads_active_status").execute(),await _.schema.dropIndex("idx_threads_updated_at").execute(),await _.schema.dropIndex("idx_tmp_finish_persisted_at").execute()}var Zx={};C(Zx,{up:()=>gz,down:()=>qz});import{sql as G}from"kysely";var vz={title:{old:["Store Report","Commerce Discovery"],new:"Deco Score"},description:{old:["Your store's report and diagnostics","Commerce report and diagnostics","Commerce Discovery report and commerce diagnostics."],new:"Your store's Deco Score"}},pz={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},Xx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function pT(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function gT(_,x){for(let[K,T]of[[G`organization_id || '_commerce-discovery'`,vz],[G`'commerce-discovery_' || organization_id`,pz]])for(let m of["title","description"]){let{from:z,to:E}=pT(T[m],x);await G`
31
31
  UPDATE connections
32
32
  SET ${G.ref(m)} = ${E}
33
33
  WHERE id = ${K}
@@ -41,7 +41,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
41
41
  RETURN NULL;
42
42
  END;
43
43
  $fn$ LANGUAGE plpgsql IMMUTABLE;
44
- `.execute(_);let{from:u,to:N}=yT(Ux.label,x);await G`
44
+ `.execute(_);let{from:u,to:N}=pT(Xx.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 Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
56
56
  (
57
57
  SELECT jsonb_agg(
58
58
  CASE
59
- WHEN v ->> 'toolName' = ${Ux.toolName}
59
+ WHEN v ->> 'toolName' = ${Xx.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 Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.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' = ${Ux.toolName}
75
+ WHERE v ->> 'toolName' = ${Xx.toolName}
76
76
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
77
77
  )
78
78
  )
@@ -80,38 +80,38 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.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 fz(_){await VT(_,"up")}async function Az(_){await VT(_,"down")}var Qx={};C(Qx,{up:()=>yz,down:()=>Vz,ACTIONS:()=>Px});import{sql as K_}from"kysely";var Px=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],Iz=Px.filter((_)=>_!=="finding_resolved");async function yz(_){await wT(_,Px)}async function Vz(_){await K_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await wT(_,Iz)}async function wT(_,x){await K_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await K_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${K_.join(x.map((u)=>K_.lit(u)))}))`.execute(_)}var Xx={};C(Xx,{up:()=>wz,down:()=>kz});import{sql as M_}from"kysely";async function wz(_){await M_`
83
+ `.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function gz(_){await gT(_,"up")}async function qz(_){await gT(_,"down")}var jx={};C(jx,{up:()=>cz,down:()=>hz,ACTIONS:()=>Wx});import{sql as T_}from"kysely";var Wx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],iz=Wx.filter((_)=>_!=="finding_resolved");async function cz(_){await qT(_,Wx)}async function hz(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await qT(_,iz)}async function qT(_,x){await T_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await T_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${T_.join(x.map((u)=>T_.lit(u)))}))`.execute(_)}var Lx={};C(Lx,{up:()=>tz,down:()=>oz});import{sql as B_}from"kysely";async function tz(_){await B_`
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 M_`
90
+ `.execute(_),await B_`
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 kz(_){await M_`
94
+ `.execute(_)}async function oz(_){await B_`
95
95
  DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
96
- `.execute(_),await M_`
96
+ `.execute(_),await B_`
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 Zx={};C(Zx,{up:()=>nz,down:()=>vz});import{sql as kT}from"kysely";async function nz(_){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(kT`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(kT`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 vz(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Wx={};C(Wx,{up:()=>pz,down:()=>gz});async function pz(){}async function gz(){}var jx={};C(jx,{up:()=>qz,down:()=>iz});import{sql as Dx}from"kysely";async function qz(_){await Dx`
103
+ `.execute(_)}var Fx={};C(Fx,{up:()=>az,down:()=>rz});import{sql as iT}from"kysely";async function az(_){await _.schema.createTable("org_project_folders").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("folders","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("user_sidebar_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("preferences","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_sidebar_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_sidebar_preferences_organization_id_idx").on("user_sidebar_preferences").column("organization_id").execute()}async function rz(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Yx={};C(Yx,{up:()=>lz,down:()=>ez});async function lz(){}async function ez(){}var Hx={};C(Hx,{up:()=>dz,down:()=>bz});import{sql as Dx}from"kysely";async function dz(_){await Dx`
104
104
  ALTER TABLE task_board_prompts
105
105
  ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
106
- `.execute(_)}async function iz(_){await Dx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Dx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Fx={};C(Fx,{up:()=>cz,down:()=>hz});import{sql as Lx}from"kysely";async function cz(_){await Lx`
106
+ `.execute(_)}async function bz(_){await Dx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Dx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Rx={};C(Rx,{up:()=>sz,down:()=>_E});import{sql as Mx}from"kysely";async function sz(_){await Mx`
107
107
  DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
108
- `.execute(_),await Lx`
108
+ `.execute(_),await Mx`
109
109
  DELETE FROM connection_aggregations
110
110
  WHERE parent_connection_id LIKE 'studio-jira\\_%'
111
- `.execute(_),await Lx`
111
+ `.execute(_),await Mx`
112
112
  DELETE FROM connections
113
113
  WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
114
- `.execute(_)}async function hz(){}var Yx={};C(Yx,{up:()=>tz,down:()=>oz});import{sql as nT}from"kysely";async function tz(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(nT`audience in ('human', 'internal')`)).execute(),await nT`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function oz(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Hx={};C(Hx,{up:()=>rz,down:()=>lz});import{sql as az}from"kysely";async function rz(_){await az`
114
+ `.execute(_)}async function _E(){}var Bx={};C(Bx,{up:()=>xE,down:()=>uE});import{sql as cT}from"kysely";async function xE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(cT`audience in ('human', 'internal')`)).execute(),await cT`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function uE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Gx={};C(Gx,{up:()=>KE,down:()=>NE});import{sql as CE}from"kysely";async function KE(_){await CE`
115
115
  UPDATE org_fs_entry AS d
116
116
  SET deleted_at = now(),
117
117
  updated_at = now(),
@@ -130,7 +130,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
130
130
  AND c.parent = d.path
131
131
  AND c.deleted_at IS NULL
132
132
  )
133
- `.execute(_)}async function lz(){}var Rx={};C(Rx,{up:()=>dz,down:()=>sz,ACTIONS:()=>Mx});import{sql as L}from"kysely";var Mx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],ez=Mx.filter((_)=>_!=="sprint_changed");async function dz(_){await L`
133
+ `.execute(_)}async function NE(){}var Sx={};C(Sx,{up:()=>mE,down:()=>zE,ACTIONS:()=>Ox});import{sql as F}from"kysely";var Ox=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],TE=Ox.filter((_)=>_!=="sprint_changed");async function mE(_){await F`
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,
@@ -146,22 +146,22 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
146
146
  CONSTRAINT chk_task_board_sprints_dates
147
147
  CHECK (start_date IS NULL OR end_date IS NULL OR end_date >= start_date)
148
148
  )
149
- `.execute(_),await L`
149
+ `.execute(_),await F`
150
150
  CREATE INDEX idx_task_board_sprints_org
151
151
  ON task_board_sprints (organization_id)
152
- `.execute(_),await L`
152
+ `.execute(_),await F`
153
153
  ALTER TABLE task_board_items
154
154
  ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
155
- `.execute(_),await L`
155
+ `.execute(_),await F`
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 vT(_,Mx)}async function sz(_){await L`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await vT(_,ez),await L`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await L`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await L`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function vT(_,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 Bx={};C(Bx,{up:()=>_E,planOrgSiteProjectLinks:()=>qT,down:()=>xE,applyOrgSiteProjectLinks:()=>iT});import{sql as P}from"kysely";var bz="migration-237",pT=1000;async function gT(_){return(await P`
159
+ `.execute(_),await hT(_,Ox)}async function zE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await hT(_,TE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function hT(_,x){await F`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await F`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${F.join(x.map((u)=>F.lit(u)))}))`.execute(_)}var fx={};C(fx,{up:()=>$E,planOrgSiteProjectLinks:()=>aT,down:()=>UE,applyOrgSiteProjectLinks:()=>rT});import{sql as P}from"kysely";var EE="migration-237",tT=1000;async function oT(_){return(await P`
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 qT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await P`
164
+ `.execute(_)).rows[0]?.conname??null}async function aT(_){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
@@ -172,17 +172,17 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
172
172
  SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
173
173
  )
174
174
  ORDER BY organization_id, id
175
- `.execute(_),K=new Map;for(let T of N.rows){if(!T.metadata)continue;let m;try{let $=JSON.parse(T.metadata);if($&&typeof $==="object")m=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof m!=="string"||!m)continue;let z=`${T.organization_id}\x00${m}`,E=K.get(z)??[];E.push(T.id),K.set(z,E)}for(let{slug:T,organization_id:m}of u.rows){let z=K.get(`${m}\x00${T}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:T,projectIds:z});else x.links.push({slug:T,projectId:z[0]})}return x}async function iT(_,x){let u=0;for(let N=0;N<x.length;N+=pT){let K=P.join(x.slice(N,N+pT).map((m)=>P`(${m.slug}::text, ${m.projectId}::text)`)),T=await P`
175
+ `.execute(_),K=new Map;for(let T of N.rows){if(!T.metadata)continue;let m;try{let $=JSON.parse(T.metadata);if($&&typeof $==="object")m=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof m!=="string"||!m)continue;let z=`${T.organization_id}\x00${m}`,E=K.get(z)??[];E.push(T.id),K.set(z,E)}for(let{slug:T,organization_id:m}of u.rows){let z=K.get(`${m}\x00${T}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:T,projectIds:z});else x.links.push({slug:T,projectId:z[0]})}return x}async function rT(_,x){let u=0;for(let N=0;N<x.length;N+=tT){let K=P.join(x.slice(N,N+tT).map((m)=>P`(${m.slug}::text, ${m.projectId}::text)`)),T=await P`
176
176
  UPDATE org_sites o
177
177
  SET project_id = v.pid,
178
178
  linked_at = now(),
179
- updated_by = ${bz},
179
+ updated_by = ${EE},
180
180
  updated_at = now()
181
181
  FROM (VALUES ${K}) AS v(slug, pid)
182
182
  WHERE o.slug = v.slug
183
183
  AND o.project_id IS NULL
184
184
  AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
185
- `.execute(_);u+=Number(T.numAffectedRows??0n)}return u}async function _E(_){await P`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await qT(_);await P`
185
+ `.execute(_);u+=Number(T.numAffectedRows??0n)}return u}async function $E(_){await P`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await aT(_);await P`
186
186
  ALTER TABLE org_sites
187
187
  ADD COLUMN project_id text NULL
188
188
  REFERENCES connections(id) ON DELETE SET NULL,
@@ -190,7 +190,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
190
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 gT(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
193
+ `.execute(_);let u=await oT(_);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
195
  `.execute(_),await P`
196
196
  ALTER TABLE org_sites
@@ -199,12 +199,12 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
199
199
  ON DELETE SET NULL NOT VALID
200
200
  `.execute(_),await P`
201
201
  ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
202
- `.execute(_);let N=await iT(_,x.links),K=await P`
202
+ `.execute(_);let N=await rT(_,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 P`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:T,projectIds:m}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${T}": ${m.join(", ")}`)}async function xE(_){if((await P`
205
+ `.execute(_);await P`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:T,projectIds:m}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${T}": ${m.join(", ")}`)}async function UE(_){if((await P`
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 gT(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
207
+ `.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await oT(_);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
209
  `.execute(_),await P`
210
210
  ALTER TABLE org_sites
@@ -213,9 +213,9 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
213
213
  ON DELETE CASCADE
214
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 Gx={};C(Gx,{up:()=>uE,moveRules:()=>F,down:()=>CE});import{sql as c}from"kysely";async function uE(_){await F(_,"task_board_prompts","tbp_","in_progress","in_review"),await F(_,"task_board_prompts","tbp_","todo","in_progress"),await F(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await F(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
216
+ `.execute(_)}var Ax={};C(Ax,{up:()=>JE,moveRules:()=>Y,down:()=>PE});import{sql as c}from"kysely";async function JE(_){await Y(_,"task_board_prompts","tbp_","in_progress","in_review"),await Y(_,"task_board_prompts","tbp_","todo","in_progress"),await Y(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await Y(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
217
217
  DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
218
- `.execute(_),await F(_,"task_board_column_automations","tbca_","todo","in_progress"),await F(_,"task_board_column_automations","tbca_","approved","ready_for_deployment"),await F(_,"task_board_column_automations","tbca_","merged","post_deploy_validation"),await c`
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 (
220
220
  UPDATE task_board_items AS i
221
221
  SET status = CASE
@@ -241,7 +241,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.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 CE(){}async function F(_,x,u,N,K){await c`
244
+ `.execute(_)}async function PE(){}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 Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
255
255
  id = ${u} || organization_id || '_' || ${K},
256
256
  updated_at = now()
257
257
  WHERE column_key = ${N}
258
- `.execute(_)}var Ox={};C(Ox,{up:()=>NE,down:()=>TE});import{sql as KE}from"kysely";async function NE(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await F(_,x,u,"todo","in_progress"),await F(_,x,u,"approved","ready_for_deployment"),await F(_,x,u,"merged","post_deploy_validation")}await KE`
258
+ `.execute(_)}var Ix={};C(Ix,{up:()=>XE,down:()=>ZE});import{sql as QE}from"kysely";async function XE(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await Y(_,x,u,"todo","in_progress"),await Y(_,x,u,"approved","ready_for_deployment"),await Y(_,x,u,"merged","post_deploy_validation")}await QE`
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 Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.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 TE(){}var Sx={};C(Sx,{up:()=>zE,down:()=>EE});import{sql as mE}from"kysely";async function zE(_){await mE`
282
+ `.execute(_)}async function ZE(){}var yx={};C(yx,{up:()=>jE,down:()=>LE});import{sql as WE}from"kysely";async function jE(_){await WE`
283
283
  WITH restored AS (
284
284
  UPDATE task_board_items AS i
285
285
  SET status = 'todo', updated_at = now()
@@ -306,53 +306,53 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.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 EE(){}var fx={};C(fx,{up:()=>$E,down:()=>UE});import{sql as j}from"kysely";async function $E(_){await j`
309
+ `.execute(_)}async function LE(){}var Vx={};C(Vx,{up:()=>FE,down:()=>YE});import{sql as L}from"kysely";async function FE(_){await L`
310
310
  ALTER TABLE automation_triggers
311
311
  ADD COLUMN column_key text,
312
312
  ADD COLUMN from_kind text,
313
313
  ADD COLUMN from_statuses text[] NOT NULL DEFAULT '{}'
314
- `.execute(_),await j`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await j`
314
+ `.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
315
315
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
316
316
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
317
- `.execute(_),await j`
317
+ `.execute(_),await L`
318
318
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_board_column_transition_trigger
319
319
  CHECK (
320
320
  type != 'board_column_transition'
321
321
  OR (column_key IS NOT NULL
322
322
  AND from_kind IN ('any', 'earlier', 'later', 'statuses'))
323
323
  )
324
- `.execute(_),await j`
324
+ `.execute(_),await L`
325
325
  CREATE TABLE automation_trigger_fires (
326
326
  trigger_id text NOT NULL REFERENCES automation_triggers(id) ON DELETE CASCADE,
327
327
  event_key text NOT NULL,
328
328
  created_at timestamptz NOT NULL DEFAULT now(),
329
329
  PRIMARY KEY (trigger_id, event_key)
330
330
  )
331
- `.execute(_),await j`
331
+ `.execute(_),await L`
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 UE(_){await j`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await j`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await j`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await j`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await j`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await j`
335
+ `.execute(_)}async function YE(_){await L`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await L`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await L`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
336
336
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
337
337
  CHECK (type IN ('cron', 'event', 'webhook'))
338
- `.execute(_),await j`
338
+ `.execute(_),await L`
339
339
  ALTER TABLE automation_triggers
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 Ax={};C(Ax,{up:()=>XE,down:()=>ZE,backfillUrlSlugs:()=>R_});import{sql as Y}from"kysely";var hT=64,JE=new Set(["new","edit","settings","apps","projects","connections"]);function PE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function QE(_,x){let u=PE(_??"").slice(0,hT).replace(/-+$/,"");return u.length>=2&&!JE.has(u)?u:x}function cT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,hT-u.length).replace(/-+$/,"")}${u}`}async function R_(_){let{rows:x}=await Y`
343
+ `.execute(_)}var wx={};C(wx,{up:()=>RE,down:()=>BE,backfillUrlSlugs:()=>G_});import{sql as D}from"kysely";var eT=64,DE=new Set(["new","edit","settings","apps","projects","connections"]);function HE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function ME(_,x){let u=HE(_??"").slice(0,eT).replace(/-+$/,"");return u.length>=2&&!DE.has(u)?u:x}function lT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,eT-u.length).replace(/-+$/,"")}${u}`}async function G_(_){let{rows:x}=await D`
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 Y`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(m)=>{let z=N.get(m);if(!z)N.set(m,z=new Set);return z};for(let m of x)if(m.url_slug)K(m.organization_id).add(m.url_slug);for(let m of u)K(m.organization_id).add(m.slug);let T=[];for(let m of x){if(m.url_slug)continue;let z=K(m.organization_id),E=QE(m.title,m.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(cT(E,$)))$++;let J=cT(E,$);z.add(J),T.push({id:m.id,slug:J})}for(let m=0;m<T.length;m+=1000){let z=T.slice(m,m+1000);await Y`
347
+ `.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(m)=>{let z=N.get(m);if(!z)N.set(m,z=new Set);return z};for(let m of x)if(m.url_slug)K(m.organization_id).add(m.url_slug);for(let m of u)K(m.organization_id).add(m.slug);let T=[];for(let m of x){if(m.url_slug)continue;let z=K(m.organization_id),E=ME(m.title,m.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(lT(E,$)))$++;let J=lT(E,$);z.add(J),T.push({id:m.id,slug:J})}for(let m=0;m<T.length;m+=1000){let z=T.slice(m,m+1000);await D`
348
348
  UPDATE connections c
349
349
  SET url_slug = v.slug
350
350
  FROM unnest(
351
- ${Y.val(z.map((E)=>E.id))}::text[],
352
- ${Y.val(z.map((E)=>E.slug))}::text[]
351
+ ${D.val(z.map((E)=>E.id))}::text[],
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 XE(_){await Y`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await Y`
355
+ `.execute(_)}}async function RE(_){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,
@@ -360,24 +360,24 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
360
360
  created_at timestamptz NOT NULL DEFAULT now(),
361
361
  PRIMARY KEY (organization_id, slug)
362
362
  )
363
- `.execute(_),await Y`
363
+ `.execute(_),await D`
364
364
  CREATE INDEX idx_connection_slug_aliases_connection
365
365
  ON connection_slug_aliases (connection_id)
366
- `.execute(_),await R_(_),await Y`
366
+ `.execute(_),await G_(_),await D`
367
367
  CREATE UNIQUE INDEX idx_connections_org_url_slug
368
368
  ON connections (organization_id, url_slug)
369
- `.execute(_)}async function ZE(_){await Y`DROP TABLE connection_slug_aliases`.execute(_),await Y`DROP INDEX idx_connections_org_url_slug`.execute(_),await Y`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var Ix={};C(Ix,{up:()=>WE,down:()=>DE});async function WE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function DE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var yx={};C(yx,{up:()=>jE,down:()=>LE});async function jE(_){await R_(_)}async function LE(){}var Vx={};C(Vx,{up:()=>FE,down:()=>YE});import{sql as B_}from"kysely";async function FE(_){await B_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await B_`
369
+ `.execute(_)}async function BE(_){await D`DROP TABLE connection_slug_aliases`.execute(_),await D`DROP INDEX idx_connections_org_url_slug`.execute(_),await D`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var kx={};C(kx,{up:()=>GE,down:()=>OE});async function GE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function OE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var nx={};C(nx,{up:()=>SE,down:()=>fE});async function SE(_){await G_(_)}async function fE(){}var vx={};C(vx,{up:()=>AE,down:()=>IE});import{sql as O_}from"kysely";async function AE(_){await O_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await O_`
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 YE(_){await B_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await B_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var wx={};C(wx,{up:()=>HE,down:()=>ME});import{sql as N_}from"kysely";async function HE(_){await N_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await N_`
373
+ `.execute(_)}async function IE(_){await O_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await O_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var px={};C(px,{up:()=>yE,down:()=>VE});import{sql as m_}from"kysely";async function yE(_){await m_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await m_`
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 ME(_){await N_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await N_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await N_`
377
+ `.execute(_)}async function VE(_){await m_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await m_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await m_`
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 kx={};C(kx,{up:()=>RE,down:()=>OE});import{sql as H}from"kysely";async function RE(_){let{rows:x}=await H`
380
+ `.execute(_)}var gx={};C(gx,{up:()=>wE,down:()=>vE});import{sql as H}from"kysely";async function wE(_){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 Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.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 (${m}, ${K.organization_id}, ${BE(K)}, true,
408
- ${K.created_by}, ${JSON.stringify(GE(K.prompt))},
407
+ VALUES (${m}, ${K.organization_id}, ${kE(K)}, true,
408
+ ${K.created_by}, ${JSON.stringify(nE(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 Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
414
414
  VALUES (${`trg_${m}`}, ${m}, 'jira_transition', ${K.jira_status},
415
415
  ${K.from_kind}, ${K.from_statuses})
416
416
  ON CONFLICT (id) DO NOTHING
417
- `.execute(_)}}function BE(_){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 OE(_){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 kE(_){let x=_.from_kind==="earlier"?" (from an earlier column)":_.from_kind==="later"?" (from a later column)":_.from_kind==="statuses"?` (from ${_.from_statuses.join(", ")})`:"";return`Jira: ${_.jira_status}${x}`}function nE(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
418
+ `).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function vE(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
419
419
  ALTER TABLE automation_triggers
420
420
  DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
421
- `.execute(_)}var nx={};C(nx,{up:()=>SE,down:()=>fE});import{sql as T_}from"kysely";async function SE(_){await T_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await T_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function fE(_){await T_`
421
+ `.execute(_)}var qx={};C(qx,{up:()=>pE,down:()=>gE});import{sql as z_}from"kysely";async function pE(_){await z_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await z_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function gE(_){await z_`
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 Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.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 T_`
430
+ `.execute(_),await z_`
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 T_`
433
+ `.execute(_),await z_`
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,16 +445,30 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.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 vx={};C(vx,{up:()=>AE,down:()=>IE});import{sql as G_}from"kysely";async function AE(_){await G_`
448
+ `.execute(_)}var ix={};C(ix,{up:()=>qE,down:()=>iE});import{sql as S_}from"kysely";async function qE(_){await S_`
449
449
  ALTER TABLE task_board_items
450
450
  ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
451
451
  REFERENCES connections(id) ON DELETE SET NULL
452
- `.execute(_),await G_`
452
+ `.execute(_),await S_`
453
453
  CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
454
454
  ON task_board_items (virtual_mcp_id)
455
455
  WHERE virtual_mcp_id IS NOT NULL
456
- `.execute(_)}async function IE(_){await G_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await G_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var px={};C(px,{up:()=>yE,down:()=>VE});async function yE(_){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 VE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var gx={};C(gx,{up:()=>wE,down:()=>kE});async function wE(_){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 kE(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var qx={};C(qx,{up:()=>vE,down:()=>pE});import{sql as nE}from"kysely";async function vE(_){await nE`ALTER TABLE organization_settings
457
- DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function pE(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var ix={};C(ix,{up:()=>gE,down:()=>qE});import{sql as tT}from"kysely";async function gE(_){await tT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function qE(_){await tT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var cx={};C(cx,{up:()=>iE,down:()=>cE});import{sql as O}from"kysely";async function iE(_){await O`
456
+ `.execute(_)}async function iE(_){await S_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await S_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var cx={};C(cx,{up:()=>cE,down:()=>hE});async function cE(_){await _.schema.createTable("github_copilot_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function hE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var hx={};C(hx,{up:()=>tE,down:()=>oE});async function tE(_){await _.schema.createTable("org_shared_plans").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("created_at","timestamptz",(x)=>x.notNull()).addPrimaryKeyConstraint("org_shared_plans_pkey",["organization_id","provider_id","user_id"]).execute()}async function oE(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var tx={};C(tx,{up:()=>aE,down:()=>rE});import{sql as r}from"kysely";var f_=["linked_chat_run"];async function dT(_){let{rows:x}=await r`
457
+ SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
458
+ WHERE conname = 'chk_trigger_type'
459
+ AND conrelid = 'automation_triggers'::regclass
460
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function bT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
461
+ ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
462
+ ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
463
+ `.execute(_)}async function aE(_){let x=await dT(_);if(f_.every((u)=>x.has(u)))return;for(let u of f_)x.add(u);await bT(_,x)}async function rE(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(f_)})`.execute(_);let x=await dT(_);for(let u of f_)x.delete(u);await bT(_,x)}var ox={};C(ox,{up:()=>lE,down:()=>eE});import{sql as l}from"kysely";var A_=["board_pr_merged","chat_pr_opened"];async function sT(_){let{rows:x}=await l`
464
+ SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
465
+ WHERE conname = 'chk_trigger_type'
466
+ AND conrelid = 'automation_triggers'::regclass
467
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function _m(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
468
+ ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
469
+ ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
470
+ `.execute(_)}async function lE(_){let x=await sT(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await _m(_,x)}async function eE(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(A_)})`.execute(_);let x=await sT(_);for(let u of A_)x.delete(u);await _m(_,x)}var ax={};C(ax,{up:()=>bE,down:()=>sE});import{sql as dE}from"kysely";async function bE(_){await dE`ALTER TABLE organization_settings
471
+ DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function sE(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var rx={};C(rx,{up:()=>_0,down:()=>x0});import{sql as xm}from"kysely";async function _0(_){await xm`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function x0(_){await xm`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var lx={};C(lx,{up:()=>u0,down:()=>C0});import{sql as O}from"kysely";async function u0(_){await O`
458
472
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
459
473
  RETURNS jsonb AS $fn$
460
474
  BEGIN
@@ -528,7 +542,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
528
542
  || '/' ||
529
543
  coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
530
544
  ) = lower(p.path)
531
- `.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 cE(_){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 C0(_){await O`
532
546
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
533
547
  RETURNS jsonb AS $fn$
534
548
  BEGIN
@@ -555,17 +569,17 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
555
569
  )::text
556
570
  WHERE a.id = 'commerce-discovery_' || a.organization_id
557
571
  AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
558
- `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var tx={};C(tx,{up:()=>hE,down:()=>tE});import{sql as hx}from"kysely";async function hE(_){await hx`ALTER TABLE git_provider_accounts
572
+ `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var dx={};C(dx,{up:()=>K0,down:()=>N0});import{sql as ex}from"kysely";async function K0(_){await ex`ALTER TABLE git_provider_accounts
559
573
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
560
574
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
561
575
  CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
562
576
  ADD CONSTRAINT git_provider_accounts_cli_check
563
577
  CHECK (auth_kind <> 'github_cli' OR
564
- (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function tE(_){await hx`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await hx`ALTER TABLE git_provider_accounts
578
+ (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function N0(_){await ex`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await ex`ALTER TABLE git_provider_accounts
565
579
  DROP CONSTRAINT git_provider_accounts_cli_check,
566
580
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
567
581
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
568
- CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var ox={};C(ox,{up:()=>oE,down:()=>aE});import{sql as oT}from"kysely";async function oE(_){await oT`
582
+ CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var bx={};C(bx,{up:()=>T0,down:()=>m0});import{sql as um}from"kysely";async function T0(_){await um`
569
583
  INSERT INTO "organization" (id, name, slug, "createdAt")
570
584
  SELECT
571
585
  'org_user_fs',
@@ -579,9 +593,9 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
579
593
  END,
580
594
  now()
581
595
  ON CONFLICT (id) DO NOTHING
582
- `.execute(_)}async function aE(_){await oT`
596
+ `.execute(_)}async function m0(_){await um`
583
597
  DELETE FROM "organization" WHERE id = 'org_user_fs'
584
- `.execute(_)}var ax={};C(ax,{up:()=>rE,down:()=>lE});async function rE(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function lE(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var rx={};C(rx,{up:()=>eE,down:()=>dE});async function eE(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function dE(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var lx={};C(lx,{up:()=>bE,down:()=>_0});import{sql as m_}from"kysely";var sE=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function aT(_,x){for(let{table:u,column:N}of sE){let K=`${u}_${N}_check`,T=x.map((m)=>`'${m}'`).join(", ");await m_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await m_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${T}))`).execute(_)}}async function bE(_){await aT(_,["github","gitlab","bitbucket"])}async function _0(_){await m_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await m_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await m_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await aT(_,["github","gitlab"])}var ex={};C(ex,{up:()=>x0,down:()=>u0});import{sql as O_}from"kysely";async function x0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(O_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(O_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_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()`)).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 u0(_){await _.schema.dropTable("experiments").execute()}var dx={};C(dx,{up:()=>K0,down:()=>N0});import{sql as C0}from"kysely";async function K0(_){await C0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function N0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var bx={};C(bx,{up:()=>m0,down:()=>z0,ACTIONS:()=>sx});import{sql as z_}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"],T0=sx.filter((_)=>_!=="duplicate_reported");async function m0(_){await rT(_,sx)}async function z0(_){await z_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await rT(_,T0)}async function rT(_,x){await z_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await z_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${z_.join(x.map((u)=>z_.lit(u)))}))`.execute(_)}var _u={};C(_u,{up:()=>E0,down:()=>$0});async function E0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function $0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var xu={};C(xu,{up:()=>U0,down:()=>J0});async function U0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function J0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var uu={};C(uu,{up:()=>Q0,down:()=>X0});import{sql as P0}from"kysely";async function Q0(_){await P0`
598
+ `.execute(_)}var sx={};C(sx,{up:()=>z0,down:()=>E0});async function z0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function E0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var _u={};C(_u,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function U0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var xu={};C(xu,{up:()=>P0,down:()=>Q0});import{sql as E_}from"kysely";var J0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function Cm(_,x){for(let{table:u,column:N}of J0){let K=`${u}_${N}_check`,T=x.map((m)=>`'${m}'`).join(", ");await E_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await E_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${T}))`).execute(_)}}async function P0(_){await Cm(_,["github","gitlab","bitbucket"])}async function Q0(_){await E_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await Cm(_,["github","gitlab"])}var uu={};C(uu,{up:()=>X0,down:()=>Z0});import{sql as I_}from"kysely";async function X0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(I_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(I_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(I_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(I_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function Z0(_){await _.schema.dropTable("experiments").execute()}var Cu={};C(Cu,{up:()=>j0,down:()=>L0});import{sql as W0}from"kysely";async function j0(_){await W0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function L0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Nu={};C(Nu,{up:()=>Y0,down:()=>D0,ACTIONS:()=>Ku});import{sql as $_}from"kysely";var Ku=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],F0=Ku.filter((_)=>_!=="duplicate_reported");async function Y0(_){await Km(_,Ku)}async function D0(_){await $_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await Km(_,F0)}async function Km(_,x){await $_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await $_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${$_.join(x.map((u)=>$_.lit(u)))}))`.execute(_)}var Tu={};C(Tu,{up:()=>H0,down:()=>M0});async function H0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function M0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var mu={};C(mu,{up:()=>R0,down:()=>B0});async function R0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function B0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var zu={};C(zu,{up:()=>O0,down:()=>S0});import{sql as G0}from"kysely";async function O0(_){await G0`
585
599
  CREATE TABLE github_connect_flows (
586
600
  id text PRIMARY KEY,
587
601
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -591,7 +605,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
591
605
  );
592
606
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
593
607
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
594
- `.execute(_)}async function X0(_){await _.schema.dropTable("github_connect_flows").execute()}var Cu={};C(Cu,{up:()=>Z0,down:()=>W0});async function Z0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function W0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Ku={};C(Ku,{up:()=>D0,down:()=>j0});import{sql as S_}from"kysely";async function D0(_){await S_`
608
+ `.execute(_)}async function S0(_){await _.schema.dropTable("github_connect_flows").execute()}var Eu={};C(Eu,{up:()=>f0,down:()=>A0});async function f0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function A0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var $u={};C($u,{up:()=>I0,down:()=>y0});import{sql as y_}from"kysely";async function I0(_){await y_`
595
609
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
596
610
  DECLARE
597
611
  metadata_json jsonb;
@@ -642,24 +656,24 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
642
656
  AFTER INSERT OR UPDATE OF metadata ON connections
643
657
  FOR EACH ROW EXECUTE FUNCTION adopt_legacy_repository();
644
658
  UPDATE connections SET metadata = metadata WHERE slug = 'mcp-github';
645
- `.execute(_),await S_`
659
+ `.execute(_),await y_`
646
660
  UPDATE org_repo_sync s SET repository_id = r.id
647
661
  FROM repositories r WHERE s.repository_id IS NULL
648
662
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
649
663
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
650
- `.execute(_)}async function j0(_){await S_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await S_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Nu={};C(Nu,{up:()=>L0,down:()=>F0});import{sql as V}from"kysely";async function L0(_){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 F0(_){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 Tu={};C(Tu,{up:()=>Y0,down:()=>H0});import{sql as lT}from"kysely";async function Y0(_){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(lT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(lT`CURRENT_TIMESTAMP`)).execute()}async function H0(_){await _.schema.dropTable("organization_settings").execute()}var mu={};C(mu,{up:()=>M0,down:()=>R0});async function M0(_){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 zu={};C(zu,{up:()=>B0,down:()=>G0});async function B0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function G0(_){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 Eu={};C(Eu,{up:()=>O0,down:()=>S0});async function O0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function S0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var $u={};C($u,{up:()=>A0,down:()=>I0});import{sql as f0}from"kysely";async function A0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",f0`text`).execute()}async function I0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Uu={};C(Uu,{up:()=>y0,down:()=>V0});async function y0(_){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 V0(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var Ju={};C(Ju,{up:()=>w0,down:()=>k0});import{sql as E_}from"kysely";async function w0(_){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(E_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(E_`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(E_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(E_`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(E_`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 k0(_){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 Pu={};C(Pu,{up:()=>v0,down:()=>p0});import{sql as n0}from"kysely";async function v0(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function p0(_){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(n0`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 Qu={};C(Qu,{up:()=>g0,down:()=>q0});import{sql as f_}from"kysely";async function g0(_){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(f_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(f_`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(f_`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 f_`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 q0(_){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 Xu={};C(Xu,{up:()=>i0,down:()=>c0});async function i0(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function c0(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Zu={};C(Zu,{up:()=>h0,down:()=>t0});import{sql as A_}from"kysely";async function h0(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await A_`
664
+ `.execute(_)}async function y0(_){await y_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await y_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Uu={};C(Uu,{up:()=>V0,down:()=>w0});import{sql as V}from"kysely";async function V0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function w0(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var Ju={};C(Ju,{up:()=>k0,down:()=>n0});import{sql as Nm}from"kysely";async function k0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).execute()}async function n0(_){await _.schema.dropTable("organization_settings").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0});async function v0(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function p0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Qu={};C(Qu,{up:()=>g0,down:()=>q0});async function g0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function q0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Xu={};C(Xu,{up:()=>i0,down:()=>c0});async function i0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function c0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as h0}from"kysely";async function t0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",h0`text`).execute()}async function o0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Wu={};C(Wu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function r0(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var ju={};C(ju,{up:()=>l0,down:()=>e0});import{sql as U_}from"kysely";async function l0(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function e0(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var Lu={};C(Lu,{up:()=>b0,down:()=>s0});import{sql as d0}from"kysely";async function b0(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function s0(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(d0`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Fu={};C(Fu,{up:()=>_$,down:()=>x$});import{sql as V_}from"kysely";async function _$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await V_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function x$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var Yu={};C(Yu,{up:()=>u$,down:()=>C$});async function u$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function C$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Du={};C(Du,{up:()=>K$,down:()=>N$});import{sql as w_}from"kysely";async function K$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await w_`
651
665
  UPDATE gateways
652
666
  SET tool_selection_mode = CASE
653
667
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
654
668
  ELSE 'inclusion'
655
669
  END
656
- `.execute(_),await A_`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 t0(_){await A_`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 A_`
670
+ `.execute(_),await w_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function N$(_){await w_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await w_`
657
671
  UPDATE gateways
658
672
  SET tool_selection_strategy = CASE
659
673
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
660
674
  ELSE NULL
661
675
  END
662
- `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Wu={};C(Wu,{up:()=>o0,down:()=>a0});async function o0(_){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 a0(_){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 Du={};C(Du,{up:()=>r0,down:()=>l0});async function r0(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function l0(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var ju={};C(ju,{up:()=>e0,down:()=>d0});async function e0(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function d0(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Lu={};C(Lu,{up:()=>s0,down:()=>b0});async function s0(_){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 b0(_){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 Fu={};C(Fu,{up:()=>x$,down:()=>u$});import{sql as _$}from"kysely";async function x$(_){await _$`
676
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Hu={};C(Hu,{up:()=>T$,down:()=>m$});async function T$(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function m$(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var Mu={};C(Mu,{up:()=>z$,down:()=>E$});async function z$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function E$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Ru={};C(Ru,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function U$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Bu={};C(Bu,{up:()=>J$,down:()=>P$});async function J$(_){await _.schema.alterTable("downstream_tokens").addColumn("clientId","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("clientSecret","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("tokenEndpoint","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}async function P$(_){await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("tokenEndpoint").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientSecret").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientId").execute()}var Gu={};C(Gu,{up:()=>X$,down:()=>Z$});import{sql as Q$}from"kysely";async function X$(_){await Q$`
663
677
  DELETE FROM downstream_tokens
664
678
  WHERE id NOT IN (
665
679
  SELECT id FROM (
@@ -669,7 +683,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
669
683
  ) ranked
670
684
  WHERE rn = 1
671
685
  )
672
- `.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 u$(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var Yu={};C(Yu,{up:()=>C$,down:()=>K$});async function C$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function K$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Hu={};C(Hu,{up:()=>N$,down:()=>T$});import{sql as eT}from"kysely";async function N$(_){await eT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function T$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await eT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Mu={};C(Mu,{up:()=>m$,down:()=>z$});async function m$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function z$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Ru={};C(Ru,{up:()=>E$,down:()=>$$});import{sql as I_}from"kysely";async function E$(_){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(I_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(I_`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(I_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(I_`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 $$(_){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 Bu={};C(Bu,{up:()=>U$,down:()=>J$});async function U$(_){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 J$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var Gu={};C(Gu,{up:()=>P$,down:()=>Q$});async function P$(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function Q$(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var Ou={};C(Ou,{up:()=>X$,down:()=>Z$});import{sql as M}from"kysely";async function X$(_){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 Z$(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var Ou={};C(Ou,{up:()=>W$,down:()=>j$});async function W$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function j$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Su={};C(Su,{up:()=>L$,down:()=>F$});import{sql as Tm}from"kysely";async function L$(_){await Tm`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function F$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await Tm`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var fu={};C(fu,{up:()=>Y$,down:()=>D$});async function Y$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function D$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Au={};C(Au,{up:()=>H$,down:()=>M$});import{sql as k_}from"kysely";async function H$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function M$(_){await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropTable("thread_messages").execute(),await _.schema.dropTable("threads").execute()}var Iu={};C(Iu,{up:()=>R$,down:()=>B$});async function R$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function B$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var yu={};C(yu,{up:()=>G$,down:()=>O$});async function G$(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function O$(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var Vu={};C(Vu,{up:()=>S$,down:()=>f$});import{sql as M}from"kysely";async function S$(_){await M`
673
687
  INSERT INTO connections (
674
688
  id,
675
689
  organization_id,
@@ -716,7 +730,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
716
730
  created_at,
717
731
  updated_at
718
732
  FROM virtual_mcps
719
- `.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 Z$(_){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 f$(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await M`
720
734
  INSERT INTO virtual_mcps (
721
735
  id, organization_id, title, description, icon, status,
722
736
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -726,7 +740,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
726
740
  created_at, updated_at, created_by, NULL, 'inclusion'
727
741
  FROM connections
728
742
  WHERE connection_type = 'VIRTUAL'
729
- `.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 Su={};C(Su,{up:()=>W$,down:()=>D$});async function W$(_){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 D$(_){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 fu={};C(fu,{up:()=>j$,down:()=>L$});import{sql as w}from"kysely";async function j$(_){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 wu={};C(wu,{up:()=>A$,down:()=>I$});async function A$(_){await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_id").on("monitoring_logs").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function I$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var ku={};C(ku,{up:()=>y$,down:()=>V$});import{sql as w}from"kysely";async function y$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
730
744
  INSERT INTO connection_aggregations_new (
731
745
  id, parent_connection_id, child_connection_id,
732
746
  selected_tools, selected_resources, selected_prompts, created_at
@@ -735,7 +749,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
735
749
  id, parent_connection_id, child_connection_id,
736
750
  selected_tools, selected_resources, selected_prompts, created_at
737
751
  FROM connection_aggregations
738
- `.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 L$(_){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 V$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
739
753
  INSERT INTO connection_aggregations_new (
740
754
  id, parent_connection_id, child_connection_id,
741
755
  selected_tools, selected_resources, selected_prompts, created_at
@@ -744,7 +758,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
744
758
  id, parent_connection_id, child_connection_id,
745
759
  selected_tools, selected_resources, selected_prompts, created_at
746
760
  FROM connection_aggregations
747
- `.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:()=>F$,down:()=>Y$});import{sql as Au}from"kysely";async function F$(_){await Au`
761
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var vu={};C(vu,{up:()=>w$,down:()=>k$});import{sql as nu}from"kysely";async function w$(_){await nu`
748
762
  UPDATE connections
749
763
  SET connection_url = connection_url || '/management',
750
764
  tools = NULL,
@@ -752,42 +766,42 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
752
766
  WHERE connection_url LIKE '%/mcp'
753
767
  AND connection_url NOT LIKE '%/mcp/management'
754
768
  AND app_name = '@deco/management-mcp'
755
- `.execute(_),await Au`
769
+ `.execute(_),await nu`
756
770
  UPDATE connections
757
771
  SET tools = NULL,
758
772
  updated_at = CURRENT_TIMESTAMP
759
773
  WHERE app_name = '@deco/management-mcp'
760
774
  AND tools IS NOT NULL
761
- `.execute(_)}async function Y$(_){await Au`
775
+ `.execute(_)}async function k$(_){await nu`
762
776
  UPDATE connections
763
777
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
764
778
  updated_at = CURRENT_TIMESTAMP
765
779
  WHERE connection_url LIKE '%/mcp/management'
766
780
  AND app_name = '@deco/management-mcp'
767
- `.execute(_)}var Vu={};C(Vu,{up:()=>H$,down:()=>M$});import{sql as yu}from"kysely";async function H$(_){await yu`
781
+ `.execute(_)}var gu={};C(gu,{up:()=>n$,down:()=>v$});import{sql as pu}from"kysely";async function n$(_){await pu`
768
782
  UPDATE connections
769
783
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
770
784
  tools = NULL,
771
785
  updated_at = CURRENT_TIMESTAMP
772
786
  WHERE connection_url LIKE '%/mcp/management'
773
787
  AND app_name = '@deco/management-mcp'
774
- `.execute(_),await yu`
788
+ `.execute(_),await pu`
775
789
  UPDATE connections
776
790
  SET tools = NULL,
777
791
  updated_at = CURRENT_TIMESTAMP
778
792
  WHERE connection_url LIKE '%/mcp/self'
779
793
  AND app_name = '@deco/management-mcp'
780
794
  AND tools IS NOT NULL
781
- `.execute(_)}async function M$(_){await yu`
795
+ `.execute(_)}async function v$(_){await pu`
782
796
  UPDATE connections
783
797
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
784
798
  updated_at = CURRENT_TIMESTAMP
785
799
  WHERE connection_url LIKE '%/mcp/self'
786
800
  AND app_name = '@deco/management-mcp'
787
- `.execute(_)}var wu={};C(wu,{up:()=>R$,down:()=>B$});async function R$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function B$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var ku={};C(ku,{up:()=>G$,down:()=>O$});import{sql as dT}from"kysely";async function G$(_){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(dT`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(dT`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 O$(_){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 nu={};C(nu,{up:()=>S$,down:()=>f$});import{sql as $_}from"kysely";async function S$(_){await $_`
801
+ `.execute(_)}var qu={};C(qu,{up:()=>p$,down:()=>g$});async function p$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function g$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var iu={};C(iu,{up:()=>q$,down:()=>i$});import{sql as mm}from"kysely";async function q$(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function i$(_){await _.schema.dropIndex("idx_member_tags_unique").execute(),await _.schema.dropIndex("idx_member_tags_tag").execute(),await _.schema.dropIndex("idx_member_tags_member").execute(),await _.schema.dropIndex("idx_organization_tags_unique_name").execute(),await _.schema.dropIndex("idx_organization_tags_org").execute(),await _.schema.dropTable("member_tags").execute(),await _.schema.dropTable("organization_tags").execute()}var cu={};C(cu,{up:()=>c$,down:()=>h$});import{sql as J_}from"kysely";async function c$(_){await J_`
788
802
  ALTER TABLE connection_aggregations
789
803
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
790
- `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function f$(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await $_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await $_`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($_`CURRENT_TIMESTAMP`)).execute(),await $_`
804
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function h$(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await J_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await J_`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).execute(),await J_`
791
805
  INSERT INTO connection_aggregations_new (
792
806
  id, parent_connection_id, child_connection_id,
793
807
  selected_tools, selected_resources, selected_prompts, created_at
@@ -796,42 +810,42 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
796
810
  id, parent_connection_id, child_connection_id,
797
811
  selected_tools, selected_resources, selected_prompts, created_at
798
812
  FROM connection_aggregations
799
- `.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 vu={};C(vu,{up:()=>w$,down:()=>k$});import{webcrypto as bT}from"crypto";var sT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var A$=128,h,r;function I$(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*A$),bT.getRandomValues(h),r=0;else if(r+_>h.length)bT.getRandomValues(h),r=0;r+=_}function l(_=21){I$(_|=0);let x="";for(let u=r-_;u<r;u++)x+=sT[h[u]&63];return x}var y$="org-admin",V$="Organization Admin";async function w$(_){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_${l()}`,T=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:y$,name:V$,description:null,enabled_plugins:T?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function k$(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var pu={};C(pu,{up:()=>n$,down:()=>v$});async function n$(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function v$(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var gu={};C(gu,{up:()=>p$,down:()=>g$});async function p$(_){}async function g$(_){}var qu={};C(qu,{up:()=>q$,down:()=>i$});async function q$(_){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 i$(_){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 iu={};C(iu,{up:()=>c$,down:()=>h$});import{sql as _m}from"kysely";async function c$(_){await _m`
813
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var hu={};C(hu,{up:()=>l$,down:()=>e$});import{webcrypto as Em}from"crypto";var zm="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var t$=128,h,e;function o$(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*t$),Em.getRandomValues(h),e=0;else if(e+_>h.length)Em.getRandomValues(h),e=0;e+=_}function d(_=21){o$(_|=0);let x="";for(let u=e-_;u<e;u++)x+=zm[h[u]&63];return x}var a$="org-admin",r$="Organization Admin";async function l$(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),K=`proj_${d()}`,T=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:a$,name:r$,description:null,enabled_plugins:T?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function e$(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var tu={};C(tu,{up:()=>d$,down:()=>b$});async function d$(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function b$(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var ou={};C(ou,{up:()=>s$,down:()=>_U});async function s$(_){}async function _U(_){}var au={};C(au,{up:()=>xU,down:()=>uU});async function xU(_){await _.schema.createTable("project_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("project_id","text",(x)=>x.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await _.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function uU(_){await _.schema.dropIndex("project_connections_project_id_idx").execute(),await _.schema.dropIndex("project_connections_project_conn_unique").execute(),await _.schema.dropTable("project_connections").execute()}var ru={};C(ru,{up:()=>CU,down:()=>KU});import{sql as $m}from"kysely";async function CU(_){await $m`
800
814
  UPDATE connections
801
815
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
802
816
  tools = NULL,
803
817
  updated_at = CURRENT_TIMESTAMP
804
818
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
805
819
  AND app_name = 'deco-registry'
806
- `.execute(_)}async function h$(_){await _m`
820
+ `.execute(_)}async function KU(_){await $m`
807
821
  UPDATE connections
808
822
  SET connection_url = 'https://api.decocms.com/mcp/registry',
809
823
  updated_at = CURRENT_TIMESTAMP
810
824
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
811
825
  AND app_name = 'deco-registry'
812
- `.execute(_)}var cu={};C(cu,{up:()=>o$,down:()=>a$});import{sql as t$}from"kysely";async function o$(_){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(t$`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 a$(_){await _.schema.dropTable("ai_provider_keys").execute()}var hu={};C(hu,{up:()=>l$,down:()=>e$});import{sql as r$}from"kysely";async function l$(_){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(r$`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function e$(_){await _.schema.dropTable("oauth_pkce_states").execute()}var tu={};C(tu,{up:()=>d$,down:()=>s$});import{sql as p}from"kysely";async function d$(_){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 s$(_){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 ou={};C(ou,{up:()=>b$,down:()=>_U});async function b$(_){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 _U(_){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 au={};C(au,{up:()=>xU,down:()=>uU});async function xU(_){await _.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await _.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function uU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var ru={};C(ru,{up:()=>CU,down:()=>KU});import{sql as xm}from"kysely";async function CU(_){await xm`
826
+ `.execute(_)}var lu={};C(lu,{up:()=>TU,down:()=>mU});import{sql as NU}from"kysely";async function TU(_){await _.schema.createTable("ai_provider_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("label","text",(x)=>x.notNull()).addColumn("encrypted_api_key","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(NU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await _.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function mU(_){await _.schema.dropTable("ai_provider_keys").execute()}var eu={};C(eu,{up:()=>EU,down:()=>$U});import{sql as zU}from"kysely";async function EU(_){await _.schema.createTable("oauth_pkce_states").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull()).addColumn("code_verifier","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(zU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function $U(_){await _.schema.dropTable("oauth_pkce_states").execute()}var du={};C(du,{up:()=>UU,down:()=>JU});import{sql as p}from"kysely";async function UU(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function JU(_){await _.schema.dropIndex("idx_threads_trigger_status").execute(),await _.schema.alterTable("threads").dropColumn("trigger_id").execute(),await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.dropIndex("idx_automation_triggers_event").execute(),await _.schema.dropIndex("idx_automation_triggers_automation").execute(),await _.schema.dropTable("automation_triggers").execute(),await _.schema.dropIndex("idx_automations_active").execute(),await _.schema.dropIndex("idx_automations_org").execute(),await _.schema.dropTable("automations").execute()}var bu={};C(bu,{up:()=>PU,down:()=>QU});async function PU(_){await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("last_run_at","text").execute()}async function QU(_){await _.schema.alterTable("automation_triggers").dropColumn("last_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute()}var su={};C(su,{up:()=>XU,down:()=>ZU});async function XU(_){await _.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await _.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function ZU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var _C={};C(_C,{up:()=>WU,down:()=>jU});import{sql as Um}from"kysely";async function WU(_){await Um`
813
827
  UPDATE connections
814
828
  SET title = 'CMS MCP',
815
829
  tools = NULL,
816
830
  updated_at = CURRENT_TIMESTAMP
817
831
  WHERE app_name = '@deco/management-mcp'
818
- `.execute(_)}async function KU(_){await xm`
832
+ `.execute(_)}async function jU(_){await Um`
819
833
  UPDATE connections
820
834
  SET title = 'Mesh MCP',
821
835
  updated_at = CURRENT_TIMESTAMP
822
836
  WHERE app_name = '@deco/management-mcp'
823
- `.execute(_)}var lu={};C(lu,{up:()=>NU,down:()=>TU});import{sql as um}from"kysely";async function NU(_){await um`
837
+ `.execute(_)}var xC={};C(xC,{up:()=>LU,down:()=>FU});import{sql as Jm}from"kysely";async function LU(_){await Jm`
824
838
  UPDATE connections
825
839
  SET title = 'Deco CMS',
826
840
  tools = NULL,
827
841
  updated_at = CURRENT_TIMESTAMP
828
842
  WHERE app_name = '@deco/management-mcp'
829
- `.execute(_)}async function TU(_){await um`
843
+ `.execute(_)}async function FU(_){await Jm`
830
844
  UPDATE connections
831
845
  SET title = 'CMS MCP',
832
846
  updated_at = CURRENT_TIMESTAMP
833
847
  WHERE app_name = '@deco/management-mcp'
834
- `.execute(_)}var eu={};C(eu,{up:()=>mU,down:()=>zU});async function mU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function zU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var du={};C(du,{up:()=>EU,down:()=>$U});async function EU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function $U(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var bu={};C(bu,{up:()=>UU,down:()=>JU});import{sql as su}from"kysely";async function UU(_){await su`
848
+ `.execute(_)}var uC={};C(uC,{up:()=>YU,down:()=>DU});async function YU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function DU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var CC={};C(CC,{up:()=>HU,down:()=>MU});async function HU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function MU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var NC={};C(NC,{up:()=>RU,down:()=>BU});import{sql as KC}from"kysely";async function RU(_){await KC`
835
849
  UPDATE organization_settings
836
850
  SET enabled_plugins = (
837
851
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -840,7 +854,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
840
854
  )
841
855
  WHERE enabled_plugins IS NOT NULL
842
856
  AND enabled_plugins LIKE '%object-storage%'
843
- `.execute(_),await su`
857
+ `.execute(_),await KC`
844
858
  UPDATE projects
845
859
  SET enabled_plugins = (
846
860
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -849,65 +863,65 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
849
863
  )
850
864
  WHERE enabled_plugins IS NOT NULL
851
865
  AND enabled_plugins LIKE '%object-storage%'
852
- `.execute(_),await su`
866
+ `.execute(_),await KC`
853
867
  DELETE FROM project_plugin_configs
854
868
  WHERE plugin_id = 'object-storage'
855
- `.execute(_)}async function JU(_){}var _C={};C(_C,{up:()=>PU,down:()=>QU});import{sql as Cm}from"kysely";async function PU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await Cm`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function QU(_){await Cm`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var uC={};C(uC,{up:()=>XU,down:()=>ZU});import{sql as xC}from"kysely";async function XU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await xC`
869
+ `.execute(_)}async function BU(_){}var TC={};C(TC,{up:()=>GU,down:()=>OU});import{sql as Pm}from"kysely";async function GU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await Pm`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function OU(_){await Pm`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var zC={};C(zC,{up:()=>SU,down:()=>fU});import{sql as mC}from"kysely";async function SU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await mC`
856
870
  ALTER TABLE connections
857
871
  ADD CONSTRAINT chk_connections_subtype
858
872
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
859
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await xC`
873
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await mC`
860
874
  UPDATE connections
861
875
  SET subtype = 'agent'
862
876
  WHERE connection_type = 'VIRTUAL'
863
- `.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_${l()}`;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}),D=N.get(z.organization_id);if(!D)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:D,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:J,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let T=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${l()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let m=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${l()}`,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 ZU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await xC`
877
+ `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,J=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),j=N.get(z.organization_id);if(!j)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:j,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:J,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let T=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${d()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let m=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${d()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function fU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await mC`
864
878
  ALTER TABLE connections
865
879
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
866
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var CC={};C(CC,{up:()=>DU,down:()=>jU});import{sql as WU}from"kysely";async function DU(_){await WU`
880
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var EC={};C(EC,{up:()=>IU,down:()=>yU});import{sql as AU}from"kysely";async function IU(_){await AU`
867
881
  DELETE FROM connections
868
882
  WHERE connection_type = 'VIRTUAL'
869
883
  AND subtype = 'project'
870
884
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
871
- `.execute(_)}async function jU(_){}var KC={};C(KC,{up:()=>FU,down:()=>YU});import{sql as LU}from"kysely";async function FU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await LU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function YU(_){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 TC={};C(TC,{up:()=>HU,down:()=>MU});import{sql as NC}from"kysely";async function HU(_){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(NC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(NC`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(NC`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 MU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var mC={};C(mC,{up:()=>RU,down:()=>BU});async function RU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function BU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var zC={};C(zC,{up:()=>GU,down:()=>OU});async function GU(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function OU(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var $C={};C($C,{up:()=>fU,down:()=>AU});import{sql as Km}from"kysely";function EC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function SU(_){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 EC(N)}catch{return EC(_.connection_url)}if(_.title)return EC(_.title);return _.id}async function fU(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await Km`
885
+ `.execute(_)}async function yU(_){}var $C={};C($C,{up:()=>wU,down:()=>kU});import{sql as VU}from"kysely";async function wU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await VU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function kU(_){await _.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var JC={};C(JC,{up:()=>nU,down:()=>vU});import{sql as UC}from"kysely";async function nU(_){await _.schema.createTable("org_sso_config").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(x)=>x.notNull()).addColumn("client_id","text",(x)=>x.notNull()).addColumn("client_secret","text",(x)=>x.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(x)=>x.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(x)=>x.notNull()).addColumn("enforced","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await _.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await _.schema.createTable("org_sso_sessions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(x)=>x.notNull()).addColumn("expires_at","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function vU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var PC={};C(PC,{up:()=>pU,down:()=>gU});async function pU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function gU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var QC={};C(QC,{up:()=>qU,down:()=>iU});async function qU(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function iU(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var ZC={};C(ZC,{up:()=>hU,down:()=>tU});import{sql as Qm}from"kysely";function XC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function cU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return XC(N)}catch{return XC(_.connection_url)}if(_.title)return XC(_.title);return _.id}async function hU(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await Qm`
872
886
  SELECT id, app_name, connection_url, title FROM connections
873
- `.execute(_);for(let u of x.rows){let N=SU(u);await Km`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 AU(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var UC={};C(UC,{up:()=>IU,down:()=>yU});import{sql as U_}from"kysely";async function IU(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await U_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await U_`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 yU(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await U_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await U_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await U_`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var JC={};C(JC,{up:()=>VU,down:()=>wU});async function VU(_){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 wU(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var PC={};C(PC,{up:()=>kU,down:()=>nU});import{sql as y_}from"kysely";async function kU(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await y_`
887
+ `.execute(_);for(let u of x.rows){let N=cU(u);await Qm`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function tU(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var WC={};C(WC,{up:()=>oU,down:()=>aU});import{sql as P_}from"kysely";async function oU(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await P_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await P_`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function aU(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await P_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await P_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await P_`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var jC={};C(jC,{up:()=>rU,down:()=>lU});async function rU(_){await _.schema.alterTable("automations").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("idx_automations_virtual_mcp").on("automations").columns(["virtual_mcp_id"]).execute()}async function lU(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var LC={};C(LC,{up:()=>eU,down:()=>dU});import{sql as n_}from"kysely";async function eU(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await n_`
874
888
  UPDATE threads
875
889
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
876
890
  WHERE agent_ids IS NOT NULL
877
891
  AND agent_ids != '[]'
878
892
  AND agent_ids != ''
879
893
  AND (agent_ids::jsonb ->> 0) IS NOT NULL
880
- `.execute(_),await y_`
894
+ `.execute(_),await n_`
881
895
  CREATE INDEX idx_threads_virtual_mcp_id
882
896
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
883
- `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function nU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await y_`
897
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function dU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await n_`
884
898
  UPDATE threads
885
899
  SET agent_ids = CASE
886
900
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
887
901
  THEN jsonb_build_array(virtual_mcp_id)::text
888
902
  ELSE '[]'
889
903
  END
890
- `.execute(_),await y_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var QC={};C(QC,{up:()=>vU,down:()=>pU});async function vU(_){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 pU(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var XC={};C(XC,{up:()=>gU,down:()=>qU});async function gU(_){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 qU(_){await _.schema.dropTable("kv").execute()}var ZC={};C(ZC,{up:()=>iU,down:()=>cU});async function iU(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function cU(_){await _.schema.dropIndex("idx_member_user_org").execute()}var WC={};C(WC,{up:()=>hU,down:()=>tU});async function hU(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function tU(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var DC={};C(DC,{up:()=>oU,down:()=>aU});import{sql as S}from"kysely";async function oU(_){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 aU(_){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 jC={};C(jC,{up:()=>rU,down:()=>lU});import{sql as e}from"kysely";async function rU(_){await e`
904
+ `.execute(_),await n_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var FC={};C(FC,{up:()=>bU,down:()=>sU});async function bU(_){await _.schema.createTable("trigger_callback_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).execute(),await _.schema.createIndex("idx_trigger_callback_tokens_connection_org").on("trigger_callback_tokens").columns(["connection_id","organization_id"]).unique().execute()}async function sU(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var YC={};C(YC,{up:()=>_J,down:()=>xJ});async function _J(_){await _.schema.createTable("kv").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("value","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("kv_pkey",["organization_id","key"]).execute()}async function xJ(_){await _.schema.dropTable("kv").execute()}var DC={};C(DC,{up:()=>uJ,down:()=>CJ});async function uJ(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function CJ(_){await _.schema.dropIndex("idx_member_user_org").execute()}var HC={};C(HC,{up:()=>KJ,down:()=>NJ});async function KJ(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function NJ(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var MC={};C(MC,{up:()=>TJ,down:()=>mJ});import{sql as S}from"kysely";async function TJ(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await S`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await S`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function mJ(_){await _.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await _.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await _.schema.dropTable("private_registry_publish_request").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await _.schema.dropTable("private_registry_item").ifExists().execute()}var RC={};C(RC,{up:()=>zJ,down:()=>EJ});import{sql as b}from"kysely";async function zJ(_){await b`
891
905
  ALTER TABLE event_subscriptions
892
906
  ALTER COLUMN enabled DROP DEFAULT
893
- `.execute(_),await e`
907
+ `.execute(_),await b`
894
908
  ALTER TABLE event_subscriptions
895
909
  ALTER COLUMN enabled TYPE boolean
896
910
  USING enabled::boolean
897
- `.execute(_),await e`
911
+ `.execute(_),await b`
898
912
  ALTER TABLE event_subscriptions
899
913
  ALTER COLUMN enabled SET DEFAULT true
900
- `.execute(_)}async function lU(_){await e`
914
+ `.execute(_)}async function EJ(_){await b`
901
915
  ALTER TABLE event_subscriptions
902
916
  ALTER COLUMN enabled DROP DEFAULT
903
- `.execute(_),await e`
917
+ `.execute(_),await b`
904
918
  ALTER TABLE event_subscriptions
905
919
  ALTER COLUMN enabled TYPE integer
906
920
  USING enabled::integer
907
- `.execute(_),await e`
921
+ `.execute(_),await b`
908
922
  ALTER TABLE event_subscriptions
909
923
  ALTER COLUMN enabled SET DEFAULT 1
910
- `.execute(_)}var LC={};C(LC,{up:()=>eU,down:()=>dU});import{sql as Nm}from"kysely";async function eU(_){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(Nm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Nm`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function dU(_){await _.schema.dropTable("brand_context").execute()}var FC={};C(FC,{up:()=>sU,down:()=>bU});import{sql as Tm}from"kysely";async function sU(_){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(Tm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Tm`now()`)).execute()}async function bU(_){await _.schema.dropTable("organization_domains").execute()}var YC={};C(YC,{up:()=>CJ,down:()=>KJ});import{sql as mm}from"kysely";var V_=new Set(["primary","secondary","accent","background","foreground"]),_J={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function xJ(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>V_.has(K))){let K={};for(let[T,m]of Object.entries(u)){if(typeof m!=="string")continue;if(V_.has(T))K[T]=m;else x[T]=m}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,T]of Object.entries(u)){if(typeof T!=="string")continue;if(V_.has(K.toLowerCase()))N[K.toLowerCase()]=T;else x[K]=T}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,T=K.label?.toLowerCase?.(),m=K.value;if(!T||!m)continue;if(V_.has(T))u[T]=m;else x[T]=m}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function uJ(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let K=N,T=K.name??K.family??void 0,m=K.role?.toLowerCase?.()??"";if(!T)continue;let z=_J[m];if(z&&!x[z])x[z]=T;else u.push(T)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function CJ(_){let x=await mm`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,T=!1,m=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let J=xJ($);if(m=J.structured,N=!0,Object.keys(J.extra).length>0)E.extraColors=J.extra,T=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=uJ($),K=!0}catch{}if(N||K||T){let $=T?JSON.stringify(E):u.metadata;await mm`
924
+ `.execute(_)}var BC={};C(BC,{up:()=>$J,down:()=>UJ});import{sql as Xm}from"kysely";async function $J(_){await _.schema.createTable("brand_context").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("domain","text",(x)=>x.notNull()).addColumn("overview","text",(x)=>x.notNull()).addColumn("logo","text").addColumn("favicon","text").addColumn("og_image","text").addColumn("fonts","text").addColumn("colors","text").addColumn("images","text").addColumn("metadata","text").addColumn("archived_at","timestamptz").addColumn("is_default","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Xm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Xm`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function UJ(_){await _.schema.dropTable("brand_context").execute()}var GC={};C(GC,{up:()=>JJ,down:()=>PJ});import{sql as Zm}from"kysely";async function JJ(_){await _.schema.createTable("organization_domains").addColumn("organization_id","text",(x)=>x.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(x)=>x.notNull().unique()).addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Zm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Zm`now()`)).execute()}async function PJ(_){await _.schema.dropTable("organization_domains").execute()}var OC={};C(OC,{up:()=>WJ,down:()=>jJ});import{sql as Wm}from"kysely";var v_=new Set(["primary","secondary","accent","background","foreground"]),QJ={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function XJ(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>v_.has(K))){let K={};for(let[T,m]of Object.entries(u)){if(typeof m!=="string")continue;if(v_.has(T))K[T]=m;else x[T]=m}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,T]of Object.entries(u)){if(typeof T!=="string")continue;if(v_.has(K.toLowerCase()))N[K.toLowerCase()]=T;else x[K]=T}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,T=K.label?.toLowerCase?.(),m=K.value;if(!T||!m)continue;if(v_.has(T))u[T]=m;else x[T]=m}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function ZJ(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let K=N,T=K.name??K.family??void 0,m=K.role?.toLowerCase?.()??"";if(!T)continue;let z=QJ[m];if(z&&!x[z])x[z]=T;else u.push(T)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function WJ(_){let x=await Wm`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,T=!1,m=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let J=XJ($);if(m=J.structured,N=!0,Object.keys(J.extra).length>0)E.extraColors=J.extra,T=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=ZJ($),K=!0}catch{}if(N||K||T){let $=T?JSON.stringify(E):u.metadata;await Wm`
911
925
  UPDATE brand_context
912
926
  SET
913
927
  colors = ${m},
@@ -915,29 +929,29 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
915
929
  metadata = ${$},
916
930
  updated_at = NOW()
917
931
  WHERE id = ${u.id}
918
- `.execute(_)}}}async function KJ(_){}var HC={};C(HC,{up:()=>TJ,down:()=>mJ});import{sql as NJ}from"kysely";async function TJ(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(NJ`'{}'::jsonb`)).execute()}async function mJ(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var MC={};C(MC,{up:()=>zJ,down:()=>EJ});async function zJ(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function EJ(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var RC={};C(RC,{up:()=>$J,down:()=>UJ});async function $J(_){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 UJ(_){await _.schema.dropTable("sandbox_runner_state").execute()}var BC={};C(BC,{up:()=>JJ,down:()=>PJ});async function JJ(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function PJ(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var GC={};C(GC,{up:()=>QJ,down:()=>XJ});async function QJ(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function XJ(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var OC={};C(OC,{up:()=>ZJ,down:()=>WJ});async function ZJ(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function WJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var SC={};C(SC,{up:()=>jJ,down:()=>LJ});import{sql as zm}from"kysely";var DJ=["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 jJ(_){let x=await zm`
932
+ `.execute(_)}}}async function jJ(_){}var SC={};C(SC,{up:()=>FJ,down:()=>YJ});import{sql as LJ}from"kysely";async function FJ(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(LJ`'{}'::jsonb`)).execute()}async function YJ(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var fC={};C(fC,{up:()=>DJ,down:()=>HJ});async function DJ(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function HJ(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var AC={};C(AC,{up:()=>MJ,down:()=>RJ});async function MJ(_){await _.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(x)=>x.notNull()).addColumn("project_ref","text",(x)=>x.notNull()).addColumn("runner_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function RJ(_){await _.schema.dropTable("sandbox_runner_state").execute()}var IC={};C(IC,{up:()=>BJ,down:()=>GJ});async function BJ(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function GJ(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var yC={};C(yC,{up:()=>OJ,down:()=>SJ});async function OJ(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function SJ(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var VC={};C(VC,{up:()=>fJ,down:()=>AJ});async function fJ(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function AJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var wC={};C(wC,{up:()=>yJ,down:()=>VJ});import{sql as jm}from"kysely";var IJ=["COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","CONNECTION_TEST","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","VIRTUAL_MCP_PLUGIN_CONFIG_GET","AUTOMATION_GET","AUTOMATION_LIST","AI_PROVIDERS_LIST","AI_PROVIDERS_LIST_MODELS","AI_PROVIDERS_ACTIVE","LIST_OBJECTS","GET_OBJECT_METADATA","GET_PRESIGNED_URL","PUT_PRESIGNED_URL","VM_START","VM_DELETE"];async function yJ(_){let x=await jm`
919
933
  SELECT id, permission FROM "organizationRole"
920
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...DJ]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await zm`
934
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...IJ]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await jm`
921
935
  UPDATE "organizationRole"
922
936
  SET permission = ${z}
923
937
  WHERE id = ${u.id}
924
- `.execute(_)}}async function LJ(_){}var fC={};C(fC,{up:()=>FJ,down:()=>YJ});async function FJ(_){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 YJ(_){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 AC={};C(AC,{up:()=>HJ,down:()=>MJ});async function HJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function MJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var IC={};C(IC,{up:()=>RJ,down:()=>BJ});import{sql as J_}from"kysely";async function RJ(_){await J_`
938
+ `.execute(_)}}async function VJ(_){}var kC={};C(kC,{up:()=>wJ,down:()=>kJ});async function wJ(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").execute()}async function kJ(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var nC={};C(nC,{up:()=>nJ,down:()=>vJ});async function nJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function vJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var vC={};C(vC,{up:()=>pJ,down:()=>gJ});import{sql as Q_}from"kysely";async function pJ(_){await Q_`
925
939
  UPDATE automations
926
940
  SET virtual_mcp_id = (agent::json ->> 'id')
927
941
  WHERE virtual_mcp_id IS NULL
928
- `.execute(_),await J_`
942
+ `.execute(_),await Q_`
929
943
  ALTER TABLE automations
930
944
  ALTER COLUMN virtual_mcp_id SET NOT NULL
931
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function BJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await J_`
945
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function gJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
932
946
  UPDATE automations
933
947
  SET agent = json_build_object('id', virtual_mcp_id)::text
934
- `.execute(_),await J_`
948
+ `.execute(_),await Q_`
935
949
  ALTER TABLE automations
936
950
  ALTER COLUMN agent SET NOT NULL
937
- `.execute(_),await J_`
951
+ `.execute(_),await Q_`
938
952
  ALTER TABLE automations
939
953
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
940
- `.execute(_)}var VC={};C(VC,{up:()=>fJ,reshapeSimpleMode:()=>Em,inferAutomationTier:()=>$m,down:()=>AJ,__testing:()=>SJ});var GJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},OJ=["fast","smart","thinking","image","web_research"];function yC(_){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 OJ.some((N)=>(N in u))}function Em(_){if(yC(_))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 GJ;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 $m(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Um(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var SJ={isAlreadyReshapedSimpleMode:yC,isAlreadyReshapedAutomationModels:Um};async function fJ(_){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(yC(K))continue;let T=Em(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(T)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(Um(K))continue;let T=$m(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:T})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${T}"`)}}async function AJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var wC={};C(wC,{up:()=>IJ,down:()=>yJ});import{sql as n}from"kysely";async function IJ(_){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 gC={};C(gC,{up:()=>hJ,reshapeSimpleMode:()=>Lm,inferAutomationTier:()=>Fm,down:()=>tJ,__testing:()=>cJ});var qJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},iJ=["fast","smart","thinking","image","web_research"];function pC(_){if(!_||typeof _!=="object")return!1;let x=_;if(!("tiers"in x))return!1;let u=x.tiers;if(!u||typeof u!=="object")return!1;return iJ.some((N)=>(N in u))}function Lm(_){if(pC(_))return _;let x=_,u=x?.enabled===!0,N=(K)=>K&&K.keyId&&K.modelId?{keyId:K.keyId,modelId:K.modelId,title:K.title}:null;if(!u)return qJ;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function Fm(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Ym(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var cJ={isAlreadyReshapedSimpleMode:pC,isAlreadyReshapedAutomationModels:Ym};async function hJ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let K=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(pC(K))continue;let T=Lm(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(T)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(Ym(K))continue;let T=Fm(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:T})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${T}"`)}}async function tJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var qC={};C(qC,{up:()=>oJ,down:()=>aJ});import{sql as n}from"kysely";async function oJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await n`
941
955
  ALTER TABLE automations
942
956
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
943
957
  `.execute(_),await n`
@@ -959,47 +973,47 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
959
973
  AND tool_input IS NOT NULL
960
974
  )
961
975
  )
962
- `.execute(_)}async function yJ(_){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 aJ(_){await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await n`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await n`
963
977
  ALTER TABLE automations
964
978
  ALTER COLUMN virtual_mcp_id SET NOT NULL
965
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var kC={};C(kC,{up:()=>wJ,down:()=>kJ});import{sql as Jm}from"kysely";var VJ=new Set(["host","docker","agent-sandbox"]);async function wJ(_){let x=await Jm`
979
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var iC={};C(iC,{up:()=>lJ,down:()=>eJ});import{sql as Dm}from"kysely";var rJ=new Set(["host","docker","agent-sandbox"]);async function lJ(_){let x=await Dm`
966
980
  SELECT id, metadata FROM "connections"
967
981
  WHERE connection_type = 'VIRTUAL'
968
982
  AND metadata IS NOT NULL
969
983
  AND metadata LIKE '%vmMap%'
970
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[D,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}let y=X.runnerKind;if(y!==void 0&&!VJ.has(y)){T=!0;continue}J[D]=X}if(Object.keys(J).length>0)m[E]=J;else T=!0}if(!T)continue;N.vmMap=m;let z=JSON.stringify(N);await Jm`
984
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}let y=X.runnerKind;if(y!==void 0&&!rJ.has(y)){T=!0;continue}J[j]=X}if(Object.keys(J).length>0)m[E]=J;else T=!0}if(!T)continue;N.vmMap=m;let z=JSON.stringify(N);await Dm`
971
985
  UPDATE "connections"
972
986
  SET metadata = ${z}
973
987
  WHERE id = ${u.id}
974
- `.execute(_)}}async function kJ(_){}var nC={};C(nC,{up:()=>nJ,down:()=>vJ});import{sql as P_}from"kysely";async function nJ(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(P_`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(P_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(P_`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 P_`
988
+ `.execute(_)}}async function eJ(_){}var cC={};C(cC,{up:()=>dJ,down:()=>bJ});import{sql as X_}from"kysely";async function dJ(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(X_`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(X_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(X_`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await X_`
975
989
  CREATE INDEX async_research_jobs_active_idx
976
990
  ON async_research_jobs (status, last_polled_at)
977
991
  WHERE status IN ('pending', 'polling')
978
- `.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await P_`
992
+ `.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await X_`
979
993
  ALTER TABLE async_research_jobs
980
994
  ADD CONSTRAINT chk_async_research_jobs_status
981
995
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
982
- `.execute(_)}async function vJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var vC={};C(vC,{up:()=>pJ,down:()=>gJ});async function pJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function gJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var pC={};C(pC,{up:()=>qJ,down:()=>iJ});import{sql as d}from"kysely";async function qJ(_){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(d`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).execute(),await d`
996
+ `.execute(_)}async function bJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var hC={};C(hC,{up:()=>sJ,down:()=>_P});async function sJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function _P(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var tC={};C(tC,{up:()=>xP,down:()=>uP});import{sql as s}from"kysely";async function xP(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await s`
983
997
  ALTER TABLE secrets
984
998
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
985
- `.execute(_),await d`
999
+ `.execute(_),await s`
986
1000
  ALTER TABLE secrets
987
1001
  ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
988
1002
  (scope = 'user' AND user_id IS NOT NULL)
989
1003
  OR (scope = 'organization' AND user_id IS NULL)
990
1004
  )
991
- `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await d`
1005
+ `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await s`
992
1006
  CREATE UNIQUE INDEX idx_secrets_user_name
993
1007
  ON secrets (organization_id, user_id, lower(name))
994
1008
  WHERE scope = 'user'
995
- `.execute(_),await d`
1009
+ `.execute(_),await s`
996
1010
  CREATE UNIQUE INDEX idx_secrets_org_name
997
1011
  ON secrets (organization_id, lower(name))
998
1012
  WHERE scope = 'organization'
999
- `.execute(_)}async function iJ(_){await _.schema.dropTable("secrets").execute()}var gC={};C(gC,{up:()=>cJ,down:()=>hJ});async function cJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function hJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var qC={};C(qC,{up:()=>oJ,down:()=>aJ});import{sql as tJ}from"kysely";async function oJ(_){await tJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function aJ(_){}var iC={};C(iC,{up:()=>rJ,down:()=>lJ});import{sql as w_}from"kysely";async function rJ(_){await w_`
1013
+ `.execute(_)}async function uP(_){await _.schema.dropTable("secrets").execute()}var oC={};C(oC,{up:()=>CP,down:()=>KP});async function CP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function KP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var aC={};C(aC,{up:()=>TP,down:()=>mP});import{sql as NP}from"kysely";async function TP(_){await NP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function mP(_){}var rC={};C(rC,{up:()=>zP,down:()=>EP});import{sql as p_}from"kysely";async function zP(_){await p_`
1000
1014
  ALTER TABLE sandbox_runner_state
1001
1015
  RENAME COLUMN runner_kind TO sandbox_provider_kind
1002
- `.execute(_),await w_`
1016
+ `.execute(_),await p_`
1003
1017
  DO $$ BEGIN
1004
1018
  UPDATE virtualmcps v
1005
1019
  SET metadata = jsonb_set(
@@ -1034,10 +1048,10 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1034
1048
  EXCEPTION WHEN undefined_table THEN
1035
1049
  NULL;
1036
1050
  END; $$
1037
- `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function lJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await w_`
1051
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function EP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await p_`
1038
1052
  ALTER TABLE sandbox_runner_state
1039
1053
  RENAME COLUMN sandbox_provider_kind TO runner_kind
1040
- `.execute(_),await w_`
1054
+ `.execute(_),await p_`
1041
1055
  DO $$ BEGIN
1042
1056
  UPDATE virtualmcps v
1043
1057
  SET metadata = jsonb_set(
@@ -1072,7 +1086,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1072
1086
  EXCEPTION WHEN undefined_table THEN
1073
1087
  NULL;
1074
1088
  END; $$
1075
- `.execute(_)}var cC={};C(cC,{up:()=>eJ,down:()=>dJ});import{sql as Pm}from"kysely";async function eJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await Pm`
1089
+ `.execute(_)}var lC={};C(lC,{up:()=>$P,down:()=>UP});import{sql as Hm}from"kysely";async function $P(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await Hm`
1076
1090
  DO $$ BEGIN
1077
1091
  UPDATE virtualmcps v
1078
1092
  SET metadata = jsonb_set(
@@ -1111,7 +1125,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1111
1125
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
1112
1126
  NULL;
1113
1127
  END; $$
1114
- `.execute(_)}async function dJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await Pm`
1128
+ `.execute(_)}async function UP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await Hm`
1115
1129
  DO $$ BEGIN
1116
1130
  UPDATE virtualmcps v
1117
1131
  SET metadata = jsonb_set(
@@ -1144,7 +1158,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1144
1158
  EXCEPTION WHEN undefined_table THEN
1145
1159
  NULL;
1146
1160
  END; $$
1147
- `.execute(_)}var hC={};C(hC,{up:()=>sJ,down:()=>bJ});import{sql as Qm}from"kysely";async function sJ(_){await Qm`
1161
+ `.execute(_)}var eC={};C(eC,{up:()=>JP,down:()=>PP});import{sql as Mm}from"kysely";async function JP(_){await Mm`
1148
1162
  UPDATE connections c
1149
1163
  SET metadata = (
1150
1164
  jsonb_set(
@@ -1188,7 +1202,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1188
1202
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
1189
1203
  WHERE entry ? 'vmId'
1190
1204
  );
1191
- `.execute(_),await Qm`
1205
+ `.execute(_),await Mm`
1192
1206
  UPDATE connections c
1193
1207
  SET metadata = (
1194
1208
  jsonb_set(
@@ -1242,14 +1256,14 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1242
1256
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1243
1257
  WHERE inner_entry ? 'runnerKind'
1244
1258
  );
1245
- `.execute(_)}async function bJ(_){}var tC={};C(tC,{up:()=>xP,down:()=>uP});import{sql as _P}from"kysely";async function xP(_){await _P`
1259
+ `.execute(_)}async function PP(_){}var dC={};C(dC,{up:()=>XP,down:()=>ZP});import{sql as QP}from"kysely";async function XP(_){await QP`
1246
1260
  DELETE FROM ai_provider_keys
1247
1261
  WHERE provider_id IN ('claude-code', 'codex')
1248
- `.execute(_)}async function uP(_){}var oC={};C(oC,{up:()=>CP,down:()=>KP});import{sql as k_}from"kysely";async function CP(_){await k_`
1262
+ `.execute(_)}async function ZP(_){}var bC={};C(bC,{up:()=>WP,down:()=>jP});import{sql as g_}from"kysely";async function WP(_){await g_`
1249
1263
  UPDATE sandbox_runner_state
1250
1264
  SET sandbox_provider_kind = 'desktop'
1251
1265
  WHERE sandbox_provider_kind = 'remote-user'
1252
- `.execute(_),await k_`
1266
+ `.execute(_),await g_`
1253
1267
  UPDATE connections c
1254
1268
  SET metadata = (
1255
1269
  jsonb_set(
@@ -1292,7 +1306,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1292
1306
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1293
1307
  WHERE kind_key = 'remote-user'
1294
1308
  );
1295
- `.execute(_),await k_`
1309
+ `.execute(_),await g_`
1296
1310
  UPDATE connections c
1297
1311
  SET metadata = (
1298
1312
  jsonb_set(
@@ -1339,17 +1353,17 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1339
1353
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1340
1354
  WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
1341
1355
  );
1342
- `.execute(_),await k_`
1356
+ `.execute(_),await g_`
1343
1357
  UPDATE threads
1344
1358
  SET sandbox_provider_kind = 'desktop'
1345
1359
  WHERE sandbox_provider_kind = 'remote-user'
1346
- `.execute(_)}async function KP(_){}var aC={};C(aC,{up:()=>NP,down:()=>TP});import{sql as Q_}from"kysely";async function NP(_){await Q_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Q_`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 TP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await Q_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await Q_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Q_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var rC={};C(rC,{up:()=>mP,down:()=>zP});import{sql as Xm}from"kysely";async function mP(_){await Xm`
1360
+ `.execute(_)}async function jP(_){}var sC={};C(sC,{up:()=>LP,down:()=>FP});import{sql as Z_}from"kysely";async function LP(_){await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function FP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await Z_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var _K={};C(_K,{up:()=>YP,down:()=>DP});import{sql as Rm}from"kysely";async function YP(_){await Rm`
1347
1361
  ALTER TABLE organization_domains
1348
1362
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
1349
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function zP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await Xm`
1363
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function DP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await Rm`
1350
1364
  ALTER TABLE organization_domains
1351
1365
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
1352
- `.execute(_)}var lC={};C(lC,{up:()=>EP,down:()=>$P});import{sql as n_}from"kysely";async function EP(_){await n_`
1366
+ `.execute(_)}var xK={};C(xK,{up:()=>HP,down:()=>MP});import{sql as q_}from"kysely";async function HP(_){await q_`
1353
1367
  UPDATE sandbox_runner_state
1354
1368
  SET sandbox_provider_kind = CASE sandbox_provider_kind
1355
1369
  WHEN 'docker' THEN 'local-docker'
@@ -1359,7 +1373,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1359
1373
  ELSE sandbox_provider_kind
1360
1374
  END
1361
1375
  WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
1362
- `.execute(_),await n_`
1376
+ `.execute(_),await q_`
1363
1377
  UPDATE connections c
1364
1378
  SET metadata = (
1365
1379
  (c.metadata::jsonb - 'vmMap')
@@ -1368,7 +1382,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1368
1382
  WHERE c.connection_type = 'VIRTUAL'
1369
1383
  AND c.metadata IS NOT NULL
1370
1384
  AND c.metadata::jsonb ? 'vmMap'
1371
- `.execute(_),await n_`
1385
+ `.execute(_),await q_`
1372
1386
  UPDATE connections c
1373
1387
  SET metadata = (
1374
1388
  jsonb_set(
@@ -1429,7 +1443,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1429
1443
  WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
1430
1444
  OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
1431
1445
  );
1432
- `.execute(_),await n_`
1446
+ `.execute(_),await q_`
1433
1447
  UPDATE connections c
1434
1448
  SET metadata = REPLACE(
1435
1449
  REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
@@ -1438,19 +1452,19 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1438
1452
  WHERE c.connection_type = 'VIRTUAL'
1439
1453
  AND c.metadata IS NOT NULL
1440
1454
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
1441
- `.execute(_)}async function $P(_){}var eC={};C(eC,{up:()=>JP,down:()=>PP});import{sql as Zm}from"kysely";var UP=["GLOBAL_SEARCH"];async function JP(_){let x=await Zm`
1455
+ `.execute(_)}async function MP(_){}var uK={};C(uK,{up:()=>BP,down:()=>GP});import{sql as Bm}from"kysely";var RP=["GLOBAL_SEARCH"];async function BP(_){let x=await Bm`
1442
1456
  SELECT id, permission FROM "organizationRole"
1443
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...UP]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await Zm`
1457
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...RP]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await Bm`
1444
1458
  UPDATE "organizationRole"
1445
1459
  SET permission = ${z}
1446
1460
  WHERE id = ${u.id}
1447
- `.execute(_)}}async function PP(_){}var sC={};C(sC,{up:()=>QP,down:()=>XP});import{sql as dC}from"kysely";async function QP(_){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(dC`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(dC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await dC`
1461
+ `.execute(_)}}async function GP(_){}var KK={};C(KK,{up:()=>OP,down:()=>SP});import{sql as CK}from"kysely";async function OP(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(CK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(CK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await CK`
1448
1462
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
1449
1463
  ON org_file_configs (organization_id, lower(name))
1450
- `.execute(_)}async function XP(_){await _.schema.dropTable("org_file_configs").execute()}var bC={};C(bC,{up:()=>ZP,down:()=>WP});import{sql as v}from"kysely";async function ZP(_){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 SP(_){await _.schema.dropTable("org_file_configs").execute()}var NK={};C(NK,{up:()=>fP,down:()=>AP});import{sql as v}from"kysely";async function fP(_){await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await v`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await v`
1451
1465
  ALTER TABLE automations
1452
1466
  ALTER COLUMN virtual_mcp_id SET NOT NULL
1453
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function WP(_){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 AP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await v`
1454
1468
  ALTER TABLE automations
1455
1469
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
1456
1470
  `.execute(_),await v`
@@ -1472,25 +1486,25 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1472
1486
  AND tool_input IS NOT NULL
1473
1487
  )
1474
1488
  )
1475
- `.execute(_)}var _K={};C(_K,{up:()=>DP,down:()=>jP});async function DP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function jP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var uK={};C(uK,{up:()=>LP,down:()=>FP});import{sql as xK}from"kysely";var v_="local-docker";async function LP(_){await xK`delete from sandbox_runner_state where sandbox_provider_kind = ${v_}`.execute(_);let x=await xK`
1489
+ `.execute(_)}var TK={};C(TK,{up:()=>IP,down:()=>yP});async function IP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function yP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var zK={};C(zK,{up:()=>VP,down:()=>wP});import{sql as mK}from"kysely";var i_="local-docker";async function VP(_){await mK`delete from sandbox_runner_state where sandbox_provider_kind = ${i_}`.execute(_);let x=await mK`
1476
1490
  SELECT id, metadata FROM "connections"
1477
1491
  WHERE connection_type = 'VIRTUAL'
1478
1492
  AND metadata IS NOT NULL
1479
- AND metadata LIKE ${"%"+v_+"%"}
1480
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[D,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}if(v_ in X){T=!0;let y={...X};if(delete y[v_],Object.keys(y).length>0)J[D]=y}else J[D]=X}if(Object.keys(J).length>0)m[E]=J;else T=!0}if(!T)continue;N.sandboxMap=m;let z=JSON.stringify(N);await xK`
1493
+ AND metadata LIKE ${"%"+i_+"%"}
1494
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}if(i_ in X){T=!0;let y={...X};if(delete y[i_],Object.keys(y).length>0)J[j]=y}else J[j]=X}if(Object.keys(J).length>0)m[E]=J;else T=!0}if(!T)continue;N.sandboxMap=m;let z=JSON.stringify(N);await mK`
1481
1495
  UPDATE "connections"
1482
1496
  SET metadata = ${z}
1483
1497
  WHERE id = ${u.id}
1484
- `.execute(_)}}async function FP(_){}var CK={};C(CK,{up:()=>YP,down:()=>HP});import{sql as p_}from"kysely";async function YP(_){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 p_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await p_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await p_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await p_`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 HP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var KK={};C(KK,{up:()=>MP,down:()=>RP});async function MP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function RP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var NK={};C(NK,{up:()=>BP,down:()=>GP});async function BP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function GP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var TK={};C(TK,{up:()=>OP,down:()=>SP});async function OP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function SP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var mK={};C(mK,{up:()=>fP,down:()=>AP});async function fP(_){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 AP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var zK={};C(zK,{up:()=>IP,down:()=>yP});async function IP(_){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 yP(_){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 $K={};C($K,{up:()=>wP,down:()=>kP});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function s(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function EK(_,x,u){if(!s(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function g_(_){if(!s(_))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(!s(_.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 VP(_,x,u){if(!s(_))return null;let N=!1,K={};for(let[T,m]of Object.entries(_)){if(!s(m)){K[T]=m;continue}let z={};for(let[E,$]of Object.entries(m)){if(!s($)){z[E]=$;continue}let J={};for(let[D,X]of Object.entries($)){if(D===x){if(N=!0,!(u in $))J[u]=EK(X,x,u);else if(!g_($[u])&&g_(X))J[u]=EK(X,x,u);continue}let y=EK(X,x,u);if(y!==X)N=!0;if(D===u&&D in J&&g_(J[D])&&!g_(y))continue;J[D]=y}z[E]=J}K[T]=z}return{sandboxMap:K,changed:N}}async function Wm(_,x,u){let N=await k`
1498
+ `.execute(_)}}async function wP(_){}var EK={};C(EK,{up:()=>kP,down:()=>nP});import{sql as c_}from"kysely";async function kP(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await c_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await c_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await c_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await c_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function nP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var $K={};C($K,{up:()=>vP,down:()=>pP});async function vP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function pP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var UK={};C(UK,{up:()=>gP,down:()=>qP});async function gP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function qP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var JK={};C(JK,{up:()=>iP,down:()=>cP});async function iP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function cP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var PK={};C(PK,{up:()=>hP,down:()=>tP});async function hP(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function tP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var QK={};C(QK,{up:()=>oP,down:()=>aP});async function oP(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function aP(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var ZK={};C(ZK,{up:()=>lP,down:()=>eP});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function XK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function h_(_){if(!__(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function rP(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[T,m]of Object.entries(_)){if(!__(m)){K[T]=m;continue}let z={};for(let[E,$]of Object.entries(m)){if(!__($)){z[E]=$;continue}let J={};for(let[j,X]of Object.entries($)){if(j===x){if(N=!0,!(u in $))J[u]=XK(X,x,u);else if(!h_($[u])&&h_(X))J[u]=XK(X,x,u);continue}let y=XK(X,x,u);if(y!==X)N=!0;if(j===u&&j in J&&h_(J[j])&&!h_(y))continue;J[j]=y}z[E]=J}K[T]=z}return{sandboxMap:K,changed:N}}async function Gm(_,x,u){let N=await k`
1485
1499
  SELECT id, metadata FROM connections
1486
1500
  WHERE connection_type = 'VIRTUAL'
1487
1501
  AND metadata IS NOT NULL
1488
1502
  AND metadata LIKE ${"%"+x+"%"}
1489
- `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)}catch{continue}let m=VP(T.sandboxMap,x,u);if(!m?.changed)continue;T.sandboxMap=m.sandboxMap,await k`
1503
+ `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)}catch{continue}let m=rP(T.sandboxMap,x,u);if(!m?.changed)continue;T.sandboxMap=m.sandboxMap,await k`
1490
1504
  UPDATE connections
1491
1505
  SET metadata = ${JSON.stringify(T)}
1492
1506
  WHERE id = ${K.id}
1493
- `.execute(_)}}async function wP(_){await k`
1507
+ `.execute(_)}}async function lP(_){await k`
1494
1508
  UPDATE threads
1495
1509
  SET sandbox_provider_kind = ${A}
1496
1510
  WHERE sandbox_provider_kind = ${f}
@@ -1519,7 +1533,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1519
1533
  UPDATE sandbox_runner_state
1520
1534
  SET sandbox_provider_kind = ${A}
1521
1535
  WHERE sandbox_provider_kind = ${f}
1522
- `.execute(_),await Wm(_,f,A)}async function kP(_){await k`
1536
+ `.execute(_),await Gm(_,f,A)}async function eP(_){await k`
1523
1537
  UPDATE threads
1524
1538
  SET sandbox_provider_kind = ${f}
1525
1539
  WHERE sandbox_provider_kind = ${A}
@@ -1548,7 +1562,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1548
1562
  UPDATE sandbox_runner_state
1549
1563
  SET sandbox_provider_kind = ${f}
1550
1564
  WHERE sandbox_provider_kind = ${A}
1551
- `.execute(_),await Wm(_,A,f)}var UK={};C(UK,{up:()=>nP,down:()=>vP});import{sql as g}from"kysely";async function nP(_){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 Gm(_,A,f)}var WK={};C(WK,{up:()=>dP,down:()=>bP});import{sql as g}from"kysely";async function dP(_){await g`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(g`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(g`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await g`
1552
1566
  CREATE INDEX idx_org_fs_entry_parent
1553
1567
  ON org_fs_entry (organization_id, volume, parent)
1554
1568
  WHERE deleted_at IS NULL
@@ -1556,7 +1570,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1556
1570
  CREATE INDEX idx_org_fs_entry_usage
1557
1571
  ON org_fs_entry (organization_id, volume, size)
1558
1572
  WHERE kind = 'file' AND deleted_at IS NULL
1559
- `.execute(_)}async function vP(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var JK={};C(JK,{up:()=>pP,down:()=>gP});async function pP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function gP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var PK={};C(PK,{up:()=>qP,down:()=>iP});import{sql as Dm}from"kysely";async function qP(_){await Dm`
1573
+ `.execute(_)}async function bP(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var jK={};C(jK,{up:()=>sP,down:()=>_Q});async function sP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function _Q(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var LK={};C(LK,{up:()=>xQ,down:()=>uQ});import{sql as Om}from"kysely";async function xQ(_){await Om`
1560
1574
  INSERT INTO "organization" (id, name, slug, "createdAt")
1561
1575
  SELECT
1562
1576
  'org_orgfs_public_skills',
@@ -1570,13 +1584,13 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1570
1584
  END,
1571
1585
  now()
1572
1586
  ON CONFLICT (id) DO NOTHING
1573
- `.execute(_)}async function iP(_){await Dm`
1587
+ `.execute(_)}async function uQ(_){await Om`
1574
1588
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
1575
- `.execute(_)}var QK={};C(QK,{up:()=>cP,down:()=>hP});async function cP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function hP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var XK={};C(XK,{up:()=>tP,down:()=>oP});import{sql as jm}from"kysely";async function tP(_){await jm`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function oP(_){await jm`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var ZK={};C(ZK,{up:()=>rP,down:()=>lP});import{sql as aP}from"kysely";async function rP(_){await aP`
1589
+ `.execute(_)}var FK={};C(FK,{up:()=>CQ,down:()=>KQ});async function CQ(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function KQ(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var YK={};C(YK,{up:()=>NQ,down:()=>TQ});import{sql as Sm}from"kysely";async function NQ(_){await Sm`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function TQ(_){await Sm`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var DK={};C(DK,{up:()=>zQ,down:()=>EQ});import{sql as mQ}from"kysely";async function zQ(_){await mQ`
1576
1590
  UPDATE downstream_tokens
1577
1591
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1578
1592
  WHERE "expiresAt" IS NULL
1579
- `.execute(_)}async function lP(_){}var WK={};C(WK,{up:()=>eP,down:()=>dP});async function eP(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function dP(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var DK={};C(DK,{up:()=>sP,down:()=>bP});async function sP(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function bP(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var jK={};C(jK,{up:()=>_Q,down:()=>xQ});async function _Q(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function xQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var LK={};C(LK,{up:()=>uQ,down:()=>CQ});async function uQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function CQ(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var FK={};C(FK,{up:()=>KQ,down:()=>NQ});async function KQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function NQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var YK={};C(YK,{up:()=>TQ,down:()=>mQ});import{sql as Lm}from"kysely";async function TQ(_){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(Lm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Lm`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 HK={};C(HK,{up:()=>zQ,down:()=>EQ});async function zQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function EQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var MK={};C(MK,{up:()=>$Q,down:()=>UQ});import{sql as R}from"kysely";async function $Q(_){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 EQ(_){}var HK={};C(HK,{up:()=>$Q,down:()=>UQ});async function $Q(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function UQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var MK={};C(MK,{up:()=>JQ,down:()=>PQ});async function JQ(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function PQ(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var RK={};C(RK,{up:()=>QQ,down:()=>XQ});async function QQ(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function XQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var BK={};C(BK,{up:()=>ZQ,down:()=>WQ});async function ZQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function WQ(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var GK={};C(GK,{up:()=>jQ,down:()=>LQ});async function jQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function LQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var OK={};C(OK,{up:()=>FQ,down:()=>YQ});import{sql as fm}from"kysely";async function FQ(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(fm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(fm`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function YQ(_){await _.schema.dropTable("org_sites").execute()}var SK={};C(SK,{up:()=>DQ,down:()=>HQ});async function DQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function HQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var fK={};C(fK,{up:()=>MQ,down:()=>RQ});import{sql as R}from"kysely";async function MQ(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await R`
1580
1594
  UPDATE organization_domains
1581
1595
  SET
1582
1596
  id = gen_random_uuid()::text,
@@ -1585,18 +1599,18 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1585
1599
  verification_method = 'email',
1586
1600
  verified_at = created_at
1587
1601
  WHERE id IS NULL
1588
- `.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 UQ(_){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 RQ(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await R`
1589
1603
  UPDATE organization_domains
1590
1604
  SET auto_join_enabled = (join_mode = 'auto')
1591
- `.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 RK={};C(RK,{up:()=>JQ,down:()=>PQ});import{sql as q_}from"kysely";async function JQ(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(q_`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(q_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q_`now()`)).execute(),await q_`
1605
+ `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var AK={};C(AK,{up:()=>BQ,down:()=>GQ});import{sql as t_}from"kysely";async function BQ(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(t_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(t_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t_`now()`)).execute(),await t_`
1592
1606
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1593
1607
  ON organization_join_requests (organization_id, user_id)
1594
1608
  WHERE status = 'pending'
1595
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function PQ(_){await _.schema.dropTable("organization_join_requests").execute()}var BK={};C(BK,{up:()=>QQ,down:()=>XQ});async function QQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function XQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var GK={};C(GK,{up:()=>ZQ,down:()=>WQ});async function ZQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function WQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var fK={};C(fK,{up:()=>LQ,splitWebResearchTier:()=>SK,down:()=>FQ,__testing:()=>jQ});function DQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function OK(_){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 SK(_){if(!_||OK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,T=null,m=null;if(u)if(DQ(u.modelId))m=u;else T=u;return{..._,tiers:{...K,web_search:T,deep_research:m}}}var jQ={splitWebResearchTier:SK,isAlreadySplit:OK};async function LQ(_){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(OK(N))continue;let K=SK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function FQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var AK={};C(AK,{up:()=>YQ,down:()=>HQ});import{sql as X_}from"kysely";async function YQ(_){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(X_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(X_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await X_`
1609
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function GQ(_){await _.schema.dropTable("organization_join_requests").execute()}var IK={};C(IK,{up:()=>OQ,down:()=>SQ});async function OQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function SQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var yK={};C(yK,{up:()=>fQ,down:()=>AQ});async function fQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function AQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var kK={};C(kK,{up:()=>VQ,splitWebResearchTier:()=>wK,down:()=>wQ,__testing:()=>yQ});function IQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function VK(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function wK(_){if(!_||VK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,T=null,m=null;if(u)if(IQ(u.modelId))m=u;else T=u;return{..._,tiers:{...K,web_search:T,deep_research:m}}}var yQ={splitWebResearchTier:wK,isAlreadySplit:VK};async function VQ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(VK(N))continue;let K=wK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function wQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var nK={};C(nK,{up:()=>kQ,down:()=>nQ});import{sql as W_}from"kysely";async function kQ(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await W_`
1596
1610
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1597
1611
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1598
1612
  WHERE revoked_at IS NULL
1599
- `.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(X_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(X_`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 HQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var IK={};C(IK,{up:()=>MQ,down:()=>RQ});async function MQ(_){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 yK={};C(yK,{up:()=>BQ,down:()=>GQ});import{sql as t}from"kysely";async function BQ(_){await t`
1613
+ `.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function nQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var vK={};C(vK,{up:()=>vQ,down:()=>pQ});async function vQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function pQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var pK={};C(pK,{up:()=>gQ,down:()=>qQ});import{sql as t}from"kysely";async function gQ(_){await t`
1600
1614
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1601
1615
  RETURNS jsonb AS $fn$
1602
1616
  BEGIN
@@ -1655,7 +1669,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1655
1669
  BEFORE INSERT ON connection_aggregations
1656
1670
  FOR EACH ROW
1657
1671
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1658
- `.execute(_)}async function GQ(_){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 wK={};C(wK,{up:()=>OQ,down:()=>SQ});import{sql as VK}from"kysely";async function OQ(_){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(VK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(VK`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(VK`false`)).execute()}async function SQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var kK={};C(kK,{up:()=>fQ,down:()=>AQ});async function fQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function AQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var nK={};C(nK,{up:()=>IQ,down:()=>yQ});async function IQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function yQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var vK={};C(vK,{up:()=>VQ,down:()=>wQ});async function VQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function wQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var pK={};C(pK,{up:()=>nQ,down:()=>vQ});import{sql as kQ}from"kysely";async function nQ(_){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(kQ`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 vQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var gK={};C(gK,{up:()=>pQ,down:()=>gQ});async function pQ(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(x)=>x.onDelete("cascade")).execute()}async function gQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var qK={};C(qK,{up:()=>iQ,down:()=>cQ});import{sql as qQ}from"kysely";async function iQ(_){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(qQ`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 cQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var iK={};C(iK,{up:()=>tQ,down:()=>oQ});import{sql as hQ}from"kysely";async function tQ(_){await hQ`
1672
+ `.execute(_)}async function qQ(_){await t`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await t`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await t`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var qK={};C(qK,{up:()=>iQ,down:()=>cQ});import{sql as gK}from"kysely";async function iQ(_){await _.schema.createTable("task_board_items").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("status","text",(x)=>x.notNull().defaultTo("triage")).addColumn("priority","text",(x)=>x.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(gK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(gK`now()`)).execute(),await _.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(gK`false`)).execute()}async function cQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var iK={};C(iK,{up:()=>hQ,down:()=>tQ});async function hQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function tQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var cK={};C(cK,{up:()=>oQ,down:()=>aQ});async function oQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function aQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var hK={};C(hK,{up:()=>rQ,down:()=>lQ});async function rQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function lQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var tK={};C(tK,{up:()=>dQ,down:()=>bQ});import{sql as eQ}from"kysely";async function dQ(_){await _.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(eQ`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await _.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await _.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function bQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var oK={};C(oK,{up:()=>sQ,down:()=>_X});async function sQ(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(x)=>x.onDelete("cascade")).execute()}async function _X(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var aK={};C(aK,{up:()=>uX,down:()=>CX});import{sql as xX}from"kysely";async function uX(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(xX`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await _.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function CX(_){await _.schema.dropTable("task_board_item_prs").execute()}var rK={};C(rK,{up:()=>NX,down:()=>TX});import{sql as KX}from"kysely";async function NX(_){await KX`
1659
1673
  DELETE FROM member
1660
1674
  WHERE id IN (
1661
1675
  SELECT id FROM (
@@ -1674,38 +1688,38 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1674
1688
  ) ranked
1675
1689
  WHERE ranked.rn > 1
1676
1690
  )
1677
- `.execute(_)}async function oQ(_){}var cK={};C(cK,{up:()=>aQ,down:()=>rQ});async function aQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function rQ(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var hK={};C(hK,{up:()=>lQ,down:()=>eQ});async function lQ(_){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 eQ(_){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 tK={};C(tK,{up:()=>sQ,down:()=>bQ});import{sql as dQ}from"kysely";async function sQ(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(dQ`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await _.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await _.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function bQ(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var oK={};C(oK,{up:()=>xX,down:()=>uX});import{sql as _X}from"kysely";async function xX(_){await _.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(x)=>x.notNull()).addColumn("sandbox_provider_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(_X`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 uX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var aK={};C(aK,{up:()=>CX,down:()=>KX});import{sql as i_}from"kysely";async function CX(_){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(i_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(i_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",i_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",i_`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 KX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var rK={};C(rK,{up:()=>NX,down:()=>TX});import{sql as c_}from"kysely";async function NX(_){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(c_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(c_`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(c_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await c_`
1691
+ `.execute(_)}async function TX(_){}var lK={};C(lK,{up:()=>mX,down:()=>zX});async function mX(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function zX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var eK={};C(eK,{up:()=>EX,down:()=>$X});async function EX(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function $X(_){await _.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var dK={};C(dK,{up:()=>JX,down:()=>PX});import{sql as UX}from"kysely";async function JX(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(UX`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await _.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await _.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function PX(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var bK={};C(bK,{up:()=>XX,down:()=>ZX});import{sql as QX}from"kysely";async function XX(_){await _.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(x)=>x.notNull()).addColumn("sandbox_provider_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(QX`now()`)).addPrimaryKeyConstraint("agent_sandbox_runner_state_pkey",["project_ref","sandbox_provider_kind"]).execute(),await _.schema.createIndex("agent_sandbox_runner_state_handle_idx").on("agent_sandbox_runner_state").column("handle").execute()}async function ZX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var sK={};C(sK,{up:()=>WX,down:()=>jX});import{sql as o_}from"kysely";async function WX(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",o_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",o_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function jX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var _N={};C(_N,{up:()=>LX,down:()=>FX});import{sql as a_}from"kysely";async function LX(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await a_`
1678
1692
  insert into organization_billing (organization_id, legacy)
1679
1693
  select id, true from organization
1680
1694
  on conflict (organization_id) do nothing
1681
- `.execute(_)}async function TX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var lK={};C(lK,{up:()=>mX,down:()=>zX});import{sql as Fm}from"kysely";async function mX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Fm`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(Fm`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function zX(_){await _.schema.dropTable("seat_change_log").execute()}var eK={};C(eK,{up:()=>EX,down:()=>$X});async function EX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function $X(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var dK={};C(dK,{up:()=>UX,down:()=>JX});import{sql as Ym}from"kysely";async function UX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await Ym`
1695
+ `.execute(_)}async function FX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var xN={};C(xN,{up:()=>YX,down:()=>DX});import{sql as Am}from"kysely";async function YX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Am`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Am`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function DX(_){await _.schema.dropTable("seat_change_log").execute()}var uN={};C(uN,{up:()=>HX,down:()=>MX});async function HX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function MX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var CN={};C(CN,{up:()=>RX,down:()=>BX});import{sql as Im}from"kysely";async function RX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await Im`
1682
1696
  create unique index organization_billing_stripe_subscription_id_uq
1683
1697
  on organization_billing (stripe_subscription_id)
1684
1698
  where stripe_subscription_id is not null
1685
- `.execute(_)}async function JX(_){await Ym`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var sK={};C(sK,{up:()=>PX,down:()=>QX});async function PX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function QX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var bK={};C(bK,{up:()=>XX,down:()=>ZX});import{sql as Hm}from"kysely";async function XX(_){await Hm`
1699
+ `.execute(_)}async function BX(_){await Im`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var KN={};C(KN,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function OX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var NN={};C(NN,{up:()=>SX,down:()=>fX});import{sql as ym}from"kysely";async function SX(_){await ym`
1686
1700
  create index idx_org_billing_benefits_pending
1687
1701
  on organization_billing (updated_at)
1688
1702
  where benefits_reference_id is not null
1689
- `.execute(_)}async function ZX(_){await Hm`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var _N={};C(_N,{up:()=>WX,down:()=>DX});import{sql as Mm}from"kysely";async function WX(_){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(Mm`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Mm`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 DX(_){await _.schema.dropTable("user_model_preferences").execute()}var xN={};C(xN,{up:()=>jX,down:()=>LX});async function jX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function LX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var uN={};C(uN,{up:()=>FX,down:()=>YX});async function FX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function YX(_){}var CN={};C(CN,{up:()=>HX,down:()=>MX});import{sql as Rm}from"kysely";async function HX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await Rm`
1703
+ `.execute(_)}async function fX(_){await ym`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var TN={};C(TN,{up:()=>AX,down:()=>IX});import{sql as Vm}from"kysely";async function AX(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Vm`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Vm`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function IX(_){await _.schema.dropTable("user_model_preferences").execute()}var mN={};C(mN,{up:()=>yX,down:()=>VX});async function yX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function VX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var zN={};C(zN,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function kX(_){}var EN={};C(EN,{up:()=>nX,down:()=>vX});import{sql as wm}from"kysely";async function nX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await wm`
1690
1704
  UPDATE organization_settings
1691
1705
  SET flags = jsonb_build_object('reports_only', reports_only)
1692
1706
  WHERE reports_only IS NOT NULL
1693
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function MX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await Rm`
1707
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function vX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await wm`
1694
1708
  UPDATE organization_settings
1695
1709
  SET reports_only = (flags ->> 'reports_only')::boolean
1696
1710
  WHERE flags ? 'reports_only'
1697
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var KN={};C(KN,{up:()=>BX,down:()=>GX});import{sql as RX}from"kysely";async function BX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await RX`
1711
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var $N={};C($N,{up:()=>gX,down:()=>qX});import{sql as pX}from"kysely";async function gX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await pX`
1698
1712
  update task_board_items
1699
1713
  set sort_order = -extract(epoch from created_at)
1700
- `.execute(_)}async function GX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var NN={};C(NN,{up:()=>OX,down:()=>SX,ACTIONS:()=>Bm});import{sql as h_}from"kysely";var Bm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function OX(_){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(h_`now()`)).addCheckConstraint("chk_task_board_activity_action",h_`action IN (${h_.join(Bm.map((x)=>h_.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 SX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var mN={};C(mN,{up:()=>fX,down:()=>AX,ACTIONS:()=>TN});import{sql as Z_}from"kysely";var TN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function fX(_){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(Z_`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 Gm(_,TN)}async function AX(_){await Gm(_,TN.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 Gm(_,x){await Z_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Z_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Z_.join(x.map((u)=>Z_.lit(u)))}))`.execute(_)}var EN={};C(EN,{up:()=>yX,down:()=>VX});import{sql as Om}from"kysely";function zN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function IX(_){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 zN(N)}catch{return zN(_.connection_url)}if(_.title)return zN(_.title);return _.id}async function yX(_){let x=await Om`
1714
+ `.execute(_)}async function qX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var UN={};C(UN,{up:()=>iX,down:()=>cX,ACTIONS:()=>km});import{sql as r_}from"kysely";var km=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function iX(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addCheckConstraint("chk_task_board_activity_action",r_`action IN (${r_.join(km.map((x)=>r_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function cX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var PN={};C(PN,{up:()=>hX,down:()=>tX,ACTIONS:()=>JN});import{sql as j_}from"kysely";var JN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function hX(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await nm(_,JN)}async function tX(_){await nm(_,JN.filter((x)=>x!=="tags_changed")),await _.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await _.schema.dropTable("task_board_item_tags").execute(),await _.schema.alterTable("organization_tags").dropColumn("color").execute()}async function nm(_,x){await j_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await j_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${j_.join(x.map((u)=>j_.lit(u)))}))`.execute(_)}var XN={};C(XN,{up:()=>aX,down:()=>rX});import{sql as vm}from"kysely";function QN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function oX(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return QN(N)}catch{return QN(_.connection_url)}if(_.title)return QN(_.title);return _.id}async function aX(_){let x=await vm`
1701
1715
  SELECT id, app_name, connection_url, title, slug
1702
1716
  FROM connections
1703
1717
  WHERE connection_type != 'VIRTUAL'
1704
- `.execute(_),u=0;for(let N of x.rows){let K=IX(N);if(K===N.slug)continue;await Om`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 VX(){}var $N={};C($N,{up:()=>kX,down:()=>nX});import{sql as wX}from"kysely";async function kX(_){await wX`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 nX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var JN={};C(JN,{up:()=>pX,down:()=>gX,ACTIONS:()=>UN});import{sql as t_}from"kysely";var UN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],vX=new Set(["review_requested","review_approved","review_changes_requested"]);async function pX(_){await Sm(_,UN)}async function gX(_){await Sm(_,UN.filter((x)=>!vX.has(x)))}async function Sm(_,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 PN={};C(PN,{up:()=>iX,down:()=>cX});import{sql as qX}from"kysely";async function iX(_){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(qX`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 cX(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var XN={};C(XN,{up:()=>tX,down:()=>oX,ACTIONS:()=>QN});import{sql as o_}from"kysely";var QN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],hX=new Set(["merge_conflict_resolution"]);async function tX(_){await fm(_,QN)}async function oX(_){await fm(_,QN.filter((x)=>!hX.has(x)))}async function fm(_,x){await o_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await o_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${o_.join(x.map((u)=>o_.lit(u)))}))`.execute(_)}var ZN={};C(ZN,{up:()=>aX,down:()=>rX});import{sql as W_}from"kysely";async function aX(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await W_`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 rX(_){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 W_`
1718
+ `.execute(_),u=0;for(let N of x.rows){let K=oX(N);if(K===N.slug)continue;await vm`UPDATE connections SET slug = ${K} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function rX(){}var ZN={};C(ZN,{up:()=>eX,down:()=>dX});import{sql as lX}from"kysely";async function eX(_){await lX`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(_)}async function dX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var jN={};C(jN,{up:()=>sX,down:()=>_Z,ACTIONS:()=>WN});import{sql as l_}from"kysely";var WN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],bX=new Set(["review_requested","review_approved","review_changes_requested"]);async function sX(_){await pm(_,WN)}async function _Z(_){await pm(_,WN.filter((x)=>!bX.has(x)))}async function pm(_,x){await l_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await l_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${l_.join(x.map((u)=>l_.lit(u)))}))`.execute(_)}var LN={};C(LN,{up:()=>uZ,down:()=>CZ});import{sql as xZ}from"kysely";async function uZ(_){await _.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(x)=>x.notNull()).addColumn("cycle_at","timestamptz",(x)=>x.notNull()).addColumn("token","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(xZ`now()`)).addPrimaryKeyConstraint("task_board_review_claims_pkey",["task_board_item_id","reviewer","cycle_at"]).execute(),await _.schema.createIndex("idx_task_board_review_claims_token").on("task_board_review_claims").columns(["task_board_item_id","token"]).execute()}async function CZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var YN={};C(YN,{up:()=>NZ,down:()=>TZ,ACTIONS:()=>FN});import{sql as e_}from"kysely";var FN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],KZ=new Set(["merge_conflict_resolution"]);async function NZ(_){await gm(_,FN)}async function TZ(_){await gm(_,FN.filter((x)=>!KZ.has(x)))}async function gm(_,x){await e_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await e_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${e_.join(x.map((u)=>e_.lit(u)))}))`.execute(_)}var DN={};C(DN,{up:()=>mZ,down:()=>zZ});import{sql as L_}from"kysely";async function mZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await L_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function zZ(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await L_`
1705
1719
  create index idx_org_billing_benefits_pending
1706
1720
  on organization_billing (updated_at)
1707
1721
  where benefits_reference_id is not null
1708
- `.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(W_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(W_`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(W_`now()`)).execute()}var WN={};C(WN,{up:()=>lX,down:()=>eX});import{sql as a_}from"kysely";async function lX(_){await a_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await a_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function eX(_){await a_`
1722
+ `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(L_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).execute()}var HN={};C(HN,{up:()=>EZ,down:()=>$Z});import{sql as d_}from"kysely";async function EZ(_){await d_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await d_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function $Z(_){await d_`
1709
1723
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1710
1724
  RETURNS trigger AS $fn$
1711
1725
  BEGIN
@@ -1726,40 +1740,40 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1726
1740
  RETURN NEW;
1727
1741
  END;
1728
1742
  $fn$ LANGUAGE plpgsql;
1729
- `.execute(_),await a_`
1743
+ `.execute(_),await d_`
1730
1744
  CREATE TRIGGER trg_repo_github_child_single_parent
1731
1745
  BEFORE INSERT ON connection_aggregations
1732
1746
  FOR EACH ROW
1733
1747
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1734
- `.execute(_)}var DN={};C(DN,{up:()=>dX,down:()=>sX});import{sql as Am}from"kysely";async function dX(_){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(Am`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Am`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function sX(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var jN={};C(jN,{up:()=>bX,down:()=>_Z});import{sql as Im}from"kysely";async function bX(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Im`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Im`now()`)).execute()}async function _Z(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var FN={};C(FN,{up:()=>xZ,down:()=>uZ});import{sql as LN}from"kysely";async function xZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(LN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await LN`
1748
+ `.execute(_)}var MN={};C(MN,{up:()=>UZ,down:()=>JZ});import{sql as qm}from"kysely";async function UZ(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(qm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qm`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function JZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var RN={};C(RN,{up:()=>PZ,down:()=>QZ});import{sql as im}from"kysely";async function PZ(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(im`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(im`now()`)).execute()}async function QZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var GN={};C(GN,{up:()=>XZ,down:()=>ZZ});import{sql as BN}from"kysely";async function XZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(BN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await BN`
1735
1749
  create index idx_task_quota_claims_org_period_live
1736
1750
  on task_quota_claims (organization_id, period_key)
1737
1751
  where state <> 'released'
1738
- `.execute(_)}async function uZ(_){await LN`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var YN={};C(YN,{up:()=>CZ,down:()=>KZ});async function CZ(_){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 KZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var HN={};C(HN,{up:()=>NZ,down:()=>TZ});async function NZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function TZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var MN={};C(MN,{up:()=>mZ,down:()=>zZ});import{sql as ym}from"kysely";async function mZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(ym`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(ym`monthly_task_executions > 0`)).execute()}async function zZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var RN={};C(RN,{up:()=>$Z,down:()=>UZ});import{sql as EZ}from"kysely";async function $Z(_){await EZ`
1752
+ `.execute(_)}async function ZZ(_){await BN`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var ON={};C(ON,{up:()=>WZ,down:()=>jZ});async function WZ(_){await _.schema.createTable("claude_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function jZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var SN={};C(SN,{up:()=>LZ,down:()=>FZ});async function LZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function FZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var fN={};C(fN,{up:()=>YZ,down:()=>DZ});import{sql as cm}from"kysely";async function YZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(cm`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(cm`monthly_task_executions > 0`)).execute()}async function DZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var AN={};C(AN,{up:()=>MZ,down:()=>RZ});import{sql as HZ}from"kysely";async function MZ(_){await HZ`
1739
1753
  CREATE INDEX idx_task_board_items_pending_review
1740
1754
  ON task_board_items (updated_at, id)
1741
1755
  WHERE status = 'in_review'
1742
1756
  AND assignee_id = 'super-agent'
1743
1757
  AND dismissed_at IS NULL
1744
- `.execute(_)}async function UZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var BN={};C(BN,{up:()=>JZ,down:()=>PZ});import{sql as Vm}from"kysely";async function JZ(_){await Vm`
1758
+ `.execute(_)}async function RZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var IN={};C(IN,{up:()=>BZ,down:()=>GZ});import{sql as hm}from"kysely";async function BZ(_){await hm`
1745
1759
  ALTER TABLE task_board_items
1746
1760
  ADD COLUMN last_swept_at timestamptz
1747
- `.execute(_)}async function PZ(_){await Vm`
1761
+ `.execute(_)}async function GZ(_){await hm`
1748
1762
  ALTER TABLE task_board_items
1749
1763
  DROP COLUMN last_swept_at
1750
- `.execute(_)}var GN={};C(GN,{up:()=>QZ,down:()=>XZ});import{sql as r_}from"kysely";async function QZ(_){await r_`
1764
+ `.execute(_)}var yN={};C(yN,{up:()=>OZ,down:()=>SZ});import{sql as b_}from"kysely";async function OZ(_){await b_`
1751
1765
  ALTER TABLE task_board_items
1752
1766
  ADD COLUMN retry_at timestamptz,
1753
1767
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
1754
- `.execute(_),await r_`
1768
+ `.execute(_),await b_`
1755
1769
  CREATE INDEX idx_task_board_items_retry_due
1756
1770
  ON task_board_items (retry_at)
1757
1771
  WHERE retry_at IS NOT NULL
1758
- `.execute(_)}async function XZ(_){await r_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await r_`
1772
+ `.execute(_)}async function SZ(_){await b_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await b_`
1759
1773
  ALTER TABLE task_board_items
1760
1774
  DROP COLUMN retry_at,
1761
1775
  DROP COLUMN retry_attempts
1762
- `.execute(_)}var SN={};C(SN,{up:()=>ZZ,down:()=>WZ});import{sql as ON}from"kysely";async function ZZ(_){await ON`
1776
+ `.execute(_)}var wN={};C(wN,{up:()=>fZ,down:()=>AZ});import{sql as VN}from"kysely";async function fZ(_){await VN`
1763
1777
  CREATE TABLE org_repo_sync (
1764
1778
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1765
1779
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1777,11 +1791,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1777
1791
  updated_at timestamptz NOT NULL DEFAULT now(),
1778
1792
  UNIQUE (organization_id, volume)
1779
1793
  )
1780
- `.execute(_),await ON`
1794
+ `.execute(_),await VN`
1781
1795
  CREATE INDEX idx_org_repo_sync_enabled
1782
1796
  ON org_repo_sync (organization_id)
1783
1797
  WHERE enabled
1784
- `.execute(_)}async function WZ(_){await ON`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var AN={};C(AN,{up:()=>jZ,down:()=>LZ,ACTIONS:()=>fN});import{sql as l_}from"kysely";var fN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],DZ=new Set(["merge_failed"]);async function jZ(_){await wm(_,fN)}async function LZ(_){await wm(_,fN.filter((x)=>!DZ.has(x)))}async function wm(_,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 IN={};C(IN,{up:()=>FZ,down:()=>YZ});async function FZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function YZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var yN={};C(yN,{up:()=>HZ,down:()=>MZ});import{sql as b}from"kysely";async function HZ(_){await b`
1798
+ `.execute(_)}async function AZ(_){await VN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var nN={};C(nN,{up:()=>yZ,down:()=>VZ,ACTIONS:()=>kN});import{sql as s_}from"kysely";var kN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],IZ=new Set(["merge_failed"]);async function yZ(_){await tm(_,kN)}async function VZ(_){await tm(_,kN.filter((x)=>!IZ.has(x)))}async function tm(_,x){await s_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await s_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${s_.join(x.map((u)=>s_.lit(u)))}))`.execute(_)}var vN={};C(vN,{up:()=>wZ,down:()=>kZ});async function wZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function kZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var pN={};C(pN,{up:()=>nZ,down:()=>vZ});import{sql as x_}from"kysely";async function nZ(_){await x_`
1785
1799
  CREATE TABLE org_jira_integrations (
1786
1800
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1787
1801
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1801,7 +1815,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1801
1815
  created_at timestamptz NOT NULL DEFAULT now(),
1802
1816
  updated_at timestamptz NOT NULL DEFAULT now()
1803
1817
  )
1804
- `.execute(_),await b`
1818
+ `.execute(_),await x_`
1805
1819
  CREATE TABLE task_board_item_jira_links (
1806
1820
  item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
1807
1821
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1812,7 +1826,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1812
1826
  created_at timestamptz NOT NULL DEFAULT now(),
1813
1827
  UNIQUE (organization_id, jira_issue_id)
1814
1828
  )
1815
- `.execute(_),await b`
1829
+ `.execute(_),await x_`
1816
1830
  CREATE TABLE task_board_comment_jira_links (
1817
1831
  comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
1818
1832
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1820,7 +1834,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1820
1834
  created_at timestamptz NOT NULL DEFAULT now(),
1821
1835
  UNIQUE (organization_id, jira_comment_id)
1822
1836
  )
1823
- `.execute(_)}async function MZ(_){await b`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await b`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await b`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var VN={};C(VN,{up:()=>BZ,down:()=>GZ});import{sql as RZ}from"kysely";async function BZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await RZ`
1837
+ `.execute(_)}async function vZ(_){await x_`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var gN={};C(gN,{up:()=>gZ,down:()=>qZ});import{sql as pZ}from"kysely";async function gZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await pZ`
1824
1838
  update task_board_items as t
1825
1839
  set key_seq = numbered.seq
1826
1840
  from (
@@ -1833,25 +1847,25 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1833
1847
  from task_board_items
1834
1848
  ) as numbered
1835
1849
  where t.id = numbered.id
1836
- `.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 GZ(_){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 wN={};C(wN,{up:()=>OZ,down:()=>SZ});import{sql as km}from"kysely";async function OZ(_){await km`
1850
+ `.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function qZ(_){await _.schema.dropIndex("task_board_items_org_key_seq_unique").on("task_board_items").execute(),await _.schema.alterTable("task_board_items").dropColumn("key_seq").execute()}var qN={};C(qN,{up:()=>iZ,down:()=>cZ});import{sql as om}from"kysely";async function iZ(_){await om`
1837
1851
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1838
1852
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1839
1853
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1840
- `.execute(_)}async function SZ(_){await km`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var nN={};C(nN,{up:()=>fZ,down:()=>AZ});import{sql as kN}from"kysely";async function fZ(_){await kN`
1854
+ `.execute(_)}async function cZ(_){await om`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var cN={};C(cN,{up:()=>hZ,down:()=>tZ});import{sql as iN}from"kysely";async function hZ(_){await iN`
1841
1855
  ALTER TABLE thread_message_parts
1842
1856
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1843
- `.execute(_),await kN`
1857
+ `.execute(_),await iN`
1844
1858
  ALTER TABLE thread_message_parts
1845
1859
  ALTER COLUMN persisted_at SET DEFAULT now()
1846
- `.execute(_)}async function AZ(_){await kN`
1860
+ `.execute(_)}async function tZ(_){await iN`
1847
1861
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1848
- `.execute(_)}var vN={};C(vN,{up:()=>IZ,down:()=>yZ});async function IZ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function yZ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var pN={};C(pN,{up:()=>wZ,down:()=>kZ});import{sql as VZ}from"kysely";async function wZ(_){await VZ`
1862
+ `.execute(_)}var hN={};C(hN,{up:()=>oZ,down:()=>aZ});async function oZ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function aZ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var tN={};C(tN,{up:()=>lZ,down:()=>eZ});import{sql as rZ}from"kysely";async function lZ(_){await rZ`
1849
1863
  CREATE INDEX idx_task_board_items_done_sweep
1850
1864
  ON task_board_items (updated_at)
1851
1865
  WHERE status = 'done' AND dismissed_at IS NULL
1852
- `.execute(_)}async function kZ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var gN={};C(gN,{up:()=>nZ,down:()=>vZ,TYPES:()=>nm});import{sql as q}from"kysely";var nm=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function nZ(_){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(nm.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1866
+ `.execute(_)}async function eZ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var oN={};C(oN,{up:()=>dZ,down:()=>bZ,TYPES:()=>am});import{sql as q}from"kysely";var am=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function dZ(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addCheckConstraint("notifications_type_check",q`type IN (${q.join(am.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1853
1867
  (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
1854
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function vZ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var qN={};C(qN,{up:()=>pZ,down:()=>gZ});import{sql as vm}from"kysely";async function pZ(_){await vm`
1868
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function bZ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var aN={};C(aN,{up:()=>sZ,down:()=>_6});import{sql as rm}from"kysely";async function sZ(_){await rm`
1855
1869
  UPDATE org_jira_integrations
1856
1870
  SET status_mapping = (
1857
1871
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1866,7 +1880,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1866
1880
  SELECT 1 FROM jsonb_each(status_mapping)
1867
1881
  WHERE jsonb_typeof(value) = 'array'
1868
1882
  )
1869
- `.execute(_)}async function gZ(_){await vm`
1883
+ `.execute(_)}async function _6(_){await rm`
1870
1884
  UPDATE org_jira_integrations
1871
1885
  SET status_mapping = (
1872
1886
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1881,7 +1895,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1881
1895
  SELECT 1 FROM jsonb_each(status_mapping)
1882
1896
  WHERE jsonb_typeof(value) = 'array'
1883
1897
  )
1884
- `.execute(_)}var cN={};C(cN,{up:()=>iZ,down:()=>cZ,TYPES:()=>iN});import{sql as e_}from"kysely";var iN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],qZ=new Set(["mentioned"]);async function iZ(_){await pm(_,iN)}async function cZ(_){await pm(_,iN.filter((x)=>!qZ.has(x)))}async function pm(_,x){await e_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await e_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${e_.join(x.map((u)=>e_.lit(u)))}))`.execute(_)}var tN={};C(tN,{up:()=>oZ,down:()=>aZ,ACTIONS:()=>hN});import{sql as i}from"kysely";var hZ=["bug","feature","chore","spike","security"],hN=["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"],tZ=new Set(["type_changed"]);async function oZ(_){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(hZ.map((x)=>i.lit(x)))}))`.execute(_),await gm(_,hN)}async function aZ(_){await gm(_,hN.filter((x)=>!tZ.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 gm(_,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 oN={};C(oN,{up:()=>rZ,down:()=>lZ});import{sql as W}from"kysely";var im=["bug","feature","chore","spike","security"],qm="chore";async function rZ(_){await W`UPDATE task_board_items SET type = ${W.lit(qm)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(qm)}`.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(im.map((x)=>W.lit(x)))}))`.execute(_)}async function lZ(_){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(im.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 aN={};C(aN,{up:()=>eZ,down:()=>dZ});import{sql as __}from"kysely";async function eZ(_){await __`
1898
+ `.execute(_)}var lN={};C(lN,{up:()=>u6,down:()=>C6,TYPES:()=>rN});import{sql as _x}from"kysely";var rN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],x6=new Set(["mentioned"]);async function u6(_){await lm(_,rN)}async function C6(_){await lm(_,rN.filter((x)=>!x6.has(x)))}async function lm(_,x){await _x`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await _x`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${_x.join(x.map((u)=>_x.lit(u)))}))`.execute(_)}var dN={};C(dN,{up:()=>T6,down:()=>m6,ACTIONS:()=>eN});import{sql as i}from"kysely";var K6=["bug","feature","chore","spike","security"],eN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed","type_changed"],N6=new Set(["type_changed"]);async function T6(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await i`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${i.join(K6.map((x)=>i.lit(x)))}))`.execute(_),await em(_,eN)}async function m6(_){await em(_,eN.filter((x)=>!N6.has(x))),await i`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function em(_,x){await i`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await i`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${i.join(x.map((u)=>i.lit(u)))}))`.execute(_)}var bN={};C(bN,{up:()=>z6,down:()=>E6});import{sql as W}from"kysely";var bm=["bug","feature","chore","spike","security"],dm="chore";async function z6(_){await W`UPDATE task_board_items SET type = ${W.lit(dm)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(dm)}`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${W.join(bm.map((x)=>W.lit(x)))}))`.execute(_)}async function E6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(bm.map((x)=>W.lit(x)))}))`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var sN={};C(sN,{up:()=>$6,down:()=>U6});import{sql as u_}from"kysely";async function $6(_){await u_`
1885
1899
  CREATE TABLE task_board_sprints (
1886
1900
  id text PRIMARY KEY,
1887
1901
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1896,44 +1910,44 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1896
1910
  CHECK (state IN ('active', 'future', 'closed')),
1897
1911
  UNIQUE (organization_id, jira_sprint_id)
1898
1912
  )
1899
- `.execute(_),await __`
1913
+ `.execute(_),await u_`
1900
1914
  CREATE INDEX idx_task_board_sprints_org
1901
1915
  ON task_board_sprints (organization_id, starts_at)
1902
- `.execute(_),await __`
1916
+ `.execute(_),await u_`
1903
1917
  ALTER TABLE task_board_items
1904
1918
  ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
1905
- `.execute(_),await __`
1919
+ `.execute(_),await u_`
1906
1920
  CREATE INDEX idx_task_board_items_sprint
1907
1921
  ON task_board_items (organization_id, sprint_id)
1908
1922
  WHERE sprint_id IS NOT NULL
1909
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function dZ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await __`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await __`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var rN={};C(rN,{up:()=>bZ,down:()=>_6});import{sql as sZ}from"kysely";async function bZ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function _6(_){await sZ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var lN={};C(lN,{up:()=>u6,down:()=>C6});import{sql as x6}from"kysely";async function u6(_){await x6`
1923
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function U6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await u_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await u_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var _T={};C(_T,{up:()=>P6,down:()=>Q6});import{sql as J6}from"kysely";async function P6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function Q6(_){await J6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var xT={};C(xT,{up:()=>Z6,down:()=>W6});import{sql as X6}from"kysely";async function Z6(_){await X6`
1910
1924
  UPDATE org_jira_integrations
1911
1925
  SET last_synced_at = NULL,
1912
1926
  last_sync_error = NULL
1913
1927
  WHERE last_synced_at IS NOT NULL
1914
- `.execute(_)}async function C6(){}var eN={};C(eN,{up:()=>N6,down:()=>T6});import{sql as K6}from"kysely";async function N6(_){await K6`
1928
+ `.execute(_)}async function W6(){}var uT={};C(uT,{up:()=>L6,down:()=>F6});import{sql as j6}from"kysely";async function L6(_){await j6`
1915
1929
  UPDATE org_jira_integrations
1916
1930
  SET last_synced_at = NULL,
1917
1931
  last_sync_error = NULL
1918
1932
  WHERE last_synced_at IS NOT NULL
1919
- `.execute(_)}async function T6(){}var sN={};C(sN,{up:()=>m6,down:()=>z6});import{sql as dN}from"kysely";async function m6(_){await dN`
1933
+ `.execute(_)}async function F6(){}var KT={};C(KT,{up:()=>Y6,down:()=>D6});import{sql as CT}from"kysely";async function Y6(_){await CT`
1920
1934
  ALTER TABLE org_jira_integrations
1921
1935
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1922
- `.execute(_),await dN`
1936
+ `.execute(_),await CT`
1923
1937
  UPDATE org_jira_integrations
1924
1938
  SET rescan_pending = true
1925
1939
  WHERE last_synced_at IS NULL
1926
- `.execute(_)}async function z6(_){await dN`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var bN={};C(bN,{up:()=>E6,down:()=>$6});async function E6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function $6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var _T={};C(_T,{up:()=>U6,down:()=>J6});import{sql as cm}from"kysely";async function U6(_){await cm`
1940
+ `.execute(_)}async function D6(_){await CT`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var NT={};C(NT,{up:()=>H6,down:()=>M6});async function H6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function M6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var TT={};C(TT,{up:()=>R6,down:()=>B6});import{sql as sm}from"kysely";async function R6(_){await sm`
1927
1941
  ALTER TABLE invitation
1928
1942
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1929
- `.execute(_)}async function J6(_){await cm`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var uT={};C(uT,{up:()=>P6,down:()=>Q6});import{sql as xT}from"kysely";async function P6(_){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(xT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(xT`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 xT`
1943
+ `.execute(_)}async function B6(_){await sm`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var zT={};C(zT,{up:()=>G6,down:()=>O6});import{sql as mT}from"kysely";async function G6(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(mT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(mT`now()`)).execute(),await _.schema.createIndex("task_board_column_automations_org_column_uniq").ifNotExists().on("task_board_column_automations").columns(["organization_id","column_key"]).unique().execute(),await mT`
1930
1944
  INSERT INTO task_board_column_automations
1931
1945
  (id, organization_id, column_key, prompt)
1932
1946
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1933
1947
  FROM org_jira_integrations
1934
1948
  WHERE auto_delegate = true
1935
1949
  ON CONFLICT DO NOTHING
1936
- `.execute(_)}async function Q6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var CT={};C(CT,{up:()=>X6,down:()=>Z6});import{sql as D_}from"kysely";async function X6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await D_`
1950
+ `.execute(_)}async function O6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var ET={};C(ET,{up:()=>S6,down:()=>f6});import{sql as F_}from"kysely";async function S6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await F_`
1937
1951
  UPDATE task_board_items i
1938
1952
  SET review_cycle_started_at = (
1939
1953
  SELECT max(a.occurred_at)
@@ -1943,35 +1957,35 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1943
1957
  AND a.data ->> 'to' = 'in_review'
1944
1958
  )
1945
1959
  WHERE i.status = 'in_review'
1946
- `.execute(_),await D_`
1960
+ `.execute(_),await F_`
1947
1961
  CREATE INDEX idx_task_board_items_review_cycle
1948
1962
  ON task_board_items (updated_at, id)
1949
1963
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1950
1964
  AND assignee_id = 'super-agent'
1951
1965
  AND dismissed_at IS NULL
1952
- `.execute(_),await D_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function Z6(_){await D_`
1966
+ `.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function f6(_){await F_`
1953
1967
  CREATE INDEX idx_task_board_items_pending_review
1954
1968
  ON task_board_items (updated_at, id)
1955
1969
  WHERE status = 'in_review'
1956
1970
  AND assignee_id = 'super-agent'
1957
1971
  AND dismissed_at IS NULL
1958
- `.execute(_),await D_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var KT={};C(KT,{up:()=>W6,down:()=>D6});import{sql as hm}from"kysely";async function W6(_){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(hm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(hm`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 D6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var TT={};C(TT,{up:()=>L6,down:()=>F6,ACTIONS:()=>NT});import{sql as d_}from"kysely";var NT=["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"],j6=new Set(["review_verdict_requested"]);async function L6(_){await tm(_,NT)}async function F6(_){await tm(_,NT.filter((x)=>!j6.has(x)))}async function tm(_,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 mT={};C(mT,{up:()=>Y6,down:()=>H6});import{sql as s_}from"kysely";async function Y6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await s_`
1972
+ `.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var $T={};C($T,{up:()=>A6,down:()=>I6});import{sql as _z}from"kysely";async function A6(_){await _.schema.createTable("task_board_columns").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("title","text",(x)=>x.notNull()).addColumn("position","integer",(x)=>x.notNull()).addColumn("role","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(_z`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(_z`now()`)).execute(),await _.schema.createIndex("task_board_columns_org_key_uniq").ifNotExists().on("task_board_columns").columns(["organization_id","key"]).unique().execute(),await _.schema.createIndex("task_board_columns_org_position_idx").ifNotExists().on("task_board_columns").columns(["organization_id","position"]).execute()}async function I6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var JT={};C(JT,{up:()=>V6,down:()=>w6,ACTIONS:()=>UT});import{sql as xx}from"kysely";var UT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],y6=new Set(["review_verdict_requested"]);async function V6(_){await xz(_,UT)}async function w6(_){await xz(_,UT.filter((x)=>!y6.has(x)))}async function xz(_,x){await xx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await xx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var PT={};C(PT,{up:()=>k6,down:()=>n6});import{sql as ux}from"kysely";async function k6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await ux`
1959
1973
  ALTER TABLE task_board_items
1960
1974
  ADD CONSTRAINT chk_task_board_items_column_org
1961
1975
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
1962
- `.execute(_),await s_`
1976
+ `.execute(_),await ux`
1963
1977
  ALTER TABLE task_board_items
1964
1978
  ADD CONSTRAINT task_board_items_board_column_fkey
1965
1979
  FOREIGN KEY (board_column_org, status)
1966
1980
  REFERENCES task_board_columns (organization_id, key)
1967
1981
  ON DELETE RESTRICT
1968
- `.execute(_)}async function H6(_){await s_`
1982
+ `.execute(_)}async function n6(_){await ux`
1969
1983
  ALTER TABLE task_board_items
1970
1984
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1971
- `.execute(_),await s_`
1985
+ `.execute(_),await ux`
1972
1986
  ALTER TABLE task_board_items
1973
1987
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
1974
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var zT={};C(zT,{up:()=>M6,down:()=>R6});async function M6(_){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 $T={};C($T,{up:()=>G6,down:()=>O6,ACTIONS:()=>ET});import{sql as b_}from"kysely";var ET=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],B6=new Set(["sprint_changed"]);async function G6(_){await om(_,ET)}async function O6(_){await om(_,ET.filter((x)=>!B6.has(x)))}async function om(_,x){await b_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await b_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${b_.join(x.map((u)=>b_.lit(u)))}))`.execute(_)}var UT={};C(UT,{up:()=>f6,down:()=>A6});import{sql as S6}from"kysely";async function f6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(S6`'[]'::jsonb`)).execute()}async function A6(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var JT={};C(JT,{up:()=>I6,down:()=>y6});import{sql as am}from"kysely";async function I6(_){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(am`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(am`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function y6(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var PT={};C(PT,{up:()=>w6,down:()=>k6});import{sql as V6}from"kysely";async function w6(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await V6`
1988
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var QT={};C(QT,{up:()=>v6,down:()=>p6});async function v6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function p6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var ZT={};C(ZT,{up:()=>q6,down:()=>i6,ACTIONS:()=>XT});import{sql as Cx}from"kysely";var XT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],g6=new Set(["sprint_changed"]);async function q6(_){await uz(_,XT)}async function i6(_){await uz(_,XT.filter((x)=>!g6.has(x)))}async function uz(_,x){await Cx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Cx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Cx.join(x.map((u)=>Cx.lit(u)))}))`.execute(_)}var WT={};C(WT,{up:()=>h6,down:()=>t6});import{sql as c6}from"kysely";async function h6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(c6`'[]'::jsonb`)).execute()}async function t6(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var jT={};C(jT,{up:()=>o6,down:()=>a6});import{sql as Cz}from"kysely";async function o6(_){await _.schema.createTable("task_board_prompts").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text").addColumn("prompt","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Cz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Cz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function a6(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var LT={};C(LT,{up:()=>l6,down:()=>e6});import{sql as r6}from"kysely";async function l6(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await r6`
1975
1989
  UPDATE task_board_items i
1976
1990
  SET external_url = t.url,
1977
1991
  description = CASE
@@ -1990,11 +2004,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1990
2004
  ON g.organization_id = l.organization_id
1991
2005
  ) t
1992
2006
  WHERE t.item_id = i.id
1993
- `.execute(_)}async function k6(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var QT={};C(QT,{up:()=>v6,down:()=>p6,ACTIONS:()=>rm});import{sql as Q}from"kysely";var n6=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],rm=["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 v6(_){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 e6(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var FT={};C(FT,{up:()=>b6,down:()=>s6,ACTIONS:()=>Kz});import{sql as Q}from"kysely";var d6=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Kz=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"];async function b6(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await Q`DROP TABLE IF EXISTS task_board_columns`.execute(_),await Q`
1994
2008
  UPDATE task_board_items
1995
2009
  SET status = 'triage'
1996
- WHERE status NOT IN (${Q.join(n6.map((x)=>Q.lit(x)))})
1997
- `.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 g6(_,rm),await Q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await Q`
2010
+ WHERE status NOT IN (${Q.join(d6.map((x)=>Q.lit(x)))})
2011
+ `.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await _W(_,Kz),await Q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await Q`
1998
2012
  ALTER TABLE task_board_item_jira_links
1999
2013
  DROP COLUMN IF EXISTS jira_updated_at,
2000
2014
  DROP COLUMN IF EXISTS jira_status,
@@ -2006,11 +2020,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2006
2020
  DROP COLUMN IF EXISTS last_synced_at,
2007
2021
  DROP COLUMN IF EXISTS last_sync_error,
2008
2022
  DROP COLUMN IF EXISTS rescan_pending
2009
- `.execute(_)}async function p6(){}async function g6(_,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 XT={};C(XT,{up:()=>q6,down:()=>i6});import{sql as x_}from"kysely";async function q6(_){await x_`
2023
+ `.execute(_)}async function s6(){}async function _W(_,x){await Q`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Q`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Q.join(x.map((u)=>Q.lit(u)))}))`.execute(_)}var YT={};C(YT,{up:()=>xW,down:()=>uW});import{sql as C_}from"kysely";async function xW(_){await C_`
2010
2024
  ALTER TABLE task_board_items
2011
2025
  ADD COLUMN IF NOT EXISTS source text
2012
2026
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
2013
- `.execute(_),await x_`
2027
+ `.execute(_),await C_`
2014
2028
  CREATE TABLE IF NOT EXISTS org_jira_column_automations (
2015
2029
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
2016
2030
  jira_status text NOT NULL,
@@ -2019,7 +2033,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2019
2033
  updated_at timestamptz NOT NULL DEFAULT now(),
2020
2034
  PRIMARY KEY (organization_id, jira_status)
2021
2035
  )
2022
- `.execute(_),await x_`
2036
+ `.execute(_),await C_`
2023
2037
  CREATE TABLE IF NOT EXISTS jira_trigger_claims (
2024
2038
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
2025
2039
  jira_issue_id text NOT NULL,
@@ -2027,24 +2041,24 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2027
2041
  created_at timestamptz NOT NULL DEFAULT now(),
2028
2042
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
2029
2043
  )
2030
- `.execute(_)}async function i6(_){await x_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await x_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var ZT={};C(ZT,{up:()=>c6,down:()=>h6});import{sql as j_}from"kysely";async function c6(_){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(j_`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(j_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).execute(),await j_`
2044
+ `.execute(_)}async function uW(_){await C_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await C_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await C_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var DT={};C(DT,{up:()=>CW,down:()=>KW});import{sql as Y_}from"kysely";async function CW(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(Y_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).execute(),await Y_`
2031
2045
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
2032
2046
  ON organization_notices (organization_id)
2033
2047
  WHERE resolved_at IS NULL
2034
- `.execute(_),await j_`
2048
+ `.execute(_),await Y_`
2035
2049
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
2036
2050
  ON organization_notices (organization_id, created_at DESC)
2037
- `.execute(_)}async function h6(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var DT={};C(DT,{up:()=>_W,down:()=>xW});import{sql as WT}from"kysely";import{sql as AD}from"kysely";var lm=50000000,t6=1e5;function o6(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>t6)return 1/0;let T=K.pop();if(typeof T==="string")u+=T.length;else if(Array.isArray(T))for(let m of T)K.push(m);else if(T!==null&&typeof T==="object")for(let m of Object.values(T))K.push(m)}return u}var a6=/\u0000/g,r6=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,l6=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,e6=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,d6=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function s6(_){return _.replace(a6,"").replace(r6,"\uFFFD").replace(l6,"$1***@").replace(e6,"$1***").replace(d6,"[base64 data omitted]")}function b6(_){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 em(_){if(o6(_,lm)>lm)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return s6(u);if(b6(u))return{type:"text",text:"[image omitted]"};return u})}var dm=20;async function _W(_){let x=await WT`
2051
+ `.execute(_)}async function KW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var MT={};C(MT,{up:()=>QW,down:()=>XW});import{sql as HT}from"kysely";import{sql as aj}from"kysely";var Nz=50000000,NW=1e5;function TW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>NW)return 1/0;let T=K.pop();if(typeof T==="string")u+=T.length;else if(Array.isArray(T))for(let m of T)K.push(m);else if(T!==null&&typeof T==="object")for(let m of Object.values(T))K.push(m)}return u}var mW=/\u0000/g,zW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,EW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,$W=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,UW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function JW(_){return _.replace(mW,"").replace(zW,"\uFFFD").replace(EW,"$1***@").replace($W,"$1***").replace(UW,"[base64 data omitted]")}function PW(_){if(typeof _!=="object"||_===null)return!1;let x=_;if(x.type!=="image")return!1;if(typeof x.data==="string")return!0;let u=x.source;return typeof u==="object"&&u!==null&&typeof u.data==="string"}function Tz(_){if(TW(_,Nz)>Nz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return JW(u);if(PW(u))return{type:"text",text:"[image omitted]"};return u})}var mz=20;async function QW(_){let x=await HT`
2038
2052
  SELECT id FROM thread_message_parts
2039
2053
  WHERE pg_column_size(payload) > 8192
2040
2054
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
2041
- `.execute(_);for(let u=0;u<x.rows.length;u+=dm){let N=x.rows.slice(u,u+dm).map((T)=>T.id),K=await WT`
2055
+ `.execute(_);for(let u=0;u<x.rows.length;u+=mz){let N=x.rows.slice(u,u+mz).map((T)=>T.id),K=await HT`
2042
2056
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
2043
- `.execute(_);for(let T of K.rows){let m=em(T.payload);if(m===JSON.stringify(T.payload))continue;await WT`
2057
+ `.execute(_);for(let T of K.rows){let m=Tz(T.payload);if(m===JSON.stringify(T.payload))continue;await HT`
2044
2058
  UPDATE thread_message_parts
2045
2059
  SET payload = ${m}::jsonb
2046
2060
  WHERE id = ${T.id}
2047
- `.execute(_)}}}async function xW(){}var jT={};C(jT,{up:()=>uW,down:()=>CW});async function uW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function CW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var LT={};C(LT,{up:()=>KW,down:()=>NW});import{sql as U}from"kysely";async function KW(_){await U`
2061
+ `.execute(_)}}}async function XW(){}var RT={};C(RT,{up:()=>ZW,down:()=>WW});async function ZW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function WW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var BT={};C(BT,{up:()=>jW,down:()=>LW});import{sql as U}from"kysely";async function jW(_){await U`
2048
2062
  CREATE TABLE git_provider_accounts (
2049
2063
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
2050
2064
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -2288,11 +2302,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2288
2302
  AND r.organization_id = s.organization_id
2289
2303
  AND r.host = 'github.com'
2290
2304
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
2291
- `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function NW(_){await U`
2305
+ `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function LW(_){await U`
2292
2306
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
2293
2307
  `.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
2294
2308
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
2295
- `.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 FT={};C(FT,{up:()=>mW,down:()=>zW});import{sql as I}from"kysely";var TW=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 GT={};C(GT,{up:()=>YW,down:()=>DW});import{sql as I}from"kysely";var FW=I`
2296
2310
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
2297
2311
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
2298
2312
  BEGIN
@@ -2301,7 +2315,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2301
2315
  RETURN NULL;
2302
2316
  END;
2303
2317
  $$
2304
- `;async function mW(_){await TW.execute(_),await I`
2318
+ `;async function YW(_){await FW.execute(_),await I`
2305
2319
  ALTER TABLE connections
2306
2320
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2307
2321
  `.execute(_),await I`
@@ -2363,21 +2377,21 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2363
2377
  AND r.host = 'github.com'
2364
2378
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
2365
2379
  ON CONFLICT (thread_id, repository_id) DO NOTHING
2366
- `.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function zW(_){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 DW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
2367
2381
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
2368
- `.execute(_)}var EW={"001-initial-schema":Nu,"002-organization-settings":Tu,"003-connection-schema-align":mu,"004-remove-models-binding":zu,"005-connection-configuration":Eu,"006-add-views-to-settings":$u,"007-monitoring-logs":Uu,"008-event-bus":Ju,"009-drop-audit-logs":Pu,"010-gateways":Qu,"011-gateway-icon":Xu,"012-gateway-tool-selection-mode":Zu,"013-monitoring-user-agent-gateway":Wu,"014-gateway-resources-prompts":Du,"015-monitoring-properties":ju,"016-downstream-token-client-info":Lu,"017-downstream-token-remove-userid":Fu,"018-drop-gateway-tool-selection-strategy":Yu,"019-remove-gateway-is-default":Hu,"020-enabled-plugins":Mu,"021-threads":Ru,"022-rename-gateway-to-virtual-mcp":Bu,"023-optimize-thread-indexes":Gu,"024-consolidate-virtual-mcp":Ou,"025-add-monitoring-virtual-mcp-id":Su,"026-restrict-child-connection-delete":fu,"027-update-management-mcp-url":Iu,"028-update-management-mcp-to-self":Vu,"029-add-updated-by-to-connections":wu,"030-member-tags":ku,"031-add-dependency-mode":nu,"032-projects":vu,"033-thread-status":pu,"034-monitoring-dashboards":gu,"035-project-connections":qu,"036-update-registry-url":iu,"037-ai-provider-keys":cu,"038-oauth-pkce-states":hu,"039-automations":tu,"040-replace-next-run-at-with-last-run-at":ou,"041-ai-provider-keys-unique-constraint":au,"042-rename-mesh-mcp-to-cms-mcp":ru,"043-rename-cms-mcp-to-deco-cms":lu,"044-drop-connections-tools-column":eu,"045-thread-context-start-message":du,"046-remove-object-storage-plugin":bu,"047-add-next-run-at":_C,"048-merge-projects-agents":uC,"049-remove-org-admin-projects":CC,"050-durable-agent-runs":KC,"051-org-sso":TC,"052-thread-agent-ids":mC,"053-registry-config":zC,"054-connection-slug":$C,"055-spaces":UC,"056-automation-project-scope":JC,"057-thread-virtual-mcp-id":PC,"058-trigger-callback-tokens":QC,"059-kv":XC,"060-member-index":ZC,"061-downstream-token-connection-index":WC,"062-private-registry":DC,"063-event-subscriptions-enabled-boolean":jC,"064-brand-context":LC,"065-organization-domains":FC,"066-brand-context-structured":YC,"067-threads-metadata":HC,"068-threads-branch":MC,"069-sandbox-runner-state":RC,"070-model-categories":BC,"071-default-home-agents":GC,"072-ai-provider-key-preset-id":OC,"073-backfill-basic-usage-roles":SC,"074-sandbox-runner-state-handle-nonunique":fC,"075-thread-inflight-async-jobs":AC,"076-automations-drop-agent-json":IC,"077-tier-only-model-selection":VC,"078-automation-tool-call-kind":wC,"079-strip-legacy-freestyle-vm-map-entries":kC,"080-async-research-jobs":nC,"081-async-research-jobs-result-content":vC,"082-secrets":pC,"083-thread-run-locally":gC,"084-drop-host-sandbox-rows":qC,"085-rename-runner-kind":iC,"086-thread-pins-and-vm-map-rekey":cC,"087-fix-vm-map-rekey":hC,"088-purge-cli-activate-keys":tC,"089-rename-remote-user-to-desktop":oC,"090-automation-webhook-triggers":aC,"091-organization-domains-allow-multi":rC,"092-sandbox-naming-uniformization":lC,"093-backfill-global-search-basic-usage":eC,"094-org-file-configs":sC,"095-remove-automation-tool-call-kind":bC,"096-org-file-configs-public-url-base":_K,"097-drop-local-docker-sandbox-state":uK,"098-thread-message-parts":CK,"099-run-fence":KK,"100-link-transport":NK,"101-cancel-requested-at":TK,"102-observational-agent":mK,"103-revert-observational-agent":zK,"104-agent-sandbox-provider-kind":$K,"105-org-fs":UK,"106-automation-tools":JK,"107-org-fs-public-org":PK,"108-automation-max-agent-steps":QK,"109-thread-message-parts-per-message-seq":XK,"110-backfill-ghs-token-expiry":ZK,"111-org-fs-thread-id":WK,"112-org-file-configs-credential-type":DK,"113-thread-failure-reason":jK,"114-run-acked-seq":LK,"115-thread-projected-seq":FK,"116-org-sites":YK,"117-org-file-configs-site-slug":HK,"118-organization-domains-multi-verify":MK,"119-organization-join-requests":RK,"120-org-fs-read-public":BK,"121-org-fs-share-password":GK,"122-split-web-research-tier":fK,"123-connection-credential-vault":AK,"124-drop-thread-projected-seq":IK,"125-github-child-single-parent":yK,"126-task-board":wK,"127-task-board-due-date":kK,"128-reports-only":nK,"129-task-board-assigned-by":vK,"130-task-board-thread-id":pK,"131-task-board-thread-link-cascade":gK,"132-task-board-item-prs":qK,"133-dedupe-duplicate-members":iK,"134-drop-task-board-enabled":cK,"135-task-board-item-fk-cascade":hK,"136-task-board-import-idempotency":tK,"137-agent-sandbox-runner-state":oK,"138-agent-sandbox-sessions":aK,"139-organization-billing":rK,"140-seat-change-log":lK,"141-benefits-sync-pending":eK,"142-stripe-event-watermark":dK,"143-armed-report-url":sK,"144-benefits-pending-index":bK,"145-user-model-preferences":_N,"146-organization-main-agent":xN,"147-drop-agent-sandbox-tables":uN,"148-org-flags":CN,"149-task-board-item-sort-order":KN,"150-task-board-activity":NN,"151-task-board-tags":mN,"152-repair-connection-slug":EN,"153-task-board-latest-assistant-part-index":$N,"154-task-board-qa-activity":JN,"155-task-board-review-claims":PN,"156-task-board-conflict-activity":XN,"157-drop-seat-billing":ZN,"158-drop-github-child-single-parent":WN,"159-task-board-comments":DN,"160-task-quota-billing":jN,"161-task-quota-claim-state":FN,"162-claude-subscriptions":YN,"163-task-board-item-dismissed":HN,"164-per-org-task-quota":MN,"165-task-board-pending-review-index":RN,"166-task-board-last-swept-at":BN,"167-task-board-run-retry":GN,"168-org-repo-sync":SN,"169-task-board-merge-failed-activity":AN,"170-task-board-item-repo":IN,"171-jira-integration":yN,"172-task-board-item-key-seq":VN,"173-thread-github-repo-connection-index":wN,"174-thread-message-parts-persisted-at":nN,"175-task-board-sprints":vN,"176-task-board-done-sweep-index":pN,"177-notifications":gN,"178-jira-status-mapping-array":qN,"179-notification-mentioned":cN,"180-task-board-item-type":tN,"181-task-board-item-type-required":oN,"182-task-board-sprints-entities":aN,"183-drop-jira-jql-filter":rN,"184-jira-rescan-after-scope-change":lN,"185-jira-rescan-existing-cards":eN,"186-jira-rescan-pending-flag":sN,"187-task-board-comment-thread":bN,"188-invitation-auto-accept":_T,"189-task-board-column-automations":uT,"190-task-board-review-cycle-started-at":CT,"191-task-board-columns":KT,"192-task-board-verdict-nudge-activity":TT,"193-task-board-status-column-fk":mT,"194-jira-link-sprint":zT,"195-task-board-sprint-activity":$T,"196-task-board-column-tracker-statuses":UT,"197-task-board-prompts":JT,"198-task-board-external-url":PT,"199-drop-jira-mirror-and-org-columns":QT,"200-jira-run-trigger":XT,"201-organization-notices":ZT,"202-redact-base64-thread-parts":DT,"203-task-board-preview-routes":jT,"204-git-provider-accounts-and-repositories":LT,"205-repository-references":FT,"206-repository-consumers":Ku,"207-task-board-prs-repo-idx":Cu,"208-github-connect-flows":uu,"209-github-installation-authorization":xu,"210-github-repository-authorization":ax,"211-user-fs-org":ox,"212-coding-agent-mcp-excluded":rx,"213-bitbucket-git-provider":lx,"214-connections-sanitized-id-idx":ix,"215-commerce-discovery-repository":cx,"216-github-cli-auth":tx,"217-experiments":ex,"218-thread-message-parts-error-idx":dx,"219-task-board-duplicate-reported-activity":bx,"220-jira-automation-continue-pr":_u,"221-remove-private-registry":Tx,"222-org-git-credentials":mx,"223-drop-org-main-agent-id":qx,"224-repository-sandbox-image":zx,"225-thread-analytics-indexes":$x,"226-deco-score-names":Jx,"227-task-board-finding-resolved-activity":Qx,"228-org-voice-config":Nx,"229-jira-automation-from":Xx,"230-project-sidebar":Zx,"231-jira-chat-agent":Wx,"232-task-board-prompt-skills":jx,"233-remove-jira-chat-agent":Fx,"234-task-board-comment-audience":Yx,"235-prune-empty-thread-dirs":Hx,"236-task-board-sprints":Rx,"237-org-sites-project-link":Bx,"238-task-board-default-lanes":Gx,"239-task-board-retire-old-lanes":Ox,"240-task-board-restore-todo":Sx,"241-automation-board-column-transition":fx,"242-connection-url-slug":Ax,"243-experiment-task-board-item":Ix,"244-connection-url-slug-rollout-backfill":yx,"245-automation-system-key":Vx,"246-automation-pr-ready-trigger":wx,"247-automation-jira-transition":kx,"248-drop-retired-rule-tables":nx,"249-task-board-item-project":vx,"250-github-copilot-subscriptions":px,"251-org-shared-plans":gx},_x=EW;import{getMigrations as iW}from"better-auth/db";import{sso as cW}from"@better-auth/sso";import{organization as hW}from"@decocms/better-auth/plugins";import{admin as tW,apiKey as oW,jwt as aW,magicLink as rW,mcp as lW,openAPI as eW}from"better-auth/plugins";import{emailOTP as dW}from"better-auth/plugins/email-otp";import{Kysely as VW,PostgresDialect as mz}from"kysely";import{Pool as zz}from"pg";import{homedir as $W}from"os";var UW=new Set(["all","worker","api"]);function JW(_){let x=(_??"").trim();return UW.has(x)?x:"all"}var PW=new Set(["production","development","test"]);function QW(_){let x=(_??"").trim();return PW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function HT(_,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 HT(_,x,N)??u}function XW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),T=K>0?N.slice(0,K).trim():"",m=K>0?N.slice(K+1).trim():"";if(!T||!m){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=m}return x}function ZW(_,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 YT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function WW(_){return _===void 0||_===""||_==="true"||_==="1"}function L_(_,x){return _||x}function sm(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${$W()}/deco`,u=QW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:L_(_.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:L_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((T)=>T.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((T)=>T.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:HT("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((T)=>T.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:XW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:ZW("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:YT(_.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:YT(_.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:WW(_.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:HT("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:JW(L_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:YT(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:L_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:L_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var DW=null;function u_(){return DW??=Object.freeze(sm(process.env))}import{createContextKey as MW,metrics as RW,propagation as ej,ROOT_CONTEXT as dj,SpanStatusCode as sj,trace as BW}from"@opentelemetry/api";import{logs as GW,SeverityNumber as MT}from"@opentelemetry/api-logs";import{OTLPLogExporter as x5}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as OW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as K5}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as T5}from"@opentelemetry/instrumentation-runtime-node";import{context as hD,propagation as tD,SpanKind as oD,SpanStatusCode as aD}from"@opentelemetry/api";var lD=globalThis.fetch;import{ExportResultCode as mj}from"@opentelemetry/core";import{ExportResultCode as xx}from"@opentelemetry/core";import{mkdir as jW,rename as LW,writeFile as FW}from"fs/promises";import{join as ux}from"path";class Cx{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:xx.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:xx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:xx.FAILED}});return Promise.resolve({code:xx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let T=x.get(K.partition);if(!T)T=[],x.set(K.partition,T);T.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,T])=>this.writeNDJSON(T,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let m of u)if(m.status==="fulfilled")K.add(m.value);let T=_.filter((m)=>!K.has(m.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?ux(this.basePath,x,...N):ux(this.basePath,...N);if(!this.knownDirs.has(K))await jW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let T=`${crypto.randomUUID()}.ndjson`,m=ux(K,`.${T}.tmp`),z=ux(K,T),E=_.join(`
2382
+ `.execute(_)}var HW={"001-initial-schema":Uu,"002-organization-settings":Ju,"003-connection-schema-align":Pu,"004-remove-models-binding":Qu,"005-connection-configuration":Xu,"006-add-views-to-settings":Zu,"007-monitoring-logs":Wu,"008-event-bus":ju,"009-drop-audit-logs":Lu,"010-gateways":Fu,"011-gateway-icon":Yu,"012-gateway-tool-selection-mode":Du,"013-monitoring-user-agent-gateway":Hu,"014-gateway-resources-prompts":Mu,"015-monitoring-properties":Ru,"016-downstream-token-client-info":Bu,"017-downstream-token-remove-userid":Gu,"018-drop-gateway-tool-selection-strategy":Ou,"019-remove-gateway-is-default":Su,"020-enabled-plugins":fu,"021-threads":Au,"022-rename-gateway-to-virtual-mcp":Iu,"023-optimize-thread-indexes":yu,"024-consolidate-virtual-mcp":Vu,"025-add-monitoring-virtual-mcp-id":wu,"026-restrict-child-connection-delete":ku,"027-update-management-mcp-url":vu,"028-update-management-mcp-to-self":gu,"029-add-updated-by-to-connections":qu,"030-member-tags":iu,"031-add-dependency-mode":cu,"032-projects":hu,"033-thread-status":tu,"034-monitoring-dashboards":ou,"035-project-connections":au,"036-update-registry-url":ru,"037-ai-provider-keys":lu,"038-oauth-pkce-states":eu,"039-automations":du,"040-replace-next-run-at-with-last-run-at":bu,"041-ai-provider-keys-unique-constraint":su,"042-rename-mesh-mcp-to-cms-mcp":_C,"043-rename-cms-mcp-to-deco-cms":xC,"044-drop-connections-tools-column":uC,"045-thread-context-start-message":CC,"046-remove-object-storage-plugin":NC,"047-add-next-run-at":TC,"048-merge-projects-agents":zC,"049-remove-org-admin-projects":EC,"050-durable-agent-runs":$C,"051-org-sso":JC,"052-thread-agent-ids":PC,"053-registry-config":QC,"054-connection-slug":ZC,"055-spaces":WC,"056-automation-project-scope":jC,"057-thread-virtual-mcp-id":LC,"058-trigger-callback-tokens":FC,"059-kv":YC,"060-member-index":DC,"061-downstream-token-connection-index":HC,"062-private-registry":MC,"063-event-subscriptions-enabled-boolean":RC,"064-brand-context":BC,"065-organization-domains":GC,"066-brand-context-structured":OC,"067-threads-metadata":SC,"068-threads-branch":fC,"069-sandbox-runner-state":AC,"070-model-categories":IC,"071-default-home-agents":yC,"072-ai-provider-key-preset-id":VC,"073-backfill-basic-usage-roles":wC,"074-sandbox-runner-state-handle-nonunique":kC,"075-thread-inflight-async-jobs":nC,"076-automations-drop-agent-json":vC,"077-tier-only-model-selection":gC,"078-automation-tool-call-kind":qC,"079-strip-legacy-freestyle-vm-map-entries":iC,"080-async-research-jobs":cC,"081-async-research-jobs-result-content":hC,"082-secrets":tC,"083-thread-run-locally":oC,"084-drop-host-sandbox-rows":aC,"085-rename-runner-kind":rC,"086-thread-pins-and-vm-map-rekey":lC,"087-fix-vm-map-rekey":eC,"088-purge-cli-activate-keys":dC,"089-rename-remote-user-to-desktop":bC,"090-automation-webhook-triggers":sC,"091-organization-domains-allow-multi":_K,"092-sandbox-naming-uniformization":xK,"093-backfill-global-search-basic-usage":uK,"094-org-file-configs":KK,"095-remove-automation-tool-call-kind":NK,"096-org-file-configs-public-url-base":TK,"097-drop-local-docker-sandbox-state":zK,"098-thread-message-parts":EK,"099-run-fence":$K,"100-link-transport":UK,"101-cancel-requested-at":JK,"102-observational-agent":PK,"103-revert-observational-agent":QK,"104-agent-sandbox-provider-kind":ZK,"105-org-fs":WK,"106-automation-tools":jK,"107-org-fs-public-org":LK,"108-automation-max-agent-steps":FK,"109-thread-message-parts-per-message-seq":YK,"110-backfill-ghs-token-expiry":DK,"111-org-fs-thread-id":HK,"112-org-file-configs-credential-type":MK,"113-thread-failure-reason":RK,"114-run-acked-seq":BK,"115-thread-projected-seq":GK,"116-org-sites":OK,"117-org-file-configs-site-slug":SK,"118-organization-domains-multi-verify":fK,"119-organization-join-requests":AK,"120-org-fs-read-public":IK,"121-org-fs-share-password":yK,"122-split-web-research-tier":kK,"123-connection-credential-vault":nK,"124-drop-thread-projected-seq":vK,"125-github-child-single-parent":pK,"126-task-board":qK,"127-task-board-due-date":iK,"128-reports-only":cK,"129-task-board-assigned-by":hK,"130-task-board-thread-id":tK,"131-task-board-thread-link-cascade":oK,"132-task-board-item-prs":aK,"133-dedupe-duplicate-members":rK,"134-drop-task-board-enabled":lK,"135-task-board-item-fk-cascade":eK,"136-task-board-import-idempotency":dK,"137-agent-sandbox-runner-state":bK,"138-agent-sandbox-sessions":sK,"139-organization-billing":_N,"140-seat-change-log":xN,"141-benefits-sync-pending":uN,"142-stripe-event-watermark":CN,"143-armed-report-url":KN,"144-benefits-pending-index":NN,"145-user-model-preferences":TN,"146-organization-main-agent":mN,"147-drop-agent-sandbox-tables":zN,"148-org-flags":EN,"149-task-board-item-sort-order":$N,"150-task-board-activity":UN,"151-task-board-tags":PN,"152-repair-connection-slug":XN,"153-task-board-latest-assistant-part-index":ZN,"154-task-board-qa-activity":jN,"155-task-board-review-claims":LN,"156-task-board-conflict-activity":YN,"157-drop-seat-billing":DN,"158-drop-github-child-single-parent":HN,"159-task-board-comments":MN,"160-task-quota-billing":RN,"161-task-quota-claim-state":GN,"162-claude-subscriptions":ON,"163-task-board-item-dismissed":SN,"164-per-org-task-quota":fN,"165-task-board-pending-review-index":AN,"166-task-board-last-swept-at":IN,"167-task-board-run-retry":yN,"168-org-repo-sync":wN,"169-task-board-merge-failed-activity":nN,"170-task-board-item-repo":vN,"171-jira-integration":pN,"172-task-board-item-key-seq":gN,"173-thread-github-repo-connection-index":qN,"174-thread-message-parts-persisted-at":cN,"175-task-board-sprints":hN,"176-task-board-done-sweep-index":tN,"177-notifications":oN,"178-jira-status-mapping-array":aN,"179-notification-mentioned":lN,"180-task-board-item-type":dN,"181-task-board-item-type-required":bN,"182-task-board-sprints-entities":sN,"183-drop-jira-jql-filter":_T,"184-jira-rescan-after-scope-change":xT,"185-jira-rescan-existing-cards":uT,"186-jira-rescan-pending-flag":KT,"187-task-board-comment-thread":NT,"188-invitation-auto-accept":TT,"189-task-board-column-automations":zT,"190-task-board-review-cycle-started-at":ET,"191-task-board-columns":$T,"192-task-board-verdict-nudge-activity":JT,"193-task-board-status-column-fk":PT,"194-jira-link-sprint":QT,"195-task-board-sprint-activity":ZT,"196-task-board-column-tracker-statuses":WT,"197-task-board-prompts":jT,"198-task-board-external-url":LT,"199-drop-jira-mirror-and-org-columns":FT,"200-jira-run-trigger":YT,"201-organization-notices":DT,"202-redact-base64-thread-parts":MT,"203-task-board-preview-routes":RT,"204-git-provider-accounts-and-repositories":BT,"205-repository-references":GT,"206-repository-consumers":$u,"207-task-board-prs-repo-idx":Eu,"208-github-connect-flows":zu,"209-github-installation-authorization":mu,"210-github-repository-authorization":sx,"211-user-fs-org":bx,"212-coding-agent-mcp-excluded":_u,"213-bitbucket-git-provider":xu,"214-connections-sanitized-id-idx":rx,"215-commerce-discovery-repository":lx,"216-github-cli-auth":dx,"217-experiments":uu,"218-thread-message-parts-error-idx":Cu,"219-task-board-duplicate-reported-activity":Nu,"220-jira-automation-continue-pr":Tu,"221-remove-private-registry":$x,"222-org-git-credentials":Ux,"223-drop-org-main-agent-id":ax,"224-repository-sandbox-image":Jx,"225-thread-analytics-indexes":Qx,"226-deco-score-names":Zx,"227-task-board-finding-resolved-activity":jx,"228-org-voice-config":Ex,"229-jira-automation-from":Lx,"230-project-sidebar":Fx,"231-jira-chat-agent":Yx,"232-task-board-prompt-skills":Hx,"233-remove-jira-chat-agent":Rx,"234-task-board-comment-audience":Bx,"235-prune-empty-thread-dirs":Gx,"236-task-board-sprints":Sx,"237-org-sites-project-link":fx,"238-task-board-default-lanes":Ax,"239-task-board-retire-old-lanes":Ix,"240-task-board-restore-todo":yx,"241-automation-board-column-transition":Vx,"242-connection-url-slug":wx,"243-experiment-task-board-item":kx,"244-connection-url-slug-rollout-backfill":nx,"245-automation-system-key":vx,"246-automation-pr-ready-trigger":px,"247-automation-jira-transition":gx,"248-drop-retired-rule-tables":qx,"249-task-board-item-project":ix,"250-github-copilot-subscriptions":cx,"251-org-shared-plans":hx,"252-automation-linked-chat-trigger":tx,"253-automation-pr-builtin-triggers":ox},Kx=HW;import{getMigrations as u9}from"better-auth/db";import{sso as C9}from"@better-auth/sso";import{organization as K9}from"@decocms/better-auth/plugins";import{admin as N9,apiKey as T9,jwt as m9,magicLink as z9,mcp as E9,openAPI as $9}from"better-auth/plugins";import{emailOTP as U9}from"better-auth/plugins/email-otp";import{Kysely as rW,PostgresDialect as Wz}from"kysely";import{Pool as jz}from"pg";import{homedir as MW}from"os";var RW=new Set(["all","worker","api"]);function BW(_){let x=(_??"").trim();return RW.has(x)?x:"all"}var GW=new Set(["production","development","test"]);function OW(_){let x=(_??"").trim();return GW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function ST(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return ST(_,x,N)??u}function SW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),T=K>0?N.slice(0,K).trim():"",m=K>0?N.slice(K+1).trim():"";if(!T||!m){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=m}return x}function fW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function OT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function AW(_){return _===void 0||_===""||_==="true"||_==="1"}function D_(_,x){return _||x}function zz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${MW()}/deco`,u=OW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:D_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:D_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((T)=>T.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((T)=>T.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:ST("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((T)=>T.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:SW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:fW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:OT(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:OT(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:AW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:ST("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:BW(D_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:OT(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:D_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:D_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var IW=null;function K_(){return IW??=Object.freeze(zz(process.env))}import{createContextKey as vW,metrics as pW,propagation as J8,ROOT_CONTEXT as P8,SpanStatusCode as Q8,trace as gW}from"@opentelemetry/api";import{logs as qW,SeverityNumber as fT}from"@opentelemetry/api-logs";import{OTLPLogExporter as W8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as iW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as F8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as D8}from"@opentelemetry/instrumentation-runtime-node";import{context as T5,propagation as m5,SpanKind as z5,SpanStatusCode as E5}from"@opentelemetry/api";var U5=globalThis.fetch;import{ExportResultCode as H5}from"@opentelemetry/core";import{ExportResultCode as Nx}from"@opentelemetry/core";import{mkdir as yW,rename as VW,writeFile as wW}from"fs/promises";import{join as Tx}from"path";class mx{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:Nx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Nx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Nx.FAILED}});return Promise.resolve({code:Nx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let T=x.get(K.partition);if(!T)T=[],x.set(K.partition,T);T.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,T])=>this.writeNDJSON(T,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let m of u)if(m.status==="fulfilled")K.add(m.value);let T=_.filter((m)=>!K.has(m.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Tx(this.basePath,x,...N):Tx(this.basePath,...N);if(!this.knownDirs.has(K))await yW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let T=`${crypto.randomUUID()}.ndjson`,m=Tx(K,`.${T}.tmp`),z=Tx(K,T),E=_.join(`
2369
2383
  `)+`
2370
- `;await FW(m,E,{mode:384}),await LW(m,z)}}import{ExportResultCode as Jj}from"@opentelemetry/core";import{AggregationTemporality as Qj,DataPointType as Xj}from"@opentelemetry/sdk-metrics";import{ExportResultCode as Fj}from"@opentelemetry/core";var Rj=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as X5,LoggerProvider as Z5}from"@opentelemetry/sdk-logs";import{detectResources as D5,envDetector as j5,hostDetector as L5,osDetector as F5,processDetector as Y5,resourceFromAttributes as H5}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as R5}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as Oj}from"@opentelemetry/api-logs";import{NodeSDK as O5}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as f5,SamplingDecision as C_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as yj}from"@opentelemetry/api";var SW="__d",fW=MW("Current request"),AW=1;var _z=(_)=>{let u=new URL(_.url).searchParams.get(SW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class xz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,T){let m=_.getValue(fW);if(!m){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,T);return{decision:C_.RECORD_AND_SAMPLED}}let z=_z(m);if(z)return{decision:C_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,T);if(E.decision===C_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:C_.NOT_RECORD}}toString(){return"DebugSampler"}}class uz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:C_.RECORD_AND_SAMPLED};return{decision:C_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var I5=new OW({preventServerStart:!0}),y5=new xz(new uz(AW));var bm=BW.getTracer("studio","1.0.0"),F_=RW.getMeter("studio","1.0.0"),IW=GW.getLogger("studio","1.0.0"),RT=(_,x,u)=>{let N={},K=u,T=u[u.length-1];if(T!==null&&typeof T==="object"&&!Array.isArray(T)&&!(T instanceof Error)&&Object.getPrototypeOf(T)===Object.prototype)N=T,K=u.slice(0,-1);let m=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");IW.emit({severityNumber:_,severityText:x,body:m,attributes:{"log.source":"console",...N}})},BT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{RT(MT.ERROR,"ERROR",_),BT.error(..._)};console.warn=(..._)=>{RT(MT.WARN,"WARN",_),BT.warn(..._)};console.debug=(..._)=>{RT(MT.DEBUG,"DEBUG",_),BT.debug(..._)};var GT,Cz=0,OT=500;function yW(){if(GT)return;let _=performance.now()+OT;GT=setInterval(()=>{let x=performance.now();Cz=Math.max(0,x-_),_=x+OT},OT),GT.unref?.()}function Kz(){return yW(),Cz}var wW=()=>F_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Nz=()=>F_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Tz=400,kW=100,nW=(_)=>({"db.status":_.level==="error"?"error":"success"}),vW=(_)=>(x)=>{let u=nW(x);if(x.queryDurationMillis>Tz){let N=Kz(),K=N>Tz/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:Kx()}})}if(wW().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function pW(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=Kx(),T=_.idleCount===0&&_.totalCount>=K,m=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Nz().record(E,{"db.pool.outcome":T?"contended":"available"}),E>kW)if(T)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:m,total:_.totalCount,max:K});return z},(z)=>{throw Nz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Ez={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function $z(){try{return u_().databasePgSsl}catch{return!1}}function Kx(){try{return u_().databasePoolMax}catch{return 10}}function gW(_){let x=pW(new zz({connectionString:_,max:Kx(),ssl:$z(),...Ez})),u=new mz({pool:x});return{type:"postgres",db:new VW({dialect:u,log:vW(x)}),pool:x}}function H_(){return u_().databaseUrl}function Uz(_){let x=_||H_();return new mz({pool:new zz({connectionString:x,max:Kx(),ssl:$z(),...Ez})})}function qW(_){let x=_||H_();return gW(x)}async function Jz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===Y_)Y_=null}var Y_=null;function ST(){if(!Y_)Y_=qW(H_());return Y_}async function Pz(_){let u={database:Uz(_||H_()),plugins:[hW({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),tW(),oW(),aW(),eW(),lW({loginPage:"/login"}),cW(),rW({sendMagicLink:async()=>{}}),dW({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:T}=await iW(u);if(!N.length&&!K.length)return"up to date";return await T(),`${K.length+N.length} table(s) migrated`}async function fT(_,x){return(await o`
2384
+ `;await wW(m,E,{mode:384}),await VW(m,z)}}import{ExportResultCode as O5}from"@opentelemetry/core";import{AggregationTemporality as f5,DataPointType as A5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as n5}from"@opentelemetry/core";var q5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as A8,LoggerProvider as I8}from"@opentelemetry/sdk-logs";import{detectResources as V8,envDetector as w8,hostDetector as k8,osDetector as n8,processDetector as v8,resourceFromAttributes as p8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as q8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as h5}from"@opentelemetry/api-logs";import{NodeSDK as h8}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as o8,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as l5}from"@opentelemetry/api";var cW="__d",hW=vW("Current request"),tW=1;var $z=(_)=>{let u=new URL(_.url).searchParams.get(cW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Uz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,T){let m=_.getValue(hW);if(!m){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,T);return{decision:N_.RECORD_AND_SAMPLED}}let z=$z(m);if(z)return{decision:N_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,T);if(E.decision===N_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:N_.NOT_RECORD}}toString(){return"DebugSampler"}}class Jz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:N_.RECORD_AND_SAMPLED};return{decision:N_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var r8=new iW({preventServerStart:!0}),l8=new Uz(new Jz(tW));var Ez=gW.getTracer("studio","1.0.0"),H_=pW.getMeter("studio","1.0.0"),oW=qW.getLogger("studio","1.0.0"),AT=(_,x,u)=>{let N={},K=u,T=u[u.length-1];if(T!==null&&typeof T==="object"&&!Array.isArray(T)&&!(T instanceof Error)&&Object.getPrototypeOf(T)===Object.prototype)N=T,K=u.slice(0,-1);let m=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");oW.emit({severityNumber:_,severityText:x,body:m,attributes:{"log.source":"console",...N}})},IT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{AT(fT.ERROR,"ERROR",_),IT.error(..._)};console.warn=(..._)=>{AT(fT.WARN,"WARN",_),IT.warn(..._)};console.debug=(..._)=>{AT(fT.DEBUG,"DEBUG",_),IT.debug(..._)};var yT,Pz=0,VT=500;function aW(){if(yT)return;let _=performance.now()+VT;yT=setInterval(()=>{let x=performance.now();Pz=Math.max(0,x-_),_=x+VT},VT),yT.unref?.()}function Qz(){return aW(),Pz}var lW=()=>H_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Xz=()=>H_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Zz=400,eW=100,dW=(_)=>({"db.status":_.level==="error"?"error":"success"}),bW=(_)=>(x)=>{let u=dW(x);if(x.queryDurationMillis>Zz){let N=Qz(),K=N>Zz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:zx()}})}if(lW().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function sW(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=zx(),T=_.idleCount===0&&_.totalCount>=K,m=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Xz().record(E,{"db.pool.outcome":T?"contended":"available"}),E>eW)if(T)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:m,total:_.totalCount,max:K});return z},(z)=>{throw Xz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Lz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Fz(){try{return K_().databasePgSsl}catch{return!1}}function zx(){try{return K_().databasePoolMax}catch{return 10}}function _9(_){let x=sW(new jz({connectionString:_,max:zx(),ssl:Fz(),...Lz})),u=new Wz({pool:x});return{type:"postgres",db:new rW({dialect:u,log:bW(x)}),pool:x}}function R_(){return K_().databaseUrl}function Yz(_){let x=_||R_();return new Wz({pool:new jz({connectionString:x,max:zx(),ssl:Fz(),...Lz})})}function x9(_){let x=_||R_();return _9(x)}async function Dz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===M_)M_=null}var M_=null;function wT(){if(!M_)M_=x9(R_());return M_}async function Hz(_){let u={database:Yz(_||R_()),plugins:[K9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),N9(),T9(),m9(),$9(),E9({loginPage:"/login"}),C9(),z9({sendMagicLink:async()=>{}}),U9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:T}=await u9(u);if(!N.length&&!K.length)return"up to date";return await T(),`${K.length+N.length} table(s) migrated`}async function kT(_,x){return(await o`
2371
2385
  SELECT table_name FROM information_schema.tables
2372
2386
  WHERE table_schema='public' AND table_name=${x}
2373
- `.execute(_)).rows.length>0}async function sW(_){if(await fT(_,"plugin_migrations"))return;await o`
2387
+ `.execute(_)).rows.length>0}async function J9(_){if(await kT(_,"plugin_migrations"))return;await o`
2374
2388
  CREATE TABLE plugin_migrations (
2375
2389
  plugin_id TEXT NOT NULL,
2376
2390
  name TEXT NOT NULL,
2377
2391
  timestamp TEXT NOT NULL,
2378
2392
  PRIMARY KEY (plugin_id, name)
2379
2393
  )
2380
- `.execute(_)}async function bW(_){if(!await fT(_,"kysely_migration"))return;let x=await o`
2394
+ `.execute(_)}async function P9(_){if(!await kT(_,"kysely_migration"))return;let x=await o`
2381
2395
  SELECT name, timestamp FROM kysely_migration
2382
2396
  WHERE name LIKE '%/%'
2383
2397
  `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let K=u;if(u.includes("~plugins/"))K=u.substring(u.indexOf("~plugins/")+9);let T=K.indexOf("/");if(T===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let m=K.substring(0,T),z=K.substring(T+1);try{await o`
@@ -2388,6 +2402,6 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2388
2402
  WHERE plugin_id = ${m} AND name = ${z}
2389
2403
  `.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${m}/${z}, keeping in old table`);continue}}await o`
2390
2404
  DELETE FROM kysely_migration WHERE name = ${u}
2391
- `.execute(_)}}async function _7(_){if(!await fT(_,"kysely_migration"))return{};let{rows:x}=await o`
2405
+ `.execute(_)}}async function Q9(_){if(!await kT(_,"kysely_migration"))return{};let{rows:x}=await o`
2392
2406
  SELECT name FROM kysely_migration
2393
- `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(_x,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 x7(_){await sW(_),await bW(_);let x=new Qz({db:_,provider:{getMigrations:async()=>({...await _7(_),..._x})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((T)=>{if(T.status==="Success")K++;else if(T.status==="Error")console.error(`Failed to execute migration "${T.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function u7(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Pz();let T=u??ST(),m=async()=>{if(!x&&!u)await Jz(T).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await x7(T.db);return await m(),{betterAuth:K,kysely:z}}catch(z){throw await m(),z}}async function E8(){let _=ST(),x=new Qz({db:_.db,provider:{getMigrations:()=>Promise.resolve(_x)}}),{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 u7(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{x7 as runKyselyMigrations,u7 as migrateToLatest,E8 as migrateDown};
2407
+ `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Kx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function X9(_){await J9(_),await P9(_);let x=new Mz({db:_,provider:{getMigrations:async()=>({...await Q9(_),...Kx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((T)=>{if(T.status==="Success")K++;else if(T.status==="Error")console.error(`Failed to execute migration "${T.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function Z9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Hz();let T=u??wT(),m=async()=>{if(!x&&!u)await Dz(T).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await X9(T.db);return await m(),{betterAuth:K,kysely:z}}catch(z){throw await m(),z}}async function R3(){let _=wT(),x=new Mz({db:_.db,provider:{getMigrations:()=>Promise.resolve(Kx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await Z9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{X9 as runKyselyMigrations,Z9 as migrateToLatest,R3 as migrateDown};