decocms 4.497.1 → 4.498.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/dist/client/assets/{ActiveShapeUtils-CyYu6nD0.js → ActiveShapeUtils-h37U-AjP.js} +1 -1
  2. package/dist/client/assets/{AlertCircle-CHrjAIcc.js → AlertCircle-D6PAHKjV.js} +1 -1
  3. package/dist/client/assets/{AreaChart-CwoOvJ2_.js → AreaChart-BARo54FY.js} +1 -1
  4. package/dist/client/assets/{ArrowLeft-CDSbOlKg.js → ArrowLeft-CG9rYORx.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-DVmGL0QN.js → ArrowUp-t0hf8rM7.js} +1 -1
  6. package/dist/client/assets/{BarChart-pYmYrRAw.js → BarChart-B21k04bX.js} +1 -1
  7. package/dist/client/assets/{Building02-Cjmi-E_Q.js → Building02-fUucitQx.js} +1 -1
  8. package/dist/client/assets/{CategoricalChart-J69_dr0s.js → CategoricalChart-VabRcjcu.js} +1 -1
  9. package/dist/client/assets/{CheckCircle-DH3xbIup.js → CheckCircle-of-fJlvu.js} +1 -1
  10. package/dist/client/assets/{ChevronSelectorVertical-D3--DzuF.js → ChevronSelectorVertical-lAvz2cuG.js} +1 -1
  11. package/dist/client/assets/{ChevronUp-fo2ERVlh.js → ChevronUp-IQvZuGmJ.js} +1 -1
  12. package/dist/client/assets/{Copy01-C7JKQ2yo.js → Copy01-D6HfKiqy.js} +1 -1
  13. package/dist/client/assets/{CreditCard01-DuhJeWgL.js → CreditCard01-D5Mtkf7j.js} +1 -1
  14. package/dist/client/assets/{DotsVertical-CdIsXudQ.js → DotsVertical-LyDkiB3Q.js} +1 -1
  15. package/dist/client/assets/{ErrorBarContext-PRGTHaZ1.js → ErrorBarContext-BbITcgQP.js} +1 -1
  16. package/dist/client/assets/{Globe04-CMhAsYW7.js → Globe04-LlNkyupL.js} +1 -1
  17. package/dist/client/assets/{Image01-DQr5z6Eu.js → Image01-Ch6fYTX9.js} +1 -1
  18. package/dist/client/assets/{Key01-DkQjjPwv.js → Key01-CzAYk09-.js} +1 -1
  19. package/dist/client/assets/{Link01-CBvOTEVq.js → Link01-yIpHC1tA.js} +1 -1
  20. package/dist/client/assets/{LinkBroken01-CWg3Xs9J.js → LinkBroken01-4mWpjTP6.js} +1 -1
  21. package/dist/client/assets/{Monitor01-CawnpOBp.js → Monitor01-Ou5m5HXM.js} +1 -1
  22. package/dist/client/assets/{Play-CHfHT47l.js → Play-BeSRLN2O.js} +1 -1
  23. package/dist/client/assets/{Plus-Ch1sG4T5.js → Plus-CBwPsBC8.js} +1 -1
  24. package/dist/client/assets/{SearchMd-D7CH4cEW.js → SearchMd-DFKnlLzg.js} +1 -1
  25. package/dist/client/assets/{Sector-BdZY69jR.js → Sector-BE7eLjHh.js} +1 -1
  26. package/dist/client/assets/{ShoppingBag01-CFzAExOe.js → ShoppingBag01-DMrkFjeJ.js} +1 -1
  27. package/dist/client/assets/{Sun-AXWLcql2.js → Sun-Bx7SBlM-.js} +1 -1
  28. package/dist/client/assets/{SwitchHorizontal01-ZzQSxDu-.js → SwitchHorizontal01-JU6fMv1N.js} +1 -1
  29. package/dist/client/assets/{Tool01-D47UxjHr.js → Tool01-Dx9izhNQ.js} +1 -1
  30. package/dist/client/assets/{Trash01-DjbVg-Gr.js → Trash01-BTFm5tCg.js} +1 -1
  31. package/dist/client/assets/{Upload01-CongSYMk.js → Upload01-Bh-Emxn2.js} +1 -1
  32. package/dist/client/assets/{User01-C0eJYwru.js → User01-CQJ9yvoz.js} +1 -1
  33. package/dist/client/assets/{UserSquare-D5hRO90M.js → UserSquare-BAt_wzJ-.js} +1 -1
  34. package/dist/client/assets/{Users01-C3nUQ4J2.js → Users01-D5wZqDor.js} +1 -1
  35. package/dist/client/assets/{XAxis-CHmQK-au.js → XAxis-BZWDI5GS.js} +1 -1
  36. package/dist/client/assets/{XClose-CEtKIB7q.js → XClose-DbfrVehX.js} +1 -1
  37. package/dist/client/assets/{ZoomOut-CrQxrOGW.js → ZoomOut-CnrqTNds.js} +1 -1
  38. package/dist/client/assets/{access-gate-rafBainF.js → access-gate-Du7U7Rzo.js} +1 -1
  39. package/dist/client/assets/{add-connection-dialog-CvB_KcBa.js → add-connection-dialog-oB2v8vkB.js} +1 -1
  40. package/dist/client/assets/{agent-analytics-BVxR4_Uj.js → agent-analytics-DoqorIVJ.js} +1 -1
  41. package/dist/client/assets/agent-app-CCz5q2dj.js +1 -0
  42. package/dist/client/assets/{agent-assets-B1OqFMpj.js → agent-assets-udkmrdmj.js} +1 -1
  43. package/dist/client/assets/{agent-automation-ClFLOq4I.js → agent-automation-YdAcul3v.js} +3 -3
  44. package/dist/client/assets/{agent-automations-BFYTbfc-.js → agent-automations-B5oxB7jR.js} +1 -1
  45. package/dist/client/assets/{agent-connect-sources-BRvuYQWx.js → agent-connect-sources-BjkrraY5.js} +1 -1
  46. package/dist/client/assets/agent-deck-CsNgUsES.js +1 -0
  47. package/dist/client/assets/{agent-e2e-B9CH2Mo6.js → agent-e2e-B5oARVfC.js} +1 -1
  48. package/dist/client/assets/{agent-experiments-DlztOCrU.js → agent-experiments-DfpT1sD2.js} +1 -1
  49. package/dist/client/assets/{agent-file-CsIS9_4j.js → agent-file-BDStqhoT.js} +1 -1
  50. package/dist/client/assets/{agent-hosting-Bknl93TE.js → agent-hosting-prc-duXm.js} +1 -1
  51. package/dist/client/assets/{agent-icon-D25DK5wS.js → agent-icon-BZX5a0rN.js} +1 -1
  52. package/dist/client/assets/agent-library-BqNk_ysL.js +1 -0
  53. package/dist/client/assets/agent-library-file-BMyjR4a-.js +1 -0
  54. package/dist/client/assets/{agent-monitor-DyT5ig13.js → agent-monitor-CtMBSYOs.js} +1 -1
  55. package/dist/client/assets/{agent-overview-ButxU5iy.js → agent-overview-B23wW22S.js} +1 -1
  56. package/dist/client/assets/agent-settings-QtGp3bU0.js +1 -0
  57. package/dist/client/assets/{agent-site-editor-Dl99KrED.js → agent-site-editor-Dtpy7m_F.js} +1 -1
  58. package/dist/client/assets/agent-site-editor-code-C29bJKGS.js +2 -0
  59. package/dist/client/assets/{agent-site-editor-content-Df_6cDHk.js → agent-site-editor-content-PQwLsy2Z.js} +3 -3
  60. package/dist/client/assets/{agent-site-editor-preview-CltuQS-a.js → agent-site-editor-preview-DfEJR2-i.js} +3 -3
  61. package/dist/client/assets/agent-view-D-eSYJoz.js +1 -0
  62. package/dist/client/assets/{agent-view-guard-CVsz0TkU.js → agent-view-guard-BhsT9KMv.js} +1 -1
  63. package/dist/client/assets/{agents-list-CeTR5ulR.js → agents-list-BEnHZ3f8.js} +1 -1
  64. package/dist/client/assets/{ai-providers-BZ2_pdED.js → ai-providers-DaLz3LDZ.js} +1 -1
  65. package/dist/client/assets/{alert-BK3mvJgc.js → alert-DZ-Sik7-.js} +1 -1
  66. package/dist/client/assets/{alert-dialog-CmV9dy9T.js → alert-dialog-DFCHlrdG.js} +1 -1
  67. package/dist/client/assets/{analytics-sections-BrCaGlQS.js → analytics-sections-BpmplX7W.js} +1 -1
  68. package/dist/client/assets/api-keys-Cs5VWUE9.js +1 -0
  69. package/dist/client/assets/{api-keys-BjhtfTv5.js → api-keys-D6bA8zbA.js} +1 -1
  70. package/dist/client/assets/app-editor-CpUCMZta.js +1 -0
  71. package/dist/client/assets/{asset-utils-CM76tGw5.js → asset-utils-DSAV30pE.js} +1 -1
  72. package/dist/client/assets/{auth-mnJ9PW01.js → auth-CKRkGXX0.js} +1 -1
  73. package/dist/client/assets/{auth-catchall-BHpuDx65.js → auth-catchall-A973ZSm_.js} +1 -1
  74. package/dist/client/assets/{auth-entry-DTqozZzK.js → auth-entry-B6EUZx-E.js} +1 -1
  75. package/dist/client/assets/{auth-split-layout-nnK4QA-M.js → auth-split-layout-ppDoBfGB.js} +1 -1
  76. package/dist/client/assets/{authenticate-and-persist-oauth-Bpiv3RO5.js → authenticate-and-persist-oauth-hMQu3mut.js} +1 -1
  77. package/dist/client/assets/{automation-list-row-YpYqBxpc.js → automation-list-row-CIgywn5_.js} +1 -1
  78. package/dist/client/assets/{automation-runs-Cjsz3sNl.js → automation-runs-C6KynleS.js} +1 -1
  79. package/dist/client/assets/{automations-K16w9IfU.js → automations-BTR4ZUpt.js} +1 -1
  80. package/dist/client/assets/{autosend-BaSnPt7x.js → autosend-CfJ-txst.js} +1 -1
  81. package/dist/client/assets/{avatar-Co-052cR.js → avatar-D0TV3cL_.js} +1 -1
  82. package/dist/client/assets/{badge-CSXpEa55.js → badge-Djw87oeQ.js} +1 -1
  83. package/dist/client/assets/{block-document-Dwi86oHf.js → block-document-e1vZMHc5.js} +1 -1
  84. package/dist/client/assets/{blocks-preview-workspace-context-BOZf-loo.js → blocks-preview-workspace-context-D3H9wyCz.js} +1 -1
  85. package/dist/client/assets/{blog-schema-D-OKi5uD.js → blog-schema-Dk8m1thm.js} +1 -1
  86. package/dist/client/assets/{board-analytics-Dtj7gftE.js → board-analytics-DcHI9tGL.js} +1 -1
  87. package/dist/client/assets/{buckets-Tw-Ph4JX.js → buckets-DtxAkodo.js} +1 -1
  88. package/dist/client/assets/{build-improve-prompt-doc-DSsqKodq.js → build-improve-prompt-doc-C53Lrdih.js} +1 -1
  89. package/dist/client/assets/{calendar-DCoBKIit.js → calendar-Cm_oXX6s.js} +1 -1
  90. package/dist/client/assets/{capability-load-error-D4Y-1y8Z.js → capability-load-error-CTNI2hrf.js} +1 -1
  91. package/dist/client/assets/{category-editor-15WhKdzJ.js → category-editor-Bua_fHQ9.js} +1 -1
  92. package/dist/client/assets/{chart-D8S5B3Fk.js → chart-u_PCedAi.js} +1 -1
  93. package/dist/client/assets/{chat-context-BvnYD9Wb.js → chat-context-CBev6aq3.js} +1 -1
  94. package/dist/client/assets/{chat-draft-BUwzbZEb.js → chat-draft-C2IQcwKW.js} +1 -1
  95. package/dist/client/assets/{checkbox-CVokasRh.js → checkbox-C6RcKsRC.js} +1 -1
  96. package/dist/client/assets/{choose-editor-B_kWfVxF.js → choose-editor-4RqxQ2Kh.js} +1 -1
  97. package/dist/client/assets/{claim-phase-copy-D7K6r9pB.js → claim-phase-copy-azjvrOLz.js} +1 -1
  98. package/dist/client/assets/{cli-auth-success-BjJ_-CPN.js → cli-auth-success-CSxmM9Mc.js} +1 -1
  99. package/dist/client/assets/{client-icons-R8IUwnS4.js → client-icons-DafWzw5-.js} +1 -1
  100. package/dist/client/assets/{collapsible-BpQWnMqu.js → collapsible-Bwspbfl2.js} +1 -1
  101. package/dist/client/assets/{collection-detail-BTjqy1Rt.js → collection-detail-CZGVnn_N.js} +1 -1
  102. package/dist/client/assets/{collection-display-button-CwZjncaa.js → collection-display-button-D2vvIKbf.js} +1 -1
  103. package/dist/client/assets/{collection-search-CFCYIYsp.js → collection-search-DaDlBD_E.js} +1 -1
  104. package/dist/client/assets/{collection-table-wrapper-9DXb8a6f.js → collection-table-wrapper-jG2oYxE8.js} +1 -1
  105. package/dist/client/assets/{collection-tabs-D1MI1rbf.js → collection-tabs-CqZ0YLaH.js} +1 -1
  106. package/dist/client/assets/{column-rules-CKqZ2w7B.js → column-rules-P9xAwA0r.js} +1 -1
  107. package/dist/client/assets/{combobox-8uTSWM7x.js → combobox-BsiHAQYf.js} +1 -1
  108. package/dist/client/assets/{command-zNxZAzCt.js → command-BWDE-FNh.js} +1 -1
  109. package/dist/client/assets/{companion-mcps-section-Dn6CWwBU.js → companion-mcps-section-C3mRXa0s.js} +1 -1
  110. package/dist/client/assets/{config-zAMyoP2u.js → config-C--9g5dZ.js} +1 -1
  111. package/dist/client/assets/{connect-B0eXPnXO.js → connect-DJluRO9r.js} +1 -1
  112. package/dist/client/assets/{connect-layout-DiQFJtzW.js → connect-layout-CTtD_uUg.js} +1 -1
  113. package/dist/client/assets/{connection-1bY4JOT7.js → connection-BKH2vnra.js} +1 -1
  114. package/dist/client/assets/{connection-card-BPhgcvjc.js → connection-card-BqF_7Vxz.js} +1 -1
  115. package/dist/client/assets/{connection-detail-Bb0U2uNL.js → connection-detail-gLie6k82.js} +1 -1
  116. package/dist/client/assets/{connection-form-helpers-BHdjytOT.js → connection-form-helpers-C6ev_pGu.js} +1 -1
  117. package/dist/client/assets/{connections-C9nogFwq.js → connections-C4cDvjtx.js} +1 -1
  118. package/dist/client/assets/{context-l2XAj4L-.js → context-C-Rr1spp.js} +1 -1
  119. package/dist/client/assets/{context-menu-BJ4Hqd4H.js → context-menu-CYtUPpu0.js} +1 -1
  120. package/dist/client/assets/{core.esm-l5VXFwhd.js → core.esm-BqWXbE7p.js} +1 -1
  121. package/dist/client/assets/{create-organization-dialog-BDaja_nV.js → create-organization-dialog-Ci8n8-Qw.js} +1 -1
  122. package/dist/client/assets/{daily-pulse-DOsYKARy.js → daily-pulse-0HhsWI2C.js} +1 -1
  123. package/dist/client/assets/{device-hint-PXv02Ucu.js → device-hint-C8SeBwQ9.js} +1 -1
  124. package/dist/client/assets/{discover-BiY2-MAZ.js → discover-CRupEDof.js} +1 -1
  125. package/dist/client/assets/{domain-settings-B2qAb04P.js → domain-settings-9i4lE6z4.js} +1 -1
  126. package/dist/client/assets/{drawer-DL5bFgNR.js → drawer-DmaKd3D8.js} +1 -1
  127. package/dist/client/assets/{editor-EMcWHln-.js → editor-Clsq2fLP.js} +1 -1
  128. package/dist/client/assets/{empty-state-Bk1ubmvv.js → empty-state-CYf1fvjk.js} +1 -1
  129. package/dist/client/assets/{empty-state-Dl0uE1qg.js → empty-state-ervoES7F.js} +1 -1
  130. package/dist/client/assets/{extract-connection-data-DIxd-Pe9.js → extract-connection-data-C5DfHTe9.js} +1 -1
  131. package/dist/client/assets/{feature-gate-D_5Zcern.js → feature-gate-DyJpZ6nd.js} +1 -1
  132. package/dist/client/assets/{feature-paywall-uSo5NgIk.js → feature-paywall-CeiXnB_u.js} +1 -1
  133. package/dist/client/assets/{file-explorer-BLs0vfRV.js → file-explorer-_3Yay2x8.js} +1 -1
  134. package/dist/client/assets/{file-preview-C_zyLNU0.js → file-preview-CHpcXovu.js} +1 -1
  135. package/dist/client/assets/{file-share-button-DVm15sOV.js → file-share-button-CXVf0V10.js} +1 -1
  136. package/dist/client/assets/{file-type-icon-BFUya14p.js → file-type-icon-poPLKUlK.js} +1 -1
  137. package/dist/client/assets/flat-project-BXwoPNzs.js +1 -0
  138. package/dist/client/assets/{folder-icon-aFp6Qaf_.js → folder-icon-B1u0MiCk.js} +1 -1
  139. package/dist/client/assets/{form-D_HjHR78.js → form-Dg_6Hf9j.js} +1 -1
  140. package/dist/client/assets/{general-DWYlQqAU.js → general-B4ZNIMkv.js} +1 -1
  141. package/dist/client/assets/{home-C39XJuuC.js → home-ELjwftjN.js} +1 -1
  142. package/dist/client/assets/{icon-button-CWnlJ_oZ.js → icon-button-CH2OxNKZ.js} +1 -1
  143. package/dist/client/assets/{index-DXJRwxmV.js → index-BK3UZ3iw.js} +1 -1
  144. package/dist/client/assets/{index-B5s2AYv_.js → index-BTY2QFMJ.js} +1 -1
  145. package/dist/client/assets/{index-Dbiuixsg.js → index-CFz3Hn6w.js} +1 -1
  146. package/dist/client/assets/{index-Cxl4iIy5.js → index-CN-5kkc7.js} +1 -1
  147. package/dist/client/assets/{index-8oPwgK8U.js → index-CPYLUZ6w.js} +1 -1
  148. package/dist/client/assets/{index-BGn4_CUT.js → index-CQZm7V7F.js} +1 -1
  149. package/dist/client/assets/{index-Ah1SD4qu.js → index-CuZxCor5.js} +1 -1
  150. package/dist/client/assets/{index-BBBK2Mw-.js → index-DEwWVQT2.js} +1 -1
  151. package/dist/client/assets/{index-C8H_whn6.js → index-DoXTlFZn.js} +3 -3
  152. package/dist/client/assets/{index-DqBs1i86.js → index-GzUyiAtq.js} +1 -1
  153. package/dist/client/assets/{index-TStkGKDV.js → index-XXahSrQ2.js} +1 -1
  154. package/dist/client/assets/{index-redirect-qy-HGqdF.js → index-redirect-BJu2viW0.js} +1 -1
  155. package/dist/client/assets/{index-zFizTRgJ.js → index-xs_k6Ktz.js} +4 -4
  156. package/dist/client/assets/{index-DwYK88xA.js → index-zt_Z_Heg.js} +1 -1
  157. package/dist/client/assets/{infiniteQueryObserver-DR5G3_XI.js → infiniteQueryObserver-7uXBxwIZ.js} +1 -1
  158. package/dist/client/assets/{infra-billing-DZ12o-of.js → infra-billing-DaXwvysV.js} +1 -1
  159. package/dist/client/assets/{input-LrUKUue2.js → input-BndsYgrN.js} +1 -1
  160. package/dist/client/assets/{input-DrtuDHta.js → input-DsuaqMOh.js} +3 -3
  161. package/dist/client/assets/{integration-icon-Bdyedi1P.js → integration-icon-Cx3J1TrD.js} +1 -1
  162. package/dist/client/assets/{jira-icon-C5IDdjgJ.js → jira-icon-CIrGorhP.js} +1 -1
  163. package/dist/client/assets/{label-CGeSw_vU.js → label-BHQ7fAmu.js} +1 -1
  164. package/dist/client/assets/{layout-D3tajt2K.js → layout-DJrVrTHk.js} +1 -1
  165. package/dist/client/assets/{legacy-agents-deep-CfrBn8K6.js → legacy-agents-deep-rCcS2UBo.js} +1 -1
  166. package/dist/client/assets/{legacy-main-redirect-BKFq0f1c.js → legacy-main-redirect-DMe57jXo.js} +1 -1
  167. package/dist/client/assets/library-CbX8eoDf.js +1 -0
  168. package/dist/client/assets/{library-tab-CedtT6BF.js → library-tab-DpE23FB4.js} +1 -1
  169. package/dist/client/assets/{login-Dxq0oJju.js → login-BRxzp--X.js} +1 -1
  170. package/dist/client/assets/{markdown-Wp7WM_6R.js → markdown-BQE0Sc_A.js} +1 -1
  171. package/dist/client/assets/{mcp-app-renderer-D4yJqapi.js → mcp-app-renderer-Bl0xOGsc.js} +1 -1
  172. package/dist/client/assets/{mcp-oauth-BvraKhnX.js → mcp-oauth-DOxWKmTF.js} +1 -1
  173. package/dist/client/assets/{mcp-oauth-BWnNfhKY.js → mcp-oauth-xPr142sb.js} +1 -1
  174. package/dist/client/assets/{members-NoAgJggW.js → members-BJNHqWz2.js} +1 -1
  175. package/dist/client/assets/{memory-DPCydpI9.js → memory-CGilhYH2.js} +1 -1
  176. package/dist/client/assets/{mini-report-page-CKiZSO3Y.js → mini-report-page-BbCM6VM6.js} +1 -1
  177. package/dist/client/assets/{mock-board-ldzlXXTT.js → mock-board-CSphyYm-.js} +1 -1
  178. package/dist/client/assets/{monaco-editor-Cw6bHZ9D.js → monaco-editor-C2uEeF5_.js} +1 -1
  179. package/dist/client/assets/{monitoring-stats-row-DUI3089C.js → monitoring-stats-row-4mryZRhX.js} +1 -1
  180. package/dist/client/assets/{multi-select-C64565zf.js → multi-select-CcwfeB_X.js} +1 -1
  181. package/dist/client/assets/{mustache-jBGE1x8P.js → mustache-Bpchj0JB.js} +1 -1
  182. package/dist/client/assets/{new-project-dialog-B0XejRtR.js → new-project-dialog-nyD817-y.js} +1 -1
  183. package/dist/client/assets/{oauth-callback-ai-provider-Az104D_B.js → oauth-callback-ai-provider-BpVSOAoL.js} +1 -1
  184. package/dist/client/assets/{oauth-callback-K1LG85n6.js → oauth-callback-gTMv-zQg.js} +1 -1
  185. package/dist/client/assets/{onboarding-BStXwTJO.js → onboarding-CMWpJjZw.js} +1 -1
  186. package/dist/client/assets/{openai-conversation-63MRsej5.js → openai-conversation-CeefM3R3.js} +1 -1
  187. package/dist/client/assets/{optimistic-project-sidebar-views-BPQEjG_5.js → optimistic-project-sidebar-views-v1rJRps1.js} +1 -1
  188. package/dist/client/assets/{organization-choice-CWJmmXl2.js → organization-choice-VbmGVdvE.js} +1 -1
  189. package/dist/client/assets/{orgs-RqN1nvSn.js → orgs-Cri0Ia7k.js} +1 -1
  190. package/dist/client/assets/{page-seo-form-Dqs31MJ3.js → page-seo-form-DY79__rL.js} +1 -1
  191. package/dist/client/assets/{pair-BArWn6jb.js → pair-DwD5SdrN.js} +1 -1
  192. package/dist/client/assets/{plan-ladder-CFynazEn.js → plan-ladder-Cec8Hw6v.js} +1 -1
  193. package/dist/client/assets/{popover-DTEHxwlD.js → popover-CUbGh9FO.js} +1 -1
  194. package/dist/client/assets/{post-calendar-BoU1ZOL5.js → post-calendar-BQ6RASS0.js} +1 -1
  195. package/dist/client/assets/{post-editor-DijifWaY.js → post-editor-BlxejBOv.js} +1 -1
  196. package/dist/client/assets/{preview-content-4n74nMkm.js → preview-content-BNo5Q8c2.js} +1 -1
  197. package/dist/client/assets/{preview-dialog-BfJBjitf.js → preview-dialog-CUTnny3X.js} +1 -1
  198. package/dist/client/assets/{preview-panel-Ckv4GBo6.js → preview-panel-CbuRn5QK.js} +1 -1
  199. package/dist/client/assets/{product-picker-dialog-DegN_8hj.js → product-picker-dialog-DWydhMcM.js} +1 -1
  200. package/dist/client/assets/{profile-BNI-FeGN.js → profile-Wgp3fAd7.js} +1 -1
  201. package/dist/client/assets/{project-app-view-BJKmTYP6.js → project-app-view-BY4Z9zY6.js} +1 -1
  202. package/dist/client/assets/{project-feed-CthJ5cL5.js → project-feed-LzJO1RwA.js} +1 -1
  203. package/dist/client/assets/{project-icon-CLft8LNy.js → project-icon-D9ZMEkrO.js} +1 -1
  204. package/dist/client/assets/project-reports-DHKecVyf.js +1 -0
  205. package/dist/client/assets/project-tasks-D-gNfCJd.js +1 -0
  206. package/dist/client/assets/{projects-CmeO8oT0.js → projects-D9E0KMO5.js} +1 -1
  207. package/dist/client/assets/{projects-empty-state-Cu-dnKwc.js → projects-empty-state-CVyY4QD-.js} +1 -1
  208. package/dist/client/assets/{prompts-DpC1en1o.js → prompts-BGmz7B8b.js} +1 -1
  209. package/dist/client/assets/record-editor-DeAErR2x.js +1 -0
  210. package/dist/client/assets/redirect-editor-B-TForOi.js +1 -0
  211. package/dist/client/assets/reports-5CTNIsDn.js +1 -0
  212. package/dist/client/assets/{reports-ikhGH7I0.js → reports-CwAchcdk.js} +1 -1
  213. package/dist/client/assets/{reports-onboarding-cozwetlX.js → reports-onboarding-4tevrhgv.js} +1 -1
  214. package/dist/client/assets/{reports-tab-B2H0nIWm.js → reports-tab-BWxj7M8g.js} +2 -2
  215. package/dist/client/assets/{repositories-6dyicYgL.js → repositories-BPCvyVf9.js} +1 -1
  216. package/dist/client/assets/{repository-binding-D4HjFqUu.js → repository-binding-DmdeiZmO.js} +1 -1
  217. package/dist/client/assets/{repository-import-picker-D32RWglo.js → repository-import-picker-CQI4CdeM.js} +1 -1
  218. package/dist/client/assets/{repository-picker-BS8S1A4D.js → repository-picker-BsT7lJxX.js} +1 -1
  219. package/dist/client/assets/{require-capability-QNDooqDp.js → require-capability-DDfk0Kb5.js} +1 -1
  220. package/dist/client/assets/{required-auth-layout-DV0YP59y.js → required-auth-layout-BBSjYqsc.js} +1 -1
  221. package/dist/client/assets/{reset-password-Bq3L1AQn.js → reset-password-BWTQRa6I.js} +1 -1
  222. package/dist/client/assets/{resizable-aYdS6ucz.js → resizable-DUdjqiGj.js} +1 -1
  223. package/dist/client/assets/{resolve-tab-icon-wP6kmFpV.js → resolve-tab-icon-JA5rc6Tv.js} +1 -1
  224. package/dist/client/assets/{review-settings-VHbdYUwC.js → review-settings-z03jMXZX.js} +1 -1
  225. package/dist/client/assets/{rich-text-link-control-ZhLX7YkH.js → rich-text-link-control-Cx8fBuQI.js} +1 -1
  226. package/dist/client/assets/{roles-DydRZQvS.js → roles-DucC2Xmn.js} +1 -1
  227. package/dist/client/assets/{route-Dp89Dh0m.js → route-DlzJTX4w.js} +1 -1
  228. package/dist/client/assets/route-DtPgqOWq.js +1 -0
  229. package/dist/client/assets/{route-C0Fgh6Gu.js → route-T44vpxHb.js} +1 -1
  230. package/dist/client/assets/{runnable-block-editor-C8XWqppj.js → runnable-block-editor-DEHfe8Jn.js} +1 -1
  231. package/dist/client/assets/{sandbox-lifecycle-context-DXFQTTJR.js → sandbox-lifecycle-context-DwGA5vHg.js} +1 -1
  232. package/dist/client/assets/{schema-6H-MEggI.js → schema-BgIvb0Gx.js} +1 -1
  233. package/dist/client/assets/{scroll-area-DsRpgTQ9.js → scroll-area-D4DX2ZIG.js} +1 -1
  234. package/dist/client/assets/{search-input-BHgo2lGV.js → search-input-JdMKjHSx.js} +1 -1
  235. package/dist/client/assets/{search-toggle-Dd-dflFz.js → search-toggle-pL0dggP1.js} +1 -1
  236. package/dist/client/assets/{secret-picker-A2PMU4gO.js → secret-picker-BQp7jdXk.js} +1 -1
  237. package/dist/client/assets/{secrets-D9v5ukDd.js → secrets-oDHSjIYO.js} +1 -1
  238. package/dist/client/assets/{sections-editor-DWV3GkFv.js → sections-editor-atX3TwPF.js} +1 -1
  239. package/dist/client/assets/{select-PUQ7cwv_.js → select-DnxgNE4v.js} +1 -1
  240. package/dist/client/assets/{select-model-Benrx5ds.js → select-model-DXVspEVT.js} +1 -1
  241. package/dist/client/assets/{seo-editor-DR6dMEeh.js → seo-editor-DNDnxeNs.js} +1 -1
  242. package/dist/client/assets/{separator-XSPXTmbD.js → separator-2C8rNgYN.js} +1 -1
  243. package/dist/client/assets/{settings-tab-C9b_gZUS.js → settings-tab-Mf3STlzh.js} +1 -1
  244. package/dist/client/assets/{sheet-CJnM8ySE.js → sheet-COKPXrMt.js} +1 -1
  245. package/dist/client/assets/{shell-layout-Dai0p-76.js → shell-layout-BJ2bouq5.js} +1 -1
  246. package/dist/client/assets/{skills-CpJ2yl_V.js → skills-DO3tbITh.js} +1 -1
  247. package/dist/client/assets/{slider-DOtGgAh5.js → slider-BrBnaDSJ.js} +1 -1
  248. package/dist/client/assets/{sortable.esm-igu-P_53.js → sortable.esm-ldWM5mlg.js} +1 -1
  249. package/dist/client/assets/{sso-CpAigUKO.js → sso-tkyC_08g.js} +1 -1
  250. package/dist/client/assets/{suggestion-kKk_djZn.js → suggestion-BZNfKCnl.js} +1 -1
  251. package/dist/client/assets/{switch-C4raYBaD.js → switch-DDSkOeLA.js} +1 -1
  252. package/dist/client/assets/{symbol-DSyQEkVd.js → symbol-DzwMqsxT.js} +1 -1
  253. package/dist/client/assets/{synced-repos-DhkSYvjz.js → synced-repos-BkSO5Q1Y.js} +1 -1
  254. package/dist/client/assets/{tab-icon-glyph-DbT7H6I0.js → tab-icon-glyph-BuzlFWHk.js} +1 -1
  255. package/dist/client/assets/{table-ZhEY60SW.js → table-CMK8QC8D.js} +1 -1
  256. package/dist/client/assets/{tabs-sH7FADTj.js → tabs-B9VR2rbK.js} +1 -1
  257. package/dist/client/assets/{task-board-Cz8RAkVC.js → task-board--9goOhkE.js} +1 -1
  258. package/dist/client/assets/{task-route-dAZzlYHx.js → task-route-0VBQiuCM.js} +1 -1
  259. package/dist/client/assets/{task-status-jzoHxLXE.js → task-status-CNJzd27h.js} +1 -1
  260. package/dist/client/assets/taskboard-analytics-CM-a1hkv.js +1 -0
  261. package/dist/client/assets/tasks-F-hM9qNc.js +1 -0
  262. package/dist/client/assets/{tasks-spnz6wGT.js → tasks-jC2y5QyA.js} +1 -1
  263. package/dist/client/assets/{textarea-Dh1uG6Oe.js → textarea-V-Ewr6Em.js} +1 -1
  264. package/dist/client/assets/{thread-analytics-D7o3M7SE.js → thread-analytics-LPGZ7GJl.js} +1 -1
  265. package/dist/client/assets/{thread-button-CVcG35Zp.js → thread-button-CgW1daN2.js} +1 -1
  266. package/dist/client/assets/{thread-intent-DHio6v3T.js → thread-intent-BzcsRkEY.js} +1 -1
  267. package/dist/client/assets/{thread-route-JC5U7UAP.js → thread-route-C6etrVa0.js} +1 -1
  268. package/dist/client/assets/{thread-route-P2oNmklm.js → thread-route-Dcfq6vF9.js} +1 -1
  269. package/dist/client/assets/{thread-sheet-body-Cb8plLTN.js → thread-sheet-body-BAcB1e7q.js} +1 -1
  270. package/dist/client/assets/{time-range-picker-BXMVgeAS.js → time-range-picker-DF3Ygb5C.js} +1 -1
  271. package/dist/client/assets/{toggle-group-BbN_e8eb.js → toggle-group-a4ytF4Oj.js} +1 -1
  272. package/dist/client/assets/{tool-namespace-CTfr8zMP.js → tool-namespace-DgKSlqBK.js} +1 -1
  273. package/dist/client/assets/{toolbar-icon-button-NKHQPydk.js → toolbar-icon-button-DYnkRqZ7.js} +1 -1
  274. package/dist/client/assets/{tooltip-Ckfi6awk.js → tooltip-BwqXknMj.js} +1 -1
  275. package/dist/client/assets/{tooltipContext-DNPFPGFA.js → tooltipContext-BpwAgADs.js} +1 -1
  276. package/dist/client/assets/{track-CteSCTlH.js → track-8eJZpOmx.js} +1 -1
  277. package/dist/client/assets/{types-BwEFq7Yg.js → types-uLyd8Klr.js} +1 -1
  278. package/dist/client/assets/{url-slug-xcarTcti.js → url-slug-DQb0tXSj.js} +1 -1
  279. package/dist/client/assets/{usage-stats-Dpg2tIh9.js → usage-stats-5hdJRwfv.js} +1 -1
  280. package/dist/client/assets/{use-ai-providers-BdUdNx5z.js → use-ai-providers-BW9u4951.js} +1 -1
  281. package/dist/client/assets/{use-automations-J4kPNxTM.js → use-automations-DhHqb9o9.js} +1 -1
  282. package/dist/client/assets/{use-autosave-vvOEWidH.js → use-autosave-DBs1Dhkn.js} +1 -1
  283. package/dist/client/assets/{use-chat-layout-state-ooCEsZNA.js → use-chat-layout-state-DMre3rzo.js} +1 -1
  284. package/dist/client/assets/{use-chat-navigation-Cs9RLkky.js → use-chat-navigation-OgErkHag.js} +1 -1
  285. package/dist/client/assets/{use-clock-tick-CXFIi4J4.js → use-clock-tick-BzZc0p17.js} +1 -1
  286. package/dist/client/assets/{use-connect-companion-DyLCP6sw.js → use-connect-companion-DFtJCq_R.js} +1 -1
  287. package/dist/client/assets/{use-connection-BWEGKt3t.js → use-connection-DmWKxQIp.js} +1 -1
  288. package/dist/client/assets/{use-copy-B3Z2bU9n.js → use-copy-yOqXjxUA.js} +1 -1
  289. package/dist/client/assets/{use-create-virtual-mcp-CeEgD0KJ.js → use-create-virtual-mcp-DyD0K90B.js} +1 -1
  290. package/dist/client/assets/{use-date-fns-locale-BwHZTp1d.js → use-date-fns-locale-CD7FGq8S.js} +1 -1
  291. package/dist/client/assets/{use-debounced-autosave-B-RYAOgV.js → use-debounced-autosave-DHlAwbI3.js} +1 -1
  292. package/dist/client/assets/{use-debounced-value-BPpgN-4m.js → use-debounced-value-DuWNcnXn.js} +1 -1
  293. package/dist/client/assets/{use-deco-credits-DO7YD9IY.js → use-deco-credits-Bea6ChUy.js} +1 -1
  294. package/dist/client/assets/{use-decopilot-events-DRwe4roK.js → use-decopilot-events-ClCuNwhP.js} +1 -1
  295. package/dist/client/assets/{use-delete-connection-CP3eQN94.js → use-delete-connection-BHdzlaZN.js} +1 -1
  296. package/dist/client/assets/{use-deployment-admin-xj8zFarX.js → use-deployment-admin-9qJi8NmW.js} +1 -1
  297. package/dist/client/assets/{use-ensure-project-folder-_cAiUEgx.js → use-ensure-project-folder-Pz6kG32X.js} +1 -1
  298. package/dist/client/assets/{use-fast-preview-draft-url-B4iSUSL0.js → use-fast-preview-draft-url-BcFHzHFy.js} +1 -1
  299. package/dist/client/assets/{use-file-configs-CayvqTYD.js → use-file-configs-Cnc56owU.js} +1 -1
  300. package/dist/client/assets/{use-infinite-scroll-Bs5bj_x4.js → use-infinite-scroll-CqsPoGk1.js} +1 -1
  301. package/dist/client/assets/{use-join-requests-D0a7nWGC.js → use-join-requests-B8p2Zeas.js} +1 -1
  302. package/dist/client/assets/{use-main-panel-tabs-BV3U-pk7.js → use-main-panel-tabs-C0Ktj2i7.js} +1 -1
  303. package/dist/client/assets/{use-mcp-auth-status-CGqJtK6Y.js → use-mcp-auth-status-BY6UXdeD.js} +1 -1
  304. package/dist/client/assets/{use-mcp-client-BpCQxGRA.js → use-mcp-client-DTwq_7MH.js} +1 -1
  305. package/dist/client/assets/{use-mcp-prompts-B6BIbud4.js → use-mcp-prompts-CE81wOkK.js} +1 -1
  306. package/dist/client/assets/{use-mcp-tools-BBrUvrr2.js → use-mcp-tools-BDslTiVH.js} +1 -1
  307. package/dist/client/assets/{use-members-BXZtT1Ge.js → use-members-CmWLwd2e.js} +1 -1
  308. package/dist/client/assets/{use-mobile-cnelp-tf.js → use-mobile-BD5GPe5Y.js} +1 -1
  309. package/dist/client/assets/{use-navigate-to-agent-Yt28jbt_.js → use-navigate-to-agent-CiQs8YZp.js} +1 -1
  310. package/dist/client/assets/use-new-blocks-editor-Bi1eoiEH.js +1 -0
  311. package/dist/client/assets/{use-open-billing-url-Ch7hXR43.js → use-open-billing-url-DVE0afgz.js} +1 -1
  312. package/dist/client/assets/{use-org-auth-client-DQ_TpKIV.js → use-org-auth-client-D907jz51.js} +1 -1
  313. package/dist/client/assets/{use-org-fs-Dd1pklx8.js → use-org-fs-DC-NuNXo.js} +1 -1
  314. package/dist/client/assets/{use-org-repo-syncs-a3Bo4Nwx.js → use-org-repo-syncs-CFHiMPUk.js} +1 -1
  315. package/dist/client/assets/{use-org-sso-AbZWzz8J.js → use-org-sso-CJ9T2BXL.js} +1 -1
  316. package/dist/client/assets/{use-organization-roles-BbdurYTP.js → use-organization-roles-CRyk_oUV.js} +1 -1
  317. package/dist/client/assets/{use-organization-settings-C9ru61wI.js → use-organization-settings-QfwaDuvt.js} +1 -1
  318. package/dist/client/assets/{use-panel-navigate-DlGjk1uT.js → use-panel-navigate-BQzwPyBR.js} +1 -1
  319. package/dist/client/assets/{use-project-scope-mUU3XQll.js → use-project-scope-0K714duc.js} +1 -1
  320. package/dist/client/assets/{use-releases-Rs4UUF42.js → use-releases-DZTFt5jN.js} +1 -1
  321. package/dist/client/assets/{use-reports-diagnostic-CmuuQULK.js → use-reports-diagnostic-DpILmwBe.js} +1 -1
  322. package/dist/client/assets/{use-sandbox-events-B_Tbe66F.js → use-sandbox-events-v_kGJN2U.js} +1 -1
  323. package/dist/client/assets/{use-secrets-zTdjn1K_.js → use-secrets-C-9G8ydk.js} +1 -1
  324. package/dist/client/assets/{use-section-preview-base-CxaSIwgr.js → use-section-preview-base-CmZa6K6g.js} +1 -1
  325. package/dist/client/assets/{use-tags-DcdzwPHe.js → use-tags-BJbdefCg.js} +1 -1
  326. package/dist/client/assets/{use-task-board-analytics-Cq5LBBkL.js → use-task-board-analytics-CILYZiLT.js} +1 -1
  327. package/dist/client/assets/{use-task-board-events-DV0GzDSl.js → use-task-board-events-CjirQYQ9.js} +1 -1
  328. package/dist/client/assets/{use-task-board-item-prs-DWyfXvRg.js → use-task-board-item-prs-BIQrUm4A.js} +1 -1
  329. package/dist/client/assets/{use-task-board-items-D-sN0nLG.js → use-task-board-items-CGAY-jQW.js} +1 -1
  330. package/dist/client/assets/{use-task-metadata-DH7eHsp7.js → use-task-metadata-DPgHRFmq.js} +1 -1
  331. package/dist/client/assets/{use-thread-analytics-BcaFH3FR.js → use-thread-analytics-xBLnk1IS.js} +1 -1
  332. package/dist/client/assets/{use-thread-outputs-BVWpj6Pt.js → use-thread-outputs-DfvzI16S.js} +1 -1
  333. package/dist/client/assets/useInfiniteQuery-y40gwZ85.js +1 -0
  334. package/dist/client/assets/{useQueries-DAsYe7-V.js → useQueries-J6gaISLv.js} +1 -1
  335. package/dist/client/assets/useSuspenseInfiniteQuery-CQ4v8A2V.js +1 -0
  336. package/dist/client/assets/{users-BDKuEOgV.js → users-yYj2VUTN.js} +1 -1
  337. package/dist/client/assets/{utils-B26RJwPU.js → utils-CeckZkhk.js} +1 -1
  338. package/dist/client/assets/{variant-calendar-B5hD6nTB.js → variant-calendar-kyOtq8lu.js} +1 -1
  339. package/dist/client/assets/{variant-matcher-override-CQDkjZB9.js → variant-matcher-override-5Sa4pTWa.js} +1 -1
  340. package/dist/client/assets/{view-mode-toggle-DgaXBu8I.js → view-mode-toggle-BNtxS74L.js} +1 -1
  341. package/dist/client/assets/{virtual-mcp-CPDSnrGy.js → virtual-mcp-Baro2XYn.js} +1 -1
  342. package/dist/client/assets/{watch-sse-pool-BFcKHKod.js → watch-sse-pool-LLzHE8XH.js} +1 -1
  343. package/dist/client/index.html +1 -1
  344. package/dist/server/migrate.js +237 -230
  345. package/dist/server/server.js +585 -585
  346. package/package.json +1 -1
  347. package/dist/client/assets/agent-app-D15rL7SC.js +0 -1
  348. package/dist/client/assets/agent-deck-YSht4fJH.js +0 -1
  349. package/dist/client/assets/agent-library-De8yrcgK.js +0 -1
  350. package/dist/client/assets/agent-library-file-DSYip22s.js +0 -1
  351. package/dist/client/assets/agent-settings-DYAVsnNu.js +0 -1
  352. package/dist/client/assets/agent-site-editor-code-CPqEQaz5.js +0 -2
  353. package/dist/client/assets/agent-view-6MnvsGap.js +0 -1
  354. package/dist/client/assets/api-keys-CIOehITH.js +0 -1
  355. package/dist/client/assets/app-editor-jDyn4P31.js +0 -1
  356. package/dist/client/assets/flat-project-CcomIoqo.js +0 -1
  357. package/dist/client/assets/library-DoTX8yJa.js +0 -1
  358. package/dist/client/assets/project-reports-BPIYWSN5.js +0 -1
  359. package/dist/client/assets/project-tasks-D89Pcpsx.js +0 -1
  360. package/dist/client/assets/record-editor-rZo87T7s.js +0 -1
  361. package/dist/client/assets/redirect-editor-BebKUMtd.js +0 -1
  362. package/dist/client/assets/reports-DbXtySYc.js +0 -1
  363. package/dist/client/assets/route-B-Xt506d.js +0 -1
  364. package/dist/client/assets/taskboard-analytics-D4etS4F2.js +0 -1
  365. package/dist/client/assets/tasks-cUD-vzLP.js +0 -1
  366. package/dist/client/assets/use-new-blocks-editor-DleK5Imc.js +0 -1
  367. package/dist/client/assets/useInfiniteQuery-DTGbHHjG.js +0 -1
  368. package/dist/client/assets/useSuspenseInfiniteQuery-CGs3Z4Zs.js +0 -1
@@ -1,5 +1,5 @@
1
1
  // @bun
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
2
+ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null,x)}var C=(_,x)=>{for(var u in x)Rz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Gz.bind(x,u)})};import{Migrator as Mz,sql as o}from"kysely";var Ex={};C(Ex,{up:()=>Oz,down:()=>Sz});import{sql as nT}from"kysely";async function Oz(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",nT`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",nT`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function Sz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var $x={};C($x,{up:()=>fz,down:()=>Az});import{sql as a}from"kysely";async function fz(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await a`ALTER TABLE organization_settings
3
3
  DROP COLUMN IF EXISTS registry_config,
4
4
  DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
5
5
  BEGIN RETURN value::jsonb;
@@ -14,20 +14,20 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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 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`
17
+ OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function Az(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Ux={};C(Ux,{up:()=>Iz,down:()=>yz});import{sql as vT}from"kysely";async function Iz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await vT`
18
18
  select organization_id, metadata
19
19
  from connections
20
20
  where connection_type = 'VIRTUAL'
21
21
  and metadata like '%submoduleCredentials%'
22
22
  order by updated_at asc
23
- `.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let m of T){let z=m?.host,E=m?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,T]of u){let m=JSON.stringify([...T].map(([z,E])=>({host:z,secretId:E})));await wT`
23
+ `.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let m of T){let z=m?.host,E=m?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,T]of u){let m=JSON.stringify([...T].map(([z,E])=>({host:z,secretId:E})));await vT`
24
24
  insert into organization_settings
25
25
  ("organizationId", submodule_credentials, "createdAt", "updatedAt")
26
26
  values (${K}, ${m}, ${N}, ${N})
27
27
  on conflict ("organizationId") do update
28
28
  set submodule_credentials = excluded.submodule_credentials,
29
29
  "updatedAt" = excluded."updatedAt"
30
- `.execute(_)}}async function 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`
30
+ `.execute(_)}}async function yz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Jx={};C(Jx,{up:()=>Vz,down:()=>wz});async function Vz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function wz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Qx={};C(Qx,{up:()=>kz,down:()=>nz});import{sql as Px}from"kysely";async function kz(_){await Px`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Px`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Px`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function nz(_){await _.schema.dropIndex("idx_threads_active_status").execute(),await _.schema.dropIndex("idx_threads_updated_at").execute(),await _.schema.dropIndex("idx_tmp_finish_persisted_at").execute()}var Zx={};C(Zx,{up:()=>gz,down:()=>qz});import{sql as G}from"kysely";var vz={title:{old:["Store Report","Commerce Discovery"],new:"Deco Score"},description:{old:["Your store's report and diagnostics","Commerce report and diagnostics","Commerce Discovery report and commerce diagnostics."],new:"Your store's Deco Score"}},pz={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},Xx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function pT(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function gT(_,x){for(let[K,T]of[[G`organization_id || '_commerce-discovery'`,vz],[G`'commerce-discovery_' || organization_id`,pz]])for(let m of["title","description"]){let{from:z,to:E}=pT(T[m],x);await G`
31
31
  UPDATE connections
32
32
  SET ${G.ref(m)} = ${E}
33
33
  WHERE id = ${K}
@@ -41,7 +41,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
41
41
  RETURN NULL;
42
42
  END;
43
43
  $fn$ LANGUAGE plpgsql IMMUTABLE;
44
- `.execute(_);let{from:u,to:N}=kT(Px.label,x);await G`
44
+ `.execute(_);let{from:u,to:N}=pT(Xx.label,x);await G`
45
45
  WITH agents AS (
46
46
  SELECT id, deco_score_try_jsonb(metadata) AS m
47
47
  FROM connections
@@ -56,7 +56,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
56
56
  (
57
57
  SELECT jsonb_agg(
58
58
  CASE
59
- WHEN v ->> 'toolName' = ${Px.toolName}
59
+ WHEN v ->> 'toolName' = ${Xx.toolName}
60
60
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
61
61
  THEN v || jsonb_build_object('label', ${N}::text)
62
62
  ELSE v
@@ -72,7 +72,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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' = ${Px.toolName}
75
+ WHERE v ->> 'toolName' = ${Xx.toolName}
76
76
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
77
77
  )
78
78
  )
@@ -80,38 +80,38 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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 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_`
83
+ `.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function gz(_){await gT(_,"up")}async function qz(_){await gT(_,"down")}var jx={};C(jx,{up:()=>cz,down:()=>hz,ACTIONS:()=>Wx});import{sql as T_}from"kysely";var Wx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],iz=Wx.filter((_)=>_!=="finding_resolved");async function cz(_){await qT(_,Wx)}async function hz(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await qT(_,iz)}async function qT(_,x){await T_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await T_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${T_.join(x.map((u)=>T_.lit(u)))}))`.execute(_)}var Lx={};C(Lx,{up:()=>tz,down:()=>oz});import{sql as B_}from"kysely";async function tz(_){await B_`
84
84
  ALTER TABLE org_jira_column_automations
85
85
  ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
86
86
  CONSTRAINT chk_org_jira_column_automations_from_kind
87
87
  CHECK (from_kind IN ('any', 'earlier', 'later', 'statuses')),
88
88
  ADD COLUMN IF NOT EXISTS from_statuses text[] NOT NULL DEFAULT '{}',
89
89
  ADD COLUMN IF NOT EXISTS from_key text NOT NULL DEFAULT 'any'
90
- `.execute(_),await R_`
90
+ `.execute(_),await B_`
91
91
  ALTER TABLE org_jira_column_automations
92
92
  DROP CONSTRAINT org_jira_column_automations_pkey,
93
93
  ADD PRIMARY KEY (organization_id, jira_status, from_key)
94
- `.execute(_)}async function qz(_){await R_`
94
+ `.execute(_)}async function oz(_){await B_`
95
95
  DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
96
- `.execute(_),await R_`
96
+ `.execute(_),await B_`
97
97
  ALTER TABLE org_jira_column_automations
98
98
  DROP CONSTRAINT org_jira_column_automations_pkey,
99
99
  ADD PRIMARY KEY (organization_id, jira_status),
100
100
  DROP COLUMN from_key,
101
101
  DROP COLUMN from_statuses,
102
102
  DROP COLUMN from_kind
103
- `.execute(_)}var 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`
103
+ `.execute(_)}var Fx={};C(Fx,{up:()=>az,down:()=>rz});import{sql as iT}from"kysely";async function az(_){await _.schema.createTable("org_project_folders").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("folders","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("user_sidebar_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("preferences","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_sidebar_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_sidebar_preferences_organization_id_idx").on("user_sidebar_preferences").column("organization_id").execute()}async function rz(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Yx={};C(Yx,{up:()=>lz,down:()=>ez});async function lz(){}async function ez(){}var Hx={};C(Hx,{up:()=>dz,down:()=>bz});import{sql as Dx}from"kysely";async function dz(_){await Dx`
104
104
  ALTER TABLE task_board_prompts
105
105
  ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
106
- `.execute(_)}async function 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`
106
+ `.execute(_)}async function bz(_){await Dx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Dx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Rx={};C(Rx,{up:()=>sz,down:()=>_E});import{sql as Mx}from"kysely";async function sz(_){await Mx`
107
107
  DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
108
- `.execute(_),await Yx`
108
+ `.execute(_),await Mx`
109
109
  DELETE FROM connection_aggregations
110
110
  WHERE parent_connection_id LIKE 'studio-jira\\_%'
111
- `.execute(_),await Yx`
111
+ `.execute(_),await Mx`
112
112
  DELETE FROM connections
113
113
  WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
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`
114
+ `.execute(_)}async function _E(){}var Bx={};C(Bx,{up:()=>xE,down:()=>uE});import{sql as cT}from"kysely";async function xE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(cT`audience in ('human', 'internal')`)).execute(),await cT`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function uE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Gx={};C(Gx,{up:()=>KE,down:()=>NE});import{sql as CE}from"kysely";async function KE(_){await CE`
115
115
  UPDATE org_fs_entry AS d
116
116
  SET deleted_at = now(),
117
117
  updated_at = now(),
@@ -130,7 +130,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
130
130
  AND c.parent = d.path
131
131
  AND c.deleted_at IS NULL
132
132
  )
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`
133
+ `.execute(_)}async function NE(){}var Sx={};C(Sx,{up:()=>mE,down:()=>zE,ACTIONS:()=>Ox});import{sql as F}from"kysely";var Ox=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],TE=Ox.filter((_)=>_!=="sprint_changed");async function mE(_){await F`
134
134
  CREATE TABLE task_board_sprints (
135
135
  id text PRIMARY KEY,
136
136
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -156,12 +156,12 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
156
156
  CREATE INDEX idx_task_board_items_sprint
157
157
  ON task_board_items (organization_id, sprint_id)
158
158
  WHERE sprint_id IS NOT NULL
159
- `.execute(_),await 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`
159
+ `.execute(_),await hT(_,Ox)}async function zE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await hT(_,TE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function hT(_,x){await F`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await F`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${F.join(x.map((u)=>F.lit(u)))}))`.execute(_)}var fx={};C(fx,{up:()=>$E,planOrgSiteProjectLinks:()=>aT,down:()=>UE,applyOrgSiteProjectLinks:()=>rT});import{sql as P}from"kysely";var EE="migration-237",tT=1000;async function oT(_){return(await P`
160
160
  SELECT conname FROM pg_constraint
161
161
  WHERE conrelid = 'org_sites'::regclass
162
162
  AND confrelid = 'organization'::regclass
163
163
  AND contype = 'f'
164
- `.execute(_)).rows[0]?.conname??null}async function hT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await P`
164
+ `.execute(_)).rows[0]?.conname??null}async function aT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await P`
165
165
  SELECT slug, organization_id FROM org_sites
166
166
  WHERE organization_id IS NOT NULL
167
167
  ORDER BY organization_id, slug
@@ -172,17 +172,17 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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 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`
175
+ `.execute(_),K=new Map;for(let T of N.rows){if(!T.metadata)continue;let m;try{let $=JSON.parse(T.metadata);if($&&typeof $==="object")m=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof m!=="string"||!m)continue;let z=`${T.organization_id}\x00${m}`,E=K.get(z)??[];E.push(T.id),K.set(z,E)}for(let{slug:T,organization_id:m}of u.rows){let z=K.get(`${m}\x00${T}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:T,projectIds:z});else x.links.push({slug:T,projectId:z[0]})}return x}async function rT(_,x){let u=0;for(let N=0;N<x.length;N+=tT){let K=P.join(x.slice(N,N+tT).map((m)=>P`(${m.slug}::text, ${m.projectId}::text)`)),T=await P`
176
176
  UPDATE org_sites o
177
177
  SET project_id = v.pid,
178
178
  linked_at = now(),
179
- updated_by = ${KE},
179
+ updated_by = ${EE},
180
180
  updated_at = now()
181
181
  FROM (VALUES ${K}) AS v(slug, pid)
182
182
  WHERE o.slug = v.slug
183
183
  AND o.project_id IS NULL
184
184
  AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
185
- `.execute(_);u+=Number(T.numAffectedRows??0n)}return u}async function NE(_){await P`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await hT(_);await P`
185
+ `.execute(_);u+=Number(T.numAffectedRows??0n)}return u}async function $E(_){await P`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await aT(_);await P`
186
186
  ALTER TABLE org_sites
187
187
  ADD COLUMN project_id text NULL
188
188
  REFERENCES connections(id) ON DELETE SET NULL,
@@ -190,7 +190,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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 cT(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
193
+ `.execute(_);let u=await oT(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
194
194
  ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
195
195
  `.execute(_),await P`
196
196
  ALTER TABLE org_sites
@@ -199,12 +199,12 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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 tT(_,x.links),K=await P`
202
+ `.execute(_);let N=await rT(_,x.links),K=await P`
203
203
  UPDATE org_sites SET linked_at = created_at
204
204
  WHERE organization_id IS NOT NULL AND linked_at IS NULL
205
- `.execute(_);await P`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:T,projectIds:m}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${T}": ${m.join(", ")}`)}async function TE(_){if((await P`
205
+ `.execute(_);await P`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:T,projectIds:m}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${T}": ${m.join(", ")}`)}async function UE(_){if((await P`
206
206
  SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
207
- `.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await cT(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
207
+ `.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await oT(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
208
208
  ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
209
209
  `.execute(_),await P`
210
210
  ALTER TABLE org_sites
@@ -213,9 +213,9 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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 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`
216
+ `.execute(_)}var Ax={};C(Ax,{up:()=>JE,moveRules:()=>Y,down:()=>PE});import{sql as c}from"kysely";async function JE(_){await Y(_,"task_board_prompts","tbp_","in_progress","in_review"),await Y(_,"task_board_prompts","tbp_","todo","in_progress"),await Y(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await Y(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
217
217
  DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
218
- `.execute(_),await 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`
218
+ `.execute(_),await Y(_,"task_board_column_automations","tbca_","todo","in_progress"),await Y(_,"task_board_column_automations","tbca_","approved","ready_for_deployment"),await Y(_,"task_board_column_automations","tbca_","merged","post_deploy_validation"),await c`
219
219
  WITH moved AS (
220
220
  UPDATE task_board_items AS i
221
221
  SET status = CASE
@@ -241,7 +241,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
241
241
  jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
242
242
  now()
243
243
  FROM moved
244
- `.execute(_)}async function zE(){}async function D(_,x,u,N,K){await c`
244
+ `.execute(_)}async function PE(){}async function Y(_,x,u,N,K){await c`
245
245
  DELETE FROM ${c.table(x)} AS src
246
246
  WHERE src.column_key = ${N}
247
247
  AND EXISTS (
@@ -255,7 +255,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
255
255
  id = ${u} || organization_id || '_' || ${K},
256
256
  updated_at = now()
257
257
  WHERE column_key = ${N}
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`
258
+ `.execute(_)}var Ix={};C(Ix,{up:()=>XE,down:()=>ZE});import{sql as QE}from"kysely";async function XE(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await Y(_,x,u,"todo","in_progress"),await Y(_,x,u,"approved","ready_for_deployment"),await Y(_,x,u,"merged","post_deploy_validation")}await QE`
259
259
  WITH moved AS (
260
260
  UPDATE task_board_items AS i
261
261
  SET status = CASE prev.status
@@ -279,7 +279,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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 UE(){}var Ax={};C(Ax,{up:()=>PE,down:()=>QE});import{sql as JE}from"kysely";async function PE(_){await JE`
282
+ `.execute(_)}async function ZE(){}var yx={};C(yx,{up:()=>jE,down:()=>LE});import{sql as WE}from"kysely";async function jE(_){await WE`
283
283
  WITH restored AS (
284
284
  UPDATE task_board_items AS i
285
285
  SET status = 'todo', updated_at = now()
@@ -306,7 +306,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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 QE(){}var Ix={};C(Ix,{up:()=>XE,down:()=>ZE});import{sql as L}from"kysely";async function XE(_){await L`
309
+ `.execute(_)}async function LE(){}var Vx={};C(Vx,{up:()=>FE,down:()=>YE});import{sql as L}from"kysely";async function FE(_){await L`
310
310
  ALTER TABLE automation_triggers
311
311
  ADD COLUMN column_key text,
312
312
  ADD COLUMN from_kind text,
@@ -332,7 +332,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
332
332
  CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
333
333
  ON task_board_activity (occurred_at)
334
334
  WHERE action = 'status_changed'
335
- `.execute(_)}async function 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`
335
+ `.execute(_)}async function YE(_){await L`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await L`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await L`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
336
336
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
337
337
  CHECK (type IN ('cron', 'event', 'webhook'))
338
338
  `.execute(_),await L`
@@ -340,19 +340,19 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
340
340
  DROP COLUMN IF EXISTS column_key,
341
341
  DROP COLUMN IF EXISTS from_kind,
342
342
  DROP COLUMN IF EXISTS from_statuses
343
- `.execute(_)}var 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`
343
+ `.execute(_)}var wx={};C(wx,{up:()=>RE,down:()=>BE,backfillUrlSlugs:()=>G_});import{sql as D}from"kysely";var eT=64,DE=new Set(["new","edit","settings","apps","projects","connections"]);function HE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function ME(_,x){let u=HE(_??"").slice(0,eT).replace(/-+$/,"");return u.length>=2&&!DE.has(u)?u:x}function lT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,eT-u.length).replace(/-+$/,"")}${u}`}async function G_(_){let{rows:x}=await D`
344
344
  SELECT id, organization_id, title, connection_type, url_slug
345
345
  FROM connections
346
346
  ORDER BY organization_id, created_at, id
347
- `.execute(_),{rows:u}=await Y`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(m)=>{let z=N.get(m);if(!z)N.set(m,z=new Set);return z};for(let m of x)if(m.url_slug)K(m.organization_id).add(m.url_slug);for(let m of u)K(m.organization_id).add(m.slug);let T=[];for(let m of x){if(m.url_slug)continue;let z=K(m.organization_id),E=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`
347
+ `.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(m)=>{let z=N.get(m);if(!z)N.set(m,z=new Set);return z};for(let m of x)if(m.url_slug)K(m.organization_id).add(m.url_slug);for(let m of u)K(m.organization_id).add(m.slug);let T=[];for(let m of x){if(m.url_slug)continue;let z=K(m.organization_id),E=ME(m.title,m.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(lT(E,$)))$++;let J=lT(E,$);z.add(J),T.push({id:m.id,slug:J})}for(let m=0;m<T.length;m+=1000){let z=T.slice(m,m+1000);await D`
348
348
  UPDATE connections c
349
349
  SET url_slug = v.slug
350
350
  FROM unnest(
351
- ${Y.val(z.map((E)=>E.id))}::text[],
352
- ${Y.val(z.map((E)=>E.slug))}::text[]
351
+ ${D.val(z.map((E)=>E.id))}::text[],
352
+ ${D.val(z.map((E)=>E.slug))}::text[]
353
353
  ) AS v(id, slug)
354
354
  WHERE c.id = v.id AND c.url_slug IS NULL
355
- `.execute(_)}}async function FE(_){await Y`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await Y`
355
+ `.execute(_)}}async function RE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
356
356
  CREATE TABLE connection_slug_aliases (
357
357
  organization_id text NOT NULL,
358
358
  slug text NOT NULL,
@@ -360,24 +360,24 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
360
360
  created_at timestamptz NOT NULL DEFAULT now(),
361
361
  PRIMARY KEY (organization_id, slug)
362
362
  )
363
- `.execute(_),await Y`
363
+ `.execute(_),await D`
364
364
  CREATE INDEX idx_connection_slug_aliases_connection
365
365
  ON connection_slug_aliases (connection_id)
366
- `.execute(_),await B_(_),await Y`
366
+ `.execute(_),await G_(_),await D`
367
367
  CREATE UNIQUE INDEX idx_connections_org_url_slug
368
368
  ON connections (organization_id, url_slug)
369
- `.execute(_)}async function 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_`
369
+ `.execute(_)}async function BE(_){await D`DROP TABLE connection_slug_aliases`.execute(_),await D`DROP INDEX idx_connections_org_url_slug`.execute(_),await D`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var kx={};C(kx,{up:()=>GE,down:()=>OE});async function GE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function OE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var nx={};C(nx,{up:()=>SE,down:()=>fE});async function SE(_){await G_(_)}async function fE(){}var vx={};C(vx,{up:()=>AE,down:()=>IE});import{sql as O_}from"kysely";async function AE(_){await O_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await O_`
370
370
  CREATE UNIQUE INDEX idx_automations_org_system_key
371
371
  ON automations (organization_id, system_key)
372
372
  WHERE system_key IS NOT NULL
373
- `.execute(_)}async function 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_`
373
+ `.execute(_)}async function IE(_){await O_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await O_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var px={};C(px,{up:()=>yE,down:()=>VE});import{sql as m_}from"kysely";async function yE(_){await m_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await m_`
374
374
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
375
375
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
376
376
  'board_pr_ready'))
377
- `.execute(_)}async function 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_`
377
+ `.execute(_)}async function VE(_){await m_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await m_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await m_`
378
378
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
379
379
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
380
- `.execute(_)}var vx={};C(vx,{up:()=>fE,down:()=>yE});import{sql as H}from"kysely";async function fE(_){let{rows:x}=await H`
380
+ `.execute(_)}var gx={};C(gx,{up:()=>wE,down:()=>vE});import{sql as H}from"kysely";async function wE(_){let{rows:x}=await H`
381
381
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
382
382
  WHERE conname = 'chk_trigger_type'
383
383
  AND conrelid = 'automation_triggers'::regclass
@@ -404,8 +404,8 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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}, ${AE(K)}, true,
408
- ${K.created_by}, ${JSON.stringify(IE(K.prompt))},
407
+ VALUES (${m}, ${K.organization_id}, ${kE(K)}, true,
408
+ ${K.created_by}, ${JSON.stringify(nE(K.prompt))},
409
409
  '{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
410
410
  ON CONFLICT (id) DO NOTHING
411
411
  `.execute(_),await H`
@@ -414,11 +414,11 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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 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`
417
+ `.execute(_)}}function kE(_){let x=_.from_kind==="earlier"?" (from an earlier column)":_.from_kind==="later"?" (from a later column)":_.from_kind==="statuses"?` (from ${_.from_statuses.join(", ")})`:"";return`Jira: ${_.jira_status}${x}`}function nE(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
418
+ `).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function vE(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
419
419
  ALTER TABLE automation_triggers
420
420
  DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
421
- `.execute(_)}var 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_`
421
+ `.execute(_)}var qx={};C(qx,{up:()=>pE,down:()=>gE});import{sql as z_}from"kysely";async function pE(_){await z_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await z_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function gE(_){await z_`
422
422
  CREATE TABLE IF NOT EXISTS task_board_column_automations (
423
423
  id text PRIMARY KEY,
424
424
  organization_id text NOT NULL,
@@ -427,10 +427,10 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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 m_`
430
+ `.execute(_),await z_`
431
431
  CREATE UNIQUE INDEX IF NOT EXISTS task_board_column_automations_org_column_uniq
432
432
  ON task_board_column_automations (organization_id, column_key)
433
- `.execute(_),await m_`
433
+ `.execute(_),await z_`
434
434
  CREATE TABLE IF NOT EXISTS org_jira_column_automations (
435
435
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
436
436
  jira_status text NOT NULL,
@@ -445,23 +445,30 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.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 gx={};C(gx,{up:()=>kE,down:()=>nE});import{sql as O_}from"kysely";async function kE(_){await O_`
448
+ `.execute(_)}var ix={};C(ix,{up:()=>qE,down:()=>iE});import{sql as S_}from"kysely";async function qE(_){await S_`
449
449
  ALTER TABLE task_board_items
450
450
  ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
451
451
  REFERENCES connections(id) ON DELETE SET NULL
452
- `.execute(_),await O_`
452
+ `.execute(_),await S_`
453
453
  CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
454
454
  ON task_board_items (virtual_mcp_id)
455
455
  WHERE virtual_mcp_id IS NOT NULL
456
- `.execute(_)}async function 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`
456
+ `.execute(_)}async function iE(_){await S_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await S_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var cx={};C(cx,{up:()=>cE,down:()=>hE});async function cE(_){await _.schema.createTable("github_copilot_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function hE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var hx={};C(hx,{up:()=>tE,down:()=>oE});async function tE(_){await _.schema.createTable("org_shared_plans").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("created_at","timestamptz",(x)=>x.notNull()).addPrimaryKeyConstraint("org_shared_plans_pkey",["organization_id","provider_id","user_id"]).execute()}async function oE(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var tx={};C(tx,{up:()=>aE,down:()=>rE});import{sql as r}from"kysely";var f_=["linked_chat_run"];async function dT(_){let{rows:x}=await r`
457
457
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
458
458
  WHERE conname = 'chk_trigger_type'
459
459
  AND conrelid = 'automation_triggers'::regclass
460
- `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function lT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
460
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function bT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
461
461
  ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
462
462
  ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
463
- `.execute(_)}async function 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`
463
+ `.execute(_)}async function aE(_){let x=await dT(_);if(f_.every((u)=>x.has(u)))return;for(let u of f_)x.add(u);await bT(_,x)}async function rE(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(f_)})`.execute(_);let x=await dT(_);for(let u of f_)x.delete(u);await bT(_,x)}var ox={};C(ox,{up:()=>lE,down:()=>eE});import{sql as l}from"kysely";var A_=["board_pr_merged","chat_pr_opened"];async function sT(_){let{rows:x}=await l`
464
+ SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
465
+ WHERE conname = 'chk_trigger_type'
466
+ AND conrelid = 'automation_triggers'::regclass
467
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function _m(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
468
+ ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
469
+ ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
470
+ `.execute(_)}async function lE(_){let x=await sT(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await _m(_,x)}async function eE(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(A_)})`.execute(_);let x=await sT(_);for(let u of A_)x.delete(u);await _m(_,x)}var ax={};C(ax,{up:()=>bE,down:()=>sE});import{sql as dE}from"kysely";async function bE(_){await dE`ALTER TABLE organization_settings
471
+ DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function sE(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var rx={};C(rx,{up:()=>_0,down:()=>x0});import{sql as xm}from"kysely";async function _0(_){await xm`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function x0(_){await xm`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var lx={};C(lx,{up:()=>u0,down:()=>C0});import{sql as O}from"kysely";async function u0(_){await O`
465
472
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
466
473
  RETURNS jsonb AS $fn$
467
474
  BEGIN
@@ -535,7 +542,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
535
542
  || '/' ||
536
543
  coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
537
544
  ) = lower(p.path)
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`
545
+ `.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function C0(_){await O`
539
546
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
540
547
  RETURNS jsonb AS $fn$
541
548
  BEGIN
@@ -562,17 +569,17 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
562
569
  )::text
563
570
  WHERE a.id = 'commerce-discovery_' || a.organization_id
564
571
  AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
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
572
+ `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var dx={};C(dx,{up:()=>K0,down:()=>N0});import{sql as ex}from"kysely";async function K0(_){await ex`ALTER TABLE git_provider_accounts
566
573
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
567
574
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
568
575
  CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
569
576
  ADD CONSTRAINT git_provider_accounts_cli_check
570
577
  CHECK (auth_kind <> 'github_cli' OR
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
578
+ (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function N0(_){await ex`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await ex`ALTER TABLE git_provider_accounts
572
579
  DROP CONSTRAINT git_provider_accounts_cli_check,
573
580
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
574
581
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
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`
582
+ CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var bx={};C(bx,{up:()=>T0,down:()=>m0});import{sql as um}from"kysely";async function T0(_){await um`
576
583
  INSERT INTO "organization" (id, name, slug, "createdAt")
577
584
  SELECT
578
585
  'org_user_fs',
@@ -586,9 +593,9 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
586
593
  END,
587
594
  now()
588
595
  ON CONFLICT (id) DO NOTHING
589
- `.execute(_)}async function _0(_){await dT`
596
+ `.execute(_)}async function m0(_){await um`
590
597
  DELETE FROM "organization" WHERE id = 'org_user_fs'
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`
598
+ `.execute(_)}var sx={};C(sx,{up:()=>z0,down:()=>E0});async function z0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function E0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var _u={};C(_u,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function U0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var xu={};C(xu,{up:()=>P0,down:()=>Q0});import{sql as E_}from"kysely";var J0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function Cm(_,x){for(let{table:u,column:N}of J0){let K=`${u}_${N}_check`,T=x.map((m)=>`'${m}'`).join(", ");await E_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await E_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${T}))`).execute(_)}}async function P0(_){await Cm(_,["github","gitlab","bitbucket"])}async function Q0(_){await E_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await Cm(_,["github","gitlab"])}var uu={};C(uu,{up:()=>X0,down:()=>Z0});import{sql as I_}from"kysely";async function X0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(I_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(I_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(I_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(I_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function Z0(_){await _.schema.dropTable("experiments").execute()}var Cu={};C(Cu,{up:()=>j0,down:()=>L0});import{sql as W0}from"kysely";async function j0(_){await W0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function L0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Nu={};C(Nu,{up:()=>Y0,down:()=>D0,ACTIONS:()=>Ku});import{sql as $_}from"kysely";var Ku=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],F0=Ku.filter((_)=>_!=="duplicate_reported");async function Y0(_){await Km(_,Ku)}async function D0(_){await $_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await Km(_,F0)}async function Km(_,x){await $_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await $_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${$_.join(x.map((u)=>$_.lit(u)))}))`.execute(_)}var Tu={};C(Tu,{up:()=>H0,down:()=>M0});async function H0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function M0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var mu={};C(mu,{up:()=>R0,down:()=>B0});async function R0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function B0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var zu={};C(zu,{up:()=>O0,down:()=>S0});import{sql as G0}from"kysely";async function O0(_){await G0`
592
599
  CREATE TABLE github_connect_flows (
593
600
  id text PRIMARY KEY,
594
601
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -598,7 +605,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
598
605
  );
599
606
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
600
607
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
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_`
608
+ `.execute(_)}async function S0(_){await _.schema.dropTable("github_connect_flows").execute()}var Eu={};C(Eu,{up:()=>f0,down:()=>A0});async function f0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function A0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var $u={};C($u,{up:()=>I0,down:()=>y0});import{sql as y_}from"kysely";async function I0(_){await y_`
602
609
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
603
610
  DECLARE
604
611
  metadata_json jsonb;
@@ -649,24 +656,24 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
649
656
  AFTER INSERT OR UPDATE OF metadata ON connections
650
657
  FOR EACH ROW EXECUTE FUNCTION adopt_legacy_repository();
651
658
  UPDATE connections SET metadata = metadata WHERE slug = 'mcp-github';
652
- `.execute(_),await A_`
659
+ `.execute(_),await y_`
653
660
  UPDATE org_repo_sync s SET repository_id = r.id
654
661
  FROM repositories r WHERE s.repository_id IS NULL
655
662
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
656
663
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
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_`
664
+ `.execute(_)}async function y0(_){await y_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await y_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Uu={};C(Uu,{up:()=>V0,down:()=>w0});import{sql as V}from"kysely";async function V0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function w0(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var Ju={};C(Ju,{up:()=>k0,down:()=>n0});import{sql as Nm}from"kysely";async function k0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).execute()}async function n0(_){await _.schema.dropTable("organization_settings").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0});async function v0(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function p0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Qu={};C(Qu,{up:()=>g0,down:()=>q0});async function g0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function q0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Xu={};C(Xu,{up:()=>i0,down:()=>c0});async function i0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function c0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as h0}from"kysely";async function t0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",h0`text`).execute()}async function o0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Wu={};C(Wu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function r0(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var ju={};C(ju,{up:()=>l0,down:()=>e0});import{sql as U_}from"kysely";async function l0(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function e0(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var Lu={};C(Lu,{up:()=>b0,down:()=>s0});import{sql as d0}from"kysely";async function b0(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function s0(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(d0`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Fu={};C(Fu,{up:()=>_$,down:()=>x$});import{sql as V_}from"kysely";async function _$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await V_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function x$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var Yu={};C(Yu,{up:()=>u$,down:()=>C$});async function u$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function C$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Du={};C(Du,{up:()=>K$,down:()=>N$});import{sql as w_}from"kysely";async function K$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await w_`
658
665
  UPDATE gateways
659
666
  SET tool_selection_mode = CASE
660
667
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
661
668
  ELSE 'inclusion'
662
669
  END
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_`
670
+ `.execute(_),await w_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function N$(_){await w_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await w_`
664
671
  UPDATE gateways
665
672
  SET tool_selection_strategy = CASE
666
673
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
667
674
  ELSE NULL
668
675
  END
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$`
676
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Hu={};C(Hu,{up:()=>T$,down:()=>m$});async function T$(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function m$(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var Mu={};C(Mu,{up:()=>z$,down:()=>E$});async function z$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function E$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Ru={};C(Ru,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function U$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Bu={};C(Bu,{up:()=>J$,down:()=>P$});async function J$(_){await _.schema.alterTable("downstream_tokens").addColumn("clientId","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("clientSecret","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("tokenEndpoint","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}async function P$(_){await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("tokenEndpoint").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientSecret").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientId").execute()}var Gu={};C(Gu,{up:()=>X$,down:()=>Z$});import{sql as Q$}from"kysely";async function X$(_){await Q$`
670
677
  DELETE FROM downstream_tokens
671
678
  WHERE id NOT IN (
672
679
  SELECT id FROM (
@@ -676,7 +683,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
676
683
  ) ranked
677
684
  WHERE rn = 1
678
685
  )
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`
686
+ `.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function Z$(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var Ou={};C(Ou,{up:()=>W$,down:()=>j$});async function W$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function j$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Su={};C(Su,{up:()=>L$,down:()=>F$});import{sql as Tm}from"kysely";async function L$(_){await Tm`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function F$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await Tm`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var fu={};C(fu,{up:()=>Y$,down:()=>D$});async function Y$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function D$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Au={};C(Au,{up:()=>H$,down:()=>M$});import{sql as k_}from"kysely";async function H$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function M$(_){await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropTable("thread_messages").execute(),await _.schema.dropTable("threads").execute()}var Iu={};C(Iu,{up:()=>R$,down:()=>B$});async function R$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function B$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var yu={};C(yu,{up:()=>G$,down:()=>O$});async function G$(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function O$(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var Vu={};C(Vu,{up:()=>S$,down:()=>f$});import{sql as M}from"kysely";async function S$(_){await M`
680
687
  INSERT INTO connections (
681
688
  id,
682
689
  organization_id,
@@ -723,7 +730,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
723
730
  created_at,
724
731
  updated_at
725
732
  FROM virtual_mcps
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`
733
+ `.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function f$(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await M`
727
734
  INSERT INTO virtual_mcps (
728
735
  id, organization_id, title, description, icon, status,
729
736
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -733,7 +740,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
733
740
  created_at, updated_at, created_by, NULL, 'inclusion'
734
741
  FROM connections
735
742
  WHERE connection_type = 'VIRTUAL'
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`
743
+ `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var wu={};C(wu,{up:()=>A$,down:()=>I$});async function A$(_){await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_id").on("monitoring_logs").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function I$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var ku={};C(ku,{up:()=>y$,down:()=>V$});import{sql as w}from"kysely";async function y$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
737
744
  INSERT INTO connection_aggregations_new (
738
745
  id, parent_connection_id, child_connection_id,
739
746
  selected_tools, selected_resources, selected_prompts, created_at
@@ -742,7 +749,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
742
749
  id, parent_connection_id, child_connection_id,
743
750
  selected_tools, selected_resources, selected_prompts, created_at
744
751
  FROM connection_aggregations
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`
752
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function V$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
746
753
  INSERT INTO connection_aggregations_new (
747
754
  id, parent_connection_id, child_connection_id,
748
755
  selected_tools, selected_resources, selected_prompts, created_at
@@ -751,7 +758,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
751
758
  id, parent_connection_id, child_connection_id,
752
759
  selected_tools, selected_resources, selected_prompts, created_at
753
760
  FROM connection_aggregations
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`
761
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var vu={};C(vu,{up:()=>w$,down:()=>k$});import{sql as nu}from"kysely";async function w$(_){await nu`
755
762
  UPDATE connections
756
763
  SET connection_url = connection_url || '/management',
757
764
  tools = NULL,
@@ -759,42 +766,42 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
759
766
  WHERE connection_url LIKE '%/mcp'
760
767
  AND connection_url NOT LIKE '%/mcp/management'
761
768
  AND app_name = '@deco/management-mcp'
762
- `.execute(_),await Vu`
769
+ `.execute(_),await nu`
763
770
  UPDATE connections
764
771
  SET tools = NULL,
765
772
  updated_at = CURRENT_TIMESTAMP
766
773
  WHERE app_name = '@deco/management-mcp'
767
774
  AND tools IS NOT NULL
768
- `.execute(_)}async function S$(_){await Vu`
775
+ `.execute(_)}async function k$(_){await nu`
769
776
  UPDATE connections
770
777
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
771
778
  updated_at = CURRENT_TIMESTAMP
772
779
  WHERE connection_url LIKE '%/mcp/management'
773
780
  AND app_name = '@deco/management-mcp'
774
- `.execute(_)}var nu={};C(nu,{up:()=>f$,down:()=>A$});import{sql as ku}from"kysely";async function f$(_){await ku`
781
+ `.execute(_)}var gu={};C(gu,{up:()=>n$,down:()=>v$});import{sql as pu}from"kysely";async function n$(_){await pu`
775
782
  UPDATE connections
776
783
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
777
784
  tools = NULL,
778
785
  updated_at = CURRENT_TIMESTAMP
779
786
  WHERE connection_url LIKE '%/mcp/management'
780
787
  AND app_name = '@deco/management-mcp'
781
- `.execute(_),await ku`
788
+ `.execute(_),await pu`
782
789
  UPDATE connections
783
790
  SET tools = NULL,
784
791
  updated_at = CURRENT_TIMESTAMP
785
792
  WHERE connection_url LIKE '%/mcp/self'
786
793
  AND app_name = '@deco/management-mcp'
787
794
  AND tools IS NOT NULL
788
- `.execute(_)}async function A$(_){await ku`
795
+ `.execute(_)}async function v$(_){await pu`
789
796
  UPDATE connections
790
797
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
791
798
  updated_at = CURRENT_TIMESTAMP
792
799
  WHERE connection_url LIKE '%/mcp/self'
793
800
  AND app_name = '@deco/management-mcp'
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_`
801
+ `.execute(_)}var qu={};C(qu,{up:()=>p$,down:()=>g$});async function p$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function g$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var iu={};C(iu,{up:()=>q$,down:()=>i$});import{sql as mm}from"kysely";async function q$(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function i$(_){await _.schema.dropIndex("idx_member_tags_unique").execute(),await _.schema.dropIndex("idx_member_tags_tag").execute(),await _.schema.dropIndex("idx_member_tags_member").execute(),await _.schema.dropIndex("idx_organization_tags_unique_name").execute(),await _.schema.dropIndex("idx_organization_tags_org").execute(),await _.schema.dropTable("member_tags").execute(),await _.schema.dropTable("organization_tags").execute()}var cu={};C(cu,{up:()=>c$,down:()=>h$});import{sql as J_}from"kysely";async function c$(_){await J_`
795
802
  ALTER TABLE connection_aggregations
796
803
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
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_`
804
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function h$(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await J_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await J_`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).execute(),await J_`
798
805
  INSERT INTO connection_aggregations_new (
799
806
  id, parent_connection_id, child_connection_id,
800
807
  selected_tools, selected_resources, selected_prompts, created_at
@@ -803,42 +810,42 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
803
810
  id, parent_connection_id, child_connection_id,
804
811
  selected_tools, selected_resources, selected_prompts, created_at
805
812
  FROM connection_aggregations
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`
813
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var hu={};C(hu,{up:()=>l$,down:()=>e$});import{webcrypto as Em}from"crypto";var zm="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var t$=128,h,e;function o$(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*t$),Em.getRandomValues(h),e=0;else if(e+_>h.length)Em.getRandomValues(h),e=0;e+=_}function d(_=21){o$(_|=0);let x="";for(let u=e-_;u<e;u++)x+=zm[h[u]&63];return x}var a$="org-admin",r$="Organization Admin";async function l$(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),K=`proj_${d()}`,T=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:a$,name:r$,description:null,enabled_plugins:T?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function e$(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var tu={};C(tu,{up:()=>d$,down:()=>b$});async function d$(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function b$(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var ou={};C(ou,{up:()=>s$,down:()=>_U});async function s$(_){}async function _U(_){}var au={};C(au,{up:()=>xU,down:()=>uU});async function xU(_){await _.schema.createTable("project_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("project_id","text",(x)=>x.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await _.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function uU(_){await _.schema.dropIndex("project_connections_project_id_idx").execute(),await _.schema.dropIndex("project_connections_project_conn_unique").execute(),await _.schema.dropTable("project_connections").execute()}var ru={};C(ru,{up:()=>CU,down:()=>KU});import{sql as $m}from"kysely";async function CU(_){await $m`
807
814
  UPDATE connections
808
815
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
809
816
  tools = NULL,
810
817
  updated_at = CURRENT_TIMESTAMP
811
818
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
812
819
  AND app_name = 'deco-registry'
813
- `.execute(_)}async function d$(_){await Nm`
820
+ `.execute(_)}async function KU(_){await $m`
814
821
  UPDATE connections
815
822
  SET connection_url = 'https://api.decocms.com/mcp/registry',
816
823
  updated_at = CURRENT_TIMESTAMP
817
824
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
818
825
  AND app_name = 'deco-registry'
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`
826
+ `.execute(_)}var lu={};C(lu,{up:()=>TU,down:()=>mU});import{sql as NU}from"kysely";async function TU(_){await _.schema.createTable("ai_provider_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("label","text",(x)=>x.notNull()).addColumn("encrypted_api_key","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(NU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await _.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function mU(_){await _.schema.dropTable("ai_provider_keys").execute()}var eu={};C(eu,{up:()=>EU,down:()=>$U});import{sql as zU}from"kysely";async function EU(_){await _.schema.createTable("oauth_pkce_states").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull()).addColumn("code_verifier","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(zU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function $U(_){await _.schema.dropTable("oauth_pkce_states").execute()}var du={};C(du,{up:()=>UU,down:()=>JU});import{sql as p}from"kysely";async function UU(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function JU(_){await _.schema.dropIndex("idx_threads_trigger_status").execute(),await _.schema.alterTable("threads").dropColumn("trigger_id").execute(),await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.dropIndex("idx_automation_triggers_event").execute(),await _.schema.dropIndex("idx_automation_triggers_automation").execute(),await _.schema.dropTable("automation_triggers").execute(),await _.schema.dropIndex("idx_automations_active").execute(),await _.schema.dropIndex("idx_automations_org").execute(),await _.schema.dropTable("automations").execute()}var bu={};C(bu,{up:()=>PU,down:()=>QU});async function PU(_){await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("last_run_at","text").execute()}async function QU(_){await _.schema.alterTable("automation_triggers").dropColumn("last_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute()}var su={};C(su,{up:()=>XU,down:()=>ZU});async function XU(_){await _.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await _.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function ZU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var _C={};C(_C,{up:()=>WU,down:()=>jU});import{sql as Um}from"kysely";async function WU(_){await Um`
820
827
  UPDATE connections
821
828
  SET title = 'CMS MCP',
822
829
  tools = NULL,
823
830
  updated_at = CURRENT_TIMESTAMP
824
831
  WHERE app_name = '@deco/management-mcp'
825
- `.execute(_)}async function UU(_){await Tm`
832
+ `.execute(_)}async function jU(_){await Um`
826
833
  UPDATE connections
827
834
  SET title = 'Mesh MCP',
828
835
  updated_at = CURRENT_TIMESTAMP
829
836
  WHERE app_name = '@deco/management-mcp'
830
- `.execute(_)}var su={};C(su,{up:()=>JU,down:()=>PU});import{sql as mm}from"kysely";async function JU(_){await mm`
837
+ `.execute(_)}var xC={};C(xC,{up:()=>LU,down:()=>FU});import{sql as Jm}from"kysely";async function LU(_){await Jm`
831
838
  UPDATE connections
832
839
  SET title = 'Deco CMS',
833
840
  tools = NULL,
834
841
  updated_at = CURRENT_TIMESTAMP
835
842
  WHERE app_name = '@deco/management-mcp'
836
- `.execute(_)}async function PU(_){await mm`
843
+ `.execute(_)}async function FU(_){await Jm`
837
844
  UPDATE connections
838
845
  SET title = 'CMS MCP',
839
846
  updated_at = CURRENT_TIMESTAMP
840
847
  WHERE app_name = '@deco/management-mcp'
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`
848
+ `.execute(_)}var uC={};C(uC,{up:()=>YU,down:()=>DU});async function YU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function DU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var CC={};C(CC,{up:()=>HU,down:()=>MU});async function HU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function MU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var NC={};C(NC,{up:()=>RU,down:()=>BU});import{sql as KC}from"kysely";async function RU(_){await KC`
842
849
  UPDATE organization_settings
843
850
  SET enabled_plugins = (
844
851
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -847,7 +854,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
847
854
  )
848
855
  WHERE enabled_plugins IS NOT NULL
849
856
  AND enabled_plugins LIKE '%object-storage%'
850
- `.execute(_),await xC`
857
+ `.execute(_),await KC`
851
858
  UPDATE projects
852
859
  SET enabled_plugins = (
853
860
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -856,65 +863,65 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
856
863
  )
857
864
  WHERE enabled_plugins IS NOT NULL
858
865
  AND enabled_plugins LIKE '%object-storage%'
859
- `.execute(_),await xC`
866
+ `.execute(_),await KC`
860
867
  DELETE FROM project_plugin_configs
861
868
  WHERE plugin_id = 'object-storage'
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`
869
+ `.execute(_)}async function BU(_){}var TC={};C(TC,{up:()=>GU,down:()=>OU});import{sql as Pm}from"kysely";async function GU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await Pm`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function OU(_){await Pm`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var zC={};C(zC,{up:()=>SU,down:()=>fU});import{sql as mC}from"kysely";async function SU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await mC`
863
870
  ALTER TABLE connections
864
871
  ADD CONSTRAINT chk_connections_subtype
865
872
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
866
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await KC`
873
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await mC`
867
874
  UPDATE connections
868
875
  SET subtype = 'agent'
869
876
  WHERE connection_type = 'VIRTUAL'
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`
877
+ `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,J=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),j=N.get(z.organization_id);if(!j)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:j,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:J,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let T=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${d()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let m=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${d()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function fU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await mC`
871
878
  ALTER TABLE connections
872
879
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
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`
880
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var EC={};C(EC,{up:()=>IU,down:()=>yU});import{sql as AU}from"kysely";async function IU(_){await AU`
874
881
  DELETE FROM connections
875
882
  WHERE connection_type = 'VIRTUAL'
876
883
  AND subtype = 'project'
877
884
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
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`
885
+ `.execute(_)}async function yU(_){}var $C={};C($C,{up:()=>wU,down:()=>kU});import{sql as VU}from"kysely";async function wU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await VU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function kU(_){await _.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var JC={};C(JC,{up:()=>nU,down:()=>vU});import{sql as UC}from"kysely";async function nU(_){await _.schema.createTable("org_sso_config").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(x)=>x.notNull()).addColumn("client_id","text",(x)=>x.notNull()).addColumn("client_secret","text",(x)=>x.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(x)=>x.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(x)=>x.notNull()).addColumn("enforced","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await _.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await _.schema.createTable("org_sso_sessions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(x)=>x.notNull()).addColumn("expires_at","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function vU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var PC={};C(PC,{up:()=>pU,down:()=>gU});async function pU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function gU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var QC={};C(QC,{up:()=>qU,down:()=>iU});async function qU(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function iU(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var ZC={};C(ZC,{up:()=>hU,down:()=>tU});import{sql as Qm}from"kysely";function XC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function cU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return XC(N)}catch{return XC(_.connection_url)}if(_.title)return XC(_.title);return _.id}async function hU(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await Qm`
879
886
  SELECT id, app_name, connection_url, title FROM connections
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_`
887
+ `.execute(_);for(let u of x.rows){let N=cU(u);await Qm`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function tU(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var WC={};C(WC,{up:()=>oU,down:()=>aU});import{sql as P_}from"kysely";async function oU(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await P_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await P_`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function aU(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await P_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await P_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await P_`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var jC={};C(jC,{up:()=>rU,down:()=>lU});async function rU(_){await _.schema.alterTable("automations").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("idx_automations_virtual_mcp").on("automations").columns(["virtual_mcp_id"]).execute()}async function lU(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var LC={};C(LC,{up:()=>eU,down:()=>dU});import{sql as n_}from"kysely";async function eU(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await n_`
881
888
  UPDATE threads
882
889
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
883
890
  WHERE agent_ids IS NOT NULL
884
891
  AND agent_ids != '[]'
885
892
  AND agent_ids != ''
886
893
  AND (agent_ids::jsonb ->> 0) IS NOT NULL
887
- `.execute(_),await w_`
894
+ `.execute(_),await n_`
888
895
  CREATE INDEX idx_threads_virtual_mcp_id
889
896
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
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_`
897
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function dU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await n_`
891
898
  UPDATE threads
892
899
  SET agent_ids = CASE
893
900
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
894
901
  THEN jsonb_build_array(virtual_mcp_id)::text
895
902
  ELSE '[]'
896
903
  END
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`
904
+ `.execute(_),await n_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var FC={};C(FC,{up:()=>bU,down:()=>sU});async function bU(_){await _.schema.createTable("trigger_callback_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).execute(),await _.schema.createIndex("idx_trigger_callback_tokens_connection_org").on("trigger_callback_tokens").columns(["connection_id","organization_id"]).unique().execute()}async function sU(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var YC={};C(YC,{up:()=>_J,down:()=>xJ});async function _J(_){await _.schema.createTable("kv").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("value","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("kv_pkey",["organization_id","key"]).execute()}async function xJ(_){await _.schema.dropTable("kv").execute()}var DC={};C(DC,{up:()=>uJ,down:()=>CJ});async function uJ(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function CJ(_){await _.schema.dropIndex("idx_member_user_org").execute()}var HC={};C(HC,{up:()=>KJ,down:()=>NJ});async function KJ(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function NJ(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var MC={};C(MC,{up:()=>TJ,down:()=>mJ});import{sql as S}from"kysely";async function TJ(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await S`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await S`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function mJ(_){await _.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await _.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await _.schema.dropTable("private_registry_publish_request").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await _.schema.dropTable("private_registry_item").ifExists().execute()}var RC={};C(RC,{up:()=>zJ,down:()=>EJ});import{sql as b}from"kysely";async function zJ(_){await b`
898
905
  ALTER TABLE event_subscriptions
899
906
  ALTER COLUMN enabled DROP DEFAULT
900
- `.execute(_),await d`
907
+ `.execute(_),await b`
901
908
  ALTER TABLE event_subscriptions
902
909
  ALTER COLUMN enabled TYPE boolean
903
910
  USING enabled::boolean
904
- `.execute(_),await d`
911
+ `.execute(_),await b`
905
912
  ALTER TABLE event_subscriptions
906
913
  ALTER COLUMN enabled SET DEFAULT true
907
- `.execute(_)}async function uJ(_){await d`
914
+ `.execute(_)}async function EJ(_){await b`
908
915
  ALTER TABLE event_subscriptions
909
916
  ALTER COLUMN enabled DROP DEFAULT
910
- `.execute(_),await d`
917
+ `.execute(_),await b`
911
918
  ALTER TABLE event_subscriptions
912
919
  ALTER COLUMN enabled TYPE integer
913
920
  USING enabled::integer
914
- `.execute(_),await d`
921
+ `.execute(_),await b`
915
922
  ALTER TABLE event_subscriptions
916
923
  ALTER COLUMN enabled SET DEFAULT 1
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`
924
+ `.execute(_)}var BC={};C(BC,{up:()=>$J,down:()=>UJ});import{sql as Xm}from"kysely";async function $J(_){await _.schema.createTable("brand_context").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("domain","text",(x)=>x.notNull()).addColumn("overview","text",(x)=>x.notNull()).addColumn("logo","text").addColumn("favicon","text").addColumn("og_image","text").addColumn("fonts","text").addColumn("colors","text").addColumn("images","text").addColumn("metadata","text").addColumn("archived_at","timestamptz").addColumn("is_default","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Xm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Xm`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function UJ(_){await _.schema.dropTable("brand_context").execute()}var GC={};C(GC,{up:()=>JJ,down:()=>PJ});import{sql as Zm}from"kysely";async function JJ(_){await _.schema.createTable("organization_domains").addColumn("organization_id","text",(x)=>x.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(x)=>x.notNull().unique()).addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Zm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Zm`now()`)).execute()}async function PJ(_){await _.schema.dropTable("organization_domains").execute()}var OC={};C(OC,{up:()=>WJ,down:()=>jJ});import{sql as Wm}from"kysely";var v_=new Set(["primary","secondary","accent","background","foreground"]),QJ={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function XJ(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>v_.has(K))){let K={};for(let[T,m]of Object.entries(u)){if(typeof m!=="string")continue;if(v_.has(T))K[T]=m;else x[T]=m}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,T]of Object.entries(u)){if(typeof T!=="string")continue;if(v_.has(K.toLowerCase()))N[K.toLowerCase()]=T;else x[K]=T}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,T=K.label?.toLowerCase?.(),m=K.value;if(!T||!m)continue;if(v_.has(T))u[T]=m;else x[T]=m}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function ZJ(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let K=N,T=K.name??K.family??void 0,m=K.role?.toLowerCase?.()??"";if(!T)continue;let z=QJ[m];if(z&&!x[z])x[z]=T;else u.push(T)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function WJ(_){let x=await Wm`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,T=!1,m=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let J=XJ($);if(m=J.structured,N=!0,Object.keys(J.extra).length>0)E.extraColors=J.extra,T=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=ZJ($),K=!0}catch{}if(N||K||T){let $=T?JSON.stringify(E):u.metadata;await Wm`
918
925
  UPDATE brand_context
919
926
  SET
920
927
  colors = ${m},
@@ -922,29 +929,29 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
922
929
  metadata = ${$},
923
930
  updated_at = NOW()
924
931
  WHERE id = ${u.id}
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`
932
+ `.execute(_)}}}async function jJ(_){}var SC={};C(SC,{up:()=>FJ,down:()=>YJ});import{sql as LJ}from"kysely";async function FJ(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(LJ`'{}'::jsonb`)).execute()}async function YJ(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var fC={};C(fC,{up:()=>DJ,down:()=>HJ});async function DJ(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function HJ(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var AC={};C(AC,{up:()=>MJ,down:()=>RJ});async function MJ(_){await _.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(x)=>x.notNull()).addColumn("project_ref","text",(x)=>x.notNull()).addColumn("runner_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function RJ(_){await _.schema.dropTable("sandbox_runner_state").execute()}var IC={};C(IC,{up:()=>BJ,down:()=>GJ});async function BJ(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function GJ(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var yC={};C(yC,{up:()=>OJ,down:()=>SJ});async function OJ(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function SJ(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var VC={};C(VC,{up:()=>fJ,down:()=>AJ});async function fJ(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function AJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var wC={};C(wC,{up:()=>yJ,down:()=>VJ});import{sql as jm}from"kysely";var IJ=["COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","CONNECTION_TEST","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","VIRTUAL_MCP_PLUGIN_CONFIG_GET","AUTOMATION_GET","AUTOMATION_LIST","AI_PROVIDERS_LIST","AI_PROVIDERS_LIST_MODELS","AI_PROVIDERS_ACTIVE","LIST_OBJECTS","GET_OBJECT_METADATA","GET_PRESIGNED_URL","PUT_PRESIGNED_URL","VM_START","VM_DELETE"];async function yJ(_){let x=await jm`
926
933
  SELECT id, permission FROM "organizationRole"
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`
934
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...IJ]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await jm`
928
935
  UPDATE "organizationRole"
929
936
  SET permission = ${z}
930
937
  WHERE id = ${u.id}
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_`
938
+ `.execute(_)}}async function VJ(_){}var kC={};C(kC,{up:()=>wJ,down:()=>kJ});async function wJ(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").execute()}async function kJ(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var nC={};C(nC,{up:()=>nJ,down:()=>vJ});async function nJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function vJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var vC={};C(vC,{up:()=>pJ,down:()=>gJ});import{sql as Q_}from"kysely";async function pJ(_){await Q_`
932
939
  UPDATE automations
933
940
  SET virtual_mcp_id = (agent::json ->> 'id')
934
941
  WHERE virtual_mcp_id IS NULL
935
- `.execute(_),await P_`
942
+ `.execute(_),await Q_`
936
943
  ALTER TABLE automations
937
944
  ALTER COLUMN virtual_mcp_id SET NOT NULL
938
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function yJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await P_`
945
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function gJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
939
946
  UPDATE automations
940
947
  SET agent = json_build_object('id', virtual_mcp_id)::text
941
- `.execute(_),await P_`
948
+ `.execute(_),await Q_`
942
949
  ALTER TABLE automations
943
950
  ALTER COLUMN agent SET NOT NULL
944
- `.execute(_),await P_`
951
+ `.execute(_),await Q_`
945
952
  ALTER TABLE automations
946
953
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
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`
954
+ `.execute(_)}var gC={};C(gC,{up:()=>hJ,reshapeSimpleMode:()=>Lm,inferAutomationTier:()=>Fm,down:()=>tJ,__testing:()=>cJ});var qJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},iJ=["fast","smart","thinking","image","web_research"];function pC(_){if(!_||typeof _!=="object")return!1;let x=_;if(!("tiers"in x))return!1;let u=x.tiers;if(!u||typeof u!=="object")return!1;return iJ.some((N)=>(N in u))}function Lm(_){if(pC(_))return _;let x=_,u=x?.enabled===!0,N=(K)=>K&&K.keyId&&K.modelId?{keyId:K.keyId,modelId:K.modelId,title:K.title}:null;if(!u)return qJ;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function Fm(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Ym(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var cJ={isAlreadyReshapedSimpleMode:pC,isAlreadyReshapedAutomationModels:Ym};async function hJ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let K=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(pC(K))continue;let T=Lm(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(T)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(Ym(K))continue;let T=Fm(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:T})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${T}"`)}}async function tJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var qC={};C(qC,{up:()=>oJ,down:()=>aJ});import{sql as n}from"kysely";async function oJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await n`
948
955
  ALTER TABLE automations
949
956
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
950
957
  `.execute(_),await n`
@@ -966,27 +973,27 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
966
973
  AND tool_input IS NOT NULL
967
974
  )
968
975
  )
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`
976
+ `.execute(_)}async function aJ(_){await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await n`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await n`
970
977
  ALTER TABLE automations
971
978
  ALTER COLUMN virtual_mcp_id SET NOT NULL
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`
979
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var iC={};C(iC,{up:()=>lJ,down:()=>eJ});import{sql as Dm}from"kysely";var rJ=new Set(["host","docker","agent-sandbox"]);async function lJ(_){let x=await Dm`
973
980
  SELECT id, metadata FROM "connections"
974
981
  WHERE connection_type = 'VIRTUAL'
975
982
  AND metadata IS NOT NULL
976
983
  AND metadata LIKE '%vmMap%'
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`
984
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}let y=X.runnerKind;if(y!==void 0&&!rJ.has(y)){T=!0;continue}J[j]=X}if(Object.keys(J).length>0)m[E]=J;else T=!0}if(!T)continue;N.vmMap=m;let z=JSON.stringify(N);await Dm`
978
985
  UPDATE "connections"
979
986
  SET metadata = ${z}
980
987
  WHERE id = ${u.id}
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_`
988
+ `.execute(_)}}async function eJ(_){}var cC={};C(cC,{up:()=>dJ,down:()=>bJ});import{sql as X_}from"kysely";async function dJ(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(X_`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(X_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(X_`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await X_`
982
989
  CREATE INDEX async_research_jobs_active_idx
983
990
  ON async_research_jobs (status, last_polled_at)
984
991
  WHERE status IN ('pending', 'polling')
985
- `.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await Q_`
992
+ `.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await X_`
986
993
  ALTER TABLE async_research_jobs
987
994
  ADD CONSTRAINT chk_async_research_jobs_status
988
995
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
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`
996
+ `.execute(_)}async function bJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var hC={};C(hC,{up:()=>sJ,down:()=>_P});async function sJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function _P(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var tC={};C(tC,{up:()=>xP,down:()=>uP});import{sql as s}from"kysely";async function xP(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await s`
990
997
  ALTER TABLE secrets
991
998
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
992
999
  `.execute(_),await s`
@@ -1003,10 +1010,10 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1003
1010
  CREATE UNIQUE INDEX idx_secrets_org_name
1004
1011
  ON secrets (organization_id, lower(name))
1005
1012
  WHERE scope = 'organization'
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_`
1013
+ `.execute(_)}async function uP(_){await _.schema.dropTable("secrets").execute()}var oC={};C(oC,{up:()=>CP,down:()=>KP});async function CP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function KP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var aC={};C(aC,{up:()=>TP,down:()=>mP});import{sql as NP}from"kysely";async function TP(_){await NP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function mP(_){}var rC={};C(rC,{up:()=>zP,down:()=>EP});import{sql as p_}from"kysely";async function zP(_){await p_`
1007
1014
  ALTER TABLE sandbox_runner_state
1008
1015
  RENAME COLUMN runner_kind TO sandbox_provider_kind
1009
- `.execute(_),await n_`
1016
+ `.execute(_),await p_`
1010
1017
  DO $$ BEGIN
1011
1018
  UPDATE virtualmcps v
1012
1019
  SET metadata = jsonb_set(
@@ -1041,10 +1048,10 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1041
1048
  EXCEPTION WHEN undefined_table THEN
1042
1049
  NULL;
1043
1050
  END; $$
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_`
1051
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function EP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await p_`
1045
1052
  ALTER TABLE sandbox_runner_state
1046
1053
  RENAME COLUMN sandbox_provider_kind TO runner_kind
1047
- `.execute(_),await n_`
1054
+ `.execute(_),await p_`
1048
1055
  DO $$ BEGIN
1049
1056
  UPDATE virtualmcps v
1050
1057
  SET metadata = jsonb_set(
@@ -1079,7 +1086,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1079
1086
  EXCEPTION WHEN undefined_table THEN
1080
1087
  NULL;
1081
1088
  END; $$
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`
1089
+ `.execute(_)}var lC={};C(lC,{up:()=>$P,down:()=>UP});import{sql as Hm}from"kysely";async function $P(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await Hm`
1083
1090
  DO $$ BEGIN
1084
1091
  UPDATE virtualmcps v
1085
1092
  SET metadata = jsonb_set(
@@ -1118,7 +1125,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1118
1125
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
1119
1126
  NULL;
1120
1127
  END; $$
1121
- `.execute(_)}async function KP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await jm`
1128
+ `.execute(_)}async function UP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await Hm`
1122
1129
  DO $$ BEGIN
1123
1130
  UPDATE virtualmcps v
1124
1131
  SET metadata = jsonb_set(
@@ -1151,7 +1158,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1151
1158
  EXCEPTION WHEN undefined_table THEN
1152
1159
  NULL;
1153
1160
  END; $$
1154
- `.execute(_)}var aC={};C(aC,{up:()=>NP,down:()=>TP});import{sql as Lm}from"kysely";async function NP(_){await Lm`
1161
+ `.execute(_)}var eC={};C(eC,{up:()=>JP,down:()=>PP});import{sql as Mm}from"kysely";async function JP(_){await Mm`
1155
1162
  UPDATE connections c
1156
1163
  SET metadata = (
1157
1164
  jsonb_set(
@@ -1195,7 +1202,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1195
1202
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
1196
1203
  WHERE entry ? 'vmId'
1197
1204
  );
1198
- `.execute(_),await Lm`
1205
+ `.execute(_),await Mm`
1199
1206
  UPDATE connections c
1200
1207
  SET metadata = (
1201
1208
  jsonb_set(
@@ -1249,14 +1256,14 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1249
1256
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1250
1257
  WHERE inner_entry ? 'runnerKind'
1251
1258
  );
1252
- `.execute(_)}async function TP(_){}var rC={};C(rC,{up:()=>zP,down:()=>EP});import{sql as mP}from"kysely";async function zP(_){await mP`
1259
+ `.execute(_)}async function PP(_){}var dC={};C(dC,{up:()=>XP,down:()=>ZP});import{sql as QP}from"kysely";async function XP(_){await QP`
1253
1260
  DELETE FROM ai_provider_keys
1254
1261
  WHERE provider_id IN ('claude-code', 'codex')
1255
- `.execute(_)}async function EP(_){}var lC={};C(lC,{up:()=>$P,down:()=>UP});import{sql as v_}from"kysely";async function $P(_){await v_`
1262
+ `.execute(_)}async function ZP(_){}var bC={};C(bC,{up:()=>WP,down:()=>jP});import{sql as g_}from"kysely";async function WP(_){await g_`
1256
1263
  UPDATE sandbox_runner_state
1257
1264
  SET sandbox_provider_kind = 'desktop'
1258
1265
  WHERE sandbox_provider_kind = 'remote-user'
1259
- `.execute(_),await v_`
1266
+ `.execute(_),await g_`
1260
1267
  UPDATE connections c
1261
1268
  SET metadata = (
1262
1269
  jsonb_set(
@@ -1299,7 +1306,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1299
1306
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1300
1307
  WHERE kind_key = 'remote-user'
1301
1308
  );
1302
- `.execute(_),await v_`
1309
+ `.execute(_),await g_`
1303
1310
  UPDATE connections c
1304
1311
  SET metadata = (
1305
1312
  jsonb_set(
@@ -1346,17 +1353,17 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1346
1353
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1347
1354
  WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
1348
1355
  );
1349
- `.execute(_),await v_`
1356
+ `.execute(_),await g_`
1350
1357
  UPDATE threads
1351
1358
  SET sandbox_provider_kind = 'desktop'
1352
1359
  WHERE sandbox_provider_kind = 'remote-user'
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`
1360
+ `.execute(_)}async function jP(_){}var sC={};C(sC,{up:()=>LP,down:()=>FP});import{sql as Z_}from"kysely";async function LP(_){await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function FP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await Z_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var _K={};C(_K,{up:()=>YP,down:()=>DP});import{sql as Rm}from"kysely";async function YP(_){await Rm`
1354
1361
  ALTER TABLE organization_domains
1355
1362
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
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`
1363
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function DP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await Rm`
1357
1364
  ALTER TABLE organization_domains
1358
1365
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
1359
- `.execute(_)}var sC={};C(sC,{up:()=>ZP,down:()=>WP});import{sql as p_}from"kysely";async function ZP(_){await p_`
1366
+ `.execute(_)}var xK={};C(xK,{up:()=>HP,down:()=>MP});import{sql as q_}from"kysely";async function HP(_){await q_`
1360
1367
  UPDATE sandbox_runner_state
1361
1368
  SET sandbox_provider_kind = CASE sandbox_provider_kind
1362
1369
  WHEN 'docker' THEN 'local-docker'
@@ -1366,7 +1373,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1366
1373
  ELSE sandbox_provider_kind
1367
1374
  END
1368
1375
  WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
1369
- `.execute(_),await p_`
1376
+ `.execute(_),await q_`
1370
1377
  UPDATE connections c
1371
1378
  SET metadata = (
1372
1379
  (c.metadata::jsonb - 'vmMap')
@@ -1375,7 +1382,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1375
1382
  WHERE c.connection_type = 'VIRTUAL'
1376
1383
  AND c.metadata IS NOT NULL
1377
1384
  AND c.metadata::jsonb ? 'vmMap'
1378
- `.execute(_),await p_`
1385
+ `.execute(_),await q_`
1379
1386
  UPDATE connections c
1380
1387
  SET metadata = (
1381
1388
  jsonb_set(
@@ -1436,7 +1443,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1436
1443
  WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
1437
1444
  OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
1438
1445
  );
1439
- `.execute(_),await p_`
1446
+ `.execute(_),await q_`
1440
1447
  UPDATE connections c
1441
1448
  SET metadata = REPLACE(
1442
1449
  REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
@@ -1445,19 +1452,19 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1445
1452
  WHERE c.connection_type = 'VIRTUAL'
1446
1453
  AND c.metadata IS NOT NULL
1447
1454
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
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`
1455
+ `.execute(_)}async function MP(_){}var uK={};C(uK,{up:()=>BP,down:()=>GP});import{sql as Bm}from"kysely";var RP=["GLOBAL_SEARCH"];async function BP(_){let x=await Bm`
1449
1456
  SELECT id, permission FROM "organizationRole"
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`
1457
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...RP]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await Bm`
1451
1458
  UPDATE "organizationRole"
1452
1459
  SET permission = ${z}
1453
1460
  WHERE id = ${u.id}
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`
1461
+ `.execute(_)}}async function GP(_){}var KK={};C(KK,{up:()=>OP,down:()=>SP});import{sql as CK}from"kysely";async function OP(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(CK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(CK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await CK`
1455
1462
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
1456
1463
  ON org_file_configs (organization_id, lower(name))
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`
1464
+ `.execute(_)}async function SP(_){await _.schema.dropTable("org_file_configs").execute()}var NK={};C(NK,{up:()=>fP,down:()=>AP});import{sql as v}from"kysely";async function fP(_){await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await v`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await v`
1458
1465
  ALTER TABLE automations
1459
1466
  ALTER COLUMN virtual_mcp_id SET NOT NULL
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`
1467
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function AP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await v`
1461
1468
  ALTER TABLE automations
1462
1469
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
1463
1470
  `.execute(_),await v`
@@ -1479,25 +1486,25 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1479
1486
  AND tool_input IS NOT NULL
1480
1487
  )
1481
1488
  )
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`
1489
+ `.execute(_)}var TK={};C(TK,{up:()=>IP,down:()=>yP});async function IP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function yP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var zK={};C(zK,{up:()=>VP,down:()=>wP});import{sql as mK}from"kysely";var i_="local-docker";async function VP(_){await mK`delete from sandbox_runner_state where sandbox_provider_kind = ${i_}`.execute(_);let x=await mK`
1483
1490
  SELECT id, metadata FROM "connections"
1484
1491
  WHERE connection_type = 'VIRTUAL'
1485
1492
  AND metadata IS NOT NULL
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`
1493
+ AND metadata LIKE ${"%"+i_+"%"}
1494
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}if(i_ in X){T=!0;let y={...X};if(delete y[i_],Object.keys(y).length>0)J[j]=y}else J[j]=X}if(Object.keys(J).length>0)m[E]=J;else T=!0}if(!T)continue;N.sandboxMap=m;let z=JSON.stringify(N);await mK`
1488
1495
  UPDATE "connections"
1489
1496
  SET metadata = ${z}
1490
1497
  WHERE id = ${u.id}
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`
1498
+ `.execute(_)}}async function wP(_){}var EK={};C(EK,{up:()=>kP,down:()=>nP});import{sql as c_}from"kysely";async function kP(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await c_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await c_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await c_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await c_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function nP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var $K={};C($K,{up:()=>vP,down:()=>pP});async function vP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function pP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var UK={};C(UK,{up:()=>gP,down:()=>qP});async function gP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function qP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var JK={};C(JK,{up:()=>iP,down:()=>cP});async function iP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function cP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var PK={};C(PK,{up:()=>hP,down:()=>tP});async function hP(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function tP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var QK={};C(QK,{up:()=>oP,down:()=>aP});async function oP(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function aP(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var ZK={};C(ZK,{up:()=>lP,down:()=>eP});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function XK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function h_(_){if(!__(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function rP(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[T,m]of Object.entries(_)){if(!__(m)){K[T]=m;continue}let z={};for(let[E,$]of Object.entries(m)){if(!__($)){z[E]=$;continue}let J={};for(let[j,X]of Object.entries($)){if(j===x){if(N=!0,!(u in $))J[u]=XK(X,x,u);else if(!h_($[u])&&h_(X))J[u]=XK(X,x,u);continue}let y=XK(X,x,u);if(y!==X)N=!0;if(j===u&&j in J&&h_(J[j])&&!h_(y))continue;J[j]=y}z[E]=J}K[T]=z}return{sandboxMap:K,changed:N}}async function Gm(_,x,u){let N=await k`
1492
1499
  SELECT id, metadata FROM connections
1493
1500
  WHERE connection_type = 'VIRTUAL'
1494
1501
  AND metadata IS NOT NULL
1495
1502
  AND metadata LIKE ${"%"+x+"%"}
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`
1503
+ `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)}catch{continue}let m=rP(T.sandboxMap,x,u);if(!m?.changed)continue;T.sandboxMap=m.sandboxMap,await k`
1497
1504
  UPDATE connections
1498
1505
  SET metadata = ${JSON.stringify(T)}
1499
1506
  WHERE id = ${K.id}
1500
- `.execute(_)}}async function iP(_){await k`
1507
+ `.execute(_)}}async function lP(_){await k`
1501
1508
  UPDATE threads
1502
1509
  SET sandbox_provider_kind = ${A}
1503
1510
  WHERE sandbox_provider_kind = ${f}
@@ -1526,7 +1533,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1526
1533
  UPDATE sandbox_runner_state
1527
1534
  SET sandbox_provider_kind = ${A}
1528
1535
  WHERE sandbox_provider_kind = ${f}
1529
- `.execute(_),await Ym(_,f,A)}async function cP(_){await k`
1536
+ `.execute(_),await Gm(_,f,A)}async function eP(_){await k`
1530
1537
  UPDATE threads
1531
1538
  SET sandbox_provider_kind = ${f}
1532
1539
  WHERE sandbox_provider_kind = ${A}
@@ -1555,7 +1562,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1555
1562
  UPDATE sandbox_runner_state
1556
1563
  SET sandbox_provider_kind = ${f}
1557
1564
  WHERE sandbox_provider_kind = ${A}
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`
1565
+ `.execute(_),await Gm(_,A,f)}var WK={};C(WK,{up:()=>dP,down:()=>bP});import{sql as g}from"kysely";async function dP(_){await g`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(g`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(g`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await g`
1559
1566
  CREATE INDEX idx_org_fs_entry_parent
1560
1567
  ON org_fs_entry (organization_id, volume, parent)
1561
1568
  WHERE deleted_at IS NULL
@@ -1563,7 +1570,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1563
1570
  CREATE INDEX idx_org_fs_entry_usage
1564
1571
  ON org_fs_entry (organization_id, volume, size)
1565
1572
  WHERE kind = 'file' AND deleted_at IS NULL
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`
1573
+ `.execute(_)}async function bP(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var jK={};C(jK,{up:()=>sP,down:()=>_Q});async function sP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function _Q(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var LK={};C(LK,{up:()=>xQ,down:()=>uQ});import{sql as Om}from"kysely";async function xQ(_){await Om`
1567
1574
  INSERT INTO "organization" (id, name, slug, "createdAt")
1568
1575
  SELECT
1569
1576
  'org_orgfs_public_skills',
@@ -1577,13 +1584,13 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1577
1584
  END,
1578
1585
  now()
1579
1586
  ON CONFLICT (id) DO NOTHING
1580
- `.execute(_)}async function lP(_){await Hm`
1587
+ `.execute(_)}async function uQ(_){await Om`
1581
1588
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
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`
1589
+ `.execute(_)}var FK={};C(FK,{up:()=>CQ,down:()=>KQ});async function CQ(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function KQ(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var YK={};C(YK,{up:()=>NQ,down:()=>TQ});import{sql as Sm}from"kysely";async function NQ(_){await Sm`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function TQ(_){await Sm`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var DK={};C(DK,{up:()=>zQ,down:()=>EQ});import{sql as mQ}from"kysely";async function zQ(_){await mQ`
1583
1590
  UPDATE downstream_tokens
1584
1591
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1585
1592
  WHERE "expiresAt" IS NULL
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`
1593
+ `.execute(_)}async function EQ(_){}var HK={};C(HK,{up:()=>$Q,down:()=>UQ});async function $Q(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function UQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var MK={};C(MK,{up:()=>JQ,down:()=>PQ});async function JQ(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function PQ(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var RK={};C(RK,{up:()=>QQ,down:()=>XQ});async function QQ(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function XQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var BK={};C(BK,{up:()=>ZQ,down:()=>WQ});async function ZQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function WQ(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var GK={};C(GK,{up:()=>jQ,down:()=>LQ});async function jQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function LQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var OK={};C(OK,{up:()=>FQ,down:()=>YQ});import{sql as fm}from"kysely";async function FQ(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(fm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(fm`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function YQ(_){await _.schema.dropTable("org_sites").execute()}var SK={};C(SK,{up:()=>DQ,down:()=>HQ});async function DQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function HQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var fK={};C(fK,{up:()=>MQ,down:()=>RQ});import{sql as R}from"kysely";async function MQ(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await R`
1587
1594
  UPDATE organization_domains
1588
1595
  SET
1589
1596
  id = gen_random_uuid()::text,
@@ -1592,18 +1599,18 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1592
1599
  verification_method = 'email',
1593
1600
  verified_at = created_at
1594
1601
  WHERE id IS NULL
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`
1602
+ `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function RQ(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await R`
1596
1603
  UPDATE organization_domains
1597
1604
  SET auto_join_enabled = (join_mode = 'auto')
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_`
1605
+ `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var AK={};C(AK,{up:()=>BQ,down:()=>GQ});import{sql as t_}from"kysely";async function BQ(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(t_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(t_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t_`now()`)).execute(),await t_`
1599
1606
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1600
1607
  ON organization_join_requests (organization_id, user_id)
1601
1608
  WHERE status = 'pending'
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_`
1609
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function GQ(_){await _.schema.dropTable("organization_join_requests").execute()}var IK={};C(IK,{up:()=>OQ,down:()=>SQ});async function OQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function SQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var yK={};C(yK,{up:()=>fQ,down:()=>AQ});async function fQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function AQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var kK={};C(kK,{up:()=>VQ,splitWebResearchTier:()=>wK,down:()=>wQ,__testing:()=>yQ});function IQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function VK(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function wK(_){if(!_||VK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,T=null,m=null;if(u)if(IQ(u.modelId))m=u;else T=u;return{..._,tiers:{...K,web_search:T,deep_research:m}}}var yQ={splitWebResearchTier:wK,isAlreadySplit:VK};async function VQ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(VK(N))continue;let K=wK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function wQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var nK={};C(nK,{up:()=>kQ,down:()=>nQ});import{sql as W_}from"kysely";async function kQ(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await W_`
1603
1610
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1604
1611
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1605
1612
  WHERE revoked_at IS NULL
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`
1613
+ `.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function nQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var vK={};C(vK,{up:()=>vQ,down:()=>pQ});async function vQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function pQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var pK={};C(pK,{up:()=>gQ,down:()=>qQ});import{sql as t}from"kysely";async function gQ(_){await t`
1607
1614
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1608
1615
  RETURNS jsonb AS $fn$
1609
1616
  BEGIN
@@ -1662,7 +1669,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1662
1669
  BEFORE INSERT ON connection_aggregations
1663
1670
  FOR EACH ROW
1664
1671
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
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`
1672
+ `.execute(_)}async function qQ(_){await t`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await t`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await t`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var qK={};C(qK,{up:()=>iQ,down:()=>cQ});import{sql as gK}from"kysely";async function iQ(_){await _.schema.createTable("task_board_items").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("status","text",(x)=>x.notNull().defaultTo("triage")).addColumn("priority","text",(x)=>x.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(gK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(gK`now()`)).execute(),await _.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(gK`false`)).execute()}async function cQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var iK={};C(iK,{up:()=>hQ,down:()=>tQ});async function hQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function tQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var cK={};C(cK,{up:()=>oQ,down:()=>aQ});async function oQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function aQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var hK={};C(hK,{up:()=>rQ,down:()=>lQ});async function rQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function lQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var tK={};C(tK,{up:()=>dQ,down:()=>bQ});import{sql as eQ}from"kysely";async function dQ(_){await _.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(eQ`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await _.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await _.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function bQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var oK={};C(oK,{up:()=>sQ,down:()=>_X});async function sQ(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(x)=>x.onDelete("cascade")).execute()}async function _X(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var aK={};C(aK,{up:()=>uX,down:()=>CX});import{sql as xX}from"kysely";async function uX(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(xX`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await _.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function CX(_){await _.schema.dropTable("task_board_item_prs").execute()}var rK={};C(rK,{up:()=>NX,down:()=>TX});import{sql as KX}from"kysely";async function NX(_){await KX`
1666
1673
  DELETE FROM member
1667
1674
  WHERE id IN (
1668
1675
  SELECT id FROM (
@@ -1681,38 +1688,38 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1681
1688
  ) ranked
1682
1689
  WHERE ranked.rn > 1
1683
1690
  )
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_`
1691
+ `.execute(_)}async function TX(_){}var lK={};C(lK,{up:()=>mX,down:()=>zX});async function mX(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function zX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var eK={};C(eK,{up:()=>EX,down:()=>$X});async function EX(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function $X(_){await _.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var dK={};C(dK,{up:()=>JX,down:()=>PX});import{sql as UX}from"kysely";async function JX(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(UX`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await _.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await _.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function PX(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var bK={};C(bK,{up:()=>XX,down:()=>ZX});import{sql as QX}from"kysely";async function XX(_){await _.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(x)=>x.notNull()).addColumn("sandbox_provider_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(QX`now()`)).addPrimaryKeyConstraint("agent_sandbox_runner_state_pkey",["project_ref","sandbox_provider_kind"]).execute(),await _.schema.createIndex("agent_sandbox_runner_state_handle_idx").on("agent_sandbox_runner_state").column("handle").execute()}async function ZX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var sK={};C(sK,{up:()=>WX,down:()=>jX});import{sql as o_}from"kysely";async function WX(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",o_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",o_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function jX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var _N={};C(_N,{up:()=>LX,down:()=>FX});import{sql as a_}from"kysely";async function LX(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await a_`
1685
1692
  insert into organization_billing (organization_id, legacy)
1686
1693
  select id, true from organization
1687
1694
  on conflict (organization_id) do nothing
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`
1695
+ `.execute(_)}async function FX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var xN={};C(xN,{up:()=>YX,down:()=>DX});import{sql as Am}from"kysely";async function YX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Am`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Am`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function DX(_){await _.schema.dropTable("seat_change_log").execute()}var uN={};C(uN,{up:()=>HX,down:()=>MX});async function HX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function MX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var CN={};C(CN,{up:()=>RX,down:()=>BX});import{sql as Im}from"kysely";async function RX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await Im`
1689
1696
  create unique index organization_billing_stripe_subscription_id_uq
1690
1697
  on organization_billing (stripe_subscription_id)
1691
1698
  where stripe_subscription_id is not null
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`
1699
+ `.execute(_)}async function BX(_){await Im`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var KN={};C(KN,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function OX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var NN={};C(NN,{up:()=>SX,down:()=>fX});import{sql as ym}from"kysely";async function SX(_){await ym`
1693
1700
  create index idx_org_billing_benefits_pending
1694
1701
  on organization_billing (updated_at)
1695
1702
  where benefits_reference_id is not null
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`
1703
+ `.execute(_)}async function fX(_){await ym`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var TN={};C(TN,{up:()=>AX,down:()=>IX});import{sql as Vm}from"kysely";async function AX(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Vm`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Vm`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function IX(_){await _.schema.dropTable("user_model_preferences").execute()}var mN={};C(mN,{up:()=>yX,down:()=>VX});async function yX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function VX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var zN={};C(zN,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function kX(_){}var EN={};C(EN,{up:()=>nX,down:()=>vX});import{sql as wm}from"kysely";async function nX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await wm`
1697
1704
  UPDATE organization_settings
1698
1705
  SET flags = jsonb_build_object('reports_only', reports_only)
1699
1706
  WHERE reports_only IS NOT NULL
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`
1707
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function vX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await wm`
1701
1708
  UPDATE organization_settings
1702
1709
  SET reports_only = (flags ->> 'reports_only')::boolean
1703
1710
  WHERE flags ? 'reports_only'
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`
1711
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var $N={};C($N,{up:()=>gX,down:()=>qX});import{sql as pX}from"kysely";async function gX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await pX`
1705
1712
  update task_board_items
1706
1713
  set sort_order = -extract(epoch from created_at)
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`
1714
+ `.execute(_)}async function qX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var UN={};C(UN,{up:()=>iX,down:()=>cX,ACTIONS:()=>km});import{sql as r_}from"kysely";var km=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function iX(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addCheckConstraint("chk_task_board_activity_action",r_`action IN (${r_.join(km.map((x)=>r_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function cX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var PN={};C(PN,{up:()=>hX,down:()=>tX,ACTIONS:()=>JN});import{sql as j_}from"kysely";var JN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function hX(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await nm(_,JN)}async function tX(_){await nm(_,JN.filter((x)=>x!=="tags_changed")),await _.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await _.schema.dropTable("task_board_item_tags").execute(),await _.schema.alterTable("organization_tags").dropColumn("color").execute()}async function nm(_,x){await j_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await j_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${j_.join(x.map((u)=>j_.lit(u)))}))`.execute(_)}var XN={};C(XN,{up:()=>aX,down:()=>rX});import{sql as vm}from"kysely";function QN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function oX(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return QN(N)}catch{return QN(_.connection_url)}if(_.title)return QN(_.title);return _.id}async function aX(_){let x=await vm`
1708
1715
  SELECT id, app_name, connection_url, title, slug
1709
1716
  FROM connections
1710
1717
  WHERE connection_type != 'VIRTUAL'
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_`
1718
+ `.execute(_),u=0;for(let N of x.rows){let K=oX(N);if(K===N.slug)continue;await vm`UPDATE connections SET slug = ${K} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function rX(){}var ZN={};C(ZN,{up:()=>eX,down:()=>dX});import{sql as lX}from"kysely";async function eX(_){await lX`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(_)}async function dX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var jN={};C(jN,{up:()=>sX,down:()=>_Z,ACTIONS:()=>WN});import{sql as l_}from"kysely";var WN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],bX=new Set(["review_requested","review_approved","review_changes_requested"]);async function sX(_){await pm(_,WN)}async function _Z(_){await pm(_,WN.filter((x)=>!bX.has(x)))}async function pm(_,x){await l_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await l_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${l_.join(x.map((u)=>l_.lit(u)))}))`.execute(_)}var LN={};C(LN,{up:()=>uZ,down:()=>CZ});import{sql as xZ}from"kysely";async function uZ(_){await _.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(x)=>x.notNull()).addColumn("cycle_at","timestamptz",(x)=>x.notNull()).addColumn("token","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(xZ`now()`)).addPrimaryKeyConstraint("task_board_review_claims_pkey",["task_board_item_id","reviewer","cycle_at"]).execute(),await _.schema.createIndex("idx_task_board_review_claims_token").on("task_board_review_claims").columns(["task_board_item_id","token"]).execute()}async function CZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var YN={};C(YN,{up:()=>NZ,down:()=>TZ,ACTIONS:()=>FN});import{sql as e_}from"kysely";var FN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],KZ=new Set(["merge_conflict_resolution"]);async function NZ(_){await gm(_,FN)}async function TZ(_){await gm(_,FN.filter((x)=>!KZ.has(x)))}async function gm(_,x){await e_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await e_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${e_.join(x.map((u)=>e_.lit(u)))}))`.execute(_)}var DN={};C(DN,{up:()=>mZ,down:()=>zZ});import{sql as L_}from"kysely";async function mZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await L_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function zZ(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await L_`
1712
1719
  create index idx_org_billing_benefits_pending
1713
1720
  on organization_billing (updated_at)
1714
1721
  where benefits_reference_id is not null
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_`
1722
+ `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(L_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).execute()}var HN={};C(HN,{up:()=>EZ,down:()=>$Z});import{sql as d_}from"kysely";async function EZ(_){await d_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await d_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function $Z(_){await d_`
1716
1723
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1717
1724
  RETURNS trigger AS $fn$
1718
1725
  BEGIN
@@ -1733,40 +1740,40 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1733
1740
  RETURN NEW;
1734
1741
  END;
1735
1742
  $fn$ LANGUAGE plpgsql;
1736
- `.execute(_),await l_`
1743
+ `.execute(_),await d_`
1737
1744
  CREATE TRIGGER trg_repo_github_child_single_parent
1738
1745
  BEFORE INSERT ON connection_aggregations
1739
1746
  FOR EACH ROW
1740
1747
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
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`
1748
+ `.execute(_)}var MN={};C(MN,{up:()=>UZ,down:()=>JZ});import{sql as qm}from"kysely";async function UZ(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(qm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qm`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function JZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var RN={};C(RN,{up:()=>PZ,down:()=>QZ});import{sql as im}from"kysely";async function PZ(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(im`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(im`now()`)).execute()}async function QZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var GN={};C(GN,{up:()=>XZ,down:()=>ZZ});import{sql as BN}from"kysely";async function XZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(BN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await BN`
1742
1749
  create index idx_task_quota_claims_org_period_live
1743
1750
  on task_quota_claims (organization_id, period_key)
1744
1751
  where state <> 'released'
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`
1752
+ `.execute(_)}async function ZZ(_){await BN`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var ON={};C(ON,{up:()=>WZ,down:()=>jZ});async function WZ(_){await _.schema.createTable("claude_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function jZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var SN={};C(SN,{up:()=>LZ,down:()=>FZ});async function LZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function FZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var fN={};C(fN,{up:()=>YZ,down:()=>DZ});import{sql as cm}from"kysely";async function YZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(cm`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(cm`monthly_task_executions > 0`)).execute()}async function DZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var AN={};C(AN,{up:()=>MZ,down:()=>RZ});import{sql as HZ}from"kysely";async function MZ(_){await HZ`
1746
1753
  CREATE INDEX idx_task_board_items_pending_review
1747
1754
  ON task_board_items (updated_at, id)
1748
1755
  WHERE status = 'in_review'
1749
1756
  AND assignee_id = 'super-agent'
1750
1757
  AND dismissed_at IS NULL
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`
1758
+ `.execute(_)}async function RZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var IN={};C(IN,{up:()=>BZ,down:()=>GZ});import{sql as hm}from"kysely";async function BZ(_){await hm`
1752
1759
  ALTER TABLE task_board_items
1753
1760
  ADD COLUMN last_swept_at timestamptz
1754
- `.execute(_)}async function FZ(_){await pm`
1761
+ `.execute(_)}async function GZ(_){await hm`
1755
1762
  ALTER TABLE task_board_items
1756
1763
  DROP COLUMN last_swept_at
1757
- `.execute(_)}var fN={};C(fN,{up:()=>DZ,down:()=>YZ});import{sql as e_}from"kysely";async function DZ(_){await e_`
1764
+ `.execute(_)}var yN={};C(yN,{up:()=>OZ,down:()=>SZ});import{sql as b_}from"kysely";async function OZ(_){await b_`
1758
1765
  ALTER TABLE task_board_items
1759
1766
  ADD COLUMN retry_at timestamptz,
1760
1767
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
1761
- `.execute(_),await e_`
1768
+ `.execute(_),await b_`
1762
1769
  CREATE INDEX idx_task_board_items_retry_due
1763
1770
  ON task_board_items (retry_at)
1764
1771
  WHERE retry_at IS NOT NULL
1765
- `.execute(_)}async function YZ(_){await e_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await e_`
1772
+ `.execute(_)}async function SZ(_){await b_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await b_`
1766
1773
  ALTER TABLE task_board_items
1767
1774
  DROP COLUMN retry_at,
1768
1775
  DROP COLUMN retry_attempts
1769
- `.execute(_)}var IN={};C(IN,{up:()=>HZ,down:()=>MZ});import{sql as AN}from"kysely";async function HZ(_){await AN`
1776
+ `.execute(_)}var wN={};C(wN,{up:()=>fZ,down:()=>AZ});import{sql as VN}from"kysely";async function fZ(_){await VN`
1770
1777
  CREATE TABLE org_repo_sync (
1771
1778
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1772
1779
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1784,11 +1791,11 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1784
1791
  updated_at timestamptz NOT NULL DEFAULT now(),
1785
1792
  UNIQUE (organization_id, volume)
1786
1793
  )
1787
- `.execute(_),await AN`
1794
+ `.execute(_),await VN`
1788
1795
  CREATE INDEX idx_org_repo_sync_enabled
1789
1796
  ON org_repo_sync (organization_id)
1790
1797
  WHERE enabled
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 __`
1798
+ `.execute(_)}async function AZ(_){await VN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var nN={};C(nN,{up:()=>yZ,down:()=>VZ,ACTIONS:()=>kN});import{sql as s_}from"kysely";var kN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],IZ=new Set(["merge_failed"]);async function yZ(_){await tm(_,kN)}async function VZ(_){await tm(_,kN.filter((x)=>!IZ.has(x)))}async function tm(_,x){await s_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await s_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${s_.join(x.map((u)=>s_.lit(u)))}))`.execute(_)}var vN={};C(vN,{up:()=>wZ,down:()=>kZ});async function wZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function kZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var pN={};C(pN,{up:()=>nZ,down:()=>vZ});import{sql as x_}from"kysely";async function nZ(_){await x_`
1792
1799
  CREATE TABLE org_jira_integrations (
1793
1800
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1794
1801
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1808,7 +1815,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1808
1815
  created_at timestamptz NOT NULL DEFAULT now(),
1809
1816
  updated_at timestamptz NOT NULL DEFAULT now()
1810
1817
  )
1811
- `.execute(_),await __`
1818
+ `.execute(_),await x_`
1812
1819
  CREATE TABLE task_board_item_jira_links (
1813
1820
  item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
1814
1821
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1819,7 +1826,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1819
1826
  created_at timestamptz NOT NULL DEFAULT now(),
1820
1827
  UNIQUE (organization_id, jira_issue_id)
1821
1828
  )
1822
- `.execute(_),await __`
1829
+ `.execute(_),await x_`
1823
1830
  CREATE TABLE task_board_comment_jira_links (
1824
1831
  comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
1825
1832
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1827,7 +1834,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1827
1834
  created_at timestamptz NOT NULL DEFAULT now(),
1828
1835
  UNIQUE (organization_id, jira_comment_id)
1829
1836
  )
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`
1837
+ `.execute(_)}async function vZ(_){await x_`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var gN={};C(gN,{up:()=>gZ,down:()=>qZ});import{sql as pZ}from"kysely";async function gZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await pZ`
1831
1838
  update task_board_items as t
1832
1839
  set key_seq = numbered.seq
1833
1840
  from (
@@ -1840,25 +1847,25 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1840
1847
  from task_board_items
1841
1848
  ) as numbered
1842
1849
  where t.id = numbered.id
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`
1850
+ `.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function qZ(_){await _.schema.dropIndex("task_board_items_org_key_seq_unique").on("task_board_items").execute(),await _.schema.alterTable("task_board_items").dropColumn("key_seq").execute()}var qN={};C(qN,{up:()=>iZ,down:()=>cZ});import{sql as om}from"kysely";async function iZ(_){await om`
1844
1851
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1845
1852
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1846
1853
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
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`
1854
+ `.execute(_)}async function cZ(_){await om`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var cN={};C(cN,{up:()=>hZ,down:()=>tZ});import{sql as iN}from"kysely";async function hZ(_){await iN`
1848
1855
  ALTER TABLE thread_message_parts
1849
1856
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1850
- `.execute(_),await pN`
1857
+ `.execute(_),await iN`
1851
1858
  ALTER TABLE thread_message_parts
1852
1859
  ALTER COLUMN persisted_at SET DEFAULT now()
1853
- `.execute(_)}async function vZ(_){await pN`
1860
+ `.execute(_)}async function tZ(_){await iN`
1854
1861
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
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`
1862
+ `.execute(_)}var hN={};C(hN,{up:()=>oZ,down:()=>aZ});async function oZ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function aZ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var tN={};C(tN,{up:()=>lZ,down:()=>eZ});import{sql as rZ}from"kysely";async function lZ(_){await rZ`
1856
1863
  CREATE INDEX idx_task_board_items_done_sweep
1857
1864
  ON task_board_items (updated_at)
1858
1865
  WHERE status = 'done' AND dismissed_at IS NULL
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
1866
+ `.execute(_)}async function eZ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var oN={};C(oN,{up:()=>dZ,down:()=>bZ,TYPES:()=>am});import{sql as q}from"kysely";var am=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function dZ(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addCheckConstraint("notifications_type_check",q`type IN (${q.join(am.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1860
1867
  (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
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`
1868
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function bZ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var aN={};C(aN,{up:()=>sZ,down:()=>_6});import{sql as rm}from"kysely";async function sZ(_){await rm`
1862
1869
  UPDATE org_jira_integrations
1863
1870
  SET status_mapping = (
1864
1871
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1873,7 +1880,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1873
1880
  SELECT 1 FROM jsonb_each(status_mapping)
1874
1881
  WHERE jsonb_typeof(value) = 'array'
1875
1882
  )
1876
- `.execute(_)}async function aZ(_){await cm`
1883
+ `.execute(_)}async function _6(_){await rm`
1877
1884
  UPDATE org_jira_integrations
1878
1885
  SET status_mapping = (
1879
1886
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1888,7 +1895,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1888
1895
  SELECT 1 FROM jsonb_each(status_mapping)
1889
1896
  WHERE jsonb_typeof(value) = 'array'
1890
1897
  )
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_`
1898
+ `.execute(_)}var lN={};C(lN,{up:()=>u6,down:()=>C6,TYPES:()=>rN});import{sql as _x}from"kysely";var rN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],x6=new Set(["mentioned"]);async function u6(_){await lm(_,rN)}async function C6(_){await lm(_,rN.filter((x)=>!x6.has(x)))}async function lm(_,x){await _x`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await _x`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${_x.join(x.map((u)=>_x.lit(u)))}))`.execute(_)}var dN={};C(dN,{up:()=>T6,down:()=>m6,ACTIONS:()=>eN});import{sql as i}from"kysely";var K6=["bug","feature","chore","spike","security"],eN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed","type_changed"],N6=new Set(["type_changed"]);async function T6(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await i`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${i.join(K6.map((x)=>i.lit(x)))}))`.execute(_),await em(_,eN)}async function m6(_){await em(_,eN.filter((x)=>!N6.has(x))),await i`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function em(_,x){await i`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await i`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${i.join(x.map((u)=>i.lit(u)))}))`.execute(_)}var bN={};C(bN,{up:()=>z6,down:()=>E6});import{sql as W}from"kysely";var bm=["bug","feature","chore","spike","security"],dm="chore";async function z6(_){await W`UPDATE task_board_items SET type = ${W.lit(dm)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(dm)}`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${W.join(bm.map((x)=>W.lit(x)))}))`.execute(_)}async function E6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(bm.map((x)=>W.lit(x)))}))`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var sN={};C(sN,{up:()=>$6,down:()=>U6});import{sql as u_}from"kysely";async function $6(_){await u_`
1892
1899
  CREATE TABLE task_board_sprints (
1893
1900
  id text PRIMARY KEY,
1894
1901
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1903,44 +1910,44 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1903
1910
  CHECK (state IN ('active', 'future', 'closed')),
1904
1911
  UNIQUE (organization_id, jira_sprint_id)
1905
1912
  )
1906
- `.execute(_),await x_`
1913
+ `.execute(_),await u_`
1907
1914
  CREATE INDEX idx_task_board_sprints_org
1908
1915
  ON task_board_sprints (organization_id, starts_at)
1909
- `.execute(_),await x_`
1916
+ `.execute(_),await u_`
1910
1917
  ALTER TABLE task_board_items
1911
1918
  ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
1912
- `.execute(_),await x_`
1919
+ `.execute(_),await u_`
1913
1920
  CREATE INDEX idx_task_board_items_sprint
1914
1921
  ON task_board_items (organization_id, sprint_id)
1915
1922
  WHERE sprint_id IS NOT NULL
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`
1923
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function U6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await u_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await u_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var _T={};C(_T,{up:()=>P6,down:()=>Q6});import{sql as J6}from"kysely";async function P6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function Q6(_){await J6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var xT={};C(xT,{up:()=>Z6,down:()=>W6});import{sql as X6}from"kysely";async function Z6(_){await X6`
1917
1924
  UPDATE org_jira_integrations
1918
1925
  SET last_synced_at = NULL,
1919
1926
  last_sync_error = NULL
1920
1927
  WHERE last_synced_at IS NOT NULL
1921
- `.execute(_)}async function $6(){}var bN={};C(bN,{up:()=>J6,down:()=>P6});import{sql as U6}from"kysely";async function J6(_){await U6`
1928
+ `.execute(_)}async function W6(){}var uT={};C(uT,{up:()=>L6,down:()=>F6});import{sql as j6}from"kysely";async function L6(_){await j6`
1922
1929
  UPDATE org_jira_integrations
1923
1930
  SET last_synced_at = NULL,
1924
1931
  last_sync_error = NULL
1925
1932
  WHERE last_synced_at IS NOT NULL
1926
- `.execute(_)}async function P6(){}var xT={};C(xT,{up:()=>Q6,down:()=>X6});import{sql as _T}from"kysely";async function Q6(_){await _T`
1933
+ `.execute(_)}async function F6(){}var KT={};C(KT,{up:()=>Y6,down:()=>D6});import{sql as CT}from"kysely";async function Y6(_){await CT`
1927
1934
  ALTER TABLE org_jira_integrations
1928
1935
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1929
- `.execute(_),await _T`
1936
+ `.execute(_),await CT`
1930
1937
  UPDATE org_jira_integrations
1931
1938
  SET rescan_pending = true
1932
1939
  WHERE last_synced_at IS NULL
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`
1940
+ `.execute(_)}async function D6(_){await CT`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var NT={};C(NT,{up:()=>H6,down:()=>M6});async function H6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function M6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var TT={};C(TT,{up:()=>R6,down:()=>B6});import{sql as sm}from"kysely";async function R6(_){await sm`
1934
1941
  ALTER TABLE invitation
1935
1942
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
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`
1943
+ `.execute(_)}async function B6(_){await sm`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var zT={};C(zT,{up:()=>G6,down:()=>O6});import{sql as mT}from"kysely";async function G6(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(mT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(mT`now()`)).execute(),await _.schema.createIndex("task_board_column_automations_org_column_uniq").ifNotExists().on("task_board_column_automations").columns(["organization_id","column_key"]).unique().execute(),await mT`
1937
1944
  INSERT INTO task_board_column_automations
1938
1945
  (id, organization_id, column_key, prompt)
1939
1946
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1940
1947
  FROM org_jira_integrations
1941
1948
  WHERE auto_delegate = true
1942
1949
  ON CONFLICT DO NOTHING
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_`
1950
+ `.execute(_)}async function O6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var ET={};C(ET,{up:()=>S6,down:()=>f6});import{sql as F_}from"kysely";async function S6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await F_`
1944
1951
  UPDATE task_board_items i
1945
1952
  SET review_cycle_started_at = (
1946
1953
  SELECT max(a.occurred_at)
@@ -1950,35 +1957,35 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1950
1957
  AND a.data ->> 'to' = 'in_review'
1951
1958
  )
1952
1959
  WHERE i.status = 'in_review'
1953
- `.execute(_),await L_`
1960
+ `.execute(_),await F_`
1954
1961
  CREATE INDEX idx_task_board_items_review_cycle
1955
1962
  ON task_board_items (updated_at, id)
1956
1963
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1957
1964
  AND assignee_id = 'super-agent'
1958
1965
  AND dismissed_at IS NULL
1959
- `.execute(_),await L_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function H6(_){await L_`
1966
+ `.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function f6(_){await F_`
1960
1967
  CREATE INDEX idx_task_board_items_pending_review
1961
1968
  ON task_board_items (updated_at, id)
1962
1969
  WHERE status = 'in_review'
1963
1970
  AND assignee_id = 'super-agent'
1964
1971
  AND dismissed_at IS NULL
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`
1972
+ `.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var $T={};C($T,{up:()=>A6,down:()=>I6});import{sql as _z}from"kysely";async function A6(_){await _.schema.createTable("task_board_columns").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("title","text",(x)=>x.notNull()).addColumn("position","integer",(x)=>x.notNull()).addColumn("role","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(_z`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(_z`now()`)).execute(),await _.schema.createIndex("task_board_columns_org_key_uniq").ifNotExists().on("task_board_columns").columns(["organization_id","key"]).unique().execute(),await _.schema.createIndex("task_board_columns_org_position_idx").ifNotExists().on("task_board_columns").columns(["organization_id","position"]).execute()}async function I6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var JT={};C(JT,{up:()=>V6,down:()=>w6,ACTIONS:()=>UT});import{sql as xx}from"kysely";var UT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],y6=new Set(["review_verdict_requested"]);async function V6(_){await xz(_,UT)}async function w6(_){await xz(_,UT.filter((x)=>!y6.has(x)))}async function xz(_,x){await xx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await xx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var PT={};C(PT,{up:()=>k6,down:()=>n6});import{sql as ux}from"kysely";async function k6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await ux`
1966
1973
  ALTER TABLE task_board_items
1967
1974
  ADD CONSTRAINT chk_task_board_items_column_org
1968
1975
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
1969
- `.execute(_),await _x`
1976
+ `.execute(_),await ux`
1970
1977
  ALTER TABLE task_board_items
1971
1978
  ADD CONSTRAINT task_board_items_board_column_fkey
1972
1979
  FOREIGN KEY (board_column_org, status)
1973
1980
  REFERENCES task_board_columns (organization_id, key)
1974
1981
  ON DELETE RESTRICT
1975
- `.execute(_)}async function f6(_){await _x`
1982
+ `.execute(_)}async function n6(_){await ux`
1976
1983
  ALTER TABLE task_board_items
1977
1984
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1978
- `.execute(_),await _x`
1985
+ `.execute(_),await ux`
1979
1986
  ALTER TABLE task_board_items
1980
1987
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
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`
1988
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var QT={};C(QT,{up:()=>v6,down:()=>p6});async function v6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function p6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var ZT={};C(ZT,{up:()=>q6,down:()=>i6,ACTIONS:()=>XT});import{sql as Cx}from"kysely";var XT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],g6=new Set(["sprint_changed"]);async function q6(_){await uz(_,XT)}async function i6(_){await uz(_,XT.filter((x)=>!g6.has(x)))}async function uz(_,x){await Cx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Cx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Cx.join(x.map((u)=>Cx.lit(u)))}))`.execute(_)}var WT={};C(WT,{up:()=>h6,down:()=>t6});import{sql as c6}from"kysely";async function h6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(c6`'[]'::jsonb`)).execute()}async function t6(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var jT={};C(jT,{up:()=>o6,down:()=>a6});import{sql as Cz}from"kysely";async function o6(_){await _.schema.createTable("task_board_prompts").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text").addColumn("prompt","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Cz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Cz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function a6(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var LT={};C(LT,{up:()=>l6,down:()=>e6});import{sql as r6}from"kysely";async function l6(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await r6`
1982
1989
  UPDATE task_board_items i
1983
1990
  SET external_url = t.url,
1984
1991
  description = CASE
@@ -1997,11 +2004,11 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
1997
2004
  ON g.organization_id = l.organization_id
1998
2005
  ) t
1999
2006
  WHERE t.item_id = i.id
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`
2007
+ `.execute(_)}async function e6(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var FT={};C(FT,{up:()=>b6,down:()=>s6,ACTIONS:()=>Kz});import{sql as Q}from"kysely";var d6=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Kz=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"];async function b6(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await Q`DROP TABLE IF EXISTS task_board_columns`.execute(_),await Q`
2001
2008
  UPDATE task_board_items
2002
2009
  SET status = 'triage'
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`
2010
+ WHERE status NOT IN (${Q.join(d6.map((x)=>Q.lit(x)))})
2011
+ `.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await _W(_,Kz),await Q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await Q`
2005
2012
  ALTER TABLE task_board_item_jira_links
2006
2013
  DROP COLUMN IF EXISTS jira_updated_at,
2007
2014
  DROP COLUMN IF EXISTS jira_status,
@@ -2013,11 +2020,11 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
2013
2020
  DROP COLUMN IF EXISTS last_synced_at,
2014
2021
  DROP COLUMN IF EXISTS last_sync_error,
2015
2022
  DROP COLUMN IF EXISTS rescan_pending
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_`
2023
+ `.execute(_)}async function s6(){}async function _W(_,x){await Q`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Q`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Q.join(x.map((u)=>Q.lit(u)))}))`.execute(_)}var YT={};C(YT,{up:()=>xW,down:()=>uW});import{sql as C_}from"kysely";async function xW(_){await C_`
2017
2024
  ALTER TABLE task_board_items
2018
2025
  ADD COLUMN IF NOT EXISTS source text
2019
2026
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
2020
- `.execute(_),await u_`
2027
+ `.execute(_),await C_`
2021
2028
  CREATE TABLE IF NOT EXISTS org_jira_column_automations (
2022
2029
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
2023
2030
  jira_status text NOT NULL,
@@ -2026,7 +2033,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
2026
2033
  updated_at timestamptz NOT NULL DEFAULT now(),
2027
2034
  PRIMARY KEY (organization_id, jira_status)
2028
2035
  )
2029
- `.execute(_),await u_`
2036
+ `.execute(_),await C_`
2030
2037
  CREATE TABLE IF NOT EXISTS jira_trigger_claims (
2031
2038
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
2032
2039
  jira_issue_id text NOT NULL,
@@ -2034,24 +2041,24 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
2034
2041
  created_at timestamptz NOT NULL DEFAULT now(),
2035
2042
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
2036
2043
  )
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_`
2044
+ `.execute(_)}async function uW(_){await C_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await C_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await C_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var DT={};C(DT,{up:()=>CW,down:()=>KW});import{sql as Y_}from"kysely";async function CW(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(Y_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).execute(),await Y_`
2038
2045
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
2039
2046
  ON organization_notices (organization_id)
2040
2047
  WHERE resolved_at IS NULL
2041
- `.execute(_),await F_`
2048
+ `.execute(_),await Y_`
2042
2049
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
2043
2050
  ON organization_notices (organization_id, created_at DESC)
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`
2051
+ `.execute(_)}async function KW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var MT={};C(MT,{up:()=>QW,down:()=>XW});import{sql as HT}from"kysely";import{sql as aj}from"kysely";var Nz=50000000,NW=1e5;function TW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>NW)return 1/0;let T=K.pop();if(typeof T==="string")u+=T.length;else if(Array.isArray(T))for(let m of T)K.push(m);else if(T!==null&&typeof T==="object")for(let m of Object.values(T))K.push(m)}return u}var mW=/\u0000/g,zW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,EW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,$W=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,UW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function JW(_){return _.replace(mW,"").replace(zW,"\uFFFD").replace(EW,"$1***@").replace($W,"$1***").replace(UW,"[base64 data omitted]")}function PW(_){if(typeof _!=="object"||_===null)return!1;let x=_;if(x.type!=="image")return!1;if(typeof x.data==="string")return!0;let u=x.source;return typeof u==="object"&&u!==null&&typeof u.data==="string"}function Tz(_){if(TW(_,Nz)>Nz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return JW(u);if(PW(u))return{type:"text",text:"[image omitted]"};return u})}var mz=20;async function QW(_){let x=await HT`
2045
2052
  SELECT id FROM thread_message_parts
2046
2053
  WHERE pg_column_size(payload) > 8192
2047
2054
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
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`
2055
+ `.execute(_);for(let u=0;u<x.rows.length;u+=mz){let N=x.rows.slice(u,u+mz).map((T)=>T.id),K=await HT`
2049
2056
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
2050
- `.execute(_);for(let T of K.rows){let m=xz(T.payload);if(m===JSON.stringify(T.payload))continue;await FT`
2057
+ `.execute(_);for(let T of K.rows){let m=Tz(T.payload);if(m===JSON.stringify(T.payload))continue;await HT`
2051
2058
  UPDATE thread_message_parts
2052
2059
  SET payload = ${m}::jsonb
2053
2060
  WHERE id = ${T.id}
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`
2061
+ `.execute(_)}}}async function XW(){}var RT={};C(RT,{up:()=>ZW,down:()=>WW});async function ZW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function WW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var BT={};C(BT,{up:()=>jW,down:()=>LW});import{sql as U}from"kysely";async function jW(_){await U`
2055
2062
  CREATE TABLE git_provider_accounts (
2056
2063
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
2057
2064
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -2295,11 +2302,11 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
2295
2302
  AND r.organization_id = s.organization_id
2296
2303
  AND r.host = 'github.com'
2297
2304
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
2298
- `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function JW(_){await U`
2305
+ `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function LW(_){await U`
2299
2306
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
2300
2307
  `.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
2301
2308
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
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`
2309
+ `.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var GT={};C(GT,{up:()=>YW,down:()=>DW});import{sql as I}from"kysely";var FW=I`
2303
2310
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
2304
2311
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
2305
2312
  BEGIN
@@ -2308,7 +2315,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
2308
2315
  RETURN NULL;
2309
2316
  END;
2310
2317
  $$
2311
- `;async function QW(_){await PW.execute(_),await I`
2318
+ `;async function YW(_){await FW.execute(_),await I`
2312
2319
  ALTER TABLE connections
2313
2320
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2314
2321
  `.execute(_),await I`
@@ -2370,21 +2377,21 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
2370
2377
  AND r.host = 'github.com'
2371
2378
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
2372
2379
  ON CONFLICT (thread_id, repository_id) DO NOTHING
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`
2380
+ `.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function DW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
2374
2381
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
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(`
2382
+ `.execute(_)}var HW={"001-initial-schema":Uu,"002-organization-settings":Ju,"003-connection-schema-align":Pu,"004-remove-models-binding":Qu,"005-connection-configuration":Xu,"006-add-views-to-settings":Zu,"007-monitoring-logs":Wu,"008-event-bus":ju,"009-drop-audit-logs":Lu,"010-gateways":Fu,"011-gateway-icon":Yu,"012-gateway-tool-selection-mode":Du,"013-monitoring-user-agent-gateway":Hu,"014-gateway-resources-prompts":Mu,"015-monitoring-properties":Ru,"016-downstream-token-client-info":Bu,"017-downstream-token-remove-userid":Gu,"018-drop-gateway-tool-selection-strategy":Ou,"019-remove-gateway-is-default":Su,"020-enabled-plugins":fu,"021-threads":Au,"022-rename-gateway-to-virtual-mcp":Iu,"023-optimize-thread-indexes":yu,"024-consolidate-virtual-mcp":Vu,"025-add-monitoring-virtual-mcp-id":wu,"026-restrict-child-connection-delete":ku,"027-update-management-mcp-url":vu,"028-update-management-mcp-to-self":gu,"029-add-updated-by-to-connections":qu,"030-member-tags":iu,"031-add-dependency-mode":cu,"032-projects":hu,"033-thread-status":tu,"034-monitoring-dashboards":ou,"035-project-connections":au,"036-update-registry-url":ru,"037-ai-provider-keys":lu,"038-oauth-pkce-states":eu,"039-automations":du,"040-replace-next-run-at-with-last-run-at":bu,"041-ai-provider-keys-unique-constraint":su,"042-rename-mesh-mcp-to-cms-mcp":_C,"043-rename-cms-mcp-to-deco-cms":xC,"044-drop-connections-tools-column":uC,"045-thread-context-start-message":CC,"046-remove-object-storage-plugin":NC,"047-add-next-run-at":TC,"048-merge-projects-agents":zC,"049-remove-org-admin-projects":EC,"050-durable-agent-runs":$C,"051-org-sso":JC,"052-thread-agent-ids":PC,"053-registry-config":QC,"054-connection-slug":ZC,"055-spaces":WC,"056-automation-project-scope":jC,"057-thread-virtual-mcp-id":LC,"058-trigger-callback-tokens":FC,"059-kv":YC,"060-member-index":DC,"061-downstream-token-connection-index":HC,"062-private-registry":MC,"063-event-subscriptions-enabled-boolean":RC,"064-brand-context":BC,"065-organization-domains":GC,"066-brand-context-structured":OC,"067-threads-metadata":SC,"068-threads-branch":fC,"069-sandbox-runner-state":AC,"070-model-categories":IC,"071-default-home-agents":yC,"072-ai-provider-key-preset-id":VC,"073-backfill-basic-usage-roles":wC,"074-sandbox-runner-state-handle-nonunique":kC,"075-thread-inflight-async-jobs":nC,"076-automations-drop-agent-json":vC,"077-tier-only-model-selection":gC,"078-automation-tool-call-kind":qC,"079-strip-legacy-freestyle-vm-map-entries":iC,"080-async-research-jobs":cC,"081-async-research-jobs-result-content":hC,"082-secrets":tC,"083-thread-run-locally":oC,"084-drop-host-sandbox-rows":aC,"085-rename-runner-kind":rC,"086-thread-pins-and-vm-map-rekey":lC,"087-fix-vm-map-rekey":eC,"088-purge-cli-activate-keys":dC,"089-rename-remote-user-to-desktop":bC,"090-automation-webhook-triggers":sC,"091-organization-domains-allow-multi":_K,"092-sandbox-naming-uniformization":xK,"093-backfill-global-search-basic-usage":uK,"094-org-file-configs":KK,"095-remove-automation-tool-call-kind":NK,"096-org-file-configs-public-url-base":TK,"097-drop-local-docker-sandbox-state":zK,"098-thread-message-parts":EK,"099-run-fence":$K,"100-link-transport":UK,"101-cancel-requested-at":JK,"102-observational-agent":PK,"103-revert-observational-agent":QK,"104-agent-sandbox-provider-kind":ZK,"105-org-fs":WK,"106-automation-tools":jK,"107-org-fs-public-org":LK,"108-automation-max-agent-steps":FK,"109-thread-message-parts-per-message-seq":YK,"110-backfill-ghs-token-expiry":DK,"111-org-fs-thread-id":HK,"112-org-file-configs-credential-type":MK,"113-thread-failure-reason":RK,"114-run-acked-seq":BK,"115-thread-projected-seq":GK,"116-org-sites":OK,"117-org-file-configs-site-slug":SK,"118-organization-domains-multi-verify":fK,"119-organization-join-requests":AK,"120-org-fs-read-public":IK,"121-org-fs-share-password":yK,"122-split-web-research-tier":kK,"123-connection-credential-vault":nK,"124-drop-thread-projected-seq":vK,"125-github-child-single-parent":pK,"126-task-board":qK,"127-task-board-due-date":iK,"128-reports-only":cK,"129-task-board-assigned-by":hK,"130-task-board-thread-id":tK,"131-task-board-thread-link-cascade":oK,"132-task-board-item-prs":aK,"133-dedupe-duplicate-members":rK,"134-drop-task-board-enabled":lK,"135-task-board-item-fk-cascade":eK,"136-task-board-import-idempotency":dK,"137-agent-sandbox-runner-state":bK,"138-agent-sandbox-sessions":sK,"139-organization-billing":_N,"140-seat-change-log":xN,"141-benefits-sync-pending":uN,"142-stripe-event-watermark":CN,"143-armed-report-url":KN,"144-benefits-pending-index":NN,"145-user-model-preferences":TN,"146-organization-main-agent":mN,"147-drop-agent-sandbox-tables":zN,"148-org-flags":EN,"149-task-board-item-sort-order":$N,"150-task-board-activity":UN,"151-task-board-tags":PN,"152-repair-connection-slug":XN,"153-task-board-latest-assistant-part-index":ZN,"154-task-board-qa-activity":jN,"155-task-board-review-claims":LN,"156-task-board-conflict-activity":YN,"157-drop-seat-billing":DN,"158-drop-github-child-single-parent":HN,"159-task-board-comments":MN,"160-task-quota-billing":RN,"161-task-quota-claim-state":GN,"162-claude-subscriptions":ON,"163-task-board-item-dismissed":SN,"164-per-org-task-quota":fN,"165-task-board-pending-review-index":AN,"166-task-board-last-swept-at":IN,"167-task-board-run-retry":yN,"168-org-repo-sync":wN,"169-task-board-merge-failed-activity":nN,"170-task-board-item-repo":vN,"171-jira-integration":pN,"172-task-board-item-key-seq":gN,"173-thread-github-repo-connection-index":qN,"174-thread-message-parts-persisted-at":cN,"175-task-board-sprints":hN,"176-task-board-done-sweep-index":tN,"177-notifications":oN,"178-jira-status-mapping-array":aN,"179-notification-mentioned":lN,"180-task-board-item-type":dN,"181-task-board-item-type-required":bN,"182-task-board-sprints-entities":sN,"183-drop-jira-jql-filter":_T,"184-jira-rescan-after-scope-change":xT,"185-jira-rescan-existing-cards":uT,"186-jira-rescan-pending-flag":KT,"187-task-board-comment-thread":NT,"188-invitation-auto-accept":TT,"189-task-board-column-automations":zT,"190-task-board-review-cycle-started-at":ET,"191-task-board-columns":$T,"192-task-board-verdict-nudge-activity":JT,"193-task-board-status-column-fk":PT,"194-jira-link-sprint":QT,"195-task-board-sprint-activity":ZT,"196-task-board-column-tracker-statuses":WT,"197-task-board-prompts":jT,"198-task-board-external-url":LT,"199-drop-jira-mirror-and-org-columns":FT,"200-jira-run-trigger":YT,"201-organization-notices":DT,"202-redact-base64-thread-parts":MT,"203-task-board-preview-routes":RT,"204-git-provider-accounts-and-repositories":BT,"205-repository-references":GT,"206-repository-consumers":$u,"207-task-board-prs-repo-idx":Eu,"208-github-connect-flows":zu,"209-github-installation-authorization":mu,"210-github-repository-authorization":sx,"211-user-fs-org":bx,"212-coding-agent-mcp-excluded":_u,"213-bitbucket-git-provider":xu,"214-connections-sanitized-id-idx":rx,"215-commerce-discovery-repository":lx,"216-github-cli-auth":dx,"217-experiments":uu,"218-thread-message-parts-error-idx":Cu,"219-task-board-duplicate-reported-activity":Nu,"220-jira-automation-continue-pr":Tu,"221-remove-private-registry":$x,"222-org-git-credentials":Ux,"223-drop-org-main-agent-id":ax,"224-repository-sandbox-image":Jx,"225-thread-analytics-indexes":Qx,"226-deco-score-names":Zx,"227-task-board-finding-resolved-activity":jx,"228-org-voice-config":Ex,"229-jira-automation-from":Lx,"230-project-sidebar":Fx,"231-jira-chat-agent":Yx,"232-task-board-prompt-skills":Hx,"233-remove-jira-chat-agent":Rx,"234-task-board-comment-audience":Bx,"235-prune-empty-thread-dirs":Gx,"236-task-board-sprints":Sx,"237-org-sites-project-link":fx,"238-task-board-default-lanes":Ax,"239-task-board-retire-old-lanes":Ix,"240-task-board-restore-todo":yx,"241-automation-board-column-transition":Vx,"242-connection-url-slug":wx,"243-experiment-task-board-item":kx,"244-connection-url-slug-rollout-backfill":nx,"245-automation-system-key":vx,"246-automation-pr-ready-trigger":px,"247-automation-jira-transition":gx,"248-drop-retired-rule-tables":qx,"249-task-board-item-project":ix,"250-github-copilot-subscriptions":cx,"251-org-shared-plans":hx,"252-automation-linked-chat-trigger":tx,"253-automation-pr-builtin-triggers":ox},Kx=HW;import{getMigrations as u9}from"better-auth/db";import{sso as C9}from"@better-auth/sso";import{organization as K9}from"@decocms/better-auth/plugins";import{admin as N9,apiKey as T9,jwt as m9,magicLink as z9,mcp as E9,openAPI as $9}from"better-auth/plugins";import{emailOTP as U9}from"better-auth/plugins/email-otp";import{Kysely as rW,PostgresDialect as Wz}from"kysely";import{Pool as jz}from"pg";import{homedir as MW}from"os";var RW=new Set(["all","worker","api"]);function BW(_){let x=(_??"").trim();return RW.has(x)?x:"all"}var GW=new Set(["production","development","test"]);function OW(_){let x=(_??"").trim();return GW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function ST(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return ST(_,x,N)??u}function SW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),T=K>0?N.slice(0,K).trim():"",m=K>0?N.slice(K+1).trim():"";if(!T||!m){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=m}return x}function fW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function OT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function AW(_){return _===void 0||_===""||_==="true"||_==="1"}function D_(_,x){return _||x}function zz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${MW()}/deco`,u=OW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:D_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:D_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((T)=>T.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((T)=>T.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:ST("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((T)=>T.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:SW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:fW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:OT(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:OT(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:AW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:ST("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:BW(D_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:OT(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:D_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:D_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var IW=null;function K_(){return IW??=Object.freeze(zz(process.env))}import{createContextKey as vW,metrics as pW,propagation as J8,ROOT_CONTEXT as P8,SpanStatusCode as Q8,trace as gW}from"@opentelemetry/api";import{logs as qW,SeverityNumber as fT}from"@opentelemetry/api-logs";import{OTLPLogExporter as W8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as iW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as F8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as D8}from"@opentelemetry/instrumentation-runtime-node";import{context as T5,propagation as m5,SpanKind as z5,SpanStatusCode as E5}from"@opentelemetry/api";var U5=globalThis.fetch;import{ExportResultCode as H5}from"@opentelemetry/core";import{ExportResultCode as Nx}from"@opentelemetry/core";import{mkdir as yW,rename as VW,writeFile as wW}from"fs/promises";import{join as Tx}from"path";class mx{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:Nx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Nx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Nx.FAILED}});return Promise.resolve({code:Nx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let T=x.get(K.partition);if(!T)T=[],x.set(K.partition,T);T.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,T])=>this.writeNDJSON(T,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let m of u)if(m.status==="fulfilled")K.add(m.value);let T=_.filter((m)=>!K.has(m.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Tx(this.basePath,x,...N):Tx(this.basePath,...N);if(!this.knownDirs.has(K))await yW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let T=`${crypto.randomUUID()}.ndjson`,m=Tx(K,`.${T}.tmp`),z=Tx(K,T),E=_.join(`
2376
2383
  `)+`
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`
2384
+ `;await wW(m,E,{mode:384}),await VW(m,z)}}import{ExportResultCode as O5}from"@opentelemetry/core";import{AggregationTemporality as f5,DataPointType as A5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as n5}from"@opentelemetry/core";var q5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as A8,LoggerProvider as I8}from"@opentelemetry/sdk-logs";import{detectResources as V8,envDetector as w8,hostDetector as k8,osDetector as n8,processDetector as v8,resourceFromAttributes as p8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as q8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as h5}from"@opentelemetry/api-logs";import{NodeSDK as h8}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as o8,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as l5}from"@opentelemetry/api";var cW="__d",hW=vW("Current request"),tW=1;var $z=(_)=>{let u=new URL(_.url).searchParams.get(cW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Uz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,T){let m=_.getValue(hW);if(!m){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,T);return{decision:N_.RECORD_AND_SAMPLED}}let z=$z(m);if(z)return{decision:N_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,T);if(E.decision===N_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:N_.NOT_RECORD}}toString(){return"DebugSampler"}}class Jz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:N_.RECORD_AND_SAMPLED};return{decision:N_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var r8=new iW({preventServerStart:!0}),l8=new Uz(new Jz(tW));var Ez=gW.getTracer("studio","1.0.0"),H_=pW.getMeter("studio","1.0.0"),oW=qW.getLogger("studio","1.0.0"),AT=(_,x,u)=>{let N={},K=u,T=u[u.length-1];if(T!==null&&typeof T==="object"&&!Array.isArray(T)&&!(T instanceof Error)&&Object.getPrototypeOf(T)===Object.prototype)N=T,K=u.slice(0,-1);let m=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");oW.emit({severityNumber:_,severityText:x,body:m,attributes:{"log.source":"console",...N}})},IT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{AT(fT.ERROR,"ERROR",_),IT.error(..._)};console.warn=(..._)=>{AT(fT.WARN,"WARN",_),IT.warn(..._)};console.debug=(..._)=>{AT(fT.DEBUG,"DEBUG",_),IT.debug(..._)};var yT,Pz=0,VT=500;function aW(){if(yT)return;let _=performance.now()+VT;yT=setInterval(()=>{let x=performance.now();Pz=Math.max(0,x-_),_=x+VT},VT),yT.unref?.()}function Qz(){return aW(),Pz}var lW=()=>H_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Xz=()=>H_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Zz=400,eW=100,dW=(_)=>({"db.status":_.level==="error"?"error":"success"}),bW=(_)=>(x)=>{let u=dW(x);if(x.queryDurationMillis>Zz){let N=Qz(),K=N>Zz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:zx()}})}if(lW().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function sW(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=zx(),T=_.idleCount===0&&_.totalCount>=K,m=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Xz().record(E,{"db.pool.outcome":T?"contended":"available"}),E>eW)if(T)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:m,total:_.totalCount,max:K});return z},(z)=>{throw Xz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Lz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Fz(){try{return K_().databasePgSsl}catch{return!1}}function zx(){try{return K_().databasePoolMax}catch{return 10}}function _9(_){let x=sW(new jz({connectionString:_,max:zx(),ssl:Fz(),...Lz})),u=new Wz({pool:x});return{type:"postgres",db:new rW({dialect:u,log:bW(x)}),pool:x}}function R_(){return K_().databaseUrl}function Yz(_){let x=_||R_();return new Wz({pool:new jz({connectionString:x,max:zx(),ssl:Fz(),...Lz})})}function x9(_){let x=_||R_();return _9(x)}async function Dz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===M_)M_=null}var M_=null;function wT(){if(!M_)M_=x9(R_());return M_}async function Hz(_){let u={database:Yz(_||R_()),plugins:[K9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),N9(),T9(),m9(),$9(),E9({loginPage:"/login"}),C9(),z9({sendMagicLink:async()=>{}}),U9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:T}=await u9(u);if(!N.length&&!K.length)return"up to date";return await T(),`${K.length+N.length} table(s) migrated`}async function kT(_,x){return(await o`
2378
2385
  SELECT table_name FROM information_schema.tables
2379
2386
  WHERE table_schema='public' AND table_name=${x}
2380
- `.execute(_)).rows.length>0}async function N7(_){if(await yT(_,"plugin_migrations"))return;await o`
2387
+ `.execute(_)).rows.length>0}async function J9(_){if(await kT(_,"plugin_migrations"))return;await o`
2381
2388
  CREATE TABLE plugin_migrations (
2382
2389
  plugin_id TEXT NOT NULL,
2383
2390
  name TEXT NOT NULL,
2384
2391
  timestamp TEXT NOT NULL,
2385
2392
  PRIMARY KEY (plugin_id, name)
2386
2393
  )
2387
- `.execute(_)}async function T7(_){if(!await yT(_,"kysely_migration"))return;let x=await o`
2394
+ `.execute(_)}async function P9(_){if(!await kT(_,"kysely_migration"))return;let x=await o`
2388
2395
  SELECT name, timestamp FROM kysely_migration
2389
2396
  WHERE name LIKE '%/%'
2390
2397
  `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let K=u;if(u.includes("~plugins/"))K=u.substring(u.indexOf("~plugins/")+9);let T=K.indexOf("/");if(T===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let m=K.substring(0,T),z=K.substring(T+1);try{await o`
@@ -2395,6 +2402,6 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
2395
2402
  WHERE plugin_id = ${m} AND name = ${z}
2396
2403
  `.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${m}/${z}, keeping in old table`);continue}}await o`
2397
2404
  DELETE FROM kysely_migration WHERE name = ${u}
2398
- `.execute(_)}}async function m7(_){if(!await yT(_,"kysely_migration"))return{};let{rows:x}=await o`
2405
+ `.execute(_)}}async function Q9(_){if(!await kT(_,"kysely_migration"))return{};let{rows:x}=await o`
2399
2406
  SELECT name FROM kysely_migration
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};
2407
+ `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Kx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function X9(_){await J9(_),await P9(_);let x=new Mz({db:_,provider:{getMigrations:async()=>({...await Q9(_),...Kx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((T)=>{if(T.status==="Success")K++;else if(T.status==="Error")console.error(`Failed to execute migration "${T.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function Z9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Hz();let T=u??wT(),m=async()=>{if(!x&&!u)await Dz(T).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await X9(T.db);return await m(),{betterAuth:K,kysely:z}}catch(z){throw await m(),z}}async function R3(){let _=wT(),x=new Mz({db:_.db,provider:{getMigrations:()=>Promise.resolve(Kx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await Z9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{X9 as runKyselyMigrations,Z9 as migrateToLatest,R3 as migrateDown};