decocms 4.373.1 → 4.373.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. package/dist/client/assets/{AlertCircle-2L7lI8NL.js → AlertCircle-D0XfIdP3.js} +1 -1
  2. package/dist/client/assets/{AreaChart-BSJ08P7a.js → AreaChart-BahcMnDC.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-8rouBEwC.js → ArrowLeft-COesgQ7q.js} +1 -1
  4. package/dist/client/assets/{ArrowRight-DCA5zjxW.js → ArrowRight-CnMpegh6.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-BtksDHBQ.js → ArrowUp-17ZWJBkC.js} +1 -1
  6. package/dist/client/assets/{CartesianChart-BbOaLmfq.js → CartesianChart-DqSaDs52.js} +1 -1
  7. package/dist/client/assets/{CheckCircle-BmVuh1xp.js → CheckCircle-GwUJIVVh.js} +1 -1
  8. package/dist/client/assets/{ChevronUp-fg9sod-H.js → ChevronUp-CodzCI7T.js} +1 -1
  9. package/dist/client/assets/{Copy01-BgwuTJFm.js → Copy01-CrFZhFXo.js} +1 -1
  10. package/dist/client/assets/{CreditCard01-CIt471eG.js → CreditCard01-DDojC3kk.js} +1 -1
  11. package/dist/client/assets/{DotsVertical-CE2o6L6N.js → DotsVertical-DMzYFBsd.js} +1 -1
  12. package/dist/client/assets/{Download01-DNhEQzg0.js → Download01-B93GUT2-.js} +1 -1
  13. package/dist/client/assets/{ErrorBarContext-DxNax47N.js → ErrorBarContext-BUk8y7Bj.js} +1 -1
  14. package/dist/client/assets/{Eye-Dq6Vw6FI.js → Eye-Bxxku7SE.js} +1 -1
  15. package/dist/client/assets/{Globe01-g_y8gAs1.js → Globe01-DjdW3vEO.js} +1 -1
  16. package/dist/client/assets/{Globe04-GFiRExL0.js → Globe04-1G-_QSZW.js} +1 -1
  17. package/dist/client/assets/{Image01-QB6twEDu.js → Image01-DPvj49a-.js} +1 -1
  18. package/dist/client/assets/{Key01-CO_i2QPb.js → Key01-O_Ykzy8v.js} +1 -1
  19. package/dist/client/assets/{LayoutLeft-BfySK4h8.js → LayoutLeft-Cr5_A1QG.js} +1 -1
  20. package/dist/client/assets/{Line-Cr57fOtp.js → Line-aFR7lShe.js} +1 -1
  21. package/dist/client/assets/{Link01-BIFMl_M0.js → Link01-D8T6mRIR.js} +1 -1
  22. package/dist/client/assets/{LinkExternal01-DQD59o7F.js → LinkExternal01-CWPNoGQ_.js} +1 -1
  23. package/dist/client/assets/{Monitor01-Ddm2yOG6.js → Monitor01-CQaKbr3c.js} +1 -1
  24. package/dist/client/assets/{Package-CvzEol5_.js → Package-Cd3aVeK8.js} +1 -1
  25. package/dist/client/assets/{Palette-DT856bn6.js → Palette-HRmzWYeK.js} +1 -1
  26. package/dist/client/assets/{Play-wYDcJhBq.js → Play-CaxaoMwA.js} +1 -1
  27. package/dist/client/assets/{Plus-BSp00qOC.js → Plus-BjOenFFb.js} +1 -1
  28. package/dist/client/assets/{SearchLg-DFD1t2UL.js → SearchLg-CT-Vntfj.js} +1 -1
  29. package/dist/client/assets/{SearchMd-Bb5gjLcX.js → SearchMd-C6gkQ2l2.js} +1 -1
  30. package/dist/client/assets/{Sector-wViCnB96.js → Sector-B-fHBulW.js} +1 -1
  31. package/dist/client/assets/{Settings02-D9Qv7BDm.js → Settings02-DH86cX_B.js} +1 -1
  32. package/dist/client/assets/{Share07-CZ7JzYs9.js → Share07-Bw4Wicv2.js} +1 -1
  33. package/dist/client/assets/{Stars01-D-wYuyik.js → Stars01-B1kYoDFp.js} +1 -1
  34. package/dist/client/assets/{Sun-DLRcOzSd.js → Sun-kycCorOO.js} +1 -1
  35. package/dist/client/assets/{Tool01-Dwy1nlT9.js → Tool01-iak9ZtFE.js} +1 -1
  36. package/dist/client/assets/{Tool02-CvlAGFBM.js → Tool02-CFu103hl.js} +1 -1
  37. package/dist/client/assets/{Trash01-DtE0n00a.js → Trash01-CpN6r-a0.js} +1 -1
  38. package/dist/client/assets/{TrendUp01-BCriuXJd.js → TrendUp01-DlYmFZ7k.js} +1 -1
  39. package/dist/client/assets/{Upload01-Ba-RLxE1.js → Upload01-DkDsqCWe.js} +1 -1
  40. package/dist/client/assets/{User01-DHd46PZp.js → User01-CmNzW4kH.js} +1 -1
  41. package/dist/client/assets/{UserSquare-CcF49LHs.js → UserSquare-1_FC93GE.js} +1 -1
  42. package/dist/client/assets/{Users01-B8gdz27Y.js → Users01-CVhfgklM.js} +1 -1
  43. package/dist/client/assets/{X-BtMi8Qau.js → X-DTaqHNcB.js} +1 -1
  44. package/dist/client/assets/{XCircle-BLCHBIhx.js → XCircle-BR8ZZHlj.js} +1 -1
  45. package/dist/client/assets/{XClose-CvcHLHe2.js → XClose-VLid_ZSM.js} +1 -1
  46. package/dist/client/assets/{Zap-DZAIluO6.js → Zap-D3d1wpzw.js} +1 -1
  47. package/dist/client/assets/{ZoomOut-DUFJq3-K.js → ZoomOut-B3S7N50e.js} +1 -1
  48. package/dist/client/assets/{access-gate-C9Dl5e5c.js → access-gate-DAO7tJ5A.js} +1 -1
  49. package/dist/client/assets/{add-connection-dialog-DA05asFs.js → add-connection-dialog-CaHZ3eeK.js} +1 -1
  50. package/dist/client/assets/{agent-analytics-CDo5Hugr.js → agent-analytics-CzbWclRj.js} +1 -1
  51. package/dist/client/assets/agent-app-DqzssWfL.js +1 -0
  52. package/dist/client/assets/{agent-assets-6UK-ev9d.js → agent-assets-Dfpjbzyj.js} +1 -1
  53. package/dist/client/assets/{agent-automation-BC-cMvrG.js → agent-automation-C8r5_lAR.js} +1 -1
  54. package/dist/client/assets/{agent-automations-CnHTcvU7.js → agent-automations-BSaV8k3Y.js} +1 -1
  55. package/dist/client/assets/{agent-connect-sources-CJ8artss.js → agent-connect-sources-AkHuiIU0.js} +1 -1
  56. package/dist/client/assets/agent-deck-BQOqb5JA.js +1 -0
  57. package/dist/client/assets/{agent-e2e-Cj1Q_JS0.js → agent-e2e-CjCqLXH1.js} +1 -1
  58. package/dist/client/assets/{agent-experiments-DJ13yAp9.js → agent-experiments-4inK9Pvj.js} +1 -1
  59. package/dist/client/assets/agent-file-CN4CJx4b.js +1 -0
  60. package/dist/client/assets/{agent-git-B8LMQ2zl.js → agent-git-BZmL1C91.js} +1 -1
  61. package/dist/client/assets/{agent-hosting-Bm-WxahY.js → agent-hosting-CP9gImki.js} +1 -1
  62. package/dist/client/assets/{agent-icon-CTsmTxHg.js → agent-icon-D5Ih-I28.js} +1 -1
  63. package/dist/client/assets/agent-library-file-CMtJlgeS.js +1 -0
  64. package/dist/client/assets/{agent-monitor-DgVt0zbx.js → agent-monitor-D7bE1AUL.js} +1 -1
  65. package/dist/client/assets/{agent-overview-pOglhwpN.js → agent-overview-C5zU0xJO.js} +1 -1
  66. package/dist/client/assets/agent-settings-G7qQl7Yj.js +1 -0
  67. package/dist/client/assets/{agent-site-editor-DVT-M9T0.js → agent-site-editor-BRzwUORk.js} +1 -1
  68. package/dist/client/assets/agent-site-editor-code-BV4iQvoi.js +2 -0
  69. package/dist/client/assets/{agent-site-editor-content-eM0WchN0.js → agent-site-editor-content-Da0JfE-w.js} +2 -2
  70. package/dist/client/assets/{agent-site-editor-preview-3VO_kTqr.js → agent-site-editor-preview-DqMQfEJz.js} +3 -3
  71. package/dist/client/assets/agent-view-BinIwia6.js +1 -0
  72. package/dist/client/assets/{agent-view-guard-BNYKK-x9.js → agent-view-guard-CmXIeKCe.js} +1 -1
  73. package/dist/client/assets/{agents-list-BXPjUzIN.js → agents-list-wHHXJTl8.js} +1 -1
  74. package/dist/client/assets/{ai-providers-BAmCFPvS.js → ai-providers-COexxMGY.js} +1 -1
  75. package/dist/client/assets/{alert-C8o4-kn8.js → alert-C_EPjsLF.js} +1 -1
  76. package/dist/client/assets/{alert-dialog-9n2p5SCQ.js → alert-dialog-D6rlFoy0.js} +1 -1
  77. package/dist/client/assets/api-keys-CN-jy2XH.js +1 -0
  78. package/dist/client/assets/{api-keys-Cu1KdEtK.js → api-keys-o45lgGkw.js} +1 -1
  79. package/dist/client/assets/app-editor-BPKOcfIg.js +1 -0
  80. package/dist/client/assets/{asset-utils-CK3Em4fb.js → asset-utils-BG24FUsq.js} +1 -1
  81. package/dist/client/assets/{auth-BBW3DF0r.js → auth-B_QE3yd2.js} +1 -1
  82. package/dist/client/assets/{auth-catchall-Bva2z4Gj.js → auth-catchall-BM8U6OhG.js} +1 -1
  83. package/dist/client/assets/{auth-entry-BuHqwUIr.js → auth-entry-CdieewWf.js} +1 -1
  84. package/dist/client/assets/{auth-split-layout-DMgxvbll.js → auth-split-layout-rKTEf0Lh.js} +1 -1
  85. package/dist/client/assets/{authenticate-and-persist-oauth-Pk9b2m8R.js → authenticate-and-persist-oauth-Cm242zr2.js} +1 -1
  86. package/dist/client/assets/{automation-list-row-D-zBLXA-.js → automation-list-row-DDeJYMHS.js} +1 -1
  87. package/dist/client/assets/{automation-runs-C8Wbje-n.js → automation-runs-BGXJk3-4.js} +1 -1
  88. package/dist/client/assets/{automations-D69ikqKh.js → automations-BhhOtnrs.js} +1 -1
  89. package/dist/client/assets/{autosend-CVNOmzPu.js → autosend-DtYV6o0l.js} +1 -1
  90. package/dist/client/assets/{avatar-BzRNaDEk.js → avatar-Dwn9Bjsb.js} +1 -1
  91. package/dist/client/assets/{badge-C5M6nZd4.js → badge-BSirYRuD.js} +1 -1
  92. package/dist/client/assets/{block-document-UPtnFOJG.js → block-document-DjxI0Nln.js} +1 -1
  93. package/dist/client/assets/{blocks-preview-workspace-context-DAFMxzU6.js → blocks-preview-workspace-context-BwjlsTrq.js} +1 -1
  94. package/dist/client/assets/{breadcrumb-0yy48vm9.js → breadcrumb-BpbnoaV3.js} +1 -1
  95. package/dist/client/assets/{buckets-CktpbsrB.js → buckets-DdptE4Pj.js} +1 -1
  96. package/dist/client/assets/{build-improve-prompt-doc-C-SX02eL.js → build-improve-prompt-doc-CIkgt5Ml.js} +1 -1
  97. package/dist/client/assets/{bulk-category-panel-MrIv4eD2.js → bulk-category-panel-BUvAK76e.js} +1 -1
  98. package/dist/client/assets/{calendar-QcX36iLy.js → calendar-Bhg3W8Dv.js} +1 -1
  99. package/dist/client/assets/{capability-load-error-BVb3VEU2.js → capability-load-error-l-yxDu1W.js} +1 -1
  100. package/dist/client/assets/category-editor-Crlp5xLx.js +1 -0
  101. package/dist/client/assets/{chart-BVjaATZw.js → chart-B7hxFGKr.js} +1 -1
  102. package/dist/client/assets/{chat-context-ELO8A2Ar.js → chat-context-CVZ1rNGo.js} +1 -1
  103. package/dist/client/assets/{chat-draft-tDfZTlxU.js → chat-draft-UIE-uNFd.js} +1 -1
  104. package/dist/client/assets/{checkbox-iGlb02v9.js → checkbox-VSstjUSb.js} +1 -1
  105. package/dist/client/assets/{choose-editor-CWLAiGtz.js → choose-editor-DD3-fBUp.js} +1 -1
  106. package/dist/client/assets/{cli-auth-success-DyNW_Pmq.js → cli-auth-success-LIJhoLzG.js} +1 -1
  107. package/dist/client/assets/{client-icons-BuRYGGKe.js → client-icons-D8SzN11F.js} +1 -1
  108. package/dist/client/assets/{collapsible-PyJ2NOzW.js → collapsible-BX137q_-.js} +1 -1
  109. package/dist/client/assets/{collection-detail-DXmBNKMr.js → collection-detail-Brbyx-hM.js} +1 -1
  110. package/dist/client/assets/{collection-display-button-Cz5AkuIg.js → collection-display-button-LAyYKy93.js} +1 -1
  111. package/dist/client/assets/{collection-search-DM8MkJfo.js → collection-search-Dvf73igt.js} +1 -1
  112. package/dist/client/assets/collection-table-wrapper-_ZnQA9Nx.js +1 -0
  113. package/dist/client/assets/{collection-tabs-aKKPIP9M.js → collection-tabs-BW0egx-_.js} +1 -1
  114. package/dist/client/assets/{combobox-CQBdlQef.js → combobox-D6GclaQ-.js} +1 -1
  115. package/dist/client/assets/{command-CZcxzTcw.js → command-Dsz0XoYc.js} +1 -1
  116. package/dist/client/assets/{companion-mcps-section-B7qgbnOZ.js → companion-mcps-section-D7ntAaGF.js} +1 -1
  117. package/dist/client/assets/{connect-D6Wz7x6C.js → connect-ChX83wmI.js} +1 -1
  118. package/dist/client/assets/{connect-layout-DzSDvFP2.js → connect-layout-SP9zSVi3.js} +1 -1
  119. package/dist/client/assets/{connection-DStV2sLP.js → connection-2MR1zroe.js} +1 -1
  120. package/dist/client/assets/{connection-card-CpIJKLp3.js → connection-card-B5yTdNvS.js} +1 -1
  121. package/dist/client/assets/{connection-detail-junbbrHX.js → connection-detail-DKOxQWbq.js} +1 -1
  122. package/dist/client/assets/{connection-form-helpers-DM_wSOEJ.js → connection-form-helpers-PrMbwr2L.js} +1 -1
  123. package/dist/client/assets/{connections-DvjnCZJT.js → connections-lQVX-uGO.js} +1 -1
  124. package/dist/client/assets/{create-organization-dialog-CvXOAbwA.js → create-organization-dialog-Ccojws8S.js} +1 -1
  125. package/dist/client/assets/{decofile-api-zRlIvvNL.js → decofile-api-DygXY02K.js} +1 -1
  126. package/dist/client/assets/{decopilot-BI8eOOPY.js → decopilot-rj_BJ_Z1.js} +1 -1
  127. package/dist/client/assets/{dialog-AoC07APJ.js → dialog-BKhaq-Xf.js} +1 -1
  128. package/dist/client/assets/{discover-zo2iAYFW.js → discover-C_imFiZx.js} +1 -1
  129. package/dist/client/assets/{domain-settings-C6kSznIr.js → domain-settings-CUKpZjNV.js} +1 -1
  130. package/dist/client/assets/{download-app-dialog-CsiIuf7j.js → download-app-dialog-wNu8nmu1.js} +1 -1
  131. package/dist/client/assets/{drawer-DGzquxJ8.js → drawer-CCmZWflK.js} +1 -1
  132. package/dist/client/assets/{editor-oL1B7LVJ.js → editor-DMij_Pa1.js} +1 -1
  133. package/dist/client/assets/{empty-state-DxJQDjCw.js → empty-state-BDpfsfUL.js} +1 -1
  134. package/dist/client/assets/{empty-state-Y08kvU5o.js → empty-state-DiRnF-wA.js} +1 -1
  135. package/dist/client/assets/{extract-connection-data-C7Wh9xkI.js → extract-connection-data-Bdk8iF2q.js} +1 -1
  136. package/dist/client/assets/{feature-gate-C1d068b1.js → feature-gate-KPNWzkBp.js} +1 -1
  137. package/dist/client/assets/{feature-paywall-BoABVlUQ.js → feature-paywall-B3_no1lb.js} +1 -1
  138. package/dist/client/assets/{file-explorer-DG5Gvb-w.js → file-explorer-oIhs2jyB.js} +1 -1
  139. package/dist/client/assets/{file-preview-iaqpqUYi.js → file-preview-BFDgPeRr.js} +1 -1
  140. package/dist/client/assets/{file-share-button-D0lT5ixf.js → file-share-button-7xy_ju8b.js} +1 -1
  141. package/dist/client/assets/{file-type-icon-lZW2ows7.js → file-type-icon-Co9lETmZ.js} +1 -1
  142. package/dist/client/assets/{folder-icon-DVG7PK8X.js → folder-icon-CPH1Bszw.js} +1 -1
  143. package/dist/client/assets/{form-CYsJTpNM.js → form-CxKBX2E3.js} +1 -1
  144. package/dist/client/assets/{gateway-client-CnYYocwu.js → gateway-client-B8HHtBA6.js} +1 -1
  145. package/dist/client/assets/{general-BiYLEv2o.js → general-BXQ_6idC.js} +1 -1
  146. package/dist/client/assets/{github-icon-swNUSpAU.js → github-icon-DSeg1rga.js} +1 -1
  147. package/dist/client/assets/{home-BbjS-573.js → home-FAOklPf6.js} +1 -1
  148. package/dist/client/assets/{hooks-D0dDgrIf.js → hooks-BFlZlUD7.js} +1 -1
  149. package/dist/client/assets/{hooks-BlE0QZwR.js → hooks-CFjlhRX0.js} +1 -1
  150. package/dist/client/assets/{icon-button-7c--Wy5B.js → icon-button-_3vMPXZp.js} +1 -1
  151. package/dist/client/assets/{index-DItj2r3e.js → index-B3clFfYi.js} +1 -1
  152. package/dist/client/assets/{index-DyCAAYSx.js → index-BcfYNZk_.js} +1 -1
  153. package/dist/client/assets/{index-C97O3ClY.js → index-BrLZxE6-.js} +1 -1
  154. package/dist/client/assets/{index-0-s9o3tr.js → index-BwwpOrcS.js} +1 -1
  155. package/dist/client/assets/{index-EcuFIS2a.js → index-CC7J7MsT.js} +2 -2
  156. package/dist/client/assets/{index-CutV0Ygc.js → index-CV2G6XgT.js} +1 -1
  157. package/dist/client/assets/{index-BUfoj27y.js → index-Ci8CqfCi.js} +1 -1
  158. package/dist/client/assets/{index-DKXWNSdB.js → index-Coo4IGyG.js} +1 -1
  159. package/dist/client/assets/{index-BDYXeKzz.js → index-CxsDd08k.js} +1 -1
  160. package/dist/client/assets/{index-Exw_Yjch.js → index-D2HOssRq.js} +1 -1
  161. package/dist/client/assets/{index-DllcfiZL.js → index-DZmKVVGY.js} +1 -1
  162. package/dist/client/assets/{index-DGY2nhhI.js → index-DoCuIH7r.js} +1 -1
  163. package/dist/client/assets/{index-fN6RkMSD.js → index-WfTG300W.js} +1 -1
  164. package/dist/client/assets/{index-redirect-Bm4zqVUy.js → index-redirect-BV59ZcWQ.js} +1 -1
  165. package/dist/client/assets/{index-BchRuDAc.js → index-zFkCX32V.js} +1 -1
  166. package/dist/client/assets/{infiniteQueryObserver-3RxH1tr-.js → infiniteQueryObserver-CKT-6XMq.js} +1 -1
  167. package/dist/client/assets/{infra-billing-CmY2herT.js → infra-billing-RcXbwjta.js} +1 -1
  168. package/dist/client/assets/{input-Buz_7xoG.js → input-DSV_9cOM.js} +1 -1
  169. package/dist/client/assets/{input-C5klQNJJ.js → input-QKe7l082.js} +1 -1
  170. package/dist/client/assets/{input-BrPa4I3Z.js → input-X38P96BY.js} +1 -1
  171. package/dist/client/assets/{integration-icon-D3FHJbYu.js → integration-icon-BARnXRTY.js} +1 -1
  172. package/dist/client/assets/{label-BX1BwzZ4.js → label-YKssz_GS.js} +1 -1
  173. package/dist/client/assets/{last-preview-page-BSVfE6AT.js → last-preview-page-D5EFEwR4.js} +1 -1
  174. package/dist/client/assets/{layout-030aDjqi.js → layout-UcqeKFE9.js} +1 -1
  175. package/dist/client/assets/{legacy-agents-deep-BblX_qPq.js → legacy-agents-deep-BYo-BuCs.js} +1 -1
  176. package/dist/client/assets/{legacy-main-redirect-BDaODIKZ.js → legacy-main-redirect-NyVTUirL.js} +1 -1
  177. package/dist/client/assets/{library-CmkU9fCT.js → library-FX2TKWir.js} +1 -1
  178. package/dist/client/assets/{login-BpUdj6Fq.js → login-gigmbDXu.js} +1 -1
  179. package/dist/client/assets/{markdown-VKlC4_bJ.js → markdown-tOSThun8.js} +1 -1
  180. package/dist/client/assets/{mcp-app-renderer-wS7imsel.js → mcp-app-renderer-c3JU3ROq.js} +1 -1
  181. package/dist/client/assets/{mcp-oauth-B7YJNr4N.js → mcp-oauth-Cr_ZflCp.js} +1 -1
  182. package/dist/client/assets/{members-2ZkimP3H.js → members-Cd4baVfz.js} +1 -1
  183. package/dist/client/assets/{message-templates-DyGM313y.js → message-templates-Pr7m4Pgn.js} +1 -1
  184. package/dist/client/assets/{mini-report-page-CYdef8vQ.js → mini-report-page-0G8UQBMn.js} +1 -1
  185. package/dist/client/assets/{mock-board-Dk2mRFCa.js → mock-board-Dw3AKqte.js} +3 -3
  186. package/dist/client/assets/{monaco-editor-ChRh_qus.js → monaco-editor-BhkNNN8A.js} +1 -1
  187. package/dist/client/assets/{monitoring-stats-row-DirMMFq2.js → monitoring-stats-row-D3wuHD5K.js} +1 -1
  188. package/dist/client/assets/{multi-select-CYKeAXVo.js → multi-select-Bw9uE0vh.js} +1 -1
  189. package/dist/client/assets/{mustache-BpzqsH6c.js → mustache-BMe4E-3i.js} +1 -1
  190. package/dist/client/assets/{oauth-callback-CLQttSb2.js → oauth-callback-Ckn9o5ws.js} +1 -1
  191. package/dist/client/assets/{oauth-callback-ai-provider-C5AqSldx.js → oauth-callback-ai-provider-B7dYzzRe.js} +1 -1
  192. package/dist/client/assets/{onboarding-BYeSkDcE.js → onboarding-BtLLloCy.js} +1 -1
  193. package/dist/client/assets/{optimistic-project-sidebar-views-hB0JGrCs.js → optimistic-project-sidebar-views-8yO8-q3h.js} +1 -1
  194. package/dist/client/assets/{org-file-open-context-D26BTBiX.js → org-file-open-context-k2zY7W2A.js} +1 -1
  195. package/dist/client/assets/{organization-choice-sm9k2ko4.js → organization-choice-oi5kPDHh.js} +1 -1
  196. package/dist/client/assets/{orgs-BT6gh3Sc.js → orgs-C8VfgzyW.js} +1 -1
  197. package/dist/client/assets/{page-seo-form-Bhk-2qvu.js → page-seo-form-D-yemID7.js} +1 -1
  198. package/dist/client/assets/{pair-Bh73YYpe.js → pair-CbUh0olY.js} +1 -1
  199. package/dist/client/assets/{plan-ladder-B-hb17ya.js → plan-ladder-DR8Snnfh.js} +1 -1
  200. package/dist/client/assets/{popover-Bff85VlI.js → popover-tYq49O5I.js} +1 -1
  201. package/dist/client/assets/{post-calendar-BUJnl75O.js → post-calendar-n3g3NXQN.js} +1 -1
  202. package/dist/client/assets/{post-editor-B8ClYTJb.js → post-editor-BCki1XwL.js} +1 -1
  203. package/dist/client/assets/{preview-content-C4FuOpTi.js → preview-content-BEe_g5h_.js} +1 -1
  204. package/dist/client/assets/{preview-dialog-DY1kQ4y_.js → preview-dialog-B88KWjD7.js} +1 -1
  205. package/dist/client/assets/{primitives-BCCkMTJb.js → primitives-DvNXO9ko.js} +1 -1
  206. package/dist/client/assets/{profile-T7ySaz_t.js → profile-Dn8W-1_J.js} +1 -1
  207. package/dist/client/assets/{project-app-view-D4HCSkue.js → project-app-view-CHIgEuQJ.js} +1 -1
  208. package/dist/client/assets/{project-feed-CRHprIgj.js → project-feed-BeVLcst-.js} +1 -1
  209. package/dist/client/assets/{project-icon-D_oHwik9.js → project-icon-BuTPt9Ec.js} +1 -1
  210. package/dist/client/assets/project-reports-EFWj1j4Z.js +1 -0
  211. package/dist/client/assets/project-tasks-DGYfz1Ev.js +1 -0
  212. package/dist/client/assets/{prompts-BuPAnA4R.js → prompts-BrLG0HnD.js} +1 -1
  213. package/dist/client/assets/record-editor-AST5wQoO.js +1 -0
  214. package/dist/client/assets/{redirect-editor-BrEMZWAU.js → redirect-editor-DQh1NXo4.js} +1 -1
  215. package/dist/client/assets/registry-FGkay0Wa.js +2 -0
  216. package/dist/client/assets/{registry-layout-o90YrVKa.js → registry-layout-tLc7-FpU.js} +1 -1
  217. package/dist/client/assets/{reports-DEVutxJq.js → reports-Bgxd82xF.js} +1 -1
  218. package/dist/client/assets/reports-CqtPOzss.js +1 -0
  219. package/dist/client/assets/{reports-onboarding-Dt5mvf07.js → reports-onboarding-BORIliYh.js} +1 -1
  220. package/dist/client/assets/{reports-tab-C6PZg0b6.js → reports-tab-3yvhtU-e.js} +2 -2
  221. package/dist/client/assets/{repositories-DBFrDUwl.js → repositories-DnQQ93Vy.js} +1 -1
  222. package/dist/client/assets/{repository-import-picker-ftg0FRzY.js → repository-import-picker-B1zE1wEx.js} +1 -1
  223. package/dist/client/assets/repository-picker-DMUsWfjy.js +1 -0
  224. package/dist/client/assets/{require-capability-gpVnF6U4.js → require-capability-B9l2cjC7.js} +1 -1
  225. package/dist/client/assets/{required-auth-layout-BhdxJMdb.js → required-auth-layout-qQ6V67AS.js} +1 -1
  226. package/dist/client/assets/{reset-password-DD2ixVIR.js → reset-password-CzGwWM54.js} +1 -1
  227. package/dist/client/assets/{resizable-wU1MiASn.js → resizable-c-JEmBrU.js} +1 -1
  228. package/dist/client/assets/{review-settings-3uLiRV1J.js → review-settings-CBDmCs9f.js} +1 -1
  229. package/dist/client/assets/{rich-text-link-control-Bn-QsIS6.js → rich-text-link-control-B4QybUls.js} +1 -1
  230. package/dist/client/assets/{roles-DX_ap2B0.js → roles-9Q5Zr1_l.js} +1 -1
  231. package/dist/client/assets/{route-Bdqr734y.js → route-Cyp-PzpR.js} +1 -1
  232. package/dist/client/assets/{route-DGhKwFXa.js → route-D9feMXoH.js} +1 -1
  233. package/dist/client/assets/{route-Cg6AOuOY.js → route-DrZOVBG5.js} +1 -1
  234. package/dist/client/assets/{route-page-header-DKm5kHtX.js → route-page-header-BzWw0nja.js} +1 -1
  235. package/dist/client/assets/{runnable-block-editor-9i5DpxOA.js → runnable-block-editor-nQ69L6jb.js} +1 -1
  236. package/dist/client/assets/{sandbox-lifecycle-context-BHn9YFEW.js → sandbox-lifecycle-context-DLKr6QBG.js} +1 -1
  237. package/dist/client/assets/{schema-FDf70VFI.js → schema-CStbpjQf.js} +1 -1
  238. package/dist/client/assets/{scroll-area-DMmJ7JtI.js → scroll-area-BLDUQh9N.js} +1 -1
  239. package/dist/client/assets/{search-input-BHVk6m6A.js → search-input-MlNEh696.js} +1 -1
  240. package/dist/client/assets/{search-toggle-CCC7TvwN.js → search-toggle-SUy-5Oe0.js} +1 -1
  241. package/dist/client/assets/{secrets-BNtrMaDs.js → secrets-CEw0kB_t.js} +1 -1
  242. package/dist/client/assets/{sections-editor-HtflyYMM.js → sections-editor-l8Cc724N.js} +1 -1
  243. package/dist/client/assets/{select-DBfOOW9i.js → select-C_C7jdl-.js} +1 -1
  244. package/dist/client/assets/{select-model-2C5Fdpra.js → select-model-FW_XGeEU.js} +1 -1
  245. package/dist/client/assets/{seo-editor-CFULobkJ.js → seo-editor-BhZJvD6-.js} +1 -1
  246. package/dist/client/assets/{separator-8fswVHAH.js → separator-D-DaNCb-.js} +1 -1
  247. package/dist/client/assets/{settings-tab-s3d5MtS-.js → settings-tab-DhuuexRq.js} +1 -1
  248. package/dist/client/assets/{sheet-DWSThpSZ.js → sheet-B5ncClVO.js} +1 -1
  249. package/dist/client/assets/shell-layout-p-WJ7uxl.js +1 -0
  250. package/dist/client/assets/{sidebar-CoC2_Nad.js → sidebar-BlfpAzXY.js} +1 -1
  251. package/dist/client/assets/{skill-preview-QgrtYNqp.js → skill-preview-CeIBKDR2.js} +1 -1
  252. package/dist/client/assets/{skills-BVINvlqv.js → skills-Cpf0zAbB.js} +1 -1
  253. package/dist/client/assets/{sso-CSqM_F3b.js → sso-CYe8kGWS.js} +1 -1
  254. package/dist/client/assets/{store-DBNpNTVQ.js → store-DDl3lPqK.js} +1 -1
  255. package/dist/client/assets/store-registry-DUH5xq3l.js +2 -0
  256. package/dist/client/assets/{switch-BIfmgDHS.js → switch-C_FmZ5Us.js} +1 -1
  257. package/dist/client/assets/{synced-repos-CG_pm_Ch.js → synced-repos-DHbM7OOb.js} +1 -1
  258. package/dist/client/assets/{table-CEVOOGGz.js → table-mH2G1tkg.js} +1 -1
  259. package/dist/client/assets/{tabs-Dd0IWElc.js → tabs-jjUOgDeE.js} +1 -1
  260. package/dist/client/assets/{task-board-Dip4Wu9j.js → task-board-BtEMyO1f.js} +1 -1
  261. package/dist/client/assets/{task-route-SKFoAFiU.js → task-route-BaALoopn.js} +1 -1
  262. package/dist/client/assets/{task-status-k7EGfTLN.js → task-status-CCMsckzm.js} +1 -1
  263. package/dist/client/assets/{taskboard-analytics-C3lk9wb7.js → taskboard-analytics-CzQSxt8I.js} +1 -1
  264. package/dist/client/assets/tasks-CI20rxb_.js +1 -0
  265. package/dist/client/assets/{tasks-ebQIYdwz.js → tasks-K4e2STZ0.js} +1 -1
  266. package/dist/client/assets/{textarea-D5v3ol7T.js → textarea-B7wqTmSc.js} +1 -1
  267. package/dist/client/assets/{thread-button-C3YUAV-G.js → thread-button-B9U3gqvP.js} +1 -1
  268. package/dist/client/assets/{thread-intent-CTSjhfEo.js → thread-intent-DZx7N_NL.js} +1 -1
  269. package/dist/client/assets/{thread-route-B57JfaL5.js → thread-route-B3hhxYHj.js} +1 -1
  270. package/dist/client/assets/{thread-route-CHwqHPf_.js → thread-route-DnE31jZ2.js} +1 -1
  271. package/dist/client/assets/{thread-sheet-body-Hqh1hVbj.js → thread-sheet-body-D_py0jIP.js} +1 -1
  272. package/dist/client/assets/{toggle-group-CwAn2mKr.js → toggle-group-C-J6fFSZ.js} +1 -1
  273. package/dist/client/assets/{toolbar-icon-button-ChZE-2zp.js → toolbar-icon-button-DQAUOhdv.js} +1 -1
  274. package/dist/client/assets/{tooltip-nr5oS_bm.js → tooltip-DSCGYdw1.js} +1 -1
  275. package/dist/client/assets/{track-BDYWN4z3.js → track-BWEjISsx.js} +1 -1
  276. package/dist/client/assets/{types-7UQ7SDxU.js → types-BQYrCHfb.js} +1 -1
  277. package/dist/client/assets/{usage-stats-YafP0g9G.js → usage-stats-CH100JwP.js} +1 -1
  278. package/dist/client/assets/{use-ai-providers-D-abiIwe.js → use-ai-providers-DPIPADTm.js} +1 -1
  279. package/dist/client/assets/{use-automations-D_y1YNke.js → use-automations-Cm_whz3Q.js} +1 -1
  280. package/dist/client/assets/{use-autosave-z8cIzzdm.js → use-autosave-C09DCahC.js} +1 -1
  281. package/dist/client/assets/{use-connect-companion-jQzCS0Na.js → use-connect-companion-D45RJA2C.js} +1 -1
  282. package/dist/client/assets/{use-connection-BKZRi94S.js → use-connection-DAR6kA6F.js} +1 -1
  283. package/dist/client/assets/{use-copy-Cp_DyXH6.js → use-copy-CLZ5Gmjm.js} +1 -1
  284. package/dist/client/assets/{use-create-virtual-mcp-nvoTomrD.js → use-create-virtual-mcp-DlDbTDWh.js} +1 -1
  285. package/dist/client/assets/{use-date-fns-locale-CNoKSvxx.js → use-date-fns-locale-4a1GuGUG.js} +1 -1
  286. package/dist/client/assets/{use-debounced-autosave-B0HBbqeX.js → use-debounced-autosave-s6ooboiq.js} +1 -1
  287. package/dist/client/assets/{use-debounced-value-BgYHDTDk.js → use-debounced-value-C7PP6GCc.js} +1 -1
  288. package/dist/client/assets/{use-deco-credits-CqbkXgA9.js → use-deco-credits-C78gqYYg.js} +1 -1
  289. package/dist/client/assets/{use-decopilot-events-qaEKsixC.js → use-decopilot-events-DDN9tgML.js} +1 -1
  290. package/dist/client/assets/{use-delete-connection-CqvqqWgS.js → use-delete-connection-DT4K_5dd.js} +1 -1
  291. package/dist/client/assets/{use-deployment-admin-DzkF6L4b.js → use-deployment-admin-mukdSbJI.js} +1 -1
  292. package/dist/client/assets/{use-entitlements-kPr6KRf9.js → use-entitlements-CsT7-WMV.js} +1 -1
  293. package/dist/client/assets/{use-fast-preview-draft-url-BBBDyhsD.js → use-fast-preview-draft-url-BofBOVEy.js} +1 -1
  294. package/dist/client/assets/{use-file-configs-6ygOocDG.js → use-file-configs-DT6Slpub.js} +1 -1
  295. package/dist/client/assets/{use-in-settings-BCDqA2EC.js → use-in-settings-BuwNY17C.js} +1 -1
  296. package/dist/client/assets/{use-infinite-scroll-D0T36z_V.js → use-infinite-scroll-BEJH1fno.js} +1 -1
  297. package/dist/client/assets/{use-join-requests-BBovhUnp.js → use-join-requests-CRlXrVsN.js} +1 -1
  298. package/dist/client/assets/{use-main-panel-tabs-BghanH6r.js → use-main-panel-tabs-CHXW72tt.js} +1 -1
  299. package/dist/client/assets/{use-mcp-auth-status-h4sAecTI.js → use-mcp-auth-status-BUHt6LYh.js} +1 -1
  300. package/dist/client/assets/{use-mcp-client-B_gcvvCy.js → use-mcp-client-jmamuSRM.js} +1 -1
  301. package/dist/client/assets/{use-mcp-prompts-DfSKL4Gu.js → use-mcp-prompts-Cb12ACl6.js} +1 -1
  302. package/dist/client/assets/{use-mcp-tools-DC47roTz.js → use-mcp-tools-U5kwqIN7.js} +1 -1
  303. package/dist/client/assets/{use-members-C6brpkJ1.js → use-members-CZk_logh.js} +1 -1
  304. package/dist/client/assets/{use-mobile-BZ15DgEB.js → use-mobile-X_9uHXB5.js} +1 -1
  305. package/dist/client/assets/{use-navigate-to-agent-B8SXI0oO.js → use-navigate-to-agent-XZHI0vTx.js} +1 -1
  306. package/dist/client/assets/{use-open-billing-url-BAg3ZeFq.js → use-open-billing-url-BygdFnSn.js} +1 -1
  307. package/dist/client/assets/{use-org-auth-client-8fDIgHEZ.js → use-org-auth-client-6spdYft8.js} +1 -1
  308. package/dist/client/assets/{use-org-fs-Bf6n51Xm.js → use-org-fs-C4AEj3YR.js} +1 -1
  309. package/dist/client/assets/{use-org-repo-syncs-CnBqiATM.js → use-org-repo-syncs-D5-YS2q1.js} +1 -1
  310. package/dist/client/assets/{use-org-sso-QeqdMaIa.js → use-org-sso-CbtWg6df.js} +1 -1
  311. package/dist/client/assets/{use-organization-roles-tuKknI1K.js → use-organization-roles-B2NYy6qP.js} +1 -1
  312. package/dist/client/assets/{use-organization-settings-DvtBymY3.js → use-organization-settings-DiOLzOn-.js} +1 -1
  313. package/dist/client/assets/{use-panel-navigate-IItrbgmN.js → use-panel-navigate-YnjVvVnu.js} +1 -1
  314. package/dist/client/assets/{use-project-native-view-presence-WwnxvZuP.js → use-project-native-view-presence-S2GuqygD.js} +1 -1
  315. package/dist/client/assets/{use-project-scope-CCxyXvEU.js → use-project-scope-azWGklpf.js} +1 -1
  316. package/dist/client/assets/{use-registry-connections-Bd4wJHbx.js → use-registry-connections-Dr6Tl0jy.js} +1 -1
  317. package/dist/client/assets/{use-releases-DZvNer89.js → use-releases-sRilJRv7.js} +1 -1
  318. package/dist/client/assets/{use-reports-diagnostic-BeTEI2FZ.js → use-reports-diagnostic-b56ze7yP.js} +1 -1
  319. package/dist/client/assets/{use-route-default-main-BhbKsXCz.js → use-route-default-main-DAXdKSA3.js} +1 -1
  320. package/dist/client/assets/{use-secrets-Bq9yyXHE.js → use-secrets-BD25jCAi.js} +1 -1
  321. package/dist/client/assets/{use-section-preview-base--XbKHK2U.js → use-section-preview-base-CfKeOl7s.js} +1 -1
  322. package/dist/client/assets/{use-session-runtime-B5wMaHtP.js → use-session-runtime-D8PgcjtK.js} +1 -1
  323. package/dist/client/assets/{use-tags-Do2tDPSO.js → use-tags-DMzy8m-k.js} +1 -1
  324. package/dist/client/assets/{use-task-board-analytics-MK_Z2cUq.js → use-task-board-analytics-BXM0SDto.js} +1 -1
  325. package/dist/client/assets/{use-task-metadata-CQjLXps1.js → use-task-metadata-IzJB5PVG.js} +1 -1
  326. package/dist/client/assets/{use-thread-outputs-DYukUH5N.js → use-thread-outputs-BhhE_Gkc.js} +1 -1
  327. package/dist/client/assets/{use-view-mode-BEPkb8x0.js → use-view-mode-CUHkIbeG.js} +1 -1
  328. package/dist/client/assets/{use-virtual-mcp-Ji9vcgUj.js → use-virtual-mcp-Bt7oX0ej.js} +1 -1
  329. package/dist/client/assets/useInfiniteQuery-zZoTJbYm.js +1 -0
  330. package/dist/client/assets/{useQueries-D0xhxw7a.js → useQueries-D7ondynP.js} +1 -1
  331. package/dist/client/assets/useSuspenseInfiniteQuery-BvOl5Id0.js +1 -0
  332. package/dist/client/assets/{users-DzwkCv2F.js → users-CP4Dfulp.js} +1 -1
  333. package/dist/client/assets/{utils-y2q6u6PK.js → utils-CcX7wgow.js} +1 -1
  334. package/dist/client/assets/{variant-calendar-D1R9xk7D.js → variant-calendar-BYxVe-PM.js} +1 -1
  335. package/dist/client/assets/{variant-matcher-override-qHzE4baz.js → variant-matcher-override-CgX58Kkx.js} +1 -1
  336. package/dist/client/assets/{view-mode-toggle-Ca0bFull.js → view-mode-toggle-CRnJAx40.js} +1 -1
  337. package/dist/client/assets/{virtual-mcp-Dji-1ojO.js → virtual-mcp-BWl8nlWy.js} +1 -1
  338. package/dist/client/index.html +1 -1
  339. package/dist/server/cli.js +648 -648
  340. package/dist/server/migrate.js +170 -170
  341. package/dist/server/server.js +415 -415
  342. package/package.json +1 -1
  343. package/dist/client/assets/agent-app-lfl4wDqj.js +0 -1
  344. package/dist/client/assets/agent-deck-BCZ0G4O2.js +0 -1
  345. package/dist/client/assets/agent-file-DbKP1r-4.js +0 -1
  346. package/dist/client/assets/agent-library-file-DvybgEEZ.js +0 -1
  347. package/dist/client/assets/agent-settings-Bx-Ya3hQ.js +0 -1
  348. package/dist/client/assets/agent-site-editor-code-DpPWdLwT.js +0 -2
  349. package/dist/client/assets/agent-view-v-h5B6vN.js +0 -1
  350. package/dist/client/assets/api-keys-DCurVLgh.js +0 -1
  351. package/dist/client/assets/app-editor-C3QSidsO.js +0 -1
  352. package/dist/client/assets/category-editor-DZThBJlF.js +0 -1
  353. package/dist/client/assets/collection-table-wrapper-cBr_X4Jo.js +0 -1
  354. package/dist/client/assets/project-reports-CzVFjEoR.js +0 -1
  355. package/dist/client/assets/project-tasks-c_cBe8VF.js +0 -1
  356. package/dist/client/assets/record-editor-CHfqyrFA.js +0 -1
  357. package/dist/client/assets/registry-4kJYrulU.js +0 -2
  358. package/dist/client/assets/reports-COffkxyo.js +0 -1
  359. package/dist/client/assets/repository-picker-BKj90hIS.js +0 -1
  360. package/dist/client/assets/shell-layout-BQnbNNla.js +0 -1
  361. package/dist/client/assets/store-registry-DLmFNBij.js +0 -2
  362. package/dist/client/assets/tasks-Sl_c9zFF.js +0 -1
  363. package/dist/client/assets/useInfiniteQuery-CzQJkRT9.js +0 -1
  364. package/dist/client/assets/useSuspenseInfiniteQuery-D9iG0Y5m.js +0 -1
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null,x)}var m=(_,x)=>{for(var u in x)sN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:_K.bind(x,u)})};import{Migrator as lN,sql as r}from"kysely";var q_={};m(q_,{up:()=>xK,down:()=>uK});import{sql as BT}from"kysely";async function xK(_){await BT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function uK(_){await BT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var g_={};m(g_,{up:()=>mK,down:()=>CK});import{sql as L}from"kysely";async function mK(_){await L`
2
+ var bN=Object.defineProperty;var _K=(_)=>_;function xK(_,x){this[_]=_K.bind(null,x)}var m=(_,x)=>{for(var u in x)bN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:xK.bind(x,u)})};import{Migrator as dN,sql as r}from"kysely";var q_={};m(q_,{up:()=>uK,down:()=>mK});import{sql as GT}from"kysely";async function uK(_){await GT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function mK(_){await GT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var g_={};m(g_,{up:()=>CK,down:()=>TK});import{sql as L}from"kysely";async function CK(_){await L`
3
3
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
4
4
  RETURNS jsonb AS $fn$
5
5
  BEGIN
@@ -73,7 +73,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
73
73
  || '/' ||
74
74
  coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
75
75
  ) = lower(p.path)
76
- `.execute(_),await L`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await L`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function CK(_){await L`
76
+ `.execute(_),await L`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await L`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function TK(_){await L`
77
77
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
78
78
  RETURNS jsonb AS $fn$
79
79
  BEGIN
@@ -100,17 +100,17 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
100
100
  )::text
101
101
  WHERE a.id = 'commerce-discovery_' || a.organization_id
102
102
  AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
103
- `.execute(_),await L`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var h_={};m(h_,{up:()=>TK,down:()=>NK});import{sql as c_}from"kysely";async function TK(_){await c_`ALTER TABLE git_provider_accounts
103
+ `.execute(_),await L`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var h_={};m(h_,{up:()=>NK,down:()=>KK});import{sql as c_}from"kysely";async function NK(_){await c_`ALTER TABLE git_provider_accounts
104
104
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
105
105
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
106
106
  CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
107
107
  ADD CONSTRAINT git_provider_accounts_cli_check
108
108
  CHECK (auth_kind <> 'github_cli' OR
109
- (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function NK(_){await c_`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await c_`ALTER TABLE git_provider_accounts
109
+ (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function KK(_){await c_`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await c_`ALTER TABLE git_provider_accounts
110
110
  DROP CONSTRAINT git_provider_accounts_cli_check,
111
111
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
112
112
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
113
- CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var o_={};m(o_,{up:()=>KK,down:()=>EK});import{sql as yT}from"kysely";async function KK(_){await yT`
113
+ CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var o_={};m(o_,{up:()=>EK,down:()=>zK});import{sql as yT}from"kysely";async function EK(_){await yT`
114
114
  INSERT INTO "organization" (id, name, slug, "createdAt")
115
115
  SELECT
116
116
  'org_user_fs',
@@ -124,9 +124,9 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
124
124
  END,
125
125
  now()
126
126
  ON CONFLICT (id) DO NOTHING
127
- `.execute(_)}async function EK(_){await yT`
127
+ `.execute(_)}async function zK(_){await yT`
128
128
  DELETE FROM "organization" WHERE id = 'org_user_fs'
129
- `.execute(_)}var a_={};m(a_,{up:()=>zK,down:()=>PK});async function zK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function PK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var r_={};m(r_,{up:()=>$K,down:()=>UK});async function $K(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function UK(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var e_={};m(e_,{up:()=>XK,down:()=>jK});import{sql as e}from"kysely";var JK=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function GT(_,x){for(let{table:u,column:T}of JK){let C=`${u}_${T}_check`,N=x.map((E)=>`'${E}'`).join(", ");await e.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await e.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${T} IN (${N}))`).execute(_)}}async function XK(_){await GT(_,["github","gitlab","bitbucket"])}async function jK(_){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 GT(_,["github","gitlab"])}var l_={};m(l_,{up:()=>QK,down:()=>WK});import{sql as $_}from"kysely";async function QK(_){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($_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo($_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo($_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($_`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 WK(_){await _.schema.dropTable("experiments").execute()}var d_={};m(d_,{up:()=>ZK,down:()=>DK});async function ZK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function DK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var s_={};m(s_,{up:()=>nK,down:()=>FK});import{sql as LK}from"kysely";async function nK(_){await LK`
129
+ `.execute(_)}var a_={};m(a_,{up:()=>PK,down:()=>$K});async function PK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function $K(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var r_={};m(r_,{up:()=>UK,down:()=>JK});async function UK(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function JK(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var e_={};m(e_,{up:()=>jK,down:()=>QK});import{sql as e}from"kysely";var XK=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function fT(_,x){for(let{table:u,column:T}of XK){let C=`${u}_${T}_check`,N=x.map((E)=>`'${E}'`).join(", ");await e.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await e.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${T} IN (${N}))`).execute(_)}}async function jK(_){await fT(_,["github","gitlab","bitbucket"])}async function QK(_){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 fT(_,["github","gitlab"])}var l_={};m(l_,{up:()=>WK,down:()=>ZK});import{sql as $_}from"kysely";async function WK(_){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($_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo($_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo($_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($_`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 ZK(_){await _.schema.dropTable("experiments").execute()}var d_={};m(d_,{up:()=>LK,down:()=>FK});import{sql as DK}from"kysely";async function LK(_){await DK`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function FK(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var s_={};m(s_,{up:()=>RK,down:()=>YK});async function RK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function YK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var b_={};m(b_,{up:()=>MK,down:()=>nK});import{sql as HK}from"kysely";async function MK(_){await HK`
130
130
  CREATE TABLE github_connect_flows (
131
131
  id text PRIMARY KEY,
132
132
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -136,7 +136,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
136
136
  );
137
137
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
138
138
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
139
- `.execute(_)}async function FK(_){await _.schema.dropTable("github_connect_flows").execute()}var b_={};m(b_,{up:()=>RK,down:()=>YK});async function RK(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function YK(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var _x={};m(_x,{up:()=>HK,down:()=>MK});import{sql as U_}from"kysely";async function HK(_){await U_`
139
+ `.execute(_)}async function nK(_){await _.schema.dropTable("github_connect_flows").execute()}var _x={};m(_x,{up:()=>BK,down:()=>GK});async function BK(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function GK(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var xx={};m(xx,{up:()=>yK,down:()=>fK});import{sql as U_}from"kysely";async function yK(_){await U_`
140
140
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
141
141
  DECLARE
142
142
  metadata_json jsonb;
@@ -192,19 +192,19 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
192
192
  FROM repositories r WHERE s.repository_id IS NULL
193
193
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
194
194
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
195
- `.execute(_)}async function MK(_){await U_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await U_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var xx={};m(xx,{up:()=>BK,down:()=>yK});import{sql as M}from"kysely";async function BK(_){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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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(M`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(M`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(M`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(M`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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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 yK(_){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 ux={};m(ux,{up:()=>GK,down:()=>fK});import{sql as fT}from"kysely";async function GK(_){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(fT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(fT`CURRENT_TIMESTAMP`)).execute()}async function fK(_){await _.schema.dropTable("organization_settings").execute()}var mx={};m(mx,{up:()=>OK,down:()=>SK});async function OK(_){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 SK(_){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 Cx={};m(Cx,{up:()=>AK,down:()=>IK});async function AK(_){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 IK(_){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 Tx={};m(Tx,{up:()=>wK,down:()=>VK});async function wK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function VK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Nx={};m(Nx,{up:()=>pK,down:()=>tK});import{sql as kK}from"kysely";async function pK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",kK`text`).execute()}async function tK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Kx={};m(Kx,{up:()=>iK,down:()=>vK});async function iK(_){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 vK(_){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 Ex={};m(Ex,{up:()=>qK,down:()=>gK});import{sql as l}from"kysely";async function qK(_){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(l`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(l`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(l`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(l`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(l`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 gK(_){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 zx={};m(zx,{up:()=>hK,down:()=>oK});import{sql as cK}from"kysely";async function hK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function oK(_){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(cK`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 Px={};m(Px,{up:()=>aK,down:()=>rK});import{sql as J_}from"kysely";async function aK(_){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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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(J_`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 J_`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 rK(_){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 $x={};m($x,{up:()=>eK,down:()=>lK});async function eK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function lK(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Ux={};m(Ux,{up:()=>dK,down:()=>sK});import{sql as X_}from"kysely";async function dK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await X_`
195
+ `.execute(_)}async function fK(_){await U_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await U_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var ux={};m(ux,{up:()=>OK,down:()=>SK});import{sql as n}from"kysely";async function OK(_){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(n`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(n`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(n`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(n`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(n`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(n`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(n`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(n`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(n`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(n`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 SK(_){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 mx={};m(mx,{up:()=>AK,down:()=>IK});import{sql as OT}from"kysely";async function AK(_){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(OT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(OT`CURRENT_TIMESTAMP`)).execute()}async function IK(_){await _.schema.dropTable("organization_settings").execute()}var Cx={};m(Cx,{up:()=>wK,down:()=>VK});async function wK(_){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 VK(_){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 Tx={};m(Tx,{up:()=>kK,down:()=>pK});async function kK(_){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 pK(_){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 Nx={};m(Nx,{up:()=>tK,down:()=>iK});async function tK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function iK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Kx={};m(Kx,{up:()=>qK,down:()=>gK});import{sql as vK}from"kysely";async function qK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",vK`text`).execute()}async function gK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Ex={};m(Ex,{up:()=>cK,down:()=>hK});async function cK(_){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 hK(_){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 zx={};m(zx,{up:()=>oK,down:()=>aK});import{sql as l}from"kysely";async function oK(_){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(l`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(l`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(l`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(l`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(l`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 aK(_){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 Px={};m(Px,{up:()=>eK,down:()=>lK});import{sql as rK}from"kysely";async function eK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function lK(_){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(rK`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 $x={};m($x,{up:()=>dK,down:()=>sK});import{sql as J_}from"kysely";async function dK(_){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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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(J_`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 J_`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 sK(_){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 Ux={};m(Ux,{up:()=>bK,down:()=>_E});async function bK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function _E(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Jx={};m(Jx,{up:()=>xE,down:()=>uE});import{sql as X_}from"kysely";async function xE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await X_`
196
196
  UPDATE gateways
197
197
  SET tool_selection_mode = CASE
198
198
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
199
199
  ELSE 'inclusion'
200
200
  END
201
- `.execute(_),await X_`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 sK(_){await X_`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 X_`
201
+ `.execute(_),await X_`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 uE(_){await X_`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 X_`
202
202
  UPDATE gateways
203
203
  SET tool_selection_strategy = CASE
204
204
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
205
205
  ELSE NULL
206
206
  END
207
- `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Jx={};m(Jx,{up:()=>bK,down:()=>_E});async function bK(_){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 _E(_){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 Xx={};m(Xx,{up:()=>xE,down:()=>uE});async function xE(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function uE(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var jx={};m(jx,{up:()=>mE,down:()=>CE});async function mE(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function CE(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Qx={};m(Qx,{up:()=>TE,down:()=>NE});async function TE(_){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 NE(_){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 Wx={};m(Wx,{up:()=>EE,down:()=>zE});import{sql as KE}from"kysely";async function EE(_){await KE`
207
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Xx={};m(Xx,{up:()=>mE,down:()=>CE});async function mE(_){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 CE(_){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 jx={};m(jx,{up:()=>TE,down:()=>NE});async function TE(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function NE(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Qx={};m(Qx,{up:()=>KE,down:()=>EE});async function KE(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function EE(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Wx={};m(Wx,{up:()=>zE,down:()=>PE});async function zE(_){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 PE(_){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 Zx={};m(Zx,{up:()=>UE,down:()=>JE});import{sql as $E}from"kysely";async function UE(_){await $E`
208
208
  DELETE FROM downstream_tokens
209
209
  WHERE id NOT IN (
210
210
  SELECT id FROM (
@@ -214,7 +214,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
214
214
  ) ranked
215
215
  WHERE rn = 1
216
216
  )
217
- `.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 zE(_){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 Zx={};m(Zx,{up:()=>PE,down:()=>$E});async function PE(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function $E(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Dx={};m(Dx,{up:()=>UE,down:()=>JE});import{sql as OT}from"kysely";async function UE(_){await OT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function JE(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await OT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Lx={};m(Lx,{up:()=>XE,down:()=>jE});async function XE(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function jE(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var nx={};m(nx,{up:()=>QE,down:()=>WE});import{sql as j_}from"kysely";async function QE(_){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(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j_`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(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j_`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 WE(_){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 Fx={};m(Fx,{up:()=>ZE,down:()=>DE});async function ZE(_){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 DE(_){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 Rx={};m(Rx,{up:()=>LE,down:()=>nE});async function LE(_){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 nE(_){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 Yx={};m(Yx,{up:()=>FE,down:()=>RE});import{sql as Z}from"kysely";async function FE(_){await Z`
217
+ `.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 JE(_){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 Dx={};m(Dx,{up:()=>XE,down:()=>jE});async function XE(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function jE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Lx={};m(Lx,{up:()=>QE,down:()=>WE});import{sql as ST}from"kysely";async function QE(_){await ST`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function WE(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await ST`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Fx={};m(Fx,{up:()=>ZE,down:()=>DE});async function ZE(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function DE(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Rx={};m(Rx,{up:()=>LE,down:()=>FE});import{sql as j_}from"kysely";async function LE(_){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(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j_`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(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j_`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 FE(_){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 Yx={};m(Yx,{up:()=>RE,down:()=>YE});async function RE(_){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 YE(_){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 Hx={};m(Hx,{up:()=>HE,down:()=>ME});async function HE(_){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 ME(_){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 Mx={};m(Mx,{up:()=>nE,down:()=>BE});import{sql as Z}from"kysely";async function nE(_){await Z`
218
218
  INSERT INTO connections (
219
219
  id,
220
220
  organization_id,
@@ -261,7 +261,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
261
261
  created_at,
262
262
  updated_at
263
263
  FROM virtual_mcps
264
- `.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 Z`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await Z`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 Z`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await Z`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 RE(_){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(Z`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Z`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await Z`
264
+ `.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 Z`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await Z`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 Z`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await Z`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 BE(_){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(Z`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Z`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await Z`
265
265
  INSERT INTO virtual_mcps (
266
266
  id, organization_id, title, description, icon, status,
267
267
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -271,7 +271,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
271
271
  created_at, updated_at, created_by, NULL, 'inclusion'
272
272
  FROM connections
273
273
  WHERE connection_type = 'VIRTUAL'
274
- `.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 Z`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 Hx={};m(Hx,{up:()=>YE,down:()=>HE});async function YE(_){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 HE(_){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 Mx={};m(Mx,{up:()=>ME,down:()=>BE});import{sql as B}from"kysely";async function ME(_){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(B`CURRENT_TIMESTAMP`)).execute(),await B`
274
+ `.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 Z`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 nx={};m(nx,{up:()=>GE,down:()=>yE});async function GE(_){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 yE(_){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 Bx={};m(Bx,{up:()=>fE,down:()=>OE});import{sql as B}from"kysely";async function fE(_){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(B`CURRENT_TIMESTAMP`)).execute(),await B`
275
275
  INSERT INTO connection_aggregations_new (
276
276
  id, parent_connection_id, child_connection_id,
277
277
  selected_tools, selected_resources, selected_prompts, created_at
@@ -280,7 +280,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
280
280
  id, parent_connection_id, child_connection_id,
281
281
  selected_tools, selected_resources, selected_prompts, created_at
282
282
  FROM connection_aggregations
283
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await B`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await B`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await B`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 BE(_){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(B`CURRENT_TIMESTAMP`)).execute(),await B`
283
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await B`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await B`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await B`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 OE(_){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(B`CURRENT_TIMESTAMP`)).execute(),await B`
284
284
  INSERT INTO connection_aggregations_new (
285
285
  id, parent_connection_id, child_connection_id,
286
286
  selected_tools, selected_resources, selected_prompts, created_at
@@ -289,7 +289,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
289
289
  id, parent_connection_id, child_connection_id,
290
290
  selected_tools, selected_resources, selected_prompts, created_at
291
291
  FROM connection_aggregations
292
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await B`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await B`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await B`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 yx={};m(yx,{up:()=>yE,down:()=>GE});import{sql as Bx}from"kysely";async function yE(_){await Bx`
292
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await B`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await B`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await B`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 yx={};m(yx,{up:()=>SE,down:()=>AE});import{sql as Gx}from"kysely";async function SE(_){await Gx`
293
293
  UPDATE connections
294
294
  SET connection_url = connection_url || '/management',
295
295
  tools = NULL,
@@ -297,42 +297,42 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
297
297
  WHERE connection_url LIKE '%/mcp'
298
298
  AND connection_url NOT LIKE '%/mcp/management'
299
299
  AND app_name = '@deco/management-mcp'
300
- `.execute(_),await Bx`
300
+ `.execute(_),await Gx`
301
301
  UPDATE connections
302
302
  SET tools = NULL,
303
303
  updated_at = CURRENT_TIMESTAMP
304
304
  WHERE app_name = '@deco/management-mcp'
305
305
  AND tools IS NOT NULL
306
- `.execute(_)}async function GE(_){await Bx`
306
+ `.execute(_)}async function AE(_){await Gx`
307
307
  UPDATE connections
308
308
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
309
309
  updated_at = CURRENT_TIMESTAMP
310
310
  WHERE connection_url LIKE '%/mcp/management'
311
311
  AND app_name = '@deco/management-mcp'
312
- `.execute(_)}var fx={};m(fx,{up:()=>fE,down:()=>OE});import{sql as Gx}from"kysely";async function fE(_){await Gx`
312
+ `.execute(_)}var Ox={};m(Ox,{up:()=>IE,down:()=>wE});import{sql as fx}from"kysely";async function IE(_){await fx`
313
313
  UPDATE connections
314
314
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
315
315
  tools = NULL,
316
316
  updated_at = CURRENT_TIMESTAMP
317
317
  WHERE connection_url LIKE '%/mcp/management'
318
318
  AND app_name = '@deco/management-mcp'
319
- `.execute(_),await Gx`
319
+ `.execute(_),await fx`
320
320
  UPDATE connections
321
321
  SET tools = NULL,
322
322
  updated_at = CURRENT_TIMESTAMP
323
323
  WHERE connection_url LIKE '%/mcp/self'
324
324
  AND app_name = '@deco/management-mcp'
325
325
  AND tools IS NOT NULL
326
- `.execute(_)}async function OE(_){await Gx`
326
+ `.execute(_)}async function wE(_){await fx`
327
327
  UPDATE connections
328
328
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
329
329
  updated_at = CURRENT_TIMESTAMP
330
330
  WHERE connection_url LIKE '%/mcp/self'
331
331
  AND app_name = '@deco/management-mcp'
332
- `.execute(_)}var Ox={};m(Ox,{up:()=>SE,down:()=>AE});async function SE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function AE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var Sx={};m(Sx,{up:()=>IE,down:()=>wE});import{sql as ST}from"kysely";async function IE(_){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(ST`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(ST`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 wE(_){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 Ax={};m(Ax,{up:()=>VE,down:()=>kE});import{sql as d}from"kysely";async function VE(_){await d`
332
+ `.execute(_)}var Sx={};m(Sx,{up:()=>VE,down:()=>kE});async function VE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function kE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var Ax={};m(Ax,{up:()=>pE,down:()=>tE});import{sql as AT}from"kysely";async function pE(_){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(AT`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(AT`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 tE(_){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 Ix={};m(Ix,{up:()=>iE,down:()=>vE});import{sql as d}from"kysely";async function iE(_){await d`
333
333
  ALTER TABLE connection_aggregations
334
334
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
335
- `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function kE(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await d`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await d`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(d`CURRENT_TIMESTAMP`)).execute(),await d`
335
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function vE(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await d`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await d`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(d`CURRENT_TIMESTAMP`)).execute(),await d`
336
336
  INSERT INTO connection_aggregations_new (
337
337
  id, parent_connection_id, child_connection_id,
338
338
  selected_tools, selected_resources, selected_prompts, created_at
@@ -341,42 +341,42 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
341
341
  id, parent_connection_id, child_connection_id,
342
342
  selected_tools, selected_resources, selected_prompts, created_at
343
343
  FROM connection_aggregations
344
- `.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 Ix={};m(Ix,{up:()=>qE,down:()=>gE});import{webcrypto as IT}from"crypto";var AT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var pE=128,V,p;function tE(_){if(!V||V.length<_)V=Buffer.allocUnsafe(_*pE),IT.getRandomValues(V),p=0;else if(p+_>V.length)IT.getRandomValues(V),p=0;p+=_}function t(_=21){tE(_|=0);let x="";for(let u=p-_;u<p;u++)x+=AT[V[u]&63];return x}var iE="org-admin",vE="Organization Admin";async function qE(_){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 T=new Date().toISOString(),C=`proj_${t()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:iE,name:vE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function gE(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var wx={};m(wx,{up:()=>cE,down:()=>hE});async function cE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function hE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var Vx={};m(Vx,{up:()=>oE,down:()=>aE});async function oE(_){}async function aE(_){}var kx={};m(kx,{up:()=>rE,down:()=>eE});async function rE(_){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 eE(_){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 px={};m(px,{up:()=>lE,down:()=>dE});import{sql as wT}from"kysely";async function lE(_){await wT`
344
+ `.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 wx={};m(wx,{up:()=>oE,down:()=>aE});import{webcrypto as wT}from"crypto";var IT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var qE=128,V,p;function gE(_){if(!V||V.length<_)V=Buffer.allocUnsafe(_*qE),wT.getRandomValues(V),p=0;else if(p+_>V.length)wT.getRandomValues(V),p=0;p+=_}function t(_=21){gE(_|=0);let x="";for(let u=p-_;u<p;u++)x+=IT[V[u]&63];return x}var cE="org-admin",hE="Organization Admin";async function oE(_){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 T=new Date().toISOString(),C=`proj_${t()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:cE,name:hE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function aE(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var Vx={};m(Vx,{up:()=>rE,down:()=>eE});async function rE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function eE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var kx={};m(kx,{up:()=>lE,down:()=>dE});async function lE(_){}async function dE(_){}var px={};m(px,{up:()=>sE,down:()=>bE});async function sE(_){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 bE(_){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 tx={};m(tx,{up:()=>_z,down:()=>xz});import{sql as VT}from"kysely";async function _z(_){await VT`
345
345
  UPDATE connections
346
346
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
347
347
  tools = NULL,
348
348
  updated_at = CURRENT_TIMESTAMP
349
349
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
350
350
  AND app_name = 'deco-registry'
351
- `.execute(_)}async function dE(_){await wT`
351
+ `.execute(_)}async function xz(_){await VT`
352
352
  UPDATE connections
353
353
  SET connection_url = 'https://api.decocms.com/mcp/registry',
354
354
  updated_at = CURRENT_TIMESTAMP
355
355
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
356
356
  AND app_name = 'deco-registry'
357
- `.execute(_)}var tx={};m(tx,{up:()=>bE,down:()=>_z});import{sql as sE}from"kysely";async function bE(_){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(sE`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 _z(_){await _.schema.dropTable("ai_provider_keys").execute()}var ix={};m(ix,{up:()=>uz,down:()=>mz});import{sql as xz}from"kysely";async function uz(_){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(xz`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function mz(_){await _.schema.dropTable("oauth_pkce_states").execute()}var vx={};m(vx,{up:()=>Cz,down:()=>Tz});import{sql as S}from"kysely";async function Cz(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(S`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(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`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(S`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(S`CURRENT_TIMESTAMP`)).execute(),await S`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await S`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await S`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 Tz(_){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 qx={};m(qx,{up:()=>Nz,down:()=>Kz});async function Nz(_){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 Kz(_){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 gx={};m(gx,{up:()=>Ez,down:()=>zz});async function Ez(_){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 zz(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var cx={};m(cx,{up:()=>Pz,down:()=>$z});import{sql as VT}from"kysely";async function Pz(_){await VT`
357
+ `.execute(_)}var ix={};m(ix,{up:()=>mz,down:()=>Cz});import{sql as uz}from"kysely";async function mz(_){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(uz`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 Cz(_){await _.schema.dropTable("ai_provider_keys").execute()}var vx={};m(vx,{up:()=>Nz,down:()=>Kz});import{sql as Tz}from"kysely";async function Nz(_){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(Tz`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function Kz(_){await _.schema.dropTable("oauth_pkce_states").execute()}var qx={};m(qx,{up:()=>Ez,down:()=>zz});import{sql as S}from"kysely";async function Ez(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(S`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(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`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(S`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(S`CURRENT_TIMESTAMP`)).execute(),await S`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await S`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await S`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 zz(_){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 gx={};m(gx,{up:()=>Pz,down:()=>$z});async function Pz(_){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 $z(_){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 cx={};m(cx,{up:()=>Uz,down:()=>Jz});async function Uz(_){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 Jz(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var hx={};m(hx,{up:()=>Xz,down:()=>jz});import{sql as kT}from"kysely";async function Xz(_){await kT`
358
358
  UPDATE connections
359
359
  SET title = 'CMS MCP',
360
360
  tools = NULL,
361
361
  updated_at = CURRENT_TIMESTAMP
362
362
  WHERE app_name = '@deco/management-mcp'
363
- `.execute(_)}async function $z(_){await VT`
363
+ `.execute(_)}async function jz(_){await kT`
364
364
  UPDATE connections
365
365
  SET title = 'Mesh MCP',
366
366
  updated_at = CURRENT_TIMESTAMP
367
367
  WHERE app_name = '@deco/management-mcp'
368
- `.execute(_)}var hx={};m(hx,{up:()=>Uz,down:()=>Jz});import{sql as kT}from"kysely";async function Uz(_){await kT`
368
+ `.execute(_)}var ox={};m(ox,{up:()=>Qz,down:()=>Wz});import{sql as pT}from"kysely";async function Qz(_){await pT`
369
369
  UPDATE connections
370
370
  SET title = 'Deco CMS',
371
371
  tools = NULL,
372
372
  updated_at = CURRENT_TIMESTAMP
373
373
  WHERE app_name = '@deco/management-mcp'
374
- `.execute(_)}async function Jz(_){await kT`
374
+ `.execute(_)}async function Wz(_){await pT`
375
375
  UPDATE connections
376
376
  SET title = 'CMS MCP',
377
377
  updated_at = CURRENT_TIMESTAMP
378
378
  WHERE app_name = '@deco/management-mcp'
379
- `.execute(_)}var ox={};m(ox,{up:()=>Xz,down:()=>jz});async function Xz(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function jz(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var ax={};m(ax,{up:()=>Qz,down:()=>Wz});async function Qz(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function Wz(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var ex={};m(ex,{up:()=>Zz,down:()=>Dz});import{sql as rx}from"kysely";async function Zz(_){await rx`
379
+ `.execute(_)}var ax={};m(ax,{up:()=>Zz,down:()=>Dz});async function Zz(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function Dz(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var rx={};m(rx,{up:()=>Lz,down:()=>Fz});async function Lz(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function Fz(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var lx={};m(lx,{up:()=>Rz,down:()=>Yz});import{sql as ex}from"kysely";async function Rz(_){await ex`
380
380
  UPDATE organization_settings
381
381
  SET enabled_plugins = (
382
382
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -385,7 +385,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
385
385
  )
386
386
  WHERE enabled_plugins IS NOT NULL
387
387
  AND enabled_plugins LIKE '%object-storage%'
388
- `.execute(_),await rx`
388
+ `.execute(_),await ex`
389
389
  UPDATE projects
390
390
  SET enabled_plugins = (
391
391
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -394,28 +394,28 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
394
394
  )
395
395
  WHERE enabled_plugins IS NOT NULL
396
396
  AND enabled_plugins LIKE '%object-storage%'
397
- `.execute(_),await rx`
397
+ `.execute(_),await ex`
398
398
  DELETE FROM project_plugin_configs
399
399
  WHERE plugin_id = 'object-storage'
400
- `.execute(_)}async function Dz(_){}var lx={};m(lx,{up:()=>Lz,down:()=>nz});import{sql as pT}from"kysely";async function Lz(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await pT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function nz(_){await pT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var sx={};m(sx,{up:()=>Fz,down:()=>Rz});import{sql as dx}from"kysely";async function Fz(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await dx`
400
+ `.execute(_)}async function Yz(_){}var dx={};m(dx,{up:()=>Hz,down:()=>Mz});import{sql as tT}from"kysely";async function Hz(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await tT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function Mz(_){await tT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var bx={};m(bx,{up:()=>nz,down:()=>Bz});import{sql as sx}from"kysely";async function nz(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await sx`
401
401
  ALTER TABLE connections
402
402
  ADD CONSTRAINT chk_connections_subtype
403
403
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
404
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await dx`
404
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await sx`
405
405
  UPDATE connections
406
406
  SET subtype = 'agent'
407
407
  WHERE connection_type = 'VIRTUAL'
408
- `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(K)=>K.primaryKey()).addColumn("virtual_mcp_id","text",(K)=>K.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(K)=>K.notNull()).addColumn("connection_id","text",(K)=>K.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.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(),T=new Map;for(let K of u)T.set(K.organizationId,K.userId);let C=new Map;for(let K of x){let z=`vir_${t()}`;C.set(K.id,z);let $=K.ui?JSON.parse(K.ui):null,U=JSON.stringify({enabled_plugins:K.enabled_plugins?JSON.parse(K.enabled_plugins):null,ui:$,migrated_from_project:K.id,migrated_project_slug:K.slug}),Q=T.get(K.organization_id);if(!Q)continue;await _.insertInto("connections").values({id:z,organization_id:K.organization_id,created_by:Q,updated_by:null,title:K.name,description:K.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${z}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:K.created_at,updated_at:K.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let K of N){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${t()}`,parent_connection_id:z,child_connection_id:K.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:K.created_at}).onConflict(($)=>$.doNothing()).execute()}let E=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let K of E){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${t()}`,virtual_mcp_id:z,plugin_id:K.plugin_id,connection_id:K.connection_id,settings:K.settings,created_at:K.created_at,updated_at:K.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function Rz(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await dx`
408
+ `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(K)=>K.primaryKey()).addColumn("virtual_mcp_id","text",(K)=>K.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(K)=>K.notNull()).addColumn("connection_id","text",(K)=>K.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.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(),T=new Map;for(let K of u)T.set(K.organizationId,K.userId);let C=new Map;for(let K of x){let z=`vir_${t()}`;C.set(K.id,z);let $=K.ui?JSON.parse(K.ui):null,U=JSON.stringify({enabled_plugins:K.enabled_plugins?JSON.parse(K.enabled_plugins):null,ui:$,migrated_from_project:K.id,migrated_project_slug:K.slug}),Q=T.get(K.organization_id);if(!Q)continue;await _.insertInto("connections").values({id:z,organization_id:K.organization_id,created_by:Q,updated_by:null,title:K.name,description:K.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${z}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:K.created_at,updated_at:K.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let K of N){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${t()}`,parent_connection_id:z,child_connection_id:K.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:K.created_at}).onConflict(($)=>$.doNothing()).execute()}let E=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let K of E){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${t()}`,virtual_mcp_id:z,plugin_id:K.plugin_id,connection_id:K.connection_id,settings:K.settings,created_at:K.created_at,updated_at:K.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function Bz(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await sx`
409
409
  ALTER TABLE connections
410
410
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
411
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var bx={};m(bx,{up:()=>Hz,down:()=>Mz});import{sql as Yz}from"kysely";async function Hz(_){await Yz`
411
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var _u={};m(_u,{up:()=>yz,down:()=>fz});import{sql as Gz}from"kysely";async function yz(_){await Gz`
412
412
  DELETE FROM connections
413
413
  WHERE connection_type = 'VIRTUAL'
414
414
  AND subtype = 'project'
415
415
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
416
- `.execute(_)}async function Mz(_){}var _u={};m(_u,{up:()=>yz,down:()=>Gz});import{sql as Bz}from"kysely";async function yz(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await Bz`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function Gz(_){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 uu={};m(uu,{up:()=>fz,down:()=>Oz});import{sql as xu}from"kysely";async function fz(_){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(xu`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(xu`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(xu`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 Oz(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var mu={};m(mu,{up:()=>Sz,down:()=>Az});async function Sz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function Az(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var Cu={};m(Cu,{up:()=>Iz,down:()=>wz});async function Iz(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function wz(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var Nu={};m(Nu,{up:()=>kz,down:()=>pz});import{sql as tT}from"kysely";function Tu(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Vz(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return Tu(T)}catch{return Tu(_.connection_url)}if(_.title)return Tu(_.title);return _.id}async function kz(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await tT`
416
+ `.execute(_)}async function fz(_){}var xu={};m(xu,{up:()=>Sz,down:()=>Az});import{sql as Oz}from"kysely";async function Sz(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await Oz`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function Az(_){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 mu={};m(mu,{up:()=>Iz,down:()=>wz});import{sql as uu}from"kysely";async function Iz(_){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(uu`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(uu`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(uu`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 wz(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var Cu={};m(Cu,{up:()=>Vz,down:()=>kz});async function Vz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function kz(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var Tu={};m(Tu,{up:()=>pz,down:()=>tz});async function pz(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function tz(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var Ku={};m(Ku,{up:()=>vz,down:()=>qz});import{sql as iT}from"kysely";function Nu(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function iz(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return Nu(T)}catch{return Nu(_.connection_url)}if(_.title)return Nu(_.title);return _.id}async function vz(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await iT`
417
417
  SELECT id, app_name, connection_url, title FROM connections
418
- `.execute(_);for(let u of x.rows){let T=Vz(u);await tT`UPDATE connections SET slug = ${T} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function pz(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var Ku={};m(Ku,{up:()=>tz,down:()=>iz});import{sql as s}from"kysely";async function tz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await s`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await s`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 iz(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await s`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await s`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await s`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 Eu={};m(Eu,{up:()=>vz,down:()=>qz});async function vz(_){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 qz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var zu={};m(zu,{up:()=>gz,down:()=>cz});import{sql as Q_}from"kysely";async function gz(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await Q_`
418
+ `.execute(_);for(let u of x.rows){let T=iz(u);await iT`UPDATE connections SET slug = ${T} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function qz(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var Eu={};m(Eu,{up:()=>gz,down:()=>cz});import{sql as s}from"kysely";async function gz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await s`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await s`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 cz(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await s`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await s`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await s`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 zu={};m(zu,{up:()=>hz,down:()=>oz});async function hz(_){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 oz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var Pu={};m(Pu,{up:()=>az,down:()=>rz});import{sql as Q_}from"kysely";async function az(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await Q_`
419
419
  UPDATE threads
420
420
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
421
421
  WHERE agent_ids IS NOT NULL
@@ -425,14 +425,14 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
425
425
  `.execute(_),await Q_`
426
426
  CREATE INDEX idx_threads_virtual_mcp_id
427
427
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
428
- `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function cz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await Q_`
428
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function rz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await Q_`
429
429
  UPDATE threads
430
430
  SET agent_ids = CASE
431
431
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
432
432
  THEN jsonb_build_array(virtual_mcp_id)::text
433
433
  ELSE '[]'
434
434
  END
435
- `.execute(_),await Q_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Pu={};m(Pu,{up:()=>hz,down:()=>oz});async function hz(_){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 oz(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var $u={};m($u,{up:()=>az,down:()=>rz});async function az(_){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 rz(_){await _.schema.dropTable("kv").execute()}var Uu={};m(Uu,{up:()=>ez,down:()=>lz});async function ez(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function lz(_){await _.schema.dropIndex("idx_member_user_org").execute()}var Ju={};m(Ju,{up:()=>dz,down:()=>sz});async function dz(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function sz(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var Xu={};m(Xu,{up:()=>bz,down:()=>_0});import{sql as n}from"kysely";async function bz(_){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(n`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n`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 n`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(n`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n`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 n`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(n`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(n`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(n`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(n`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n`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 _0(_){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 ju={};m(ju,{up:()=>x0,down:()=>u0});import{sql as i}from"kysely";async function x0(_){await i`
435
+ `.execute(_),await Q_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var $u={};m($u,{up:()=>ez,down:()=>lz});async function ez(_){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 lz(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Uu={};m(Uu,{up:()=>dz,down:()=>sz});async function dz(_){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 sz(_){await _.schema.dropTable("kv").execute()}var Ju={};m(Ju,{up:()=>bz,down:()=>_0});async function bz(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function _0(_){await _.schema.dropIndex("idx_member_user_org").execute()}var Xu={};m(Xu,{up:()=>x0,down:()=>u0});async function x0(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function u0(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var ju={};m(ju,{up:()=>m0,down:()=>C0});import{sql as F}from"kysely";async function m0(_){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(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`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 F`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(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`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 F`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(F`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(F`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(F`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(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`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 C0(_){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 Qu={};m(Qu,{up:()=>T0,down:()=>N0});import{sql as i}from"kysely";async function T0(_){await i`
436
436
  ALTER TABLE event_subscriptions
437
437
  ALTER COLUMN enabled DROP DEFAULT
438
438
  `.execute(_),await i`
@@ -442,7 +442,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
442
442
  `.execute(_),await i`
443
443
  ALTER TABLE event_subscriptions
444
444
  ALTER COLUMN enabled SET DEFAULT true
445
- `.execute(_)}async function u0(_){await i`
445
+ `.execute(_)}async function N0(_){await i`
446
446
  ALTER TABLE event_subscriptions
447
447
  ALTER COLUMN enabled DROP DEFAULT
448
448
  `.execute(_),await i`
@@ -452,7 +452,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
452
452
  `.execute(_),await i`
453
453
  ALTER TABLE event_subscriptions
454
454
  ALTER COLUMN enabled SET DEFAULT 1
455
- `.execute(_)}var Qu={};m(Qu,{up:()=>m0,down:()=>C0});import{sql as iT}from"kysely";async function m0(_){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(iT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function C0(_){await _.schema.dropTable("brand_context").execute()}var Wu={};m(Wu,{up:()=>T0,down:()=>N0});import{sql as vT}from"kysely";async function T0(_){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(vT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(vT`now()`)).execute()}async function N0(_){await _.schema.dropTable("organization_domains").execute()}var Zu={};m(Zu,{up:()=>P0,down:()=>$0});import{sql as qT}from"kysely";var W_=new Set(["primary","secondary","accent","background","foreground"]),K0={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function E0(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>W_.has(C))){let C={};for(let[N,E]of Object.entries(u)){if(typeof E!=="string")continue;if(W_.has(N))C[N]=E;else x[N]=E}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let T={};for(let[C,N]of Object.entries(u)){if(typeof N!=="string")continue;if(W_.has(C.toLowerCase()))T[C.toLowerCase()]=N;else x[C]=N}return{structured:Object.keys(T).length>0?JSON.stringify(T):null,extra:x}}if(Array.isArray(_)){let u={};for(let T of _){let C=T,N=C.label?.toLowerCase?.(),E=C.value;if(!N||!E)continue;if(W_.has(N))u[N]=E;else x[N]=E}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function z0(_){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 T of _){let C=T,N=C.name??C.family??void 0,E=C.role?.toLowerCase?.()??"";if(!N)continue;let K=K0[E];if(K&&!x[K])x[K]=N;else u.push(N)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function P0(_){let x=await qT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let T=!1,C=!1,N=!1,E=u.colors,K=u.fonts,z={};try{z=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=E0($);if(E=U.structured,T=!0,Object.keys(U.extra).length>0)z.extraColors=U.extra,N=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))K=z0($),C=!0}catch{}if(T||C||N){let $=N?JSON.stringify(z):u.metadata;await qT`
455
+ `.execute(_)}var Wu={};m(Wu,{up:()=>K0,down:()=>E0});import{sql as vT}from"kysely";async function K0(_){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(vT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(vT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function E0(_){await _.schema.dropTable("brand_context").execute()}var Zu={};m(Zu,{up:()=>z0,down:()=>P0});import{sql as qT}from"kysely";async function z0(_){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(qT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qT`now()`)).execute()}async function P0(_){await _.schema.dropTable("organization_domains").execute()}var Du={};m(Du,{up:()=>X0,down:()=>j0});import{sql as gT}from"kysely";var W_=new Set(["primary","secondary","accent","background","foreground"]),$0={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function U0(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>W_.has(C))){let C={};for(let[N,E]of Object.entries(u)){if(typeof E!=="string")continue;if(W_.has(N))C[N]=E;else x[N]=E}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let T={};for(let[C,N]of Object.entries(u)){if(typeof N!=="string")continue;if(W_.has(C.toLowerCase()))T[C.toLowerCase()]=N;else x[C]=N}return{structured:Object.keys(T).length>0?JSON.stringify(T):null,extra:x}}if(Array.isArray(_)){let u={};for(let T of _){let C=T,N=C.label?.toLowerCase?.(),E=C.value;if(!N||!E)continue;if(W_.has(N))u[N]=E;else x[N]=E}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function J0(_){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 T of _){let C=T,N=C.name??C.family??void 0,E=C.role?.toLowerCase?.()??"";if(!N)continue;let K=$0[E];if(K&&!x[K])x[K]=N;else u.push(N)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function X0(_){let x=await gT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let T=!1,C=!1,N=!1,E=u.colors,K=u.fonts,z={};try{z=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=U0($);if(E=U.structured,T=!0,Object.keys(U.extra).length>0)z.extraColors=U.extra,N=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))K=J0($),C=!0}catch{}if(T||C||N){let $=N?JSON.stringify(z):u.metadata;await gT`
456
456
  UPDATE brand_context
457
457
  SET
458
458
  colors = ${E},
@@ -460,20 +460,20 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
460
460
  metadata = ${$},
461
461
  updated_at = NOW()
462
462
  WHERE id = ${u.id}
463
- `.execute(_)}}}async function $0(_){}var Du={};m(Du,{up:()=>J0,down:()=>X0});import{sql as U0}from"kysely";async function J0(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(U0`'{}'::jsonb`)).execute()}async function X0(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var Lu={};m(Lu,{up:()=>j0,down:()=>Q0});async function j0(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function Q0(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var nu={};m(nu,{up:()=>W0,down:()=>Z0});async function W0(_){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 Z0(_){await _.schema.dropTable("sandbox_runner_state").execute()}var Fu={};m(Fu,{up:()=>D0,down:()=>L0});async function D0(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function L0(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Ru={};m(Ru,{up:()=>n0,down:()=>F0});async function n0(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function F0(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Yu={};m(Yu,{up:()=>R0,down:()=>Y0});async function R0(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function Y0(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Hu={};m(Hu,{up:()=>M0,down:()=>B0});import{sql as gT}from"kysely";var H0=["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 M0(_){let x=await gT`
463
+ `.execute(_)}}}async function j0(_){}var Lu={};m(Lu,{up:()=>W0,down:()=>Z0});import{sql as Q0}from"kysely";async function W0(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(Q0`'{}'::jsonb`)).execute()}async function Z0(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var Fu={};m(Fu,{up:()=>D0,down:()=>L0});async function D0(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function L0(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Ru={};m(Ru,{up:()=>F0,down:()=>R0});async function F0(_){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 R0(_){await _.schema.dropTable("sandbox_runner_state").execute()}var Yu={};m(Yu,{up:()=>Y0,down:()=>H0});async function Y0(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function H0(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Hu={};m(Hu,{up:()=>M0,down:()=>n0});async function M0(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function n0(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Mu={};m(Mu,{up:()=>B0,down:()=>G0});async function B0(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function G0(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var nu={};m(nu,{up:()=>f0,down:()=>O0});import{sql as cT}from"kysely";var y0=["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 f0(_){let x=await cT`
464
464
  SELECT id, permission FROM "organizationRole"
465
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...H0]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await gT`
465
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...y0]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await cT`
466
466
  UPDATE "organizationRole"
467
467
  SET permission = ${K}
468
468
  WHERE id = ${u.id}
469
- `.execute(_)}}async function B0(_){}var Mu={};m(Mu,{up:()=>y0,down:()=>G0});async function y0(_){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 G0(_){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 Bu={};m(Bu,{up:()=>f0,down:()=>O0});async function f0(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function O0(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var yu={};m(yu,{up:()=>S0,down:()=>A0});import{sql as b}from"kysely";async function S0(_){await b`
469
+ `.execute(_)}}async function O0(_){}var Bu={};m(Bu,{up:()=>S0,down:()=>A0});async function S0(_){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 A0(_){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 Gu={};m(Gu,{up:()=>I0,down:()=>w0});async function I0(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function w0(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var yu={};m(yu,{up:()=>V0,down:()=>k0});import{sql as b}from"kysely";async function V0(_){await b`
470
470
  UPDATE automations
471
471
  SET virtual_mcp_id = (agent::json ->> 'id')
472
472
  WHERE virtual_mcp_id IS NULL
473
473
  `.execute(_),await b`
474
474
  ALTER TABLE automations
475
475
  ALTER COLUMN virtual_mcp_id SET NOT NULL
476
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function A0(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await b`
476
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function k0(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await b`
477
477
  UPDATE automations
478
478
  SET agent = json_build_object('id', virtual_mcp_id)::text
479
479
  `.execute(_),await b`
@@ -482,7 +482,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
482
482
  `.execute(_),await b`
483
483
  ALTER TABLE automations
484
484
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
485
- `.execute(_)}var fu={};m(fu,{up:()=>k0,reshapeSimpleMode:()=>cT,inferAutomationTier:()=>hT,down:()=>p0,__testing:()=>V0});var I0={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},w0=["fast","smart","thinking","image","web_research"];function Gu(_){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 w0.some((T)=>(T in u))}function cT(_){if(Gu(_))return _;let x=_,u=x?.enabled===!0,T=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return I0;return{tiers:{fast:T(x?.chat?.fast),smart:T(x?.chat?.smart),thinking:T(x?.chat?.thinking),image:T(x?.image),web_research:T(x?.webResearch)}}}function hT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function oT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var V0={isAlreadyReshapedSimpleMode:Gu,isAlreadyReshapedAutomationModels:oT};async function k0(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let T of x){let C=T.simple_mode?typeof T.simple_mode==="string"?JSON.parse(T.simple_mode):T.simple_mode:null;if(Gu(C))continue;let N=cT(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(N)}).where("organizationId","=",T.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let T of u){let C;try{C=typeof T.models==="string"?JSON.parse(T.models):T.models}catch{C={}}if(oT(C))continue;let N=hT(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:N})}).where("id","=",T.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${T.id} previously used an image-only model; mapped to "${N}"`)}}async function p0(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Ou={};m(Ou,{up:()=>t0,down:()=>i0});import{sql as f}from"kysely";async function t0(_){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 f`
485
+ `.execute(_)}var Ou={};m(Ou,{up:()=>v0,reshapeSimpleMode:()=>hT,inferAutomationTier:()=>oT,down:()=>q0,__testing:()=>i0});var p0={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},t0=["fast","smart","thinking","image","web_research"];function fu(_){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 t0.some((T)=>(T in u))}function hT(_){if(fu(_))return _;let x=_,u=x?.enabled===!0,T=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return p0;return{tiers:{fast:T(x?.chat?.fast),smart:T(x?.chat?.smart),thinking:T(x?.chat?.thinking),image:T(x?.image),web_research:T(x?.webResearch)}}}function oT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function aT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var i0={isAlreadyReshapedSimpleMode:fu,isAlreadyReshapedAutomationModels:aT};async function v0(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let T of x){let C=T.simple_mode?typeof T.simple_mode==="string"?JSON.parse(T.simple_mode):T.simple_mode:null;if(fu(C))continue;let N=hT(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(N)}).where("organizationId","=",T.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let T of u){let C;try{C=typeof T.models==="string"?JSON.parse(T.models):T.models}catch{C={}}if(aT(C))continue;let N=oT(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:N})}).where("id","=",T.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${T.id} previously used an image-only model; mapped to "${N}"`)}}async function q0(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Su={};m(Su,{up:()=>g0,down:()=>c0});import{sql as f}from"kysely";async function g0(_){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 f`
486
486
  ALTER TABLE automations
487
487
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
488
488
  `.execute(_),await f`
@@ -504,19 +504,19 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
504
504
  AND tool_input IS NOT NULL
505
505
  )
506
506
  )
507
- `.execute(_)}async function i0(_){await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await f`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await f`
507
+ `.execute(_)}async function c0(_){await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await f`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await f`
508
508
  ALTER TABLE automations
509
509
  ALTER COLUMN virtual_mcp_id SET NOT NULL
510
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var Su={};m(Su,{up:()=>q0,down:()=>g0});import{sql as aT}from"kysely";var v0=new Set(["host","docker","agent-sandbox"]);async function q0(_){let x=await aT`
510
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var Au={};m(Au,{up:()=>o0,down:()=>a0});import{sql as rT}from"kysely";var h0=new Set(["host","docker","agent-sandbox"]);async function o0(_){let x=await rT`
511
511
  SELECT id, metadata FROM "connections"
512
512
  WHERE connection_type = 'VIRTUAL'
513
513
  AND metadata IS NOT NULL
514
514
  AND metadata LIKE '%vmMap%'
515
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.vmMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}let H=X.runnerKind;if(H!==void 0&&!v0.has(H)){N=!0;continue}U[Q]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.vmMap=E;let K=JSON.stringify(T);await aT`
515
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.vmMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}let M=X.runnerKind;if(M!==void 0&&!h0.has(M)){N=!0;continue}U[Q]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.vmMap=E;let K=JSON.stringify(T);await rT`
516
516
  UPDATE "connections"
517
517
  SET metadata = ${K}
518
518
  WHERE id = ${u.id}
519
- `.execute(_)}}async function g0(_){}var Au={};m(Au,{up:()=>c0,down:()=>h0});import{sql as __}from"kysely";async function c0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(__`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(__`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`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 __`
519
+ `.execute(_)}}async function a0(_){}var Iu={};m(Iu,{up:()=>r0,down:()=>e0});import{sql as __}from"kysely";async function r0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(__`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(__`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`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 __`
520
520
  CREATE INDEX async_research_jobs_active_idx
521
521
  ON async_research_jobs (status, last_polled_at)
522
522
  WHERE status IN ('pending', 'polling')
@@ -524,7 +524,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
524
524
  ALTER TABLE async_research_jobs
525
525
  ADD CONSTRAINT chk_async_research_jobs_status
526
526
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
527
- `.execute(_)}async function h0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var Iu={};m(Iu,{up:()=>o0,down:()=>a0});async function o0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function a0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var wu={};m(wu,{up:()=>r0,down:()=>e0});import{sql as v}from"kysely";async function r0(_){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(v`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(v`CURRENT_TIMESTAMP`)).execute(),await v`
527
+ `.execute(_)}async function e0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var wu={};m(wu,{up:()=>l0,down:()=>d0});async function l0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function d0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var Vu={};m(Vu,{up:()=>s0,down:()=>b0});import{sql as v}from"kysely";async function s0(_){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(v`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(v`CURRENT_TIMESTAMP`)).execute(),await v`
528
528
  ALTER TABLE secrets
529
529
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
530
530
  `.execute(_),await v`
@@ -541,7 +541,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
541
541
  CREATE UNIQUE INDEX idx_secrets_org_name
542
542
  ON secrets (organization_id, lower(name))
543
543
  WHERE scope = 'organization'
544
- `.execute(_)}async function e0(_){await _.schema.dropTable("secrets").execute()}var Vu={};m(Vu,{up:()=>l0,down:()=>d0});async function l0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function d0(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var ku={};m(ku,{up:()=>b0,down:()=>_P});import{sql as s0}from"kysely";async function b0(_){await s0`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function _P(_){}var pu={};m(pu,{up:()=>xP,down:()=>uP});import{sql as Z_}from"kysely";async function xP(_){await Z_`
544
+ `.execute(_)}async function b0(_){await _.schema.dropTable("secrets").execute()}var ku={};m(ku,{up:()=>_P,down:()=>xP});async function _P(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function xP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var pu={};m(pu,{up:()=>mP,down:()=>CP});import{sql as uP}from"kysely";async function mP(_){await uP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function CP(_){}var tu={};m(tu,{up:()=>TP,down:()=>NP});import{sql as Z_}from"kysely";async function TP(_){await Z_`
545
545
  ALTER TABLE sandbox_runner_state
546
546
  RENAME COLUMN runner_kind TO sandbox_provider_kind
547
547
  `.execute(_),await Z_`
@@ -579,7 +579,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
579
579
  EXCEPTION WHEN undefined_table THEN
580
580
  NULL;
581
581
  END; $$
582
- `.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 Z_`
582
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function NP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await Z_`
583
583
  ALTER TABLE sandbox_runner_state
584
584
  RENAME COLUMN sandbox_provider_kind TO runner_kind
585
585
  `.execute(_),await Z_`
@@ -617,7 +617,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
617
617
  EXCEPTION WHEN undefined_table THEN
618
618
  NULL;
619
619
  END; $$
620
- `.execute(_)}var tu={};m(tu,{up:()=>mP,down:()=>CP});import{sql as rT}from"kysely";async function mP(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await rT`
620
+ `.execute(_)}var iu={};m(iu,{up:()=>KP,down:()=>EP});import{sql as eT}from"kysely";async function KP(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await eT`
621
621
  DO $$ BEGIN
622
622
  UPDATE virtualmcps v
623
623
  SET metadata = jsonb_set(
@@ -656,7 +656,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
656
656
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
657
657
  NULL;
658
658
  END; $$
659
- `.execute(_)}async function CP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await rT`
659
+ `.execute(_)}async function EP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await eT`
660
660
  DO $$ BEGIN
661
661
  UPDATE virtualmcps v
662
662
  SET metadata = jsonb_set(
@@ -689,7 +689,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
689
689
  EXCEPTION WHEN undefined_table THEN
690
690
  NULL;
691
691
  END; $$
692
- `.execute(_)}var iu={};m(iu,{up:()=>TP,down:()=>NP});import{sql as eT}from"kysely";async function TP(_){await eT`
692
+ `.execute(_)}var vu={};m(vu,{up:()=>zP,down:()=>PP});import{sql as lT}from"kysely";async function zP(_){await lT`
693
693
  UPDATE connections c
694
694
  SET metadata = (
695
695
  jsonb_set(
@@ -733,7 +733,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
733
733
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
734
734
  WHERE entry ? 'vmId'
735
735
  );
736
- `.execute(_),await eT`
736
+ `.execute(_),await lT`
737
737
  UPDATE connections c
738
738
  SET metadata = (
739
739
  jsonb_set(
@@ -787,10 +787,10 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
787
787
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
788
788
  WHERE inner_entry ? 'runnerKind'
789
789
  );
790
- `.execute(_)}async function NP(_){}var vu={};m(vu,{up:()=>EP,down:()=>zP});import{sql as KP}from"kysely";async function EP(_){await KP`
790
+ `.execute(_)}async function PP(_){}var qu={};m(qu,{up:()=>UP,down:()=>JP});import{sql as $P}from"kysely";async function UP(_){await $P`
791
791
  DELETE FROM ai_provider_keys
792
792
  WHERE provider_id IN ('claude-code', 'codex')
793
- `.execute(_)}async function zP(_){}var qu={};m(qu,{up:()=>PP,down:()=>$P});import{sql as D_}from"kysely";async function PP(_){await D_`
793
+ `.execute(_)}async function JP(_){}var gu={};m(gu,{up:()=>XP,down:()=>jP});import{sql as D_}from"kysely";async function XP(_){await D_`
794
794
  UPDATE sandbox_runner_state
795
795
  SET sandbox_provider_kind = 'desktop'
796
796
  WHERE sandbox_provider_kind = 'remote-user'
@@ -888,13 +888,13 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
888
888
  UPDATE threads
889
889
  SET sandbox_provider_kind = 'desktop'
890
890
  WHERE sandbox_provider_kind = 'remote-user'
891
- `.execute(_)}async function $P(_){}var gu={};m(gu,{up:()=>UP,down:()=>JP});import{sql as x_}from"kysely";async function UP(_){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 JP(_){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 cu={};m(cu,{up:()=>XP,down:()=>jP});import{sql as lT}from"kysely";async function XP(_){await lT`
891
+ `.execute(_)}async function jP(_){}var cu={};m(cu,{up:()=>QP,down:()=>WP});import{sql as x_}from"kysely";async function QP(_){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 WP(_){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 hu={};m(hu,{up:()=>ZP,down:()=>DP});import{sql as dT}from"kysely";async function ZP(_){await dT`
892
892
  ALTER TABLE organization_domains
893
893
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
894
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function jP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await lT`
894
+ `.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 dT`
895
895
  ALTER TABLE organization_domains
896
896
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
897
- `.execute(_)}var hu={};m(hu,{up:()=>QP,down:()=>WP});import{sql as L_}from"kysely";async function QP(_){await L_`
897
+ `.execute(_)}var ou={};m(ou,{up:()=>LP,down:()=>FP});import{sql as L_}from"kysely";async function LP(_){await L_`
898
898
  UPDATE sandbox_runner_state
899
899
  SET sandbox_provider_kind = CASE sandbox_provider_kind
900
900
  WHEN 'docker' THEN 'local-docker'
@@ -983,19 +983,19 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
983
983
  WHERE c.connection_type = 'VIRTUAL'
984
984
  AND c.metadata IS NOT NULL
985
985
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
986
- `.execute(_)}async function WP(_){}var ou={};m(ou,{up:()=>DP,down:()=>LP});import{sql as dT}from"kysely";var ZP=["GLOBAL_SEARCH"];async function DP(_){let x=await dT`
986
+ `.execute(_)}async function FP(_){}var au={};m(au,{up:()=>YP,down:()=>HP});import{sql as sT}from"kysely";var RP=["GLOBAL_SEARCH"];async function YP(_){let x=await sT`
987
987
  SELECT id, permission FROM "organizationRole"
988
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...ZP]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await dT`
988
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...RP]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await sT`
989
989
  UPDATE "organizationRole"
990
990
  SET permission = ${K}
991
991
  WHERE id = ${u.id}
992
- `.execute(_)}}async function LP(_){}var ru={};m(ru,{up:()=>nP,down:()=>FP});import{sql as au}from"kysely";async function nP(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(au`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(au`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await au`
992
+ `.execute(_)}}async function HP(_){}var eu={};m(eu,{up:()=>MP,down:()=>nP});import{sql as ru}from"kysely";async function MP(_){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(ru`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(ru`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await ru`
993
993
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
994
994
  ON org_file_configs (organization_id, lower(name))
995
- `.execute(_)}async function FP(_){await _.schema.dropTable("org_file_configs").execute()}var eu={};m(eu,{up:()=>RP,down:()=>YP});import{sql as O}from"kysely";async function RP(_){await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await O`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await O`
995
+ `.execute(_)}async function nP(_){await _.schema.dropTable("org_file_configs").execute()}var lu={};m(lu,{up:()=>BP,down:()=>GP});import{sql as O}from"kysely";async function BP(_){await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await O`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await O`
996
996
  ALTER TABLE automations
997
997
  ALTER COLUMN virtual_mcp_id SET NOT NULL
998
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function YP(_){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 O`
998
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function GP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await O`
999
999
  ALTER TABLE automations
1000
1000
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
1001
1001
  `.execute(_),await O`
@@ -1017,83 +1017,83 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1017
1017
  AND tool_input IS NOT NULL
1018
1018
  )
1019
1019
  )
1020
- `.execute(_)}var lu={};m(lu,{up:()=>HP,down:()=>MP});async function HP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function MP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var su={};m(su,{up:()=>BP,down:()=>yP});import{sql as du}from"kysely";var n_="local-docker";async function BP(_){await du`delete from sandbox_runner_state where sandbox_provider_kind = ${n_}`.execute(_);let x=await du`
1020
+ `.execute(_)}var du={};m(du,{up:()=>yP,down:()=>fP});async function yP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function fP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var bu={};m(bu,{up:()=>OP,down:()=>SP});import{sql as su}from"kysely";var F_="local-docker";async function OP(_){await su`delete from sandbox_runner_state where sandbox_provider_kind = ${F_}`.execute(_);let x=await su`
1021
1021
  SELECT id, metadata FROM "connections"
1022
1022
  WHERE connection_type = 'VIRTUAL'
1023
1023
  AND metadata IS NOT NULL
1024
- AND metadata LIKE ${"%"+n_+"%"}
1025
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}if(n_ in X){N=!0;let H={...X};if(delete H[n_],Object.keys(H).length>0)U[Q]=H}else U[Q]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.sandboxMap=E;let K=JSON.stringify(T);await du`
1024
+ AND metadata LIKE ${"%"+F_+"%"}
1025
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}if(F_ in X){N=!0;let M={...X};if(delete M[F_],Object.keys(M).length>0)U[Q]=M}else U[Q]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.sandboxMap=E;let K=JSON.stringify(T);await su`
1026
1026
  UPDATE "connections"
1027
1027
  SET metadata = ${K}
1028
1028
  WHERE id = ${u.id}
1029
- `.execute(_)}}async function yP(_){}var bu={};m(bu,{up:()=>GP,down:()=>fP});import{sql as F_}from"kysely";async function GP(_){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 F_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await F_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await F_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await F_`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 _m={};m(_m,{up:()=>OP,down:()=>SP});async function OP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function SP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var xm={};m(xm,{up:()=>AP,down:()=>IP});async function AP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function IP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var um={};m(um,{up:()=>wP,down:()=>VP});async function wP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function VP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var mm={};m(mm,{up:()=>kP,down:()=>pP});async function kP(_){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 pP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var Cm={};m(Cm,{up:()=>tP,down:()=>iP});async function tP(_){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 iP(_){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 Nm={};m(Nm,{up:()=>qP,down:()=>gP});import{sql as y}from"kysely";var F="cluster",R="agent-sandbox";function q(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function Tm(_,x,u){if(!q(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function R_(_){if(!q(_))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!==R&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!q(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function vP(_,x,u){if(!q(_))return null;let T=!1,C={};for(let[N,E]of Object.entries(_)){if(!q(E)){C[N]=E;continue}let K={};for(let[z,$]of Object.entries(E)){if(!q($)){K[z]=$;continue}let U={};for(let[Q,X]of Object.entries($)){if(Q===x){if(T=!0,!(u in $))U[u]=Tm(X,x,u);else if(!R_($[u])&&R_(X))U[u]=Tm(X,x,u);continue}let H=Tm(X,x,u);if(H!==X)T=!0;if(Q===u&&Q in U&&R_(U[Q])&&!R_(H))continue;U[Q]=H}K[z]=U}C[N]=K}return{sandboxMap:C,changed:T}}async function sT(_,x,u){let T=await y`
1029
+ `.execute(_)}}async function SP(_){}var _m={};m(_m,{up:()=>AP,down:()=>IP});import{sql as R_}from"kysely";async function AP(_){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 R_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await R_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await R_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await R_`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 IP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var xm={};m(xm,{up:()=>wP,down:()=>VP});async function wP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function VP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var um={};m(um,{up:()=>kP,down:()=>pP});async function kP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function pP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var mm={};m(mm,{up:()=>tP,down:()=>iP});async function tP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function iP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var Cm={};m(Cm,{up:()=>vP,down:()=>qP});async function vP(_){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 qP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var Tm={};m(Tm,{up:()=>gP,down:()=>cP});async function gP(_){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 cP(_){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 Km={};m(Km,{up:()=>oP,down:()=>aP});import{sql as G}from"kysely";var R="cluster",Y="agent-sandbox";function q(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function Nm(_,x,u){if(!q(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function Y_(_){if(!q(_))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!==R&&_.sandboxProviderKind!==Y&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!q(_.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 hP(_,x,u){if(!q(_))return null;let T=!1,C={};for(let[N,E]of Object.entries(_)){if(!q(E)){C[N]=E;continue}let K={};for(let[z,$]of Object.entries(E)){if(!q($)){K[z]=$;continue}let U={};for(let[Q,X]of Object.entries($)){if(Q===x){if(T=!0,!(u in $))U[u]=Nm(X,x,u);else if(!Y_($[u])&&Y_(X))U[u]=Nm(X,x,u);continue}let M=Nm(X,x,u);if(M!==X)T=!0;if(Q===u&&Q in U&&Y_(U[Q])&&!Y_(M))continue;U[Q]=M}K[z]=U}C[N]=K}return{sandboxMap:C,changed:T}}async function bT(_,x,u){let T=await G`
1030
1030
  SELECT id, metadata FROM connections
1031
1031
  WHERE connection_type = 'VIRTUAL'
1032
1032
  AND metadata IS NOT NULL
1033
1033
  AND metadata LIKE ${"%"+x+"%"}
1034
- `.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=vP(N.sandboxMap,x,u);if(!E?.changed)continue;N.sandboxMap=E.sandboxMap,await y`
1034
+ `.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=hP(N.sandboxMap,x,u);if(!E?.changed)continue;N.sandboxMap=E.sandboxMap,await G`
1035
1035
  UPDATE connections
1036
1036
  SET metadata = ${JSON.stringify(N)}
1037
1037
  WHERE id = ${C.id}
1038
- `.execute(_)}}async function qP(_){await y`
1038
+ `.execute(_)}}async function oP(_){await G`
1039
1039
  UPDATE threads
1040
- SET sandbox_provider_kind = ${R}
1041
- WHERE sandbox_provider_kind = ${F}
1042
- `.execute(_),await y`
1040
+ SET sandbox_provider_kind = ${Y}
1041
+ WHERE sandbox_provider_kind = ${R}
1042
+ `.execute(_),await G`
1043
1043
  UPDATE sandbox_runner_state canonical
1044
1044
  SET handle = legacy.handle,
1045
1045
  state = legacy.state,
1046
1046
  updated_at = legacy.updated_at
1047
1047
  FROM sandbox_runner_state legacy
1048
- WHERE canonical.sandbox_provider_kind = ${R}
1049
- AND legacy.sandbox_provider_kind = ${F}
1048
+ WHERE canonical.sandbox_provider_kind = ${Y}
1049
+ AND legacy.sandbox_provider_kind = ${R}
1050
1050
  AND canonical.user_id = legacy.user_id
1051
1051
  AND canonical.project_ref = legacy.project_ref
1052
1052
  AND legacy.updated_at > canonical.updated_at
1053
- `.execute(_),await y`
1053
+ `.execute(_),await G`
1054
1054
  DELETE FROM sandbox_runner_state legacy
1055
- WHERE legacy.sandbox_provider_kind = ${F}
1055
+ WHERE legacy.sandbox_provider_kind = ${R}
1056
1056
  AND EXISTS (
1057
1057
  SELECT 1
1058
1058
  FROM sandbox_runner_state canonical
1059
1059
  WHERE canonical.user_id = legacy.user_id
1060
1060
  AND canonical.project_ref = legacy.project_ref
1061
- AND canonical.sandbox_provider_kind = ${R}
1061
+ AND canonical.sandbox_provider_kind = ${Y}
1062
1062
  )
1063
- `.execute(_),await y`
1063
+ `.execute(_),await G`
1064
1064
  UPDATE sandbox_runner_state
1065
- SET sandbox_provider_kind = ${R}
1066
- WHERE sandbox_provider_kind = ${F}
1067
- `.execute(_),await sT(_,F,R)}async function gP(_){await y`
1068
- UPDATE threads
1069
- SET sandbox_provider_kind = ${F}
1065
+ SET sandbox_provider_kind = ${Y}
1070
1066
  WHERE sandbox_provider_kind = ${R}
1071
- `.execute(_),await y`
1067
+ `.execute(_),await bT(_,R,Y)}async function aP(_){await G`
1068
+ UPDATE threads
1069
+ SET sandbox_provider_kind = ${R}
1070
+ WHERE sandbox_provider_kind = ${Y}
1071
+ `.execute(_),await G`
1072
1072
  UPDATE sandbox_runner_state legacy
1073
1073
  SET handle = canonical.handle,
1074
1074
  state = canonical.state,
1075
1075
  updated_at = canonical.updated_at
1076
1076
  FROM sandbox_runner_state canonical
1077
- WHERE legacy.sandbox_provider_kind = ${F}
1078
- AND canonical.sandbox_provider_kind = ${R}
1077
+ WHERE legacy.sandbox_provider_kind = ${R}
1078
+ AND canonical.sandbox_provider_kind = ${Y}
1079
1079
  AND legacy.user_id = canonical.user_id
1080
1080
  AND legacy.project_ref = canonical.project_ref
1081
1081
  AND canonical.updated_at > legacy.updated_at
1082
- `.execute(_),await y`
1082
+ `.execute(_),await G`
1083
1083
  DELETE FROM sandbox_runner_state canonical
1084
- WHERE canonical.sandbox_provider_kind = ${R}
1084
+ WHERE canonical.sandbox_provider_kind = ${Y}
1085
1085
  AND EXISTS (
1086
1086
  SELECT 1
1087
1087
  FROM sandbox_runner_state legacy
1088
1088
  WHERE legacy.user_id = canonical.user_id
1089
1089
  AND legacy.project_ref = canonical.project_ref
1090
- AND legacy.sandbox_provider_kind = ${F}
1090
+ AND legacy.sandbox_provider_kind = ${R}
1091
1091
  )
1092
- `.execute(_),await y`
1092
+ `.execute(_),await G`
1093
1093
  UPDATE sandbox_runner_state
1094
- SET sandbox_provider_kind = ${F}
1095
- WHERE sandbox_provider_kind = ${R}
1096
- `.execute(_),await sT(_,R,F)}var Km={};m(Km,{up:()=>cP,down:()=>hP});import{sql as A}from"kysely";async function cP(_){await A`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(A`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(A`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(A`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(A`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 A`
1094
+ SET sandbox_provider_kind = ${R}
1095
+ WHERE sandbox_provider_kind = ${Y}
1096
+ `.execute(_),await bT(_,Y,R)}var Em={};m(Em,{up:()=>rP,down:()=>eP});import{sql as A}from"kysely";async function rP(_){await A`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(A`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(A`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(A`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(A`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 A`
1097
1097
  CREATE INDEX idx_org_fs_entry_parent
1098
1098
  ON org_fs_entry (organization_id, volume, parent)
1099
1099
  WHERE deleted_at IS NULL
@@ -1101,7 +1101,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1101
1101
  CREATE INDEX idx_org_fs_entry_usage
1102
1102
  ON org_fs_entry (organization_id, volume, size)
1103
1103
  WHERE kind = 'file' AND deleted_at IS NULL
1104
- `.execute(_)}async function hP(_){await _.schema.dropTable("org_fs_entry").execute(),await A`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var Em={};m(Em,{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 zm={};m(zm,{up:()=>rP,down:()=>eP});import{sql as bT}from"kysely";async function rP(_){await bT`
1104
+ `.execute(_)}async function eP(_){await _.schema.dropTable("org_fs_entry").execute(),await A`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var zm={};m(zm,{up:()=>lP,down:()=>dP});async function lP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function dP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var Pm={};m(Pm,{up:()=>sP,down:()=>bP});import{sql as _N}from"kysely";async function sP(_){await _N`
1105
1105
  INSERT INTO "organization" (id, name, slug, "createdAt")
1106
1106
  SELECT
1107
1107
  'org_orgfs_public_skills',
@@ -1115,13 +1115,13 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1115
1115
  END,
1116
1116
  now()
1117
1117
  ON CONFLICT (id) DO NOTHING
1118
- `.execute(_)}async function eP(_){await bT`
1118
+ `.execute(_)}async function bP(_){await _N`
1119
1119
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
1120
- `.execute(_)}var Pm={};m(Pm,{up:()=>lP,down:()=>dP});async function lP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function dP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var $m={};m($m,{up:()=>sP,down:()=>bP});import{sql as _N}from"kysely";async function sP(_){await _N`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function bP(_){await _N`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Um={};m(Um,{up:()=>x$,down:()=>u$});import{sql as _$}from"kysely";async function x$(_){await _$`
1120
+ `.execute(_)}var $m={};m($m,{up:()=>_$,down:()=>x$});async function _$(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function x$(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Um={};m(Um,{up:()=>u$,down:()=>m$});import{sql as xN}from"kysely";async function u$(_){await xN`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function m$(_){await xN`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Jm={};m(Jm,{up:()=>T$,down:()=>N$});import{sql as C$}from"kysely";async function T$(_){await C$`
1121
1121
  UPDATE downstream_tokens
1122
1122
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1123
1123
  WHERE "expiresAt" IS NULL
1124
- `.execute(_)}async function u$(_){}var Jm={};m(Jm,{up:()=>m$,down:()=>C$});async function m$(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function C$(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var Xm={};m(Xm,{up:()=>T$,down:()=>N$});async function T$(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function N$(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var jm={};m(jm,{up:()=>K$,down:()=>E$});async function K$(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function E$(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Qm={};m(Qm,{up:()=>z$,down:()=>P$});async function z$(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function P$(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Wm={};m(Wm,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function U$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Zm={};m(Zm,{up:()=>J$,down:()=>X$});import{sql as xN}from"kysely";async function J$(_){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(xN`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(xN`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function X$(_){await _.schema.dropTable("org_sites").execute()}var Dm={};m(Dm,{up:()=>j$,down:()=>Q$});async function j$(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function Q$(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Lm={};m(Lm,{up:()=>W$,down:()=>Z$});import{sql as D}from"kysely";async function W$(_){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 D`
1124
+ `.execute(_)}async function N$(_){}var Xm={};m(Xm,{up:()=>K$,down:()=>E$});async function K$(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function E$(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var jm={};m(jm,{up:()=>z$,down:()=>P$});async function z$(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function P$(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var Qm={};m(Qm,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function U$(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Wm={};m(Wm,{up:()=>J$,down:()=>X$});async function J$(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function X$(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Zm={};m(Zm,{up:()=>j$,down:()=>Q$});async function j$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function Q$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Dm={};m(Dm,{up:()=>W$,down:()=>Z$});import{sql as uN}from"kysely";async function W$(_){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(uN`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(uN`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function Z$(_){await _.schema.dropTable("org_sites").execute()}var Lm={};m(Lm,{up:()=>D$,down:()=>L$});async function D$(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function L$(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Fm={};m(Fm,{up:()=>F$,down:()=>R$});import{sql as D}from"kysely";async function F$(_){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 D`
1125
1125
  UPDATE organization_domains
1126
1126
  SET
1127
1127
  id = gen_random_uuid()::text,
@@ -1130,18 +1130,18 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1130
1130
  verification_method = 'email',
1131
1131
  verified_at = created_at
1132
1132
  WHERE id IS NULL
1133
- `.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await D`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await D`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 Z$(_){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 D`
1133
+ `.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await D`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await D`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 R$(_){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 D`
1134
1134
  UPDATE organization_domains
1135
1135
  SET auto_join_enabled = (join_mode = 'auto')
1136
- `.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`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 nm={};m(nm,{up:()=>D$,down:()=>L$});import{sql as Y_}from"kysely";async function D$(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(Y_`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(Y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).execute(),await Y_`
1136
+ `.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`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 Rm={};m(Rm,{up:()=>Y$,down:()=>H$});import{sql as H_}from"kysely";async function Y$(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(H_`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(H_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(H_`now()`)).execute(),await H_`
1137
1137
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1138
1138
  ON organization_join_requests (organization_id, user_id)
1139
1139
  WHERE status = 'pending'
1140
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function L$(_){await _.schema.dropTable("organization_join_requests").execute()}var Fm={};m(Fm,{up:()=>n$,down:()=>F$});async function n$(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function F$(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Rm={};m(Rm,{up:()=>R$,down:()=>Y$});async function R$(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function Y$(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Mm={};m(Mm,{up:()=>B$,splitWebResearchTier:()=>Hm,down:()=>y$,__testing:()=>M$});function H$(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Ym(_){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 Hm(_){if(!_||Ym(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,N=null,E=null;if(u)if(H$(u.modelId))E=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:E}}}var M$={splitWebResearchTier:Hm,isAlreadySplit:Ym};async function B$(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let T=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(Ym(T))continue;let C=Hm(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function y$(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Bm={};m(Bm,{up:()=>G$,down:()=>f$});import{sql as u_}from"kysely";async function G$(_){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(u_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(u_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await u_`
1140
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function H$(_){await _.schema.dropTable("organization_join_requests").execute()}var Ym={};m(Ym,{up:()=>M$,down:()=>n$});async function M$(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function n$(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Hm={};m(Hm,{up:()=>B$,down:()=>G$});async function B$(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function G$(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Bm={};m(Bm,{up:()=>O$,splitWebResearchTier:()=>nm,down:()=>S$,__testing:()=>f$});function y$(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Mm(_){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 nm(_){if(!_||Mm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,N=null,E=null;if(u)if(y$(u.modelId))E=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:E}}}var f$={splitWebResearchTier:nm,isAlreadySplit:Mm};async function O$(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let T=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(Mm(T))continue;let C=nm(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function S$(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Gm={};m(Gm,{up:()=>A$,down:()=>I$});import{sql as u_}from"kysely";async function A$(_){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(u_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(u_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await u_`
1141
1141
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1142
1142
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1143
1143
  WHERE revoked_at IS NULL
1144
- `.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(u_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(u_`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 f$(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var ym={};m(ym,{up:()=>O$,down:()=>S$});async function O$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function S$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var Gm={};m(Gm,{up:()=>A$,down:()=>I$});import{sql as k}from"kysely";async function A$(_){await k`
1144
+ `.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(u_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(u_`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 I$(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var ym={};m(ym,{up:()=>w$,down:()=>V$});async function w$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function V$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var fm={};m(fm,{up:()=>k$,down:()=>p$});import{sql as k}from"kysely";async function k$(_){await k`
1145
1145
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1146
1146
  RETURNS jsonb AS $fn$
1147
1147
  BEGIN
@@ -1200,7 +1200,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1200
1200
  BEFORE INSERT ON connection_aggregations
1201
1201
  FOR EACH ROW
1202
1202
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1203
- `.execute(_)}async function I$(_){await k`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await k`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await k`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Om={};m(Om,{up:()=>w$,down:()=>V$});import{sql as fm}from"kysely";async function w$(_){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(fm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(fm`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(fm`false`)).execute()}async function V$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var Sm={};m(Sm,{up:()=>k$,down:()=>p$});async function k$(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function p$(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var Am={};m(Am,{up:()=>t$,down:()=>i$});async function t$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function i$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var Im={};m(Im,{up:()=>v$,down:()=>q$});async function v$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function q$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var wm={};m(wm,{up:()=>c$,down:()=>h$});import{sql as g$}from"kysely";async function c$(_){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(g$`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 h$(_){await _.schema.dropTable("task_board_item_threads").execute()}var Vm={};m(Vm,{up:()=>o$,down:()=>a$});async function o$(_){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 a$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var km={};m(km,{up:()=>e$,down:()=>l$});import{sql as r$}from"kysely";async function e$(_){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(r$`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 l$(_){await _.schema.dropTable("task_board_item_prs").execute()}var pm={};m(pm,{up:()=>s$,down:()=>b$});import{sql as d$}from"kysely";async function s$(_){await d$`
1203
+ `.execute(_)}async function p$(_){await k`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await k`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await k`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Sm={};m(Sm,{up:()=>t$,down:()=>i$});import{sql as Om}from"kysely";async function t$(_){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(Om`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Om`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(Om`false`)).execute()}async function i$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var Am={};m(Am,{up:()=>v$,down:()=>q$});async function v$(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function q$(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var Im={};m(Im,{up:()=>g$,down:()=>c$});async function g$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function c$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var wm={};m(wm,{up:()=>h$,down:()=>o$});async function h$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function o$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var Vm={};m(Vm,{up:()=>r$,down:()=>e$});import{sql as a$}from"kysely";async function r$(_){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(a$`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 e$(_){await _.schema.dropTable("task_board_item_threads").execute()}var km={};m(km,{up:()=>l$,down:()=>d$});async function l$(_){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 d$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var pm={};m(pm,{up:()=>b$,down:()=>_U});import{sql as s$}from"kysely";async function b$(_){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(s$`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 _U(_){await _.schema.dropTable("task_board_item_prs").execute()}var tm={};m(tm,{up:()=>uU,down:()=>mU});import{sql as xU}from"kysely";async function uU(_){await xU`
1204
1204
  DELETE FROM member
1205
1205
  WHERE id IN (
1206
1206
  SELECT id FROM (
@@ -1219,38 +1219,38 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1219
1219
  ) ranked
1220
1220
  WHERE ranked.rn > 1
1221
1221
  )
1222
- `.execute(_)}async function b$(_){}var tm={};m(tm,{up:()=>_U,down:()=>xU});async function _U(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function xU(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var im={};m(im,{up:()=>uU,down:()=>mU});async function uU(_){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 mU(_){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 vm={};m(vm,{up:()=>TU,down:()=>NU});import{sql as CU}from"kysely";async function TU(_){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(CU`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 NU(_){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 qm={};m(qm,{up:()=>EU,down:()=>zU});import{sql as KU}from"kysely";async function EU(_){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(KU`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 zU(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var gm={};m(gm,{up:()=>PU,down:()=>$U});import{sql as H_}from"kysely";async function PU(_){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 $U(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var cm={};m(cm,{up:()=>UU,down:()=>JU});import{sql as M_}from"kysely";async function UU(_){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(M_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(M_`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(M_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await M_`
1222
+ `.execute(_)}async function mU(_){}var im={};m(im,{up:()=>CU,down:()=>TU});async function CU(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function TU(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var vm={};m(vm,{up:()=>NU,down:()=>KU});async function NU(_){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 KU(_){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 qm={};m(qm,{up:()=>zU,down:()=>PU});import{sql as EU}from"kysely";async function zU(_){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(EU`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 PU(_){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 gm={};m(gm,{up:()=>UU,down:()=>JU});import{sql as $U}from"kysely";async function UU(_){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($U`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 JU(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var cm={};m(cm,{up:()=>XU,down:()=>jU});import{sql as M_}from"kysely";async function XU(_){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(M_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(M_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",M_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",M_`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 jU(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var hm={};m(hm,{up:()=>QU,down:()=>WU});import{sql as n_}from"kysely";async function QU(_){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(n_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(n_`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(n_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await n_`
1223
1223
  insert into organization_billing (organization_id, legacy)
1224
1224
  select id, true from organization
1225
1225
  on conflict (organization_id) do nothing
1226
- `.execute(_)}async function JU(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var hm={};m(hm,{up:()=>XU,down:()=>jU});import{sql as uN}from"kysely";async function XU(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(uN`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(uN`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function jU(_){await _.schema.dropTable("seat_change_log").execute()}var om={};m(om,{up:()=>QU,down:()=>WU});async function QU(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function WU(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var am={};m(am,{up:()=>ZU,down:()=>DU});import{sql as mN}from"kysely";async function ZU(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await mN`
1226
+ `.execute(_)}async function WU(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var om={};m(om,{up:()=>ZU,down:()=>DU});import{sql as mN}from"kysely";async function ZU(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(mN`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(mN`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function DU(_){await _.schema.dropTable("seat_change_log").execute()}var am={};m(am,{up:()=>LU,down:()=>FU});async function LU(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function FU(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var rm={};m(rm,{up:()=>RU,down:()=>YU});import{sql as CN}from"kysely";async function RU(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await CN`
1227
1227
  create unique index organization_billing_stripe_subscription_id_uq
1228
1228
  on organization_billing (stripe_subscription_id)
1229
1229
  where stripe_subscription_id is not null
1230
- `.execute(_)}async function DU(_){await mN`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var rm={};m(rm,{up:()=>LU,down:()=>nU});async function LU(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function nU(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var em={};m(em,{up:()=>FU,down:()=>RU});import{sql as CN}from"kysely";async function FU(_){await CN`
1230
+ `.execute(_)}async function YU(_){await CN`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var em={};m(em,{up:()=>HU,down:()=>MU});async function HU(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function MU(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var lm={};m(lm,{up:()=>nU,down:()=>BU});import{sql as TN}from"kysely";async function nU(_){await TN`
1231
1231
  create index idx_org_billing_benefits_pending
1232
1232
  on organization_billing (updated_at)
1233
1233
  where benefits_reference_id is not null
1234
- `.execute(_)}async function RU(_){await CN`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var lm={};m(lm,{up:()=>YU,down:()=>HU});import{sql as TN}from"kysely";async function YU(_){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(TN`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(TN`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 HU(_){await _.schema.dropTable("user_model_preferences").execute()}var dm={};m(dm,{up:()=>MU,down:()=>BU});async function MU(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function BU(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var sm={};m(sm,{up:()=>yU,down:()=>GU});async function yU(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function GU(_){}var bm={};m(bm,{up:()=>fU,down:()=>OU});import{sql as NN}from"kysely";async function fU(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await NN`
1234
+ `.execute(_)}async function BU(_){await TN`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var dm={};m(dm,{up:()=>GU,down:()=>yU});import{sql as NN}from"kysely";async function GU(_){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(NN`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(NN`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 yU(_){await _.schema.dropTable("user_model_preferences").execute()}var sm={};m(sm,{up:()=>fU,down:()=>OU});async function fU(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function OU(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var bm={};m(bm,{up:()=>SU,down:()=>AU});async function SU(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function AU(_){}var _C={};m(_C,{up:()=>IU,down:()=>wU});import{sql as KN}from"kysely";async function IU(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await KN`
1235
1235
  UPDATE organization_settings
1236
1236
  SET flags = jsonb_build_object('reports_only', reports_only)
1237
1237
  WHERE reports_only IS NOT NULL
1238
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function OU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await NN`
1238
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function wU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await KN`
1239
1239
  UPDATE organization_settings
1240
1240
  SET reports_only = (flags ->> 'reports_only')::boolean
1241
1241
  WHERE flags ? 'reports_only'
1242
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var _C={};m(_C,{up:()=>AU,down:()=>IU});import{sql as SU}from"kysely";async function AU(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await SU`
1242
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var xC={};m(xC,{up:()=>kU,down:()=>pU});import{sql as VU}from"kysely";async function kU(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await VU`
1243
1243
  update task_board_items
1244
1244
  set sort_order = -extract(epoch from created_at)
1245
- `.execute(_)}async function IU(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var xC={};m(xC,{up:()=>wU,down:()=>VU,ACTIONS:()=>KN});import{sql as B_}from"kysely";var KN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function wU(_){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(B_`now()`)).addCheckConstraint("chk_task_board_activity_action",B_`action IN (${B_.join(KN.map((x)=>B_.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 VU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var mC={};m(mC,{up:()=>kU,down:()=>pU,ACTIONS:()=>uC});import{sql as m_}from"kysely";var uC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function kU(_){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(m_`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 EN(_,uC)}async function pU(_){await EN(_,uC.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 EN(_,x){await m_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await m_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var TC={};m(TC,{up:()=>iU,down:()=>vU});import{sql as zN}from"kysely";function CC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function tU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return CC(T)}catch{return CC(_.connection_url)}if(_.title)return CC(_.title);return _.id}async function iU(_){let x=await zN`
1245
+ `.execute(_)}async function pU(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var uC={};m(uC,{up:()=>tU,down:()=>iU,ACTIONS:()=>EN});import{sql as B_}from"kysely";var EN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function tU(_){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(B_`now()`)).addCheckConstraint("chk_task_board_activity_action",B_`action IN (${B_.join(EN.map((x)=>B_.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 iU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var CC={};m(CC,{up:()=>vU,down:()=>qU,ACTIONS:()=>mC});import{sql as m_}from"kysely";var mC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function vU(_){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(m_`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 zN(_,mC)}async function qU(_){await zN(_,mC.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 zN(_,x){await m_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await m_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var NC={};m(NC,{up:()=>cU,down:()=>hU});import{sql as PN}from"kysely";function TC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function gU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return TC(T)}catch{return TC(_.connection_url)}if(_.title)return TC(_.title);return _.id}async function cU(_){let x=await PN`
1246
1246
  SELECT id, app_name, connection_url, title, slug
1247
1247
  FROM connections
1248
1248
  WHERE connection_type != 'VIRTUAL'
1249
- `.execute(_),u=0;for(let T of x.rows){let C=tU(T);if(C===T.slug)continue;await zN`UPDATE connections SET slug = ${C} WHERE id = ${T.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function vU(){}var NC={};m(NC,{up:()=>gU,down:()=>cU});import{sql as qU}from"kysely";async function gU(_){await qU`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 cU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var EC={};m(EC,{up:()=>oU,down:()=>aU,ACTIONS:()=>KC});import{sql as y_}from"kysely";var KC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],hU=new Set(["review_requested","review_approved","review_changes_requested"]);async function oU(_){await PN(_,KC)}async function aU(_){await PN(_,KC.filter((x)=>!hU.has(x)))}async function PN(_,x){await y_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await y_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${y_.join(x.map((u)=>y_.lit(u)))}))`.execute(_)}var zC={};m(zC,{up:()=>eU,down:()=>lU});import{sql as rU}from"kysely";async function eU(_){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(rU`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 lU(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var $C={};m($C,{up:()=>sU,down:()=>bU,ACTIONS:()=>PC});import{sql as G_}from"kysely";var PC=["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"],dU=new Set(["merge_conflict_resolution"]);async function sU(_){await $N(_,PC)}async function bU(_){await $N(_,PC.filter((x)=>!dU.has(x)))}async function $N(_,x){await G_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await G_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${G_.join(x.map((u)=>G_.lit(u)))}))`.execute(_)}var UC={};m(UC,{up:()=>_J,down:()=>xJ});import{sql as C_}from"kysely";async function _J(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await C_`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 xJ(_){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 C_`
1249
+ `.execute(_),u=0;for(let T of x.rows){let C=gU(T);if(C===T.slug)continue;await PN`UPDATE connections SET slug = ${C} WHERE id = ${T.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function hU(){}var KC={};m(KC,{up:()=>aU,down:()=>rU});import{sql as oU}from"kysely";async function aU(_){await oU`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 rU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var zC={};m(zC,{up:()=>lU,down:()=>dU,ACTIONS:()=>EC});import{sql as G_}from"kysely";var EC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],eU=new Set(["review_requested","review_approved","review_changes_requested"]);async function lU(_){await $N(_,EC)}async function dU(_){await $N(_,EC.filter((x)=>!eU.has(x)))}async function $N(_,x){await G_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await G_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${G_.join(x.map((u)=>G_.lit(u)))}))`.execute(_)}var PC={};m(PC,{up:()=>bU,down:()=>_J});import{sql as sU}from"kysely";async function bU(_){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(sU`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 _J(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var UC={};m(UC,{up:()=>uJ,down:()=>mJ,ACTIONS:()=>$C});import{sql as y_}from"kysely";var $C=["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"],xJ=new Set(["merge_conflict_resolution"]);async function uJ(_){await UN(_,$C)}async function mJ(_){await UN(_,$C.filter((x)=>!xJ.has(x)))}async function UN(_,x){await y_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await y_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${y_.join(x.map((u)=>y_.lit(u)))}))`.execute(_)}var JC={};m(JC,{up:()=>CJ,down:()=>TJ});import{sql as C_}from"kysely";async function CJ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await C_`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 TJ(_){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 C_`
1250
1250
  create index idx_org_billing_benefits_pending
1251
1251
  on organization_billing (updated_at)
1252
1252
  where benefits_reference_id is not null
1253
- `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(C_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(C_`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(C_`now()`)).execute()}var JC={};m(JC,{up:()=>uJ,down:()=>mJ});import{sql as f_}from"kysely";async function uJ(_){await f_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await f_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function mJ(_){await f_`
1253
+ `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(C_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(C_`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(C_`now()`)).execute()}var XC={};m(XC,{up:()=>NJ,down:()=>KJ});import{sql as f_}from"kysely";async function NJ(_){await f_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await f_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function KJ(_){await f_`
1254
1254
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1255
1255
  RETURNS trigger AS $fn$
1256
1256
  BEGIN
@@ -1276,23 +1276,23 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1276
1276
  BEFORE INSERT ON connection_aggregations
1277
1277
  FOR EACH ROW
1278
1278
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1279
- `.execute(_)}var XC={};m(XC,{up:()=>CJ,down:()=>TJ});import{sql as UN}from"kysely";async function CJ(_){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(UN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(UN`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function TJ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var jC={};m(jC,{up:()=>NJ,down:()=>KJ});import{sql as JN}from"kysely";async function NJ(_){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(JN`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(JN`now()`)).execute()}async function KJ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var WC={};m(WC,{up:()=>EJ,down:()=>zJ});import{sql as QC}from"kysely";async function EJ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(QC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await QC`
1279
+ `.execute(_)}var jC={};m(jC,{up:()=>EJ,down:()=>zJ});import{sql as JN}from"kysely";async function EJ(_){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(JN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(JN`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function zJ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var QC={};m(QC,{up:()=>PJ,down:()=>$J});import{sql as XN}from"kysely";async function PJ(_){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(XN`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(XN`now()`)).execute()}async function $J(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var ZC={};m(ZC,{up:()=>UJ,down:()=>JJ});import{sql as WC}from"kysely";async function UJ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(WC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await WC`
1280
1280
  create index idx_task_quota_claims_org_period_live
1281
1281
  on task_quota_claims (organization_id, period_key)
1282
1282
  where state <> 'released'
1283
- `.execute(_)}async function zJ(_){await QC`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 ZC={};m(ZC,{up:()=>PJ,down:()=>$J});async function PJ(_){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 $J(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var DC={};m(DC,{up:()=>UJ,down:()=>JJ});async function UJ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function JJ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var LC={};m(LC,{up:()=>XJ,down:()=>jJ});import{sql as XN}from"kysely";async function XJ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(XN`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(XN`monthly_task_executions > 0`)).execute()}async function jJ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var nC={};m(nC,{up:()=>WJ,down:()=>ZJ});import{sql as QJ}from"kysely";async function WJ(_){await QJ`
1283
+ `.execute(_)}async function JJ(_){await WC`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 DC={};m(DC,{up:()=>XJ,down:()=>jJ});async function XJ(_){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 jJ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var LC={};m(LC,{up:()=>QJ,down:()=>WJ});async function QJ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function WJ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var FC={};m(FC,{up:()=>ZJ,down:()=>DJ});import{sql as jN}from"kysely";async function ZJ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(jN`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(jN`monthly_task_executions > 0`)).execute()}async function DJ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var RC={};m(RC,{up:()=>FJ,down:()=>RJ});import{sql as LJ}from"kysely";async function FJ(_){await LJ`
1284
1284
  CREATE INDEX idx_task_board_items_pending_review
1285
1285
  ON task_board_items (updated_at, id)
1286
1286
  WHERE status = 'in_review'
1287
1287
  AND assignee_id = 'super-agent'
1288
1288
  AND dismissed_at IS NULL
1289
- `.execute(_)}async function ZJ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var FC={};m(FC,{up:()=>DJ,down:()=>LJ});import{sql as jN}from"kysely";async function DJ(_){await jN`
1289
+ `.execute(_)}async function RJ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var YC={};m(YC,{up:()=>YJ,down:()=>HJ});import{sql as QN}from"kysely";async function YJ(_){await QN`
1290
1290
  ALTER TABLE task_board_items
1291
1291
  ADD COLUMN last_swept_at timestamptz
1292
- `.execute(_)}async function LJ(_){await jN`
1292
+ `.execute(_)}async function HJ(_){await QN`
1293
1293
  ALTER TABLE task_board_items
1294
1294
  DROP COLUMN last_swept_at
1295
- `.execute(_)}var RC={};m(RC,{up:()=>nJ,down:()=>FJ});import{sql as O_}from"kysely";async function nJ(_){await O_`
1295
+ `.execute(_)}var HC={};m(HC,{up:()=>MJ,down:()=>nJ});import{sql as O_}from"kysely";async function MJ(_){await O_`
1296
1296
  ALTER TABLE task_board_items
1297
1297
  ADD COLUMN retry_at timestamptz,
1298
1298
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
@@ -1300,11 +1300,11 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1300
1300
  CREATE INDEX idx_task_board_items_retry_due
1301
1301
  ON task_board_items (retry_at)
1302
1302
  WHERE retry_at IS NOT NULL
1303
- `.execute(_)}async function FJ(_){await O_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await O_`
1303
+ `.execute(_)}async function nJ(_){await O_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await O_`
1304
1304
  ALTER TABLE task_board_items
1305
1305
  DROP COLUMN retry_at,
1306
1306
  DROP COLUMN retry_attempts
1307
- `.execute(_)}var HC={};m(HC,{up:()=>RJ,down:()=>YJ});import{sql as YC}from"kysely";async function RJ(_){await YC`
1307
+ `.execute(_)}var nC={};m(nC,{up:()=>BJ,down:()=>GJ});import{sql as MC}from"kysely";async function BJ(_){await MC`
1308
1308
  CREATE TABLE org_repo_sync (
1309
1309
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1310
1310
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1322,11 +1322,11 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1322
1322
  updated_at timestamptz NOT NULL DEFAULT now(),
1323
1323
  UNIQUE (organization_id, volume)
1324
1324
  )
1325
- `.execute(_),await YC`
1325
+ `.execute(_),await MC`
1326
1326
  CREATE INDEX idx_org_repo_sync_enabled
1327
1327
  ON org_repo_sync (organization_id)
1328
1328
  WHERE enabled
1329
- `.execute(_)}async function YJ(_){await YC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var BC={};m(BC,{up:()=>MJ,down:()=>BJ,ACTIONS:()=>MC});import{sql as S_}from"kysely";var MC=["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"],HJ=new Set(["merge_failed"]);async function MJ(_){await QN(_,MC)}async function BJ(_){await QN(_,MC.filter((x)=>!HJ.has(x)))}async function QN(_,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 yC={};m(yC,{up:()=>yJ,down:()=>GJ});async function yJ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function GJ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var GC={};m(GC,{up:()=>fJ,down:()=>OJ});import{sql as g}from"kysely";async function fJ(_){await g`
1329
+ `.execute(_)}async function GJ(_){await MC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var GC={};m(GC,{up:()=>fJ,down:()=>OJ,ACTIONS:()=>BC});import{sql as S_}from"kysely";var BC=["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"],yJ=new Set(["merge_failed"]);async function fJ(_){await WN(_,BC)}async function OJ(_){await WN(_,BC.filter((x)=>!yJ.has(x)))}async function WN(_,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 yC={};m(yC,{up:()=>SJ,down:()=>AJ});async function SJ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function AJ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var fC={};m(fC,{up:()=>IJ,down:()=>wJ});import{sql as g}from"kysely";async function IJ(_){await g`
1330
1330
  CREATE TABLE org_jira_integrations (
1331
1331
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1332
1332
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1365,7 +1365,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1365
1365
  created_at timestamptz NOT NULL DEFAULT now(),
1366
1366
  UNIQUE (organization_id, jira_comment_id)
1367
1367
  )
1368
- `.execute(_)}async function OJ(_){await g`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await g`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await g`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var fC={};m(fC,{up:()=>AJ,down:()=>IJ});import{sql as SJ}from"kysely";async function AJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await SJ`
1368
+ `.execute(_)}async function wJ(_){await g`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await g`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await g`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var OC={};m(OC,{up:()=>kJ,down:()=>pJ});import{sql as VJ}from"kysely";async function kJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await VJ`
1369
1369
  update task_board_items as t
1370
1370
  set key_seq = numbered.seq
1371
1371
  from (
@@ -1378,25 +1378,25 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1378
1378
  from task_board_items
1379
1379
  ) as numbered
1380
1380
  where t.id = numbered.id
1381
- `.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 IJ(_){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 OC={};m(OC,{up:()=>wJ,down:()=>VJ});import{sql as WN}from"kysely";async function wJ(_){await WN`
1381
+ `.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 pJ(_){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 SC={};m(SC,{up:()=>tJ,down:()=>iJ});import{sql as ZN}from"kysely";async function tJ(_){await ZN`
1382
1382
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1383
1383
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1384
1384
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1385
- `.execute(_)}async function VJ(_){await WN`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var AC={};m(AC,{up:()=>kJ,down:()=>pJ});import{sql as SC}from"kysely";async function kJ(_){await SC`
1385
+ `.execute(_)}async function iJ(_){await ZN`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var IC={};m(IC,{up:()=>vJ,down:()=>qJ});import{sql as AC}from"kysely";async function vJ(_){await AC`
1386
1386
  ALTER TABLE thread_message_parts
1387
1387
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1388
- `.execute(_),await SC`
1388
+ `.execute(_),await AC`
1389
1389
  ALTER TABLE thread_message_parts
1390
1390
  ALTER COLUMN persisted_at SET DEFAULT now()
1391
- `.execute(_)}async function pJ(_){await SC`
1391
+ `.execute(_)}async function qJ(_){await AC`
1392
1392
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1393
- `.execute(_)}var IC={};m(IC,{up:()=>tJ,down:()=>iJ});async function tJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function iJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var wC={};m(wC,{up:()=>qJ,down:()=>gJ});import{sql as vJ}from"kysely";async function qJ(_){await vJ`
1393
+ `.execute(_)}var wC={};m(wC,{up:()=>gJ,down:()=>cJ});async function gJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function cJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var VC={};m(VC,{up:()=>oJ,down:()=>aJ});import{sql as hJ}from"kysely";async function oJ(_){await hJ`
1394
1394
  CREATE INDEX idx_task_board_items_done_sweep
1395
1395
  ON task_board_items (updated_at)
1396
1396
  WHERE status = 'done' AND dismissed_at IS NULL
1397
- `.execute(_)}async function gJ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var VC={};m(VC,{up:()=>cJ,down:()=>hJ,TYPES:()=>ZN});import{sql as I}from"kysely";var ZN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function cJ(_){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(I`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(I`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(I`now()`)).addCheckConstraint("notifications_type_check",I`type IN (${I.join(ZN.map((x)=>I.lit(x)))})`).execute(),await I`CREATE INDEX notifications_user_unread ON notifications
1397
+ `.execute(_)}async function aJ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var kC={};m(kC,{up:()=>rJ,down:()=>eJ,TYPES:()=>DN});import{sql as I}from"kysely";var DN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function rJ(_){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(I`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(I`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(I`now()`)).addCheckConstraint("notifications_type_check",I`type IN (${I.join(DN.map((x)=>I.lit(x)))})`).execute(),await I`CREATE INDEX notifications_user_unread ON notifications
1398
1398
  (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await I`CREATE INDEX notifications_digest ON notifications
1399
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function hJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var kC={};m(kC,{up:()=>oJ,down:()=>aJ});import{sql as DN}from"kysely";async function oJ(_){await DN`
1399
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function eJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var pC={};m(pC,{up:()=>lJ,down:()=>dJ});import{sql as LN}from"kysely";async function lJ(_){await LN`
1400
1400
  UPDATE org_jira_integrations
1401
1401
  SET status_mapping = (
1402
1402
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1411,7 +1411,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1411
1411
  SELECT 1 FROM jsonb_each(status_mapping)
1412
1412
  WHERE jsonb_typeof(value) = 'array'
1413
1413
  )
1414
- `.execute(_)}async function aJ(_){await DN`
1414
+ `.execute(_)}async function dJ(_){await LN`
1415
1415
  UPDATE org_jira_integrations
1416
1416
  SET status_mapping = (
1417
1417
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1426,7 +1426,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1426
1426
  SELECT 1 FROM jsonb_each(status_mapping)
1427
1427
  WHERE jsonb_typeof(value) = 'array'
1428
1428
  )
1429
- `.execute(_)}var tC={};m(tC,{up:()=>eJ,down:()=>lJ,TYPES:()=>pC});import{sql as A_}from"kysely";var pC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],rJ=new Set(["mentioned"]);async function eJ(_){await LN(_,pC)}async function lJ(_){await LN(_,pC.filter((x)=>!rJ.has(x)))}async function LN(_,x){await A_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await A_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${A_.join(x.map((u)=>A_.lit(u)))}))`.execute(_)}var vC={};m(vC,{up:()=>bJ,down:()=>_X,ACTIONS:()=>iC});import{sql as w}from"kysely";var dJ=["bug","feature","chore","spike","security"],iC=["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"],sJ=new Set(["type_changed"]);async function bJ(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await w`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${w.join(dJ.map((x)=>w.lit(x)))}))`.execute(_),await nN(_,iC)}async function _X(_){await nN(_,iC.filter((x)=>!sJ.has(x))),await w`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function nN(_,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 qC={};m(qC,{up:()=>xX,down:()=>uX});import{sql as j}from"kysely";var RN=["bug","feature","chore","spike","security"],FN="chore";async function xX(_){await j`UPDATE task_board_items SET type = ${j.lit(FN)} WHERE type IS NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${j.lit(FN)}`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await j`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await j`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${j.join(RN.map((x)=>j.lit(x)))}))`.execute(_)}async function uX(_){await j`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await j`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${j.join(RN.map((x)=>j.lit(x)))}))`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var gC={};m(gC,{up:()=>mX,down:()=>CX});import{sql as c}from"kysely";async function mX(_){await c`
1429
+ `.execute(_)}var iC={};m(iC,{up:()=>bJ,down:()=>_X,TYPES:()=>tC});import{sql as A_}from"kysely";var tC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],sJ=new Set(["mentioned"]);async function bJ(_){await FN(_,tC)}async function _X(_){await FN(_,tC.filter((x)=>!sJ.has(x)))}async function FN(_,x){await A_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await A_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${A_.join(x.map((u)=>A_.lit(u)))}))`.execute(_)}var qC={};m(qC,{up:()=>mX,down:()=>CX,ACTIONS:()=>vC});import{sql as w}from"kysely";var xX=["bug","feature","chore","spike","security"],vC=["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"],uX=new Set(["type_changed"]);async function mX(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await w`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${w.join(xX.map((x)=>w.lit(x)))}))`.execute(_),await RN(_,vC)}async function CX(_){await RN(_,vC.filter((x)=>!uX.has(x))),await w`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function RN(_,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 gC={};m(gC,{up:()=>TX,down:()=>NX});import{sql as j}from"kysely";var HN=["bug","feature","chore","spike","security"],YN="chore";async function TX(_){await j`UPDATE task_board_items SET type = ${j.lit(YN)} WHERE type IS NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${j.lit(YN)}`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await j`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await j`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${j.join(HN.map((x)=>j.lit(x)))}))`.execute(_)}async function NX(_){await j`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await j`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${j.join(HN.map((x)=>j.lit(x)))}))`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var cC={};m(cC,{up:()=>KX,down:()=>EX});import{sql as c}from"kysely";async function KX(_){await c`
1430
1430
  CREATE TABLE task_board_sprints (
1431
1431
  id text PRIMARY KEY,
1432
1432
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1451,34 +1451,34 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1451
1451
  CREATE INDEX idx_task_board_items_sprint
1452
1452
  ON task_board_items (organization_id, sprint_id)
1453
1453
  WHERE sprint_id IS NOT NULL
1454
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function CX(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await c`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await c`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var cC={};m(cC,{up:()=>NX,down:()=>KX});import{sql as TX}from"kysely";async function NX(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function KX(_){await TX`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var hC={};m(hC,{up:()=>zX,down:()=>PX});import{sql as EX}from"kysely";async function zX(_){await EX`
1454
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function EX(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await c`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await c`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var hC={};m(hC,{up:()=>PX,down:()=>$X});import{sql as zX}from"kysely";async function PX(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function $X(_){await zX`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var oC={};m(oC,{up:()=>JX,down:()=>XX});import{sql as UX}from"kysely";async function JX(_){await UX`
1455
1455
  UPDATE org_jira_integrations
1456
1456
  SET last_synced_at = NULL,
1457
1457
  last_sync_error = NULL
1458
1458
  WHERE last_synced_at IS NOT NULL
1459
- `.execute(_)}async function PX(){}var oC={};m(oC,{up:()=>UX,down:()=>JX});import{sql as $X}from"kysely";async function UX(_){await $X`
1459
+ `.execute(_)}async function XX(){}var aC={};m(aC,{up:()=>QX,down:()=>WX});import{sql as jX}from"kysely";async function QX(_){await jX`
1460
1460
  UPDATE org_jira_integrations
1461
1461
  SET last_synced_at = NULL,
1462
1462
  last_sync_error = NULL
1463
1463
  WHERE last_synced_at IS NOT NULL
1464
- `.execute(_)}async function JX(){}var rC={};m(rC,{up:()=>XX,down:()=>jX});import{sql as aC}from"kysely";async function XX(_){await aC`
1464
+ `.execute(_)}async function WX(){}var eC={};m(eC,{up:()=>ZX,down:()=>DX});import{sql as rC}from"kysely";async function ZX(_){await rC`
1465
1465
  ALTER TABLE org_jira_integrations
1466
1466
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1467
- `.execute(_),await aC`
1467
+ `.execute(_),await rC`
1468
1468
  UPDATE org_jira_integrations
1469
1469
  SET rescan_pending = true
1470
1470
  WHERE last_synced_at IS NULL
1471
- `.execute(_)}async function jX(_){await aC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var eC={};m(eC,{up:()=>QX,down:()=>WX});async function QX(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function WX(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var lC={};m(lC,{up:()=>ZX,down:()=>DX});import{sql as YN}from"kysely";async function ZX(_){await YN`
1471
+ `.execute(_)}async function DX(_){await rC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var lC={};m(lC,{up:()=>LX,down:()=>FX});async function LX(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function FX(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var dC={};m(dC,{up:()=>RX,down:()=>YX});import{sql as MN}from"kysely";async function RX(_){await MN`
1472
1472
  ALTER TABLE invitation
1473
1473
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1474
- `.execute(_)}async function DX(_){await YN`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var sC={};m(sC,{up:()=>LX,down:()=>nX});import{sql as dC}from"kysely";async function LX(_){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(dC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(dC`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 dC`
1474
+ `.execute(_)}async function YX(_){await MN`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var bC={};m(bC,{up:()=>HX,down:()=>MX});import{sql as sC}from"kysely";async function HX(_){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(sC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(sC`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 sC`
1475
1475
  INSERT INTO task_board_column_automations
1476
1476
  (id, organization_id, column_key, prompt)
1477
1477
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1478
1478
  FROM org_jira_integrations
1479
1479
  WHERE auto_delegate = true
1480
1480
  ON CONFLICT DO NOTHING
1481
- `.execute(_)}async function nX(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var bC={};m(bC,{up:()=>FX,down:()=>RX});import{sql as T_}from"kysely";async function FX(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await T_`
1481
+ `.execute(_)}async function MX(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var _T={};m(_T,{up:()=>nX,down:()=>BX});import{sql as T_}from"kysely";async function nX(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await T_`
1482
1482
  UPDATE task_board_items i
1483
1483
  SET review_cycle_started_at = (
1484
1484
  SELECT max(a.occurred_at)
@@ -1494,13 +1494,13 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1494
1494
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1495
1495
  AND assignee_id = 'super-agent'
1496
1496
  AND dismissed_at IS NULL
1497
- `.execute(_),await T_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function RX(_){await T_`
1497
+ `.execute(_),await T_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function BX(_){await T_`
1498
1498
  CREATE INDEX idx_task_board_items_pending_review
1499
1499
  ON task_board_items (updated_at, id)
1500
1500
  WHERE status = 'in_review'
1501
1501
  AND assignee_id = 'super-agent'
1502
1502
  AND dismissed_at IS NULL
1503
- `.execute(_),await T_`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={};m(_T,{up:()=>YX,down:()=>HX});import{sql as HN}from"kysely";async function YX(_){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(HN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(HN`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 HX(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var uT={};m(uT,{up:()=>BX,down:()=>yX,ACTIONS:()=>xT});import{sql as I_}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"],MX=new Set(["review_verdict_requested"]);async function BX(_){await MN(_,xT)}async function yX(_){await MN(_,xT.filter((x)=>!MX.has(x)))}async function MN(_,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 mT={};m(mT,{up:()=>GX,down:()=>fX});import{sql as w_}from"kysely";async function GX(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await w_`
1503
+ `.execute(_),await T_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var xT={};m(xT,{up:()=>GX,down:()=>yX});import{sql as nN}from"kysely";async function GX(_){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(nN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(nN`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 yX(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var mT={};m(mT,{up:()=>OX,down:()=>SX,ACTIONS:()=>uT});import{sql as I_}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"],fX=new Set(["review_verdict_requested"]);async function OX(_){await BN(_,uT)}async function SX(_){await BN(_,uT.filter((x)=>!fX.has(x)))}async function BN(_,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 CT={};m(CT,{up:()=>AX,down:()=>IX});import{sql as w_}from"kysely";async function AX(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await w_`
1504
1504
  ALTER TABLE task_board_items
1505
1505
  ADD CONSTRAINT chk_task_board_items_column_org
1506
1506
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
@@ -1510,13 +1510,13 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1510
1510
  FOREIGN KEY (board_column_org, status)
1511
1511
  REFERENCES task_board_columns (organization_id, key)
1512
1512
  ON DELETE RESTRICT
1513
- `.execute(_)}async function fX(_){await w_`
1513
+ `.execute(_)}async function IX(_){await w_`
1514
1514
  ALTER TABLE task_board_items
1515
1515
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1516
1516
  `.execute(_),await w_`
1517
1517
  ALTER TABLE task_board_items
1518
1518
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
1519
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var CT={};m(CT,{up:()=>OX,down:()=>SX});async function OX(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function SX(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var NT={};m(NT,{up:()=>IX,down:()=>wX,ACTIONS:()=>TT});import{sql as V_}from"kysely";var TT=["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"],AX=new Set(["sprint_changed"]);async function IX(_){await BN(_,TT)}async function wX(_){await BN(_,TT.filter((x)=>!AX.has(x)))}async function BN(_,x){await V_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await V_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${V_.join(x.map((u)=>V_.lit(u)))}))`.execute(_)}var KT={};m(KT,{up:()=>kX,down:()=>pX});import{sql as VX}from"kysely";async function kX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(VX`'[]'::jsonb`)).execute()}async function pX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var ET={};m(ET,{up:()=>tX,down:()=>iX});import{sql as yN}from"kysely";async function tX(_){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(yN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(yN`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function iX(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var zT={};m(zT,{up:()=>qX,down:()=>gX});import{sql as vX}from"kysely";async function qX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await vX`
1519
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var TT={};m(TT,{up:()=>wX,down:()=>VX});async function wX(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function VX(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var KT={};m(KT,{up:()=>pX,down:()=>tX,ACTIONS:()=>NT});import{sql as V_}from"kysely";var NT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],kX=new Set(["sprint_changed"]);async function pX(_){await GN(_,NT)}async function tX(_){await GN(_,NT.filter((x)=>!kX.has(x)))}async function GN(_,x){await V_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await V_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${V_.join(x.map((u)=>V_.lit(u)))}))`.execute(_)}var ET={};m(ET,{up:()=>vX,down:()=>qX});import{sql as iX}from"kysely";async function vX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(iX`'[]'::jsonb`)).execute()}async function qX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var zT={};m(zT,{up:()=>gX,down:()=>cX});import{sql as yN}from"kysely";async function gX(_){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(yN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(yN`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function cX(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var PT={};m(PT,{up:()=>oX,down:()=>aX});import{sql as hX}from"kysely";async function oX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await hX`
1520
1520
  UPDATE task_board_items i
1521
1521
  SET external_url = t.url,
1522
1522
  description = CASE
@@ -1535,11 +1535,11 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1535
1535
  ON g.organization_id = l.organization_id
1536
1536
  ) t
1537
1537
  WHERE t.item_id = i.id
1538
- `.execute(_)}async function gX(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var PT={};m(PT,{up:()=>hX,down:()=>oX,ACTIONS:()=>GN});import{sql as J}from"kysely";var cX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],GN=["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 hX(_){await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await J`DROP TABLE IF EXISTS task_board_columns`.execute(_),await J`
1538
+ `.execute(_)}async function aX(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var $T={};m($T,{up:()=>eX,down:()=>lX,ACTIONS:()=>fN});import{sql as J}from"kysely";var rX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],fN=["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 eX(_){await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await J`DROP TABLE IF EXISTS task_board_columns`.execute(_),await J`
1539
1539
  UPDATE task_board_items
1540
1540
  SET status = 'triage'
1541
- WHERE status NOT IN (${J.join(cX.map((x)=>J.lit(x)))})
1542
- `.execute(_),await J`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await J`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await aX(_,GN),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
1541
+ WHERE status NOT IN (${J.join(rX.map((x)=>J.lit(x)))})
1542
+ `.execute(_),await J`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await J`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await dX(_,fN),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
1543
1543
  ALTER TABLE task_board_item_jira_links
1544
1544
  DROP COLUMN IF EXISTS jira_updated_at,
1545
1545
  DROP COLUMN IF EXISTS jira_status,
@@ -1551,7 +1551,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1551
1551
  DROP COLUMN IF EXISTS last_synced_at,
1552
1552
  DROP COLUMN IF EXISTS last_sync_error,
1553
1553
  DROP COLUMN IF EXISTS rescan_pending
1554
- `.execute(_)}async function oX(){}async function aX(_,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 $T={};m($T,{up:()=>rX,down:()=>eX});import{sql as h}from"kysely";async function rX(_){await h`
1554
+ `.execute(_)}async function lX(){}async function dX(_,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 UT={};m(UT,{up:()=>sX,down:()=>bX});import{sql as h}from"kysely";async function sX(_){await h`
1555
1555
  ALTER TABLE task_board_items
1556
1556
  ADD COLUMN IF NOT EXISTS source text
1557
1557
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
@@ -1572,24 +1572,24 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1572
1572
  created_at timestamptz NOT NULL DEFAULT now(),
1573
1573
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
1574
1574
  )
1575
- `.execute(_)}async function eX(_){await h`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await h`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await h`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var UT={};m(UT,{up:()=>lX,down:()=>dX});import{sql as N_}from"kysely";async function lX(_){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(N_`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(N_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(N_`now()`)).execute(),await N_`
1575
+ `.execute(_)}async function bX(_){await h`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await h`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await h`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var JT={};m(JT,{up:()=>_j,down:()=>xj});import{sql as N_}from"kysely";async function _j(_){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(N_`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(N_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(N_`now()`)).execute(),await N_`
1576
1576
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
1577
1577
  ON organization_notices (organization_id)
1578
1578
  WHERE resolved_at IS NULL
1579
1579
  `.execute(_),await N_`
1580
1580
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
1581
1581
  ON organization_notices (organization_id, created_at DESC)
1582
- `.execute(_)}async function dX(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var XT={};m(XT,{up:()=>Kj,down:()=>Ej});import{sql as JT}from"kysely";import{sql as KZ}from"kysely";var fN=50000000,sX=1e5;function bX(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>sX)return 1/0;let N=C.pop();if(typeof N==="string")u+=N.length;else if(Array.isArray(N))for(let E of N)C.push(E);else if(N!==null&&typeof N==="object")for(let E of Object.values(N))C.push(E)}return u}var _j=/\u0000/g,xj=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,uj=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,mj=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,Cj=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function Tj(_){return _.replace(_j,"").replace(xj,"\uFFFD").replace(uj,"$1***@").replace(mj,"$1***").replace(Cj,"[base64 data omitted]")}function Nj(_){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 ON(_){if(bX(_,fN)>fN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return Tj(u);if(Nj(u))return{type:"text",text:"[image omitted]"};return u})}var SN=20;async function Kj(_){let x=await JT`
1582
+ `.execute(_)}async function xj(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var jT={};m(jT,{up:()=>$j,down:()=>Uj});import{sql as XT}from"kysely";import{sql as UZ}from"kysely";var ON=50000000,uj=1e5;function mj(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>uj)return 1/0;let N=C.pop();if(typeof N==="string")u+=N.length;else if(Array.isArray(N))for(let E of N)C.push(E);else if(N!==null&&typeof N==="object")for(let E of Object.values(N))C.push(E)}return u}var Cj=/\u0000/g,Tj=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,Nj=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,Kj=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,Ej=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function zj(_){return _.replace(Cj,"").replace(Tj,"\uFFFD").replace(Nj,"$1***@").replace(Kj,"$1***").replace(Ej,"[base64 data omitted]")}function Pj(_){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 SN(_){if(mj(_,ON)>ON)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return zj(u);if(Pj(u))return{type:"text",text:"[image omitted]"};return u})}var AN=20;async function $j(_){let x=await XT`
1583
1583
  SELECT id FROM thread_message_parts
1584
1584
  WHERE pg_column_size(payload) > 8192
1585
1585
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
1586
- `.execute(_);for(let u=0;u<x.rows.length;u+=SN){let T=x.rows.slice(u,u+SN).map((N)=>N.id),C=await JT`
1586
+ `.execute(_);for(let u=0;u<x.rows.length;u+=AN){let T=x.rows.slice(u,u+AN).map((N)=>N.id),C=await XT`
1587
1587
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${T})
1588
- `.execute(_);for(let N of C.rows){let E=ON(N.payload);if(E===JSON.stringify(N.payload))continue;await JT`
1588
+ `.execute(_);for(let N of C.rows){let E=SN(N.payload);if(E===JSON.stringify(N.payload))continue;await XT`
1589
1589
  UPDATE thread_message_parts
1590
1590
  SET payload = ${E}::jsonb
1591
1591
  WHERE id = ${N.id}
1592
- `.execute(_)}}}async function Ej(){}var jT={};m(jT,{up:()=>zj,down:()=>Pj});async function zj(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function Pj(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var QT={};m(QT,{up:()=>$j,down:()=>Uj});import{sql as P}from"kysely";async function $j(_){await P`
1592
+ `.execute(_)}}}async function Uj(){}var QT={};m(QT,{up:()=>Jj,down:()=>Xj});async function Jj(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function Xj(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var WT={};m(WT,{up:()=>jj,down:()=>Qj});import{sql as P}from"kysely";async function jj(_){await P`
1593
1593
  CREATE TABLE git_provider_accounts (
1594
1594
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1595
1595
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1833,11 +1833,11 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1833
1833
  AND r.organization_id = s.organization_id
1834
1834
  AND r.host = 'github.com'
1835
1835
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
1836
- `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function Uj(_){await P`
1836
+ `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function Qj(_){await P`
1837
1837
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
1838
1838
  `.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
1839
1839
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
1840
- `.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var WT={};m(WT,{up:()=>Xj,down:()=>jj});import{sql as Y}from"kysely";var Jj=Y`
1840
+ `.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var ZT={};m(ZT,{up:()=>Zj,down:()=>Dj});import{sql as H}from"kysely";var Wj=H`
1841
1841
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
1842
1842
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
1843
1843
  BEGIN
@@ -1846,13 +1846,13 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1846
1846
  RETURN NULL;
1847
1847
  END;
1848
1848
  $$
1849
- `;async function Xj(_){await Jj.execute(_),await Y`
1849
+ `;async function Zj(_){await Wj.execute(_),await H`
1850
1850
  ALTER TABLE connections
1851
1851
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
1852
- `.execute(_),await Y`
1852
+ `.execute(_),await H`
1853
1853
  CREATE INDEX idx_connections_repository
1854
1854
  ON connections (repository_id) WHERE repository_id IS NOT NULL
1855
- `.execute(_),await Y`
1855
+ `.execute(_),await H`
1856
1856
  CREATE TABLE thread_repositories (
1857
1857
  thread_id text NOT NULL REFERENCES threads(id) ON DELETE CASCADE,
1858
1858
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1860,10 +1860,10 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1860
1860
  added_at timestamptz NOT NULL DEFAULT now(),
1861
1861
  PRIMARY KEY (thread_id, repository_id)
1862
1862
  )
1863
- `.execute(_),await Y`
1863
+ `.execute(_),await H`
1864
1864
  CREATE INDEX idx_thread_repositories_repo
1865
1865
  ON thread_repositories (repository_id)
1866
- `.execute(_),await Y`
1866
+ `.execute(_),await H`
1867
1867
  UPDATE connections c
1868
1868
  SET repository_id = r.id
1869
1869
  FROM repositories r
@@ -1875,7 +1875,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1875
1875
  || '/' ||
1876
1876
  (repo_ref_try_jsonb(c.metadata) #>> '{githubRepo,name}')
1877
1877
  )
1878
- `.execute(_),await Y`
1878
+ `.execute(_),await H`
1879
1879
  INSERT INTO repositories (
1880
1880
  organization_id, account_id, provider, host, path, web_url
1881
1881
  )
@@ -1896,7 +1896,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1896
1896
  AND e.name NOT LIKE '%/%'
1897
1897
  ORDER BY t.organization_id, lower(e.owner || '/' || e.name)
1898
1898
  ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
1899
- `.execute(_),await Y`
1899
+ `.execute(_),await H`
1900
1900
  INSERT INTO thread_repositories (thread_id, organization_id, repository_id)
1901
1901
  SELECT DISTINCT t.id, t.organization_id, r.id
1902
1902
  FROM threads t
@@ -1908,21 +1908,21 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1908
1908
  AND r.host = 'github.com'
1909
1909
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
1910
1910
  ON CONFLICT (thread_id, repository_id) DO NOTHING
1911
- `.execute(_),await Y`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function jj(_){await Y`DROP TABLE IF EXISTS thread_repositories`.execute(_),await Y`
1911
+ `.execute(_),await H`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function Dj(_){await H`DROP TABLE IF EXISTS thread_repositories`.execute(_),await H`
1912
1912
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
1913
- `.execute(_)}var Qj={"001-initial-schema":xx,"002-organization-settings":ux,"003-connection-schema-align":mx,"004-remove-models-binding":Cx,"005-connection-configuration":Tx,"006-add-views-to-settings":Nx,"007-monitoring-logs":Kx,"008-event-bus":Ex,"009-drop-audit-logs":zx,"010-gateways":Px,"011-gateway-icon":$x,"012-gateway-tool-selection-mode":Ux,"013-monitoring-user-agent-gateway":Jx,"014-gateway-resources-prompts":Xx,"015-monitoring-properties":jx,"016-downstream-token-client-info":Qx,"017-downstream-token-remove-userid":Wx,"018-drop-gateway-tool-selection-strategy":Zx,"019-remove-gateway-is-default":Dx,"020-enabled-plugins":Lx,"021-threads":nx,"022-rename-gateway-to-virtual-mcp":Fx,"023-optimize-thread-indexes":Rx,"024-consolidate-virtual-mcp":Yx,"025-add-monitoring-virtual-mcp-id":Hx,"026-restrict-child-connection-delete":Mx,"027-update-management-mcp-url":yx,"028-update-management-mcp-to-self":fx,"029-add-updated-by-to-connections":Ox,"030-member-tags":Sx,"031-add-dependency-mode":Ax,"032-projects":Ix,"033-thread-status":wx,"034-monitoring-dashboards":Vx,"035-project-connections":kx,"036-update-registry-url":px,"037-ai-provider-keys":tx,"038-oauth-pkce-states":ix,"039-automations":vx,"040-replace-next-run-at-with-last-run-at":qx,"041-ai-provider-keys-unique-constraint":gx,"042-rename-mesh-mcp-to-cms-mcp":cx,"043-rename-cms-mcp-to-deco-cms":hx,"044-drop-connections-tools-column":ox,"045-thread-context-start-message":ax,"046-remove-object-storage-plugin":ex,"047-add-next-run-at":lx,"048-merge-projects-agents":sx,"049-remove-org-admin-projects":bx,"050-durable-agent-runs":_u,"051-org-sso":uu,"052-thread-agent-ids":mu,"053-registry-config":Cu,"054-connection-slug":Nu,"055-spaces":Ku,"056-automation-project-scope":Eu,"057-thread-virtual-mcp-id":zu,"058-trigger-callback-tokens":Pu,"059-kv":$u,"060-member-index":Uu,"061-downstream-token-connection-index":Ju,"062-private-registry":Xu,"063-event-subscriptions-enabled-boolean":ju,"064-brand-context":Qu,"065-organization-domains":Wu,"066-brand-context-structured":Zu,"067-threads-metadata":Du,"068-threads-branch":Lu,"069-sandbox-runner-state":nu,"070-model-categories":Fu,"071-default-home-agents":Ru,"072-ai-provider-key-preset-id":Yu,"073-backfill-basic-usage-roles":Hu,"074-sandbox-runner-state-handle-nonunique":Mu,"075-thread-inflight-async-jobs":Bu,"076-automations-drop-agent-json":yu,"077-tier-only-model-selection":fu,"078-automation-tool-call-kind":Ou,"079-strip-legacy-freestyle-vm-map-entries":Su,"080-async-research-jobs":Au,"081-async-research-jobs-result-content":Iu,"082-secrets":wu,"083-thread-run-locally":Vu,"084-drop-host-sandbox-rows":ku,"085-rename-runner-kind":pu,"086-thread-pins-and-vm-map-rekey":tu,"087-fix-vm-map-rekey":iu,"088-purge-cli-activate-keys":vu,"089-rename-remote-user-to-desktop":qu,"090-automation-webhook-triggers":gu,"091-organization-domains-allow-multi":cu,"092-sandbox-naming-uniformization":hu,"093-backfill-global-search-basic-usage":ou,"094-org-file-configs":ru,"095-remove-automation-tool-call-kind":eu,"096-org-file-configs-public-url-base":lu,"097-drop-local-docker-sandbox-state":su,"098-thread-message-parts":bu,"099-run-fence":_m,"100-link-transport":xm,"101-cancel-requested-at":um,"102-observational-agent":mm,"103-revert-observational-agent":Cm,"104-agent-sandbox-provider-kind":Nm,"105-org-fs":Km,"106-automation-tools":Em,"107-org-fs-public-org":zm,"108-automation-max-agent-steps":Pm,"109-thread-message-parts-per-message-seq":$m,"110-backfill-ghs-token-expiry":Um,"111-org-fs-thread-id":Jm,"112-org-file-configs-credential-type":Xm,"113-thread-failure-reason":jm,"114-run-acked-seq":Qm,"115-thread-projected-seq":Wm,"116-org-sites":Zm,"117-org-file-configs-site-slug":Dm,"118-organization-domains-multi-verify":Lm,"119-organization-join-requests":nm,"120-org-fs-read-public":Fm,"121-org-fs-share-password":Rm,"122-split-web-research-tier":Mm,"123-connection-credential-vault":Bm,"124-drop-thread-projected-seq":ym,"125-github-child-single-parent":Gm,"126-task-board":Om,"127-task-board-due-date":Sm,"128-reports-only":Am,"129-task-board-assigned-by":Im,"130-task-board-thread-id":wm,"131-task-board-thread-link-cascade":Vm,"132-task-board-item-prs":km,"133-dedupe-duplicate-members":pm,"134-drop-task-board-enabled":tm,"135-task-board-item-fk-cascade":im,"136-task-board-import-idempotency":vm,"137-agent-sandbox-runner-state":qm,"138-agent-sandbox-sessions":gm,"139-organization-billing":cm,"140-seat-change-log":hm,"141-benefits-sync-pending":om,"142-stripe-event-watermark":am,"143-armed-report-url":rm,"144-benefits-pending-index":em,"145-user-model-preferences":lm,"146-organization-main-agent":dm,"147-drop-agent-sandbox-tables":sm,"148-org-flags":bm,"149-task-board-item-sort-order":_C,"150-task-board-activity":xC,"151-task-board-tags":mC,"152-repair-connection-slug":TC,"153-task-board-latest-assistant-part-index":NC,"154-task-board-qa-activity":EC,"155-task-board-review-claims":zC,"156-task-board-conflict-activity":$C,"157-drop-seat-billing":UC,"158-drop-github-child-single-parent":JC,"159-task-board-comments":XC,"160-task-quota-billing":jC,"161-task-quota-claim-state":WC,"162-claude-subscriptions":ZC,"163-task-board-item-dismissed":DC,"164-per-org-task-quota":LC,"165-task-board-pending-review-index":nC,"166-task-board-last-swept-at":FC,"167-task-board-run-retry":RC,"168-org-repo-sync":HC,"169-task-board-merge-failed-activity":BC,"170-task-board-item-repo":yC,"171-jira-integration":GC,"172-task-board-item-key-seq":fC,"173-thread-github-repo-connection-index":OC,"174-thread-message-parts-persisted-at":AC,"175-task-board-sprints":IC,"176-task-board-done-sweep-index":wC,"177-notifications":VC,"178-jira-status-mapping-array":kC,"179-notification-mentioned":tC,"180-task-board-item-type":vC,"181-task-board-item-type-required":qC,"182-task-board-sprints-entities":gC,"183-drop-jira-jql-filter":cC,"184-jira-rescan-after-scope-change":hC,"185-jira-rescan-existing-cards":oC,"186-jira-rescan-pending-flag":rC,"187-task-board-comment-thread":eC,"188-invitation-auto-accept":lC,"189-task-board-column-automations":sC,"190-task-board-review-cycle-started-at":bC,"191-task-board-columns":_T,"192-task-board-verdict-nudge-activity":uT,"193-task-board-status-column-fk":mT,"194-jira-link-sprint":CT,"195-task-board-sprint-activity":NT,"196-task-board-column-tracker-statuses":KT,"197-task-board-prompts":ET,"198-task-board-external-url":zT,"199-drop-jira-mirror-and-org-columns":PT,"200-jira-run-trigger":$T,"201-organization-notices":UT,"202-redact-base64-thread-parts":XT,"203-task-board-preview-routes":jT,"204-git-provider-accounts-and-repositories":QT,"205-repository-references":WT,"206-repository-consumers":_x,"207-task-board-prs-repo-idx":b_,"208-github-connect-flows":s_,"209-github-installation-authorization":d_,"210-github-repository-authorization":a_,"211-user-fs-org":o_,"212-coding-agent-mcp-excluded":r_,"213-bitbucket-git-provider":e_,"214-connections-sanitized-id-idx":q_,"215-commerce-discovery-repository":g_,"216-github-cli-auth":h_,"217-experiments":l_},ZT=Qj;import{getMigrations as rj}from"better-auth/db";import{sso as ej}from"@better-auth/sso";import{organization as lj}from"@decocms/better-auth/plugins";import{admin as dj,apiKey as sj,jwt as bj,magicLink as _Q,mcp as xQ,openAPI as uQ}from"better-auth/plugins";import{emailOTP as mQ}from"better-auth/plugins/email-otp";import{Kysely as vj,PostgresDialect as gN}from"kysely";import{Pool as cN}from"pg";import{homedir as Wj}from"os";var Zj=new Set(["all","worker","api"]);function Dj(_){let x=(_??"").trim();return Zj.has(x)?x:"all"}var Lj=new Set(["production","development","test"]);function nj(_){let x=(_??"").trim();return Lj.has(x)?x:"development"}function W(_){return _==="true"||_==="1"}function LT(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function G(_,x,u,T){return LT(_,x,T)??u}function Fj(_){let x={};for(let u of(_??"").split(",")){let T=u.trim();if(!T)continue;let C=T.indexOf("="),N=C>0?T.slice(0,C).trim():"",E=C>0?T.slice(C+1).trim():"";if(!N||!E){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${T}" \u2014 expected price_xxx=planId`);continue}x[N]=E}return x}function Rj(_,x,u,T){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&C>T)throw Error(`${_} must be at most ${T}`);return C}function DT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function AN(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function Yj(_){return _===void 0||_===""||_==="true"||_==="1"}function K_(_,x){return _||x}function IN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${Wj()}/deco`,T=_.localMode,C=_.nodeEnv||nj(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222",E={nodeEnv:C,port:G("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:K_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:W(x.DATABASE_PG_SSL),databasePoolMax:G("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:G("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:K_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:W(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:W(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((K)=>K.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((K)=>K.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:LT("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:W(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:Fj(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:Rj("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:W(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:G("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:G("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:G("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:W(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:W(x.HOSTING_CONTROL_PLANE_GA),monitorGa:W(x.MONITOR_GA),plansEnabled:W(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:DT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:W(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:G("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:G("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:DT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:G("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:Yj(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:LT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:Dj(K_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:W(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:W(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:DT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:W(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:G("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:K_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:K_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(E.plansEnabled&&!E.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(E.plansEnabled&&!E.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(E.plansEnabled&&!E.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(E.plansEnabled&&Object.keys(E.stripePlanPriceIds).length>0&&!E.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(E.plansEnabled&&Object.keys(E.stripePlanPriceIds).length>1&&!E.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{settings:E,externalDatabaseUrl:AN(x.DATABASE_URL),externalNatsUrl:AN(N),skipMigrations:_.skipMigrations}}var k_=null;function o(){if(!k_)Hj();return k_}function Hj(){if(k_)return;let _={...process.env},x=IN({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);k_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as Oj,metrics as Sj,propagation as M4,ROOT_CONTEXT as B4,SpanStatusCode as y4,trace as Aj}from"@opentelemetry/api";import{logs as Ij,SeverityNumber as nT}from"@opentelemetry/api-logs";import{OTLPLogExporter as O4}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as wj}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as I4}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as V4}from"@opentelemetry/instrumentation-runtime-node";import{context as LZ,propagation as nZ,SpanKind as FZ,SpanStatusCode as RZ}from"@opentelemetry/api";var HZ=globalThis.fetch;import{ExportResultCode as kZ}from"@opentelemetry/core";import{ExportResultCode as p_}from"@opentelemetry/core";import{mkdir as Mj,rename as Bj,writeFile as yj}from"fs/promises";import{join as t_}from"path";class i_{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:p_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:p_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:p_.FAILED}});return Promise.resolve({code:p_.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 C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),T=u.find((C)=>C.status==="rejected");if(T){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let N=_.filter((E)=>!C.has(E.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?t_(this.basePath,x,...T):t_(this.basePath,...T);if(!this.knownDirs.has(C))await Mj(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=t_(C,`.${N}.tmp`),K=t_(C,N),z=_.join(`
1913
+ `.execute(_)}var Lj={"001-initial-schema":ux,"002-organization-settings":mx,"003-connection-schema-align":Cx,"004-remove-models-binding":Tx,"005-connection-configuration":Nx,"006-add-views-to-settings":Kx,"007-monitoring-logs":Ex,"008-event-bus":zx,"009-drop-audit-logs":Px,"010-gateways":$x,"011-gateway-icon":Ux,"012-gateway-tool-selection-mode":Jx,"013-monitoring-user-agent-gateway":Xx,"014-gateway-resources-prompts":jx,"015-monitoring-properties":Qx,"016-downstream-token-client-info":Wx,"017-downstream-token-remove-userid":Zx,"018-drop-gateway-tool-selection-strategy":Dx,"019-remove-gateway-is-default":Lx,"020-enabled-plugins":Fx,"021-threads":Rx,"022-rename-gateway-to-virtual-mcp":Yx,"023-optimize-thread-indexes":Hx,"024-consolidate-virtual-mcp":Mx,"025-add-monitoring-virtual-mcp-id":nx,"026-restrict-child-connection-delete":Bx,"027-update-management-mcp-url":yx,"028-update-management-mcp-to-self":Ox,"029-add-updated-by-to-connections":Sx,"030-member-tags":Ax,"031-add-dependency-mode":Ix,"032-projects":wx,"033-thread-status":Vx,"034-monitoring-dashboards":kx,"035-project-connections":px,"036-update-registry-url":tx,"037-ai-provider-keys":ix,"038-oauth-pkce-states":vx,"039-automations":qx,"040-replace-next-run-at-with-last-run-at":gx,"041-ai-provider-keys-unique-constraint":cx,"042-rename-mesh-mcp-to-cms-mcp":hx,"043-rename-cms-mcp-to-deco-cms":ox,"044-drop-connections-tools-column":ax,"045-thread-context-start-message":rx,"046-remove-object-storage-plugin":lx,"047-add-next-run-at":dx,"048-merge-projects-agents":bx,"049-remove-org-admin-projects":_u,"050-durable-agent-runs":xu,"051-org-sso":mu,"052-thread-agent-ids":Cu,"053-registry-config":Tu,"054-connection-slug":Ku,"055-spaces":Eu,"056-automation-project-scope":zu,"057-thread-virtual-mcp-id":Pu,"058-trigger-callback-tokens":$u,"059-kv":Uu,"060-member-index":Ju,"061-downstream-token-connection-index":Xu,"062-private-registry":ju,"063-event-subscriptions-enabled-boolean":Qu,"064-brand-context":Wu,"065-organization-domains":Zu,"066-brand-context-structured":Du,"067-threads-metadata":Lu,"068-threads-branch":Fu,"069-sandbox-runner-state":Ru,"070-model-categories":Yu,"071-default-home-agents":Hu,"072-ai-provider-key-preset-id":Mu,"073-backfill-basic-usage-roles":nu,"074-sandbox-runner-state-handle-nonunique":Bu,"075-thread-inflight-async-jobs":Gu,"076-automations-drop-agent-json":yu,"077-tier-only-model-selection":Ou,"078-automation-tool-call-kind":Su,"079-strip-legacy-freestyle-vm-map-entries":Au,"080-async-research-jobs":Iu,"081-async-research-jobs-result-content":wu,"082-secrets":Vu,"083-thread-run-locally":ku,"084-drop-host-sandbox-rows":pu,"085-rename-runner-kind":tu,"086-thread-pins-and-vm-map-rekey":iu,"087-fix-vm-map-rekey":vu,"088-purge-cli-activate-keys":qu,"089-rename-remote-user-to-desktop":gu,"090-automation-webhook-triggers":cu,"091-organization-domains-allow-multi":hu,"092-sandbox-naming-uniformization":ou,"093-backfill-global-search-basic-usage":au,"094-org-file-configs":eu,"095-remove-automation-tool-call-kind":lu,"096-org-file-configs-public-url-base":du,"097-drop-local-docker-sandbox-state":bu,"098-thread-message-parts":_m,"099-run-fence":xm,"100-link-transport":um,"101-cancel-requested-at":mm,"102-observational-agent":Cm,"103-revert-observational-agent":Tm,"104-agent-sandbox-provider-kind":Km,"105-org-fs":Em,"106-automation-tools":zm,"107-org-fs-public-org":Pm,"108-automation-max-agent-steps":$m,"109-thread-message-parts-per-message-seq":Um,"110-backfill-ghs-token-expiry":Jm,"111-org-fs-thread-id":Xm,"112-org-file-configs-credential-type":jm,"113-thread-failure-reason":Qm,"114-run-acked-seq":Wm,"115-thread-projected-seq":Zm,"116-org-sites":Dm,"117-org-file-configs-site-slug":Lm,"118-organization-domains-multi-verify":Fm,"119-organization-join-requests":Rm,"120-org-fs-read-public":Ym,"121-org-fs-share-password":Hm,"122-split-web-research-tier":Bm,"123-connection-credential-vault":Gm,"124-drop-thread-projected-seq":ym,"125-github-child-single-parent":fm,"126-task-board":Sm,"127-task-board-due-date":Am,"128-reports-only":Im,"129-task-board-assigned-by":wm,"130-task-board-thread-id":Vm,"131-task-board-thread-link-cascade":km,"132-task-board-item-prs":pm,"133-dedupe-duplicate-members":tm,"134-drop-task-board-enabled":im,"135-task-board-item-fk-cascade":vm,"136-task-board-import-idempotency":qm,"137-agent-sandbox-runner-state":gm,"138-agent-sandbox-sessions":cm,"139-organization-billing":hm,"140-seat-change-log":om,"141-benefits-sync-pending":am,"142-stripe-event-watermark":rm,"143-armed-report-url":em,"144-benefits-pending-index":lm,"145-user-model-preferences":dm,"146-organization-main-agent":sm,"147-drop-agent-sandbox-tables":bm,"148-org-flags":_C,"149-task-board-item-sort-order":xC,"150-task-board-activity":uC,"151-task-board-tags":CC,"152-repair-connection-slug":NC,"153-task-board-latest-assistant-part-index":KC,"154-task-board-qa-activity":zC,"155-task-board-review-claims":PC,"156-task-board-conflict-activity":UC,"157-drop-seat-billing":JC,"158-drop-github-child-single-parent":XC,"159-task-board-comments":jC,"160-task-quota-billing":QC,"161-task-quota-claim-state":ZC,"162-claude-subscriptions":DC,"163-task-board-item-dismissed":LC,"164-per-org-task-quota":FC,"165-task-board-pending-review-index":RC,"166-task-board-last-swept-at":YC,"167-task-board-run-retry":HC,"168-org-repo-sync":nC,"169-task-board-merge-failed-activity":GC,"170-task-board-item-repo":yC,"171-jira-integration":fC,"172-task-board-item-key-seq":OC,"173-thread-github-repo-connection-index":SC,"174-thread-message-parts-persisted-at":IC,"175-task-board-sprints":wC,"176-task-board-done-sweep-index":VC,"177-notifications":kC,"178-jira-status-mapping-array":pC,"179-notification-mentioned":iC,"180-task-board-item-type":qC,"181-task-board-item-type-required":gC,"182-task-board-sprints-entities":cC,"183-drop-jira-jql-filter":hC,"184-jira-rescan-after-scope-change":oC,"185-jira-rescan-existing-cards":aC,"186-jira-rescan-pending-flag":eC,"187-task-board-comment-thread":lC,"188-invitation-auto-accept":dC,"189-task-board-column-automations":bC,"190-task-board-review-cycle-started-at":_T,"191-task-board-columns":xT,"192-task-board-verdict-nudge-activity":mT,"193-task-board-status-column-fk":CT,"194-jira-link-sprint":TT,"195-task-board-sprint-activity":KT,"196-task-board-column-tracker-statuses":ET,"197-task-board-prompts":zT,"198-task-board-external-url":PT,"199-drop-jira-mirror-and-org-columns":$T,"200-jira-run-trigger":UT,"201-organization-notices":JT,"202-redact-base64-thread-parts":jT,"203-task-board-preview-routes":QT,"204-git-provider-accounts-and-repositories":WT,"205-repository-references":ZT,"206-repository-consumers":xx,"207-task-board-prs-repo-idx":_x,"208-github-connect-flows":b_,"209-github-installation-authorization":s_,"210-github-repository-authorization":a_,"211-user-fs-org":o_,"212-coding-agent-mcp-excluded":r_,"213-bitbucket-git-provider":e_,"214-connections-sanitized-id-idx":q_,"215-commerce-discovery-repository":g_,"216-github-cli-auth":h_,"217-experiments":l_,"218-thread-message-parts-error-idx":d_},DT=Lj;import{getMigrations as sj}from"better-auth/db";import{sso as bj}from"@better-auth/sso";import{organization as _Q}from"@decocms/better-auth/plugins";import{admin as xQ,apiKey as uQ,jwt as mQ,magicLink as CQ,mcp as TQ,openAPI as NQ}from"better-auth/plugins";import{emailOTP as KQ}from"better-auth/plugins/email-otp";import{Kysely as hj,PostgresDialect as cN}from"kysely";import{Pool as hN}from"pg";import{homedir as Fj}from"os";var Rj=new Set(["all","worker","api"]);function Yj(_){let x=(_??"").trim();return Rj.has(x)?x:"all"}var Hj=new Set(["production","development","test"]);function Mj(_){let x=(_??"").trim();return Hj.has(x)?x:"development"}function W(_){return _==="true"||_==="1"}function FT(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function y(_,x,u,T){return FT(_,x,T)??u}function nj(_){let x={};for(let u of(_??"").split(",")){let T=u.trim();if(!T)continue;let C=T.indexOf("="),N=C>0?T.slice(0,C).trim():"",E=C>0?T.slice(C+1).trim():"";if(!N||!E){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${T}" \u2014 expected price_xxx=planId`);continue}x[N]=E}return x}function Bj(_,x,u,T){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&C>T)throw Error(`${_} must be at most ${T}`);return C}function LT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function IN(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function Gj(_){return _===void 0||_===""||_==="true"||_==="1"}function K_(_,x){return _||x}function wN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${Fj()}/deco`,T=_.localMode,C=_.nodeEnv||Mj(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222",E={nodeEnv:C,port:y("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:K_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:W(x.DATABASE_PG_SSL),databasePoolMax:y("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:y("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:K_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:W(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:W(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((K)=>K.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((K)=>K.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:FT("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:W(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:nj(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:Bj("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:W(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:y("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:y("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:y("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:W(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:W(x.HOSTING_CONTROL_PLANE_GA),monitorGa:W(x.MONITOR_GA),plansEnabled:W(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:LT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:W(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:y("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:y("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:LT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:y("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:Gj(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:FT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:Yj(K_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:W(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:W(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:LT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:W(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:y("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:K_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:K_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(E.plansEnabled&&!E.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(E.plansEnabled&&!E.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(E.plansEnabled&&!E.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(E.plansEnabled&&Object.keys(E.stripePlanPriceIds).length>0&&!E.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(E.plansEnabled&&Object.keys(E.stripePlanPriceIds).length>1&&!E.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{settings:E,externalDatabaseUrl:IN(x.DATABASE_URL),externalNatsUrl:IN(N),skipMigrations:_.skipMigrations}}var k_=null;function o(){if(!k_)yj();return k_}function yj(){if(k_)return;let _={...process.env},x=wN({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);k_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as wj,metrics as Vj,propagation as O4,ROOT_CONTEXT as S4,SpanStatusCode as A4,trace as kj}from"@opentelemetry/api";import{logs as pj,SeverityNumber as RT}from"@opentelemetry/api-logs";import{OTLPLogExporter as V4}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as tj}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as t4}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as v4}from"@opentelemetry/instrumentation-runtime-node";import{context as MZ,propagation as nZ,SpanKind as BZ,SpanStatusCode as GZ}from"@opentelemetry/api";var fZ=globalThis.fetch;import{ExportResultCode as qZ}from"@opentelemetry/core";import{ExportResultCode as p_}from"@opentelemetry/core";import{mkdir as fj,rename as Oj,writeFile as Sj}from"fs/promises";import{join as t_}from"path";class i_{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:p_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:p_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:p_.FAILED}});return Promise.resolve({code:p_.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 C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),T=u.find((C)=>C.status==="rejected");if(T){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let N=_.filter((E)=>!C.has(E.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?t_(this.basePath,x,...T):t_(this.basePath,...T);if(!this.knownDirs.has(C))await fj(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=t_(C,`.${N}.tmp`),K=t_(C,N),z=_.join(`
1914
1914
  `)+`
1915
- `;await yj(E,z,{mode:384}),await Bj(E,K)}}import{ExportResultCode as qZ}from"@opentelemetry/core";import{AggregationTemporality as cZ,DataPointType as hZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as dZ}from"@opentelemetry/core";var x4=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as h4,LoggerProvider as o4}from"@opentelemetry/sdk-logs";import{detectResources as r4,envDetector as e4,hostDetector as l4,osDetector as d4,processDetector as s4,resourceFromAttributes as b4}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as xD}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as C4}from"@opentelemetry/api-logs";import{NodeSDK as CD}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as ND,SamplingDecision as a}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as z4}from"@opentelemetry/api";var Vj="__d",kj=Oj("Current request"),pj=1;var VN=(_)=>{let u=new URL(_.url).searchParams.get(Vj);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class kN{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,N){let E=_.getValue(kj);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,N);return{decision:a.RECORD_AND_SAMPLED}}let K=VN(E);if(K)return{decision:a.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,N);if(z.decision===a.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:a.NOT_RECORD}}toString(){return"DebugSampler"}}class pN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:a.RECORD_AND_SAMPLED};return{decision:a.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var ED=new wj({preventServerStart:!0}),zD=new kN(new pN(pj));var wN=Aj.getTracer("studio","1.0.0"),E_=Sj.getMeter("studio","1.0.0"),tj=Ij.getLogger("studio","1.0.0"),FT=(_,x,u)=>{let T={},C=u,N=u[u.length-1];if(N!==null&&typeof N==="object"&&!Array.isArray(N)&&!(N instanceof Error)&&Object.getPrototypeOf(N)===Object.prototype)T=N,C=u.slice(0,-1);let E=C.map((K)=>{if(K instanceof Error)return`${K.name}: ${K.message}`;if(typeof K==="object")try{return JSON.stringify(K)}catch{return"[Object]"}return String(K)}).join(" ");tj.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},RT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{FT(nT.ERROR,"ERROR",_),RT.error(..._)};console.warn=(..._)=>{FT(nT.WARN,"WARN",_),RT.warn(..._)};console.debug=(..._)=>{FT(nT.DEBUG,"DEBUG",_),RT.debug(..._)};var YT,tN=0,HT=500;function ij(){if(YT)return;let _=performance.now()+HT;YT=setInterval(()=>{let x=performance.now();tN=Math.max(0,x-_),_=x+HT},HT),YT.unref?.()}function iN(){return ij(),tN}var qj=()=>E_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),vN=()=>E_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),qN=400,gj=100,cj=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>qN){let T=iN(),C=T>qN/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(T),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:v_()}})}if(qj().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function hj(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=v_(),N=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-T;if(vN().record(z,{"db.pool.outcome":N?"contended":"available"}),z>gj)if(N)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:z,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:z,idleAtStart:E,total:_.totalCount,max:C});return K},(K)=>{throw vN().record(performance.now()-T,{"db.pool.outcome":"error"}),K})},_}var hN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function oN(){try{return o().databasePgSsl}catch{return!1}}function v_(){try{return o().databasePoolMax}catch{return 10}}function oj(_){let x=hj(new cN({connectionString:_,max:v_(),ssl:oN(),...hN})),u=new gN({pool:x});return{type:"postgres",db:new vj({dialect:u,log:cj(x)}),pool:x}}function P_(){return o().databaseUrl}function aN(_){let x=_||P_();return new gN({pool:new cN({connectionString:x,max:v_(),ssl:oN(),...hN})})}function aj(_){let x=_||P_();return oj(x)}async function rN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===z_)z_=null}var z_=null;function MT(){if(!z_)z_=aj(P_());return z_}async function eN(_){let u={database:aN(_||P_()),plugins:[lj({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),dj(),sj(),bj(),uQ(),xQ({loginPage:"/login"}),ej(),_Q({sendMagicLink:async()=>{}}),mQ({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:N}=await rj(u);if(!T.length&&!C.length)return"up to date";return await N(),`${C.length+T.length} table(s) migrated`}async function dN(_,x){return(await r`
1915
+ `;await Sj(E,z,{mode:384}),await Oj(E,K)}}import{ExportResultCode as aZ}from"@opentelemetry/core";import{AggregationTemporality as eZ,DataPointType as lZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as u4}from"@opentelemetry/core";var N4=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as l4,LoggerProvider as d4}from"@opentelemetry/sdk-logs";import{detectResources as b4,envDetector as _D,hostDetector as xD,osDetector as uD,processDetector as mD,resourceFromAttributes as CD}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as ND}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as z4}from"@opentelemetry/api-logs";import{NodeSDK as zD}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as $D,SamplingDecision as a}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as X4}from"@opentelemetry/api";var ij="__d",vj=wj("Current request"),qj=1;var kN=(_)=>{let u=new URL(_.url).searchParams.get(ij);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class pN{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,N){let E=_.getValue(vj);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,N);return{decision:a.RECORD_AND_SAMPLED}}let K=kN(E);if(K)return{decision:a.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,N);if(z.decision===a.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:a.NOT_RECORD}}toString(){return"DebugSampler"}}class tN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:a.RECORD_AND_SAMPLED};return{decision:a.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var JD=new tj({preventServerStart:!0}),XD=new pN(new tN(qj));var VN=kj.getTracer("studio","1.0.0"),E_=Vj.getMeter("studio","1.0.0"),gj=pj.getLogger("studio","1.0.0"),YT=(_,x,u)=>{let T={},C=u,N=u[u.length-1];if(N!==null&&typeof N==="object"&&!Array.isArray(N)&&!(N instanceof Error)&&Object.getPrototypeOf(N)===Object.prototype)T=N,C=u.slice(0,-1);let E=C.map((K)=>{if(K instanceof Error)return`${K.name}: ${K.message}`;if(typeof K==="object")try{return JSON.stringify(K)}catch{return"[Object]"}return String(K)}).join(" ");gj.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},HT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{YT(RT.ERROR,"ERROR",_),HT.error(..._)};console.warn=(..._)=>{YT(RT.WARN,"WARN",_),HT.warn(..._)};console.debug=(..._)=>{YT(RT.DEBUG,"DEBUG",_),HT.debug(..._)};var MT,iN=0,nT=500;function cj(){if(MT)return;let _=performance.now()+nT;MT=setInterval(()=>{let x=performance.now();iN=Math.max(0,x-_),_=x+nT},nT),MT.unref?.()}function vN(){return cj(),iN}var oj=()=>E_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),qN=()=>E_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),gN=400,aj=100,rj=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>gN){let T=vN(),C=T>gN/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(T),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:v_()}})}if(oj().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function ej(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=v_(),N=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-T;if(qN().record(z,{"db.pool.outcome":N?"contended":"available"}),z>aj)if(N)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:z,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:z,idleAtStart:E,total:_.totalCount,max:C});return K},(K)=>{throw qN().record(performance.now()-T,{"db.pool.outcome":"error"}),K})},_}var oN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function aN(){try{return o().databasePgSsl}catch{return!1}}function v_(){try{return o().databasePoolMax}catch{return 10}}function lj(_){let x=ej(new hN({connectionString:_,max:v_(),ssl:aN(),...oN})),u=new cN({pool:x});return{type:"postgres",db:new hj({dialect:u,log:rj(x)}),pool:x}}function P_(){return o().databaseUrl}function rN(_){let x=_||P_();return new cN({pool:new hN({connectionString:x,max:v_(),ssl:aN(),...oN})})}function dj(_){let x=_||P_();return lj(x)}async function eN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===z_)z_=null}var z_=null;function BT(){if(!z_)z_=dj(P_());return z_}async function lN(_){let u={database:rN(_||P_()),plugins:[_Q({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),xQ(),uQ(),mQ(),NQ(),TQ({loginPage:"/login"}),bj(),CQ({sendMagicLink:async()=>{}}),KQ({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:N}=await sj(u);if(!T.length&&!C.length)return"up to date";return await N(),`${C.length+T.length} table(s) migrated`}async function sN(_,x){return(await r`
1916
1916
  SELECT table_name FROM information_schema.tables
1917
1917
  WHERE table_schema='public' AND table_name=${x}
1918
- `.execute(_)).rows.length>0}async function CQ(_){if(await dN(_,"plugin_migrations"))return;await r`
1918
+ `.execute(_)).rows.length>0}async function EQ(_){if(await sN(_,"plugin_migrations"))return;await r`
1919
1919
  CREATE TABLE plugin_migrations (
1920
1920
  plugin_id TEXT NOT NULL,
1921
1921
  name TEXT NOT NULL,
1922
1922
  timestamp TEXT NOT NULL,
1923
1923
  PRIMARY KEY (plugin_id, name)
1924
1924
  )
1925
- `.execute(_)}async function TQ(_){if(!await dN(_,"kysely_migration"))return;let x=await r`
1925
+ `.execute(_)}async function zQ(_){if(!await sN(_,"kysely_migration"))return;let x=await r`
1926
1926
  SELECT name, timestamp FROM kysely_migration
1927
1927
  WHERE name LIKE '%/%'
1928
1928
  `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:T}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let N=C.indexOf("/");if(N===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let E=C.substring(0,N),K=C.substring(N+1);try{await r`
@@ -1933,4 +1933,4 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
1933
1933
  WHERE plugin_id = ${E} AND name = ${K}
1934
1934
  `.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${K}, keeping in old table`);continue}}await r`
1935
1935
  DELETE FROM kysely_migration WHERE name = ${u}
1936
- `.execute(_)}}async function NQ(_){await CQ(_),await TQ(_);let x=new lN({db:_,provider:{getMigrations:()=>Promise.resolve(ZT)}}),{error:u,results:T}=await x.migrateToLatest(),C=0;if(T?.forEach((N)=>{if(N.status==="Success")C++;else if(N.status==="Error")console.error(`Failed to execute migration "${N.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function KQ(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await eN();let N=u??MT(),E=async()=>{if(!x&&!u)await rN(N).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await NQ(N.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function tD(){let _=MT(),x=new lN({db:_.db,provider:{getMigrations:()=>Promise.resolve(ZT)}}),{error:u,results:T}=await x.migrateDown();if(T?.forEach((C)=>{if(C.status==="Success")console.log(`\u2705 Migration "${C.migrationName}" rolled back successfully`);else if(C.status==="Error")console.error(`\u274C Failed to rollback migration "${C.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await KQ(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{NQ as runKyselyMigrations,KQ as migrateToLatest,tD as migrateDown};
1936
+ `.execute(_)}}async function PQ(_){await EQ(_),await zQ(_);let x=new dN({db:_,provider:{getMigrations:()=>Promise.resolve(DT)}}),{error:u,results:T}=await x.migrateToLatest(),C=0;if(T?.forEach((N)=>{if(N.status==="Success")C++;else if(N.status==="Error")console.error(`Failed to execute migration "${N.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function $Q(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await lN();let N=u??BT(),E=async()=>{if(!x&&!u)await eN(N).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await PQ(N.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function cD(){let _=BT(),x=new dN({db:_.db,provider:{getMigrations:()=>Promise.resolve(DT)}}),{error:u,results:T}=await x.migrateDown();if(T?.forEach((C)=>{if(C.status==="Success")console.log(`\u2705 Migration "${C.migrationName}" rolled back successfully`);else if(C.status==="Error")console.error(`\u274C Failed to rollback migration "${C.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await $Q(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{PQ as runKyselyMigrations,$Q as migrateToLatest,cD as migrateDown};