decocms 4.497.0 → 4.497.1

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-CyYu6nD0.js} +1 -1
  2. package/dist/client/assets/{AlertCircle-uVTE_i_c.js → AlertCircle-CHrjAIcc.js} +1 -1
  3. package/dist/client/assets/{AreaChart-D-XLuzTF.js → AreaChart-CwoOvJ2_.js} +1 -1
  4. package/dist/client/assets/{ArrowLeft-D8kMxyF3.js → ArrowLeft-CDSbOlKg.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-baihphF6.js → ArrowUp-DVmGL0QN.js} +1 -1
  6. package/dist/client/assets/{BarChart-CmpYBluB.js → BarChart-pYmYrRAw.js} +1 -1
  7. package/dist/client/assets/{Building02-C-k2Qn__.js → Building02-Cjmi-E_Q.js} +1 -1
  8. package/dist/client/assets/{CategoricalChart-MIe_roxn.js → CategoricalChart-J69_dr0s.js} +1 -1
  9. package/dist/client/assets/{CheckCircle-BgOw0_dD.js → CheckCircle-DH3xbIup.js} +1 -1
  10. package/dist/client/assets/{ChevronSelectorVertical-e0qa2qKk.js → ChevronSelectorVertical-D3--DzuF.js} +1 -1
  11. package/dist/client/assets/{ChevronUp-B7O2Z2_x.js → ChevronUp-fo2ERVlh.js} +1 -1
  12. package/dist/client/assets/{Copy01-BR4eoDaW.js → Copy01-C7JKQ2yo.js} +1 -1
  13. package/dist/client/assets/{CreditCard01-pJwQfpbv.js → CreditCard01-DuhJeWgL.js} +1 -1
  14. package/dist/client/assets/{DotsVertical-DOuXLsMk.js → DotsVertical-CdIsXudQ.js} +1 -1
  15. package/dist/client/assets/{ErrorBarContext-BvlCrLLk.js → ErrorBarContext-PRGTHaZ1.js} +1 -1
  16. package/dist/client/assets/{Globe04-CYweJqdP.js → Globe04-CMhAsYW7.js} +1 -1
  17. package/dist/client/assets/{Image01-S90CE8VS.js → Image01-DQr5z6Eu.js} +1 -1
  18. package/dist/client/assets/{Key01-B5JsqJav.js → Key01-DkQjjPwv.js} +1 -1
  19. package/dist/client/assets/{Link01-Dz3IyYPr.js → Link01-CBvOTEVq.js} +1 -1
  20. package/dist/client/assets/{LinkBroken01-BKVx2uSk.js → LinkBroken01-CWg3Xs9J.js} +1 -1
  21. package/dist/client/assets/{Monitor01-KqB9ZF5U.js → Monitor01-CawnpOBp.js} +1 -1
  22. package/dist/client/assets/{Play-CygY0DVf.js → Play-CHfHT47l.js} +1 -1
  23. package/dist/client/assets/{Plus-Bj_QsLcq.js → Plus-Ch1sG4T5.js} +1 -1
  24. package/dist/client/assets/{SearchMd-CVAVwuts.js → SearchMd-D7CH4cEW.js} +1 -1
  25. package/dist/client/assets/{Sector-CRN92mNE.js → Sector-BdZY69jR.js} +1 -1
  26. package/dist/client/assets/{ShoppingBag01-DhR5OJ_o.js → ShoppingBag01-CFzAExOe.js} +1 -1
  27. package/dist/client/assets/{Sun-BCMSoFWP.js → Sun-AXWLcql2.js} +1 -1
  28. package/dist/client/assets/{SwitchHorizontal01-fI9_GGzc.js → SwitchHorizontal01-ZzQSxDu-.js} +1 -1
  29. package/dist/client/assets/{Tool01-Dpcs_fEX.js → Tool01-D47UxjHr.js} +1 -1
  30. package/dist/client/assets/{Trash01-BwiN-bXW.js → Trash01-DjbVg-Gr.js} +1 -1
  31. package/dist/client/assets/{Upload01-nkaaAbTH.js → Upload01-CongSYMk.js} +1 -1
  32. package/dist/client/assets/{User01-BSbwHeDW.js → User01-C0eJYwru.js} +1 -1
  33. package/dist/client/assets/{UserSquare-CG780QF2.js → UserSquare-D5hRO90M.js} +1 -1
  34. package/dist/client/assets/{Users01-BuQlctw3.js → Users01-C3nUQ4J2.js} +1 -1
  35. package/dist/client/assets/{XAxis-BIvxXYwH.js → XAxis-CHmQK-au.js} +1 -1
  36. package/dist/client/assets/{XClose-CohaLXz5.js → XClose-CEtKIB7q.js} +1 -1
  37. package/dist/client/assets/{ZoomOut-BSXGk2sm.js → ZoomOut-CrQxrOGW.js} +1 -1
  38. package/dist/client/assets/{access-gate-DOzt68zj.js → access-gate-rafBainF.js} +1 -1
  39. package/dist/client/assets/{add-connection-dialog-BHghNpDD.js → add-connection-dialog-CvB_KcBa.js} +1 -1
  40. package/dist/client/assets/{agent-analytics-652550mA.js → agent-analytics-BVxR4_Uj.js} +1 -1
  41. package/dist/client/assets/agent-app-D15rL7SC.js +1 -0
  42. package/dist/client/assets/{agent-assets-CO2mf3B-.js → agent-assets-B1OqFMpj.js} +1 -1
  43. package/dist/client/assets/agent-automation-ClFLOq4I.js +20 -0
  44. package/dist/client/assets/{agent-automations-DDRyU4rP.js → agent-automations-BFYTbfc-.js} +1 -1
  45. package/dist/client/assets/{agent-connect-sources-DCAIhIe3.js → agent-connect-sources-BRvuYQWx.js} +1 -1
  46. package/dist/client/assets/agent-deck-YSht4fJH.js +1 -0
  47. package/dist/client/assets/{agent-e2e-BDY9ZD6D.js → agent-e2e-B9CH2Mo6.js} +1 -1
  48. package/dist/client/assets/{agent-experiments-BxeTATqf.js → agent-experiments-DlztOCrU.js} +1 -1
  49. package/dist/client/assets/{agent-file-BmYB54QY.js → agent-file-CsIS9_4j.js} +1 -1
  50. package/dist/client/assets/{agent-hosting-RRRWwDeW.js → agent-hosting-Bknl93TE.js} +1 -1
  51. package/dist/client/assets/{agent-icon-CIAqO6q_.js → agent-icon-D25DK5wS.js} +1 -1
  52. package/dist/client/assets/agent-library-De8yrcgK.js +1 -0
  53. package/dist/client/assets/agent-library-file-DSYip22s.js +1 -0
  54. package/dist/client/assets/{agent-monitor-DsQakvWJ.js → agent-monitor-DyT5ig13.js} +1 -1
  55. package/dist/client/assets/{agent-overview-3FcxOPM6.js → agent-overview-ButxU5iy.js} +1 -1
  56. package/dist/client/assets/agent-settings-DYAVsnNu.js +1 -0
  57. package/dist/client/assets/{agent-site-editor-KhAad4Sw.js → agent-site-editor-Dl99KrED.js} +1 -1
  58. package/dist/client/assets/agent-site-editor-code-CPqEQaz5.js +2 -0
  59. package/dist/client/assets/{agent-site-editor-content-Fitmb8o7.js → agent-site-editor-content-Df_6cDHk.js} +3 -3
  60. package/dist/client/assets/{agent-site-editor-preview-DnnUYHiU.js → agent-site-editor-preview-CltuQS-a.js} +3 -3
  61. package/dist/client/assets/agent-view-6MnvsGap.js +1 -0
  62. package/dist/client/assets/{agent-view-guard-CKn2tf5j.js → agent-view-guard-CVsz0TkU.js} +1 -1
  63. package/dist/client/assets/{agents-list-DSQETxBR.js → agents-list-CeTR5ulR.js} +1 -1
  64. package/dist/client/assets/{ai-providers-DdDoqHhw.js → ai-providers-BZ2_pdED.js} +1 -1
  65. package/dist/client/assets/{alert-DWd3_VEN.js → alert-BK3mvJgc.js} +1 -1
  66. package/dist/client/assets/{alert-dialog-ivXO19po.js → alert-dialog-CmV9dy9T.js} +1 -1
  67. package/dist/client/assets/{analytics-sections-Bhuxqwzw.js → analytics-sections-BrCaGlQS.js} +1 -1
  68. package/dist/client/assets/{api-keys-DjqDXSVz.js → api-keys-BjhtfTv5.js} +1 -1
  69. package/dist/client/assets/api-keys-CIOehITH.js +1 -0
  70. package/dist/client/assets/app-editor-jDyn4P31.js +1 -0
  71. package/dist/client/assets/{asset-utils-jXJjDaKi.js → asset-utils-CM76tGw5.js} +1 -1
  72. package/dist/client/assets/{auth-catchall-CMZXJiIT.js → auth-catchall-BHpuDx65.js} +1 -1
  73. package/dist/client/assets/{auth-entry-D2I0FV-M.js → auth-entry-DTqozZzK.js} +1 -1
  74. package/dist/client/assets/{auth-C16DiwpU.js → auth-mnJ9PW01.js} +1 -1
  75. package/dist/client/assets/{auth-split-layout-lGr4mQP-.js → auth-split-layout-nnK4QA-M.js} +1 -1
  76. package/dist/client/assets/{authenticate-and-persist-oauth-BzcsLm_G.js → authenticate-and-persist-oauth-Bpiv3RO5.js} +1 -1
  77. package/dist/client/assets/{automation-list-row-BIpt7Z6o.js → automation-list-row-YpYqBxpc.js} +1 -1
  78. package/dist/client/assets/{automation-runs-Dx7LKstr.js → automation-runs-Cjsz3sNl.js} +1 -1
  79. package/dist/client/assets/{automations-CbuyiPha.js → automations-K16w9IfU.js} +1 -1
  80. package/dist/client/assets/{autosend-8Zl7NQ67.js → autosend-BaSnPt7x.js} +1 -1
  81. package/dist/client/assets/{avatar-PHlRD3By.js → avatar-Co-052cR.js} +1 -1
  82. package/dist/client/assets/{badge-BTJCq3tr.js → badge-CSXpEa55.js} +1 -1
  83. package/dist/client/assets/{block-document-BKlsJNkE.js → block-document-Dwi86oHf.js} +1 -1
  84. package/dist/client/assets/{blocks-preview-workspace-context-D9S2qjUS.js → blocks-preview-workspace-context-BOZf-loo.js} +1 -1
  85. package/dist/client/assets/{blog-schema-B0HiB2cA.js → blog-schema-D-OKi5uD.js} +1 -1
  86. package/dist/client/assets/{board-analytics-DYBHTjV-.js → board-analytics-Dtj7gftE.js} +1 -1
  87. package/dist/client/assets/{buckets-DNw0rMyq.js → buckets-Tw-Ph4JX.js} +1 -1
  88. package/dist/client/assets/{build-improve-prompt-doc-CmTPuV4H.js → build-improve-prompt-doc-DSsqKodq.js} +1 -1
  89. package/dist/client/assets/{calendar-Bpz7Lz-y.js → calendar-DCoBKIit.js} +1 -1
  90. package/dist/client/assets/{capability-load-error-B3pMqWw1.js → capability-load-error-D4Y-1y8Z.js} +1 -1
  91. package/dist/client/assets/{category-editor-DLwiIFGA.js → category-editor-15WhKdzJ.js} +1 -1
  92. package/dist/client/assets/{chart-5JvOgFAK.js → chart-D8S5B3Fk.js} +1 -1
  93. package/dist/client/assets/{chat-context-3OXKEqSh.js → chat-context-BvnYD9Wb.js} +1 -1
  94. package/dist/client/assets/{chat-draft-oK0pqHaC.js → chat-draft-BUwzbZEb.js} +1 -1
  95. package/dist/client/assets/{checkbox-CRsuhP53.js → checkbox-CVokasRh.js} +1 -1
  96. package/dist/client/assets/{choose-editor-PDE1zqLa.js → choose-editor-B_kWfVxF.js} +1 -1
  97. package/dist/client/assets/{claim-phase-copy-BOnhDNWe.js → claim-phase-copy-D7K6r9pB.js} +1 -1
  98. package/dist/client/assets/{cli-auth-success-DFy-lvLA.js → cli-auth-success-BjJ_-CPN.js} +1 -1
  99. package/dist/client/assets/{client-icons-GrM8G8gc.js → client-icons-R8IUwnS4.js} +1 -1
  100. package/dist/client/assets/{collapsible-z-JwdUiM.js → collapsible-BpQWnMqu.js} +1 -1
  101. package/dist/client/assets/{collection-detail-Dhq8Wz0G.js → collection-detail-BTjqy1Rt.js} +1 -1
  102. package/dist/client/assets/{collection-display-button-COwoiqJ0.js → collection-display-button-CwZjncaa.js} +1 -1
  103. package/dist/client/assets/{collection-search-ZrNbDYaq.js → collection-search-CFCYIYsp.js} +1 -1
  104. package/dist/client/assets/{collection-table-wrapper-BxHhUj6Y.js → collection-table-wrapper-9DXb8a6f.js} +1 -1
  105. package/dist/client/assets/{collection-tabs-CZnO-KJm.js → collection-tabs-D1MI1rbf.js} +1 -1
  106. package/dist/client/assets/{column-rules-CU0QM4zZ.js → column-rules-CKqZ2w7B.js} +1 -1
  107. package/dist/client/assets/{combobox-bRQw-jDN.js → combobox-8uTSWM7x.js} +1 -1
  108. package/dist/client/assets/{command--1ySxBzC.js → command-zNxZAzCt.js} +1 -1
  109. package/dist/client/assets/{companion-mcps-section-DbOOs4Di.js → companion-mcps-section-Dn6CWwBU.js} +1 -1
  110. package/dist/client/assets/{config-DxkhWHvI.js → config-zAMyoP2u.js} +1 -1
  111. package/dist/client/assets/{connect-Cy-QXX6T.js → connect-B0eXPnXO.js} +1 -1
  112. package/dist/client/assets/{connect-layout-B_xraWMz.js → connect-layout-DiQFJtzW.js} +1 -1
  113. package/dist/client/assets/{connection-eFBHXnq8.js → connection-1bY4JOT7.js} +1 -1
  114. package/dist/client/assets/{connection-card-Dd1Miwos.js → connection-card-BPhgcvjc.js} +1 -1
  115. package/dist/client/assets/{connection-detail-BhSOyfOS.js → connection-detail-Bb0U2uNL.js} +1 -1
  116. package/dist/client/assets/{connection-form-helpers-CjAkllf4.js → connection-form-helpers-BHdjytOT.js} +1 -1
  117. package/dist/client/assets/{connections-DptsGWqU.js → connections-C9nogFwq.js} +1 -1
  118. package/dist/client/assets/{context-DvjPJlI1.js → context-l2XAj4L-.js} +1 -1
  119. package/dist/client/assets/{context-menu-DTbN-B-u.js → context-menu-BJ4Hqd4H.js} +1 -1
  120. package/dist/client/assets/{core.esm-BmdNjDzv.js → core.esm-l5VXFwhd.js} +1 -1
  121. package/dist/client/assets/{create-organization-dialog-BRn1itMS.js → create-organization-dialog-BDaja_nV.js} +1 -1
  122. package/dist/client/assets/{daily-pulse-C_sHN310.js → daily-pulse-DOsYKARy.js} +1 -1
  123. package/dist/client/assets/{device-hint-BA8nYrWU.js → device-hint-PXv02Ucu.js} +1 -1
  124. package/dist/client/assets/{discover-DGp_fHdG.js → discover-BiY2-MAZ.js} +1 -1
  125. package/dist/client/assets/{domain-settings-Bz6k7ub5.js → domain-settings-B2qAb04P.js} +1 -1
  126. package/dist/client/assets/{drawer-wiDylD44.js → drawer-DL5bFgNR.js} +1 -1
  127. package/dist/client/assets/{editor-DbVDLInM.js → editor-EMcWHln-.js} +1 -1
  128. package/dist/client/assets/{empty-state-CpJixEa0.js → empty-state-Bk1ubmvv.js} +1 -1
  129. package/dist/client/assets/{empty-state-GrM64x-h.js → empty-state-Dl0uE1qg.js} +1 -1
  130. package/dist/client/assets/{extract-connection-data-BFr1XefI.js → extract-connection-data-DIxd-Pe9.js} +1 -1
  131. package/dist/client/assets/{feature-gate-DIjgMR-H.js → feature-gate-D_5Zcern.js} +1 -1
  132. package/dist/client/assets/{feature-paywall-DygeAwCp.js → feature-paywall-uSo5NgIk.js} +1 -1
  133. package/dist/client/assets/{file-explorer-sgwcJgTB.js → file-explorer-BLs0vfRV.js} +1 -1
  134. package/dist/client/assets/{file-preview-KMq6kQbY.js → file-preview-C_zyLNU0.js} +1 -1
  135. package/dist/client/assets/{file-share-button-BmW3xptu.js → file-share-button-DVm15sOV.js} +1 -1
  136. package/dist/client/assets/{file-type-icon-CH0zVmFE.js → file-type-icon-BFUya14p.js} +1 -1
  137. package/dist/client/assets/flat-project-CcomIoqo.js +1 -0
  138. package/dist/client/assets/{folder-icon-Dvr9Xy_h.js → folder-icon-aFp6Qaf_.js} +1 -1
  139. package/dist/client/assets/{form-ChrFSKbl.js → form-D_HjHR78.js} +1 -1
  140. package/dist/client/assets/{general-CSM1Afsf.js → general-DWYlQqAU.js} +1 -1
  141. package/dist/client/assets/{home-CmR382BT.js → home-C39XJuuC.js} +1 -1
  142. package/dist/client/assets/{icon-button-BEh8g82p.js → icon-button-CWnlJ_oZ.js} +1 -1
  143. package/dist/client/assets/{index-Dpzy6FT0.js → index-8oPwgK8U.js} +1 -1
  144. package/dist/client/assets/{index-FPsrk3s0.js → index-Ah1SD4qu.js} +1 -1
  145. package/dist/client/assets/{index-BL1llwK-.js → index-B5s2AYv_.js} +1 -1
  146. package/dist/client/assets/{index-Dp4NtPWu.js → index-BBBK2Mw-.js} +1 -1
  147. package/dist/client/assets/{index-Br_k5ZoS.js → index-BGn4_CUT.js} +1 -1
  148. package/dist/client/assets/{index-CNBMfDzu.js → index-C8H_whn6.js} +3 -3
  149. package/dist/client/assets/{index-5v4d81Co.js → index-Cxl4iIy5.js} +1 -1
  150. package/dist/client/assets/{index-1lCyt6wZ.js → index-DXJRwxmV.js} +1 -1
  151. package/dist/client/assets/{index-BdbMrrND.js → index-Dbiuixsg.js} +1 -1
  152. package/dist/client/assets/{index-CAxew9_u.js → index-DqBs1i86.js} +1 -1
  153. package/dist/client/assets/{index-GNzYGBzv.js → index-DwYK88xA.js} +1 -1
  154. package/dist/client/assets/{index-BvNW8UPM.js → index-TStkGKDV.js} +1 -1
  155. package/dist/client/assets/{index-redirect-B_k2XKG7.js → index-redirect-qy-HGqdF.js} +1 -1
  156. package/dist/client/assets/{index-E8HkK7le.js → index-zFizTRgJ.js} +4 -4
  157. package/dist/client/assets/{infiniteQueryObserver-B_6kT4Pu.js → infiniteQueryObserver-DR5G3_XI.js} +1 -1
  158. package/dist/client/assets/{infra-billing-DntZ94Fv.js → infra-billing-DZ12o-of.js} +1 -1
  159. package/dist/client/assets/{input-DzGUnaT4.js → input-DrtuDHta.js} +3 -3
  160. package/dist/client/assets/{input-Bf9hsVol.js → input-LrUKUue2.js} +1 -1
  161. package/dist/client/assets/{integration-icon-BMM9bKRw.js → integration-icon-Bdyedi1P.js} +1 -1
  162. package/dist/client/assets/{jira-icon-Cj12G8eH.js → jira-icon-C5IDdjgJ.js} +1 -1
  163. package/dist/client/assets/{label-DAC0PXH6.js → label-CGeSw_vU.js} +1 -1
  164. package/dist/client/assets/{layout-DH0wfMvp.js → layout-D3tajt2K.js} +1 -1
  165. package/dist/client/assets/{legacy-agents-deep-DKcmw_C9.js → legacy-agents-deep-CfrBn8K6.js} +1 -1
  166. package/dist/client/assets/{legacy-main-redirect-xF3AIf85.js → legacy-main-redirect-BKFq0f1c.js} +1 -1
  167. package/dist/client/assets/library-DoTX8yJa.js +1 -0
  168. package/dist/client/assets/{library-tab-C0sI5AvO.js → library-tab-CedtT6BF.js} +1 -1
  169. package/dist/client/assets/{login-CyNOjPxx.js → login-Dxq0oJju.js} +1 -1
  170. package/dist/client/assets/{markdown-D9Q4_EWf.js → markdown-Wp7WM_6R.js} +1 -1
  171. package/dist/client/assets/{mcp-app-renderer-CJllCuFA.js → mcp-app-renderer-D4yJqapi.js} +1 -1
  172. package/dist/client/assets/{mcp-oauth-Cm-FGk67.js → mcp-oauth-BWnNfhKY.js} +1 -1
  173. package/dist/client/assets/{mcp-oauth-D5hp_76q.js → mcp-oauth-BvraKhnX.js} +1 -1
  174. package/dist/client/assets/{members-aCVioT1N.js → members-NoAgJggW.js} +1 -1
  175. package/dist/client/assets/{memory-Fzdui2vo.js → memory-DPCydpI9.js} +1 -1
  176. package/dist/client/assets/{mini-report-page-BTvq-myp.js → mini-report-page-CKiZSO3Y.js} +1 -1
  177. package/dist/client/assets/{mock-board-BctOoM75.js → mock-board-ldzlXXTT.js} +1 -1
  178. package/dist/client/assets/{monaco-editor-DxsHSHr3.js → monaco-editor-Cw6bHZ9D.js} +1 -1
  179. package/dist/client/assets/{monitoring-stats-row-BPpGukbV.js → monitoring-stats-row-DUI3089C.js} +1 -1
  180. package/dist/client/assets/{multi-select-BEZlzNPL.js → multi-select-C64565zf.js} +1 -1
  181. package/dist/client/assets/{mustache-C_2NGupD.js → mustache-jBGE1x8P.js} +1 -1
  182. package/dist/client/assets/{new-project-dialog-CBz8t6bW.js → new-project-dialog-B0XejRtR.js} +1 -1
  183. package/dist/client/assets/{oauth-callback-D-TIiYCW.js → oauth-callback-K1LG85n6.js} +1 -1
  184. package/dist/client/assets/{oauth-callback-ai-provider-COJwjuqo.js → oauth-callback-ai-provider-Az104D_B.js} +1 -1
  185. package/dist/client/assets/{onboarding-BvA8qKid.js → onboarding-BStXwTJO.js} +1 -1
  186. package/dist/client/assets/{openai-conversation-DMNH07wd.js → openai-conversation-63MRsej5.js} +1 -1
  187. package/dist/client/assets/{optimistic-project-sidebar-views-B82d2Iyt.js → optimistic-project-sidebar-views-BPQEjG_5.js} +1 -1
  188. package/dist/client/assets/{organization-choice-DZk2VZFD.js → organization-choice-CWJmmXl2.js} +1 -1
  189. package/dist/client/assets/{orgs-D1rtBs1u.js → orgs-RqN1nvSn.js} +1 -1
  190. package/dist/client/assets/{page-seo-form-DC_uQ_yb.js → page-seo-form-Dqs31MJ3.js} +1 -1
  191. package/dist/client/assets/{pair-BHsCddMQ.js → pair-BArWn6jb.js} +1 -1
  192. package/dist/client/assets/{plan-ladder-D5P8cNNU.js → plan-ladder-CFynazEn.js} +1 -1
  193. package/dist/client/assets/{popover-BiATgeVZ.js → popover-DTEHxwlD.js} +1 -1
  194. package/dist/client/assets/{post-calendar-XwNvndsR.js → post-calendar-BoU1ZOL5.js} +1 -1
  195. package/dist/client/assets/{post-editor-CIVzwScJ.js → post-editor-DijifWaY.js} +1 -1
  196. package/dist/client/assets/{preview-content-D4a4Kxnw.js → preview-content-4n74nMkm.js} +1 -1
  197. package/dist/client/assets/{preview-dialog-DXvP_rSt.js → preview-dialog-BfJBjitf.js} +1 -1
  198. package/dist/client/assets/{preview-panel-9m4lCkpb.js → preview-panel-Ckv4GBo6.js} +1 -1
  199. package/dist/client/assets/{product-picker-dialog-BFXbOjF7.js → product-picker-dialog-DegN_8hj.js} +1 -1
  200. package/dist/client/assets/{profile-UHLqhuh9.js → profile-BNI-FeGN.js} +1 -1
  201. package/dist/client/assets/{project-app-view-7PLU79fP.js → project-app-view-BJKmTYP6.js} +1 -1
  202. package/dist/client/assets/{project-feed-BMzjV3aS.js → project-feed-CthJ5cL5.js} +1 -1
  203. package/dist/client/assets/{project-icon-CtWmpx-o.js → project-icon-CLft8LNy.js} +1 -1
  204. package/dist/client/assets/project-reports-BPIYWSN5.js +1 -0
  205. package/dist/client/assets/project-tasks-D89Pcpsx.js +1 -0
  206. package/dist/client/assets/{projects-BKfqSW6u.js → projects-CmeO8oT0.js} +1 -1
  207. package/dist/client/assets/{projects-empty-state-CansCxa8.js → projects-empty-state-Cu-dnKwc.js} +1 -1
  208. package/dist/client/assets/{prompts-DF0ao_FF.js → prompts-DpC1en1o.js} +1 -1
  209. package/dist/client/assets/record-editor-rZo87T7s.js +1 -0
  210. package/dist/client/assets/redirect-editor-BebKUMtd.js +1 -0
  211. package/dist/client/assets/reports-DbXtySYc.js +1 -0
  212. package/dist/client/assets/{reports-BtVp7TUw.js → reports-ikhGH7I0.js} +1 -1
  213. package/dist/client/assets/{reports-onboarding-DJFr_1o0.js → reports-onboarding-cozwetlX.js} +1 -1
  214. package/dist/client/assets/{reports-tab-lxUznXDf.js → reports-tab-B2H0nIWm.js} +2 -2
  215. package/dist/client/assets/{repositories-D-XY1mEG.js → repositories-6dyicYgL.js} +1 -1
  216. package/dist/client/assets/{repository-binding-DJSfVmK0.js → repository-binding-D4HjFqUu.js} +1 -1
  217. package/dist/client/assets/{repository-import-picker-CN4nBNQQ.js → repository-import-picker-D32RWglo.js} +1 -1
  218. package/dist/client/assets/{repository-picker-Bq1Xf_Nc.js → repository-picker-BS8S1A4D.js} +1 -1
  219. package/dist/client/assets/{require-capability-tnxMTQ41.js → require-capability-QNDooqDp.js} +1 -1
  220. package/dist/client/assets/{required-auth-layout-OT71YdwW.js → required-auth-layout-DV0YP59y.js} +1 -1
  221. package/dist/client/assets/{reset-password-b4ZAeKZf.js → reset-password-Bq3L1AQn.js} +1 -1
  222. package/dist/client/assets/{resizable-zpo8XDIL.js → resizable-aYdS6ucz.js} +1 -1
  223. package/dist/client/assets/{resolve-tab-icon-DELF6fBY.js → resolve-tab-icon-wP6kmFpV.js} +1 -1
  224. package/dist/client/assets/{review-settings-C7_0upab.js → review-settings-VHbdYUwC.js} +1 -1
  225. package/dist/client/assets/{rich-text-link-control-r6aMgCnO.js → rich-text-link-control-ZhLX7YkH.js} +1 -1
  226. package/dist/client/assets/{roles-BNqONgK2.js → roles-DydRZQvS.js} +1 -1
  227. package/dist/client/assets/route-B-Xt506d.js +1 -0
  228. package/dist/client/assets/{route-ClCedNlY.js → route-C0Fgh6Gu.js} +1 -1
  229. package/dist/client/assets/{route-2S2BeRzM.js → route-Dp89Dh0m.js} +1 -1
  230. package/dist/client/assets/{runnable-block-editor-TLQt5HEP.js → runnable-block-editor-C8XWqppj.js} +1 -1
  231. package/dist/client/assets/{sandbox-lifecycle-context-B3tBEBAU.js → sandbox-lifecycle-context-DXFQTTJR.js} +1 -1
  232. package/dist/client/assets/{schema-DAFIdNnw.js → schema-6H-MEggI.js} +1 -1
  233. package/dist/client/assets/{scroll-area-D65kWya9.js → scroll-area-DsRpgTQ9.js} +1 -1
  234. package/dist/client/assets/{search-input-CZqwR2Em.js → search-input-BHgo2lGV.js} +1 -1
  235. package/dist/client/assets/{search-toggle-CZvcgEuO.js → search-toggle-Dd-dflFz.js} +1 -1
  236. package/dist/client/assets/{secret-picker-D9zGuUhM.js → secret-picker-A2PMU4gO.js} +1 -1
  237. package/dist/client/assets/{secrets-BL-nilzb.js → secrets-D9v5ukDd.js} +1 -1
  238. package/dist/client/assets/{sections-editor-Cj-wrCnm.js → sections-editor-DWV3GkFv.js} +1 -1
  239. package/dist/client/assets/{select-JMx_Daeq.js → select-PUQ7cwv_.js} +1 -1
  240. package/dist/client/assets/{select-model-DcZybkpW.js → select-model-Benrx5ds.js} +1 -1
  241. package/dist/client/assets/{seo-editor-5GEPfBh6.js → seo-editor-DR6dMEeh.js} +1 -1
  242. package/dist/client/assets/{separator-BQJNbeVU.js → separator-XSPXTmbD.js} +1 -1
  243. package/dist/client/assets/{settings-tab-yEsrogNk.js → settings-tab-C9b_gZUS.js} +1 -1
  244. package/dist/client/assets/{sheet-ft1vIPTI.js → sheet-CJnM8ySE.js} +1 -1
  245. package/dist/client/assets/{shell-layout-BfZ3aLwK.js → shell-layout-Dai0p-76.js} +1 -1
  246. package/dist/client/assets/{skills-DIxWKIpf.js → skills-CpJ2yl_V.js} +1 -1
  247. package/dist/client/assets/{slider-DzfY-AKn.js → slider-DOtGgAh5.js} +1 -1
  248. package/dist/client/assets/{sortable.esm-C25gMPOU.js → sortable.esm-igu-P_53.js} +1 -1
  249. package/dist/client/assets/{sso-DMISGA1g.js → sso-CpAigUKO.js} +1 -1
  250. package/dist/client/assets/{suggestion-CkSKi3Ko.js → suggestion-kKk_djZn.js} +1 -1
  251. package/dist/client/assets/{switch-D1o5UUPU.js → switch-C4raYBaD.js} +1 -1
  252. package/dist/client/assets/{symbol-BihNL2x9.js → symbol-DSyQEkVd.js} +1 -1
  253. package/dist/client/assets/{synced-repos-THZeI2TX.js → synced-repos-DhkSYvjz.js} +1 -1
  254. package/dist/client/assets/{tab-icon-glyph-D-qnzCLe.js → tab-icon-glyph-DbT7H6I0.js} +1 -1
  255. package/dist/client/assets/{table-_5HbhT_S.js → table-ZhEY60SW.js} +1 -1
  256. package/dist/client/assets/{tabs-BaVhZf2S.js → tabs-sH7FADTj.js} +1 -1
  257. package/dist/client/assets/{task-board-BhjqCSbG.js → task-board-Cz8RAkVC.js} +1 -1
  258. package/dist/client/assets/{task-route-RXmOd-Sg.js → task-route-dAZzlYHx.js} +1 -1
  259. package/dist/client/assets/{task-status-BMH2aOWE.js → task-status-jzoHxLXE.js} +1 -1
  260. package/dist/client/assets/taskboard-analytics-D4etS4F2.js +1 -0
  261. package/dist/client/assets/tasks-cUD-vzLP.js +1 -0
  262. package/dist/client/assets/{tasks-BmHnYLCK.js → tasks-spnz6wGT.js} +1 -1
  263. package/dist/client/assets/{textarea-DUqfavim.js → textarea-Dh1uG6Oe.js} +1 -1
  264. package/dist/client/assets/{thread-analytics-CaZ650wR.js → thread-analytics-D7o3M7SE.js} +1 -1
  265. package/dist/client/assets/{thread-button-C_voRhAW.js → thread-button-CVcG35Zp.js} +1 -1
  266. package/dist/client/assets/{thread-intent-DIdLWs3T.js → thread-intent-DHio6v3T.js} +1 -1
  267. package/dist/client/assets/{thread-route-C0aHNen1.js → thread-route-JC5U7UAP.js} +1 -1
  268. package/dist/client/assets/{thread-route-Bsh0W3WI.js → thread-route-P2oNmklm.js} +1 -1
  269. package/dist/client/assets/{thread-sheet-body-Ck9K6X-O.js → thread-sheet-body-Cb8plLTN.js} +1 -1
  270. package/dist/client/assets/{time-range-picker-CNwi7PKe.js → time-range-picker-BXMVgeAS.js} +1 -1
  271. package/dist/client/assets/{toggle-group-B-oqQV0Q.js → toggle-group-BbN_e8eb.js} +1 -1
  272. package/dist/client/assets/{tool-namespace-D73-Yt47.js → tool-namespace-CTfr8zMP.js} +1 -1
  273. package/dist/client/assets/{toolbar-icon-button-CWTFjB2x.js → toolbar-icon-button-NKHQPydk.js} +1 -1
  274. package/dist/client/assets/{tooltip-Bgaj6wao.js → tooltip-Ckfi6awk.js} +1 -1
  275. package/dist/client/assets/{tooltipContext-Hyh6Z90v.js → tooltipContext-DNPFPGFA.js} +1 -1
  276. package/dist/client/assets/{track-bmLGXYyb.js → track-CteSCTlH.js} +1 -1
  277. package/dist/client/assets/{types-DSarHVWN.js → types-BwEFq7Yg.js} +1 -1
  278. package/dist/client/assets/{url-slug-BCtPmKcV.js → url-slug-xcarTcti.js} +1 -1
  279. package/dist/client/assets/{usage-stats-CPP4mykS.js → usage-stats-Dpg2tIh9.js} +1 -1
  280. package/dist/client/assets/{use-ai-providers-4IWNnMYR.js → use-ai-providers-BdUdNx5z.js} +1 -1
  281. package/dist/client/assets/{use-automations-BNBMB7NJ.js → use-automations-J4kPNxTM.js} +1 -1
  282. package/dist/client/assets/{use-autosave-CCI_H2Jh.js → use-autosave-vvOEWidH.js} +1 -1
  283. package/dist/client/assets/{use-chat-layout-state-CbsP3hVN.js → use-chat-layout-state-ooCEsZNA.js} +1 -1
  284. package/dist/client/assets/{use-chat-navigation-Bvo_pyzq.js → use-chat-navigation-Cs9RLkky.js} +1 -1
  285. package/dist/client/assets/{use-clock-tick-BH2s8rwm.js → use-clock-tick-CXFIi4J4.js} +1 -1
  286. package/dist/client/assets/{use-connect-companion-D-T5tZi4.js → use-connect-companion-DyLCP6sw.js} +1 -1
  287. package/dist/client/assets/{use-connection-B7mxZZZr.js → use-connection-BWEGKt3t.js} +1 -1
  288. package/dist/client/assets/{use-copy-BDIhU1a3.js → use-copy-B3Z2bU9n.js} +1 -1
  289. package/dist/client/assets/{use-create-virtual-mcp-DzT7Wi_g.js → use-create-virtual-mcp-CeEgD0KJ.js} +1 -1
  290. package/dist/client/assets/{use-date-fns-locale-CcYc8FC-.js → use-date-fns-locale-BwHZTp1d.js} +1 -1
  291. package/dist/client/assets/{use-debounced-autosave-BZQvNBgR.js → use-debounced-autosave-B-RYAOgV.js} +1 -1
  292. package/dist/client/assets/{use-debounced-value-DogqGlHA.js → use-debounced-value-BPpgN-4m.js} +1 -1
  293. package/dist/client/assets/{use-deco-credits-D8fC6T0N.js → use-deco-credits-DO7YD9IY.js} +1 -1
  294. package/dist/client/assets/{use-decopilot-events-CG41uF0G.js → use-decopilot-events-DRwe4roK.js} +1 -1
  295. package/dist/client/assets/{use-delete-connection-B8gkfexB.js → use-delete-connection-CP3eQN94.js} +1 -1
  296. package/dist/client/assets/{use-deployment-admin-DMHoNV8K.js → use-deployment-admin-xj8zFarX.js} +1 -1
  297. package/dist/client/assets/{use-ensure-project-folder-BXtCOD89.js → use-ensure-project-folder-_cAiUEgx.js} +1 -1
  298. package/dist/client/assets/{use-fast-preview-draft-url-ClgFfcai.js → use-fast-preview-draft-url-B4iSUSL0.js} +1 -1
  299. package/dist/client/assets/{use-file-configs-CfHrYQ0D.js → use-file-configs-CayvqTYD.js} +1 -1
  300. package/dist/client/assets/{use-infinite-scroll-Doz-tD5w.js → use-infinite-scroll-Bs5bj_x4.js} +1 -1
  301. package/dist/client/assets/{use-join-requests-C6Zrd-wF.js → use-join-requests-D0a7nWGC.js} +1 -1
  302. package/dist/client/assets/{use-main-panel-tabs-BI-yjZaf.js → use-main-panel-tabs-BV3U-pk7.js} +1 -1
  303. package/dist/client/assets/{use-mcp-auth-status-DT1RFPS5.js → use-mcp-auth-status-CGqJtK6Y.js} +1 -1
  304. package/dist/client/assets/{use-mcp-client-HXdOgSo1.js → use-mcp-client-BpCQxGRA.js} +1 -1
  305. package/dist/client/assets/{use-mcp-prompts-Dc22OpBz.js → use-mcp-prompts-B6BIbud4.js} +1 -1
  306. package/dist/client/assets/{use-mcp-tools-SgFCxAm4.js → use-mcp-tools-BBrUvrr2.js} +1 -1
  307. package/dist/client/assets/{use-members-BnU8sD2a.js → use-members-BXZtT1Ge.js} +1 -1
  308. package/dist/client/assets/{use-mobile-DMhjc8sS.js → use-mobile-cnelp-tf.js} +1 -1
  309. package/dist/client/assets/{use-navigate-to-agent-8FxeDEql.js → use-navigate-to-agent-Yt28jbt_.js} +1 -1
  310. package/dist/client/assets/use-new-blocks-editor-DleK5Imc.js +1 -0
  311. package/dist/client/assets/{use-open-billing-url-CGiwz5yQ.js → use-open-billing-url-Ch7hXR43.js} +1 -1
  312. package/dist/client/assets/{use-org-auth-client-CjFoGBiw.js → use-org-auth-client-DQ_TpKIV.js} +1 -1
  313. package/dist/client/assets/{use-org-fs-Brfqc0DM.js → use-org-fs-Dd1pklx8.js} +1 -1
  314. package/dist/client/assets/{use-org-repo-syncs-Dn8ueEn8.js → use-org-repo-syncs-a3Bo4Nwx.js} +1 -1
  315. package/dist/client/assets/{use-org-sso-5XSC3bo7.js → use-org-sso-AbZWzz8J.js} +1 -1
  316. package/dist/client/assets/{use-organization-roles-CPEXva6v.js → use-organization-roles-BbdurYTP.js} +1 -1
  317. package/dist/client/assets/{use-organization-settings-C1JjAa2e.js → use-organization-settings-C9ru61wI.js} +1 -1
  318. package/dist/client/assets/{use-panel-navigate-B5g-cXoX.js → use-panel-navigate-DlGjk1uT.js} +1 -1
  319. package/dist/client/assets/{use-project-scope-C_W_iYCG.js → use-project-scope-mUU3XQll.js} +1 -1
  320. package/dist/client/assets/{use-releases-aiz7Xp_5.js → use-releases-Rs4UUF42.js} +1 -1
  321. package/dist/client/assets/{use-reports-diagnostic-Dx6jRAHR.js → use-reports-diagnostic-CmuuQULK.js} +1 -1
  322. package/dist/client/assets/{use-sandbox-events-VQD2dbMh.js → use-sandbox-events-B_Tbe66F.js} +1 -1
  323. package/dist/client/assets/{use-secrets-COPHY6zn.js → use-secrets-zTdjn1K_.js} +1 -1
  324. package/dist/client/assets/{use-section-preview-base-DPHgFiJr.js → use-section-preview-base-CxaSIwgr.js} +1 -1
  325. package/dist/client/assets/{use-tags-NK0RVjrR.js → use-tags-DcdzwPHe.js} +1 -1
  326. package/dist/client/assets/{use-task-board-analytics-CDUEw4yr.js → use-task-board-analytics-Cq5LBBkL.js} +1 -1
  327. package/dist/client/assets/{use-task-board-events-DtM0CgpV.js → use-task-board-events-DV0GzDSl.js} +1 -1
  328. package/dist/client/assets/{use-task-board-item-prs-uJK_d1d_.js → use-task-board-item-prs-DWyfXvRg.js} +1 -1
  329. package/dist/client/assets/{use-task-board-items-ByQWsAvO.js → use-task-board-items-D-sN0nLG.js} +1 -1
  330. package/dist/client/assets/{use-task-metadata-YcyCc5iY.js → use-task-metadata-DH7eHsp7.js} +1 -1
  331. package/dist/client/assets/{use-thread-analytics-VXUKGF1M.js → use-thread-analytics-BcaFH3FR.js} +1 -1
  332. package/dist/client/assets/{use-thread-outputs-CcHD0dx2.js → use-thread-outputs-BVWpj6Pt.js} +1 -1
  333. package/dist/client/assets/useInfiniteQuery-DTGbHHjG.js +1 -0
  334. package/dist/client/assets/{useQueries-D6R5SUUn.js → useQueries-DAsYe7-V.js} +1 -1
  335. package/dist/client/assets/useSuspenseInfiniteQuery-CGs3Z4Zs.js +1 -0
  336. package/dist/client/assets/{users-CpYFV7v9.js → users-BDKuEOgV.js} +1 -1
  337. package/dist/client/assets/{utils-DcA-ys_Q.js → utils-B26RJwPU.js} +1 -1
  338. package/dist/client/assets/{variant-calendar-BCj7kcYa.js → variant-calendar-B5hD6nTB.js} +1 -1
  339. package/dist/client/assets/{variant-matcher-override-uy8AIyK6.js → variant-matcher-override-CQDkjZB9.js} +1 -1
  340. package/dist/client/assets/{view-mode-toggle-Fs_5ypxv.js → view-mode-toggle-DgaXBu8I.js} +1 -1
  341. package/dist/client/assets/{virtual-mcp-BQkclqkV.js → virtual-mcp-CPDSnrGy.js} +1 -1
  342. package/dist/client/assets/{watch-sse-pool-afzfEiDL.js → watch-sse-pool-BFcKHKod.js} +1 -1
  343. package/dist/client/index.html +1 -1
  344. package/dist/server/migrate.js +243 -236
  345. package/dist/server/server.js +613 -613
  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 Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null,x)}var C=(_,x)=>{for(var u in x)Fz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Yz.bind(x,u)})};import{Migrator as Lz,sql as o}from"kysely";var mx={};C(mx,{up:()=>Hz,down:()=>Mz});import{sql as VT}from"kysely";async function Hz(_){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",VT`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",VT`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function Mz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var zx={};C(zx,{up:()=>Rz,down:()=>Bz});import{sql as a}from"kysely";async function Rz(_){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 Bz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Ex={};C(Ex,{up:()=>Gz,down:()=>Oz});import{sql as wT}from"kysely";async function Gz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await wT`
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 wT`
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 Oz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var $x={};C($x,{up:()=>Sz,down:()=>fz});async function Sz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function fz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Jx={};C(Jx,{up:()=>Az,down:()=>Iz});import{sql as Ux}from"kysely";async function Az(_){await Ux`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Ux`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Ux`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function Iz(_){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 Qx={};C(Qx,{up:()=>wz,down:()=>kz});import{sql as G}from"kysely";var yz={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"}},Vz={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"}},Px={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function kT(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function nT(_,x){for(let[K,T]of[[G`organization_id || '_commerce-discovery'`,yz],[G`'commerce-discovery_' || organization_id`,Vz]])for(let m of["title","description"]){let{from:z,to:E}=kT(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}=kT(Px.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' = ${Px.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' = ${Px.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 wz(_){await nT(_,"up")}async function kz(_){await nT(_,"down")}var Zx={};C(Zx,{up:()=>vz,down:()=>pz,ACTIONS:()=>Xx});import{sql as N_}from"kysely";var Xx=["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"],nz=Xx.filter((_)=>_!=="finding_resolved");async function vz(_){await vT(_,Xx)}async function pz(_){await N_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await vT(_,nz)}async function vT(_,x){await N_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await N_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${N_.join(x.map((u)=>N_.lit(u)))}))`.execute(_)}var Wx={};C(Wx,{up:()=>gz,down:()=>qz});import{sql as R_}from"kysely";async function gz(_){await R_`
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 R_`
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 qz(_){await R_`
95
95
  DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
96
- `.execute(_),await M_`
96
+ `.execute(_),await R_`
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 jx={};C(jx,{up:()=>iz,down:()=>cz});import{sql as pT}from"kysely";async function iz(_){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(pT`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(pT`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 cz(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Lx={};C(Lx,{up:()=>hz,down:()=>tz});async function hz(){}async function tz(){}var Dx={};C(Dx,{up:()=>oz,down:()=>az});import{sql as Fx}from"kysely";async function oz(_){await Fx`
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 az(_){await Fx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Fx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Hx={};C(Hx,{up:()=>rz,down:()=>lz});import{sql as Yx}from"kysely";async function rz(_){await Yx`
107
107
  DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
108
- `.execute(_),await Lx`
108
+ `.execute(_),await Yx`
109
109
  DELETE FROM connection_aggregations
110
110
  WHERE parent_connection_id LIKE 'studio-jira\\_%'
111
- `.execute(_),await Lx`
111
+ `.execute(_),await Yx`
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 lz(){}var Mx={};C(Mx,{up:()=>ez,down:()=>dz});import{sql as gT}from"kysely";async function ez(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(gT`audience in ('human', 'internal')`)).execute(),await gT`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function dz(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Rx={};C(Rx,{up:()=>bz,down:()=>_E});import{sql as sz}from"kysely";async function bz(_){await sz`
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 _E(){}var Gx={};C(Gx,{up:()=>uE,down:()=>CE,ACTIONS:()=>Bx});import{sql as F}from"kysely";var Bx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],xE=Bx.filter((_)=>_!=="sprint_changed");async function uE(_){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 qT(_,Bx)}async function CE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await qT(_,xE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function qT(_,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 Ox={};C(Ox,{up:()=>NE,planOrgSiteProjectLinks:()=>hT,down:()=>TE,applyOrgSiteProjectLinks:()=>tT});import{sql as P}from"kysely";var KE="migration-237",iT=1000;async function cT(_){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 hT(_){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 tT(_,x){let u=0;for(let N=0;N<x.length;N+=iT){let K=P.join(x.slice(N,N+iT).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 = ${KE},
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 NE(_){await P`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await hT(_);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 cT(_);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 tT(_,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 TE(_){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 cT(_);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 Sx={};C(Sx,{up:()=>mE,moveRules:()=>D,down:()=>zE});import{sql as c}from"kysely";async function mE(_){await D(_,"task_board_prompts","tbp_","in_progress","in_review"),await D(_,"task_board_prompts","tbp_","todo","in_progress"),await D(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await D(_,"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 D(_,"task_board_column_automations","tbca_","todo","in_progress"),await D(_,"task_board_column_automations","tbca_","approved","ready_for_deployment"),await D(_,"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 zE(){}async function D(_,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 fx={};C(fx,{up:()=>$E,down:()=>UE});import{sql as EE}from"kysely";async function $E(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await D(_,x,u,"todo","in_progress"),await D(_,x,u,"approved","ready_for_deployment"),await D(_,x,u,"merged","post_deploy_validation")}await EE`
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 UE(){}var Ax={};C(Ax,{up:()=>PE,down:()=>QE});import{sql as JE}from"kysely";async function PE(_){await JE`
283
283
  WITH restored AS (
284
284
  UPDATE task_board_items AS i
285
285
  SET status = 'todo', updated_at = now()
@@ -306,45 +306,45 @@ 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 QE(){}var Ix={};C(Ix,{up:()=>XE,down:()=>ZE});import{sql as L}from"kysely";async function XE(_){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 ZE(_){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 yx={};C(yx,{up:()=>FE,down:()=>DE,backfillUrlSlugs:()=>B_});import{sql as Y}from"kysely";var aT=64,WE=new Set(["new","edit","settings","apps","projects","connections"]);function jE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function LE(_,x){let u=jE(_??"").slice(0,aT).replace(/-+$/,"");return u.length>=2&&!WE.has(u)?u:x}function oT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,aT-u.length).replace(/-+$/,"")}${u}`}async function B_(_){let{rows:x}=await Y`
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 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=LE(m.title,m.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(oT(E,$)))$++;let J=oT(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`
348
348
  UPDATE connections c
349
349
  SET url_slug = v.slug
350
350
  FROM unnest(
@@ -352,7 +352,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
352
352
  ${Y.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 FE(_){await Y`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await Y`
356
356
  CREATE TABLE connection_slug_aliases (
357
357
  organization_id text NOT NULL,
358
358
  slug text NOT NULL,
@@ -363,21 +363,21 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
363
363
  `.execute(_),await Y`
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 B_(_),await Y`
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 DE(_){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 Vx={};C(Vx,{up:()=>YE,down:()=>HE});async function YE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function HE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var wx={};C(wx,{up:()=>ME,down:()=>RE});async function ME(_){await B_(_)}async function RE(){}var kx={};C(kx,{up:()=>BE,down:()=>GE});import{sql as G_}from"kysely";async function BE(_){await G_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await G_`
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 GE(_){await G_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await G_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var nx={};C(nx,{up:()=>OE,down:()=>SE});import{sql as T_}from"kysely";async function OE(_){await T_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await T_`
374
374
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
375
375
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
376
376
  'board_pr_ready'))
377
- `.execute(_)}async function 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 SE(_){await T_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await T_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await T_`
378
378
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
379
379
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
380
- `.execute(_)}var kx={};C(kx,{up:()=>RE,down:()=>OE});import{sql as H}from"kysely";async function RE(_){let{rows:x}=await H`
380
+ `.execute(_)}var vx={};C(vx,{up:()=>fE,down:()=>yE});import{sql as H}from"kysely";async function fE(_){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}, ${AE(K)}, true,
408
+ ${K.created_by}, ${JSON.stringify(IE(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 AE(_){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 IE(_){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 yE(_){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 px={};C(px,{up:()=>VE,down:()=>wE});import{sql as m_}from"kysely";async function VE(_){await m_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await m_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function wE(_){await m_`
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 m_`
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 m_`
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,23 @@ 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 gx={};C(gx,{up:()=>kE,down:()=>nE});import{sql as O_}from"kysely";async function kE(_){await O_`
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 O_`
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 nE(_){await O_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await O_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var qx={};C(qx,{up:()=>vE,down:()=>pE});async function vE(_){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 pE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var ix={};C(ix,{up:()=>gE,down:()=>qE});async function gE(_){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 qE(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var cx={};C(cx,{up:()=>iE,down:()=>cE});import{sql as r}from"kysely";var S_=["linked_chat_run"];async function rT(_){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 lT(_,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 iE(_){let x=await rT(_);if(S_.every((u)=>x.has(u)))return;for(let u of S_)x.add(u);await lT(_,x)}async function cE(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(S_)})`.execute(_);let x=await rT(_);for(let u of S_)x.delete(u);await lT(_,x)}var hx={};C(hx,{up:()=>tE,down:()=>oE});import{sql as hE}from"kysely";async function tE(_){await hE`ALTER TABLE organization_settings
464
+ DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function oE(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var tx={};C(tx,{up:()=>aE,down:()=>rE});import{sql as eT}from"kysely";async function aE(_){await eT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function rE(_){await eT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var ox={};C(ox,{up:()=>lE,down:()=>eE});import{sql as O}from"kysely";async function lE(_){await O`
458
465
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
459
466
  RETURNS jsonb AS $fn$
460
467
  BEGIN
@@ -528,7 +535,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
528
535
  || '/' ||
529
536
  coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
530
537
  ) = 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`
538
+ `.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 eE(_){await O`
532
539
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
533
540
  RETURNS jsonb AS $fn$
534
541
  BEGIN
@@ -555,17 +562,17 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
555
562
  )::text
556
563
  WHERE a.id = 'commerce-discovery_' || a.organization_id
557
564
  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
565
+ `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var rx={};C(rx,{up:()=>dE,down:()=>sE});import{sql as ax}from"kysely";async function dE(_){await ax`ALTER TABLE git_provider_accounts
559
566
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
560
567
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
561
568
  CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
562
569
  ADD CONSTRAINT git_provider_accounts_cli_check
563
570
  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
571
+ (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function sE(_){await ax`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await ax`ALTER TABLE git_provider_accounts
565
572
  DROP CONSTRAINT git_provider_accounts_cli_check,
566
573
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
567
574
  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`
575
+ CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var lx={};C(lx,{up:()=>bE,down:()=>_0});import{sql as dT}from"kysely";async function bE(_){await dT`
569
576
  INSERT INTO "organization" (id, name, slug, "createdAt")
570
577
  SELECT
571
578
  'org_user_fs',
@@ -579,9 +586,9 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
579
586
  END,
580
587
  now()
581
588
  ON CONFLICT (id) DO NOTHING
582
- `.execute(_)}async function aE(_){await oT`
589
+ `.execute(_)}async function _0(_){await dT`
583
590
  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`
591
+ `.execute(_)}var ex={};C(ex,{up:()=>x0,down:()=>u0});async function x0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function u0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var dx={};C(dx,{up:()=>C0,down:()=>K0});async function C0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function K0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var sx={};C(sx,{up:()=>T0,down:()=>m0});import{sql as z_}from"kysely";var N0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function sT(_,x){for(let{table:u,column:N}of N0){let K=`${u}_${N}_check`,T=x.map((m)=>`'${m}'`).join(", ");await z_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await z_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${T}))`).execute(_)}}async function T0(_){await sT(_,["github","gitlab","bitbucket"])}async function m0(_){await z_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await z_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await z_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await sT(_,["github","gitlab"])}var bx={};C(bx,{up:()=>z0,down:()=>E0});import{sql as f_}from"kysely";async function z0(_){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(f_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(f_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(f_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(f_`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 E0(_){await _.schema.dropTable("experiments").execute()}var _u={};C(_u,{up:()=>U0,down:()=>J0});import{sql as $0}from"kysely";async function U0(_){await $0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function J0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var uu={};C(uu,{up:()=>Q0,down:()=>X0,ACTIONS:()=>xu});import{sql as E_}from"kysely";var xu=["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"],P0=xu.filter((_)=>_!=="duplicate_reported");async function Q0(_){await bT(_,xu)}async function X0(_){await E_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await bT(_,P0)}async function bT(_,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 Cu={};C(Cu,{up:()=>Z0,down:()=>W0});async function Z0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function W0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Ku={};C(Ku,{up:()=>j0,down:()=>L0});async function j0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function L0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Nu={};C(Nu,{up:()=>D0,down:()=>Y0});import{sql as F0}from"kysely";async function D0(_){await F0`
585
592
  CREATE TABLE github_connect_flows (
586
593
  id text PRIMARY KEY,
587
594
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -591,7 +598,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
591
598
  );
592
599
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
593
600
  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_`
601
+ `.execute(_)}async function Y0(_){await _.schema.dropTable("github_connect_flows").execute()}var Tu={};C(Tu,{up:()=>H0,down:()=>M0});async function H0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function M0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var mu={};C(mu,{up:()=>R0,down:()=>B0});import{sql as A_}from"kysely";async function R0(_){await A_`
595
602
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
596
603
  DECLARE
597
604
  metadata_json jsonb;
@@ -642,24 +649,24 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
642
649
  AFTER INSERT OR UPDATE OF metadata ON connections
643
650
  FOR EACH ROW EXECUTE FUNCTION adopt_legacy_repository();
644
651
  UPDATE connections SET metadata = metadata WHERE slug = 'mcp-github';
645
- `.execute(_),await S_`
652
+ `.execute(_),await A_`
646
653
  UPDATE org_repo_sync s SET repository_id = r.id
647
654
  FROM repositories r WHERE s.repository_id IS NULL
648
655
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
649
656
  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_`
657
+ `.execute(_)}async function B0(_){await A_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await A_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var zu={};C(zu,{up:()=>G0,down:()=>O0});import{sql as V}from"kysely";async function G0(_){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 O0(_){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 Eu={};C(Eu,{up:()=>S0,down:()=>f0});import{sql as _m}from"kysely";async function S0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(_m`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(_m`CURRENT_TIMESTAMP`)).execute()}async function f0(_){await _.schema.dropTable("organization_settings").execute()}var $u={};C($u,{up:()=>A0,down:()=>I0});async function A0(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function I0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Uu={};C(Uu,{up:()=>y0,down:()=>V0});async function y0(_){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 V0(_){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 Ju={};C(Ju,{up:()=>w0,down:()=>k0});async function w0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function k0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0});import{sql as n0}from"kysely";async function v0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",n0`text`).execute()}async function p0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Qu={};C(Qu,{up:()=>g0,down:()=>q0});async function g0(_){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 q0(_){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 Xu={};C(Xu,{up:()=>i0,down:()=>c0});import{sql as $_}from"kysely";async function i0(_){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($_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo($_`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($_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo($_`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($_`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 c0(_){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 Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as h0}from"kysely";async function t0(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function o0(_){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(h0`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 Wu={};C(Wu,{up:()=>a0,down:()=>r0});import{sql as I_}from"kysely";async function a0(_){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(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("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(I_`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 I_`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 r0(_){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 ju={};C(ju,{up:()=>l0,down:()=>e0});async function l0(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function e0(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Lu={};C(Lu,{up:()=>d0,down:()=>s0});import{sql as y_}from"kysely";async function d0(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await y_`
651
658
  UPDATE gateways
652
659
  SET tool_selection_mode = CASE
653
660
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
654
661
  ELSE 'inclusion'
655
662
  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_`
663
+ `.execute(_),await y_`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 s0(_){await y_`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 y_`
657
664
  UPDATE gateways
658
665
  SET tool_selection_strategy = CASE
659
666
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
660
667
  ELSE NULL
661
668
  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 _$`
669
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Fu={};C(Fu,{up:()=>b0,down:()=>_$});async function b0(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function _$(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var Du={};C(Du,{up:()=>x$,down:()=>u$});async function x$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function u$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Yu={};C(Yu,{up:()=>C$,down:()=>K$});async function C$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function K$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Hu={};C(Hu,{up:()=>N$,down:()=>T$});async function N$(_){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 T$(_){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 Mu={};C(Mu,{up:()=>z$,down:()=>E$});import{sql as m$}from"kysely";async function z$(_){await m$`
663
670
  DELETE FROM downstream_tokens
664
671
  WHERE id NOT IN (
665
672
  SELECT id FROM (
@@ -669,7 +676,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
669
676
  ) ranked
670
677
  WHERE rn = 1
671
678
  )
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`
679
+ `.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 E$(_){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 Ru={};C(Ru,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function U$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Bu={};C(Bu,{up:()=>J$,down:()=>P$});import{sql as xm}from"kysely";async function J$(_){await xm`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function P$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await xm`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Gu={};C(Gu,{up:()=>Q$,down:()=>X$});async function Q$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function X$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Ou={};C(Ou,{up:()=>Z$,down:()=>W$});import{sql as V_}from"kysely";async function Z$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function W$(_){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 Su={};C(Su,{up:()=>j$,down:()=>L$});async function j$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_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 L$(_){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 fu={};C(fu,{up:()=>F$,down:()=>D$});async function F$(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function D$(_){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 Au={};C(Au,{up:()=>Y$,down:()=>H$});import{sql as M}from"kysely";async function Y$(_){await M`
673
680
  INSERT INTO connections (
674
681
  id,
675
682
  organization_id,
@@ -716,7 +723,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
716
723
  created_at,
717
724
  updated_at
718
725
  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`
726
+ `.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 H$(_){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
727
  INSERT INTO virtual_mcps (
721
728
  id, organization_id, title, description, icon, status,
722
729
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -726,7 +733,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
726
733
  created_at, updated_at, created_by, NULL, 'inclusion'
727
734
  FROM connections
728
735
  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`
736
+ `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var Iu={};C(Iu,{up:()=>M$,down:()=>R$});async function M$(_){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 R$(_){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 yu={};C(yu,{up:()=>B$,down:()=>G$});import{sql as w}from"kysely";async function B$(_){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
737
  INSERT INTO connection_aggregations_new (
731
738
  id, parent_connection_id, child_connection_id,
732
739
  selected_tools, selected_resources, selected_prompts, created_at
@@ -735,7 +742,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
735
742
  id, parent_connection_id, child_connection_id,
736
743
  selected_tools, selected_resources, selected_prompts, created_at
737
744
  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`
745
+ `.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 G$(_){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
746
  INSERT INTO connection_aggregations_new (
740
747
  id, parent_connection_id, child_connection_id,
741
748
  selected_tools, selected_resources, selected_prompts, created_at
@@ -744,7 +751,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
744
751
  id, parent_connection_id, child_connection_id,
745
752
  selected_tools, selected_resources, selected_prompts, created_at
746
753
  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`
754
+ `.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 wu={};C(wu,{up:()=>O$,down:()=>S$});import{sql as Vu}from"kysely";async function O$(_){await Vu`
748
755
  UPDATE connections
749
756
  SET connection_url = connection_url || '/management',
750
757
  tools = NULL,
@@ -752,42 +759,42 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
752
759
  WHERE connection_url LIKE '%/mcp'
753
760
  AND connection_url NOT LIKE '%/mcp/management'
754
761
  AND app_name = '@deco/management-mcp'
755
- `.execute(_),await Au`
762
+ `.execute(_),await Vu`
756
763
  UPDATE connections
757
764
  SET tools = NULL,
758
765
  updated_at = CURRENT_TIMESTAMP
759
766
  WHERE app_name = '@deco/management-mcp'
760
767
  AND tools IS NOT NULL
761
- `.execute(_)}async function Y$(_){await Au`
768
+ `.execute(_)}async function S$(_){await Vu`
762
769
  UPDATE connections
763
770
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
764
771
  updated_at = CURRENT_TIMESTAMP
765
772
  WHERE connection_url LIKE '%/mcp/management'
766
773
  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`
774
+ `.execute(_)}var nu={};C(nu,{up:()=>f$,down:()=>A$});import{sql as ku}from"kysely";async function f$(_){await ku`
768
775
  UPDATE connections
769
776
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
770
777
  tools = NULL,
771
778
  updated_at = CURRENT_TIMESTAMP
772
779
  WHERE connection_url LIKE '%/mcp/management'
773
780
  AND app_name = '@deco/management-mcp'
774
- `.execute(_),await yu`
781
+ `.execute(_),await ku`
775
782
  UPDATE connections
776
783
  SET tools = NULL,
777
784
  updated_at = CURRENT_TIMESTAMP
778
785
  WHERE connection_url LIKE '%/mcp/self'
779
786
  AND app_name = '@deco/management-mcp'
780
787
  AND tools IS NOT NULL
781
- `.execute(_)}async function M$(_){await yu`
788
+ `.execute(_)}async function A$(_){await ku`
782
789
  UPDATE connections
783
790
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
784
791
  updated_at = CURRENT_TIMESTAMP
785
792
  WHERE connection_url LIKE '%/mcp/self'
786
793
  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 $_`
794
+ `.execute(_)}var vu={};C(vu,{up:()=>I$,down:()=>y$});async function I$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function y$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var pu={};C(pu,{up:()=>V$,down:()=>w$});import{sql as um}from"kysely";async function V$(_){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(um`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(um`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 w$(_){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 gu={};C(gu,{up:()=>k$,down:()=>n$});import{sql as U_}from"kysely";async function k$(_){await U_`
788
795
  ALTER TABLE connection_aggregations
789
796
  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 $_`
797
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function n$(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await U_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await U_`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await U_`
791
798
  INSERT INTO connection_aggregations_new (
792
799
  id, parent_connection_id, child_connection_id,
793
800
  selected_tools, selected_resources, selected_prompts, created_at
@@ -796,42 +803,42 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
796
803
  id, parent_connection_id, child_connection_id,
797
804
  selected_tools, selected_resources, selected_prompts, created_at
798
805
  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`
806
+ `.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 qu={};C(qu,{up:()=>i$,down:()=>c$});import{webcrypto as Km}from"crypto";var Cm="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var v$=128,h,l;function p$(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*v$),Km.getRandomValues(h),l=0;else if(l+_>h.length)Km.getRandomValues(h),l=0;l+=_}function e(_=21){p$(_|=0);let x="";for(let u=l-_;u<l;u++)x+=Cm[h[u]&63];return x}var g$="org-admin",q$="Organization Admin";async function i$(_){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_${e()}`,T=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:g$,name:q$,description:null,enabled_plugins:T?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function c$(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var iu={};C(iu,{up:()=>h$,down:()=>t$});async function h$(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function t$(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var cu={};C(cu,{up:()=>o$,down:()=>a$});async function o$(_){}async function a$(_){}var hu={};C(hu,{up:()=>r$,down:()=>l$});async function r$(_){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 l$(_){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 tu={};C(tu,{up:()=>e$,down:()=>d$});import{sql as Nm}from"kysely";async function e$(_){await Nm`
800
807
  UPDATE connections
801
808
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
802
809
  tools = NULL,
803
810
  updated_at = CURRENT_TIMESTAMP
804
811
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
805
812
  AND app_name = 'deco-registry'
806
- `.execute(_)}async function h$(_){await _m`
813
+ `.execute(_)}async function d$(_){await Nm`
807
814
  UPDATE connections
808
815
  SET connection_url = 'https://api.decocms.com/mcp/registry',
809
816
  updated_at = CURRENT_TIMESTAMP
810
817
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
811
818
  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`
819
+ `.execute(_)}var ou={};C(ou,{up:()=>b$,down:()=>_U});import{sql as s$}from"kysely";async function b$(_){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(s$`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 _U(_){await _.schema.dropTable("ai_provider_keys").execute()}var au={};C(au,{up:()=>uU,down:()=>CU});import{sql as xU}from"kysely";async function uU(_){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(xU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function CU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var ru={};C(ru,{up:()=>KU,down:()=>NU});import{sql as p}from"kysely";async function KU(_){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 NU(_){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 lu={};C(lu,{up:()=>TU,down:()=>mU});async function TU(_){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 mU(_){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 eu={};C(eu,{up:()=>zU,down:()=>EU});async function zU(_){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 EU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var du={};C(du,{up:()=>$U,down:()=>UU});import{sql as Tm}from"kysely";async function $U(_){await Tm`
813
820
  UPDATE connections
814
821
  SET title = 'CMS MCP',
815
822
  tools = NULL,
816
823
  updated_at = CURRENT_TIMESTAMP
817
824
  WHERE app_name = '@deco/management-mcp'
818
- `.execute(_)}async function KU(_){await xm`
825
+ `.execute(_)}async function UU(_){await Tm`
819
826
  UPDATE connections
820
827
  SET title = 'Mesh MCP',
821
828
  updated_at = CURRENT_TIMESTAMP
822
829
  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`
830
+ `.execute(_)}var su={};C(su,{up:()=>JU,down:()=>PU});import{sql as mm}from"kysely";async function JU(_){await mm`
824
831
  UPDATE connections
825
832
  SET title = 'Deco CMS',
826
833
  tools = NULL,
827
834
  updated_at = CURRENT_TIMESTAMP
828
835
  WHERE app_name = '@deco/management-mcp'
829
- `.execute(_)}async function TU(_){await um`
836
+ `.execute(_)}async function PU(_){await mm`
830
837
  UPDATE connections
831
838
  SET title = 'CMS MCP',
832
839
  updated_at = CURRENT_TIMESTAMP
833
840
  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`
841
+ `.execute(_)}var bu={};C(bu,{up:()=>QU,down:()=>XU});async function QU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function XU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var _C={};C(_C,{up:()=>ZU,down:()=>WU});async function ZU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function WU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var uC={};C(uC,{up:()=>jU,down:()=>LU});import{sql as xC}from"kysely";async function jU(_){await xC`
835
842
  UPDATE organization_settings
836
843
  SET enabled_plugins = (
837
844
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -840,7 +847,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
840
847
  )
841
848
  WHERE enabled_plugins IS NOT NULL
842
849
  AND enabled_plugins LIKE '%object-storage%'
843
- `.execute(_),await su`
850
+ `.execute(_),await xC`
844
851
  UPDATE projects
845
852
  SET enabled_plugins = (
846
853
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -849,65 +856,65 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
849
856
  )
850
857
  WHERE enabled_plugins IS NOT NULL
851
858
  AND enabled_plugins LIKE '%object-storage%'
852
- `.execute(_),await su`
859
+ `.execute(_),await xC`
853
860
  DELETE FROM project_plugin_configs
854
861
  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`
862
+ `.execute(_)}async function LU(_){}var CC={};C(CC,{up:()=>FU,down:()=>DU});import{sql as zm}from"kysely";async function FU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await zm`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function DU(_){await zm`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var NC={};C(NC,{up:()=>YU,down:()=>HU});import{sql as KC}from"kysely";async function YU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await KC`
856
863
  ALTER TABLE connections
857
864
  ADD CONSTRAINT chk_connections_subtype
858
865
  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`
866
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await KC`
860
867
  UPDATE connections
861
868
  SET subtype = 'agent'
862
869
  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`
870
+ `.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_${e()}`;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_${e()}`,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_${e()}`,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 HU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await KC`
864
871
  ALTER TABLE connections
865
872
  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`
873
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var TC={};C(TC,{up:()=>RU,down:()=>BU});import{sql as MU}from"kysely";async function RU(_){await MU`
867
874
  DELETE FROM connections
868
875
  WHERE connection_type = 'VIRTUAL'
869
876
  AND subtype = 'project'
870
877
  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`
878
+ `.execute(_)}async function BU(_){}var mC={};C(mC,{up:()=>OU,down:()=>SU});import{sql as GU}from"kysely";async function OU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await GU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function SU(_){await _.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var EC={};C(EC,{up:()=>fU,down:()=>AU});import{sql as zC}from"kysely";async function fU(_){await _.schema.createTable("org_sso_config").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(x)=>x.notNull()).addColumn("client_id","text",(x)=>x.notNull()).addColumn("client_secret","text",(x)=>x.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(x)=>x.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(x)=>x.notNull()).addColumn("enforced","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(zC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(zC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await _.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await _.schema.createTable("org_sso_sessions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(x)=>x.notNull()).addColumn("expires_at","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(zC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function AU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var $C={};C($C,{up:()=>IU,down:()=>yU});async function IU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function yU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var UC={};C(UC,{up:()=>VU,down:()=>wU});async function VU(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function wU(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var PC={};C(PC,{up:()=>nU,down:()=>vU});import{sql as Em}from"kysely";function JC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function kU(_){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 JC(N)}catch{return JC(_.connection_url)}if(_.title)return JC(_.title);return _.id}async function nU(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await Em`
872
879
  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_`
880
+ `.execute(_);for(let u of x.rows){let N=kU(u);await Em`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 vU(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var QC={};C(QC,{up:()=>pU,down:()=>gU});import{sql as J_}from"kysely";async function pU(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await J_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await J_`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function gU(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await J_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await J_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await J_`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var XC={};C(XC,{up:()=>qU,down:()=>iU});async function qU(_){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 iU(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var ZC={};C(ZC,{up:()=>cU,down:()=>hU});import{sql as w_}from"kysely";async function cU(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await w_`
874
881
  UPDATE threads
875
882
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
876
883
  WHERE agent_ids IS NOT NULL
877
884
  AND agent_ids != '[]'
878
885
  AND agent_ids != ''
879
886
  AND (agent_ids::jsonb ->> 0) IS NOT NULL
880
- `.execute(_),await y_`
887
+ `.execute(_),await w_`
881
888
  CREATE INDEX idx_threads_virtual_mcp_id
882
889
  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_`
890
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function hU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await w_`
884
891
  UPDATE threads
885
892
  SET agent_ids = CASE
886
893
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
887
894
  THEN jsonb_build_array(virtual_mcp_id)::text
888
895
  ELSE '[]'
889
896
  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`
897
+ `.execute(_),await w_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var WC={};C(WC,{up:()=>tU,down:()=>oU});async function tU(_){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 oU(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var jC={};C(jC,{up:()=>aU,down:()=>rU});async function aU(_){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 rU(_){await _.schema.dropTable("kv").execute()}var LC={};C(LC,{up:()=>lU,down:()=>eU});async function lU(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function eU(_){await _.schema.dropIndex("idx_member_user_org").execute()}var FC={};C(FC,{up:()=>dU,down:()=>sU});async function dU(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function sU(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var DC={};C(DC,{up:()=>bU,down:()=>_J});import{sql as S}from"kysely";async function bU(_){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 _J(_){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 YC={};C(YC,{up:()=>xJ,down:()=>uJ});import{sql as d}from"kysely";async function xJ(_){await d`
891
898
  ALTER TABLE event_subscriptions
892
899
  ALTER COLUMN enabled DROP DEFAULT
893
- `.execute(_),await e`
900
+ `.execute(_),await d`
894
901
  ALTER TABLE event_subscriptions
895
902
  ALTER COLUMN enabled TYPE boolean
896
903
  USING enabled::boolean
897
- `.execute(_),await e`
904
+ `.execute(_),await d`
898
905
  ALTER TABLE event_subscriptions
899
906
  ALTER COLUMN enabled SET DEFAULT true
900
- `.execute(_)}async function lU(_){await e`
907
+ `.execute(_)}async function uJ(_){await d`
901
908
  ALTER TABLE event_subscriptions
902
909
  ALTER COLUMN enabled DROP DEFAULT
903
- `.execute(_),await e`
910
+ `.execute(_),await d`
904
911
  ALTER TABLE event_subscriptions
905
912
  ALTER COLUMN enabled TYPE integer
906
913
  USING enabled::integer
907
- `.execute(_),await e`
914
+ `.execute(_),await d`
908
915
  ALTER TABLE event_subscriptions
909
916
  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`
917
+ `.execute(_)}var HC={};C(HC,{up:()=>CJ,down:()=>KJ});import{sql as $m}from"kysely";async function CJ(_){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($m`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($m`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function KJ(_){await _.schema.dropTable("brand_context").execute()}var MC={};C(MC,{up:()=>NJ,down:()=>TJ});import{sql as Um}from"kysely";async function NJ(_){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(Um`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Um`now()`)).execute()}async function TJ(_){await _.schema.dropTable("organization_domains").execute()}var RC={};C(RC,{up:()=>$J,down:()=>UJ});import{sql as Jm}from"kysely";var k_=new Set(["primary","secondary","accent","background","foreground"]),mJ={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function zJ(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>k_.has(K))){let K={};for(let[T,m]of Object.entries(u)){if(typeof m!=="string")continue;if(k_.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(k_.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(k_.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 EJ(_){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=mJ[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 $J(_){let x=await Jm`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=zJ($);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=EJ($),K=!0}catch{}if(N||K||T){let $=T?JSON.stringify(E):u.metadata;await Jm`
911
918
  UPDATE brand_context
912
919
  SET
913
920
  colors = ${m},
@@ -915,29 +922,29 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
915
922
  metadata = ${$},
916
923
  updated_at = NOW()
917
924
  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`
925
+ `.execute(_)}}}async function UJ(_){}var BC={};C(BC,{up:()=>PJ,down:()=>QJ});import{sql as JJ}from"kysely";async function PJ(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(JJ`'{}'::jsonb`)).execute()}async function QJ(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var GC={};C(GC,{up:()=>XJ,down:()=>ZJ});async function XJ(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function ZJ(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var OC={};C(OC,{up:()=>WJ,down:()=>jJ});async function WJ(_){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 jJ(_){await _.schema.dropTable("sandbox_runner_state").execute()}var SC={};C(SC,{up:()=>LJ,down:()=>FJ});async function LJ(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function FJ(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var fC={};C(fC,{up:()=>DJ,down:()=>YJ});async function DJ(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function YJ(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var AC={};C(AC,{up:()=>HJ,down:()=>MJ});async function HJ(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function MJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var IC={};C(IC,{up:()=>BJ,down:()=>GJ});import{sql as Pm}from"kysely";var RJ=["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 BJ(_){let x=await Pm`
919
926
  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`
927
+ `.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,...RJ]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await Pm`
921
928
  UPDATE "organizationRole"
922
929
  SET permission = ${z}
923
930
  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_`
931
+ `.execute(_)}}async function GJ(_){}var yC={};C(yC,{up:()=>OJ,down:()=>SJ});async function OJ(_){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 SJ(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var VC={};C(VC,{up:()=>fJ,down:()=>AJ});async function fJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function AJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var wC={};C(wC,{up:()=>IJ,down:()=>yJ});import{sql as P_}from"kysely";async function IJ(_){await P_`
925
932
  UPDATE automations
926
933
  SET virtual_mcp_id = (agent::json ->> 'id')
927
934
  WHERE virtual_mcp_id IS NULL
928
- `.execute(_),await J_`
935
+ `.execute(_),await P_`
929
936
  ALTER TABLE automations
930
937
  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_`
938
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function yJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await P_`
932
939
  UPDATE automations
933
940
  SET agent = json_build_object('id', virtual_mcp_id)::text
934
- `.execute(_),await J_`
941
+ `.execute(_),await P_`
935
942
  ALTER TABLE automations
936
943
  ALTER COLUMN agent SET NOT NULL
937
- `.execute(_),await J_`
944
+ `.execute(_),await P_`
938
945
  ALTER TABLE automations
939
946
  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`
947
+ `.execute(_)}var nC={};C(nC,{up:()=>nJ,reshapeSimpleMode:()=>Qm,inferAutomationTier:()=>Xm,down:()=>vJ,__testing:()=>kJ});var VJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},wJ=["fast","smart","thinking","image","web_research"];function kC(_){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 wJ.some((N)=>(N in u))}function Qm(_){if(kC(_))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 VJ;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 Xm(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Zm(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var kJ={isAlreadyReshapedSimpleMode:kC,isAlreadyReshapedAutomationModels:Zm};async function nJ(_){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(kC(K))continue;let T=Qm(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(Zm(K))continue;let T=Xm(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 vJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var vC={};C(vC,{up:()=>pJ,down:()=>gJ});import{sql as n}from"kysely";async function pJ(_){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
948
  ALTER TABLE automations
942
949
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
943
950
  `.execute(_),await n`
@@ -959,47 +966,47 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
959
966
  AND tool_input IS NOT NULL
960
967
  )
961
968
  )
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`
969
+ `.execute(_)}async function gJ(_){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
970
  ALTER TABLE automations
964
971
  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`
972
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var pC={};C(pC,{up:()=>iJ,down:()=>cJ});import{sql as Wm}from"kysely";var qJ=new Set(["host","docker","agent-sandbox"]);async function iJ(_){let x=await Wm`
966
973
  SELECT id, metadata FROM "connections"
967
974
  WHERE connection_type = 'VIRTUAL'
968
975
  AND metadata IS NOT NULL
969
976
  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`
977
+ `.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&&!qJ.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 Wm`
971
978
  UPDATE "connections"
972
979
  SET metadata = ${z}
973
980
  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_`
981
+ `.execute(_)}}async function cJ(_){}var gC={};C(gC,{up:()=>hJ,down:()=>tJ});import{sql as Q_}from"kysely";async function hJ(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Q_`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(Q_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Q_`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 Q_`
975
982
  CREATE INDEX async_research_jobs_active_idx
976
983
  ON async_research_jobs (status, last_polled_at)
977
984
  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_`
985
+ `.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await Q_`
979
986
  ALTER TABLE async_research_jobs
980
987
  ADD CONSTRAINT chk_async_research_jobs_status
981
988
  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`
989
+ `.execute(_)}async function tJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var qC={};C(qC,{up:()=>oJ,down:()=>aJ});async function oJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function aJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var iC={};C(iC,{up:()=>rJ,down:()=>lJ});import{sql as s}from"kysely";async function rJ(_){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
990
  ALTER TABLE secrets
984
991
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
985
- `.execute(_),await d`
992
+ `.execute(_),await s`
986
993
  ALTER TABLE secrets
987
994
  ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
988
995
  (scope = 'user' AND user_id IS NOT NULL)
989
996
  OR (scope = 'organization' AND user_id IS NULL)
990
997
  )
991
- `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await d`
998
+ `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await s`
992
999
  CREATE UNIQUE INDEX idx_secrets_user_name
993
1000
  ON secrets (organization_id, user_id, lower(name))
994
1001
  WHERE scope = 'user'
995
- `.execute(_),await d`
1002
+ `.execute(_),await s`
996
1003
  CREATE UNIQUE INDEX idx_secrets_org_name
997
1004
  ON secrets (organization_id, lower(name))
998
1005
  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_`
1006
+ `.execute(_)}async function lJ(_){await _.schema.dropTable("secrets").execute()}var cC={};C(cC,{up:()=>eJ,down:()=>dJ});async function eJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function dJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var hC={};C(hC,{up:()=>bJ,down:()=>_P});import{sql as sJ}from"kysely";async function bJ(_){await sJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function _P(_){}var tC={};C(tC,{up:()=>xP,down:()=>uP});import{sql as n_}from"kysely";async function xP(_){await n_`
1000
1007
  ALTER TABLE sandbox_runner_state
1001
1008
  RENAME COLUMN runner_kind TO sandbox_provider_kind
1002
- `.execute(_),await w_`
1009
+ `.execute(_),await n_`
1003
1010
  DO $$ BEGIN
1004
1011
  UPDATE virtualmcps v
1005
1012
  SET metadata = jsonb_set(
@@ -1034,10 +1041,10 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1034
1041
  EXCEPTION WHEN undefined_table THEN
1035
1042
  NULL;
1036
1043
  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_`
1044
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function uP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await n_`
1038
1045
  ALTER TABLE sandbox_runner_state
1039
1046
  RENAME COLUMN sandbox_provider_kind TO runner_kind
1040
- `.execute(_),await w_`
1047
+ `.execute(_),await n_`
1041
1048
  DO $$ BEGIN
1042
1049
  UPDATE virtualmcps v
1043
1050
  SET metadata = jsonb_set(
@@ -1072,7 +1079,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1072
1079
  EXCEPTION WHEN undefined_table THEN
1073
1080
  NULL;
1074
1081
  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`
1082
+ `.execute(_)}var oC={};C(oC,{up:()=>CP,down:()=>KP});import{sql as jm}from"kysely";async function CP(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await jm`
1076
1083
  DO $$ BEGIN
1077
1084
  UPDATE virtualmcps v
1078
1085
  SET metadata = jsonb_set(
@@ -1111,7 +1118,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1111
1118
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
1112
1119
  NULL;
1113
1120
  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`
1121
+ `.execute(_)}async function KP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await jm`
1115
1122
  DO $$ BEGIN
1116
1123
  UPDATE virtualmcps v
1117
1124
  SET metadata = jsonb_set(
@@ -1144,7 +1151,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1144
1151
  EXCEPTION WHEN undefined_table THEN
1145
1152
  NULL;
1146
1153
  END; $$
1147
- `.execute(_)}var hC={};C(hC,{up:()=>sJ,down:()=>bJ});import{sql as Qm}from"kysely";async function sJ(_){await Qm`
1154
+ `.execute(_)}var aC={};C(aC,{up:()=>NP,down:()=>TP});import{sql as Lm}from"kysely";async function NP(_){await Lm`
1148
1155
  UPDATE connections c
1149
1156
  SET metadata = (
1150
1157
  jsonb_set(
@@ -1188,7 +1195,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1188
1195
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
1189
1196
  WHERE entry ? 'vmId'
1190
1197
  );
1191
- `.execute(_),await Qm`
1198
+ `.execute(_),await Lm`
1192
1199
  UPDATE connections c
1193
1200
  SET metadata = (
1194
1201
  jsonb_set(
@@ -1242,14 +1249,14 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1242
1249
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1243
1250
  WHERE inner_entry ? 'runnerKind'
1244
1251
  );
1245
- `.execute(_)}async function bJ(_){}var tC={};C(tC,{up:()=>xP,down:()=>uP});import{sql as _P}from"kysely";async function xP(_){await _P`
1252
+ `.execute(_)}async function TP(_){}var rC={};C(rC,{up:()=>zP,down:()=>EP});import{sql as mP}from"kysely";async function zP(_){await mP`
1246
1253
  DELETE FROM ai_provider_keys
1247
1254
  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_`
1255
+ `.execute(_)}async function EP(_){}var lC={};C(lC,{up:()=>$P,down:()=>UP});import{sql as v_}from"kysely";async function $P(_){await v_`
1249
1256
  UPDATE sandbox_runner_state
1250
1257
  SET sandbox_provider_kind = 'desktop'
1251
1258
  WHERE sandbox_provider_kind = 'remote-user'
1252
- `.execute(_),await k_`
1259
+ `.execute(_),await v_`
1253
1260
  UPDATE connections c
1254
1261
  SET metadata = (
1255
1262
  jsonb_set(
@@ -1292,7 +1299,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1292
1299
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1293
1300
  WHERE kind_key = 'remote-user'
1294
1301
  );
1295
- `.execute(_),await k_`
1302
+ `.execute(_),await v_`
1296
1303
  UPDATE connections c
1297
1304
  SET metadata = (
1298
1305
  jsonb_set(
@@ -1339,17 +1346,17 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1339
1346
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1340
1347
  WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
1341
1348
  );
1342
- `.execute(_),await k_`
1349
+ `.execute(_),await v_`
1343
1350
  UPDATE threads
1344
1351
  SET sandbox_provider_kind = 'desktop'
1345
1352
  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`
1353
+ `.execute(_)}async function UP(_){}var eC={};C(eC,{up:()=>JP,down:()=>PP});import{sql as X_}from"kysely";async function JP(_){await X_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await X_`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 PP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await X_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await X_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await X_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var dC={};C(dC,{up:()=>QP,down:()=>XP});import{sql as Fm}from"kysely";async function QP(_){await Fm`
1347
1354
  ALTER TABLE organization_domains
1348
1355
  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`
1356
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function XP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await Fm`
1350
1357
  ALTER TABLE organization_domains
1351
1358
  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_`
1359
+ `.execute(_)}var sC={};C(sC,{up:()=>ZP,down:()=>WP});import{sql as p_}from"kysely";async function ZP(_){await p_`
1353
1360
  UPDATE sandbox_runner_state
1354
1361
  SET sandbox_provider_kind = CASE sandbox_provider_kind
1355
1362
  WHEN 'docker' THEN 'local-docker'
@@ -1359,7 +1366,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1359
1366
  ELSE sandbox_provider_kind
1360
1367
  END
1361
1368
  WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
1362
- `.execute(_),await n_`
1369
+ `.execute(_),await p_`
1363
1370
  UPDATE connections c
1364
1371
  SET metadata = (
1365
1372
  (c.metadata::jsonb - 'vmMap')
@@ -1368,7 +1375,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1368
1375
  WHERE c.connection_type = 'VIRTUAL'
1369
1376
  AND c.metadata IS NOT NULL
1370
1377
  AND c.metadata::jsonb ? 'vmMap'
1371
- `.execute(_),await n_`
1378
+ `.execute(_),await p_`
1372
1379
  UPDATE connections c
1373
1380
  SET metadata = (
1374
1381
  jsonb_set(
@@ -1429,7 +1436,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1429
1436
  WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
1430
1437
  OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
1431
1438
  );
1432
- `.execute(_),await n_`
1439
+ `.execute(_),await p_`
1433
1440
  UPDATE connections c
1434
1441
  SET metadata = REPLACE(
1435
1442
  REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
@@ -1438,19 +1445,19 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1438
1445
  WHERE c.connection_type = 'VIRTUAL'
1439
1446
  AND c.metadata IS NOT NULL
1440
1447
  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`
1448
+ `.execute(_)}async function WP(_){}var bC={};C(bC,{up:()=>LP,down:()=>FP});import{sql as Dm}from"kysely";var jP=["GLOBAL_SEARCH"];async function LP(_){let x=await Dm`
1442
1449
  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`
1450
+ `.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,...jP]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await Dm`
1444
1451
  UPDATE "organizationRole"
1445
1452
  SET permission = ${z}
1446
1453
  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`
1454
+ `.execute(_)}}async function FP(_){}var xK={};C(xK,{up:()=>DP,down:()=>YP});import{sql as _K}from"kysely";async function DP(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(_K`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(_K`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await _K`
1448
1455
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
1449
1456
  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`
1457
+ `.execute(_)}async function YP(_){await _.schema.dropTable("org_file_configs").execute()}var uK={};C(uK,{up:()=>HP,down:()=>MP});import{sql as v}from"kysely";async function HP(_){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
1458
  ALTER TABLE automations
1452
1459
  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`
1460
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function MP(_){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
1461
  ALTER TABLE automations
1455
1462
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
1456
1463
  `.execute(_),await v`
@@ -1472,25 +1479,25 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1472
1479
  AND tool_input IS NOT NULL
1473
1480
  )
1474
1481
  )
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`
1482
+ `.execute(_)}var CK={};C(CK,{up:()=>RP,down:()=>BP});async function RP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function BP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var NK={};C(NK,{up:()=>GP,down:()=>OP});import{sql as KK}from"kysely";var g_="local-docker";async function GP(_){await KK`delete from sandbox_runner_state where sandbox_provider_kind = ${g_}`.execute(_);let x=await KK`
1476
1483
  SELECT id, metadata FROM "connections"
1477
1484
  WHERE connection_type = 'VIRTUAL'
1478
1485
  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`
1486
+ AND metadata LIKE ${"%"+g_+"%"}
1487
+ `.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(g_ in X){T=!0;let y={...X};if(delete y[g_],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 KK`
1481
1488
  UPDATE "connections"
1482
1489
  SET metadata = ${z}
1483
1490
  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`
1491
+ `.execute(_)}}async function OP(_){}var TK={};C(TK,{up:()=>SP,down:()=>fP});import{sql as q_}from"kysely";async function SP(_){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 q_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await q_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await q_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await q_`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 fP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var mK={};C(mK,{up:()=>AP,down:()=>IP});async function AP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function IP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var zK={};C(zK,{up:()=>yP,down:()=>VP});async function yP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function VP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var EK={};C(EK,{up:()=>wP,down:()=>kP});async function wP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function kP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var $K={};C($K,{up:()=>nP,down:()=>vP});async function nP(_){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 vP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var UK={};C(UK,{up:()=>pP,down:()=>gP});async function pP(_){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 gP(_){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 PK={};C(PK,{up:()=>iP,down:()=>cP});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function b(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function JK(_,x,u){if(!b(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function i_(_){if(!b(_))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(!b(_.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 qP(_,x,u){if(!b(_))return null;let N=!1,K={};for(let[T,m]of Object.entries(_)){if(!b(m)){K[T]=m;continue}let z={};for(let[E,$]of Object.entries(m)){if(!b($)){z[E]=$;continue}let J={};for(let[j,X]of Object.entries($)){if(j===x){if(N=!0,!(u in $))J[u]=JK(X,x,u);else if(!i_($[u])&&i_(X))J[u]=JK(X,x,u);continue}let y=JK(X,x,u);if(y!==X)N=!0;if(j===u&&j in J&&i_(J[j])&&!i_(y))continue;J[j]=y}z[E]=J}K[T]=z}return{sandboxMap:K,changed:N}}async function Ym(_,x,u){let N=await k`
1485
1492
  SELECT id, metadata FROM connections
1486
1493
  WHERE connection_type = 'VIRTUAL'
1487
1494
  AND metadata IS NOT NULL
1488
1495
  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`
1496
+ `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)}catch{continue}let m=qP(T.sandboxMap,x,u);if(!m?.changed)continue;T.sandboxMap=m.sandboxMap,await k`
1490
1497
  UPDATE connections
1491
1498
  SET metadata = ${JSON.stringify(T)}
1492
1499
  WHERE id = ${K.id}
1493
- `.execute(_)}}async function wP(_){await k`
1500
+ `.execute(_)}}async function iP(_){await k`
1494
1501
  UPDATE threads
1495
1502
  SET sandbox_provider_kind = ${A}
1496
1503
  WHERE sandbox_provider_kind = ${f}
@@ -1519,7 +1526,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1519
1526
  UPDATE sandbox_runner_state
1520
1527
  SET sandbox_provider_kind = ${A}
1521
1528
  WHERE sandbox_provider_kind = ${f}
1522
- `.execute(_),await Wm(_,f,A)}async function kP(_){await k`
1529
+ `.execute(_),await Ym(_,f,A)}async function cP(_){await k`
1523
1530
  UPDATE threads
1524
1531
  SET sandbox_provider_kind = ${f}
1525
1532
  WHERE sandbox_provider_kind = ${A}
@@ -1548,7 +1555,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1548
1555
  UPDATE sandbox_runner_state
1549
1556
  SET sandbox_provider_kind = ${f}
1550
1557
  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`
1558
+ `.execute(_),await Ym(_,A,f)}var QK={};C(QK,{up:()=>hP,down:()=>tP});import{sql as g}from"kysely";async function hP(_){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
1559
  CREATE INDEX idx_org_fs_entry_parent
1553
1560
  ON org_fs_entry (organization_id, volume, parent)
1554
1561
  WHERE deleted_at IS NULL
@@ -1556,7 +1563,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1556
1563
  CREATE INDEX idx_org_fs_entry_usage
1557
1564
  ON org_fs_entry (organization_id, volume, size)
1558
1565
  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`
1566
+ `.execute(_)}async function tP(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var XK={};C(XK,{up:()=>oP,down:()=>aP});async function oP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function aP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var ZK={};C(ZK,{up:()=>rP,down:()=>lP});import{sql as Hm}from"kysely";async function rP(_){await Hm`
1560
1567
  INSERT INTO "organization" (id, name, slug, "createdAt")
1561
1568
  SELECT
1562
1569
  'org_orgfs_public_skills',
@@ -1570,13 +1577,13 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1570
1577
  END,
1571
1578
  now()
1572
1579
  ON CONFLICT (id) DO NOTHING
1573
- `.execute(_)}async function iP(_){await Dm`
1580
+ `.execute(_)}async function lP(_){await Hm`
1574
1581
  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`
1582
+ `.execute(_)}var WK={};C(WK,{up:()=>eP,down:()=>dP});async function eP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function dP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var jK={};C(jK,{up:()=>sP,down:()=>bP});import{sql as Mm}from"kysely";async function sP(_){await Mm`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function bP(_){await Mm`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var LK={};C(LK,{up:()=>xQ,down:()=>uQ});import{sql as _Q}from"kysely";async function xQ(_){await _Q`
1576
1583
  UPDATE downstream_tokens
1577
1584
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1578
1585
  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`
1586
+ `.execute(_)}async function uQ(_){}var FK={};C(FK,{up:()=>CQ,down:()=>KQ});async function CQ(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function KQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var DK={};C(DK,{up:()=>NQ,down:()=>TQ});async function NQ(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function TQ(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var YK={};C(YK,{up:()=>mQ,down:()=>zQ});async function mQ(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function zQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var HK={};C(HK,{up:()=>EQ,down:()=>$Q});async function EQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function $Q(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var MK={};C(MK,{up:()=>UQ,down:()=>JQ});async function UQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function JQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var RK={};C(RK,{up:()=>PQ,down:()=>QQ});import{sql as Rm}from"kysely";async function PQ(_){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(Rm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Rm`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function QQ(_){await _.schema.dropTable("org_sites").execute()}var BK={};C(BK,{up:()=>XQ,down:()=>ZQ});async function XQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function ZQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var GK={};C(GK,{up:()=>WQ,down:()=>jQ});import{sql as R}from"kysely";async function WQ(_){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
1587
  UPDATE organization_domains
1581
1588
  SET
1582
1589
  id = gen_random_uuid()::text,
@@ -1585,18 +1592,18 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1585
1592
  verification_method = 'email',
1586
1593
  verified_at = created_at
1587
1594
  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`
1595
+ `.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 jQ(_){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
1596
  UPDATE organization_domains
1590
1597
  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_`
1598
+ `.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 OK={};C(OK,{up:()=>LQ,down:()=>FQ});import{sql as c_}from"kysely";async function LQ(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(c_`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(c_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(c_`now()`)).execute(),await c_`
1592
1599
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1593
1600
  ON organization_join_requests (organization_id, user_id)
1594
1601
  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_`
1602
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function FQ(_){await _.schema.dropTable("organization_join_requests").execute()}var SK={};C(SK,{up:()=>DQ,down:()=>YQ});async function DQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function YQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var fK={};C(fK,{up:()=>HQ,down:()=>MQ});async function HQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function MQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var yK={};C(yK,{up:()=>GQ,splitWebResearchTier:()=>IK,down:()=>OQ,__testing:()=>BQ});function RQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function AK(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function IK(_){if(!_||AK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,T=null,m=null;if(u)if(RQ(u.modelId))m=u;else T=u;return{..._,tiers:{...K,web_search:T,deep_research:m}}}var BQ={splitWebResearchTier:IK,isAlreadySplit:AK};async function GQ(_){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(AK(N))continue;let K=IK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function OQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var VK={};C(VK,{up:()=>SQ,down:()=>fQ});import{sql as Z_}from"kysely";async function SQ(_){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(Z_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await Z_`
1596
1603
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1597
1604
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1598
1605
  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`
1606
+ `.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(Z_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`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 fQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var wK={};C(wK,{up:()=>AQ,down:()=>IQ});async function AQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function IQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var kK={};C(kK,{up:()=>yQ,down:()=>VQ});import{sql as t}from"kysely";async function yQ(_){await t`
1600
1607
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1601
1608
  RETURNS jsonb AS $fn$
1602
1609
  BEGIN
@@ -1655,7 +1662,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1655
1662
  BEFORE INSERT ON connection_aggregations
1656
1663
  FOR EACH ROW
1657
1664
  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`
1665
+ `.execute(_)}async function VQ(_){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 vK={};C(vK,{up:()=>wQ,down:()=>kQ});import{sql as nK}from"kysely";async function wQ(_){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(nK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(nK`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(nK`false`)).execute()}async function kQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var pK={};C(pK,{up:()=>nQ,down:()=>vQ});async function nQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function vQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var gK={};C(gK,{up:()=>pQ,down:()=>gQ});async function pQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function gQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var qK={};C(qK,{up:()=>qQ,down:()=>iQ});async function qQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function iQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var iK={};C(iK,{up:()=>hQ,down:()=>tQ});import{sql as cQ}from"kysely";async function hQ(_){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(cQ`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 tQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var cK={};C(cK,{up:()=>oQ,down:()=>aQ});async function oQ(_){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 aQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var hK={};C(hK,{up:()=>lQ,down:()=>eQ});import{sql as rQ}from"kysely";async function lQ(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(rQ`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 eQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var tK={};C(tK,{up:()=>sQ,down:()=>bQ});import{sql as dQ}from"kysely";async function sQ(_){await dQ`
1659
1666
  DELETE FROM member
1660
1667
  WHERE id IN (
1661
1668
  SELECT id FROM (
@@ -1674,38 +1681,38 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1674
1681
  ) ranked
1675
1682
  WHERE ranked.rn > 1
1676
1683
  )
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_`
1684
+ `.execute(_)}async function bQ(_){}var oK={};C(oK,{up:()=>_X,down:()=>xX});async function _X(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function xX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var aK={};C(aK,{up:()=>uX,down:()=>CX});async function uX(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function CX(_){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 rK={};C(rK,{up:()=>NX,down:()=>TX});import{sql as KX}from"kysely";async function NX(_){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(KX`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 TX(_){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 lK={};C(lK,{up:()=>zX,down:()=>EX});import{sql as mX}from"kysely";async function zX(_){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(mX`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 EX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var eK={};C(eK,{up:()=>$X,down:()=>UX});import{sql as h_}from"kysely";async function $X(_){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(h_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(h_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",h_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",h_`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 UX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var dK={};C(dK,{up:()=>JX,down:()=>PX});import{sql as t_}from"kysely";async function JX(_){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(t_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t_`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(t_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await t_`
1678
1685
  insert into organization_billing (organization_id, legacy)
1679
1686
  select id, true from organization
1680
1687
  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`
1688
+ `.execute(_)}async function PX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var sK={};C(sK,{up:()=>QX,down:()=>XX});import{sql as Bm}from"kysely";async function QX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Bm`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(Bm`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function XX(_){await _.schema.dropTable("seat_change_log").execute()}var bK={};C(bK,{up:()=>ZX,down:()=>WX});async function ZX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function WX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var _N={};C(_N,{up:()=>jX,down:()=>LX});import{sql as Gm}from"kysely";async function jX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await Gm`
1682
1689
  create unique index organization_billing_stripe_subscription_id_uq
1683
1690
  on organization_billing (stripe_subscription_id)
1684
1691
  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`
1692
+ `.execute(_)}async function LX(_){await Gm`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var xN={};C(xN,{up:()=>FX,down:()=>DX});async function FX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function DX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var uN={};C(uN,{up:()=>YX,down:()=>HX});import{sql as Om}from"kysely";async function YX(_){await Om`
1686
1693
  create index idx_org_billing_benefits_pending
1687
1694
  on organization_billing (updated_at)
1688
1695
  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`
1696
+ `.execute(_)}async function HX(_){await Om`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var CN={};C(CN,{up:()=>MX,down:()=>RX});import{sql as Sm}from"kysely";async function MX(_){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(Sm`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Sm`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 RX(_){await _.schema.dropTable("user_model_preferences").execute()}var KN={};C(KN,{up:()=>BX,down:()=>GX});async function BX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function GX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var NN={};C(NN,{up:()=>OX,down:()=>SX});async function OX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function SX(_){}var TN={};C(TN,{up:()=>fX,down:()=>AX});import{sql as fm}from"kysely";async function fX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await fm`
1690
1697
  UPDATE organization_settings
1691
1698
  SET flags = jsonb_build_object('reports_only', reports_only)
1692
1699
  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`
1700
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function AX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await fm`
1694
1701
  UPDATE organization_settings
1695
1702
  SET reports_only = (flags ->> 'reports_only')::boolean
1696
1703
  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`
1704
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var mN={};C(mN,{up:()=>yX,down:()=>VX});import{sql as IX}from"kysely";async function yX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await IX`
1698
1705
  update task_board_items
1699
1706
  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`
1707
+ `.execute(_)}async function VX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var zN={};C(zN,{up:()=>wX,down:()=>kX,ACTIONS:()=>Am});import{sql as o_}from"kysely";var Am=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function wX(_){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(o_`now()`)).addCheckConstraint("chk_task_board_activity_action",o_`action IN (${o_.join(Am.map((x)=>o_.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 kX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var $N={};C($N,{up:()=>nX,down:()=>vX,ACTIONS:()=>EN});import{sql as W_}from"kysely";var EN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function nX(_){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(W_`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 Im(_,EN)}async function vX(_){await Im(_,EN.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 Im(_,x){await W_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await W_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${W_.join(x.map((u)=>W_.lit(u)))}))`.execute(_)}var JN={};C(JN,{up:()=>gX,down:()=>qX});import{sql as ym}from"kysely";function UN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function pX(_){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 UN(N)}catch{return UN(_.connection_url)}if(_.title)return UN(_.title);return _.id}async function gX(_){let x=await ym`
1701
1708
  SELECT id, app_name, connection_url, title, slug
1702
1709
  FROM connections
1703
1710
  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_`
1711
+ `.execute(_),u=0;for(let N of x.rows){let K=pX(N);if(K===N.slug)continue;await ym`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 qX(){}var PN={};C(PN,{up:()=>cX,down:()=>hX});import{sql as iX}from"kysely";async function cX(_){await iX`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 hX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var XN={};C(XN,{up:()=>oX,down:()=>aX,ACTIONS:()=>QN});import{sql as a_}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"],tX=new Set(["review_requested","review_approved","review_changes_requested"]);async function oX(_){await Vm(_,QN)}async function aX(_){await Vm(_,QN.filter((x)=>!tX.has(x)))}async function Vm(_,x){await a_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await a_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${a_.join(x.map((u)=>a_.lit(u)))}))`.execute(_)}var ZN={};C(ZN,{up:()=>lX,down:()=>eX});import{sql as rX}from"kysely";async function lX(_){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(rX`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 eX(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var jN={};C(jN,{up:()=>sX,down:()=>bX,ACTIONS:()=>WN});import{sql as r_}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","merge_conflict_resolution"],dX=new Set(["merge_conflict_resolution"]);async function sX(_){await wm(_,WN)}async function bX(_){await wm(_,WN.filter((x)=>!dX.has(x)))}async function wm(_,x){await r_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await r_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${r_.join(x.map((u)=>r_.lit(u)))}))`.execute(_)}var LN={};C(LN,{up:()=>_Z,down:()=>xZ});import{sql as j_}from"kysely";async function _Z(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await j_`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 xZ(_){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 j_`
1705
1712
  create index idx_org_billing_benefits_pending
1706
1713
  on organization_billing (updated_at)
1707
1714
  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_`
1715
+ `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(j_`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(j_`now()`)).execute()}var FN={};C(FN,{up:()=>uZ,down:()=>CZ});import{sql as l_}from"kysely";async function uZ(_){await l_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await l_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function CZ(_){await l_`
1709
1716
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1710
1717
  RETURNS trigger AS $fn$
1711
1718
  BEGIN
@@ -1726,40 +1733,40 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1726
1733
  RETURN NEW;
1727
1734
  END;
1728
1735
  $fn$ LANGUAGE plpgsql;
1729
- `.execute(_),await a_`
1736
+ `.execute(_),await l_`
1730
1737
  CREATE TRIGGER trg_repo_github_child_single_parent
1731
1738
  BEFORE INSERT ON connection_aggregations
1732
1739
  FOR EACH ROW
1733
1740
  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`
1741
+ `.execute(_)}var DN={};C(DN,{up:()=>KZ,down:()=>NZ});import{sql as km}from"kysely";async function KZ(_){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(km`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(km`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function NZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var YN={};C(YN,{up:()=>TZ,down:()=>mZ});import{sql as nm}from"kysely";async function TZ(_){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(nm`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(nm`now()`)).execute()}async function mZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var MN={};C(MN,{up:()=>zZ,down:()=>EZ});import{sql as HN}from"kysely";async function zZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(HN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await HN`
1735
1742
  create index idx_task_quota_claims_org_period_live
1736
1743
  on task_quota_claims (organization_id, period_key)
1737
1744
  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`
1745
+ `.execute(_)}async function EZ(_){await HN`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 RN={};C(RN,{up:()=>$Z,down:()=>UZ});async function $Z(_){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 UZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var BN={};C(BN,{up:()=>JZ,down:()=>PZ});async function JZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function PZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var GN={};C(GN,{up:()=>QZ,down:()=>XZ});import{sql as vm}from"kysely";async function QZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(vm`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(vm`monthly_task_executions > 0`)).execute()}async function XZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var ON={};C(ON,{up:()=>WZ,down:()=>jZ});import{sql as ZZ}from"kysely";async function WZ(_){await ZZ`
1739
1746
  CREATE INDEX idx_task_board_items_pending_review
1740
1747
  ON task_board_items (updated_at, id)
1741
1748
  WHERE status = 'in_review'
1742
1749
  AND assignee_id = 'super-agent'
1743
1750
  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`
1751
+ `.execute(_)}async function jZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var SN={};C(SN,{up:()=>LZ,down:()=>FZ});import{sql as pm}from"kysely";async function LZ(_){await pm`
1745
1752
  ALTER TABLE task_board_items
1746
1753
  ADD COLUMN last_swept_at timestamptz
1747
- `.execute(_)}async function PZ(_){await Vm`
1754
+ `.execute(_)}async function FZ(_){await pm`
1748
1755
  ALTER TABLE task_board_items
1749
1756
  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_`
1757
+ `.execute(_)}var fN={};C(fN,{up:()=>DZ,down:()=>YZ});import{sql as e_}from"kysely";async function DZ(_){await e_`
1751
1758
  ALTER TABLE task_board_items
1752
1759
  ADD COLUMN retry_at timestamptz,
1753
1760
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
1754
- `.execute(_),await r_`
1761
+ `.execute(_),await e_`
1755
1762
  CREATE INDEX idx_task_board_items_retry_due
1756
1763
  ON task_board_items (retry_at)
1757
1764
  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_`
1765
+ `.execute(_)}async function YZ(_){await e_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await e_`
1759
1766
  ALTER TABLE task_board_items
1760
1767
  DROP COLUMN retry_at,
1761
1768
  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`
1769
+ `.execute(_)}var IN={};C(IN,{up:()=>HZ,down:()=>MZ});import{sql as AN}from"kysely";async function HZ(_){await AN`
1763
1770
  CREATE TABLE org_repo_sync (
1764
1771
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1765
1772
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1777,11 +1784,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1777
1784
  updated_at timestamptz NOT NULL DEFAULT now(),
1778
1785
  UNIQUE (organization_id, volume)
1779
1786
  )
1780
- `.execute(_),await ON`
1787
+ `.execute(_),await AN`
1781
1788
  CREATE INDEX idx_org_repo_sync_enabled
1782
1789
  ON org_repo_sync (organization_id)
1783
1790
  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`
1791
+ `.execute(_)}async function MZ(_){await AN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var VN={};C(VN,{up:()=>BZ,down:()=>GZ,ACTIONS:()=>yN});import{sql as d_}from"kysely";var yN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],RZ=new Set(["merge_failed"]);async function BZ(_){await gm(_,yN)}async function GZ(_){await gm(_,yN.filter((x)=>!RZ.has(x)))}async function gm(_,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 wN={};C(wN,{up:()=>OZ,down:()=>SZ});async function OZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function SZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var kN={};C(kN,{up:()=>fZ,down:()=>AZ});import{sql as __}from"kysely";async function fZ(_){await __`
1785
1792
  CREATE TABLE org_jira_integrations (
1786
1793
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1787
1794
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1801,7 +1808,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1801
1808
  created_at timestamptz NOT NULL DEFAULT now(),
1802
1809
  updated_at timestamptz NOT NULL DEFAULT now()
1803
1810
  )
1804
- `.execute(_),await b`
1811
+ `.execute(_),await __`
1805
1812
  CREATE TABLE task_board_item_jira_links (
1806
1813
  item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
1807
1814
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1812,7 +1819,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1812
1819
  created_at timestamptz NOT NULL DEFAULT now(),
1813
1820
  UNIQUE (organization_id, jira_issue_id)
1814
1821
  )
1815
- `.execute(_),await b`
1822
+ `.execute(_),await __`
1816
1823
  CREATE TABLE task_board_comment_jira_links (
1817
1824
  comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
1818
1825
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1820,7 +1827,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1820
1827
  created_at timestamptz NOT NULL DEFAULT now(),
1821
1828
  UNIQUE (organization_id, jira_comment_id)
1822
1829
  )
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`
1830
+ `.execute(_)}async function AZ(_){await __`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await __`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await __`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var nN={};C(nN,{up:()=>yZ,down:()=>VZ});import{sql as IZ}from"kysely";async function yZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await IZ`
1824
1831
  update task_board_items as t
1825
1832
  set key_seq = numbered.seq
1826
1833
  from (
@@ -1833,25 +1840,25 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1833
1840
  from task_board_items
1834
1841
  ) as numbered
1835
1842
  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`
1843
+ `.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 VZ(_){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 vN={};C(vN,{up:()=>wZ,down:()=>kZ});import{sql as qm}from"kysely";async function wZ(_){await qm`
1837
1844
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1838
1845
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1839
1846
  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`
1847
+ `.execute(_)}async function kZ(_){await qm`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var gN={};C(gN,{up:()=>nZ,down:()=>vZ});import{sql as pN}from"kysely";async function nZ(_){await pN`
1841
1848
  ALTER TABLE thread_message_parts
1842
1849
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1843
- `.execute(_),await kN`
1850
+ `.execute(_),await pN`
1844
1851
  ALTER TABLE thread_message_parts
1845
1852
  ALTER COLUMN persisted_at SET DEFAULT now()
1846
- `.execute(_)}async function AZ(_){await kN`
1853
+ `.execute(_)}async function vZ(_){await pN`
1847
1854
  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`
1855
+ `.execute(_)}var qN={};C(qN,{up:()=>pZ,down:()=>gZ});async function pZ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function gZ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var iN={};C(iN,{up:()=>iZ,down:()=>cZ});import{sql as qZ}from"kysely";async function iZ(_){await qZ`
1849
1856
  CREATE INDEX idx_task_board_items_done_sweep
1850
1857
  ON task_board_items (updated_at)
1851
1858
  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
1859
+ `.execute(_)}async function cZ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var cN={};C(cN,{up:()=>hZ,down:()=>tZ,TYPES:()=>im});import{sql as q}from"kysely";var im=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function hZ(_){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(im.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1853
1860
  (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`
1861
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function tZ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var hN={};C(hN,{up:()=>oZ,down:()=>aZ});import{sql as cm}from"kysely";async function oZ(_){await cm`
1855
1862
  UPDATE org_jira_integrations
1856
1863
  SET status_mapping = (
1857
1864
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1866,7 +1873,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1866
1873
  SELECT 1 FROM jsonb_each(status_mapping)
1867
1874
  WHERE jsonb_typeof(value) = 'array'
1868
1875
  )
1869
- `.execute(_)}async function gZ(_){await vm`
1876
+ `.execute(_)}async function aZ(_){await cm`
1870
1877
  UPDATE org_jira_integrations
1871
1878
  SET status_mapping = (
1872
1879
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1881,7 +1888,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1881
1888
  SELECT 1 FROM jsonb_each(status_mapping)
1882
1889
  WHERE jsonb_typeof(value) = 'array'
1883
1890
  )
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 __`
1891
+ `.execute(_)}var oN={};C(oN,{up:()=>lZ,down:()=>eZ,TYPES:()=>tN});import{sql as s_}from"kysely";var tN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],rZ=new Set(["mentioned"]);async function lZ(_){await hm(_,tN)}async function eZ(_){await hm(_,tN.filter((x)=>!rZ.has(x)))}async function hm(_,x){await s_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await s_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${s_.join(x.map((u)=>s_.lit(u)))}))`.execute(_)}var rN={};C(rN,{up:()=>bZ,down:()=>_6,ACTIONS:()=>aN});import{sql as i}from"kysely";var dZ=["bug","feature","chore","spike","security"],aN=["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"],sZ=new Set(["type_changed"]);async function bZ(_){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(dZ.map((x)=>i.lit(x)))}))`.execute(_),await tm(_,aN)}async function _6(_){await tm(_,aN.filter((x)=>!sZ.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 tm(_,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 lN={};C(lN,{up:()=>x6,down:()=>u6});import{sql as W}from"kysely";var am=["bug","feature","chore","spike","security"],om="chore";async function x6(_){await W`UPDATE task_board_items SET type = ${W.lit(om)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(om)}`.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(am.map((x)=>W.lit(x)))}))`.execute(_)}async function u6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(am.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 eN={};C(eN,{up:()=>C6,down:()=>K6});import{sql as x_}from"kysely";async function C6(_){await x_`
1885
1892
  CREATE TABLE task_board_sprints (
1886
1893
  id text PRIMARY KEY,
1887
1894
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1896,44 +1903,44 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1896
1903
  CHECK (state IN ('active', 'future', 'closed')),
1897
1904
  UNIQUE (organization_id, jira_sprint_id)
1898
1905
  )
1899
- `.execute(_),await __`
1906
+ `.execute(_),await x_`
1900
1907
  CREATE INDEX idx_task_board_sprints_org
1901
1908
  ON task_board_sprints (organization_id, starts_at)
1902
- `.execute(_),await __`
1909
+ `.execute(_),await x_`
1903
1910
  ALTER TABLE task_board_items
1904
1911
  ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
1905
- `.execute(_),await __`
1912
+ `.execute(_),await x_`
1906
1913
  CREATE INDEX idx_task_board_items_sprint
1907
1914
  ON task_board_items (organization_id, sprint_id)
1908
1915
  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`
1916
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function K6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await x_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await x_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var dN={};C(dN,{up:()=>T6,down:()=>m6});import{sql as N6}from"kysely";async function T6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function m6(_){await N6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var sN={};C(sN,{up:()=>E6,down:()=>$6});import{sql as z6}from"kysely";async function E6(_){await z6`
1910
1917
  UPDATE org_jira_integrations
1911
1918
  SET last_synced_at = NULL,
1912
1919
  last_sync_error = NULL
1913
1920
  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`
1921
+ `.execute(_)}async function $6(){}var bN={};C(bN,{up:()=>J6,down:()=>P6});import{sql as U6}from"kysely";async function J6(_){await U6`
1915
1922
  UPDATE org_jira_integrations
1916
1923
  SET last_synced_at = NULL,
1917
1924
  last_sync_error = NULL
1918
1925
  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`
1926
+ `.execute(_)}async function P6(){}var xT={};C(xT,{up:()=>Q6,down:()=>X6});import{sql as _T}from"kysely";async function Q6(_){await _T`
1920
1927
  ALTER TABLE org_jira_integrations
1921
1928
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1922
- `.execute(_),await dN`
1929
+ `.execute(_),await _T`
1923
1930
  UPDATE org_jira_integrations
1924
1931
  SET rescan_pending = true
1925
1932
  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`
1933
+ `.execute(_)}async function X6(_){await _T`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var uT={};C(uT,{up:()=>Z6,down:()=>W6});async function Z6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function W6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var CT={};C(CT,{up:()=>j6,down:()=>L6});import{sql as rm}from"kysely";async function j6(_){await rm`
1927
1934
  ALTER TABLE invitation
1928
1935
  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`
1936
+ `.execute(_)}async function L6(_){await rm`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var NT={};C(NT,{up:()=>F6,down:()=>D6});import{sql as KT}from"kysely";async function F6(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(KT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(KT`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 KT`
1930
1937
  INSERT INTO task_board_column_automations
1931
1938
  (id, organization_id, column_key, prompt)
1932
1939
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1933
1940
  FROM org_jira_integrations
1934
1941
  WHERE auto_delegate = true
1935
1942
  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_`
1943
+ `.execute(_)}async function D6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var TT={};C(TT,{up:()=>Y6,down:()=>H6});import{sql as L_}from"kysely";async function Y6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await L_`
1937
1944
  UPDATE task_board_items i
1938
1945
  SET review_cycle_started_at = (
1939
1946
  SELECT max(a.occurred_at)
@@ -1943,35 +1950,35 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1943
1950
  AND a.data ->> 'to' = 'in_review'
1944
1951
  )
1945
1952
  WHERE i.status = 'in_review'
1946
- `.execute(_),await D_`
1953
+ `.execute(_),await L_`
1947
1954
  CREATE INDEX idx_task_board_items_review_cycle
1948
1955
  ON task_board_items (updated_at, id)
1949
1956
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1950
1957
  AND assignee_id = 'super-agent'
1951
1958
  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_`
1959
+ `.execute(_),await L_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function H6(_){await L_`
1953
1960
  CREATE INDEX idx_task_board_items_pending_review
1954
1961
  ON task_board_items (updated_at, id)
1955
1962
  WHERE status = 'in_review'
1956
1963
  AND assignee_id = 'super-agent'
1957
1964
  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_`
1965
+ `.execute(_),await L_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var mT={};C(mT,{up:()=>M6,down:()=>R6});import{sql as lm}from"kysely";async function M6(_){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(lm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(lm`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 R6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var ET={};C(ET,{up:()=>G6,down:()=>O6,ACTIONS:()=>zT});import{sql as b_}from"kysely";var zT=["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"],B6=new Set(["review_verdict_requested"]);async function G6(_){await em(_,zT)}async function O6(_){await em(_,zT.filter((x)=>!B6.has(x)))}async function em(_,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 $T={};C($T,{up:()=>S6,down:()=>f6});import{sql as _x}from"kysely";async function S6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await _x`
1959
1966
  ALTER TABLE task_board_items
1960
1967
  ADD CONSTRAINT chk_task_board_items_column_org
1961
1968
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
1962
- `.execute(_),await s_`
1969
+ `.execute(_),await _x`
1963
1970
  ALTER TABLE task_board_items
1964
1971
  ADD CONSTRAINT task_board_items_board_column_fkey
1965
1972
  FOREIGN KEY (board_column_org, status)
1966
1973
  REFERENCES task_board_columns (organization_id, key)
1967
1974
  ON DELETE RESTRICT
1968
- `.execute(_)}async function H6(_){await s_`
1975
+ `.execute(_)}async function f6(_){await _x`
1969
1976
  ALTER TABLE task_board_items
1970
1977
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1971
- `.execute(_),await s_`
1978
+ `.execute(_),await _x`
1972
1979
  ALTER TABLE task_board_items
1973
1980
  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`
1981
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var UT={};C(UT,{up:()=>A6,down:()=>I6});async function A6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function I6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var PT={};C(PT,{up:()=>V6,down:()=>w6,ACTIONS:()=>JT});import{sql as xx}from"kysely";var JT=["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"],y6=new Set(["sprint_changed"]);async function V6(_){await dm(_,JT)}async function w6(_){await dm(_,JT.filter((x)=>!y6.has(x)))}async function dm(_,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 QT={};C(QT,{up:()=>n6,down:()=>v6});import{sql as k6}from"kysely";async function n6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(k6`'[]'::jsonb`)).execute()}async function v6(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var XT={};C(XT,{up:()=>p6,down:()=>g6});import{sql as sm}from"kysely";async function p6(_){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(sm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(sm`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function g6(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var ZT={};C(ZT,{up:()=>i6,down:()=>c6});import{sql as q6}from"kysely";async function i6(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await q6`
1975
1982
  UPDATE task_board_items i
1976
1983
  SET external_url = t.url,
1977
1984
  description = CASE
@@ -1990,11 +1997,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
1990
1997
  ON g.organization_id = l.organization_id
1991
1998
  ) t
1992
1999
  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`
2000
+ `.execute(_)}async function c6(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var WT={};C(WT,{up:()=>t6,down:()=>o6,ACTIONS:()=>bm});import{sql as Q}from"kysely";var h6=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],bm=["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 t6(_){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
2001
  UPDATE task_board_items
1995
2002
  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`
2003
+ WHERE status NOT IN (${Q.join(h6.map((x)=>Q.lit(x)))})
2004
+ `.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 a6(_,bm),await Q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await Q`
1998
2005
  ALTER TABLE task_board_item_jira_links
1999
2006
  DROP COLUMN IF EXISTS jira_updated_at,
2000
2007
  DROP COLUMN IF EXISTS jira_status,
@@ -2006,11 +2013,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2006
2013
  DROP COLUMN IF EXISTS last_synced_at,
2007
2014
  DROP COLUMN IF EXISTS last_sync_error,
2008
2015
  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_`
2016
+ `.execute(_)}async function o6(){}async function a6(_,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 jT={};C(jT,{up:()=>r6,down:()=>l6});import{sql as u_}from"kysely";async function r6(_){await u_`
2010
2017
  ALTER TABLE task_board_items
2011
2018
  ADD COLUMN IF NOT EXISTS source text
2012
2019
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
2013
- `.execute(_),await x_`
2020
+ `.execute(_),await u_`
2014
2021
  CREATE TABLE IF NOT EXISTS org_jira_column_automations (
2015
2022
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
2016
2023
  jira_status text NOT NULL,
@@ -2019,7 +2026,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2019
2026
  updated_at timestamptz NOT NULL DEFAULT now(),
2020
2027
  PRIMARY KEY (organization_id, jira_status)
2021
2028
  )
2022
- `.execute(_),await x_`
2029
+ `.execute(_),await u_`
2023
2030
  CREATE TABLE IF NOT EXISTS jira_trigger_claims (
2024
2031
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
2025
2032
  jira_issue_id text NOT NULL,
@@ -2027,24 +2034,24 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2027
2034
  created_at timestamptz NOT NULL DEFAULT now(),
2028
2035
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
2029
2036
  )
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_`
2037
+ `.execute(_)}async function l6(_){await u_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await u_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await u_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var LT={};C(LT,{up:()=>e6,down:()=>d6});import{sql as F_}from"kysely";async function e6(_){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(F_`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(F_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).execute(),await F_`
2031
2038
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
2032
2039
  ON organization_notices (organization_id)
2033
2040
  WHERE resolved_at IS NULL
2034
- `.execute(_),await j_`
2041
+ `.execute(_),await F_`
2035
2042
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
2036
2043
  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`
2044
+ `.execute(_)}async function d6(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var DT={};C(DT,{up:()=>mW,down:()=>zW});import{sql as FT}from"kysely";import{sql as pj}from"kysely";var _z=50000000,s6=1e5;function b6(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>s6)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 _W=/\u0000/g,xW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,uW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,CW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,KW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function NW(_){return _.replace(_W,"").replace(xW,"\uFFFD").replace(uW,"$1***@").replace(CW,"$1***").replace(KW,"[base64 data omitted]")}function TW(_){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 xz(_){if(b6(_,_z)>_z)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return NW(u);if(TW(u))return{type:"text",text:"[image omitted]"};return u})}var uz=20;async function mW(_){let x=await FT`
2038
2045
  SELECT id FROM thread_message_parts
2039
2046
  WHERE pg_column_size(payload) > 8192
2040
2047
  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`
2048
+ `.execute(_);for(let u=0;u<x.rows.length;u+=uz){let N=x.rows.slice(u,u+uz).map((T)=>T.id),K=await FT`
2042
2049
  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`
2050
+ `.execute(_);for(let T of K.rows){let m=xz(T.payload);if(m===JSON.stringify(T.payload))continue;await FT`
2044
2051
  UPDATE thread_message_parts
2045
2052
  SET payload = ${m}::jsonb
2046
2053
  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`
2054
+ `.execute(_)}}}async function zW(){}var YT={};C(YT,{up:()=>EW,down:()=>$W});async function EW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function $W(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var HT={};C(HT,{up:()=>UW,down:()=>JW});import{sql as U}from"kysely";async function UW(_){await U`
2048
2055
  CREATE TABLE git_provider_accounts (
2049
2056
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
2050
2057
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -2288,11 +2295,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2288
2295
  AND r.organization_id = s.organization_id
2289
2296
  AND r.host = 'github.com'
2290
2297
  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`
2298
+ `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function JW(_){await U`
2292
2299
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
2293
2300
  `.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
2294
2301
  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`
2302
+ `.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 MT={};C(MT,{up:()=>QW,down:()=>XW});import{sql as I}from"kysely";var PW=I`
2296
2303
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
2297
2304
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
2298
2305
  BEGIN
@@ -2301,7 +2308,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2301
2308
  RETURN NULL;
2302
2309
  END;
2303
2310
  $$
2304
- `;async function mW(_){await TW.execute(_),await I`
2311
+ `;async function QW(_){await PW.execute(_),await I`
2305
2312
  ALTER TABLE connections
2306
2313
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2307
2314
  `.execute(_),await I`
@@ -2363,21 +2370,21 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2363
2370
  AND r.host = 'github.com'
2364
2371
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
2365
2372
  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`
2373
+ `.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function XW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
2367
2374
  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(`
2375
+ `.execute(_)}var ZW={"001-initial-schema":zu,"002-organization-settings":Eu,"003-connection-schema-align":$u,"004-remove-models-binding":Uu,"005-connection-configuration":Ju,"006-add-views-to-settings":Pu,"007-monitoring-logs":Qu,"008-event-bus":Xu,"009-drop-audit-logs":Zu,"010-gateways":Wu,"011-gateway-icon":ju,"012-gateway-tool-selection-mode":Lu,"013-monitoring-user-agent-gateway":Fu,"014-gateway-resources-prompts":Du,"015-monitoring-properties":Yu,"016-downstream-token-client-info":Hu,"017-downstream-token-remove-userid":Mu,"018-drop-gateway-tool-selection-strategy":Ru,"019-remove-gateway-is-default":Bu,"020-enabled-plugins":Gu,"021-threads":Ou,"022-rename-gateway-to-virtual-mcp":Su,"023-optimize-thread-indexes":fu,"024-consolidate-virtual-mcp":Au,"025-add-monitoring-virtual-mcp-id":Iu,"026-restrict-child-connection-delete":yu,"027-update-management-mcp-url":wu,"028-update-management-mcp-to-self":nu,"029-add-updated-by-to-connections":vu,"030-member-tags":pu,"031-add-dependency-mode":gu,"032-projects":qu,"033-thread-status":iu,"034-monitoring-dashboards":cu,"035-project-connections":hu,"036-update-registry-url":tu,"037-ai-provider-keys":ou,"038-oauth-pkce-states":au,"039-automations":ru,"040-replace-next-run-at-with-last-run-at":lu,"041-ai-provider-keys-unique-constraint":eu,"042-rename-mesh-mcp-to-cms-mcp":du,"043-rename-cms-mcp-to-deco-cms":su,"044-drop-connections-tools-column":bu,"045-thread-context-start-message":_C,"046-remove-object-storage-plugin":uC,"047-add-next-run-at":CC,"048-merge-projects-agents":NC,"049-remove-org-admin-projects":TC,"050-durable-agent-runs":mC,"051-org-sso":EC,"052-thread-agent-ids":$C,"053-registry-config":UC,"054-connection-slug":PC,"055-spaces":QC,"056-automation-project-scope":XC,"057-thread-virtual-mcp-id":ZC,"058-trigger-callback-tokens":WC,"059-kv":jC,"060-member-index":LC,"061-downstream-token-connection-index":FC,"062-private-registry":DC,"063-event-subscriptions-enabled-boolean":YC,"064-brand-context":HC,"065-organization-domains":MC,"066-brand-context-structured":RC,"067-threads-metadata":BC,"068-threads-branch":GC,"069-sandbox-runner-state":OC,"070-model-categories":SC,"071-default-home-agents":fC,"072-ai-provider-key-preset-id":AC,"073-backfill-basic-usage-roles":IC,"074-sandbox-runner-state-handle-nonunique":yC,"075-thread-inflight-async-jobs":VC,"076-automations-drop-agent-json":wC,"077-tier-only-model-selection":nC,"078-automation-tool-call-kind":vC,"079-strip-legacy-freestyle-vm-map-entries":pC,"080-async-research-jobs":gC,"081-async-research-jobs-result-content":qC,"082-secrets":iC,"083-thread-run-locally":cC,"084-drop-host-sandbox-rows":hC,"085-rename-runner-kind":tC,"086-thread-pins-and-vm-map-rekey":oC,"087-fix-vm-map-rekey":aC,"088-purge-cli-activate-keys":rC,"089-rename-remote-user-to-desktop":lC,"090-automation-webhook-triggers":eC,"091-organization-domains-allow-multi":dC,"092-sandbox-naming-uniformization":sC,"093-backfill-global-search-basic-usage":bC,"094-org-file-configs":xK,"095-remove-automation-tool-call-kind":uK,"096-org-file-configs-public-url-base":CK,"097-drop-local-docker-sandbox-state":NK,"098-thread-message-parts":TK,"099-run-fence":mK,"100-link-transport":zK,"101-cancel-requested-at":EK,"102-observational-agent":$K,"103-revert-observational-agent":UK,"104-agent-sandbox-provider-kind":PK,"105-org-fs":QK,"106-automation-tools":XK,"107-org-fs-public-org":ZK,"108-automation-max-agent-steps":WK,"109-thread-message-parts-per-message-seq":jK,"110-backfill-ghs-token-expiry":LK,"111-org-fs-thread-id":FK,"112-org-file-configs-credential-type":DK,"113-thread-failure-reason":YK,"114-run-acked-seq":HK,"115-thread-projected-seq":MK,"116-org-sites":RK,"117-org-file-configs-site-slug":BK,"118-organization-domains-multi-verify":GK,"119-organization-join-requests":OK,"120-org-fs-read-public":SK,"121-org-fs-share-password":fK,"122-split-web-research-tier":yK,"123-connection-credential-vault":VK,"124-drop-thread-projected-seq":wK,"125-github-child-single-parent":kK,"126-task-board":vK,"127-task-board-due-date":pK,"128-reports-only":gK,"129-task-board-assigned-by":qK,"130-task-board-thread-id":iK,"131-task-board-thread-link-cascade":cK,"132-task-board-item-prs":hK,"133-dedupe-duplicate-members":tK,"134-drop-task-board-enabled":oK,"135-task-board-item-fk-cascade":aK,"136-task-board-import-idempotency":rK,"137-agent-sandbox-runner-state":lK,"138-agent-sandbox-sessions":eK,"139-organization-billing":dK,"140-seat-change-log":sK,"141-benefits-sync-pending":bK,"142-stripe-event-watermark":_N,"143-armed-report-url":xN,"144-benefits-pending-index":uN,"145-user-model-preferences":CN,"146-organization-main-agent":KN,"147-drop-agent-sandbox-tables":NN,"148-org-flags":TN,"149-task-board-item-sort-order":mN,"150-task-board-activity":zN,"151-task-board-tags":$N,"152-repair-connection-slug":JN,"153-task-board-latest-assistant-part-index":PN,"154-task-board-qa-activity":XN,"155-task-board-review-claims":ZN,"156-task-board-conflict-activity":jN,"157-drop-seat-billing":LN,"158-drop-github-child-single-parent":FN,"159-task-board-comments":DN,"160-task-quota-billing":YN,"161-task-quota-claim-state":MN,"162-claude-subscriptions":RN,"163-task-board-item-dismissed":BN,"164-per-org-task-quota":GN,"165-task-board-pending-review-index":ON,"166-task-board-last-swept-at":SN,"167-task-board-run-retry":fN,"168-org-repo-sync":IN,"169-task-board-merge-failed-activity":VN,"170-task-board-item-repo":wN,"171-jira-integration":kN,"172-task-board-item-key-seq":nN,"173-thread-github-repo-connection-index":vN,"174-thread-message-parts-persisted-at":gN,"175-task-board-sprints":qN,"176-task-board-done-sweep-index":iN,"177-notifications":cN,"178-jira-status-mapping-array":hN,"179-notification-mentioned":oN,"180-task-board-item-type":rN,"181-task-board-item-type-required":lN,"182-task-board-sprints-entities":eN,"183-drop-jira-jql-filter":dN,"184-jira-rescan-after-scope-change":sN,"185-jira-rescan-existing-cards":bN,"186-jira-rescan-pending-flag":xT,"187-task-board-comment-thread":uT,"188-invitation-auto-accept":CT,"189-task-board-column-automations":NT,"190-task-board-review-cycle-started-at":TT,"191-task-board-columns":mT,"192-task-board-verdict-nudge-activity":ET,"193-task-board-status-column-fk":$T,"194-jira-link-sprint":UT,"195-task-board-sprint-activity":PT,"196-task-board-column-tracker-statuses":QT,"197-task-board-prompts":XT,"198-task-board-external-url":ZT,"199-drop-jira-mirror-and-org-columns":WT,"200-jira-run-trigger":jT,"201-organization-notices":LT,"202-redact-base64-thread-parts":DT,"203-task-board-preview-routes":YT,"204-git-provider-accounts-and-repositories":HT,"205-repository-references":MT,"206-repository-consumers":mu,"207-task-board-prs-repo-idx":Tu,"208-github-connect-flows":Nu,"209-github-installation-authorization":Ku,"210-github-repository-authorization":ex,"211-user-fs-org":lx,"212-coding-agent-mcp-excluded":dx,"213-bitbucket-git-provider":sx,"214-connections-sanitized-id-idx":tx,"215-commerce-discovery-repository":ox,"216-github-cli-auth":rx,"217-experiments":bx,"218-thread-message-parts-error-idx":_u,"219-task-board-duplicate-reported-activity":uu,"220-jira-automation-continue-pr":Cu,"221-remove-private-registry":zx,"222-org-git-credentials":Ex,"223-drop-org-main-agent-id":hx,"224-repository-sandbox-image":$x,"225-thread-analytics-indexes":Jx,"226-deco-score-names":Qx,"227-task-board-finding-resolved-activity":Zx,"228-org-voice-config":mx,"229-jira-automation-from":Wx,"230-project-sidebar":jx,"231-jira-chat-agent":Lx,"232-task-board-prompt-skills":Dx,"233-remove-jira-chat-agent":Hx,"234-task-board-comment-audience":Mx,"235-prune-empty-thread-dirs":Rx,"236-task-board-sprints":Gx,"237-org-sites-project-link":Ox,"238-task-board-default-lanes":Sx,"239-task-board-retire-old-lanes":fx,"240-task-board-restore-todo":Ax,"241-automation-board-column-transition":Ix,"242-connection-url-slug":yx,"243-experiment-task-board-item":Vx,"244-connection-url-slug-rollout-backfill":wx,"245-automation-system-key":kx,"246-automation-pr-ready-trigger":nx,"247-automation-jira-transition":vx,"248-drop-retired-rule-tables":px,"249-task-board-item-project":gx,"250-github-copilot-subscriptions":qx,"251-org-shared-plans":ix,"252-automation-linked-chat-trigger":cx},ux=ZW;import{getMigrations as lW}from"better-auth/db";import{sso as eW}from"@better-auth/sso";import{organization as dW}from"@decocms/better-auth/plugins";import{admin as sW,apiKey as bW,jwt as _7,magicLink as x7,mcp as u7,openAPI as C7}from"better-auth/plugins";import{emailOTP as K7}from"better-auth/plugins/email-otp";import{Kysely as qW,PostgresDialect as Jz}from"kysely";import{Pool as Pz}from"pg";import{homedir as WW}from"os";var jW=new Set(["all","worker","api"]);function LW(_){let x=(_??"").trim();return jW.has(x)?x:"all"}var FW=new Set(["production","development","test"]);function DW(_){let x=(_??"").trim();return FW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function BT(_,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 BT(_,x,N)??u}function YW(_){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 HW(_,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 RT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function MW(_){return _===void 0||_===""||_==="true"||_==="1"}function D_(_,x){return _||x}function Cz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${WW()}/deco`,u=DW(_.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:BT("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:YW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:HW("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:RT(_.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:RT(_.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:MW(_.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:BT("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:LW(D_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:RT(_.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 RW=null;function C_(){return RW??=Object.freeze(Cz(process.env))}import{createContextKey as AW,metrics as IW,propagation as K8,ROOT_CONTEXT as N8,SpanStatusCode as T8,trace as yW}from"@opentelemetry/api";import{logs as VW,SeverityNumber as GT}from"@opentelemetry/api-logs";import{OTLPLogExporter as E8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as wW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as J8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as Q8}from"@opentelemetry/instrumentation-runtime-node";import{context as sj,propagation as bj,SpanKind as _5,SpanStatusCode as x5}from"@opentelemetry/api";var C5=globalThis.fetch;import{ExportResultCode as X5}from"@opentelemetry/core";import{ExportResultCode as Cx}from"@opentelemetry/core";import{mkdir as BW,rename as GW,writeFile as OW}from"fs/promises";import{join as Kx}from"path";class Nx{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:Cx.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:Cx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Cx.FAILED}});return Promise.resolve({code:Cx.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?Kx(this.basePath,x,...N):Kx(this.basePath,...N);if(!this.knownDirs.has(K))await BW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let T=`${crypto.randomUUID()}.ndjson`,m=Kx(K,`.${T}.tmp`),z=Kx(K,T),E=_.join(`
2369
2376
  `)+`
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`
2377
+ `;await OW(m,E,{mode:384}),await GW(m,z)}}import{ExportResultCode as F5}from"@opentelemetry/core";import{AggregationTemporality as Y5,DataPointType as H5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as S5}from"@opentelemetry/core";var y5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as H8,LoggerProvider as M8}from"@opentelemetry/sdk-logs";import{detectResources as B8,envDetector as G8,hostDetector as O8,osDetector as S8,processDetector as f8,resourceFromAttributes as A8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as y8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as k5}from"@opentelemetry/api-logs";import{NodeSDK as k8}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as v8,SamplingDecision as K_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as q5}from"@opentelemetry/api";var kW="__d",nW=AW("Current request"),vW=1;var Nz=(_)=>{let u=new URL(_.url).searchParams.get(kW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Tz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,T){let m=_.getValue(nW);if(!m){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,T);return{decision:K_.RECORD_AND_SAMPLED}}let z=Nz(m);if(z)return{decision:K_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,T);if(E.decision===K_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:K_.NOT_RECORD}}toString(){return"DebugSampler"}}class mz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:K_.RECORD_AND_SAMPLED};return{decision:K_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var g8=new wW({preventServerStart:!0}),q8=new Tz(new mz(vW));var Kz=yW.getTracer("studio","1.0.0"),Y_=IW.getMeter("studio","1.0.0"),pW=VW.getLogger("studio","1.0.0"),OT=(_,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(" ");pW.emit({severityNumber:_,severityText:x,body:m,attributes:{"log.source":"console",...N}})},ST={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{OT(GT.ERROR,"ERROR",_),ST.error(..._)};console.warn=(..._)=>{OT(GT.WARN,"WARN",_),ST.warn(..._)};console.debug=(..._)=>{OT(GT.DEBUG,"DEBUG",_),ST.debug(..._)};var fT,zz=0,AT=500;function gW(){if(fT)return;let _=performance.now()+AT;fT=setInterval(()=>{let x=performance.now();zz=Math.max(0,x-_),_=x+AT},AT),fT.unref?.()}function Ez(){return gW(),zz}var iW=()=>Y_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),$z=()=>Y_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Uz=400,cW=100,hW=(_)=>({"db.status":_.level==="error"?"error":"success"}),tW=(_)=>(x)=>{let u=hW(x);if(x.queryDurationMillis>Uz){let N=Ez(),K=N>Uz/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:Tx()}})}if(iW().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function oW(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=Tx(),T=_.idleCount===0&&_.totalCount>=K,m=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if($z().record(E,{"db.pool.outcome":T?"contended":"available"}),E>cW)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 $z().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Qz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Xz(){try{return C_().databasePgSsl}catch{return!1}}function Tx(){try{return C_().databasePoolMax}catch{return 10}}function aW(_){let x=oW(new Pz({connectionString:_,max:Tx(),ssl:Xz(),...Qz})),u=new Jz({pool:x});return{type:"postgres",db:new qW({dialect:u,log:tW(x)}),pool:x}}function M_(){return C_().databaseUrl}function Zz(_){let x=_||M_();return new Jz({pool:new Pz({connectionString:x,max:Tx(),ssl:Xz(),...Qz})})}function rW(_){let x=_||M_();return aW(x)}async function Wz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===H_)H_=null}var H_=null;function IT(){if(!H_)H_=rW(M_());return H_}async function jz(_){let u={database:Zz(_||M_()),plugins:[dW({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),sW(),bW(),_7(),C7(),u7({loginPage:"/login"}),eW(),x7({sendMagicLink:async()=>{}}),K7({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:T}=await lW(u);if(!N.length&&!K.length)return"up to date";return await T(),`${K.length+N.length} table(s) migrated`}async function yT(_,x){return(await o`
2371
2378
  SELECT table_name FROM information_schema.tables
2372
2379
  WHERE table_schema='public' AND table_name=${x}
2373
- `.execute(_)).rows.length>0}async function sW(_){if(await fT(_,"plugin_migrations"))return;await o`
2380
+ `.execute(_)).rows.length>0}async function N7(_){if(await yT(_,"plugin_migrations"))return;await o`
2374
2381
  CREATE TABLE plugin_migrations (
2375
2382
  plugin_id TEXT NOT NULL,
2376
2383
  name TEXT NOT NULL,
2377
2384
  timestamp TEXT NOT NULL,
2378
2385
  PRIMARY KEY (plugin_id, name)
2379
2386
  )
2380
- `.execute(_)}async function bW(_){if(!await fT(_,"kysely_migration"))return;let x=await o`
2387
+ `.execute(_)}async function T7(_){if(!await yT(_,"kysely_migration"))return;let x=await o`
2381
2388
  SELECT name, timestamp FROM kysely_migration
2382
2389
  WHERE name LIKE '%/%'
2383
2390
  `.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 +2395,6 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
2388
2395
  WHERE plugin_id = ${m} AND name = ${z}
2389
2396
  `.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${m}/${z}, keeping in old table`);continue}}await o`
2390
2397
  DELETE FROM kysely_migration WHERE name = ${u}
2391
- `.execute(_)}}async function _7(_){if(!await fT(_,"kysely_migration"))return{};let{rows:x}=await o`
2398
+ `.execute(_)}}async function m7(_){if(!await yT(_,"kysely_migration"))return{};let{rows:x}=await o`
2392
2399
  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};
2400
+ `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(ux,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 z7(_){await N7(_),await T7(_);let x=new Lz({db:_,provider:{getMigrations:async()=>({...await m7(_),...ux})}}),{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 E7(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await jz();let T=u??IT(),m=async()=>{if(!x&&!u)await Wz(T).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await z7(T.db);return await m(),{betterAuth:K,kysely:z}}catch(z){throw await m(),z}}async function W3(){let _=IT(),x=new Lz({db:_.db,provider:{getMigrations:()=>Promise.resolve(ux)}}),{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 E7(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{z7 as runKyselyMigrations,E7 as migrateToLatest,W3 as migrateDown};