decocms 4.345.0 → 4.345.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/dist/client/assets/{AlertCircle-piOaFPQJ.js → AlertCircle-D5wzOxIg.js} +1 -1
  2. package/dist/client/assets/{AreaChart-C754kxxt.js → AreaChart-B7-Obnq_.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-EySzpaMt.js → ArrowLeft-Beb7uT2a.js} +1 -1
  4. package/dist/client/assets/{ArrowRight-CN1prjjJ.js → ArrowRight-Du9XgC-I.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-39D5k7I2.js → ArrowUp-_u4Yru0Q.js} +1 -1
  6. package/dist/client/assets/{Check-CmgBwUGv.js → Check-Bqh0edDs.js} +1 -1
  7. package/dist/client/assets/{CheckCircle-CwJqWx0e.js → CheckCircle-P3KELI_n.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-Dk9nR_C7.js → ChevronRight-DyhM_Luf.js} +1 -1
  9. package/dist/client/assets/{ChevronSelectorVertical-X68ci9mX.js → ChevronSelectorVertical-S2WVRFJv.js} +1 -1
  10. package/dist/client/assets/{ChevronUp-DLLvYK07.js → ChevronUp-CGseLBwf.js} +1 -1
  11. package/dist/client/assets/{Copy01-DlxhdgMn.js → Copy01-CQ5n9k6R.js} +1 -1
  12. package/dist/client/assets/{CreditCard01-CGG5tsm6.js → CreditCard01-DQ2UyAUW.js} +1 -1
  13. package/dist/client/assets/{DotsVertical-Bk31Y8qH.js → DotsVertical-CXA4FBF-.js} +1 -1
  14. package/dist/client/assets/{Download01-CxTJDArl.js → Download01-EHABWuSq.js} +1 -1
  15. package/dist/client/assets/{ErrorBarContext-DAIYWYhf.js → ErrorBarContext-DtNUqfSS.js} +1 -1
  16. package/dist/client/assets/{Eye-UEYlbIHb.js → Eye-4ikW46Xl.js} +1 -1
  17. package/dist/client/assets/{GitBranch01-DRT2X7Dj.js → GitBranch01-rChCKXuD.js} +1 -1
  18. package/dist/client/assets/{Globe01-Z6BbST4r.js → Globe01-DQGNcxVn.js} +1 -1
  19. package/dist/client/assets/{HardDrive--vlQvWpi.js → HardDrive-CALvWP4_.js} +1 -1
  20. package/dist/client/assets/{Image01-rCxXluf6.js → Image01-BrxwhCeX.js} +1 -1
  21. package/dist/client/assets/{Key01-By90Yq6k.js → Key01-D_IxGQOL.js} +1 -1
  22. package/dist/client/assets/{Link01-CUe3c6G0.js → Link01-DvvkHs6T.js} +1 -1
  23. package/dist/client/assets/{LinkExternal01-D2pSy7v4.js → LinkExternal01-B4pNNDj3.js} +1 -1
  24. package/dist/client/assets/{Monitor01-CY2DbFkD.js → Monitor01-Cb0G367h.js} +1 -1
  25. package/dist/client/assets/{Package-Bb4KYw9O.js → Package-Bfk8OrRH.js} +1 -1
  26. package/dist/client/assets/{Palette-o-NEtwsW.js → Palette-B6tq__pc.js} +1 -1
  27. package/dist/client/assets/{Play-DpmIDjD8.js → Play-BKI4FgKL.js} +1 -1
  28. package/dist/client/assets/{Plus-CgVmxzR4.js → Plus-BZSUkwsF.js} +1 -1
  29. package/dist/client/assets/{SearchMd-Cjr4mqh9.js → SearchMd-CC2qYhKq.js} +1 -1
  30. package/dist/client/assets/{Sector-3UpSGQVE.js → Sector-D-zqGwr9.js} +1 -1
  31. package/dist/client/assets/{Settings02-Dss_LnvC.js → Settings02-3O7I-4oK.js} +1 -1
  32. package/dist/client/assets/{Share07-CgTNZ1dk.js → Share07-B043tEsF.js} +1 -1
  33. package/dist/client/assets/{Shield01-CNbrlPDI.js → Shield01-DSyesTES.js} +1 -1
  34. package/dist/client/assets/{Stars01-Dno5l14o.js → Stars01-D0DXnyE9.js} +1 -1
  35. package/dist/client/assets/{Sun-DAVD-A5B.js → Sun-BUQJT4KF.js} +1 -1
  36. package/dist/client/assets/{Tool01-DdmZi7j_.js → Tool01-CgvePMtM.js} +1 -1
  37. package/dist/client/assets/{Tool02-KStnzngn.js → Tool02-_HC8oqfU.js} +1 -1
  38. package/dist/client/assets/{Trash01-BevWobXU.js → Trash01-DCX9ydiU.js} +1 -1
  39. package/dist/client/assets/{TrendUp01-NTK3Zf_M.js → TrendUp01-DhL5-hJo.js} +1 -1
  40. package/dist/client/assets/{Upload01-By19QANP.js → Upload01-CNkQbAmi.js} +1 -1
  41. package/dist/client/assets/{User01-CDRv3_oY.js → User01-cnJUdVWa.js} +1 -1
  42. package/dist/client/assets/{UserSquare-l4Q5fPEZ.js → UserSquare-CpUQtm07.js} +1 -1
  43. package/dist/client/assets/{Users01-sAr72jTU.js → Users01-CPNdhBFx.js} +1 -1
  44. package/dist/client/assets/{Users03-CrZajyAo.js → Users03-BZkJWCNu.js} +1 -1
  45. package/dist/client/assets/{XCircle-BTj4-tdv.js → XCircle-4con0UUu.js} +1 -1
  46. package/dist/client/assets/{XClose-C-bbcgCJ.js → XClose-C2dpX0F_.js} +1 -1
  47. package/dist/client/assets/{Zap-D6-O3NZl.js → Zap-Bsbv5icR.js} +1 -1
  48. package/dist/client/assets/{ZoomOut-DpAkOD8e.js → ZoomOut-DiztYlpQ.js} +1 -1
  49. package/dist/client/assets/{access-gate-DQan09qj.js → access-gate-DD56oGJy.js} +1 -1
  50. package/dist/client/assets/{agent-icon-BrQLA9dC.js → agent-icon-B7AXGQ6P.js} +1 -1
  51. package/dist/client/assets/{agents-list-BIlHhg8F.js → agents-list-CY8WmhcM.js} +1 -1
  52. package/dist/client/assets/{ai-providers-D9jubp2s.js → ai-providers-BiO7fRFd.js} +1 -1
  53. package/dist/client/assets/{alert-DI_JsgmI.js → alert-DtchnFmi.js} +1 -1
  54. package/dist/client/assets/{alert-dialog-DuVJ7GC7.js → alert-dialog-BxdFiiIi.js} +1 -1
  55. package/dist/client/assets/{analytics-tab-gxTnWc1L.js → analytics-tab-I9OgZdgL.js} +1 -1
  56. package/dist/client/assets/api-keys-BBBNaWWJ.js +1 -0
  57. package/dist/client/assets/{api-keys-BJORgq17.js → api-keys-BrduPH4d.js} +1 -1
  58. package/dist/client/assets/app-editor-BzjPUgJu.js +1 -0
  59. package/dist/client/assets/{auth-CRmM4ftp.js → auth-BTVKfAUC.js} +1 -1
  60. package/dist/client/assets/{auth-catchall-D9f22qVk.js → auth-catchall-BVwWvb_2.js} +1 -1
  61. package/dist/client/assets/{auth-entry-Z1av5utg.js → auth-entry-BVFYUVVl.js} +1 -1
  62. package/dist/client/assets/{auth-split-layout-Dhyl4Mok.js → auth-split-layout-Dr2p8hD_.js} +1 -1
  63. package/dist/client/assets/{authenticate-and-persist-oauth-DEZCdj-t.js → authenticate-and-persist-oauth-BJAzAIhG.js} +1 -1
  64. package/dist/client/assets/{automation-list-row-CJo0GDE_.js → automation-list-row-CtQKd-53.js} +1 -1
  65. package/dist/client/assets/{automation-runs-Ge9BW9cQ.js → automation-runs-B71QxQf_.js} +1 -1
  66. package/dist/client/assets/{automations-AOZDTTBB.js → automations-BoEYJP3m.js} +1 -1
  67. package/dist/client/assets/{autosend-CI7ToXd3.js → autosend-t6fUCO9u.js} +1 -1
  68. package/dist/client/assets/{avatar-ncVfbaUx.js → avatar-_tvfLV9T.js} +1 -1
  69. package/dist/client/assets/{badge-rtLQpibV.js → badge-5xoC1FJQ.js} +1 -1
  70. package/dist/client/assets/{block-document-WxPy4zHY.js → block-document-CvHof2aO.js} +1 -1
  71. package/dist/client/assets/{breadcrumb-d7wNqsyt.js → breadcrumb-BjJYdEoK.js} +1 -1
  72. package/dist/client/assets/{buckets-NBI_IEuj.js → buckets-DC0lhAAM.js} +1 -1
  73. package/dist/client/assets/{bulk-category-panel-B8uZmKXZ.js → bulk-category-panel-B5ry5wx9.js} +1 -1
  74. package/dist/client/assets/{capability-load-error-BAq8tXOS.js → capability-load-error-QfuL86LE.js} +1 -1
  75. package/dist/client/assets/{cards-CgpdHb-U.js → cards-QMwTXs-C.js} +1 -1
  76. package/dist/client/assets/{category-editor-DrNCa6L7.js → category-editor-eSTt5JDo.js} +1 -1
  77. package/dist/client/assets/{cdn-tab-BflNT2VL.js → cdn-tab-D1sD7Ph4.js} +1 -1
  78. package/dist/client/assets/{chart-C7j_btUB.js → chart-9tl6Tp7O.js} +1 -1
  79. package/dist/client/assets/{chat-context-BcY08VKG.js → chat-context-B3FHPtyp.js} +1 -1
  80. package/dist/client/assets/{checkbox-D0oTwa58.js → checkbox-DdiWS6j9.js} +1 -1
  81. package/dist/client/assets/{choose-editor-B2cOrwQv.js → choose-editor-Brv8AsJr.js} +1 -1
  82. package/dist/client/assets/{cli-auth-success-G8Y4SVGK.js → cli-auth-success-DIIukxGb.js} +1 -1
  83. package/dist/client/assets/{client-icons-BE3evb-i.js → client-icons-cKM5ZcqP.js} +1 -1
  84. package/dist/client/assets/{collection-detail-DCICjiwT.js → collection-detail--i0_pJUK.js} +1 -1
  85. package/dist/client/assets/{collection-display-button-C4HtW9B5.js → collection-display-button-D_wt_RA1.js} +1 -1
  86. package/dist/client/assets/{collection-search-UW0xDxmi.js → collection-search-DRdf_GYh.js} +1 -1
  87. package/dist/client/assets/{collection-table-wrapper-STLb6VjQ.js → collection-table-wrapper-CnvktR4-.js} +1 -1
  88. package/dist/client/assets/{collection-tabs-644rp01A.js → collection-tabs-BxV7MP04.js} +1 -1
  89. package/dist/client/assets/{command-CTH7s7Ya.js → command-BDN-a3rJ.js} +1 -1
  90. package/dist/client/assets/{commerce-onboarding-CxUaxjg3.js → commerce-onboarding-DSY4uJcG.js} +1 -1
  91. package/dist/client/assets/{connect-DEIsBWg2.js → connect-GYd0QYyw.js} +1 -1
  92. package/dist/client/assets/{connect-layout-CmuGJ6zd.js → connect-layout-B6hgiK5r.js} +1 -1
  93. package/dist/client/assets/{connection-CU1s53fy.js → connection-C75DYl44.js} +1 -1
  94. package/dist/client/assets/{connection-card-B-DQLE2m.js → connection-card-BaEIpCbA.js} +1 -1
  95. package/dist/client/assets/{connection-detail-C3OYxb5o.js → connection-detail-Cdm23aMI.js} +1 -1
  96. package/dist/client/assets/{connection-form-helpers-B-auMXZc.js → connection-form-helpers-aQ5B6tRy.js} +1 -1
  97. package/dist/client/assets/{connections-DPnFX966.js → connections-B8QOba3u.js} +1 -1
  98. package/dist/client/assets/{create-organization-dialog-xnwS5290.js → create-organization-dialog-BST4Ck0w.js} +1 -1
  99. package/dist/client/assets/{decopilot-sse-pool-CnHcYfZj.js → decopilot-sse-pool-DIVelB7F.js} +1 -1
  100. package/dist/client/assets/{dialog-DKxWMb0-.js → dialog-wNMMbzXr.js} +1 -1
  101. package/dist/client/assets/{domain-settings-yEjTU5K7.js → domain-settings-CxJq_pNN.js} +1 -1
  102. package/dist/client/assets/{drawer-BaA_lu4x.js → drawer-Dl4KbpLj.js} +1 -1
  103. package/dist/client/assets/{dropdown-menu-CC8IMYtS.js → dropdown-menu-BvPxOnm0.js} +1 -1
  104. package/dist/client/assets/{e2e-tab-CyxfrSC2.js → e2e-tab-BiwnewGk.js} +1 -1
  105. package/dist/client/assets/{editor-Cm-sI42p.js → editor-BskznDjo.js} +1 -1
  106. package/dist/client/assets/{empty-state-DA8cnNqW.js → empty-state-C-SubUW6.js} +1 -1
  107. package/dist/client/assets/{empty-state-BioEMyZp.js → empty-state-CaNGPrDs.js} +1 -1
  108. package/dist/client/assets/{extract-connection-data-BdnZZmxw.js → extract-connection-data-C4TyJjoX.js} +1 -1
  109. package/dist/client/assets/{file-explorer-jXzlywVk.js → file-explorer-B1DsBcfy.js} +1 -1
  110. package/dist/client/assets/{file-type-icon-ChIQfzaN.js → file-type-icon-DKxC4oSX.js} +1 -1
  111. package/dist/client/assets/{folder-icon-_4CbErMC.js → folder-icon-f4yD90eP.js} +1 -1
  112. package/dist/client/assets/{form-CorLMse0.js → form-B76JQCy8.js} +1 -1
  113. package/dist/client/assets/{general-BCDanvgJ.js → general-BNu9Vb3u.js} +1 -1
  114. package/dist/client/assets/{github-icon-CeFWgmVz.js → github-icon-CdMLfMj7.js} +1 -1
  115. package/dist/client/assets/{hooks-BOHEAk9Y.js → hooks-BJtZPSVy.js} +1 -1
  116. package/dist/client/assets/{hosting-tab-BktIiwOH.js → hosting-tab-BLjuvgys.js} +1 -1
  117. package/dist/client/assets/{index-ObIlqSDZ.js → index-4snYVWB2.js} +1 -1
  118. package/dist/client/assets/{index-BrCtIPlH.js → index-CaU5DFED.js} +1 -1
  119. package/dist/client/assets/{index-B8l7Wp2b.js → index-CwUtSIZT.js} +1 -1
  120. package/dist/client/assets/{index-fS0pDoNW.js → index-DR-7CxUP.js} +4 -4
  121. package/dist/client/assets/{index-BlP07NoC.js → index-DU9sTbUZ.js} +6 -6
  122. package/dist/client/assets/{index-CYWX8R5H.js → index-Dj8tvdMR.js} +1 -1
  123. package/dist/client/assets/{index-BAPa6G_8.js → index-DlGxosdM.js} +1 -1
  124. package/dist/client/assets/{index-YZeWKaou.js → index-Jy48DtbD.js} +1 -1
  125. package/dist/client/assets/{index-w12TFwlK.js → index-RKb_9qNN.js} +1 -1
  126. package/dist/client/assets/{index-redirect-CfbLeyNL.js → index-redirect-DSZLimlN.js} +1 -1
  127. package/dist/client/assets/{index-D0wjsDWq.js → index-zyhhgc8D.js} +1 -1
  128. package/dist/client/assets/{infiniteQueryObserver-B62setNi.js → infiniteQueryObserver-DMi6D2_K.js} +1 -1
  129. package/dist/client/assets/{infra-billing-BtMbkXjN.js → infra-billing-92jygPAU.js} +1 -1
  130. package/dist/client/assets/{input-DaMV0yqT.js → input-By-Luuj6.js} +1 -1
  131. package/dist/client/assets/{integration-icon-BFx8Gs71.js → integration-icon-CpzKJe80.js} +1 -1
  132. package/dist/client/assets/{invite-member-dialog-erQjr6Dv.js → invite-member-dialog-QBtFVQK3.js} +1 -1
  133. package/dist/client/assets/{label-Cznjg7Mb.js → label-CHgW_ahI.js} +1 -1
  134. package/dist/client/assets/{layout-CwmaRw9Y.js → layout-9YgsD1RL.js} +1 -1
  135. package/dist/client/assets/{login-DYTFtcpb.js → login-BjHKLMoO.js} +1 -1
  136. package/dist/client/assets/{markdown-BNMHtGi6.js → markdown-BbkOj7TQ.js} +1 -1
  137. package/dist/client/assets/{mcp-app-renderer-Df-LUzfK.js → mcp-app-renderer--rnWoHIc.js} +1 -1
  138. package/dist/client/assets/{mcp-oauth-CDjOqnrq.js → mcp-oauth-Dql553Ej.js} +1 -1
  139. package/dist/client/assets/{members-s02j5DFH.js → members-D6h-8p_Y.js} +1 -1
  140. package/dist/client/assets/{monaco-editor-7CBGfDCH.js → monaco-editor-CK-YzUmW.js} +1 -1
  141. package/dist/client/assets/{monitoring-stats-row-CO2-hLq6.js → monitoring-stats-row-D_wXsyGn.js} +1 -1
  142. package/dist/client/assets/{multi-select-D1MP7iDa.js → multi-select-B93qStg3.js} +1 -1
  143. package/dist/client/assets/{oauth-callback-t2WmO9-v.js → oauth-callback-DmICfNLf.js} +1 -1
  144. package/dist/client/assets/{oauth-callback-ai-provider-Ce5MHp3r.js → oauth-callback-ai-provider-BCYGio4s.js} +1 -1
  145. package/dist/client/assets/{onboarding-Dg8pqQh4.js → onboarding-z3GnNpO5.js} +1 -1
  146. package/dist/client/assets/{org-layout-dq0fDq-h.js → org-layout-C-eaDwHZ.js} +1 -1
  147. package/dist/client/assets/{organization-choice-Bnr-wpFe.js → organization-choice-BaFzw0ii.js} +1 -1
  148. package/dist/client/assets/{orgs-DJfci181.js → orgs-BumlFPGs.js} +1 -1
  149. package/dist/client/assets/{page-seo-form-B1ADwpo8.js → page-seo-form-DatHE4-0.js} +1 -1
  150. package/dist/client/assets/{popover-sPMAt4On.js → popover-zAXw_Ex4.js} +1 -1
  151. package/dist/client/assets/{post-calendar-B4Z9Jz7b.js → post-calendar-BnXyVANq.js} +1 -1
  152. package/dist/client/assets/{post-editor-CcXinFIi.js → post-editor-DMnPDsdI.js} +1 -1
  153. package/dist/client/assets/{primitives-CGxQwrae.js → primitives-zj67r-_6.js} +1 -1
  154. package/dist/client/assets/{profile-C9bBchUu.js → profile-DMvNb5vL.js} +1 -1
  155. package/dist/client/assets/{project-app-view-DudFJRxH.js → project-app-view-Bn6tqh-s.js} +1 -1
  156. package/dist/client/assets/{project-icon-DD8-TjG9.js → project-icon-DZuabjud.js} +1 -1
  157. package/dist/client/assets/{prompts-CAxx1TcH.js → prompts-faWYk3a_.js} +1 -1
  158. package/dist/client/assets/record-editor-BGEMjZVj.js +1 -0
  159. package/dist/client/assets/redirect-editor-BlQ9ZBG7.js +1 -0
  160. package/dist/client/assets/registry-Do5Holmd.js +2 -0
  161. package/dist/client/assets/{registry-layout-Bcal-jx7.js → registry-layout-BiksbGSO.js} +1 -1
  162. package/dist/client/assets/{reports-BbDmvyvn.js → reports-o3wZ4DFb.js} +1 -1
  163. package/dist/client/assets/repositories-4Ag5U4M3.js +1 -0
  164. package/dist/client/assets/{repository-import-picker-TTmQRKgM.js → repository-import-picker-Crzmlv3v.js} +1 -1
  165. package/dist/client/assets/{repository-picker-Be7NfZEA.js → repository-picker-Dn5CWMQu.js} +1 -1
  166. package/dist/client/assets/{require-capability-q7uVdBbT.js → require-capability-ry4-n_XW.js} +1 -1
  167. package/dist/client/assets/{required-auth-layout-CR5eG3sF.js → required-auth-layout-C6sCfFoS.js} +1 -1
  168. package/dist/client/assets/{reset-password-DnIxE4MM.js → reset-password-BPvYj_d6.js} +1 -1
  169. package/dist/client/assets/{review-settings-Bit87Ep6.js → review-settings-CFta44Y-.js} +1 -1
  170. package/dist/client/assets/{roles-CYck8jTX.js → roles-D-D6RtHy.js} +1 -1
  171. package/dist/client/assets/{schema-CVS6b6X8.js → schema-CzaGiNXr.js} +1 -1
  172. package/dist/client/assets/{scroll-area-DIJ4XfEc.js → scroll-area-C4NBwqyh.js} +1 -1
  173. package/dist/client/assets/{search-input-BN_fecvo.js → search-input-jf5-JJb9.js} +1 -1
  174. package/dist/client/assets/{secrets-Dr0vdQ4d.js → secrets-DNPz1kGQ.js} +1 -1
  175. package/dist/client/assets/{sections-editor-BsuMEuNO.js → sections-editor-CiB_HyuR.js} +1 -1
  176. package/dist/client/assets/{select-BJ0Gkkka.js → select-8-nbJ0jG.js} +1 -1
  177. package/dist/client/assets/{select-model-D8CTPoiO.js → select-model-BN5vxFKu.js} +1 -1
  178. package/dist/client/assets/{self-tool-result-KOheC4HD.js → self-tool-result-Cei_02H_.js} +1 -1
  179. package/dist/client/assets/{seo-editor-CSFxllkC.js → seo-editor-BS-_liwN.js} +1 -1
  180. package/dist/client/assets/settings-layout-BWoejjac.js +1 -0
  181. package/dist/client/assets/{settings-sidebar-C_Tz8rbX.js → settings-sidebar-C0QwDGxU.js} +1 -1
  182. package/dist/client/assets/{shell-controls-5f0FnXKd.js → shell-controls-DLLmOm3e.js} +1 -1
  183. package/dist/client/assets/{shell-layout-D-M6_Jkf.js → shell-layout-UiGWQtHh.js} +1 -1
  184. package/dist/client/assets/{skill-preview-5YIvamOb.js → skill-preview-OK-E70YW.js} +1 -1
  185. package/dist/client/assets/{skills-DMmhWXLy.js → skills-REtufkzf.js} +1 -1
  186. package/dist/client/assets/{sso-nVCDDH4k.js → sso-Bl2RYEhH.js} +1 -1
  187. package/dist/client/assets/{store-LfRhnjNM.js → store-BUZ3BxYI.js} +1 -1
  188. package/dist/client/assets/store-registry-DemSgqBf.js +2 -0
  189. package/dist/client/assets/{switch-C0tiHttS.js → switch-B_09jY5-.js} +1 -1
  190. package/dist/client/assets/{synced-repos-D5wTALWx.js → synced-repos-BNk3uyi6.js} +1 -1
  191. package/dist/client/assets/{table-D4dLAB1m.js → table-C9B_yGws.js} +1 -1
  192. package/dist/client/assets/{tabs-CDFENeRa.js → tabs-yz5p2eqD.js} +1 -1
  193. package/dist/client/assets/{task-board-B4aUIKJI.js → task-board-DX0mX_sm.js} +1 -1
  194. package/dist/client/assets/{task-route-BUYfM-Mq.js → task-route-DTA1f0w5.js} +1 -1
  195. package/dist/client/assets/{tasks-COtpdI-R.js → tasks-CCt0uT1A.js} +1 -1
  196. package/dist/client/assets/{textarea-DIJRp6Ds.js → textarea-DD_XQc8b.js} +1 -1
  197. package/dist/client/assets/{thread-intent-DK53ivxy.js → thread-intent-BKZp36M-.js} +1 -1
  198. package/dist/client/assets/{thread-route-m3qiCJQP.js → thread-route-g3bFZsDA.js} +1 -1
  199. package/dist/client/assets/{toggle-group-BSxkMDRS.js → toggle-group-OyXGZbFx.js} +1 -1
  200. package/dist/client/assets/{toolbar-DQ2YVpXF.js → toolbar-BGgBqcbD.js} +1 -1
  201. package/dist/client/assets/{toolbar-icon-button-DeXrhkGe.js → toolbar-icon-button-CyWbgFMR.js} +1 -1
  202. package/dist/client/assets/{track-J__dE1p5.js → track-BmC8g6Tw.js} +1 -1
  203. package/dist/client/assets/{types-C9oYptqr.js → types-C6WokDyE.js} +1 -1
  204. package/dist/client/assets/{use-ai-providers-DMdw1ZKm.js → use-ai-providers-CsfPjUM-.js} +1 -1
  205. package/dist/client/assets/{use-automations-BrJQYtfT.js → use-automations-V8lTd1ft.js} +1 -1
  206. package/dist/client/assets/{use-autosave-DXppOUIw.js → use-autosave-Bd881RwB.js} +1 -1
  207. package/dist/client/assets/{use-connection-DueV7Dd9.js → use-connection-BM1ySErK.js} +1 -1
  208. package/dist/client/assets/{use-copy-DsM8BkMO.js → use-copy-pSJtH4fM.js} +1 -1
  209. package/dist/client/assets/{use-create-virtual-mcp-CXxjUZ5c.js → use-create-virtual-mcp-D0NidtMX.js} +1 -1
  210. package/dist/client/assets/{use-date-fns-locale-I1vziWnN.js → use-date-fns-locale-DgRg5mjL.js} +1 -1
  211. package/dist/client/assets/{use-debounced-autosave-Bep9W3RF.js → use-debounced-autosave-EYzF8Olk.js} +1 -1
  212. package/dist/client/assets/{use-debounced-value-CjFrELYP.js → use-debounced-value-KdzTma4G.js} +1 -1
  213. package/dist/client/assets/{use-decopilot-events-BxzD46W5.js → use-decopilot-events-BXOAX3zK.js} +1 -1
  214. package/dist/client/assets/{use-delete-connection-BBL_RJLP.js → use-delete-connection-BbNOjW2l.js} +1 -1
  215. package/dist/client/assets/{use-deployment-admin--_f948uh.js → use-deployment-admin-BASh3KDk.js} +1 -1
  216. package/dist/client/assets/{use-destination-route-WysfeR7S.js → use-destination-route-DZ6zuyom.js} +1 -1
  217. package/dist/client/assets/{use-file-configs-BByTBhTa.js → use-file-configs-BRCZqxCS.js} +1 -1
  218. package/dist/client/assets/{use-infinite-scroll-p1RdGJsc.js → use-infinite-scroll-CqmvxgxE.js} +1 -1
  219. package/dist/client/assets/{use-join-requests-D9qT6ziM.js → use-join-requests-D-siqVP0.js} +1 -1
  220. package/dist/client/assets/{use-mcp-auth-status-CTnEpyYI.js → use-mcp-auth-status-CkfQLxM4.js} +1 -1
  221. package/dist/client/assets/{use-mcp-client-DtsRGdvB.js → use-mcp-client-Cjw7oL0k.js} +1 -1
  222. package/dist/client/assets/{use-mcp-prompts-CD_IWJeZ.js → use-mcp-prompts-BN9qi7Ix.js} +1 -1
  223. package/dist/client/assets/{use-mcp-tools-BKHgcAxL.js → use-mcp-tools-DMULZKMD.js} +1 -1
  224. package/dist/client/assets/{use-members-NWhv5vIl.js → use-members-DhvUWOTO.js} +1 -1
  225. package/dist/client/assets/{use-navigate-to-agent-Bnmnhqje.js → use-navigate-to-agent-BtEQtkbQ.js} +1 -1
  226. package/dist/client/assets/{use-org-auth-client-CShcDth4.js → use-org-auth-client-5eX91FAP.js} +1 -1
  227. package/dist/client/assets/{use-org-notice-B64MrAd9.js → use-org-notice-CnZTeX-0.js} +1 -1
  228. package/dist/client/assets/{use-org-sso-DzsFzLff.js → use-org-sso-CF4YFYU9.js} +1 -1
  229. package/dist/client/assets/{use-organization-roles-7PFmB_rs.js → use-organization-roles-W-c6xLKD.js} +1 -1
  230. package/dist/client/assets/{use-organization-settings-nKtEvYQd.js → use-organization-settings-Di523P_b.js} +1 -1
  231. package/dist/client/assets/{use-panel-navigate-BNmxrdjd.js → use-panel-navigate-BA5KTGnu.js} +1 -1
  232. package/dist/client/assets/{use-registry-connections-Bb6pjxJh.js → use-registry-connections-bgQe6Edq.js} +1 -1
  233. package/dist/client/assets/{use-secrets-CTUki73i.js → use-secrets-DWw60yIy.js} +1 -1
  234. package/dist/client/assets/{use-section-preview-base-BHSNiN-i.js → use-section-preview-base-Dne8hXr_.js} +1 -1
  235. package/dist/client/assets/{use-status-sounds-k-y4u-Dp.js → use-status-sounds-CZvvi-5S.js} +1 -1
  236. package/dist/client/assets/{use-tags-BOUHc_F8.js → use-tags-B-RutSus.js} +1 -1
  237. package/dist/client/assets/{use-view-mode-4DXLgMpz.js → use-view-mode-86puchYT.js} +1 -1
  238. package/dist/client/assets/{use-virtual-mcp-C5Zt0ewM.js → use-virtual-mcp-DLU-VkLe.js} +1 -1
  239. package/dist/client/assets/useInfiniteQuery-7dgy4-tR.js +1 -0
  240. package/dist/client/assets/useSuspenseInfiniteQuery-DBrABtQo.js +1 -0
  241. package/dist/client/assets/{users-DRzgVGBP.js → users-BT256VvZ.js} +1 -1
  242. package/dist/client/assets/{variant-calendar-TLlf4rAo.js → variant-calendar-DWf9sjyV.js} +1 -1
  243. package/dist/client/assets/{view-mode-toggle-CZECgOYC.js → view-mode-toggle-CB1VuRxL.js} +1 -1
  244. package/dist/client/index.html +1 -1
  245. package/dist/server/cli.js +616 -608
  246. package/dist/server/migrate.js +154 -154
  247. package/dist/server/server.js +527 -519
  248. package/package.json +1 -1
  249. package/dist/client/assets/api-keys-DM-VC8Ks.js +0 -1
  250. package/dist/client/assets/app-editor-ueQwisxj.js +0 -1
  251. package/dist/client/assets/record-editor-CQ7QMoAf.js +0 -1
  252. package/dist/client/assets/redirect-editor-B68PccpU.js +0 -1
  253. package/dist/client/assets/registry-CWd0I8mg.js +0 -2
  254. package/dist/client/assets/repositories-DoZh9xWv.js +0 -1
  255. package/dist/client/assets/settings-layout-DyOsDVbj.js +0 -1
  256. package/dist/client/assets/store-registry-D-puuJzT.js +0 -2
  257. package/dist/client/assets/useInfiniteQuery-CU7gRlof.js +0 -1
  258. package/dist/client/assets/useSuspenseInfiniteQuery-rXQ07VfR.js +0 -1
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null,x)}var m=(_,x)=>{for(var u in x)kN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:tN.bind(x,u)})};import{Migrator as wN,sql as a}from"kysely";var t_={};m(t_,{up:()=>iN,down:()=>vN});async function iN(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function vN(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var i_={};m(i_,{up:()=>qN,down:()=>cN});import{sql as gN}from"kysely";async function qN(_){await gN`
2
+ var pN=Object.defineProperty;var tN=(_)=>_;function iN(_,x){this[_]=tN.bind(null,x)}var m=(_,x)=>{for(var u in x)pN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:iN.bind(x,u)})};import{Migrator as VN,sql as a}from"kysely";var t_={};m(t_,{up:()=>vN,down:()=>qN});async function vN(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function qN(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var i_={};m(i_,{up:()=>gN,down:()=>cN});async function gN(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function cN(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var v_={};m(v_,{up:()=>oN,down:()=>aN});import{sql as hN}from"kysely";async function oN(_){await hN`
3
3
  CREATE TABLE github_connect_flows (
4
4
  id text PRIMARY KEY,
5
5
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -9,7 +9,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
9
9
  );
10
10
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
11
11
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
12
- `.execute(_)}async function cN(_){await _.schema.dropTable("github_connect_flows").execute()}var v_={};m(v_,{up:()=>hN,down:()=>oN});async function hN(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function oN(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var g_={};m(g_,{up:()=>aN,down:()=>rN});import{sql as z_}from"kysely";async function aN(_){await z_`
12
+ `.execute(_)}async function aN(_){await _.schema.dropTable("github_connect_flows").execute()}var q_={};m(q_,{up:()=>rN,down:()=>eN});async function rN(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function eN(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var g_={};m(g_,{up:()=>lN,down:()=>sN});import{sql as z_}from"kysely";async function lN(_){await z_`
13
13
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
14
14
  DECLARE
15
15
  metadata_json jsonb;
@@ -65,19 +65,19 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
65
65
  FROM repositories r WHERE s.repository_id IS NULL
66
66
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
67
67
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
68
- `.execute(_)}async function rN(_){await z_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await z_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var q_={};m(q_,{up:()=>eN,down:()=>lN});import{sql as H}from"kysely";async function eN(_){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(H`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(H`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(H`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(H`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(H`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(H`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(H`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(H`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(H`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(H`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 lN(_){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 c_={};m(c_,{up:()=>sN,down:()=>dN});import{sql as jT}from"kysely";async function sN(_){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(jT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(jT`CURRENT_TIMESTAMP`)).execute()}async function dN(_){await _.schema.dropTable("organization_settings").execute()}var h_={};m(h_,{up:()=>bN,down:()=>_K});async function bN(_){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 _K(_){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 o_={};m(o_,{up:()=>xK,down:()=>uK});async function xK(_){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 uK(_){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 a_={};m(a_,{up:()=>mK,down:()=>CK});async function mK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function CK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var r_={};m(r_,{up:()=>NK,down:()=>KK});import{sql as TK}from"kysely";async function NK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",TK`text`).execute()}async function KK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var e_={};m(e_,{up:()=>EK,down:()=>zK});async function EK(_){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 zK(_){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 l_={};m(l_,{up:()=>PK,down:()=>$K});import{sql as r}from"kysely";async function PK(_){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(r`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(r`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(r`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(r`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(r`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 $K(_){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 s_={};m(s_,{up:()=>JK,down:()=>XK});import{sql as UK}from"kysely";async function JK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function XK(_){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(UK`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 d_={};m(d_,{up:()=>jK,down:()=>QK});import{sql as P_}from"kysely";async function jK(_){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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`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 P_`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 QK(_){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 b_={};m(b_,{up:()=>WK,down:()=>ZK});async function WK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function ZK(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var _x={};m(_x,{up:()=>LK,down:()=>DK});import{sql as $_}from"kysely";async function LK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await $_`
68
+ `.execute(_)}async function sN(_){await z_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await z_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var c_={};m(c_,{up:()=>dN,down:()=>bN});import{sql as M}from"kysely";async function dN(_){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 bN(_){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 h_={};m(h_,{up:()=>_K,down:()=>xK});import{sql as QT}from"kysely";async function _K(_){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(QT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(QT`CURRENT_TIMESTAMP`)).execute()}async function xK(_){await _.schema.dropTable("organization_settings").execute()}var o_={};m(o_,{up:()=>uK,down:()=>mK});async function uK(_){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 mK(_){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 a_={};m(a_,{up:()=>CK,down:()=>TK});async function CK(_){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 TK(_){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 r_={};m(r_,{up:()=>NK,down:()=>KK});async function NK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function KK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var e_={};m(e_,{up:()=>zK,down:()=>PK});import{sql as EK}from"kysely";async function zK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",EK`text`).execute()}async function PK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var l_={};m(l_,{up:()=>$K,down:()=>UK});async function $K(_){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 UK(_){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 s_={};m(s_,{up:()=>JK,down:()=>XK});import{sql as r}from"kysely";async function JK(_){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(r`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(r`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(r`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(r`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(r`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 XK(_){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 d_={};m(d_,{up:()=>QK,down:()=>WK});import{sql as jK}from"kysely";async function QK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function WK(_){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(jK`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 b_={};m(b_,{up:()=>ZK,down:()=>LK});import{sql as P_}from"kysely";async function ZK(_){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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`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 P_`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 LK(_){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:()=>DK,down:()=>FK});async function DK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function FK(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var xx={};m(xx,{up:()=>RK,down:()=>YK});import{sql as $_}from"kysely";async function RK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await $_`
69
69
  UPDATE gateways
70
70
  SET tool_selection_mode = CASE
71
71
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
72
72
  ELSE 'inclusion'
73
73
  END
74
- `.execute(_),await $_`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 DK(_){await $_`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 $_`
74
+ `.execute(_),await $_`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 YK(_){await $_`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 $_`
75
75
  UPDATE gateways
76
76
  SET tool_selection_strategy = CASE
77
77
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
78
78
  ELSE NULL
79
79
  END
80
- `.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:()=>FK,down:()=>nK});async function FK(_){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 nK(_){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 ux={};m(ux,{up:()=>RK,down:()=>YK});async function RK(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function YK(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var mx={};m(mx,{up:()=>HK,down:()=>MK});async function HK(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function MK(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Cx={};m(Cx,{up:()=>BK,down:()=>GK});async function BK(_){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 GK(_){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 Tx={};m(Tx,{up:()=>fK,down:()=>OK});import{sql as yK}from"kysely";async function fK(_){await yK`
80
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var ux={};m(ux,{up:()=>HK,down:()=>MK});async function HK(_){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 MK(_){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 mx={};m(mx,{up:()=>nK,down:()=>BK});async function nK(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function BK(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Cx={};m(Cx,{up:()=>GK,down:()=>yK});async function GK(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function yK(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Tx={};m(Tx,{up:()=>fK,down:()=>OK});async function fK(_){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 OK(_){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 Nx={};m(Nx,{up:()=>SK,down:()=>IK});import{sql as AK}from"kysely";async function SK(_){await AK`
81
81
  DELETE FROM downstream_tokens
82
82
  WHERE id NOT IN (
83
83
  SELECT id FROM (
@@ -87,7 +87,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
87
87
  ) ranked
88
88
  WHERE rn = 1
89
89
  )
90
- `.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 OK(_){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 Nx={};m(Nx,{up:()=>AK,down:()=>SK});async function AK(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function SK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Kx={};m(Kx,{up:()=>IK,down:()=>wK});import{sql as QT}from"kysely";async function IK(_){await QT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function wK(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await QT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Ex={};m(Ex,{up:()=>VK,down:()=>kK});async function VK(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function kK(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var zx={};m(zx,{up:()=>pK,down:()=>tK});import{sql as U_}from"kysely";async function pK(_){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(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`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(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`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 tK(_){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 Px={};m(Px,{up:()=>iK,down:()=>vK});async function iK(_){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 vK(_){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 $x={};m($x,{up:()=>gK,down:()=>qK});async function gK(_){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 qK(_){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 Ux={};m(Ux,{up:()=>cK,down:()=>hK});import{sql as W}from"kysely";async function cK(_){await W`
90
+ `.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 IK(_){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 Kx={};m(Kx,{up:()=>wK,down:()=>VK});async function wK(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function VK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Ex={};m(Ex,{up:()=>kK,down:()=>pK});import{sql as WT}from"kysely";async function kK(_){await WT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function pK(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await WT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var zx={};m(zx,{up:()=>tK,down:()=>iK});async function tK(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function iK(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Px={};m(Px,{up:()=>vK,down:()=>qK});import{sql as U_}from"kysely";async function vK(_){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(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`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(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`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 qK(_){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 $x={};m($x,{up:()=>gK,down:()=>cK});async function gK(_){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 cK(_){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 Ux={};m(Ux,{up:()=>hK,down:()=>oK});async function hK(_){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 oK(_){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 Jx={};m(Jx,{up:()=>aK,down:()=>rK});import{sql as W}from"kysely";async function aK(_){await W`
91
91
  INSERT INTO connections (
92
92
  id,
93
93
  organization_id,
@@ -134,7 +134,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
134
134
  created_at,
135
135
  updated_at
136
136
  FROM virtual_mcps
137
- `.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 W`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await W`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 W`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await W`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 hK(_){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(W`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(W`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await W`
137
+ `.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 W`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await W`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 W`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await W`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 rK(_){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(W`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(W`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await W`
138
138
  INSERT INTO virtual_mcps (
139
139
  id, organization_id, title, description, icon, status,
140
140
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -144,7 +144,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
144
144
  created_at, updated_at, created_by, NULL, 'inclusion'
145
145
  FROM connections
146
146
  WHERE connection_type = 'VIRTUAL'
147
- `.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 W`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 Jx={};m(Jx,{up:()=>oK,down:()=>aK});async function oK(_){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 aK(_){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 Xx={};m(Xx,{up:()=>rK,down:()=>eK});import{sql as M}from"kysely";async function rK(_){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(M`CURRENT_TIMESTAMP`)).execute(),await M`
147
+ `.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 W`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 Xx={};m(Xx,{up:()=>eK,down:()=>lK});async function eK(_){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 lK(_){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 jx={};m(jx,{up:()=>sK,down:()=>dK});import{sql as n}from"kysely";async function sK(_){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(n`CURRENT_TIMESTAMP`)).execute(),await n`
148
148
  INSERT INTO connection_aggregations_new (
149
149
  id, parent_connection_id, child_connection_id,
150
150
  selected_tools, selected_resources, selected_prompts, created_at
@@ -153,7 +153,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
153
153
  id, parent_connection_id, child_connection_id,
154
154
  selected_tools, selected_resources, selected_prompts, created_at
155
155
  FROM connection_aggregations
156
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await M`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await M`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 eK(_){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(M`CURRENT_TIMESTAMP`)).execute(),await M`
156
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await n`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await n`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await n`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 dK(_){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(n`CURRENT_TIMESTAMP`)).execute(),await n`
157
157
  INSERT INTO connection_aggregations_new (
158
158
  id, parent_connection_id, child_connection_id,
159
159
  selected_tools, selected_resources, selected_prompts, created_at
@@ -162,7 +162,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
162
162
  id, parent_connection_id, child_connection_id,
163
163
  selected_tools, selected_resources, selected_prompts, created_at
164
164
  FROM connection_aggregations
165
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await M`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await M`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 Qx={};m(Qx,{up:()=>lK,down:()=>sK});import{sql as jx}from"kysely";async function lK(_){await jx`
165
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await n`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await n`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await n`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 Wx={};m(Wx,{up:()=>bK,down:()=>_E});import{sql as Qx}from"kysely";async function bK(_){await Qx`
166
166
  UPDATE connections
167
167
  SET connection_url = connection_url || '/management',
168
168
  tools = NULL,
@@ -170,42 +170,42 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
170
170
  WHERE connection_url LIKE '%/mcp'
171
171
  AND connection_url NOT LIKE '%/mcp/management'
172
172
  AND app_name = '@deco/management-mcp'
173
- `.execute(_),await jx`
173
+ `.execute(_),await Qx`
174
174
  UPDATE connections
175
175
  SET tools = NULL,
176
176
  updated_at = CURRENT_TIMESTAMP
177
177
  WHERE app_name = '@deco/management-mcp'
178
178
  AND tools IS NOT NULL
179
- `.execute(_)}async function sK(_){await jx`
179
+ `.execute(_)}async function _E(_){await Qx`
180
180
  UPDATE connections
181
181
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
182
182
  updated_at = CURRENT_TIMESTAMP
183
183
  WHERE connection_url LIKE '%/mcp/management'
184
184
  AND app_name = '@deco/management-mcp'
185
- `.execute(_)}var Zx={};m(Zx,{up:()=>dK,down:()=>bK});import{sql as Wx}from"kysely";async function dK(_){await Wx`
185
+ `.execute(_)}var Lx={};m(Lx,{up:()=>xE,down:()=>uE});import{sql as Zx}from"kysely";async function xE(_){await Zx`
186
186
  UPDATE connections
187
187
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
188
188
  tools = NULL,
189
189
  updated_at = CURRENT_TIMESTAMP
190
190
  WHERE connection_url LIKE '%/mcp/management'
191
191
  AND app_name = '@deco/management-mcp'
192
- `.execute(_),await Wx`
192
+ `.execute(_),await Zx`
193
193
  UPDATE connections
194
194
  SET tools = NULL,
195
195
  updated_at = CURRENT_TIMESTAMP
196
196
  WHERE connection_url LIKE '%/mcp/self'
197
197
  AND app_name = '@deco/management-mcp'
198
198
  AND tools IS NOT NULL
199
- `.execute(_)}async function bK(_){await Wx`
199
+ `.execute(_)}async function uE(_){await Zx`
200
200
  UPDATE connections
201
201
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
202
202
  updated_at = CURRENT_TIMESTAMP
203
203
  WHERE connection_url LIKE '%/mcp/self'
204
204
  AND app_name = '@deco/management-mcp'
205
- `.execute(_)}var Lx={};m(Lx,{up:()=>_E,down:()=>xE});async function _E(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function xE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var Dx={};m(Dx,{up:()=>uE,down:()=>mE});import{sql as WT}from"kysely";async function uE(_){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(WT`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(WT`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 mE(_){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 Fx={};m(Fx,{up:()=>CE,down:()=>TE});import{sql as e}from"kysely";async function CE(_){await e`
205
+ `.execute(_)}var Dx={};m(Dx,{up:()=>mE,down:()=>CE});async function mE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function CE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var Fx={};m(Fx,{up:()=>TE,down:()=>NE});import{sql as ZT}from"kysely";async function TE(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(ZT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(ZT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function NE(_){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 Rx={};m(Rx,{up:()=>KE,down:()=>EE});import{sql as e}from"kysely";async function KE(_){await e`
206
206
  ALTER TABLE connection_aggregations
207
207
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
208
- `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function TE(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await e`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await e`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(e`CURRENT_TIMESTAMP`)).execute(),await e`
208
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function EE(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await e`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await e`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(e`CURRENT_TIMESTAMP`)).execute(),await e`
209
209
  INSERT INTO connection_aggregations_new (
210
210
  id, parent_connection_id, child_connection_id,
211
211
  selected_tools, selected_resources, selected_prompts, created_at
@@ -214,42 +214,42 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
214
214
  id, parent_connection_id, child_connection_id,
215
215
  selected_tools, selected_resources, selected_prompts, created_at
216
216
  FROM connection_aggregations
217
- `.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 nx={};m(nx,{up:()=>PE,down:()=>$E});import{webcrypto as LT}from"crypto";var ZT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var NE=128,w,k;function KE(_){if(!w||w.length<_)w=Buffer.allocUnsafe(_*NE),LT.getRandomValues(w),k=0;else if(k+_>w.length)LT.getRandomValues(w),k=0;k+=_}function p(_=21){KE(_|=0);let x="";for(let u=k-_;u<k;u++)x+=ZT[w[u]&63];return x}var EE="org-admin",zE="Organization Admin";async function PE(_){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_${p()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:EE,name:zE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function $E(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var Rx={};m(Rx,{up:()=>UE,down:()=>JE});async function UE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function JE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var Yx={};m(Yx,{up:()=>XE,down:()=>jE});async function XE(_){}async function jE(_){}var Hx={};m(Hx,{up:()=>QE,down:()=>WE});async function QE(_){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 WE(_){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 Mx={};m(Mx,{up:()=>ZE,down:()=>LE});import{sql as DT}from"kysely";async function ZE(_){await DT`
217
+ `.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 Yx={};m(Yx,{up:()=>JE,down:()=>XE});import{webcrypto as DT}from"crypto";var LT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var zE=128,w,k;function PE(_){if(!w||w.length<_)w=Buffer.allocUnsafe(_*zE),DT.getRandomValues(w),k=0;else if(k+_>w.length)DT.getRandomValues(w),k=0;k+=_}function p(_=21){PE(_|=0);let x="";for(let u=k-_;u<k;u++)x+=LT[w[u]&63];return x}var $E="org-admin",UE="Organization Admin";async function JE(_){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_${p()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:$E,name:UE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function XE(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var Hx={};m(Hx,{up:()=>jE,down:()=>QE});async function jE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function QE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var Mx={};m(Mx,{up:()=>WE,down:()=>ZE});async function WE(_){}async function ZE(_){}var nx={};m(nx,{up:()=>LE,down:()=>DE});async function LE(_){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 DE(_){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 Bx={};m(Bx,{up:()=>FE,down:()=>RE});import{sql as FT}from"kysely";async function FE(_){await FT`
218
218
  UPDATE connections
219
219
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
220
220
  tools = NULL,
221
221
  updated_at = CURRENT_TIMESTAMP
222
222
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
223
223
  AND app_name = 'deco-registry'
224
- `.execute(_)}async function LE(_){await DT`
224
+ `.execute(_)}async function RE(_){await FT`
225
225
  UPDATE connections
226
226
  SET connection_url = 'https://api.decocms.com/mcp/registry',
227
227
  updated_at = CURRENT_TIMESTAMP
228
228
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
229
229
  AND app_name = 'deco-registry'
230
- `.execute(_)}var Bx={};m(Bx,{up:()=>FE,down:()=>nE});import{sql as DE}from"kysely";async function FE(_){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(DE`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 nE(_){await _.schema.dropTable("ai_provider_keys").execute()}var Gx={};m(Gx,{up:()=>YE,down:()=>HE});import{sql as RE}from"kysely";async function YE(_){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(RE`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function HE(_){await _.schema.dropTable("oauth_pkce_states").execute()}var yx={};m(yx,{up:()=>ME,down:()=>BE});import{sql as O}from"kysely";async function ME(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(O`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(O`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(O`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(O`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(O`CURRENT_TIMESTAMP`)).execute(),await O`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await O`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await O`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 BE(_){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 fx={};m(fx,{up:()=>GE,down:()=>yE});async function GE(_){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 yE(_){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 Ox={};m(Ox,{up:()=>fE,down:()=>OE});async function fE(_){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 OE(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Ax={};m(Ax,{up:()=>AE,down:()=>SE});import{sql as FT}from"kysely";async function AE(_){await FT`
230
+ `.execute(_)}var Gx={};m(Gx,{up:()=>HE,down:()=>ME});import{sql as YE}from"kysely";async function HE(_){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(YE`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 ME(_){await _.schema.dropTable("ai_provider_keys").execute()}var yx={};m(yx,{up:()=>BE,down:()=>GE});import{sql as nE}from"kysely";async function BE(_){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(nE`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function GE(_){await _.schema.dropTable("oauth_pkce_states").execute()}var fx={};m(fx,{up:()=>yE,down:()=>fE});import{sql as O}from"kysely";async function yE(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(O`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(O`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(O`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(O`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(O`CURRENT_TIMESTAMP`)).execute(),await O`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await O`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await O`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 fE(_){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 Ox={};m(Ox,{up:()=>OE,down:()=>AE});async function OE(_){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 AE(_){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 Ax={};m(Ax,{up:()=>SE,down:()=>IE});async function SE(_){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 IE(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Sx={};m(Sx,{up:()=>wE,down:()=>VE});import{sql as RT}from"kysely";async function wE(_){await RT`
231
231
  UPDATE connections
232
232
  SET title = 'CMS MCP',
233
233
  tools = NULL,
234
234
  updated_at = CURRENT_TIMESTAMP
235
235
  WHERE app_name = '@deco/management-mcp'
236
- `.execute(_)}async function SE(_){await FT`
236
+ `.execute(_)}async function VE(_){await RT`
237
237
  UPDATE connections
238
238
  SET title = 'Mesh MCP',
239
239
  updated_at = CURRENT_TIMESTAMP
240
240
  WHERE app_name = '@deco/management-mcp'
241
- `.execute(_)}var Sx={};m(Sx,{up:()=>IE,down:()=>wE});import{sql as nT}from"kysely";async function IE(_){await nT`
241
+ `.execute(_)}var Ix={};m(Ix,{up:()=>kE,down:()=>pE});import{sql as YT}from"kysely";async function kE(_){await YT`
242
242
  UPDATE connections
243
243
  SET title = 'Deco CMS',
244
244
  tools = NULL,
245
245
  updated_at = CURRENT_TIMESTAMP
246
246
  WHERE app_name = '@deco/management-mcp'
247
- `.execute(_)}async function wE(_){await nT`
247
+ `.execute(_)}async function pE(_){await YT`
248
248
  UPDATE connections
249
249
  SET title = 'CMS MCP',
250
250
  updated_at = CURRENT_TIMESTAMP
251
251
  WHERE app_name = '@deco/management-mcp'
252
- `.execute(_)}var Ix={};m(Ix,{up:()=>VE,down:()=>kE});async function VE(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function kE(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var wx={};m(wx,{up:()=>pE,down:()=>tE});async function pE(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function tE(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var kx={};m(kx,{up:()=>iE,down:()=>vE});import{sql as Vx}from"kysely";async function iE(_){await Vx`
252
+ `.execute(_)}var wx={};m(wx,{up:()=>tE,down:()=>iE});async function tE(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function iE(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var Vx={};m(Vx,{up:()=>vE,down:()=>qE});async function vE(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function qE(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var px={};m(px,{up:()=>gE,down:()=>cE});import{sql as kx}from"kysely";async function gE(_){await kx`
253
253
  UPDATE organization_settings
254
254
  SET enabled_plugins = (
255
255
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -258,7 +258,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
258
258
  )
259
259
  WHERE enabled_plugins IS NOT NULL
260
260
  AND enabled_plugins LIKE '%object-storage%'
261
- `.execute(_),await Vx`
261
+ `.execute(_),await kx`
262
262
  UPDATE projects
263
263
  SET enabled_plugins = (
264
264
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -267,28 +267,28 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
267
267
  )
268
268
  WHERE enabled_plugins IS NOT NULL
269
269
  AND enabled_plugins LIKE '%object-storage%'
270
- `.execute(_),await Vx`
270
+ `.execute(_),await kx`
271
271
  DELETE FROM project_plugin_configs
272
272
  WHERE plugin_id = 'object-storage'
273
- `.execute(_)}async function vE(_){}var px={};m(px,{up:()=>gE,down:()=>qE});import{sql as RT}from"kysely";async function gE(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await RT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function qE(_){await RT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var ix={};m(ix,{up:()=>cE,down:()=>hE});import{sql as tx}from"kysely";async function cE(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await tx`
273
+ `.execute(_)}async function cE(_){}var tx={};m(tx,{up:()=>hE,down:()=>oE});import{sql as HT}from"kysely";async function hE(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await HT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function oE(_){await HT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var vx={};m(vx,{up:()=>aE,down:()=>rE});import{sql as ix}from"kysely";async function aE(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await ix`
274
274
  ALTER TABLE connections
275
275
  ADD CONSTRAINT chk_connections_subtype
276
276
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
277
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await tx`
277
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await ix`
278
278
  UPDATE connections
279
279
  SET subtype = 'agent'
280
280
  WHERE connection_type = 'VIRTUAL'
281
- `.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_${p()}`;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_${p()}`,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_${p()}`,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 hE(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await tx`
281
+ `.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_${p()}`;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_${p()}`,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_${p()}`,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 rE(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await ix`
282
282
  ALTER TABLE connections
283
283
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
284
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var vx={};m(vx,{up:()=>aE,down:()=>rE});import{sql as oE}from"kysely";async function aE(_){await oE`
284
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var qx={};m(qx,{up:()=>lE,down:()=>sE});import{sql as eE}from"kysely";async function lE(_){await eE`
285
285
  DELETE FROM connections
286
286
  WHERE connection_type = 'VIRTUAL'
287
287
  AND subtype = 'project'
288
288
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
289
- `.execute(_)}async function rE(_){}var gx={};m(gx,{up:()=>lE,down:()=>sE});import{sql as eE}from"kysely";async function lE(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await eE`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function sE(_){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 cx={};m(cx,{up:()=>dE,down:()=>bE});import{sql as qx}from"kysely";async function dE(_){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(qx`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(qx`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(qx`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 bE(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var hx={};m(hx,{up:()=>_z,down:()=>xz});async function _z(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function xz(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var ox={};m(ox,{up:()=>uz,down:()=>mz});async function uz(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function mz(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var rx={};m(rx,{up:()=>Tz,down:()=>Nz});import{sql as YT}from"kysely";function ax(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Cz(_){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 ax(T)}catch{return ax(_.connection_url)}if(_.title)return ax(_.title);return _.id}async function Tz(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await YT`
289
+ `.execute(_)}async function sE(_){}var gx={};m(gx,{up:()=>bE,down:()=>_z});import{sql as dE}from"kysely";async function bE(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await dE`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function _z(_){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 hx={};m(hx,{up:()=>xz,down:()=>uz});import{sql as cx}from"kysely";async function xz(_){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(cx`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(cx`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(cx`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 uz(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var ox={};m(ox,{up:()=>mz,down:()=>Cz});async function mz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function Cz(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var ax={};m(ax,{up:()=>Tz,down:()=>Nz});async function Tz(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function Nz(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var ex={};m(ex,{up:()=>Ez,down:()=>zz});import{sql as MT}from"kysely";function rx(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Kz(_){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 rx(T)}catch{return rx(_.connection_url)}if(_.title)return rx(_.title);return _.id}async function Ez(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await MT`
290
290
  SELECT id, app_name, connection_url, title FROM connections
291
- `.execute(_);for(let u of x.rows){let T=Cz(u);await YT`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 Nz(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var ex={};m(ex,{up:()=>Kz,down:()=>Ez});import{sql as l}from"kysely";async function Kz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await l`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await l`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 Ez(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await l`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await l`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await l`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 lx={};m(lx,{up:()=>zz,down:()=>Pz});async function zz(_){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 Pz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var sx={};m(sx,{up:()=>$z,down:()=>Uz});import{sql as J_}from"kysely";async function $z(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await J_`
291
+ `.execute(_);for(let u of x.rows){let T=Kz(u);await MT`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 zz(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var lx={};m(lx,{up:()=>Pz,down:()=>$z});import{sql as l}from"kysely";async function Pz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await l`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await l`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 $z(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await l`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await l`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await l`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 sx={};m(sx,{up:()=>Uz,down:()=>Jz});async function Uz(_){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 Jz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var dx={};m(dx,{up:()=>Xz,down:()=>jz});import{sql as J_}from"kysely";async function Xz(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await J_`
292
292
  UPDATE threads
293
293
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
294
294
  WHERE agent_ids IS NOT NULL
@@ -298,14 +298,14 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
298
298
  `.execute(_),await J_`
299
299
  CREATE INDEX idx_threads_virtual_mcp_id
300
300
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
301
- `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function Uz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await J_`
301
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function jz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await J_`
302
302
  UPDATE threads
303
303
  SET agent_ids = CASE
304
304
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
305
305
  THEN jsonb_build_array(virtual_mcp_id)::text
306
306
  ELSE '[]'
307
307
  END
308
- `.execute(_),await J_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var dx={};m(dx,{up:()=>Jz,down:()=>Xz});async function Jz(_){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 Xz(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var bx={};m(bx,{up:()=>jz,down:()=>Qz});async function jz(_){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 Qz(_){await _.schema.dropTable("kv").execute()}var _u={};m(_u,{up:()=>Wz,down:()=>Zz});async function Wz(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function Zz(_){await _.schema.dropIndex("idx_member_user_org").execute()}var xu={};m(xu,{up:()=>Lz,down:()=>Dz});async function Lz(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function Dz(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var uu={};m(uu,{up:()=>Fz,down:()=>nz});import{sql as D}from"kysely";async function Fz(_){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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 D`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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 D`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(D`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(D`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(D`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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 nz(_){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 mu={};m(mu,{up:()=>Rz,down:()=>Yz});import{sql as t}from"kysely";async function Rz(_){await t`
308
+ `.execute(_),await J_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var bx={};m(bx,{up:()=>Qz,down:()=>Wz});async function Qz(_){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 Wz(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var _u={};m(_u,{up:()=>Zz,down:()=>Lz});async function Zz(_){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 Lz(_){await _.schema.dropTable("kv").execute()}var xu={};m(xu,{up:()=>Dz,down:()=>Fz});async function Dz(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function Fz(_){await _.schema.dropIndex("idx_member_user_org").execute()}var uu={};m(uu,{up:()=>Rz,down:()=>Yz});async function Rz(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function Yz(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var mu={};m(mu,{up:()=>Hz,down:()=>Mz});import{sql as D}from"kysely";async function Hz(_){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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 D`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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 D`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(D`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(D`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(D`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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 Mz(_){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 Cu={};m(Cu,{up:()=>nz,down:()=>Bz});import{sql as t}from"kysely";async function nz(_){await t`
309
309
  ALTER TABLE event_subscriptions
310
310
  ALTER COLUMN enabled DROP DEFAULT
311
311
  `.execute(_),await t`
@@ -315,7 +315,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
315
315
  `.execute(_),await t`
316
316
  ALTER TABLE event_subscriptions
317
317
  ALTER COLUMN enabled SET DEFAULT true
318
- `.execute(_)}async function Yz(_){await t`
318
+ `.execute(_)}async function Bz(_){await t`
319
319
  ALTER TABLE event_subscriptions
320
320
  ALTER COLUMN enabled DROP DEFAULT
321
321
  `.execute(_),await t`
@@ -325,7 +325,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
325
325
  `.execute(_),await t`
326
326
  ALTER TABLE event_subscriptions
327
327
  ALTER COLUMN enabled SET DEFAULT 1
328
- `.execute(_)}var Cu={};m(Cu,{up:()=>Hz,down:()=>Mz});import{sql as HT}from"kysely";async function Hz(_){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(HT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(HT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function Mz(_){await _.schema.dropTable("brand_context").execute()}var Tu={};m(Tu,{up:()=>Bz,down:()=>Gz});import{sql as MT}from"kysely";async function Bz(_){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(MT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(MT`now()`)).execute()}async function Gz(_){await _.schema.dropTable("organization_domains").execute()}var Nu={};m(Nu,{up:()=>Az,down:()=>Sz});import{sql as BT}from"kysely";var X_=new Set(["primary","secondary","accent","background","foreground"]),yz={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function fz(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>X_.has(C))){let C={};for(let[N,E]of Object.entries(u)){if(typeof E!=="string")continue;if(X_.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(X_.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(X_.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 Oz(_){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=yz[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 Az(_){let x=await BT`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=fz($);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=Oz($),C=!0}catch{}if(T||C||N){let $=N?JSON.stringify(z):u.metadata;await BT`
328
+ `.execute(_)}var Tu={};m(Tu,{up:()=>Gz,down:()=>yz});import{sql as nT}from"kysely";async function Gz(_){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(nT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(nT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function yz(_){await _.schema.dropTable("brand_context").execute()}var Nu={};m(Nu,{up:()=>fz,down:()=>Oz});import{sql as BT}from"kysely";async function fz(_){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(BT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(BT`now()`)).execute()}async function Oz(_){await _.schema.dropTable("organization_domains").execute()}var Ku={};m(Ku,{up:()=>wz,down:()=>Vz});import{sql as GT}from"kysely";var X_=new Set(["primary","secondary","accent","background","foreground"]),Az={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function Sz(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>X_.has(C))){let C={};for(let[N,E]of Object.entries(u)){if(typeof E!=="string")continue;if(X_.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(X_.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(X_.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 Iz(_){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=Az[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 wz(_){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=Sz($);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=Iz($),C=!0}catch{}if(T||C||N){let $=N?JSON.stringify(z):u.metadata;await GT`
329
329
  UPDATE brand_context
330
330
  SET
331
331
  colors = ${E},
@@ -333,20 +333,20 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
333
333
  metadata = ${$},
334
334
  updated_at = NOW()
335
335
  WHERE id = ${u.id}
336
- `.execute(_)}}}async function Sz(_){}var Ku={};m(Ku,{up:()=>wz,down:()=>Vz});import{sql as Iz}from"kysely";async function wz(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(Iz`'{}'::jsonb`)).execute()}async function Vz(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var Eu={};m(Eu,{up:()=>kz,down:()=>pz});async function kz(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function pz(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var zu={};m(zu,{up:()=>tz,down:()=>iz});async function tz(_){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 iz(_){await _.schema.dropTable("sandbox_runner_state").execute()}var Pu={};m(Pu,{up:()=>vz,down:()=>gz});async function vz(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function gz(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var $u={};m($u,{up:()=>qz,down:()=>cz});async function qz(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function cz(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Uu={};m(Uu,{up:()=>hz,down:()=>oz});async function hz(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function oz(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Ju={};m(Ju,{up:()=>rz,down:()=>ez});import{sql as GT}from"kysely";var az=["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 rz(_){let x=await GT`
336
+ `.execute(_)}}}async function Vz(_){}var Eu={};m(Eu,{up:()=>pz,down:()=>tz});import{sql as kz}from"kysely";async function pz(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(kz`'{}'::jsonb`)).execute()}async function tz(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var zu={};m(zu,{up:()=>iz,down:()=>vz});async function iz(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function vz(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Pu={};m(Pu,{up:()=>qz,down:()=>gz});async function qz(_){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 gz(_){await _.schema.dropTable("sandbox_runner_state").execute()}var $u={};m($u,{up:()=>cz,down:()=>hz});async function cz(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function hz(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Uu={};m(Uu,{up:()=>oz,down:()=>az});async function oz(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function az(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Ju={};m(Ju,{up:()=>rz,down:()=>ez});async function rz(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function ez(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Xu={};m(Xu,{up:()=>sz,down:()=>dz});import{sql as yT}from"kysely";var lz=["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 sz(_){let x=await yT`
337
337
  SELECT id, permission FROM "organizationRole"
338
- `.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,...az]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await GT`
338
+ `.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,...lz]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await yT`
339
339
  UPDATE "organizationRole"
340
340
  SET permission = ${K}
341
341
  WHERE id = ${u.id}
342
- `.execute(_)}}async function ez(_){}var Xu={};m(Xu,{up:()=>lz,down:()=>sz});async function lz(_){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 sz(_){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 ju={};m(ju,{up:()=>dz,down:()=>bz});async function dz(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function bz(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var Qu={};m(Qu,{up:()=>_0,down:()=>x0});import{sql as s}from"kysely";async function _0(_){await s`
342
+ `.execute(_)}}async function dz(_){}var ju={};m(ju,{up:()=>bz,down:()=>_0});async function bz(_){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 _0(_){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 Qu={};m(Qu,{up:()=>x0,down:()=>u0});async function x0(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function u0(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var Wu={};m(Wu,{up:()=>m0,down:()=>C0});import{sql as s}from"kysely";async function m0(_){await s`
343
343
  UPDATE automations
344
344
  SET virtual_mcp_id = (agent::json ->> 'id')
345
345
  WHERE virtual_mcp_id IS NULL
346
346
  `.execute(_),await s`
347
347
  ALTER TABLE automations
348
348
  ALTER COLUMN virtual_mcp_id SET NOT NULL
349
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function x0(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await s`
349
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function C0(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await s`
350
350
  UPDATE automations
351
351
  SET agent = json_build_object('id', virtual_mcp_id)::text
352
352
  `.execute(_),await s`
@@ -355,7 +355,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
355
355
  `.execute(_),await s`
356
356
  ALTER TABLE automations
357
357
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
358
- `.execute(_)}var Zu={};m(Zu,{up:()=>T0,reshapeSimpleMode:()=>yT,inferAutomationTier:()=>fT,down:()=>N0,__testing:()=>C0});var u0={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},m0=["fast","smart","thinking","image","web_research"];function Wu(_){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 m0.some((T)=>(T in u))}function yT(_){if(Wu(_))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 u0;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 fT(_){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 C0={isAlreadyReshapedSimpleMode:Wu,isAlreadyReshapedAutomationModels:OT};async function T0(_){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(Wu(C))continue;let N=yT(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=fT(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 N0(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Lu={};m(Lu,{up:()=>K0,down:()=>E0});import{sql as y}from"kysely";async function K0(_){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 y`
358
+ `.execute(_)}var Lu={};m(Lu,{up:()=>E0,reshapeSimpleMode:()=>fT,inferAutomationTier:()=>OT,down:()=>z0,__testing:()=>K0});var T0={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},N0=["fast","smart","thinking","image","web_research"];function Zu(_){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 N0.some((T)=>(T in u))}function fT(_){if(Zu(_))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 T0;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 K0={isAlreadyReshapedSimpleMode:Zu,isAlreadyReshapedAutomationModels:AT};async function E0(_){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(Zu(C))continue;let N=fT(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 z0(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Du={};m(Du,{up:()=>P0,down:()=>$0});import{sql as y}from"kysely";async function P0(_){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 y`
359
359
  ALTER TABLE automations
360
360
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
361
361
  `.execute(_),await y`
@@ -377,19 +377,19 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
377
377
  AND tool_input IS NOT NULL
378
378
  )
379
379
  )
380
- `.execute(_)}async function E0(_){await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await y`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await y`
380
+ `.execute(_)}async function $0(_){await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await y`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await y`
381
381
  ALTER TABLE automations
382
382
  ALTER COLUMN virtual_mcp_id SET NOT NULL
383
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var Du={};m(Du,{up:()=>P0,down:()=>$0});import{sql as AT}from"kysely";var z0=new Set(["host","docker","agent-sandbox"]);async function P0(_){let x=await AT`
383
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var Fu={};m(Fu,{up:()=>J0,down:()=>X0});import{sql as ST}from"kysely";var U0=new Set(["host","docker","agent-sandbox"]);async function J0(_){let x=await ST`
384
384
  SELECT id, metadata FROM "connections"
385
385
  WHERE connection_type = 'VIRTUAL'
386
386
  AND metadata IS NOT NULL
387
387
  AND metadata LIKE '%vmMap%'
388
- `.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 Y=X.runnerKind;if(Y!==void 0&&!z0.has(Y)){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`
388
+ `.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&&!U0.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 ST`
389
389
  UPDATE "connections"
390
390
  SET metadata = ${K}
391
391
  WHERE id = ${u.id}
392
- `.execute(_)}}async function $0(_){}var Fu={};m(Fu,{up:()=>U0,down:()=>J0});import{sql as d}from"kysely";async function U0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(d`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(d`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(d`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 d`
392
+ `.execute(_)}}async function X0(_){}var Ru={};m(Ru,{up:()=>j0,down:()=>Q0});import{sql as d}from"kysely";async function j0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(d`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(d`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(d`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 d`
393
393
  CREATE INDEX async_research_jobs_active_idx
394
394
  ON async_research_jobs (status, last_polled_at)
395
395
  WHERE status IN ('pending', 'polling')
@@ -397,7 +397,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
397
397
  ALTER TABLE async_research_jobs
398
398
  ADD CONSTRAINT chk_async_research_jobs_status
399
399
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
400
- `.execute(_)}async function J0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var nu={};m(nu,{up:()=>X0,down:()=>j0});async function X0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function j0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var Ru={};m(Ru,{up:()=>Q0,down:()=>W0});import{sql as i}from"kysely";async function Q0(_){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(i`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(i`CURRENT_TIMESTAMP`)).execute(),await i`
400
+ `.execute(_)}async function Q0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var Yu={};m(Yu,{up:()=>W0,down:()=>Z0});async function W0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function Z0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var Hu={};m(Hu,{up:()=>L0,down:()=>D0});import{sql as i}from"kysely";async function L0(_){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(i`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(i`CURRENT_TIMESTAMP`)).execute(),await i`
401
401
  ALTER TABLE secrets
402
402
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
403
403
  `.execute(_),await i`
@@ -414,7 +414,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
414
414
  CREATE UNIQUE INDEX idx_secrets_org_name
415
415
  ON secrets (organization_id, lower(name))
416
416
  WHERE scope = 'organization'
417
- `.execute(_)}async function W0(_){await _.schema.dropTable("secrets").execute()}var Yu={};m(Yu,{up:()=>Z0,down:()=>L0});async function Z0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function L0(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var Hu={};m(Hu,{up:()=>F0,down:()=>n0});import{sql as D0}from"kysely";async function F0(_){await D0`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function n0(_){}var Mu={};m(Mu,{up:()=>R0,down:()=>Y0});import{sql as j_}from"kysely";async function R0(_){await j_`
417
+ `.execute(_)}async function D0(_){await _.schema.dropTable("secrets").execute()}var Mu={};m(Mu,{up:()=>F0,down:()=>R0});async function F0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function R0(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var nu={};m(nu,{up:()=>H0,down:()=>M0});import{sql as Y0}from"kysely";async function H0(_){await Y0`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function M0(_){}var Bu={};m(Bu,{up:()=>n0,down:()=>B0});import{sql as j_}from"kysely";async function n0(_){await j_`
418
418
  ALTER TABLE sandbox_runner_state
419
419
  RENAME COLUMN runner_kind TO sandbox_provider_kind
420
420
  `.execute(_),await j_`
@@ -452,7 +452,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
452
452
  EXCEPTION WHEN undefined_table THEN
453
453
  NULL;
454
454
  END; $$
455
- `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function Y0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await j_`
455
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function B0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await j_`
456
456
  ALTER TABLE sandbox_runner_state
457
457
  RENAME COLUMN sandbox_provider_kind TO runner_kind
458
458
  `.execute(_),await j_`
@@ -490,7 +490,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
490
490
  EXCEPTION WHEN undefined_table THEN
491
491
  NULL;
492
492
  END; $$
493
- `.execute(_)}var Bu={};m(Bu,{up:()=>H0,down:()=>M0});import{sql as ST}from"kysely";async function H0(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await ST`
493
+ `.execute(_)}var Gu={};m(Gu,{up:()=>G0,down:()=>y0});import{sql as IT}from"kysely";async function G0(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await IT`
494
494
  DO $$ BEGIN
495
495
  UPDATE virtualmcps v
496
496
  SET metadata = jsonb_set(
@@ -529,7 +529,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
529
529
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
530
530
  NULL;
531
531
  END; $$
532
- `.execute(_)}async function M0(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await ST`
532
+ `.execute(_)}async function y0(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await IT`
533
533
  DO $$ BEGIN
534
534
  UPDATE virtualmcps v
535
535
  SET metadata = jsonb_set(
@@ -562,7 +562,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
562
562
  EXCEPTION WHEN undefined_table THEN
563
563
  NULL;
564
564
  END; $$
565
- `.execute(_)}var Gu={};m(Gu,{up:()=>B0,down:()=>G0});import{sql as IT}from"kysely";async function B0(_){await IT`
565
+ `.execute(_)}var yu={};m(yu,{up:()=>f0,down:()=>O0});import{sql as wT}from"kysely";async function f0(_){await wT`
566
566
  UPDATE connections c
567
567
  SET metadata = (
568
568
  jsonb_set(
@@ -606,7 +606,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
606
606
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
607
607
  WHERE entry ? 'vmId'
608
608
  );
609
- `.execute(_),await IT`
609
+ `.execute(_),await wT`
610
610
  UPDATE connections c
611
611
  SET metadata = (
612
612
  jsonb_set(
@@ -660,10 +660,10 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
660
660
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
661
661
  WHERE inner_entry ? 'runnerKind'
662
662
  );
663
- `.execute(_)}async function G0(_){}var yu={};m(yu,{up:()=>f0,down:()=>O0});import{sql as y0}from"kysely";async function f0(_){await y0`
663
+ `.execute(_)}async function O0(_){}var fu={};m(fu,{up:()=>S0,down:()=>I0});import{sql as A0}from"kysely";async function S0(_){await A0`
664
664
  DELETE FROM ai_provider_keys
665
665
  WHERE provider_id IN ('claude-code', 'codex')
666
- `.execute(_)}async function O0(_){}var fu={};m(fu,{up:()=>A0,down:()=>S0});import{sql as Q_}from"kysely";async function A0(_){await Q_`
666
+ `.execute(_)}async function I0(_){}var Ou={};m(Ou,{up:()=>w0,down:()=>V0});import{sql as Q_}from"kysely";async function w0(_){await Q_`
667
667
  UPDATE sandbox_runner_state
668
668
  SET sandbox_provider_kind = 'desktop'
669
669
  WHERE sandbox_provider_kind = 'remote-user'
@@ -761,13 +761,13 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
761
761
  UPDATE threads
762
762
  SET sandbox_provider_kind = 'desktop'
763
763
  WHERE sandbox_provider_kind = 'remote-user'
764
- `.execute(_)}async function S0(_){}var Ou={};m(Ou,{up:()=>I0,down:()=>w0});import{sql as b}from"kysely";async function I0(_){await b`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await b`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 w0(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await b`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await b`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await b`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var Au={};m(Au,{up:()=>V0,down:()=>k0});import{sql as wT}from"kysely";async function V0(_){await wT`
764
+ `.execute(_)}async function V0(_){}var Au={};m(Au,{up:()=>k0,down:()=>p0});import{sql as b}from"kysely";async function k0(_){await b`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await b`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 p0(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await b`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await b`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await b`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var Su={};m(Su,{up:()=>t0,down:()=>i0});import{sql as VT}from"kysely";async function t0(_){await VT`
765
765
  ALTER TABLE organization_domains
766
766
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
767
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function k0(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await wT`
767
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function i0(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await VT`
768
768
  ALTER TABLE organization_domains
769
769
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
770
- `.execute(_)}var Su={};m(Su,{up:()=>p0,down:()=>t0});import{sql as W_}from"kysely";async function p0(_){await W_`
770
+ `.execute(_)}var Iu={};m(Iu,{up:()=>v0,down:()=>q0});import{sql as W_}from"kysely";async function v0(_){await W_`
771
771
  UPDATE sandbox_runner_state
772
772
  SET sandbox_provider_kind = CASE sandbox_provider_kind
773
773
  WHEN 'docker' THEN 'local-docker'
@@ -856,19 +856,19 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
856
856
  WHERE c.connection_type = 'VIRTUAL'
857
857
  AND c.metadata IS NOT NULL
858
858
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
859
- `.execute(_)}async function t0(_){}var Iu={};m(Iu,{up:()=>v0,down:()=>g0});import{sql as VT}from"kysely";var i0=["GLOBAL_SEARCH"];async function v0(_){let x=await VT`
859
+ `.execute(_)}async function q0(_){}var wu={};m(wu,{up:()=>c0,down:()=>h0});import{sql as kT}from"kysely";var g0=["GLOBAL_SEARCH"];async function c0(_){let x=await kT`
860
860
  SELECT id, permission FROM "organizationRole"
861
- `.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,...i0]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await VT`
861
+ `.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,...g0]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await kT`
862
862
  UPDATE "organizationRole"
863
863
  SET permission = ${K}
864
864
  WHERE id = ${u.id}
865
- `.execute(_)}}async function g0(_){}var Vu={};m(Vu,{up:()=>q0,down:()=>c0});import{sql as wu}from"kysely";async function q0(_){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(wu`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(wu`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await wu`
865
+ `.execute(_)}}async function h0(_){}var ku={};m(ku,{up:()=>o0,down:()=>a0});import{sql as Vu}from"kysely";async function o0(_){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(Vu`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Vu`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await Vu`
866
866
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
867
867
  ON org_file_configs (organization_id, lower(name))
868
- `.execute(_)}async function c0(_){await _.schema.dropTable("org_file_configs").execute()}var ku={};m(ku,{up:()=>h0,down:()=>o0});import{sql as f}from"kysely";async function h0(_){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`
868
+ `.execute(_)}async function a0(_){await _.schema.dropTable("org_file_configs").execute()}var pu={};m(pu,{up:()=>r0,down:()=>e0});import{sql as f}from"kysely";async function r0(_){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`
869
869
  ALTER TABLE automations
870
870
  ALTER COLUMN virtual_mcp_id SET NOT NULL
871
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function o0(_){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`
871
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function e0(_){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`
872
872
  ALTER TABLE automations
873
873
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
874
874
  `.execute(_),await f`
@@ -890,27 +890,27 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
890
890
  AND tool_input IS NOT NULL
891
891
  )
892
892
  )
893
- `.execute(_)}var pu={};m(pu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function r0(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var iu={};m(iu,{up:()=>e0,down:()=>l0});import{sql as tu}from"kysely";var Z_="local-docker";async function e0(_){await tu`delete from sandbox_runner_state where sandbox_provider_kind = ${Z_}`.execute(_);let x=await tu`
893
+ `.execute(_)}var tu={};m(tu,{up:()=>l0,down:()=>s0});async function l0(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function s0(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var vu={};m(vu,{up:()=>d0,down:()=>b0});import{sql as iu}from"kysely";var Z_="local-docker";async function d0(_){await iu`delete from sandbox_runner_state where sandbox_provider_kind = ${Z_}`.execute(_);let x=await iu`
894
894
  SELECT id, metadata FROM "connections"
895
895
  WHERE connection_type = 'VIRTUAL'
896
896
  AND metadata IS NOT NULL
897
897
  AND metadata LIKE ${"%"+Z_+"%"}
898
- `.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(Z_ in X){N=!0;let Y={...X};if(delete Y[Z_],Object.keys(Y).length>0)U[Q]=Y}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 tu`
898
+ `.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(Z_ in X){N=!0;let H={...X};if(delete H[Z_],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 iu`
899
899
  UPDATE "connections"
900
900
  SET metadata = ${K}
901
901
  WHERE id = ${u.id}
902
- `.execute(_)}}async function l0(_){}var vu={};m(vu,{up:()=>s0,down:()=>d0});import{sql as L_}from"kysely";async function s0(_){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 L_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await L_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await L_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await L_`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 d0(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var gu={};m(gu,{up:()=>b0,down:()=>_P});async function b0(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function _P(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var qu={};m(qu,{up:()=>xP,down:()=>uP});async function xP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function uP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var cu={};m(cu,{up:()=>mP,down:()=>CP});async function mP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function CP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var hu={};m(hu,{up:()=>TP,down:()=>NP});async function TP(_){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 NP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var ou={};m(ou,{up:()=>KP,down:()=>EP});async function KP(_){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 EP(_){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 ru={};m(ru,{up:()=>PP,down:()=>$P});import{sql as B}from"kysely";var F="cluster",n="agent-sandbox";function v(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function au(_,x,u){if(!v(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function D_(_){if(!v(_))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!==n&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!v(_.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 zP(_,x,u){if(!v(_))return null;let T=!1,C={};for(let[N,E]of Object.entries(_)){if(!v(E)){C[N]=E;continue}let K={};for(let[z,$]of Object.entries(E)){if(!v($)){K[z]=$;continue}let U={};for(let[Q,X]of Object.entries($)){if(Q===x){if(T=!0,!(u in $))U[u]=au(X,x,u);else if(!D_($[u])&&D_(X))U[u]=au(X,x,u);continue}let Y=au(X,x,u);if(Y!==X)T=!0;if(Q===u&&Q in U&&D_(U[Q])&&!D_(Y))continue;U[Q]=Y}K[z]=U}C[N]=K}return{sandboxMap:C,changed:T}}async function kT(_,x,u){let T=await B`
902
+ `.execute(_)}}async function b0(_){}var qu={};m(qu,{up:()=>_P,down:()=>xP});import{sql as L_}from"kysely";async function _P(_){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 L_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await L_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await L_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await L_`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 xP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var gu={};m(gu,{up:()=>uP,down:()=>mP});async function uP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function mP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var cu={};m(cu,{up:()=>CP,down:()=>TP});async function CP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function TP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var hu={};m(hu,{up:()=>NP,down:()=>KP});async function NP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function KP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var ou={};m(ou,{up:()=>EP,down:()=>zP});async function EP(_){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 zP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var au={};m(au,{up:()=>PP,down:()=>$P});async function PP(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function $P(_){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 eu={};m(eu,{up:()=>JP,down:()=>XP});import{sql as B}from"kysely";var F="cluster",R="agent-sandbox";function v(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function ru(_,x,u){if(!v(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function D_(_){if(!v(_))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(!v(_.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 UP(_,x,u){if(!v(_))return null;let T=!1,C={};for(let[N,E]of Object.entries(_)){if(!v(E)){C[N]=E;continue}let K={};for(let[z,$]of Object.entries(E)){if(!v($)){K[z]=$;continue}let U={};for(let[Q,X]of Object.entries($)){if(Q===x){if(T=!0,!(u in $))U[u]=ru(X,x,u);else if(!D_($[u])&&D_(X))U[u]=ru(X,x,u);continue}let H=ru(X,x,u);if(H!==X)T=!0;if(Q===u&&Q in U&&D_(U[Q])&&!D_(H))continue;U[Q]=H}K[z]=U}C[N]=K}return{sandboxMap:C,changed:T}}async function pT(_,x,u){let T=await B`
903
903
  SELECT id, metadata FROM connections
904
904
  WHERE connection_type = 'VIRTUAL'
905
905
  AND metadata IS NOT NULL
906
906
  AND metadata LIKE ${"%"+x+"%"}
907
- `.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=zP(N.sandboxMap,x,u);if(!E?.changed)continue;N.sandboxMap=E.sandboxMap,await B`
907
+ `.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=UP(N.sandboxMap,x,u);if(!E?.changed)continue;N.sandboxMap=E.sandboxMap,await B`
908
908
  UPDATE connections
909
909
  SET metadata = ${JSON.stringify(N)}
910
910
  WHERE id = ${C.id}
911
- `.execute(_)}}async function PP(_){await B`
911
+ `.execute(_)}}async function JP(_){await B`
912
912
  UPDATE threads
913
- SET sandbox_provider_kind = ${n}
913
+ SET sandbox_provider_kind = ${R}
914
914
  WHERE sandbox_provider_kind = ${F}
915
915
  `.execute(_),await B`
916
916
  UPDATE sandbox_runner_state canonical
@@ -918,7 +918,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
918
918
  state = legacy.state,
919
919
  updated_at = legacy.updated_at
920
920
  FROM sandbox_runner_state legacy
921
- WHERE canonical.sandbox_provider_kind = ${n}
921
+ WHERE canonical.sandbox_provider_kind = ${R}
922
922
  AND legacy.sandbox_provider_kind = ${F}
923
923
  AND canonical.user_id = legacy.user_id
924
924
  AND canonical.project_ref = legacy.project_ref
@@ -931,16 +931,16 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
931
931
  FROM sandbox_runner_state canonical
932
932
  WHERE canonical.user_id = legacy.user_id
933
933
  AND canonical.project_ref = legacy.project_ref
934
- AND canonical.sandbox_provider_kind = ${n}
934
+ AND canonical.sandbox_provider_kind = ${R}
935
935
  )
936
936
  `.execute(_),await B`
937
937
  UPDATE sandbox_runner_state
938
- SET sandbox_provider_kind = ${n}
938
+ SET sandbox_provider_kind = ${R}
939
939
  WHERE sandbox_provider_kind = ${F}
940
- `.execute(_),await kT(_,F,n)}async function $P(_){await B`
940
+ `.execute(_),await pT(_,F,R)}async function XP(_){await B`
941
941
  UPDATE threads
942
942
  SET sandbox_provider_kind = ${F}
943
- WHERE sandbox_provider_kind = ${n}
943
+ WHERE sandbox_provider_kind = ${R}
944
944
  `.execute(_),await B`
945
945
  UPDATE sandbox_runner_state legacy
946
946
  SET handle = canonical.handle,
@@ -948,13 +948,13 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
948
948
  updated_at = canonical.updated_at
949
949
  FROM sandbox_runner_state canonical
950
950
  WHERE legacy.sandbox_provider_kind = ${F}
951
- AND canonical.sandbox_provider_kind = ${n}
951
+ AND canonical.sandbox_provider_kind = ${R}
952
952
  AND legacy.user_id = canonical.user_id
953
953
  AND legacy.project_ref = canonical.project_ref
954
954
  AND canonical.updated_at > legacy.updated_at
955
955
  `.execute(_),await B`
956
956
  DELETE FROM sandbox_runner_state canonical
957
- WHERE canonical.sandbox_provider_kind = ${n}
957
+ WHERE canonical.sandbox_provider_kind = ${R}
958
958
  AND EXISTS (
959
959
  SELECT 1
960
960
  FROM sandbox_runner_state legacy
@@ -965,8 +965,8 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
965
965
  `.execute(_),await B`
966
966
  UPDATE sandbox_runner_state
967
967
  SET sandbox_provider_kind = ${F}
968
- WHERE sandbox_provider_kind = ${n}
969
- `.execute(_),await kT(_,n,F)}var eu={};m(eu,{up:()=>UP,down:()=>JP});import{sql as A}from"kysely";async function UP(_){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`
968
+ WHERE sandbox_provider_kind = ${R}
969
+ `.execute(_),await pT(_,R,F)}var lu={};m(lu,{up:()=>jP,down:()=>QP});import{sql as A}from"kysely";async function jP(_){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`
970
970
  CREATE INDEX idx_org_fs_entry_parent
971
971
  ON org_fs_entry (organization_id, volume, parent)
972
972
  WHERE deleted_at IS NULL
@@ -974,7 +974,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
974
974
  CREATE INDEX idx_org_fs_entry_usage
975
975
  ON org_fs_entry (organization_id, volume, size)
976
976
  WHERE kind = 'file' AND deleted_at IS NULL
977
- `.execute(_)}async function JP(_){await _.schema.dropTable("org_fs_entry").execute(),await A`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var lu={};m(lu,{up:()=>XP,down:()=>jP});async function XP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function jP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var su={};m(su,{up:()=>QP,down:()=>WP});import{sql as pT}from"kysely";async function QP(_){await pT`
977
+ `.execute(_)}async function QP(_){await _.schema.dropTable("org_fs_entry").execute(),await A`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var su={};m(su,{up:()=>WP,down:()=>ZP});async function WP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function ZP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var du={};m(du,{up:()=>LP,down:()=>DP});import{sql as tT}from"kysely";async function LP(_){await tT`
978
978
  INSERT INTO "organization" (id, name, slug, "createdAt")
979
979
  SELECT
980
980
  'org_orgfs_public_skills',
@@ -988,13 +988,13 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
988
988
  END,
989
989
  now()
990
990
  ON CONFLICT (id) DO NOTHING
991
- `.execute(_)}async function WP(_){await pT`
991
+ `.execute(_)}async function DP(_){await tT`
992
992
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
993
- `.execute(_)}var du={};m(du,{up:()=>ZP,down:()=>LP});async function ZP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function LP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var bu={};m(bu,{up:()=>DP,down:()=>FP});import{sql as tT}from"kysely";async function DP(_){await tT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function FP(_){await tT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var _m={};m(_m,{up:()=>RP,down:()=>YP});import{sql as nP}from"kysely";async function RP(_){await nP`
993
+ `.execute(_)}var bu={};m(bu,{up:()=>FP,down:()=>RP});async function FP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function RP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var _m={};m(_m,{up:()=>YP,down:()=>HP});import{sql as iT}from"kysely";async function YP(_){await iT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function HP(_){await iT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var xm={};m(xm,{up:()=>nP,down:()=>BP});import{sql as MP}from"kysely";async function nP(_){await MP`
994
994
  UPDATE downstream_tokens
995
995
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
996
996
  WHERE "expiresAt" IS NULL
997
- `.execute(_)}async function YP(_){}var xm={};m(xm,{up:()=>HP,down:()=>MP});async function HP(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function MP(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var um={};m(um,{up:()=>BP,down:()=>GP});async function BP(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function GP(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var mm={};m(mm,{up:()=>yP,down:()=>fP});async function yP(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function fP(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Cm={};m(Cm,{up:()=>OP,down:()=>AP});async function OP(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function AP(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Tm={};m(Tm,{up:()=>SP,down:()=>IP});async function SP(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function IP(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Nm={};m(Nm,{up:()=>wP,down:()=>VP});import{sql as iT}from"kysely";async function wP(_){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(iT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function VP(_){await _.schema.dropTable("org_sites").execute()}var Km={};m(Km,{up:()=>kP,down:()=>pP});async function kP(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function pP(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Em={};m(Em,{up:()=>tP,down:()=>iP});import{sql as Z}from"kysely";async function tP(_){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 Z`
997
+ `.execute(_)}async function BP(_){}var um={};m(um,{up:()=>GP,down:()=>yP});async function GP(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function yP(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var mm={};m(mm,{up:()=>fP,down:()=>OP});async function fP(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function OP(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var Cm={};m(Cm,{up:()=>AP,down:()=>SP});async function AP(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function SP(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Tm={};m(Tm,{up:()=>IP,down:()=>wP});async function IP(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function wP(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Nm={};m(Nm,{up:()=>VP,down:()=>kP});async function VP(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function kP(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Km={};m(Km,{up:()=>pP,down:()=>tP});import{sql as vT}from"kysely";async function pP(_){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(vT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(vT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function tP(_){await _.schema.dropTable("org_sites").execute()}var Em={};m(Em,{up:()=>iP,down:()=>vP});async function iP(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function vP(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var zm={};m(zm,{up:()=>qP,down:()=>gP});import{sql as Z}from"kysely";async function qP(_){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 Z`
998
998
  UPDATE organization_domains
999
999
  SET
1000
1000
  id = gen_random_uuid()::text,
@@ -1003,18 +1003,18 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1003
1003
  verification_method = 'email',
1004
1004
  verified_at = created_at
1005
1005
  WHERE id IS NULL
1006
- `.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await Z`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await Z`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 iP(_){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 Z`
1006
+ `.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await Z`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await Z`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 gP(_){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 Z`
1007
1007
  UPDATE organization_domains
1008
1008
  SET auto_join_enabled = (join_mode = 'auto')
1009
- `.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`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 zm={};m(zm,{up:()=>vP,down:()=>gP});import{sql as F_}from"kysely";async function vP(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(F_`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(F_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).execute(),await F_`
1009
+ `.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`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 Pm={};m(Pm,{up:()=>cP,down:()=>hP});import{sql as F_}from"kysely";async function cP(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(F_`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(F_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).execute(),await F_`
1010
1010
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1011
1011
  ON organization_join_requests (organization_id, user_id)
1012
1012
  WHERE status = 'pending'
1013
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function gP(_){await _.schema.dropTable("organization_join_requests").execute()}var Pm={};m(Pm,{up:()=>qP,down:()=>cP});async function qP(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function cP(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var $m={};m($m,{up:()=>hP,down:()=>oP});async function hP(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function oP(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Xm={};m(Xm,{up:()=>eP,splitWebResearchTier:()=>Jm,down:()=>lP,__testing:()=>rP});function aP(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Um(_){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 Jm(_){if(!_||Um(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,N=null,E=null;if(u)if(aP(u.modelId))E=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:E}}}var rP={splitWebResearchTier:Jm,isAlreadySplit:Um};async function eP(_){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(Um(T))continue;let C=Jm(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function lP(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var jm={};m(jm,{up:()=>sP,down:()=>dP});import{sql as __}from"kysely";async function sP(_){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(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await __`
1013
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function hP(_){await _.schema.dropTable("organization_join_requests").execute()}var $m={};m($m,{up:()=>oP,down:()=>aP});async function oP(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function aP(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Um={};m(Um,{up:()=>rP,down:()=>eP});async function rP(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function eP(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var jm={};m(jm,{up:()=>dP,splitWebResearchTier:()=>Xm,down:()=>bP,__testing:()=>sP});function lP(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Jm(_){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 Xm(_){if(!_||Jm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,N=null,E=null;if(u)if(lP(u.modelId))E=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:E}}}var sP={splitWebResearchTier:Xm,isAlreadySplit:Jm};async function dP(_){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(Jm(T))continue;let C=Xm(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function bP(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Qm={};m(Qm,{up:()=>_$,down:()=>x$});import{sql as __}from"kysely";async function _$(_){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(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await __`
1014
1014
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1015
1015
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1016
1016
  WHERE revoked_at IS NULL
1017
- `.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(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`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 dP(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var Qm={};m(Qm,{up:()=>bP,down:()=>_$});async function bP(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function _$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var Wm={};m(Wm,{up:()=>x$,down:()=>u$});import{sql as V}from"kysely";async function x$(_){await V`
1017
+ `.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(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`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 x$(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var Wm={};m(Wm,{up:()=>u$,down:()=>m$});async function u$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function m$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var Zm={};m(Zm,{up:()=>C$,down:()=>T$});import{sql as V}from"kysely";async function C$(_){await V`
1018
1018
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1019
1019
  RETURNS jsonb AS $fn$
1020
1020
  BEGIN
@@ -1073,7 +1073,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1073
1073
  BEFORE INSERT ON connection_aggregations
1074
1074
  FOR EACH ROW
1075
1075
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1076
- `.execute(_)}async function u$(_){await V`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await V`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await V`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Lm={};m(Lm,{up:()=>m$,down:()=>C$});import{sql as Zm}from"kysely";async function m$(_){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(Zm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Zm`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(Zm`false`)).execute()}async function C$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var Dm={};m(Dm,{up:()=>T$,down:()=>N$});async function T$(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function N$(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var Fm={};m(Fm,{up:()=>K$,down:()=>E$});async function K$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function E$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var nm={};m(nm,{up:()=>z$,down:()=>P$});async function z$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function P$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var Rm={};m(Rm,{up:()=>U$,down:()=>J$});import{sql as $$}from"kysely";async function U$(_){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($$`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 J$(_){await _.schema.dropTable("task_board_item_threads").execute()}var Ym={};m(Ym,{up:()=>X$,down:()=>j$});async function X$(_){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 j$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var Hm={};m(Hm,{up:()=>W$,down:()=>Z$});import{sql as Q$}from"kysely";async function W$(_){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(Q$`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 Z$(_){await _.schema.dropTable("task_board_item_prs").execute()}var Mm={};m(Mm,{up:()=>D$,down:()=>F$});import{sql as L$}from"kysely";async function D$(_){await L$`
1076
+ `.execute(_)}async function T$(_){await V`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await V`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await V`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Dm={};m(Dm,{up:()=>N$,down:()=>K$});import{sql as Lm}from"kysely";async function N$(_){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(Lm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Lm`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(Lm`false`)).execute()}async function K$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var Fm={};m(Fm,{up:()=>E$,down:()=>z$});async function E$(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function z$(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var Rm={};m(Rm,{up:()=>P$,down:()=>$$});async function P$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function $$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var Ym={};m(Ym,{up:()=>U$,down:()=>J$});async function U$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function J$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var Hm={};m(Hm,{up:()=>j$,down:()=>Q$});import{sql as X$}from"kysely";async function j$(_){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(X$`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 Q$(_){await _.schema.dropTable("task_board_item_threads").execute()}var Mm={};m(Mm,{up:()=>W$,down:()=>Z$});async function W$(_){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 Z$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var nm={};m(nm,{up:()=>D$,down:()=>F$});import{sql as L$}from"kysely";async function D$(_){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(L$`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 F$(_){await _.schema.dropTable("task_board_item_prs").execute()}var Bm={};m(Bm,{up:()=>Y$,down:()=>H$});import{sql as R$}from"kysely";async function Y$(_){await R$`
1077
1077
  DELETE FROM member
1078
1078
  WHERE id IN (
1079
1079
  SELECT id FROM (
@@ -1092,38 +1092,38 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1092
1092
  ) ranked
1093
1093
  WHERE ranked.rn > 1
1094
1094
  )
1095
- `.execute(_)}async function F$(_){}var Bm={};m(Bm,{up:()=>n$,down:()=>R$});async function n$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function R$(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var Gm={};m(Gm,{up:()=>Y$,down:()=>H$});async function Y$(_){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 H$(_){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 ym={};m(ym,{up:()=>B$,down:()=>G$});import{sql as M$}from"kysely";async function B$(_){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(M$`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 G$(_){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 fm={};m(fm,{up:()=>f$,down:()=>O$});import{sql as y$}from"kysely";async function f$(_){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(y$`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 O$(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var Om={};m(Om,{up:()=>A$,down:()=>S$});import{sql as n_}from"kysely";async function A$(_){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(n_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(n_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",n_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",n_`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 S$(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var Am={};m(Am,{up:()=>I$,down:()=>w$});import{sql as R_}from"kysely";async function I$(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await R_`
1095
+ `.execute(_)}async function H$(_){}var Gm={};m(Gm,{up:()=>M$,down:()=>n$});async function M$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function n$(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var ym={};m(ym,{up:()=>B$,down:()=>G$});async function B$(_){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 G$(_){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 fm={};m(fm,{up:()=>f$,down:()=>O$});import{sql as y$}from"kysely";async function f$(_){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(y$`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 O$(_){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 Om={};m(Om,{up:()=>S$,down:()=>I$});import{sql as A$}from"kysely";async function S$(_){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(A$`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 I$(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var Am={};m(Am,{up:()=>w$,down:()=>V$});import{sql as R_}from"kysely";async function w$(_){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(R_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",R_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",R_`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 V$(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var Sm={};m(Sm,{up:()=>k$,down:()=>p$});import{sql as Y_}from"kysely";async function k$(_){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(Y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`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(Y_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await Y_`
1096
1096
  insert into organization_billing (organization_id, legacy)
1097
1097
  select id, true from organization
1098
1098
  on conflict (organization_id) do nothing
1099
- `.execute(_)}async function w$(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var Sm={};m(Sm,{up:()=>V$,down:()=>k$});import{sql as vT}from"kysely";async function V$(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(vT`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(vT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function k$(_){await _.schema.dropTable("seat_change_log").execute()}var Im={};m(Im,{up:()=>p$,down:()=>t$});async function p$(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function t$(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var wm={};m(wm,{up:()=>i$,down:()=>v$});import{sql as gT}from"kysely";async function i$(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await gT`
1099
+ `.execute(_)}async function p$(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var Im={};m(Im,{up:()=>t$,down:()=>i$});import{sql as qT}from"kysely";async function t$(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(qT`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(qT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function i$(_){await _.schema.dropTable("seat_change_log").execute()}var wm={};m(wm,{up:()=>v$,down:()=>q$});async function v$(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function q$(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var Vm={};m(Vm,{up:()=>g$,down:()=>c$});import{sql as gT}from"kysely";async function g$(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await gT`
1100
1100
  create unique index organization_billing_stripe_subscription_id_uq
1101
1101
  on organization_billing (stripe_subscription_id)
1102
1102
  where stripe_subscription_id is not null
1103
- `.execute(_)}async function v$(_){await gT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var Vm={};m(Vm,{up:()=>g$,down:()=>q$});async function g$(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function q$(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var km={};m(km,{up:()=>c$,down:()=>h$});import{sql as qT}from"kysely";async function c$(_){await qT`
1103
+ `.execute(_)}async function c$(_){await gT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var km={};m(km,{up:()=>h$,down:()=>o$});async function h$(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function o$(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var pm={};m(pm,{up:()=>a$,down:()=>r$});import{sql as cT}from"kysely";async function a$(_){await cT`
1104
1104
  create index idx_org_billing_benefits_pending
1105
1105
  on organization_billing (updated_at)
1106
1106
  where benefits_reference_id is not null
1107
- `.execute(_)}async function h$(_){await qT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var pm={};m(pm,{up:()=>o$,down:()=>a$});import{sql as cT}from"kysely";async function o$(_){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(cT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(cT`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 a$(_){await _.schema.dropTable("user_model_preferences").execute()}var tm={};m(tm,{up:()=>r$,down:()=>e$});async function r$(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function e$(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var im={};m(im,{up:()=>l$,down:()=>s$});async function l$(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function s$(_){}var vm={};m(vm,{up:()=>d$,down:()=>b$});import{sql as hT}from"kysely";async function d$(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await hT`
1107
+ `.execute(_)}async function r$(_){await cT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var tm={};m(tm,{up:()=>e$,down:()=>l$});import{sql as hT}from"kysely";async function e$(_){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(hT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(hT`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 l$(_){await _.schema.dropTable("user_model_preferences").execute()}var im={};m(im,{up:()=>s$,down:()=>d$});async function s$(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function d$(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var vm={};m(vm,{up:()=>b$,down:()=>_U});async function b$(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function _U(_){}var qm={};m(qm,{up:()=>xU,down:()=>uU});import{sql as oT}from"kysely";async function xU(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await oT`
1108
1108
  UPDATE organization_settings
1109
1109
  SET flags = jsonb_build_object('reports_only', reports_only)
1110
1110
  WHERE reports_only IS NOT NULL
1111
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function b$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await hT`
1111
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function uU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await oT`
1112
1112
  UPDATE organization_settings
1113
1113
  SET reports_only = (flags ->> 'reports_only')::boolean
1114
1114
  WHERE flags ? 'reports_only'
1115
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var gm={};m(gm,{up:()=>xU,down:()=>uU});import{sql as _U}from"kysely";async function xU(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await _U`
1115
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var gm={};m(gm,{up:()=>CU,down:()=>TU});import{sql as mU}from"kysely";async function CU(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await mU`
1116
1116
  update task_board_items
1117
1117
  set sort_order = -extract(epoch from created_at)
1118
- `.execute(_)}async function uU(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var qm={};m(qm,{up:()=>mU,down:()=>CU,ACTIONS:()=>oT});import{sql as Y_}from"kysely";var oT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function mU(_){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(Y_`now()`)).addCheckConstraint("chk_task_board_activity_action",Y_`action IN (${Y_.join(oT.map((x)=>Y_.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 CU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var hm={};m(hm,{up:()=>TU,down:()=>NU,ACTIONS:()=>cm});import{sql as x_}from"kysely";var cm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function TU(_){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(x_`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 aT(_,cm)}async function NU(_){await aT(_,cm.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 aT(_,x){await x_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await x_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${x_.join(x.map((u)=>x_.lit(u)))}))`.execute(_)}var am={};m(am,{up:()=>EU,down:()=>zU});import{sql as rT}from"kysely";function om(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function KU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return om(T)}catch{return om(_.connection_url)}if(_.title)return om(_.title);return _.id}async function EU(_){let x=await rT`
1118
+ `.execute(_)}async function TU(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var cm={};m(cm,{up:()=>NU,down:()=>KU,ACTIONS:()=>aT});import{sql as H_}from"kysely";var aT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function NU(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(H_`now()`)).addCheckConstraint("chk_task_board_activity_action",H_`action IN (${H_.join(aT.map((x)=>H_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function KU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var om={};m(om,{up:()=>EU,down:()=>zU,ACTIONS:()=>hm});import{sql as x_}from"kysely";var hm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function EU(_){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(x_`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 rT(_,hm)}async function zU(_){await rT(_,hm.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 rT(_,x){await x_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await x_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${x_.join(x.map((u)=>x_.lit(u)))}))`.execute(_)}var rm={};m(rm,{up:()=>$U,down:()=>UU});import{sql as eT}from"kysely";function am(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function PU(_){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 am(T)}catch{return am(_.connection_url)}if(_.title)return am(_.title);return _.id}async function $U(_){let x=await eT`
1119
1119
  SELECT id, app_name, connection_url, title, slug
1120
1120
  FROM connections
1121
1121
  WHERE connection_type != 'VIRTUAL'
1122
- `.execute(_),u=0;for(let T of x.rows){let C=KU(T);if(C===T.slug)continue;await rT`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 zU(){}var rm={};m(rm,{up:()=>$U,down:()=>UU});import{sql as PU}from"kysely";async function $U(_){await PU`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 UU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var lm={};m(lm,{up:()=>XU,down:()=>jU,ACTIONS:()=>em});import{sql as H_}from"kysely";var em=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],JU=new Set(["review_requested","review_approved","review_changes_requested"]);async function XU(_){await eT(_,em)}async function jU(_){await eT(_,em.filter((x)=>!JU.has(x)))}async function eT(_,x){await H_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await H_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${H_.join(x.map((u)=>H_.lit(u)))}))`.execute(_)}var sm={};m(sm,{up:()=>WU,down:()=>ZU});import{sql as QU}from"kysely";async function WU(_){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(QU`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 ZU(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var bm={};m(bm,{up:()=>DU,down:()=>FU,ACTIONS:()=>dm});import{sql as M_}from"kysely";var dm=["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"],LU=new Set(["merge_conflict_resolution"]);async function DU(_){await lT(_,dm)}async function FU(_){await lT(_,dm.filter((x)=>!LU.has(x)))}async function lT(_,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 _C={};m(_C,{up:()=>nU,down:()=>RU});import{sql as u_}from"kysely";async function nU(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await u_`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 RU(_){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 u_`
1122
+ `.execute(_),u=0;for(let T of x.rows){let C=PU(T);if(C===T.slug)continue;await eT`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 UU(){}var em={};m(em,{up:()=>XU,down:()=>jU});import{sql as JU}from"kysely";async function XU(_){await JU`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 jU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var sm={};m(sm,{up:()=>WU,down:()=>ZU,ACTIONS:()=>lm});import{sql as M_}from"kysely";var lm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],QU=new Set(["review_requested","review_approved","review_changes_requested"]);async function WU(_){await lT(_,lm)}async function ZU(_){await lT(_,lm.filter((x)=>!QU.has(x)))}async function lT(_,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 dm={};m(dm,{up:()=>DU,down:()=>FU});import{sql as LU}from"kysely";async function DU(_){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(LU`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 FU(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var _C={};m(_C,{up:()=>YU,down:()=>HU,ACTIONS:()=>bm});import{sql as n_}from"kysely";var bm=["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"],RU=new Set(["merge_conflict_resolution"]);async function YU(_){await sT(_,bm)}async function HU(_){await sT(_,bm.filter((x)=>!RU.has(x)))}async function sT(_,x){await n_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await n_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${n_.join(x.map((u)=>n_.lit(u)))}))`.execute(_)}var xC={};m(xC,{up:()=>MU,down:()=>nU});import{sql as u_}from"kysely";async function MU(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await u_`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 nU(_){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 u_`
1123
1123
  create index idx_org_billing_benefits_pending
1124
1124
  on organization_billing (updated_at)
1125
1125
  where benefits_reference_id is not null
1126
- `.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(u_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(u_`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(u_`now()`)).execute()}var xC={};m(xC,{up:()=>YU,down:()=>HU});import{sql as B_}from"kysely";async function YU(_){await B_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await B_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function HU(_){await B_`
1126
+ `.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(u_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(u_`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(u_`now()`)).execute()}var uC={};m(uC,{up:()=>BU,down:()=>GU});import{sql as B_}from"kysely";async function BU(_){await B_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await B_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function GU(_){await B_`
1127
1127
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1128
1128
  RETURNS trigger AS $fn$
1129
1129
  BEGIN
@@ -1149,23 +1149,23 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1149
1149
  BEFORE INSERT ON connection_aggregations
1150
1150
  FOR EACH ROW
1151
1151
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1152
- `.execute(_)}var uC={};m(uC,{up:()=>MU,down:()=>BU});import{sql as sT}from"kysely";async function MU(_){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(sT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(sT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function BU(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var mC={};m(mC,{up:()=>GU,down:()=>yU});import{sql as dT}from"kysely";async function GU(_){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(dT`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(dT`now()`)).execute()}async function yU(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var TC={};m(TC,{up:()=>fU,down:()=>OU});import{sql as CC}from"kysely";async function fU(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(CC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await CC`
1152
+ `.execute(_)}var mC={};m(mC,{up:()=>yU,down:()=>fU});import{sql as dT}from"kysely";async function yU(_){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(dT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(dT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function fU(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var CC={};m(CC,{up:()=>OU,down:()=>AU});import{sql as bT}from"kysely";async function OU(_){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(bT`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(bT`now()`)).execute()}async function AU(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var NC={};m(NC,{up:()=>SU,down:()=>IU});import{sql as TC}from"kysely";async function SU(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(TC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await TC`
1153
1153
  create index idx_task_quota_claims_org_period_live
1154
1154
  on task_quota_claims (organization_id, period_key)
1155
1155
  where state <> 'released'
1156
- `.execute(_)}async function OU(_){await CC`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 NC={};m(NC,{up:()=>AU,down:()=>SU});async function AU(_){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 SU(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var KC={};m(KC,{up:()=>IU,down:()=>wU});async function IU(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function wU(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var EC={};m(EC,{up:()=>VU,down:()=>kU});import{sql as bT}from"kysely";async function VU(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(bT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(bT`monthly_task_executions > 0`)).execute()}async function kU(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var zC={};m(zC,{up:()=>tU,down:()=>iU});import{sql as pU}from"kysely";async function tU(_){await pU`
1156
+ `.execute(_)}async function IU(_){await TC`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 KC={};m(KC,{up:()=>wU,down:()=>VU});async function wU(_){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 VU(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var EC={};m(EC,{up:()=>kU,down:()=>pU});async function kU(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function pU(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var zC={};m(zC,{up:()=>tU,down:()=>iU});import{sql as _N}from"kysely";async function tU(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(_N`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(_N`monthly_task_executions > 0`)).execute()}async function iU(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var PC={};m(PC,{up:()=>qU,down:()=>gU});import{sql as vU}from"kysely";async function qU(_){await vU`
1157
1157
  CREATE INDEX idx_task_board_items_pending_review
1158
1158
  ON task_board_items (updated_at, id)
1159
1159
  WHERE status = 'in_review'
1160
1160
  AND assignee_id = 'super-agent'
1161
1161
  AND dismissed_at IS NULL
1162
- `.execute(_)}async function iU(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var PC={};m(PC,{up:()=>vU,down:()=>gU});import{sql as _N}from"kysely";async function vU(_){await _N`
1162
+ `.execute(_)}async function gU(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var $C={};m($C,{up:()=>cU,down:()=>hU});import{sql as xN}from"kysely";async function cU(_){await xN`
1163
1163
  ALTER TABLE task_board_items
1164
1164
  ADD COLUMN last_swept_at timestamptz
1165
- `.execute(_)}async function gU(_){await _N`
1165
+ `.execute(_)}async function hU(_){await xN`
1166
1166
  ALTER TABLE task_board_items
1167
1167
  DROP COLUMN last_swept_at
1168
- `.execute(_)}var $C={};m($C,{up:()=>qU,down:()=>cU});import{sql as G_}from"kysely";async function qU(_){await G_`
1168
+ `.execute(_)}var UC={};m(UC,{up:()=>oU,down:()=>aU});import{sql as G_}from"kysely";async function oU(_){await G_`
1169
1169
  ALTER TABLE task_board_items
1170
1170
  ADD COLUMN retry_at timestamptz,
1171
1171
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
@@ -1173,11 +1173,11 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1173
1173
  CREATE INDEX idx_task_board_items_retry_due
1174
1174
  ON task_board_items (retry_at)
1175
1175
  WHERE retry_at IS NOT NULL
1176
- `.execute(_)}async function cU(_){await G_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await G_`
1176
+ `.execute(_)}async function aU(_){await G_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await G_`
1177
1177
  ALTER TABLE task_board_items
1178
1178
  DROP COLUMN retry_at,
1179
1179
  DROP COLUMN retry_attempts
1180
- `.execute(_)}var JC={};m(JC,{up:()=>hU,down:()=>oU});import{sql as UC}from"kysely";async function hU(_){await UC`
1180
+ `.execute(_)}var XC={};m(XC,{up:()=>rU,down:()=>eU});import{sql as JC}from"kysely";async function rU(_){await JC`
1181
1181
  CREATE TABLE org_repo_sync (
1182
1182
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1183
1183
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1195,11 +1195,11 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1195
1195
  updated_at timestamptz NOT NULL DEFAULT now(),
1196
1196
  UNIQUE (organization_id, volume)
1197
1197
  )
1198
- `.execute(_),await UC`
1198
+ `.execute(_),await JC`
1199
1199
  CREATE INDEX idx_org_repo_sync_enabled
1200
1200
  ON org_repo_sync (organization_id)
1201
1201
  WHERE enabled
1202
- `.execute(_)}async function oU(_){await UC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var jC={};m(jC,{up:()=>rU,down:()=>eU,ACTIONS:()=>XC});import{sql as y_}from"kysely";var XC=["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"],aU=new Set(["merge_failed"]);async function rU(_){await xN(_,XC)}async function eU(_){await xN(_,XC.filter((x)=>!aU.has(x)))}async function xN(_,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 QC={};m(QC,{up:()=>lU,down:()=>sU});async function lU(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function sU(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var WC={};m(WC,{up:()=>dU,down:()=>bU});import{sql as g}from"kysely";async function dU(_){await g`
1202
+ `.execute(_)}async function eU(_){await JC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var QC={};m(QC,{up:()=>sU,down:()=>dU,ACTIONS:()=>jC});import{sql as y_}from"kysely";var jC=["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"],lU=new Set(["merge_failed"]);async function sU(_){await uN(_,jC)}async function dU(_){await uN(_,jC.filter((x)=>!lU.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 WC={};m(WC,{up:()=>bU,down:()=>_J});async function bU(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function _J(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var ZC={};m(ZC,{up:()=>xJ,down:()=>uJ});import{sql as q}from"kysely";async function xJ(_){await q`
1203
1203
  CREATE TABLE org_jira_integrations (
1204
1204
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1205
1205
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1219,7 +1219,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1219
1219
  created_at timestamptz NOT NULL DEFAULT now(),
1220
1220
  updated_at timestamptz NOT NULL DEFAULT now()
1221
1221
  )
1222
- `.execute(_),await g`
1222
+ `.execute(_),await q`
1223
1223
  CREATE TABLE task_board_item_jira_links (
1224
1224
  item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
1225
1225
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1230,7 +1230,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1230
1230
  created_at timestamptz NOT NULL DEFAULT now(),
1231
1231
  UNIQUE (organization_id, jira_issue_id)
1232
1232
  )
1233
- `.execute(_),await g`
1233
+ `.execute(_),await q`
1234
1234
  CREATE TABLE task_board_comment_jira_links (
1235
1235
  comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
1236
1236
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1238,7 +1238,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1238
1238
  created_at timestamptz NOT NULL DEFAULT now(),
1239
1239
  UNIQUE (organization_id, jira_comment_id)
1240
1240
  )
1241
- `.execute(_)}async function bU(_){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 ZC={};m(ZC,{up:()=>xJ,down:()=>uJ});import{sql as _J}from"kysely";async function xJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await _J`
1241
+ `.execute(_)}async function uJ(_){await q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await q`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await q`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var LC={};m(LC,{up:()=>CJ,down:()=>TJ});import{sql as mJ}from"kysely";async function CJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await mJ`
1242
1242
  update task_board_items as t
1243
1243
  set key_seq = numbered.seq
1244
1244
  from (
@@ -1251,25 +1251,25 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1251
1251
  from task_board_items
1252
1252
  ) as numbered
1253
1253
  where t.id = numbered.id
1254
- `.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 uJ(_){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 LC={};m(LC,{up:()=>mJ,down:()=>CJ});import{sql as uN}from"kysely";async function mJ(_){await uN`
1254
+ `.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 TJ(_){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 DC={};m(DC,{up:()=>NJ,down:()=>KJ});import{sql as mN}from"kysely";async function NJ(_){await mN`
1255
1255
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1256
1256
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1257
1257
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1258
- `.execute(_)}async function CJ(_){await uN`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var FC={};m(FC,{up:()=>TJ,down:()=>NJ});import{sql as DC}from"kysely";async function TJ(_){await DC`
1258
+ `.execute(_)}async function KJ(_){await mN`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var RC={};m(RC,{up:()=>EJ,down:()=>zJ});import{sql as FC}from"kysely";async function EJ(_){await FC`
1259
1259
  ALTER TABLE thread_message_parts
1260
1260
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1261
- `.execute(_),await DC`
1261
+ `.execute(_),await FC`
1262
1262
  ALTER TABLE thread_message_parts
1263
1263
  ALTER COLUMN persisted_at SET DEFAULT now()
1264
- `.execute(_)}async function NJ(_){await DC`
1264
+ `.execute(_)}async function zJ(_){await FC`
1265
1265
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1266
- `.execute(_)}var nC={};m(nC,{up:()=>KJ,down:()=>EJ});async function KJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function EJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var RC={};m(RC,{up:()=>PJ,down:()=>$J});import{sql as zJ}from"kysely";async function PJ(_){await zJ`
1266
+ `.execute(_)}var YC={};m(YC,{up:()=>PJ,down:()=>$J});async function PJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function $J(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var HC={};m(HC,{up:()=>JJ,down:()=>XJ});import{sql as UJ}from"kysely";async function JJ(_){await UJ`
1267
1267
  CREATE INDEX idx_task_board_items_done_sweep
1268
1268
  ON task_board_items (updated_at)
1269
1269
  WHERE status = 'done' AND dismissed_at IS NULL
1270
- `.execute(_)}async function $J(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var YC={};m(YC,{up:()=>UJ,down:()=>JJ,TYPES:()=>mN});import{sql as S}from"kysely";var mN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function UJ(_){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(S`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(S`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(S`now()`)).addCheckConstraint("notifications_type_check",S`type IN (${S.join(mN.map((x)=>S.lit(x)))})`).execute(),await S`CREATE INDEX notifications_user_unread ON notifications
1270
+ `.execute(_)}async function XJ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var MC={};m(MC,{up:()=>jJ,down:()=>QJ,TYPES:()=>CN});import{sql as S}from"kysely";var CN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function jJ(_){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(S`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(S`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(S`now()`)).addCheckConstraint("notifications_type_check",S`type IN (${S.join(CN.map((x)=>S.lit(x)))})`).execute(),await S`CREATE INDEX notifications_user_unread ON notifications
1271
1271
  (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await S`CREATE INDEX notifications_digest ON notifications
1272
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function JJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var HC={};m(HC,{up:()=>XJ,down:()=>jJ});import{sql as CN}from"kysely";async function XJ(_){await CN`
1272
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function QJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var nC={};m(nC,{up:()=>WJ,down:()=>ZJ});import{sql as TN}from"kysely";async function WJ(_){await TN`
1273
1273
  UPDATE org_jira_integrations
1274
1274
  SET status_mapping = (
1275
1275
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1284,7 +1284,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1284
1284
  SELECT 1 FROM jsonb_each(status_mapping)
1285
1285
  WHERE jsonb_typeof(value) = 'array'
1286
1286
  )
1287
- `.execute(_)}async function jJ(_){await CN`
1287
+ `.execute(_)}async function ZJ(_){await TN`
1288
1288
  UPDATE org_jira_integrations
1289
1289
  SET status_mapping = (
1290
1290
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1299,7 +1299,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1299
1299
  SELECT 1 FROM jsonb_each(status_mapping)
1300
1300
  WHERE jsonb_typeof(value) = 'array'
1301
1301
  )
1302
- `.execute(_)}var BC={};m(BC,{up:()=>WJ,down:()=>ZJ,TYPES:()=>MC});import{sql as f_}from"kysely";var MC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],QJ=new Set(["mentioned"]);async function WJ(_){await TN(_,MC)}async function ZJ(_){await TN(_,MC.filter((x)=>!QJ.has(x)))}async function TN(_,x){await f_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await f_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${f_.join(x.map((u)=>f_.lit(u)))}))`.execute(_)}var yC={};m(yC,{up:()=>FJ,down:()=>nJ,ACTIONS:()=>GC});import{sql as I}from"kysely";var LJ=["bug","feature","chore","spike","security"],GC=["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"],DJ=new Set(["type_changed"]);async function FJ(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await I`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${I.join(LJ.map((x)=>I.lit(x)))}))`.execute(_),await NN(_,GC)}async function nJ(_){await NN(_,GC.filter((x)=>!DJ.has(x))),await I`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function NN(_,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 fC={};m(fC,{up:()=>RJ,down:()=>YJ});import{sql as j}from"kysely";var EN=["bug","feature","chore","spike","security"],KN="chore";async function RJ(_){await j`UPDATE task_board_items SET type = ${j.lit(KN)} WHERE type IS NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${j.lit(KN)}`.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(EN.map((x)=>j.lit(x)))}))`.execute(_)}async function YJ(_){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(EN.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 OC={};m(OC,{up:()=>HJ,down:()=>MJ});import{sql as q}from"kysely";async function HJ(_){await q`
1302
+ `.execute(_)}var GC={};m(GC,{up:()=>DJ,down:()=>FJ,TYPES:()=>BC});import{sql as f_}from"kysely";var BC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],LJ=new Set(["mentioned"]);async function DJ(_){await NN(_,BC)}async function FJ(_){await NN(_,BC.filter((x)=>!LJ.has(x)))}async function NN(_,x){await f_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await f_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${f_.join(x.map((u)=>f_.lit(u)))}))`.execute(_)}var fC={};m(fC,{up:()=>HJ,down:()=>MJ,ACTIONS:()=>yC});import{sql as I}from"kysely";var RJ=["bug","feature","chore","spike","security"],yC=["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"],YJ=new Set(["type_changed"]);async function HJ(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await I`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${I.join(RJ.map((x)=>I.lit(x)))}))`.execute(_),await KN(_,yC)}async function MJ(_){await KN(_,yC.filter((x)=>!YJ.has(x))),await I`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function KN(_,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 OC={};m(OC,{up:()=>nJ,down:()=>BJ});import{sql as j}from"kysely";var zN=["bug","feature","chore","spike","security"],EN="chore";async function nJ(_){await j`UPDATE task_board_items SET type = ${j.lit(EN)} WHERE type IS NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${j.lit(EN)}`.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(zN.map((x)=>j.lit(x)))}))`.execute(_)}async function BJ(_){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(zN.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 AC={};m(AC,{up:()=>GJ,down:()=>yJ});import{sql as g}from"kysely";async function GJ(_){await g`
1303
1303
  CREATE TABLE task_board_sprints (
1304
1304
  id text PRIMARY KEY,
1305
1305
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1314,44 +1314,44 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1314
1314
  CHECK (state IN ('active', 'future', 'closed')),
1315
1315
  UNIQUE (organization_id, jira_sprint_id)
1316
1316
  )
1317
- `.execute(_),await q`
1317
+ `.execute(_),await g`
1318
1318
  CREATE INDEX idx_task_board_sprints_org
1319
1319
  ON task_board_sprints (organization_id, starts_at)
1320
- `.execute(_),await q`
1320
+ `.execute(_),await g`
1321
1321
  ALTER TABLE task_board_items
1322
1322
  ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
1323
- `.execute(_),await q`
1323
+ `.execute(_),await g`
1324
1324
  CREATE INDEX idx_task_board_items_sprint
1325
1325
  ON task_board_items (organization_id, sprint_id)
1326
1326
  WHERE sprint_id IS NOT NULL
1327
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function MJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await q`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var AC={};m(AC,{up:()=>GJ,down:()=>yJ});import{sql as BJ}from"kysely";async function GJ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function yJ(_){await BJ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var SC={};m(SC,{up:()=>OJ,down:()=>AJ});import{sql as fJ}from"kysely";async function OJ(_){await fJ`
1327
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function yJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await g`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await g`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var SC={};m(SC,{up:()=>OJ,down:()=>AJ});import{sql as fJ}from"kysely";async function OJ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function AJ(_){await fJ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var IC={};m(IC,{up:()=>IJ,down:()=>wJ});import{sql as SJ}from"kysely";async function IJ(_){await SJ`
1328
1328
  UPDATE org_jira_integrations
1329
1329
  SET last_synced_at = NULL,
1330
1330
  last_sync_error = NULL
1331
1331
  WHERE last_synced_at IS NOT NULL
1332
- `.execute(_)}async function AJ(){}var IC={};m(IC,{up:()=>IJ,down:()=>wJ});import{sql as SJ}from"kysely";async function IJ(_){await SJ`
1332
+ `.execute(_)}async function wJ(){}var wC={};m(wC,{up:()=>kJ,down:()=>pJ});import{sql as VJ}from"kysely";async function kJ(_){await VJ`
1333
1333
  UPDATE org_jira_integrations
1334
1334
  SET last_synced_at = NULL,
1335
1335
  last_sync_error = NULL
1336
1336
  WHERE last_synced_at IS NOT NULL
1337
- `.execute(_)}async function wJ(){}var VC={};m(VC,{up:()=>VJ,down:()=>kJ});import{sql as wC}from"kysely";async function VJ(_){await wC`
1337
+ `.execute(_)}async function pJ(){}var kC={};m(kC,{up:()=>tJ,down:()=>iJ});import{sql as VC}from"kysely";async function tJ(_){await VC`
1338
1338
  ALTER TABLE org_jira_integrations
1339
1339
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1340
- `.execute(_),await wC`
1340
+ `.execute(_),await VC`
1341
1341
  UPDATE org_jira_integrations
1342
1342
  SET rescan_pending = true
1343
1343
  WHERE last_synced_at IS NULL
1344
- `.execute(_)}async function kJ(_){await wC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var kC={};m(kC,{up:()=>pJ,down:()=>tJ});async function pJ(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function tJ(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var pC={};m(pC,{up:()=>iJ,down:()=>vJ});import{sql as zN}from"kysely";async function iJ(_){await zN`
1344
+ `.execute(_)}async function iJ(_){await VC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var pC={};m(pC,{up:()=>vJ,down:()=>qJ});async function vJ(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function qJ(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var tC={};m(tC,{up:()=>gJ,down:()=>cJ});import{sql as PN}from"kysely";async function gJ(_){await PN`
1345
1345
  ALTER TABLE invitation
1346
1346
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1347
- `.execute(_)}async function vJ(_){await zN`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var iC={};m(iC,{up:()=>gJ,down:()=>qJ});import{sql as tC}from"kysely";async function gJ(_){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(tC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(tC`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 tC`
1347
+ `.execute(_)}async function cJ(_){await PN`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var vC={};m(vC,{up:()=>hJ,down:()=>oJ});import{sql as iC}from"kysely";async function hJ(_){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(iC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iC`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 iC`
1348
1348
  INSERT INTO task_board_column_automations
1349
1349
  (id, organization_id, column_key, prompt)
1350
1350
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1351
1351
  FROM org_jira_integrations
1352
1352
  WHERE auto_delegate = true
1353
1353
  ON CONFLICT DO NOTHING
1354
- `.execute(_)}async function qJ(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var vC={};m(vC,{up:()=>cJ,down:()=>hJ});import{sql as m_}from"kysely";async function cJ(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await m_`
1354
+ `.execute(_)}async function oJ(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var qC={};m(qC,{up:()=>aJ,down:()=>rJ});import{sql as m_}from"kysely";async function aJ(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await m_`
1355
1355
  UPDATE task_board_items i
1356
1356
  SET review_cycle_started_at = (
1357
1357
  SELECT max(a.occurred_at)
@@ -1367,13 +1367,13 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1367
1367
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1368
1368
  AND assignee_id = 'super-agent'
1369
1369
  AND dismissed_at IS NULL
1370
- `.execute(_),await m_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function hJ(_){await m_`
1370
+ `.execute(_),await m_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function rJ(_){await m_`
1371
1371
  CREATE INDEX idx_task_board_items_pending_review
1372
1372
  ON task_board_items (updated_at, id)
1373
1373
  WHERE status = 'in_review'
1374
1374
  AND assignee_id = 'super-agent'
1375
1375
  AND dismissed_at IS NULL
1376
- `.execute(_),await m_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var gC={};m(gC,{up:()=>oJ,down:()=>aJ});import{sql as PN}from"kysely";async function oJ(_){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(PN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(PN`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 aJ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var cC={};m(cC,{up:()=>eJ,down:()=>lJ,ACTIONS:()=>qC});import{sql as O_}from"kysely";var qC=["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"],rJ=new Set(["review_verdict_requested"]);async function eJ(_){await $N(_,qC)}async function lJ(_){await $N(_,qC.filter((x)=>!rJ.has(x)))}async function $N(_,x){await O_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await O_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${O_.join(x.map((u)=>O_.lit(u)))}))`.execute(_)}var hC={};m(hC,{up:()=>sJ,down:()=>dJ});import{sql as A_}from"kysely";async function sJ(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await A_`
1376
+ `.execute(_),await m_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var gC={};m(gC,{up:()=>eJ,down:()=>lJ});import{sql as $N}from"kysely";async function eJ(_){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($N`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($N`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 lJ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var hC={};m(hC,{up:()=>dJ,down:()=>bJ,ACTIONS:()=>cC});import{sql as O_}from"kysely";var cC=["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"],sJ=new Set(["review_verdict_requested"]);async function dJ(_){await UN(_,cC)}async function bJ(_){await UN(_,cC.filter((x)=>!sJ.has(x)))}async function UN(_,x){await O_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await O_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${O_.join(x.map((u)=>O_.lit(u)))}))`.execute(_)}var oC={};m(oC,{up:()=>_X,down:()=>xX});import{sql as A_}from"kysely";async function _X(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await A_`
1377
1377
  ALTER TABLE task_board_items
1378
1378
  ADD CONSTRAINT chk_task_board_items_column_org
1379
1379
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
@@ -1383,13 +1383,13 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1383
1383
  FOREIGN KEY (board_column_org, status)
1384
1384
  REFERENCES task_board_columns (organization_id, key)
1385
1385
  ON DELETE RESTRICT
1386
- `.execute(_)}async function dJ(_){await A_`
1386
+ `.execute(_)}async function xX(_){await A_`
1387
1387
  ALTER TABLE task_board_items
1388
1388
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1389
1389
  `.execute(_),await A_`
1390
1390
  ALTER TABLE task_board_items
1391
1391
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
1392
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var oC={};m(oC,{up:()=>bJ,down:()=>_X});async function bJ(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function _X(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var rC={};m(rC,{up:()=>uX,down:()=>mX,ACTIONS:()=>aC});import{sql as S_}from"kysely";var aC=["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"],xX=new Set(["sprint_changed"]);async function uX(_){await UN(_,aC)}async function mX(_){await UN(_,aC.filter((x)=>!xX.has(x)))}async function UN(_,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 eC={};m(eC,{up:()=>TX,down:()=>NX});import{sql as CX}from"kysely";async function TX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(CX`'[]'::jsonb`)).execute()}async function NX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var lC={};m(lC,{up:()=>KX,down:()=>EX});import{sql as JN}from"kysely";async function KX(_){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(JN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(JN`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function EX(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var sC={};m(sC,{up:()=>PX,down:()=>$X});import{sql as zX}from"kysely";async function PX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await zX`
1392
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var aC={};m(aC,{up:()=>uX,down:()=>mX});async function uX(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function mX(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var eC={};m(eC,{up:()=>TX,down:()=>NX,ACTIONS:()=>rC});import{sql as S_}from"kysely";var rC=["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"],CX=new Set(["sprint_changed"]);async function TX(_){await JN(_,rC)}async function NX(_){await JN(_,rC.filter((x)=>!CX.has(x)))}async function JN(_,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 lC={};m(lC,{up:()=>EX,down:()=>zX});import{sql as KX}from"kysely";async function EX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(KX`'[]'::jsonb`)).execute()}async function zX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var sC={};m(sC,{up:()=>PX,down:()=>$X});import{sql as XN}from"kysely";async function PX(_){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(XN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(XN`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function $X(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var dC={};m(dC,{up:()=>JX,down:()=>XX});import{sql as UX}from"kysely";async function JX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await UX`
1393
1393
  UPDATE task_board_items i
1394
1394
  SET external_url = t.url,
1395
1395
  description = CASE
@@ -1408,11 +1408,11 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1408
1408
  ON g.organization_id = l.organization_id
1409
1409
  ) t
1410
1410
  WHERE t.item_id = i.id
1411
- `.execute(_)}async function $X(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var dC={};m(dC,{up:()=>JX,down:()=>XX,ACTIONS:()=>XN});import{sql as J}from"kysely";var UX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],XN=["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 JX(_){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`
1411
+ `.execute(_)}async function XX(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var bC={};m(bC,{up:()=>QX,down:()=>WX,ACTIONS:()=>jN});import{sql as J}from"kysely";var jX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],jN=["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 QX(_){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`
1412
1412
  UPDATE task_board_items
1413
1413
  SET status = 'triage'
1414
- WHERE status NOT IN (${J.join(UX.map((x)=>J.lit(x)))})
1415
- `.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 jX(_,XN),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
1414
+ WHERE status NOT IN (${J.join(jX.map((x)=>J.lit(x)))})
1415
+ `.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 ZX(_,jN),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
1416
1416
  ALTER TABLE task_board_item_jira_links
1417
1417
  DROP COLUMN IF EXISTS jira_updated_at,
1418
1418
  DROP COLUMN IF EXISTS jira_status,
@@ -1424,7 +1424,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1424
1424
  DROP COLUMN IF EXISTS last_synced_at,
1425
1425
  DROP COLUMN IF EXISTS last_sync_error,
1426
1426
  DROP COLUMN IF EXISTS rescan_pending
1427
- `.execute(_)}async function XX(){}async function jX(_,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 bC={};m(bC,{up:()=>QX,down:()=>WX});import{sql as c}from"kysely";async function QX(_){await c`
1427
+ `.execute(_)}async function WX(){}async function ZX(_,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:()=>LX,down:()=>DX});import{sql as c}from"kysely";async function LX(_){await c`
1428
1428
  ALTER TABLE task_board_items
1429
1429
  ADD COLUMN IF NOT EXISTS source text
1430
1430
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
@@ -1445,24 +1445,24 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1445
1445
  created_at timestamptz NOT NULL DEFAULT now(),
1446
1446
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
1447
1447
  )
1448
- `.execute(_)}async function WX(_){await c`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await c`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await c`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var _T={};m(_T,{up:()=>ZX,down:()=>LX});import{sql as C_}from"kysely";async function ZX(_){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(C_`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(C_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(C_`now()`)).execute(),await C_`
1448
+ `.execute(_)}async function DX(_){await c`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await c`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await c`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var xT={};m(xT,{up:()=>FX,down:()=>RX});import{sql as C_}from"kysely";async function FX(_){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(C_`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(C_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(C_`now()`)).execute(),await C_`
1449
1449
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
1450
1450
  ON organization_notices (organization_id)
1451
1451
  WHERE resolved_at IS NULL
1452
1452
  `.execute(_),await C_`
1453
1453
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
1454
1454
  ON organization_notices (organization_id, created_at DESC)
1455
- `.execute(_)}async function LX(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var uT={};m(uT,{up:()=>yX,down:()=>fX});import{sql as xT}from"kysely";import{sql as FW}from"kysely";var jN=50000000,DX=1e5;function FX(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>DX)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 nX=/\u0000/g,RX=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,YX=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,HX=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,MX=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function BX(_){return _.replace(nX,"").replace(RX,"\uFFFD").replace(YX,"$1***@").replace(HX,"$1***").replace(MX,"[base64 data omitted]")}function GX(_){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 QN(_){if(FX(_,jN)>jN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return BX(u);if(GX(u))return{type:"text",text:"[image omitted]"};return u})}var WN=20;async function yX(_){let x=await xT`
1455
+ `.execute(_)}async function RX(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var mT={};m(mT,{up:()=>AX,down:()=>SX});import{sql as uT}from"kysely";import{sql as HW}from"kysely";var QN=50000000,YX=1e5;function HX(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>YX)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 MX=/\u0000/g,nX=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,BX=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,GX=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,yX=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function fX(_){return _.replace(MX,"").replace(nX,"\uFFFD").replace(BX,"$1***@").replace(GX,"$1***").replace(yX,"[base64 data omitted]")}function OX(_){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 WN(_){if(HX(_,QN)>QN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return fX(u);if(OX(u))return{type:"text",text:"[image omitted]"};return u})}var ZN=20;async function AX(_){let x=await uT`
1456
1456
  SELECT id FROM thread_message_parts
1457
1457
  WHERE pg_column_size(payload) > 8192
1458
1458
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
1459
- `.execute(_);for(let u=0;u<x.rows.length;u+=WN){let T=x.rows.slice(u,u+WN).map((N)=>N.id),C=await xT`
1459
+ `.execute(_);for(let u=0;u<x.rows.length;u+=ZN){let T=x.rows.slice(u,u+ZN).map((N)=>N.id),C=await uT`
1460
1460
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${T})
1461
- `.execute(_);for(let N of C.rows){let E=QN(N.payload);if(E===JSON.stringify(N.payload))continue;await xT`
1461
+ `.execute(_);for(let N of C.rows){let E=WN(N.payload);if(E===JSON.stringify(N.payload))continue;await uT`
1462
1462
  UPDATE thread_message_parts
1463
1463
  SET payload = ${E}::jsonb
1464
1464
  WHERE id = ${N.id}
1465
- `.execute(_)}}}async function fX(){}var mT={};m(mT,{up:()=>OX,down:()=>AX});async function OX(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function AX(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var CT={};m(CT,{up:()=>SX,down:()=>IX});import{sql as P}from"kysely";async function SX(_){await P`
1465
+ `.execute(_)}}}async function SX(){}var CT={};m(CT,{up:()=>IX,down:()=>wX});async function IX(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function wX(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var TT={};m(TT,{up:()=>VX,down:()=>kX});import{sql as P}from"kysely";async function VX(_){await P`
1466
1466
  CREATE TABLE git_provider_accounts (
1467
1467
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1468
1468
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1706,11 +1706,11 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1706
1706
  AND r.organization_id = s.organization_id
1707
1707
  AND r.host = 'github.com'
1708
1708
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
1709
- `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function IX(_){await P`
1709
+ `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function kX(_){await P`
1710
1710
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
1711
1711
  `.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
1712
1712
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
1713
- `.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 TT={};m(TT,{up:()=>VX,down:()=>kX});import{sql as R}from"kysely";var wX=R`
1713
+ `.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 NT={};m(NT,{up:()=>tX,down:()=>iX});import{sql as Y}from"kysely";var pX=Y`
1714
1714
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
1715
1715
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
1716
1716
  BEGIN
@@ -1719,13 +1719,13 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1719
1719
  RETURN NULL;
1720
1720
  END;
1721
1721
  $$
1722
- `;async function VX(_){await wX.execute(_),await R`
1722
+ `;async function tX(_){await pX.execute(_),await Y`
1723
1723
  ALTER TABLE connections
1724
1724
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
1725
- `.execute(_),await R`
1725
+ `.execute(_),await Y`
1726
1726
  CREATE INDEX idx_connections_repository
1727
1727
  ON connections (repository_id) WHERE repository_id IS NOT NULL
1728
- `.execute(_),await R`
1728
+ `.execute(_),await Y`
1729
1729
  CREATE TABLE thread_repositories (
1730
1730
  thread_id text NOT NULL REFERENCES threads(id) ON DELETE CASCADE,
1731
1731
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1733,10 +1733,10 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1733
1733
  added_at timestamptz NOT NULL DEFAULT now(),
1734
1734
  PRIMARY KEY (thread_id, repository_id)
1735
1735
  )
1736
- `.execute(_),await R`
1736
+ `.execute(_),await Y`
1737
1737
  CREATE INDEX idx_thread_repositories_repo
1738
1738
  ON thread_repositories (repository_id)
1739
- `.execute(_),await R`
1739
+ `.execute(_),await Y`
1740
1740
  UPDATE connections c
1741
1741
  SET repository_id = r.id
1742
1742
  FROM repositories r
@@ -1748,7 +1748,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1748
1748
  || '/' ||
1749
1749
  (repo_ref_try_jsonb(c.metadata) #>> '{githubRepo,name}')
1750
1750
  )
1751
- `.execute(_),await R`
1751
+ `.execute(_),await Y`
1752
1752
  INSERT INTO repositories (
1753
1753
  organization_id, account_id, provider, host, path, web_url
1754
1754
  )
@@ -1769,7 +1769,7 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1769
1769
  AND e.name NOT LIKE '%/%'
1770
1770
  ORDER BY t.organization_id, lower(e.owner || '/' || e.name)
1771
1771
  ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
1772
- `.execute(_),await R`
1772
+ `.execute(_),await Y`
1773
1773
  INSERT INTO thread_repositories (thread_id, organization_id, repository_id)
1774
1774
  SELECT DISTINCT t.id, t.organization_id, r.id
1775
1775
  FROM threads t
@@ -1781,21 +1781,21 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1781
1781
  AND r.host = 'github.com'
1782
1782
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
1783
1783
  ON CONFLICT (thread_id, repository_id) DO NOTHING
1784
- `.execute(_),await R`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function kX(_){await R`DROP TABLE IF EXISTS thread_repositories`.execute(_),await R`
1784
+ `.execute(_),await Y`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function iX(_){await Y`DROP TABLE IF EXISTS thread_repositories`.execute(_),await Y`
1785
1785
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
1786
- `.execute(_)}var pX={"001-initial-schema":q_,"002-organization-settings":c_,"003-connection-schema-align":h_,"004-remove-models-binding":o_,"005-connection-configuration":a_,"006-add-views-to-settings":r_,"007-monitoring-logs":e_,"008-event-bus":l_,"009-drop-audit-logs":s_,"010-gateways":d_,"011-gateway-icon":b_,"012-gateway-tool-selection-mode":_x,"013-monitoring-user-agent-gateway":xx,"014-gateway-resources-prompts":ux,"015-monitoring-properties":mx,"016-downstream-token-client-info":Cx,"017-downstream-token-remove-userid":Tx,"018-drop-gateway-tool-selection-strategy":Nx,"019-remove-gateway-is-default":Kx,"020-enabled-plugins":Ex,"021-threads":zx,"022-rename-gateway-to-virtual-mcp":Px,"023-optimize-thread-indexes":$x,"024-consolidate-virtual-mcp":Ux,"025-add-monitoring-virtual-mcp-id":Jx,"026-restrict-child-connection-delete":Xx,"027-update-management-mcp-url":Qx,"028-update-management-mcp-to-self":Zx,"029-add-updated-by-to-connections":Lx,"030-member-tags":Dx,"031-add-dependency-mode":Fx,"032-projects":nx,"033-thread-status":Rx,"034-monitoring-dashboards":Yx,"035-project-connections":Hx,"036-update-registry-url":Mx,"037-ai-provider-keys":Bx,"038-oauth-pkce-states":Gx,"039-automations":yx,"040-replace-next-run-at-with-last-run-at":fx,"041-ai-provider-keys-unique-constraint":Ox,"042-rename-mesh-mcp-to-cms-mcp":Ax,"043-rename-cms-mcp-to-deco-cms":Sx,"044-drop-connections-tools-column":Ix,"045-thread-context-start-message":wx,"046-remove-object-storage-plugin":kx,"047-add-next-run-at":px,"048-merge-projects-agents":ix,"049-remove-org-admin-projects":vx,"050-durable-agent-runs":gx,"051-org-sso":cx,"052-thread-agent-ids":hx,"053-registry-config":ox,"054-connection-slug":rx,"055-spaces":ex,"056-automation-project-scope":lx,"057-thread-virtual-mcp-id":sx,"058-trigger-callback-tokens":dx,"059-kv":bx,"060-member-index":_u,"061-downstream-token-connection-index":xu,"062-private-registry":uu,"063-event-subscriptions-enabled-boolean":mu,"064-brand-context":Cu,"065-organization-domains":Tu,"066-brand-context-structured":Nu,"067-threads-metadata":Ku,"068-threads-branch":Eu,"069-sandbox-runner-state":zu,"070-model-categories":Pu,"071-default-home-agents":$u,"072-ai-provider-key-preset-id":Uu,"073-backfill-basic-usage-roles":Ju,"074-sandbox-runner-state-handle-nonunique":Xu,"075-thread-inflight-async-jobs":ju,"076-automations-drop-agent-json":Qu,"077-tier-only-model-selection":Zu,"078-automation-tool-call-kind":Lu,"079-strip-legacy-freestyle-vm-map-entries":Du,"080-async-research-jobs":Fu,"081-async-research-jobs-result-content":nu,"082-secrets":Ru,"083-thread-run-locally":Yu,"084-drop-host-sandbox-rows":Hu,"085-rename-runner-kind":Mu,"086-thread-pins-and-vm-map-rekey":Bu,"087-fix-vm-map-rekey":Gu,"088-purge-cli-activate-keys":yu,"089-rename-remote-user-to-desktop":fu,"090-automation-webhook-triggers":Ou,"091-organization-domains-allow-multi":Au,"092-sandbox-naming-uniformization":Su,"093-backfill-global-search-basic-usage":Iu,"094-org-file-configs":Vu,"095-remove-automation-tool-call-kind":ku,"096-org-file-configs-public-url-base":pu,"097-drop-local-docker-sandbox-state":iu,"098-thread-message-parts":vu,"099-run-fence":gu,"100-link-transport":qu,"101-cancel-requested-at":cu,"102-observational-agent":hu,"103-revert-observational-agent":ou,"104-agent-sandbox-provider-kind":ru,"105-org-fs":eu,"106-automation-tools":lu,"107-org-fs-public-org":su,"108-automation-max-agent-steps":du,"109-thread-message-parts-per-message-seq":bu,"110-backfill-ghs-token-expiry":_m,"111-org-fs-thread-id":xm,"112-org-file-configs-credential-type":um,"113-thread-failure-reason":mm,"114-run-acked-seq":Cm,"115-thread-projected-seq":Tm,"116-org-sites":Nm,"117-org-file-configs-site-slug":Km,"118-organization-domains-multi-verify":Em,"119-organization-join-requests":zm,"120-org-fs-read-public":Pm,"121-org-fs-share-password":$m,"122-split-web-research-tier":Xm,"123-connection-credential-vault":jm,"124-drop-thread-projected-seq":Qm,"125-github-child-single-parent":Wm,"126-task-board":Lm,"127-task-board-due-date":Dm,"128-reports-only":Fm,"129-task-board-assigned-by":nm,"130-task-board-thread-id":Rm,"131-task-board-thread-link-cascade":Ym,"132-task-board-item-prs":Hm,"133-dedupe-duplicate-members":Mm,"134-drop-task-board-enabled":Bm,"135-task-board-item-fk-cascade":Gm,"136-task-board-import-idempotency":ym,"137-agent-sandbox-runner-state":fm,"138-agent-sandbox-sessions":Om,"139-organization-billing":Am,"140-seat-change-log":Sm,"141-benefits-sync-pending":Im,"142-stripe-event-watermark":wm,"143-armed-report-url":Vm,"144-benefits-pending-index":km,"145-user-model-preferences":pm,"146-organization-main-agent":tm,"147-drop-agent-sandbox-tables":im,"148-org-flags":vm,"149-task-board-item-sort-order":gm,"150-task-board-activity":qm,"151-task-board-tags":hm,"152-repair-connection-slug":am,"153-task-board-latest-assistant-part-index":rm,"154-task-board-qa-activity":lm,"155-task-board-review-claims":sm,"156-task-board-conflict-activity":bm,"157-drop-seat-billing":_C,"158-drop-github-child-single-parent":xC,"159-task-board-comments":uC,"160-task-quota-billing":mC,"161-task-quota-claim-state":TC,"162-claude-subscriptions":NC,"163-task-board-item-dismissed":KC,"164-per-org-task-quota":EC,"165-task-board-pending-review-index":zC,"166-task-board-last-swept-at":PC,"167-task-board-run-retry":$C,"168-org-repo-sync":JC,"169-task-board-merge-failed-activity":jC,"170-task-board-item-repo":QC,"171-jira-integration":WC,"172-task-board-item-key-seq":ZC,"173-thread-github-repo-connection-index":LC,"174-thread-message-parts-persisted-at":FC,"175-task-board-sprints":nC,"176-task-board-done-sweep-index":RC,"177-notifications":YC,"178-jira-status-mapping-array":HC,"179-notification-mentioned":BC,"180-task-board-item-type":yC,"181-task-board-item-type-required":fC,"182-task-board-sprints-entities":OC,"183-drop-jira-jql-filter":AC,"184-jira-rescan-after-scope-change":SC,"185-jira-rescan-existing-cards":IC,"186-jira-rescan-pending-flag":VC,"187-task-board-comment-thread":kC,"188-invitation-auto-accept":pC,"189-task-board-column-automations":iC,"190-task-board-review-cycle-started-at":vC,"191-task-board-columns":gC,"192-task-board-verdict-nudge-activity":cC,"193-task-board-status-column-fk":hC,"194-jira-link-sprint":oC,"195-task-board-sprint-activity":rC,"196-task-board-column-tracker-statuses":eC,"197-task-board-prompts":lC,"198-task-board-external-url":sC,"199-drop-jira-mirror-and-org-columns":dC,"200-jira-run-trigger":bC,"201-organization-notices":_T,"202-redact-base64-thread-parts":uT,"203-task-board-preview-routes":mT,"204-git-provider-accounts-and-repositories":CT,"205-repository-references":TT,"206-repository-consumers":g_,"207-task-board-prs-repo-idx":v_,"208-github-connect-flows":i_,"209-github-installation-authorization":t_},NT=pX;import{getMigrations as j6}from"better-auth/db";import{sso as Q6}from"@better-auth/sso";import{organization as W6}from"@decocms/better-auth/plugins";import{admin as Z6,apiKey as L6,jwt as D6,magicLink as F6,mcp as n6,openAPI as R6}from"better-auth/plugins";import{emailOTP as Y6}from"better-auth/plugins/email-otp";import{Kysely as E6,PostgresDialect as GN}from"kysely";import{Pool as yN}from"pg";import{homedir as tX}from"os";var iX=new Set(["all","worker","api"]);function vX(_){let x=(_??"").trim();return iX.has(x)?x:"all"}var gX=new Set(["production","development","test"]);function qX(_){let x=(_??"").trim();return gX.has(x)?x:"development"}function L(_){return _==="true"||_==="1"}function ET(_,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 ET(_,x,T)??u}function cX(_,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 KT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function ZN(_){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 hX(_){return _===void 0||_===""||_==="true"||_==="1"}function T_(_,x){return _||x}function LN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${tX()}/deco`,T=_.localMode,C=_.nodeEnv||qX(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222";return{settings:{nodeEnv:C,port:G("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:T_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:L(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:T_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:L(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:L(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),clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:ET("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:L(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,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:cX("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:L(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:L(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:L(x.HOSTING_CONTROL_PLANE_GA),monitorGa:L(x.MONITOR_GA),mcpCacheEnabled:KT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:L(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:KT(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:hX(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:ET("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:vX(T_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:L(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:L(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:KT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:L(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:T_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:T_(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},externalDatabaseUrl:ZN(x.DATABASE_URL),externalNatsUrl:ZN(N),skipMigrations:_.skipMigrations}}var I_=null;function h(){if(!I_)oX();return I_}function oX(){if(I_)return;let _={...process.env},x=LN({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},_);I_=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 dX,metrics as bX,propagation as iZ,ROOT_CONTEXT as vZ,SpanStatusCode as gZ,trace as _6}from"@opentelemetry/api";import{logs as x6,SeverityNumber as zT}from"@opentelemetry/api-logs";import{OTLPLogExporter as hZ}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as u6}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as rZ}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as lZ}from"@opentelemetry/instrumentation-runtime-node";import{context as IW,propagation as wW,SpanKind as VW,SpanStatusCode as kW}from"@opentelemetry/api";var tW=globalThis.fetch;import{ExportResultCode as sW}from"@opentelemetry/core";import{ExportResultCode as w_}from"@opentelemetry/core";import{mkdir as aX,rename as rX,writeFile as eX}from"fs/promises";import{join as V_}from"path";class k_{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:w_.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:w_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:w_.FAILED}});return Promise.resolve({code:w_.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?V_(this.basePath,x,...T):V_(this.basePath,...T);if(!this.knownDirs.has(C))await aX(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=V_(C,`.${N}.tmp`),K=V_(C,N),z=_.join(`
1786
+ `.execute(_)}var vX={"001-initial-schema":c_,"002-organization-settings":h_,"003-connection-schema-align":o_,"004-remove-models-binding":a_,"005-connection-configuration":r_,"006-add-views-to-settings":e_,"007-monitoring-logs":l_,"008-event-bus":s_,"009-drop-audit-logs":d_,"010-gateways":b_,"011-gateway-icon":_x,"012-gateway-tool-selection-mode":xx,"013-monitoring-user-agent-gateway":ux,"014-gateway-resources-prompts":mx,"015-monitoring-properties":Cx,"016-downstream-token-client-info":Tx,"017-downstream-token-remove-userid":Nx,"018-drop-gateway-tool-selection-strategy":Kx,"019-remove-gateway-is-default":Ex,"020-enabled-plugins":zx,"021-threads":Px,"022-rename-gateway-to-virtual-mcp":$x,"023-optimize-thread-indexes":Ux,"024-consolidate-virtual-mcp":Jx,"025-add-monitoring-virtual-mcp-id":Xx,"026-restrict-child-connection-delete":jx,"027-update-management-mcp-url":Wx,"028-update-management-mcp-to-self":Lx,"029-add-updated-by-to-connections":Dx,"030-member-tags":Fx,"031-add-dependency-mode":Rx,"032-projects":Yx,"033-thread-status":Hx,"034-monitoring-dashboards":Mx,"035-project-connections":nx,"036-update-registry-url":Bx,"037-ai-provider-keys":Gx,"038-oauth-pkce-states":yx,"039-automations":fx,"040-replace-next-run-at-with-last-run-at":Ox,"041-ai-provider-keys-unique-constraint":Ax,"042-rename-mesh-mcp-to-cms-mcp":Sx,"043-rename-cms-mcp-to-deco-cms":Ix,"044-drop-connections-tools-column":wx,"045-thread-context-start-message":Vx,"046-remove-object-storage-plugin":px,"047-add-next-run-at":tx,"048-merge-projects-agents":vx,"049-remove-org-admin-projects":qx,"050-durable-agent-runs":gx,"051-org-sso":hx,"052-thread-agent-ids":ox,"053-registry-config":ax,"054-connection-slug":ex,"055-spaces":lx,"056-automation-project-scope":sx,"057-thread-virtual-mcp-id":dx,"058-trigger-callback-tokens":bx,"059-kv":_u,"060-member-index":xu,"061-downstream-token-connection-index":uu,"062-private-registry":mu,"063-event-subscriptions-enabled-boolean":Cu,"064-brand-context":Tu,"065-organization-domains":Nu,"066-brand-context-structured":Ku,"067-threads-metadata":Eu,"068-threads-branch":zu,"069-sandbox-runner-state":Pu,"070-model-categories":$u,"071-default-home-agents":Uu,"072-ai-provider-key-preset-id":Ju,"073-backfill-basic-usage-roles":Xu,"074-sandbox-runner-state-handle-nonunique":ju,"075-thread-inflight-async-jobs":Qu,"076-automations-drop-agent-json":Wu,"077-tier-only-model-selection":Lu,"078-automation-tool-call-kind":Du,"079-strip-legacy-freestyle-vm-map-entries":Fu,"080-async-research-jobs":Ru,"081-async-research-jobs-result-content":Yu,"082-secrets":Hu,"083-thread-run-locally":Mu,"084-drop-host-sandbox-rows":nu,"085-rename-runner-kind":Bu,"086-thread-pins-and-vm-map-rekey":Gu,"087-fix-vm-map-rekey":yu,"088-purge-cli-activate-keys":fu,"089-rename-remote-user-to-desktop":Ou,"090-automation-webhook-triggers":Au,"091-organization-domains-allow-multi":Su,"092-sandbox-naming-uniformization":Iu,"093-backfill-global-search-basic-usage":wu,"094-org-file-configs":ku,"095-remove-automation-tool-call-kind":pu,"096-org-file-configs-public-url-base":tu,"097-drop-local-docker-sandbox-state":vu,"098-thread-message-parts":qu,"099-run-fence":gu,"100-link-transport":cu,"101-cancel-requested-at":hu,"102-observational-agent":ou,"103-revert-observational-agent":au,"104-agent-sandbox-provider-kind":eu,"105-org-fs":lu,"106-automation-tools":su,"107-org-fs-public-org":du,"108-automation-max-agent-steps":bu,"109-thread-message-parts-per-message-seq":_m,"110-backfill-ghs-token-expiry":xm,"111-org-fs-thread-id":um,"112-org-file-configs-credential-type":mm,"113-thread-failure-reason":Cm,"114-run-acked-seq":Tm,"115-thread-projected-seq":Nm,"116-org-sites":Km,"117-org-file-configs-site-slug":Em,"118-organization-domains-multi-verify":zm,"119-organization-join-requests":Pm,"120-org-fs-read-public":$m,"121-org-fs-share-password":Um,"122-split-web-research-tier":jm,"123-connection-credential-vault":Qm,"124-drop-thread-projected-seq":Wm,"125-github-child-single-parent":Zm,"126-task-board":Dm,"127-task-board-due-date":Fm,"128-reports-only":Rm,"129-task-board-assigned-by":Ym,"130-task-board-thread-id":Hm,"131-task-board-thread-link-cascade":Mm,"132-task-board-item-prs":nm,"133-dedupe-duplicate-members":Bm,"134-drop-task-board-enabled":Gm,"135-task-board-item-fk-cascade":ym,"136-task-board-import-idempotency":fm,"137-agent-sandbox-runner-state":Om,"138-agent-sandbox-sessions":Am,"139-organization-billing":Sm,"140-seat-change-log":Im,"141-benefits-sync-pending":wm,"142-stripe-event-watermark":Vm,"143-armed-report-url":km,"144-benefits-pending-index":pm,"145-user-model-preferences":tm,"146-organization-main-agent":im,"147-drop-agent-sandbox-tables":vm,"148-org-flags":qm,"149-task-board-item-sort-order":gm,"150-task-board-activity":cm,"151-task-board-tags":om,"152-repair-connection-slug":rm,"153-task-board-latest-assistant-part-index":em,"154-task-board-qa-activity":sm,"155-task-board-review-claims":dm,"156-task-board-conflict-activity":_C,"157-drop-seat-billing":xC,"158-drop-github-child-single-parent":uC,"159-task-board-comments":mC,"160-task-quota-billing":CC,"161-task-quota-claim-state":NC,"162-claude-subscriptions":KC,"163-task-board-item-dismissed":EC,"164-per-org-task-quota":zC,"165-task-board-pending-review-index":PC,"166-task-board-last-swept-at":$C,"167-task-board-run-retry":UC,"168-org-repo-sync":XC,"169-task-board-merge-failed-activity":QC,"170-task-board-item-repo":WC,"171-jira-integration":ZC,"172-task-board-item-key-seq":LC,"173-thread-github-repo-connection-index":DC,"174-thread-message-parts-persisted-at":RC,"175-task-board-sprints":YC,"176-task-board-done-sweep-index":HC,"177-notifications":MC,"178-jira-status-mapping-array":nC,"179-notification-mentioned":GC,"180-task-board-item-type":fC,"181-task-board-item-type-required":OC,"182-task-board-sprints-entities":AC,"183-drop-jira-jql-filter":SC,"184-jira-rescan-after-scope-change":IC,"185-jira-rescan-existing-cards":wC,"186-jira-rescan-pending-flag":kC,"187-task-board-comment-thread":pC,"188-invitation-auto-accept":tC,"189-task-board-column-automations":vC,"190-task-board-review-cycle-started-at":qC,"191-task-board-columns":gC,"192-task-board-verdict-nudge-activity":hC,"193-task-board-status-column-fk":oC,"194-jira-link-sprint":aC,"195-task-board-sprint-activity":eC,"196-task-board-column-tracker-statuses":lC,"197-task-board-prompts":sC,"198-task-board-external-url":dC,"199-drop-jira-mirror-and-org-columns":bC,"200-jira-run-trigger":_T,"201-organization-notices":xT,"202-redact-base64-thread-parts":mT,"203-task-board-preview-routes":CT,"204-git-provider-accounts-and-repositories":TT,"205-repository-references":NT,"206-repository-consumers":g_,"207-task-board-prs-repo-idx":q_,"208-github-connect-flows":v_,"209-github-installation-authorization":i_,"210-github-repository-authorization":t_},KT=vX;import{getMigrations as Z6}from"better-auth/db";import{sso as L6}from"@better-auth/sso";import{organization as D6}from"@decocms/better-auth/plugins";import{admin as F6,apiKey as R6,jwt as Y6,magicLink as H6,mcp as M6,openAPI as n6}from"better-auth/plugins";import{emailOTP as B6}from"better-auth/plugins/email-otp";import{Kysely as $6,PostgresDialect as yN}from"kysely";import{Pool as fN}from"pg";import{homedir as qX}from"os";var gX=new Set(["all","worker","api"]);function cX(_){let x=(_??"").trim();return gX.has(x)?x:"all"}var hX=new Set(["production","development","test"]);function oX(_){let x=(_??"").trim();return hX.has(x)?x:"development"}function L(_){return _==="true"||_==="1"}function zT(_,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 zT(_,x,T)??u}function aX(_,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 ET(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function LN(_){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 rX(_){return _===void 0||_===""||_==="true"||_==="1"}function T_(_,x){return _||x}function DN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${qX()}/deco`,T=_.localMode,C=_.nodeEnv||oX(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222";return{settings:{nodeEnv:C,port:G("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:T_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:L(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:T_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:L(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:L(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),clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:zT("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:L(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,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:aX("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:L(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:L(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:L(x.HOSTING_CONTROL_PLANE_GA),monitorGa:L(x.MONITOR_GA),mcpCacheEnabled:ET(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:L(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:ET(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:rX(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:zT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:cX(T_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:L(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:L(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:ET(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:L(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:T_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:T_(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},externalDatabaseUrl:LN(x.DATABASE_URL),externalNatsUrl:LN(N),skipMigrations:_.skipMigrations}}var I_=null;function h(){if(!I_)eX();return I_}function eX(){if(I_)return;let _={...process.env},x=DN({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},_);I_=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 x6,metrics as u6,propagation as gZ,ROOT_CONTEXT as cZ,SpanStatusCode as hZ,trace as m6}from"@opentelemetry/api";import{logs as C6,SeverityNumber as PT}from"@opentelemetry/api-logs";import{OTLPLogExporter as rZ}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as T6}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as sZ}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as bZ}from"@opentelemetry/instrumentation-runtime-node";import{context as kW,propagation as pW,SpanKind as tW,SpanStatusCode as iW}from"@opentelemetry/api";var qW=globalThis.fetch;import{ExportResultCode as _Z}from"@opentelemetry/core";import{ExportResultCode as w_}from"@opentelemetry/core";import{mkdir as lX,rename as sX,writeFile as dX}from"fs/promises";import{join as V_}from"path";class k_{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:w_.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:w_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:w_.FAILED}});return Promise.resolve({code:w_.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?V_(this.basePath,x,...T):V_(this.basePath,...T);if(!this.knownDirs.has(C))await lX(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=V_(C,`.${N}.tmp`),K=V_(C,N),z=_.join(`
1787
1787
  `)+`
1788
- `;await eX(E,z,{mode:384}),await rX(E,K)}}import{ExportResultCode as uZ}from"@opentelemetry/core";import{AggregationTemporality as CZ,DataPointType as TZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as $Z}from"@opentelemetry/core";var jZ=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as T4,LoggerProvider as N4}from"@opentelemetry/sdk-logs";import{detectResources as E4,envDetector as z4,hostDetector as P4,osDetector as $4,processDetector as U4,resourceFromAttributes as J4}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as j4}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as ZZ}from"@opentelemetry/api-logs";import{NodeSDK as Z4}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as D4,SamplingDecision as o}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as RZ}from"@opentelemetry/api";var m6="__d",C6=dX("Current request"),T6=1;var FN=(_)=>{let u=new URL(_.url).searchParams.get(m6);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class nN{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,N){let E=_.getValue(C6);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,N);return{decision:o.RECORD_AND_SAMPLED}}let K=FN(E);if(K)return{decision:o.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,N);if(z.decision===o.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:o.NOT_RECORD}}toString(){return"DebugSampler"}}class RN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:o.RECORD_AND_SAMPLED};return{decision:o.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var n4=new u6({preventServerStart:!0}),R4=new nN(new RN(T6));var DN=_6.getTracer("studio","1.0.0"),N_=bX.getMeter("studio","1.0.0"),N6=x6.getLogger("studio","1.0.0"),PT=(_,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(" ");N6.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},$T={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{PT(zT.ERROR,"ERROR",_),$T.error(..._)};console.warn=(..._)=>{PT(zT.WARN,"WARN",_),$T.warn(..._)};console.debug=(..._)=>{PT(zT.DEBUG,"DEBUG",_),$T.debug(..._)};var UT,YN=0,JT=500;function K6(){if(UT)return;let _=performance.now()+JT;UT=setInterval(()=>{let x=performance.now();YN=Math.max(0,x-_),_=x+JT},JT),UT.unref?.()}function HN(){return K6(),YN}var z6=()=>N_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),MN=()=>N_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),BN=400,P6=100,$6=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>BN){let T=HN(),C=T>BN/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:p_()}})}if(z6().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function U6(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=p_(),N=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-T;if(MN().record(z,{"db.pool.outcome":N?"contended":"available"}),z>P6)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 MN().record(performance.now()-T,{"db.pool.outcome":"error"}),K})},_}var fN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function ON(){try{return h().databasePgSsl}catch{return!1}}function p_(){try{return h().databasePoolMax}catch{return 10}}function J6(_){let x=U6(new yN({connectionString:_,max:p_(),ssl:ON(),...fN})),u=new GN({pool:x});return{type:"postgres",db:new E6({dialect:u,log:$6(x)}),pool:x}}function E_(){return h().databaseUrl}function AN(_){let x=_||E_();return new GN({pool:new yN({connectionString:x,max:p_(),ssl:ON(),...fN})})}function X6(_){let x=_||E_();return J6(x)}async function SN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===K_)K_=null}var K_=null;function XT(){if(!K_)K_=X6(E_());return K_}async function IN(_){let u={database:AN(_||E_()),plugins:[W6({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),Z6(),L6(),D6(),R6(),n6({loginPage:"/login"}),Q6(),F6({sendMagicLink:async()=>{}}),Y6({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:N}=await j6(u);if(!T.length&&!C.length)return"up to date";return await N(),`${C.length+T.length} table(s) migrated`}async function VN(_,x){return(await a`
1788
+ `;await dX(E,z,{mode:384}),await sX(E,K)}}import{ExportResultCode as TZ}from"@opentelemetry/core";import{AggregationTemporality as KZ,DataPointType as EZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as XZ}from"@opentelemetry/core";var ZZ=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as E4,LoggerProvider as z4}from"@opentelemetry/sdk-logs";import{detectResources as $4,envDetector as U4,hostDetector as J4,osDetector as X4,processDetector as j4,resourceFromAttributes as Q4}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as Z4}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as FZ}from"@opentelemetry/api-logs";import{NodeSDK as F4}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as Y4,SamplingDecision as o}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as nZ}from"@opentelemetry/api";var N6="__d",K6=x6("Current request"),E6=1;var RN=(_)=>{let u=new URL(_.url).searchParams.get(N6);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class YN{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,N){let E=_.getValue(K6);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,N);return{decision:o.RECORD_AND_SAMPLED}}let K=RN(E);if(K)return{decision:o.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,N);if(z.decision===o.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:o.NOT_RECORD}}toString(){return"DebugSampler"}}class HN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:o.RECORD_AND_SAMPLED};return{decision:o.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var M4=new T6({preventServerStart:!0}),n4=new YN(new HN(E6));var FN=m6.getTracer("studio","1.0.0"),N_=u6.getMeter("studio","1.0.0"),z6=C6.getLogger("studio","1.0.0"),$T=(_,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(" ");z6.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},UT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{$T(PT.ERROR,"ERROR",_),UT.error(..._)};console.warn=(..._)=>{$T(PT.WARN,"WARN",_),UT.warn(..._)};console.debug=(..._)=>{$T(PT.DEBUG,"DEBUG",_),UT.debug(..._)};var JT,MN=0,XT=500;function P6(){if(JT)return;let _=performance.now()+XT;JT=setInterval(()=>{let x=performance.now();MN=Math.max(0,x-_),_=x+XT},XT),JT.unref?.()}function nN(){return P6(),MN}var U6=()=>N_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),BN=()=>N_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),GN=400,J6=100,X6=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>GN){let T=nN(),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:p_()}})}if(U6().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function j6(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=p_(),N=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-T;if(BN().record(z,{"db.pool.outcome":N?"contended":"available"}),z>J6)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 BN().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 h().databasePgSsl}catch{return!1}}function p_(){try{return h().databasePoolMax}catch{return 10}}function Q6(_){let x=j6(new fN({connectionString:_,max:p_(),ssl:AN(),...ON})),u=new yN({pool:x});return{type:"postgres",db:new $6({dialect:u,log:X6(x)}),pool:x}}function E_(){return h().databaseUrl}function SN(_){let x=_||E_();return new yN({pool:new fN({connectionString:x,max:p_(),ssl:AN(),...ON})})}function W6(_){let x=_||E_();return Q6(x)}async function IN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===K_)K_=null}var K_=null;function jT(){if(!K_)K_=W6(E_());return K_}async function wN(_){let u={database:SN(_||E_()),plugins:[D6({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),F6(),R6(),Y6(),n6(),M6({loginPage:"/login"}),L6(),H6({sendMagicLink:async()=>{}}),B6({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:N}=await Z6(u);if(!T.length&&!C.length)return"up to date";return await N(),`${C.length+T.length} table(s) migrated`}async function kN(_,x){return(await a`
1789
1789
  SELECT table_name FROM information_schema.tables
1790
1790
  WHERE table_schema='public' AND table_name=${x}
1791
- `.execute(_)).rows.length>0}async function H6(_){if(await VN(_,"plugin_migrations"))return;await a`
1791
+ `.execute(_)).rows.length>0}async function G6(_){if(await kN(_,"plugin_migrations"))return;await a`
1792
1792
  CREATE TABLE plugin_migrations (
1793
1793
  plugin_id TEXT NOT NULL,
1794
1794
  name TEXT NOT NULL,
1795
1795
  timestamp TEXT NOT NULL,
1796
1796
  PRIMARY KEY (plugin_id, name)
1797
1797
  )
1798
- `.execute(_)}async function M6(_){if(!await VN(_,"kysely_migration"))return;let x=await a`
1798
+ `.execute(_)}async function y6(_){if(!await kN(_,"kysely_migration"))return;let x=await a`
1799
1799
  SELECT name, timestamp FROM kysely_migration
1800
1800
  WHERE name LIKE '%/%'
1801
1801
  `.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 a`
@@ -1806,4 +1806,4 @@ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null
1806
1806
  WHERE plugin_id = ${E} AND name = ${K}
1807
1807
  `.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${K}, keeping in old table`);continue}}await a`
1808
1808
  DELETE FROM kysely_migration WHERE name = ${u}
1809
- `.execute(_)}}async function B6(_){await H6(_),await M6(_);let x=new wN({db:_,provider:{getMigrations:()=>Promise.resolve(NT)}}),{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 G6(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await IN();let N=u??XT(),E=async()=>{if(!x&&!u)await SN(N).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await B6(N.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function b4(){let _=XT(),x=new wN({db:_.db,provider:{getMigrations:()=>Promise.resolve(NT)}}),{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 G6(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{B6 as runKyselyMigrations,G6 as migrateToLatest,b4 as migrateDown};
1809
+ `.execute(_)}}async function f6(_){await G6(_),await y6(_);let x=new VN({db:_,provider:{getMigrations:()=>Promise.resolve(KT)}}),{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 O6(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await wN();let N=u??jT(),E=async()=>{if(!x&&!u)await IN(N).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await f6(N.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function u2(){let _=jT(),x=new VN({db:_.db,provider:{getMigrations:()=>Promise.resolve(KT)}}),{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 O6(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{f6 as runKyselyMigrations,O6 as migrateToLatest,u2 as migrateDown};