decocms 4.429.10 → 4.429.12

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 (352) hide show
  1. package/dist/client/assets/{AlertCircle-DKmCApDa.js → AlertCircle-BOwxL-T0.js} +1 -1
  2. package/dist/client/assets/{AreaChart-DIXuz0Cd.js → AreaChart-BlSy5q9v.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-BwFqyUG8.js → ArrowLeft--Xk13dys.js} +1 -1
  4. package/dist/client/assets/{ArrowRight-CHV05UUB.js → ArrowRight-QVOtCDeK.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-BJY8NUma.js → ArrowUp-CBRbx5X7.js} +1 -1
  6. package/dist/client/assets/{CartesianChart-BuoW_-QK.js → CartesianChart-DJ40wDsa.js} +1 -1
  7. package/dist/client/assets/{Check-DNTKbOF1.js → Check-DhBGPxm0.js} +1 -1
  8. package/dist/client/assets/{CheckCircle-Dk8xW2dQ.js → CheckCircle-CiQ-dY25.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-DGldI0Ph.js → ChevronUp-DDAA9oEX.js} +1 -1
  10. package/dist/client/assets/{Copy01-6fj6p2dr.js → Copy01-DUfSR12p.js} +1 -1
  11. package/dist/client/assets/{CreditCard01-BIdq_aTI.js → CreditCard01-n7MEW30m.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-CgKNtAHX.js → DotsVertical-DsRrrMyj.js} +1 -1
  13. package/dist/client/assets/{ErrorBarContext-BBG_EAjz.js → ErrorBarContext-n0lYGsHz.js} +1 -1
  14. package/dist/client/assets/{Image01-0p0qVrVu.js → Image01-DS-Zo0Gm.js} +1 -1
  15. package/dist/client/assets/{Key01-D7BOKCsv.js → Key01-vFFG-8rI.js} +1 -1
  16. package/dist/client/assets/{Line-CJ6HzoSY.js → Line-CL4zLLJX.js} +1 -1
  17. package/dist/client/assets/{Link01-BY6r9e0W.js → Link01-BP9lpuLn.js} +1 -1
  18. package/dist/client/assets/{LinkExternal01-7OpzTzCD.js → LinkExternal01-CCFdzydS.js} +1 -1
  19. package/dist/client/assets/{Monitor01-Wlo-v8rP.js → Monitor01-DA0blIAC.js} +1 -1
  20. package/dist/client/assets/{Palette-DZVSqT20.js → Palette-C9gvXMWp.js} +1 -1
  21. package/dist/client/assets/{Plus-BZ-9hfZe.js → Plus-BSWKCd5K.js} +1 -1
  22. package/dist/client/assets/{SearchMd-CtjLEzGO.js → SearchMd-C7F8eH-A.js} +1 -1
  23. package/dist/client/assets/{Sector-DG2ZMYxc.js → Sector-B54NQH1a.js} +1 -1
  24. package/dist/client/assets/{ShoppingBag01-DznHZPA0.js → ShoppingBag01-BCLkpTfu.js} +1 -1
  25. package/dist/client/assets/{Sun-eXH36H9e.js → Sun-CchZi423.js} +1 -1
  26. package/dist/client/assets/{Tool01-Dk2ye-LU.js → Tool01-DPX939IH.js} +1 -1
  27. package/dist/client/assets/{Trash01-Gu3_9b_o.js → Trash01-CZ3nuubL.js} +1 -1
  28. package/dist/client/assets/{Upload01-uetj4iXc.js → Upload01-DYgjYqa8.js} +1 -1
  29. package/dist/client/assets/{User01-D1mABHDT.js → User01-DWDiZkwz.js} +1 -1
  30. package/dist/client/assets/{UserSquare-lb7I00eF.js → UserSquare-C8IMKAXm.js} +1 -1
  31. package/dist/client/assets/{Users01-CobN2IHd.js → Users01-BoKXzLNT.js} +1 -1
  32. package/dist/client/assets/{X-BdLoi6uz.js → X-CU1GZ1X5.js} +1 -1
  33. package/dist/client/assets/{XAxis-BgPA12lx.js → XAxis-78_nn-Nt.js} +1 -1
  34. package/dist/client/assets/{XClose-C5QcJ6D0.js → XClose-Xd0cbKp3.js} +1 -1
  35. package/dist/client/assets/{ZoomOut-BWkCTBCz.js → ZoomOut-vsOlFjcF.js} +1 -1
  36. package/dist/client/assets/{access-gate-Cey1OqXz.js → access-gate-CnrAV7W5.js} +1 -1
  37. package/dist/client/assets/{add-connection-dialog-1ztWzBZ8.js → add-connection-dialog-niTjx4zk.js} +1 -1
  38. package/dist/client/assets/{agent-analytics-Gt7o_wzT.js → agent-analytics-D7bBQ0dc.js} +1 -1
  39. package/dist/client/assets/agent-app-8h5XBfaC.js +1 -0
  40. package/dist/client/assets/{agent-assets-CuDfZttC.js → agent-assets-DR0QDA__.js} +1 -1
  41. package/dist/client/assets/{agent-automation-CoOBVhBN.js → agent-automation-7uJec9pR.js} +1 -1
  42. package/dist/client/assets/{agent-automations-CO-xugvW.js → agent-automations-DmEelNOL.js} +1 -1
  43. package/dist/client/assets/{agent-connect-sources-Ca8AD8mq.js → agent-connect-sources-uklB0jAg.js} +1 -1
  44. package/dist/client/assets/agent-deck-dChqa9X6.js +1 -0
  45. package/dist/client/assets/{agent-e2e-BK7Euu9m.js → agent-e2e-C9ksGwFi.js} +1 -1
  46. package/dist/client/assets/{agent-experiments-nyAADWuK.js → agent-experiments-C5llZi0N.js} +1 -1
  47. package/dist/client/assets/{agent-file-D-xcqFZI.js → agent-file-BvgAbU_G.js} +1 -1
  48. package/dist/client/assets/{agent-git-BfL9IA4Y.js → agent-git-Cvzmg8-E.js} +1 -1
  49. package/dist/client/assets/{agent-hosting-Dut4cUJc.js → agent-hosting-RuB96PbT.js} +1 -1
  50. package/dist/client/assets/{agent-icon-vRJX06Pc.js → agent-icon-YnSCc57p.js} +1 -1
  51. package/dist/client/assets/agent-library-file-D9zr8DYd.js +1 -0
  52. package/dist/client/assets/agent-library-jPShAvbu.js +1 -0
  53. package/dist/client/assets/{agent-monitor-CviCJRUD.js → agent-monitor-B0PLDZC_.js} +1 -1
  54. package/dist/client/assets/{agent-overview-9muBKyf7.js → agent-overview-Kszn2ucY.js} +1 -1
  55. package/dist/client/assets/agent-settings-BBx7XbXO.js +1 -0
  56. package/dist/client/assets/{agent-site-editor-DRo4ld7V.js → agent-site-editor-BAFJDnEv.js} +1 -1
  57. package/dist/client/assets/agent-site-editor-code-DZYw8Wih.js +2 -0
  58. package/dist/client/assets/{agent-site-editor-content-CqksOsD1.js → agent-site-editor-content-BM7dvQv4.js} +3 -3
  59. package/dist/client/assets/{agent-site-editor-preview-DdNev6__.js → agent-site-editor-preview-BbvEHHKI.js} +3 -3
  60. package/dist/client/assets/agent-view-Co7QqWAu.js +1 -0
  61. package/dist/client/assets/{agent-view-guard-CMm4aT4X.js → agent-view-guard-B6V7cfD1.js} +1 -1
  62. package/dist/client/assets/{agents-list-C2WRI5B_.js → agents-list-uTqVXCj5.js} +1 -1
  63. package/dist/client/assets/{ai-providers-DUEvqOGo.js → ai-providers-7u3-xsAH.js} +1 -1
  64. package/dist/client/assets/{alert-dialog-D1CSBuVt.js → alert-dialog-Dg-UEYR0.js} +1 -1
  65. package/dist/client/assets/{alert-m4enA-72.js → alert-f40qZkxz.js} +1 -1
  66. package/dist/client/assets/{analytics-sections-DWzLfe6K.js → analytics-sections-C28WnDEH.js} +1 -1
  67. package/dist/client/assets/{api-keys-D3W3-bn5.js → api-keys-DetlsFeL.js} +1 -1
  68. package/dist/client/assets/api-keys-fw19DZeC.js +1 -0
  69. package/dist/client/assets/{app-editor-BrO4LSqn.js → app-editor-CWpHZzQm.js} +1 -1
  70. package/dist/client/assets/{asset-utils-Cs-9a-z2.js → asset-utils-BRtd154Z.js} +1 -1
  71. package/dist/client/assets/{auth-oZFMRz6f.js → auth-6_9F-vLF.js} +1 -1
  72. package/dist/client/assets/{auth-catchall-CCf0yXyK.js → auth-catchall-DMXlzhY6.js} +1 -1
  73. package/dist/client/assets/{auth-entry-DcyQGSPS.js → auth-entry-DAIA1rAX.js} +1 -1
  74. package/dist/client/assets/{auth-split-layout-BL2AdBXg.js → auth-split-layout-DJ6TRZ9N.js} +1 -1
  75. package/dist/client/assets/{authenticate-and-persist-oauth-Dz4Ev2mn.js → authenticate-and-persist-oauth-D_fQjtQT.js} +1 -1
  76. package/dist/client/assets/{automation-list-row-vzvjcxcS.js → automation-list-row-BHr-j90h.js} +1 -1
  77. package/dist/client/assets/{automation-runs-Cj0X1wWP.js → automation-runs-CrhsPF9P.js} +1 -1
  78. package/dist/client/assets/{automations-x6-pockc.js → automations-CI3Ti2IC.js} +1 -1
  79. package/dist/client/assets/{autosend-BR-AxRqX.js → autosend-BftSstM1.js} +1 -1
  80. package/dist/client/assets/{avatar-CVyfIjHq.js → avatar-D-gkFe6T.js} +1 -1
  81. package/dist/client/assets/{badge-DKTieZTi.js → badge-BcHbmh2L.js} +1 -1
  82. package/dist/client/assets/{block-document-RyWbjZfD.js → block-document-DCJ30U1Z.js} +1 -1
  83. package/dist/client/assets/{blocks-preview-workspace-context-BGHIo01Y.js → blocks-preview-workspace-context-Clwp6Bmi.js} +1 -1
  84. package/dist/client/assets/{buckets-BRECsjIs.js → buckets-D4IFrBbS.js} +1 -1
  85. package/dist/client/assets/{build-improve-prompt-doc-CGhfAuK4.js → build-improve-prompt-doc-DcE2pifO.js} +1 -1
  86. package/dist/client/assets/{calendar-CxuTxwoq.js → calendar-BBq6y98H.js} +1 -1
  87. package/dist/client/assets/{capability-load-error-N5DqAlNc.js → capability-load-error-D7MJFCZj.js} +1 -1
  88. package/dist/client/assets/{category-editor-1NaveyUf.js → category-editor-BOB9Cbj-.js} +1 -1
  89. package/dist/client/assets/{chart-DFFsotOE.js → chart-BFZBRiWV.js} +1 -1
  90. package/dist/client/assets/{chat-context-CHMvG291.js → chat-context-DOzhwdpr.js} +1 -1
  91. package/dist/client/assets/{chat-draft-2zID_cRw.js → chat-draft-BPbPwvlb.js} +1 -1
  92. package/dist/client/assets/{checkbox-CijMXhyl.js → checkbox-DBzqmJaN.js} +1 -1
  93. package/dist/client/assets/{choose-editor-BIgunT0x.js → choose-editor-CDtJnHbS.js} +1 -1
  94. package/dist/client/assets/{claim-phase-copy-Cf-QyyNw.js → claim-phase-copy-DNVgTO-i.js} +1 -1
  95. package/dist/client/assets/{cli-auth-success-Dyfd46XD.js → cli-auth-success-DdeAm_jJ.js} +1 -1
  96. package/dist/client/assets/{client-icons-C_FQZmqO.js → client-icons-B_F6OVON.js} +1 -1
  97. package/dist/client/assets/{collapsible-CmaYMPSs.js → collapsible-DDrhvpFQ.js} +1 -1
  98. package/dist/client/assets/{collection-detail-CvQdogjL.js → collection-detail-BxMqu9du.js} +1 -1
  99. package/dist/client/assets/{collection-display-button-CJaFMQ5Q.js → collection-display-button-DZ17cDA0.js} +1 -1
  100. package/dist/client/assets/{collection-search-VYsS9TLc.js → collection-search-Bl3ZyM8B.js} +1 -1
  101. package/dist/client/assets/{collection-table-wrapper--hFtmZm7.js → collection-table-wrapper-HyyiPb68.js} +1 -1
  102. package/dist/client/assets/{collection-tabs-AcGOMqBb.js → collection-tabs-D8dvpbZK.js} +1 -1
  103. package/dist/client/assets/{combobox-uLE3dkRC.js → combobox-CY9Ipk24.js} +1 -1
  104. package/dist/client/assets/{command-B3-BMEIX.js → command-SjbDAl9s.js} +1 -1
  105. package/dist/client/assets/{companion-mcps-section-BZIKI587.js → companion-mcps-section-CKNg82MB.js} +1 -1
  106. package/dist/client/assets/{config-DQZquT9x.js → config-CEGQmRUp.js} +1 -1
  107. package/dist/client/assets/{connect-Cf7v5Bzx.js → connect-BOFzmlC2.js} +1 -1
  108. package/dist/client/assets/{connect-layout-BhHjDcvb.js → connect-layout-DfH0Byoj.js} +1 -1
  109. package/dist/client/assets/{connection-Bxp8CJIF.js → connection-DzWV1_h4.js} +1 -1
  110. package/dist/client/assets/{connection-card-GKtXOpG9.js → connection-card-aZdfvEmX.js} +1 -1
  111. package/dist/client/assets/{connection-detail-DUhnrG9K.js → connection-detail-gP4a6Ppj.js} +1 -1
  112. package/dist/client/assets/{connection-form-helpers-my3nU4YI.js → connection-form-helpers-CGHXbRJW.js} +1 -1
  113. package/dist/client/assets/{connections-B0H64xaE.js → connections-C7ymkV4a.js} +1 -1
  114. package/dist/client/assets/{context-DhI4bt3K.js → context-CO-AESlP.js} +1 -1
  115. package/dist/client/assets/{context-menu-D8wMMh_Q.js → context-menu-DnvTw41B.js} +1 -1
  116. package/dist/client/assets/{create-organization-dialog-CUp0pkrl.js → create-organization-dialog-BCe34I2w.js} +1 -1
  117. package/dist/client/assets/{daily-pulse-Cn1ARmzt.js → daily-pulse-BENIKuhB.js} +1 -1
  118. package/dist/client/assets/{decopilot-zV1W4LOx.js → decopilot-FwcDapHu.js} +1 -1
  119. package/dist/client/assets/{dialog-Dlbcts3k.js → dialog-DgvI-2Zs.js} +1 -1
  120. package/dist/client/assets/{discover-DK_xCp7V.js → discover-DTsv-99I.js} +1 -1
  121. package/dist/client/assets/{domain-settings-wtMFvdQc.js → domain-settings-CulTkPtg.js} +1 -1
  122. package/dist/client/assets/{download-app-dialog-eZatHcib.js → download-app-dialog-Do9mk_KB.js} +1 -1
  123. package/dist/client/assets/{drawer-DspCN2Yn.js → drawer-L7JmR21l.js} +1 -1
  124. package/dist/client/assets/{editor-AvxByRxT.js → editor-Be4HUfth.js} +1 -1
  125. package/dist/client/assets/{empty-state-CZAXET6T.js → empty-state-CXZRRy8X.js} +1 -1
  126. package/dist/client/assets/{empty-state-DuvEAg1G.js → empty-state-Cl3s1v-7.js} +1 -1
  127. package/dist/client/assets/{extract-connection-data-Du6rlDFh.js → extract-connection-data-BEoPTe53.js} +1 -1
  128. package/dist/client/assets/{feature-gate-DDoeGDb8.js → feature-gate-C_96j33I.js} +1 -1
  129. package/dist/client/assets/{feature-paywall-CCumYX5V.js → feature-paywall-C2LoJKfX.js} +1 -1
  130. package/dist/client/assets/{file-explorer-CnDhlMyr.js → file-explorer-DkVHdTFP.js} +1 -1
  131. package/dist/client/assets/{file-preview-DNltN574.js → file-preview-Dqden2WW.js} +1 -1
  132. package/dist/client/assets/{file-share-button-C7miXF89.js → file-share-button-Be6JaysV.js} +1 -1
  133. package/dist/client/assets/{file-type-icon-BYKr6xB1.js → file-type-icon-Crn_LS8y.js} +1 -1
  134. package/dist/client/assets/flat-project-BuqKj-tF.js +1 -0
  135. package/dist/client/assets/{folder-icon-jYk3JQng.js → folder-icon-C0Ke7mgQ.js} +1 -1
  136. package/dist/client/assets/{form-iuvY0qFv.js → form-D1W3w80w.js} +1 -1
  137. package/dist/client/assets/{gateway-client-C_0iBipI.js → gateway-client-_adliKhE.js} +1 -1
  138. package/dist/client/assets/{general-Be31QF3E.js → general-Cr9Padc3.js} +1 -1
  139. package/dist/client/assets/{home-DN7k7NzJ.js → home-BwWvnWRs.js} +1 -1
  140. package/dist/client/assets/{icon-button-CAsMR7wt.js → icon-button-BFX4I_jl.js} +1 -1
  141. package/dist/client/assets/{index-BonzOgjL.js → index-79vkmu48.js} +1 -1
  142. package/dist/client/assets/{index-EKW9WLpv.js → index-BREpCEqw.js} +1 -1
  143. package/dist/client/assets/{index-4xsRRDQ0.js → index-BY5wxYf5.js} +1 -1
  144. package/dist/client/assets/{index-Du_VeRVE.js → index-BawH6u0S.js} +1 -1
  145. package/dist/client/assets/{index-DABxIqAx.js → index-BnXZbm1V.js} +1 -1
  146. package/dist/client/assets/{index-DE0-9ECf.js → index-BvfbkU67.js} +3 -3
  147. package/dist/client/assets/{index-BHW38fGm.js → index-BxwPpzfc.js} +2 -2
  148. package/dist/client/assets/{index-Cpvm6arG.js → index-C1Z09kwU.js} +1 -1
  149. package/dist/client/assets/{index-t_eDpwK9.js → index-CGSyOEav.js} +1 -1
  150. package/dist/client/assets/{index-Dv3h3cqm.js → index-CKq354Gz.js} +1 -1
  151. package/dist/client/assets/{index-CckhdqK3.js → index-CWKfJw5W.js} +1 -1
  152. package/dist/client/assets/{index-CIf44JW3.js → index-CWxpNcea.js} +1 -1
  153. package/dist/client/assets/{index-vOT5DJhb.js → index-C_0dOsSh.js} +1 -1
  154. package/dist/client/assets/{index-ChE2ezk7.js → index-LZ2q4_jb.js} +1 -1
  155. package/dist/client/assets/{index-CtqgTxfG.js → index-bKokiIqp.js} +1 -1
  156. package/dist/client/assets/{index-redirect-DrJRfytP.js → index-redirect-BwQqe2rU.js} +1 -1
  157. package/dist/client/assets/{infiniteQueryObserver-C4v_Tvdc.js → infiniteQueryObserver-BTaa8yCU.js} +1 -1
  158. package/dist/client/assets/{infra-billing-VbIz9yIS.js → infra-billing-CNEfX-kf.js} +1 -1
  159. package/dist/client/assets/{input-Dtm4W-QI.js → input-BBXpSU6d.js} +3 -3
  160. package/dist/client/assets/{input-Bgau-d45.js → input-NQyNf1V0.js} +1 -1
  161. package/dist/client/assets/{input-DPbtX44w.js → input-nBm7K2le.js} +1 -1
  162. package/dist/client/assets/{integration-icon-C8GyVZME.js → integration-icon-Bp8juFay.js} +1 -1
  163. package/dist/client/assets/{label-BHCiWeM9.js → label-DMupX0MC.js} +1 -1
  164. package/dist/client/assets/{last-preview-page-CZQ-9qtW.js → last-preview-page-CW4w9X44.js} +1 -1
  165. package/dist/client/assets/{layout-V7H1wMvJ.js → layout-3HrKrvcZ.js} +1 -1
  166. package/dist/client/assets/{legacy-agents-deep-GOrA2Nmb.js → legacy-agents-deep-DXziKfMc.js} +1 -1
  167. package/dist/client/assets/{legacy-main-redirect-yNAuK_Xl.js → legacy-main-redirect-Dj-C6gBV.js} +1 -1
  168. package/dist/client/assets/library-Blfnwq13.js +1 -0
  169. package/dist/client/assets/{library-tab-D6ZlaAwG.js → library-tab-VyiT_ivs.js} +1 -1
  170. package/dist/client/assets/{login-ClvQ5CFn.js → login-BQj2QHBZ.js} +1 -1
  171. package/dist/client/assets/{markdown-D2cGXSVI.js → markdown-BfzNG-M7.js} +1 -1
  172. package/dist/client/assets/{mcp-app-renderer-CG-JWdEV.js → mcp-app-renderer-BlvZoL7J.js} +1 -1
  173. package/dist/client/assets/{mcp-oauth-DtCcr-SV.js → mcp-oauth-DUBYed0Q.js} +1 -1
  174. package/dist/client/assets/{members-CO5ga5kN.js → members-CQ5MUNDU.js} +1 -1
  175. package/dist/client/assets/{message-templates-DxEMICkA.js → message-templates-DDGZ91yT.js} +1 -1
  176. package/dist/client/assets/{mini-report-page-PQj3eFhR.js → mini-report-page-CITETdCk.js} +1 -1
  177. package/dist/client/assets/{mock-board-hewQy5Jn.js → mock-board-Bvvn1Unj.js} +1 -1
  178. package/dist/client/assets/{monaco-editor-DzZjrazj.js → monaco-editor-RbYzn9g4.js} +1 -1
  179. package/dist/client/assets/{monitoring-stats-row-GGwy01IS.js → monitoring-stats-row-cHn_kslF.js} +1 -1
  180. package/dist/client/assets/{multi-select-CjR3J1AB.js → multi-select-6Y9s_75i.js} +1 -1
  181. package/dist/client/assets/{mustache-DM5IbMl5.js → mustache-D909vgLx.js} +1 -1
  182. package/dist/client/assets/{new-project-dialog-CNtRe0-Y.js → new-project-dialog-dnrpTCul.js} +1 -1
  183. package/dist/client/assets/{oauth-callback-B1YQQR4V.js → oauth-callback-TljmZb0H.js} +1 -1
  184. package/dist/client/assets/{oauth-callback-ai-provider-BIoknp12.js → oauth-callback-ai-provider-vM715HU3.js} +1 -1
  185. package/dist/client/assets/{onboarding-C4RJxyrL.js → onboarding-suADGN1V.js} +1 -1
  186. package/dist/client/assets/{openai-conversation-C0Q_JdxR.js → openai-conversation-ChbweCK7.js} +1 -1
  187. package/dist/client/assets/{optimistic-project-sidebar-views-CPz7V3PC.js → optimistic-project-sidebar-views-CGJt_ui_.js} +1 -1
  188. package/dist/client/assets/{org-file-open-context-UWr7N1Z6.js → org-file-open-context-yUuJsknK.js} +1 -1
  189. package/dist/client/assets/{organization-choice-hd0X96eE.js → organization-choice-CKK-FBaz.js} +1 -1
  190. package/dist/client/assets/{orgs-cTxDbxPG.js → orgs-CQA3dd0_.js} +1 -1
  191. package/dist/client/assets/{page-seo-form-UZBab-aN.js → page-seo-form-CteqMz9Y.js} +1 -1
  192. package/dist/client/assets/{pair-CZInYVHx.js → pair-BJWYd3Ae.js} +1 -1
  193. package/dist/client/assets/{plan-ladder-DKLtAA-T.js → plan-ladder-DXQDkWeB.js} +1 -1
  194. package/dist/client/assets/{popover-BSszguOU.js → popover-BALocaPm.js} +1 -1
  195. package/dist/client/assets/{post-calendar-2XlrWH-t.js → post-calendar-iaP-Undm.js} +1 -1
  196. package/dist/client/assets/{post-editor-jcqkk7um.js → post-editor-D94NY3gF.js} +1 -1
  197. package/dist/client/assets/{preview-content-BTNwFllc.js → preview-content-DE4AvV3Q.js} +1 -1
  198. package/dist/client/assets/{preview-dialog--VxiYPfE.js → preview-dialog-vo9ewLq0.js} +1 -1
  199. package/dist/client/assets/{profile-BGHQuceX.js → profile-CyF0DFf9.js} +1 -1
  200. package/dist/client/assets/{project-app-view-Ca7TdLgY.js → project-app-view-Cn14MWtC.js} +1 -1
  201. package/dist/client/assets/{project-feed-Dj2xUGdB.js → project-feed-Bziqygll.js} +1 -1
  202. package/dist/client/assets/{project-icon-CEvmcihT.js → project-icon-5V7fnedA.js} +1 -1
  203. package/dist/client/assets/project-reports-BoCTh-2L.js +1 -0
  204. package/dist/client/assets/project-tasks-ChcXdzdR.js +1 -0
  205. package/dist/client/assets/{projects-DVM1GvN-.js → projects-DpobvjHj.js} +1 -1
  206. package/dist/client/assets/{projects-empty-state-OJ8FQpgE.js → projects-empty-state-DZQPXc3C.js} +1 -1
  207. package/dist/client/assets/{prompts-B1WNDS5-.js → prompts-C4qnzJoL.js} +1 -1
  208. package/dist/client/assets/record-editor-BiogRhDE.js +1 -0
  209. package/dist/client/assets/{redirect-editor-D8l9UTlG.js → redirect-editor-BZeBf9L5.js} +1 -1
  210. package/dist/client/assets/{reports-Dlh0FA1v.js → reports-BFuqIlD9.js} +1 -1
  211. package/dist/client/assets/reports-djwYXGfq.js +1 -0
  212. package/dist/client/assets/{reports-onboarding-C0v_SWM2.js → reports-onboarding-cyytqhjL.js} +1 -1
  213. package/dist/client/assets/{reports-tab-BtxDljzK.js → reports-tab-U8P8Ufm3.js} +2 -2
  214. package/dist/client/assets/{repositories-BHtWIvsV.js → repositories-BIp8Q69k.js} +1 -1
  215. package/dist/client/assets/{repository-binding-BT7w56g8.js → repository-binding-BpUKRc_C.js} +1 -1
  216. package/dist/client/assets/{repository-import-picker-BvwCcqd0.js → repository-import-picker-HM6WgTNW.js} +1 -1
  217. package/dist/client/assets/{repository-picker-WnaJ3OBj.js → repository-picker-B0I3Du2Y.js} +1 -1
  218. package/dist/client/assets/{require-capability-D0xfatZe.js → require-capability-qrb_Y3VU.js} +1 -1
  219. package/dist/client/assets/{required-auth-layout-oADKB4ry.js → required-auth-layout-Vrx1VADX.js} +1 -1
  220. package/dist/client/assets/{reset-password-Dio__1ur.js → reset-password-B3kJ0l7d.js} +1 -1
  221. package/dist/client/assets/{resizable-BNj764ip.js → resizable-C6oGLb2k.js} +1 -1
  222. package/dist/client/assets/{resolve-tab-icon-xbN42Afa.js → resolve-tab-icon-C65j0_Xh.js} +1 -1
  223. package/dist/client/assets/{review-settings-LtoHVq4j.js → review-settings-cXd8a-kI.js} +1 -1
  224. package/dist/client/assets/{rich-text-link-control-CU6p-_ze.js → rich-text-link-control-B16tsLBG.js} +1 -1
  225. package/dist/client/assets/{roles-D2prme-T.js → roles-ImxyPKbP.js} +1 -1
  226. package/dist/client/assets/{route-BTaie41e.js → route-5uAGSY9o.js} +1 -1
  227. package/dist/client/assets/route-C7FL9yik.js +1 -0
  228. package/dist/client/assets/{route-CxrJTCMU.js → route-alZLJp72.js} +1 -1
  229. package/dist/client/assets/{runnable-block-editor-LWTXtTvm.js → runnable-block-editor-BYrU5Yi-.js} +1 -1
  230. package/dist/client/assets/{sandbox-lifecycle-context-2SHs2v83.js → sandbox-lifecycle-context-CX1voOln.js} +1 -1
  231. package/dist/client/assets/{schema-HLNkH6Wb.js → schema-DpbNyGSF.js} +1 -1
  232. package/dist/client/assets/{scroll-area-DKRRTLu0.js → scroll-area-NvsVU-Kn.js} +1 -1
  233. package/dist/client/assets/{search-input-BHYasbw5.js → search-input-DlZNe3FK.js} +1 -1
  234. package/dist/client/assets/{search-toggle-BQKj1zgn.js → search-toggle-DlqQyo1N.js} +1 -1
  235. package/dist/client/assets/{secret-picker-RqDX5vq4.js → secret-picker-rsuRzV5y.js} +1 -1
  236. package/dist/client/assets/{secrets-uW3Eg9z0.js → secrets-BaPHDsCi.js} +1 -1
  237. package/dist/client/assets/{sections-editor-BktUgYu2.js → sections-editor-DIwbi9HD.js} +1 -1
  238. package/dist/client/assets/{select-D-HKKCDO.js → select-H-CMPEfp.js} +1 -1
  239. package/dist/client/assets/{select-model-BEjnrAnQ.js → select-model-D7T_1xkH.js} +1 -1
  240. package/dist/client/assets/{seo-editor-ClLbbOJB.js → seo-editor-C76zkhdR.js} +1 -1
  241. package/dist/client/assets/{separator-CzRdsgWL.js → separator-BhnG3Zam.js} +1 -1
  242. package/dist/client/assets/{settings-tab-DPXMGLLf.js → settings-tab-DY1XWIgQ.js} +1 -1
  243. package/dist/client/assets/{sheet-BUa8giCx.js → sheet-0Y4Ip4h-.js} +1 -1
  244. package/dist/client/assets/{shell-layout-C1uyapYT.js → shell-layout-EY5Uf4Cb.js} +1 -1
  245. package/dist/client/assets/{skills-DsfyBgy9.js → skills-CkFU7kfv.js} +1 -1
  246. package/dist/client/assets/{sso-vpLekJCG.js → sso-BaXLM5kr.js} +1 -1
  247. package/dist/client/assets/{suggestion--qxJAqqv.js → suggestion-3pWjGFX4.js} +1 -1
  248. package/dist/client/assets/{switch-Bb9pIsgz.js → switch-cah4KvTn.js} +1 -1
  249. package/dist/client/assets/{synced-repos-DviEZ_Mw.js → synced-repos-CsD0zRNl.js} +1 -1
  250. package/dist/client/assets/{tab-icon-glyph-C74gExPD.js → tab-icon-glyph-2AEFbZQS.js} +1 -1
  251. package/dist/client/assets/{table-Cfz5hCc5.js → table-zx0VDWe3.js} +1 -1
  252. package/dist/client/assets/{tabs-ocmvOnqQ.js → tabs-Cov1OGsb.js} +1 -1
  253. package/dist/client/assets/{task-board-CV8L72bN.js → task-board-DxDhloMI.js} +1 -1
  254. package/dist/client/assets/{task-route-Ou0nHr59.js → task-route-DhhrTB8S.js} +1 -1
  255. package/dist/client/assets/{task-status-BfR7W4Fk.js → task-status-Ci8XY2sr.js} +1 -1
  256. package/dist/client/assets/{taskboard-analytics-k3X2sZNx.js → taskboard-analytics-2Uax0_4t.js} +1 -1
  257. package/dist/client/assets/{tasks-BYskW7rM.js → tasks-3x9jGwMl.js} +1 -1
  258. package/dist/client/assets/tasks-CuWlgQNm.js +1 -0
  259. package/dist/client/assets/{textarea-ah6ZJJWF.js → textarea-BoayKLnG.js} +1 -1
  260. package/dist/client/assets/{thread-analytics-BV7N5Ioq.js → thread-analytics-D_Db_c5X.js} +1 -1
  261. package/dist/client/assets/{thread-intent-DVeAqXLf.js → thread-intent-xuarXzDX.js} +1 -1
  262. package/dist/client/assets/{thread-route-D8LjpvTD.js → thread-route-BKSG8n_B.js} +1 -1
  263. package/dist/client/assets/{thread-route-CyO6ijat.js → thread-route-BRmoi6cr.js} +1 -1
  264. package/dist/client/assets/{thread-sheet-body-BON5_bQt.js → thread-sheet-body-C04R8Nc9.js} +1 -1
  265. package/dist/client/assets/{toggle-group-DE4I1qS9.js → toggle-group-BWSm-Aff.js} +1 -1
  266. package/dist/client/assets/{toolbar-icon-button-DxlBQUA0.js → toolbar-icon-button-3wN5okP4.js} +1 -1
  267. package/dist/client/assets/{tooltip-PjEixjdK.js → tooltip-CaxLgEiD.js} +1 -1
  268. package/dist/client/assets/{track-BLVj1ZUT.js → track-BOEwfPTQ.js} +1 -1
  269. package/dist/client/assets/{types-CPdp5CPi.js → types-DwqswVGG.js} +1 -1
  270. package/dist/client/assets/{usage-stats-Cfj19dMy.js → usage-stats-D2C_YJGd.js} +1 -1
  271. package/dist/client/assets/{use-ai-providers-D89dN8IX.js → use-ai-providers-DhvGPgkO.js} +1 -1
  272. package/dist/client/assets/{use-automations-CeEadf4K.js → use-automations-DNdjj0K7.js} +1 -1
  273. package/dist/client/assets/{use-autosave-CBseprgx.js → use-autosave-DRiTDo3a.js} +1 -1
  274. package/dist/client/assets/{use-chat-layout-state-Do-NwJXn.js → use-chat-layout-state-CWK-9l4_.js} +1 -1
  275. package/dist/client/assets/{use-connect-companion-38CXwgKO.js → use-connect-companion-C7lHLg5T.js} +1 -1
  276. package/dist/client/assets/{use-connection-Dv9IwOJe.js → use-connection-DzY6Wffn.js} +1 -1
  277. package/dist/client/assets/{use-copy-DJcJjSfR.js → use-copy-CUDMsdQy.js} +1 -1
  278. package/dist/client/assets/{use-create-virtual-mcp-pS0pWpnu.js → use-create-virtual-mcp-Diy3bwh3.js} +1 -1
  279. package/dist/client/assets/{use-date-fns-locale-BS-G9k3y.js → use-date-fns-locale-BoWRbrIL.js} +1 -1
  280. package/dist/client/assets/{use-debounced-autosave-CcAIWC5r.js → use-debounced-autosave-C2NnQuRI.js} +1 -1
  281. package/dist/client/assets/{use-debounced-value-BmJwJfAX.js → use-debounced-value-D5IO3_vn.js} +1 -1
  282. package/dist/client/assets/{use-deco-credits-DVM8T-vX.js → use-deco-credits-3gVTPFwf.js} +1 -1
  283. package/dist/client/assets/{use-decopilot-events-Dz3T4koV.js → use-decopilot-events-B5BcpNUU.js} +1 -1
  284. package/dist/client/assets/{use-delete-connection-BA2uXHip.js → use-delete-connection-DIxRBe8c.js} +1 -1
  285. package/dist/client/assets/{use-deployment-admin-eFdraYGL.js → use-deployment-admin-B7yzmrHQ.js} +1 -1
  286. package/dist/client/assets/{use-fast-preview-draft-url-DftYyPUL.js → use-fast-preview-draft-url-Bx7iga5n.js} +1 -1
  287. package/dist/client/assets/{use-file-configs-CYpkv-K6.js → use-file-configs-SfDJl4-5.js} +1 -1
  288. package/dist/client/assets/{use-infinite-scroll-DRg5D3Ci.js → use-infinite-scroll-CmfDRbkB.js} +1 -1
  289. package/dist/client/assets/{use-join-requests-BcHXx_vJ.js → use-join-requests-BfcSGbKn.js} +1 -1
  290. package/dist/client/assets/{use-main-panel-tabs-DFEF_AsU.js → use-main-panel-tabs-CH-ZgEHC.js} +1 -1
  291. package/dist/client/assets/{use-mcp-auth-status-CU2sLwi7.js → use-mcp-auth-status-BwTk8ov8.js} +1 -1
  292. package/dist/client/assets/{use-mcp-client-BXMLDsCy.js → use-mcp-client-D2Vi6MSe.js} +1 -1
  293. package/dist/client/assets/{use-mcp-prompts-BeUMXZG4.js → use-mcp-prompts-Dsk8zc6x.js} +1 -1
  294. package/dist/client/assets/{use-mcp-tools-CzIY_sDu.js → use-mcp-tools-t8ImMobR.js} +1 -1
  295. package/dist/client/assets/{use-members-CqgWLfoS.js → use-members-HxuYvZQQ.js} +1 -1
  296. package/dist/client/assets/{use-mobile-DIdf1Sl6.js → use-mobile-Z8zmt-sr.js} +1 -1
  297. package/dist/client/assets/{use-navigate-to-agent-w4dyiPcQ.js → use-navigate-to-agent-u-7ZqLSa.js} +1 -1
  298. package/dist/client/assets/use-new-blocks-editor-DEKKTguS.js +1 -0
  299. package/dist/client/assets/{use-open-billing-url-D8WOGdFe.js → use-open-billing-url-DYBLUZF6.js} +1 -1
  300. package/dist/client/assets/{use-org-auth-client-CPcci4x9.js → use-org-auth-client-BcEY5fn7.js} +1 -1
  301. package/dist/client/assets/{use-org-fs-DGDwjtxZ.js → use-org-fs-CRET0y9_.js} +1 -1
  302. package/dist/client/assets/{use-org-repo-syncs-BO-YlCPV.js → use-org-repo-syncs-DBweStUK.js} +1 -1
  303. package/dist/client/assets/{use-org-sso-Cccoz5_e.js → use-org-sso-B400YEW3.js} +1 -1
  304. package/dist/client/assets/{use-organization-roles-7OfC34Y2.js → use-organization-roles-CkbMvTBg.js} +1 -1
  305. package/dist/client/assets/{use-organization-settings-DrCEGV8b.js → use-organization-settings-CTmRGpkm.js} +1 -1
  306. package/dist/client/assets/{use-panel-navigate-Cz0Mqgtu.js → use-panel-navigate-Be-d6xJA.js} +1 -1
  307. package/dist/client/assets/{use-project-scope-BVOC74Pv.js → use-project-scope-4MlwSqdG.js} +1 -1
  308. package/dist/client/assets/{use-releases-CenNp5C8.js → use-releases-Di9mNGFg.js} +1 -1
  309. package/dist/client/assets/{use-reports-diagnostic-CrsbISH4.js → use-reports-diagnostic-CAyYm5Yn.js} +1 -1
  310. package/dist/client/assets/{use-secrets-Ewd87uQe.js → use-secrets-OHStlmE1.js} +1 -1
  311. package/dist/client/assets/{use-section-preview-base-DLJ0mf7i.js → use-section-preview-base-BS-fSaiL.js} +1 -1
  312. package/dist/client/assets/{use-session-runtime-CP-CHF9M.js → use-session-runtime-CQM0Tgz5.js} +1 -1
  313. package/dist/client/assets/{use-tags-CiSSC1Zw.js → use-tags-k-j1MKu7.js} +1 -1
  314. package/dist/client/assets/{use-task-board-analytics-DQ9orTZ3.js → use-task-board-analytics-Ct8VWGGM.js} +1 -1
  315. package/dist/client/assets/{use-task-board-events-S4eOT-Db.js → use-task-board-events-BSyBXJLh.js} +1 -1
  316. package/dist/client/assets/{use-task-metadata-Y6hbPlVY.js → use-task-metadata-uO8X_9rP.js} +1 -1
  317. package/dist/client/assets/{use-thread-analytics-mI_QslnV.js → use-thread-analytics-l3xCKBoV.js} +1 -1
  318. package/dist/client/assets/{use-thread-outputs-D36c0oXJ.js → use-thread-outputs-D_xjObSL.js} +1 -1
  319. package/dist/client/assets/useInfiniteQuery-DFC-JWIp.js +1 -0
  320. package/dist/client/assets/{useQueries-JvyAIObw.js → useQueries-CKfCqicH.js} +1 -1
  321. package/dist/client/assets/useSuspenseInfiniteQuery-CxAP_wIY.js +1 -0
  322. package/dist/client/assets/{users-a6pfGwXa.js → users-D9QZPizB.js} +1 -1
  323. package/dist/client/assets/{utils-7K5OBDxA.js → utils-CUJUfA75.js} +1 -1
  324. package/dist/client/assets/{variant-calendar-CC6Z4TJm.js → variant-calendar-X84oV1kq.js} +1 -1
  325. package/dist/client/assets/{variant-matcher-override-B0LIaNEX.js → variant-matcher-override-DK87sHdK.js} +1 -1
  326. package/dist/client/assets/{view-mode-toggle-CR4yGwhs.js → view-mode-toggle-vq_eeWBG.js} +1 -1
  327. package/dist/client/assets/{virtual-mcp-Bjm883Pp.js → virtual-mcp-NnbBE1iC.js} +1 -1
  328. package/dist/client/index.html +1 -1
  329. package/dist/server/cli.js +565 -565
  330. package/dist/server/migrate-dbos.js +2 -2
  331. package/dist/server/migrate.js +31 -31
  332. package/dist/server/server.js +307 -307
  333. package/package.json +1 -1
  334. package/dist/client/assets/agent-app-Dbe-7vgH.js +0 -1
  335. package/dist/client/assets/agent-deck-CSLkMaif.js +0 -1
  336. package/dist/client/assets/agent-library-ZvK_jjQF.js +0 -1
  337. package/dist/client/assets/agent-library-file-54TS4_RN.js +0 -1
  338. package/dist/client/assets/agent-settings-BAsOnUPJ.js +0 -1
  339. package/dist/client/assets/agent-site-editor-code-BdzLMsuB.js +0 -2
  340. package/dist/client/assets/agent-view-CLQ9a3Xs.js +0 -1
  341. package/dist/client/assets/api-keys-DXx_tj2n.js +0 -1
  342. package/dist/client/assets/flat-project-DCpSTtn-.js +0 -1
  343. package/dist/client/assets/library-CbAjcyVz.js +0 -1
  344. package/dist/client/assets/project-reports-CBenIcsf.js +0 -1
  345. package/dist/client/assets/project-tasks-CEyu6nsw.js +0 -1
  346. package/dist/client/assets/record-editor-BjakPc8B.js +0 -1
  347. package/dist/client/assets/reports-CPtD3Fqy.js +0 -1
  348. package/dist/client/assets/route-C60qUrLW.js +0 -1
  349. package/dist/client/assets/tasks-BU2rWe18.js +0 -1
  350. package/dist/client/assets/use-new-blocks-editor-Cf8IZn6F.js +0 -1
  351. package/dist/client/assets/useInfiniteQuery-C-pCSug8.js +0 -1
  352. package/dist/client/assets/useSuspenseInfiniteQuery-BJb93R4Z.js +0 -1
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null,x)}var m=(_,x)=>{for(var u in x)GN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:fN.bind(x,u)})};import{Migrator as MN,sql as l}from"kysely";var a_={};m(a_,{up:()=>ON,down:()=>SN});import{sql as eT}from"kysely";async function ON(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",eT`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",eT`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function SN(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var r_={};m(r_,{up:()=>AN,down:()=>nN});import{sql as v}from"kysely";async function AN(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await v`ALTER TABLE organization_settings
2
+ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null,x)}var m=(_,x)=>{for(var u in x)GN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:fN.bind(x,u)})};import{Migrator as MN,sql as l}from"kysely";var a_={};m(a_,{up:()=>ON,down:()=>SN});import{sql as eT}from"kysely";async function ON(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",eT`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",eT`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function SN(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var r_={};m(r_,{up:()=>AN,down:()=>IN});import{sql as v}from"kysely";async function AN(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await v`ALTER TABLE organization_settings
3
3
  DROP COLUMN IF EXISTS registry_config,
4
4
  DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await v`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
5
5
  BEGIN RETURN value::jsonb;
@@ -14,7 +14,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
14
14
  )`.execute(_),await v`DELETE FROM connections
15
15
  WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
16
16
  OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
17
- OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function nN(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var e_={};m(e_,{up:()=>IN,down:()=>wN});import{sql as lT}from"kysely";async function IN(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await lT`
17
+ OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function IN(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var e_={};m(e_,{up:()=>nN,down:()=>wN});import{sql as lT}from"kysely";async function nN(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await lT`
18
18
  select organization_id, metadata
19
19
  from connections
20
20
  where connection_type = 'VIRTUAL'
@@ -238,7 +238,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
238
238
  );
239
239
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
240
240
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
241
- `.execute(_)}async function fE(_){await _.schema.dropTable("github_connect_flows").execute()}var Fx={};m(Fx,{up:()=>OE,down:()=>SE});async function OE(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function SE(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Rx={};m(Rx,{up:()=>AE,down:()=>nE});import{sql as Z_}from"kysely";async function AE(_){await Z_`
241
+ `.execute(_)}async function fE(_){await _.schema.dropTable("github_connect_flows").execute()}var Fx={};m(Fx,{up:()=>OE,down:()=>SE});async function OE(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function SE(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Rx={};m(Rx,{up:()=>AE,down:()=>IE});import{sql as Z_}from"kysely";async function AE(_){await Z_`
242
242
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
243
243
  DECLARE
244
244
  metadata_json jsonb;
@@ -294,7 +294,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
294
294
  FROM repositories r WHERE s.repository_id IS NULL
295
295
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
296
296
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
297
- `.execute(_)}async function nE(_){await Z_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await Z_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Yx={};m(Yx,{up:()=>IE,down:()=>wE});import{sql as y}from"kysely";async function IE(_){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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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(y`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(y`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(y`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(y`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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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 wE(_){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 Hx={};m(Hx,{up:()=>VE,down:()=>kE});import{sql as TK}from"kysely";async function VE(_){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(TK`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(TK`CURRENT_TIMESTAMP`)).execute()}async function kE(_){await _.schema.dropTable("organization_settings").execute()}var Mx={};m(Mx,{up:()=>pE,down:()=>vE});async function pE(_){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 vE(_){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 Bx={};m(Bx,{up:()=>gE,down:()=>qE});async function gE(_){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 qE(_){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 Gx={};m(Gx,{up:()=>iE,down:()=>tE});async function iE(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function tE(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var yx={};m(yx,{up:()=>hE,down:()=>oE});import{sql as cE}from"kysely";async function hE(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",cE`text`).execute()}async function oE(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var fx={};m(fx,{up:()=>aE,down:()=>rE});async function aE(_){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 rE(_){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 Ox={};m(Ox,{up:()=>eE,down:()=>lE});import{sql as __}from"kysely";async function eE(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function lE(_){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 Sx={};m(Sx,{up:()=>sE,down:()=>bE});import{sql as dE}from"kysely";async function sE(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function bE(_){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(dE`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 Ax={};m(Ax,{up:()=>_z,down:()=>xz});import{sql as W_}from"kysely";async function _z(_){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(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 _.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(W_`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 W_`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 xz(_){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 nx={};m(nx,{up:()=>uz,down:()=>mz});async function uz(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function mz(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Ix={};m(Ix,{up:()=>Cz,down:()=>Tz});import{sql as D_}from"kysely";async function Cz(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await D_`
297
+ `.execute(_)}async function IE(_){await Z_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await Z_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Yx={};m(Yx,{up:()=>nE,down:()=>wE});import{sql as y}from"kysely";async function nE(_){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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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(y`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(y`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(y`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(y`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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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 wE(_){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 Hx={};m(Hx,{up:()=>VE,down:()=>kE});import{sql as TK}from"kysely";async function VE(_){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(TK`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(TK`CURRENT_TIMESTAMP`)).execute()}async function kE(_){await _.schema.dropTable("organization_settings").execute()}var Mx={};m(Mx,{up:()=>pE,down:()=>vE});async function pE(_){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 vE(_){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 Bx={};m(Bx,{up:()=>gE,down:()=>qE});async function gE(_){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 qE(_){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 Gx={};m(Gx,{up:()=>iE,down:()=>tE});async function iE(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function tE(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var yx={};m(yx,{up:()=>hE,down:()=>oE});import{sql as cE}from"kysely";async function hE(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",cE`text`).execute()}async function oE(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var fx={};m(fx,{up:()=>aE,down:()=>rE});async function aE(_){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 rE(_){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 Ox={};m(Ox,{up:()=>eE,down:()=>lE});import{sql as __}from"kysely";async function eE(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function lE(_){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 Sx={};m(Sx,{up:()=>sE,down:()=>bE});import{sql as dE}from"kysely";async function sE(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function bE(_){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(dE`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 Ax={};m(Ax,{up:()=>_z,down:()=>xz});import{sql as W_}from"kysely";async function _z(_){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(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 _.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(W_`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 W_`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 xz(_){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 Ix={};m(Ix,{up:()=>uz,down:()=>mz});async function uz(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function mz(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var nx={};m(nx,{up:()=>Cz,down:()=>Tz});import{sql as D_}from"kysely";async function Cz(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await D_`
298
298
  UPDATE gateways
299
299
  SET tool_selection_mode = CASE
300
300
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
@@ -373,7 +373,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
373
373
  created_at, updated_at, created_by, NULL, 'inclusion'
374
374
  FROM connections
375
375
  WHERE connection_type = 'VIRTUAL'
376
- `.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 ax={};m(ax,{up:()=>Sz,down:()=>Az});async function Sz(_){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 Az(_){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 rx={};m(rx,{up:()=>nz,down:()=>Iz});import{sql as f}from"kysely";async function nz(_){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(f`CURRENT_TIMESTAMP`)).execute(),await f`
376
+ `.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 ax={};m(ax,{up:()=>Sz,down:()=>Az});async function Sz(_){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 Az(_){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 rx={};m(rx,{up:()=>Iz,down:()=>nz});import{sql as f}from"kysely";async function Iz(_){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(f`CURRENT_TIMESTAMP`)).execute(),await f`
377
377
  INSERT INTO connection_aggregations_new (
378
378
  id, parent_connection_id, child_connection_id,
379
379
  selected_tools, selected_resources, selected_prompts, created_at
@@ -382,7 +382,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
382
382
  id, parent_connection_id, child_connection_id,
383
383
  selected_tools, selected_resources, selected_prompts, created_at
384
384
  FROM connection_aggregations
385
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await f`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await f`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await f`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 Iz(_){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(f`CURRENT_TIMESTAMP`)).execute(),await f`
385
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await f`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await f`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await f`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 nz(_){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(f`CURRENT_TIMESTAMP`)).execute(),await f`
386
386
  INSERT INTO connection_aggregations_new (
387
387
  id, parent_connection_id, child_connection_id,
388
388
  selected_tools, selected_resources, selected_prompts, created_at
@@ -456,7 +456,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
456
456
  updated_at = CURRENT_TIMESTAMP
457
457
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
458
458
  AND app_name = 'deco-registry'
459
- `.execute(_)}var Nu={};m(Nu,{up:()=>K0,down:()=>N0});import{sql as T0}from"kysely";async function K0(_){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(T0`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 N0(_){await _.schema.dropTable("ai_provider_keys").execute()}var Eu={};m(Eu,{up:()=>z0,down:()=>P0});import{sql as E0}from"kysely";async function z0(_){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(E0`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function P0(_){await _.schema.dropTable("oauth_pkce_states").execute()}var zu={};m(zu,{up:()=>$0,down:()=>U0});import{sql as n}from"kysely";async function $0(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(n`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(n`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n`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(n`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(n`CURRENT_TIMESTAMP`)).execute(),await n`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await n`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await n`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 U0(_){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 Pu={};m(Pu,{up:()=>X0,down:()=>j0});async function X0(_){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 j0(_){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 $u={};m($u,{up:()=>J0,down:()=>Q0});async function J0(_){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 Q0(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Uu={};m(Uu,{up:()=>Z0,down:()=>W0});import{sql as $K}from"kysely";async function Z0(_){await $K`
459
+ `.execute(_)}var Nu={};m(Nu,{up:()=>K0,down:()=>N0});import{sql as T0}from"kysely";async function K0(_){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(T0`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 N0(_){await _.schema.dropTable("ai_provider_keys").execute()}var Eu={};m(Eu,{up:()=>z0,down:()=>P0});import{sql as E0}from"kysely";async function z0(_){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(E0`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function P0(_){await _.schema.dropTable("oauth_pkce_states").execute()}var zu={};m(zu,{up:()=>$0,down:()=>U0});import{sql as I}from"kysely";async function $0(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(I`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(I`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(I`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(I`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(I`CURRENT_TIMESTAMP`)).execute(),await I`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await I`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await I`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 U0(_){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 Pu={};m(Pu,{up:()=>X0,down:()=>j0});async function X0(_){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 j0(_){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 $u={};m($u,{up:()=>J0,down:()=>Q0});async function J0(_){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 Q0(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Uu={};m(Uu,{up:()=>Z0,down:()=>W0});import{sql as $K}from"kysely";async function Z0(_){await $K`
460
460
  UPDATE connections
461
461
  SET title = 'CMS MCP',
462
462
  tools = NULL,
@@ -510,12 +510,12 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
510
510
  `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(N)=>N.primaryKey()).addColumn("virtual_mcp_id","text",(N)=>N.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(N)=>N.notNull()).addColumn("connection_id","text",(N)=>N.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(N)=>N.notNull()).addColumn("updated_at","text",(N)=>N.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 N of u)T.set(N.organizationId,N.userId);let C=new Map;for(let N of x){let z=`vir_${q()}`;C.set(N.id,z);let $=N.ui?JSON.parse(N.ui):null,U=JSON.stringify({enabled_plugins:N.enabled_plugins?JSON.parse(N.enabled_plugins):null,ui:$,migrated_from_project:N.id,migrated_project_slug:N.slug}),Q=T.get(N.organization_id);if(!Q)continue;await _.insertInto("connections").values({id:z,organization_id:N.organization_id,created_by:Q,updated_by:null,title:N.name,description:N.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:N.created_at,updated_at:N.updated_at}).execute()}let K=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let N of K){let z=C.get(N.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${q()}`,parent_connection_id:z,child_connection_id:N.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:N.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 N of E){let z=C.get(N.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${q()}`,virtual_mcp_id:z,plugin_id:N.plugin_id,connection_id:N.connection_id,settings:N.settings,created_at:N.created_at,updated_at:N.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function O0(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Du`
511
511
  ALTER TABLE connections
512
512
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
513
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var Fu={};m(Fu,{up:()=>A0,down:()=>n0});import{sql as S0}from"kysely";async function A0(_){await S0`
513
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var Fu={};m(Fu,{up:()=>A0,down:()=>I0});import{sql as S0}from"kysely";async function A0(_){await S0`
514
514
  DELETE FROM connections
515
515
  WHERE connection_type = 'VIRTUAL'
516
516
  AND subtype = 'project'
517
517
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
518
- `.execute(_)}async function n0(_){}var Ru={};m(Ru,{up:()=>w0,down:()=>V0});import{sql as I0}from"kysely";async function w0(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await I0`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function V0(_){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 Hu={};m(Hu,{up:()=>k0,down:()=>p0});import{sql as Yu}from"kysely";async function k0(_){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(Yu`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Yu`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(Yu`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 p0(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var Mu={};m(Mu,{up:()=>v0,down:()=>g0});async function v0(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function g0(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var Bu={};m(Bu,{up:()=>q0,down:()=>i0});async function q0(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function i0(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var yu={};m(yu,{up:()=>c0,down:()=>h0});import{sql as jK}from"kysely";function Gu(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function t0(_){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 Gu(T)}catch{return Gu(_.connection_url)}if(_.title)return Gu(_.title);return _.id}async function c0(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await jK`
518
+ `.execute(_)}async function I0(_){}var Ru={};m(Ru,{up:()=>w0,down:()=>V0});import{sql as n0}from"kysely";async function w0(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await n0`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function V0(_){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 Hu={};m(Hu,{up:()=>k0,down:()=>p0});import{sql as Yu}from"kysely";async function k0(_){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(Yu`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Yu`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(Yu`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 p0(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var Mu={};m(Mu,{up:()=>v0,down:()=>g0});async function v0(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function g0(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var Bu={};m(Bu,{up:()=>q0,down:()=>i0});async function q0(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function i0(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var yu={};m(yu,{up:()=>c0,down:()=>h0});import{sql as jK}from"kysely";function Gu(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function t0(_){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 Gu(T)}catch{return Gu(_.connection_url)}if(_.title)return Gu(_.title);return _.id}async function c0(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await jK`
519
519
  SELECT id, app_name, connection_url, title FROM connections
520
520
  `.execute(_);for(let u of x.rows){let T=t0(u);await jK`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 h0(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var fu={};m(fu,{up:()=>o0,down:()=>a0});import{sql as u_}from"kysely";async function o0(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await u_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await u_`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function a0(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await u_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await u_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await u_`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var Ou={};m(Ou,{up:()=>r0,down:()=>e0});async function r0(_){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 e0(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var Su={};m(Su,{up:()=>l0,down:()=>d0});import{sql as F_}from"kysely";async function l0(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await F_`
521
521
  UPDATE threads
@@ -534,7 +534,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
534
534
  THEN jsonb_build_array(virtual_mcp_id)::text
535
535
  ELSE '[]'
536
536
  END
537
- `.execute(_),await F_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Au={};m(Au,{up:()=>s0,down:()=>b0});async function s0(_){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 b0(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var nu={};m(nu,{up:()=>_P,down:()=>xP});async function _P(_){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 xP(_){await _.schema.dropTable("kv").execute()}var Iu={};m(Iu,{up:()=>uP,down:()=>mP});async function uP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function mP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var wu={};m(wu,{up:()=>CP,down:()=>TP});async function CP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function TP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var Vu={};m(Vu,{up:()=>KP,down:()=>NP});import{sql as R}from"kysely";async function KP(_){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(R`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(R`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 R`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(R`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(R`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 R`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(R`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(R`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(R`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(R`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(R`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 NP(_){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 ku={};m(ku,{up:()=>EP,down:()=>zP});import{sql as i}from"kysely";async function EP(_){await i`
537
+ `.execute(_),await F_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Au={};m(Au,{up:()=>s0,down:()=>b0});async function s0(_){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 b0(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Iu={};m(Iu,{up:()=>_P,down:()=>xP});async function _P(_){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 xP(_){await _.schema.dropTable("kv").execute()}var nu={};m(nu,{up:()=>uP,down:()=>mP});async function uP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function mP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var wu={};m(wu,{up:()=>CP,down:()=>TP});async function CP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function TP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var Vu={};m(Vu,{up:()=>KP,down:()=>NP});import{sql as R}from"kysely";async function KP(_){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(R`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(R`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 R`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(R`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(R`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 R`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(R`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(R`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(R`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(R`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(R`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 NP(_){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 ku={};m(ku,{up:()=>EP,down:()=>zP});import{sql as i}from"kysely";async function EP(_){await i`
538
538
  ALTER TABLE event_subscriptions
539
539
  ALTER COLUMN enabled DROP DEFAULT
540
540
  `.execute(_),await i`
@@ -562,13 +562,13 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
562
562
  metadata = ${$},
563
563
  updated_at = NOW()
564
564
  WHERE id = ${u.id}
565
- `.execute(_)}}}async function WP(_){}var qu={};m(qu,{up:()=>LP,down:()=>FP});import{sql as DP}from"kysely";async function LP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(DP`'{}'::jsonb`)).execute()}async function FP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var iu={};m(iu,{up:()=>RP,down:()=>YP});async function RP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function YP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var tu={};m(tu,{up:()=>HP,down:()=>MP});async function HP(_){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 MP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var cu={};m(cu,{up:()=>BP,down:()=>GP});async function BP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function GP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var hu={};m(hu,{up:()=>yP,down:()=>fP});async function yP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function fP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var ou={};m(ou,{up:()=>OP,down:()=>SP});async function OP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function SP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var au={};m(au,{up:()=>nP,down:()=>IP});import{sql as WK}from"kysely";var AP=["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 nP(_){let x=await WK`
565
+ `.execute(_)}}}async function WP(_){}var qu={};m(qu,{up:()=>LP,down:()=>FP});import{sql as DP}from"kysely";async function LP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(DP`'{}'::jsonb`)).execute()}async function FP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var iu={};m(iu,{up:()=>RP,down:()=>YP});async function RP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function YP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var tu={};m(tu,{up:()=>HP,down:()=>MP});async function HP(_){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 MP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var cu={};m(cu,{up:()=>BP,down:()=>GP});async function BP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function GP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var hu={};m(hu,{up:()=>yP,down:()=>fP});async function yP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function fP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var ou={};m(ou,{up:()=>OP,down:()=>SP});async function OP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function SP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var au={};m(au,{up:()=>IP,down:()=>nP});import{sql as WK}from"kysely";var AP=["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 IP(_){let x=await WK`
566
566
  SELECT id, permission FROM "organizationRole"
567
567
  `.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 K=C,E=Array.from(new Set([...K,...AP]));if(E.length===K.length)continue;T.self=E;let N=JSON.stringify(T);await WK`
568
568
  UPDATE "organizationRole"
569
569
  SET permission = ${N}
570
570
  WHERE id = ${u.id}
571
- `.execute(_)}}async function IP(_){}var ru={};m(ru,{up:()=>wP,down:()=>VP});async function wP(_){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 VP(_){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 eu={};m(eu,{up:()=>kP,down:()=>pP});async function kP(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function pP(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var lu={};m(lu,{up:()=>vP,down:()=>gP});import{sql as m_}from"kysely";async function vP(_){await m_`
571
+ `.execute(_)}}async function nP(_){}var ru={};m(ru,{up:()=>wP,down:()=>VP});async function wP(_){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 VP(_){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 eu={};m(eu,{up:()=>kP,down:()=>pP});async function kP(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function pP(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var lu={};m(lu,{up:()=>vP,down:()=>gP});import{sql as m_}from"kysely";async function vP(_){await m_`
572
572
  UPDATE automations
573
573
  SET virtual_mcp_id = (agent::json ->> 'id')
574
574
  WHERE virtual_mcp_id IS NULL
@@ -1119,7 +1119,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
1119
1119
  AND tool_input IS NOT NULL
1120
1120
  )
1121
1121
  )
1122
- `.execute(_)}var Wm={};m(Wm,{up:()=>A$,down:()=>n$});async function A$(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function n$(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var Lm={};m(Lm,{up:()=>I$,down:()=>w$});import{sql as Dm}from"kysely";var B_="local-docker";async function I$(_){await Dm`delete from sandbox_runner_state where sandbox_provider_kind = ${B_}`.execute(_);let x=await Dm`
1122
+ `.execute(_)}var Wm={};m(Wm,{up:()=>A$,down:()=>I$});async function A$(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function I$(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var Lm={};m(Lm,{up:()=>n$,down:()=>w$});import{sql as Dm}from"kysely";var B_="local-docker";async function n$(_){await Dm`delete from sandbox_runner_state where sandbox_provider_kind = ${B_}`.execute(_);let x=await Dm`
1123
1123
  SELECT id, metadata FROM "connections"
1124
1124
  WHERE connection_type = 'VIRTUAL'
1125
1125
  AND metadata IS NOT NULL
@@ -1195,15 +1195,15 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
1195
1195
  UPDATE sandbox_runner_state
1196
1196
  SET sandbox_provider_kind = ${Y}
1197
1197
  WHERE sandbox_provider_kind = ${H}
1198
- `.execute(_),await GK(_,H,Y)}var fm={};m(fm,{up:()=>d$,down:()=>s$});import{sql as I}from"kysely";async function d$(_){await I`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(I`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(I`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").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`)).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 I`
1198
+ `.execute(_),await GK(_,H,Y)}var fm={};m(fm,{up:()=>d$,down:()=>s$});import{sql as n}from"kysely";async function d$(_){await n`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(n`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(n`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(n`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(n`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 n`
1199
1199
  CREATE INDEX idx_org_fs_entry_parent
1200
1200
  ON org_fs_entry (organization_id, volume, parent)
1201
1201
  WHERE deleted_at IS NULL
1202
- `.execute(_),await I`
1202
+ `.execute(_),await n`
1203
1203
  CREATE INDEX idx_org_fs_entry_usage
1204
1204
  ON org_fs_entry (organization_id, volume, size)
1205
1205
  WHERE kind = 'file' AND deleted_at IS NULL
1206
- `.execute(_)}async function s$(_){await _.schema.dropTable("org_fs_entry").execute(),await I`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var Om={};m(Om,{up:()=>b$,down:()=>_U});async function b$(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function _U(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var Sm={};m(Sm,{up:()=>xU,down:()=>uU});import{sql as yK}from"kysely";async function xU(_){await yK`
1206
+ `.execute(_)}async function s$(_){await _.schema.dropTable("org_fs_entry").execute(),await n`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var Om={};m(Om,{up:()=>b$,down:()=>_U});async function b$(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function _U(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var Sm={};m(Sm,{up:()=>xU,down:()=>uU});import{sql as yK}from"kysely";async function xU(_){await yK`
1207
1207
  INSERT INTO "organization" (id, name, slug, "createdAt")
1208
1208
  SELECT
1209
1209
  'org_orgfs_public_skills',
@@ -1219,7 +1219,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
1219
1219
  ON CONFLICT (id) DO NOTHING
1220
1220
  `.execute(_)}async function uU(_){await yK`
1221
1221
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
1222
- `.execute(_)}var Am={};m(Am,{up:()=>mU,down:()=>CU});async function mU(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function CU(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var nm={};m(nm,{up:()=>TU,down:()=>KU});import{sql as fK}from"kysely";async function TU(_){await fK`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function KU(_){await fK`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Im={};m(Im,{up:()=>EU,down:()=>zU});import{sql as NU}from"kysely";async function EU(_){await NU`
1222
+ `.execute(_)}var Am={};m(Am,{up:()=>mU,down:()=>CU});async function mU(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function CU(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Im={};m(Im,{up:()=>TU,down:()=>KU});import{sql as fK}from"kysely";async function TU(_){await fK`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function KU(_){await fK`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var nm={};m(nm,{up:()=>EU,down:()=>zU});import{sql as NU}from"kysely";async function EU(_){await NU`
1223
1223
  UPDATE downstream_tokens
1224
1224
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1225
1225
  WHERE "expiresAt" IS NULL
@@ -1239,7 +1239,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
1239
1239
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1240
1240
  ON organization_join_requests (organization_id, user_id)
1241
1241
  WHERE status = 'pending'
1242
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function GU(_){await _.schema.dropTable("organization_join_requests").execute()}var cm={};m(cm,{up:()=>yU,down:()=>fU});async function yU(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function fU(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var hm={};m(hm,{up:()=>OU,down:()=>SU});async function OU(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function SU(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var rm={};m(rm,{up:()=>IU,splitWebResearchTier:()=>am,down:()=>wU,__testing:()=>nU});function AU(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function om(_){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 am(_){if(!_||om(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,K=null,E=null;if(u)if(AU(u.modelId))E=u;else K=u;return{..._,tiers:{...C,web_search:K,deep_research:E}}}var nU={splitWebResearchTier:am,isAlreadySplit:om};async function IU(_){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(om(T))continue;let C=am(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function wU(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var em={};m(em,{up:()=>VU,down:()=>kU});import{sql as K_}from"kysely";async function VU(_){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(K_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(K_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await K_`
1242
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function GU(_){await _.schema.dropTable("organization_join_requests").execute()}var cm={};m(cm,{up:()=>yU,down:()=>fU});async function yU(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function fU(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var hm={};m(hm,{up:()=>OU,down:()=>SU});async function OU(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function SU(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var rm={};m(rm,{up:()=>nU,splitWebResearchTier:()=>am,down:()=>wU,__testing:()=>IU});function AU(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function om(_){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 am(_){if(!_||om(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,K=null,E=null;if(u)if(AU(u.modelId))E=u;else K=u;return{..._,tiers:{...C,web_search:K,deep_research:E}}}var IU={splitWebResearchTier:am,isAlreadySplit:om};async function nU(_){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(om(T))continue;let C=am(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function wU(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var em={};m(em,{up:()=>VU,down:()=>kU});import{sql as K_}from"kysely";async function VU(_){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(K_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(K_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await K_`
1243
1243
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1244
1244
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1245
1245
  WHERE revoked_at IS NULL
@@ -1329,11 +1329,11 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
1329
1329
  create unique index organization_billing_stripe_subscription_id_uq
1330
1330
  on organization_billing (stripe_subscription_id)
1331
1331
  where stripe_subscription_id is not null
1332
- `.execute(_)}async function BX(_){await AK`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var QC={};m(QC,{up:()=>GX,down:()=>yX});async function GX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function yX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var ZC={};m(ZC,{up:()=>fX,down:()=>OX});import{sql as nK}from"kysely";async function fX(_){await nK`
1332
+ `.execute(_)}async function BX(_){await AK`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var QC={};m(QC,{up:()=>GX,down:()=>yX});async function GX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function yX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var ZC={};m(ZC,{up:()=>fX,down:()=>OX});import{sql as IK}from"kysely";async function fX(_){await IK`
1333
1333
  create index idx_org_billing_benefits_pending
1334
1334
  on organization_billing (updated_at)
1335
1335
  where benefits_reference_id is not null
1336
- `.execute(_)}async function OX(_){await nK`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var WC={};m(WC,{up:()=>SX,down:()=>AX});import{sql as IK}from"kysely";async function SX(_){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(IK`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(IK`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 AX(_){await _.schema.dropTable("user_model_preferences").execute()}var DC={};m(DC,{up:()=>nX,down:()=>IX});async function nX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function IX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var LC={};m(LC,{up:()=>wX,down:()=>VX});async function wX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function VX(_){}var FC={};m(FC,{up:()=>kX,down:()=>pX});import{sql as wK}from"kysely";async function kX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await wK`
1336
+ `.execute(_)}async function OX(_){await IK`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var WC={};m(WC,{up:()=>SX,down:()=>AX});import{sql as nK}from"kysely";async function SX(_){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(nK`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(nK`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 AX(_){await _.schema.dropTable("user_model_preferences").execute()}var DC={};m(DC,{up:()=>IX,down:()=>nX});async function IX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function nX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var LC={};m(LC,{up:()=>wX,down:()=>VX});async function wX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function VX(_){}var FC={};m(FC,{up:()=>kX,down:()=>pX});import{sql as wK}from"kysely";async function kX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await wK`
1337
1337
  UPDATE organization_settings
1338
1338
  SET flags = jsonb_build_object('reports_only', reports_only)
1339
1339
  WHERE reports_only IS NOT NULL
@@ -1348,7 +1348,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
1348
1348
  SELECT id, app_name, connection_url, title, slug
1349
1349
  FROM connections
1350
1350
  WHERE connection_type != 'VIRTUAL'
1351
- `.execute(_),u=0;for(let T of x.rows){let C=oX(T);if(C===T.slug)continue;await pK`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 rX(){}var yC={};m(yC,{up:()=>lX,down:()=>dX});import{sql as eX}from"kysely";async function lX(_){await eX`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(_)}async function dX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var OC={};m(OC,{up:()=>bX,down:()=>_j,ACTIONS:()=>fC});import{sql as n_}from"kysely";var fC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],sX=new Set(["review_requested","review_approved","review_changes_requested"]);async function bX(_){await vK(_,fC)}async function _j(_){await vK(_,fC.filter((x)=>!sX.has(x)))}async function vK(_,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 SC={};m(SC,{up:()=>uj,down:()=>mj});import{sql as xj}from"kysely";async function uj(_){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(xj`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 mj(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var nC={};m(nC,{up:()=>Tj,down:()=>Kj,ACTIONS:()=>AC});import{sql as I_}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","merge_conflict_resolution"],Cj=new Set(["merge_conflict_resolution"]);async function Tj(_){await gK(_,AC)}async function Kj(_){await gK(_,AC.filter((x)=>!Cj.has(x)))}async function gK(_,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 IC={};m(IC,{up:()=>Nj,down:()=>Ej});import{sql as E_}from"kysely";async function Nj(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await E_`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 Ej(_){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 E_`
1351
+ `.execute(_),u=0;for(let T of x.rows){let C=oX(T);if(C===T.slug)continue;await pK`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 rX(){}var yC={};m(yC,{up:()=>lX,down:()=>dX});import{sql as eX}from"kysely";async function lX(_){await eX`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(_)}async function dX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var OC={};m(OC,{up:()=>bX,down:()=>_j,ACTIONS:()=>fC});import{sql as I_}from"kysely";var fC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],sX=new Set(["review_requested","review_approved","review_changes_requested"]);async function bX(_){await vK(_,fC)}async function _j(_){await vK(_,fC.filter((x)=>!sX.has(x)))}async function vK(_,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 SC={};m(SC,{up:()=>uj,down:()=>mj});import{sql as xj}from"kysely";async function uj(_){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(xj`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 mj(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var IC={};m(IC,{up:()=>Tj,down:()=>Kj,ACTIONS:()=>AC});import{sql as n_}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","merge_conflict_resolution"],Cj=new Set(["merge_conflict_resolution"]);async function Tj(_){await gK(_,AC)}async function Kj(_){await gK(_,AC.filter((x)=>!Cj.has(x)))}async function gK(_,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 nC={};m(nC,{up:()=>Nj,down:()=>Ej});import{sql as E_}from"kysely";async function Nj(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await E_`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 Ej(_){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 E_`
1352
1352
  create index idx_org_billing_benefits_pending
1353
1353
  on organization_billing (updated_at)
1354
1354
  where benefits_reference_id is not null
@@ -1428,7 +1428,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
1428
1428
  CREATE INDEX idx_org_repo_sync_enabled
1429
1429
  ON org_repo_sync (organization_id)
1430
1430
  WHERE enabled
1431
- `.execute(_)}async function Sj(_){await oC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var eC={};m(eC,{up:()=>nj,down:()=>Ij,ACTIONS:()=>rC});import{sql as k_}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","merge_conflict_resolution","merge_failed"],Aj=new Set(["merge_failed"]);async function nj(_){await hK(_,rC)}async function Ij(_){await hK(_,rC.filter((x)=>!Aj.has(x)))}async function hK(_,x){await k_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await k_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${k_.join(x.map((u)=>k_.lit(u)))}))`.execute(_)}var lC={};m(lC,{up:()=>wj,down:()=>Vj});async function wj(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function Vj(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var dC={};m(dC,{up:()=>kj,down:()=>pj});import{sql as h}from"kysely";async function kj(_){await h`
1431
+ `.execute(_)}async function Sj(_){await oC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var eC={};m(eC,{up:()=>Ij,down:()=>nj,ACTIONS:()=>rC});import{sql as k_}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","merge_conflict_resolution","merge_failed"],Aj=new Set(["merge_failed"]);async function Ij(_){await hK(_,rC)}async function nj(_){await hK(_,rC.filter((x)=>!Aj.has(x)))}async function hK(_,x){await k_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await k_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${k_.join(x.map((u)=>k_.lit(u)))}))`.execute(_)}var lC={};m(lC,{up:()=>wj,down:()=>Vj});async function wj(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function Vj(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var dC={};m(dC,{up:()=>kj,down:()=>pj});import{sql as h}from"kysely";async function kj(_){await h`
1432
1432
  CREATE TABLE org_jira_integrations (
1433
1433
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1434
1434
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1602,7 +1602,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
1602
1602
  WHERE status = 'in_review'
1603
1603
  AND assignee_id = 'super-agent'
1604
1604
  AND dismissed_at IS NULL
1605
- `.execute(_),await z_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var RT={};m(RT,{up:()=>SJ,down:()=>AJ});import{sql as _N}from"kysely";async function SJ(_){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 AJ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var HT={};m(HT,{up:()=>IJ,down:()=>wJ,ACTIONS:()=>YT});import{sql as v_}from"kysely";var YT=["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"],nJ=new Set(["review_verdict_requested"]);async function IJ(_){await xN(_,YT)}async function wJ(_){await xN(_,YT.filter((x)=>!nJ.has(x)))}async function xN(_,x){await v_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await v_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${v_.join(x.map((u)=>v_.lit(u)))}))`.execute(_)}var MT={};m(MT,{up:()=>VJ,down:()=>kJ});import{sql as g_}from"kysely";async function VJ(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await g_`
1605
+ `.execute(_),await z_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var RT={};m(RT,{up:()=>SJ,down:()=>AJ});import{sql as _N}from"kysely";async function SJ(_){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 AJ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var HT={};m(HT,{up:()=>nJ,down:()=>wJ,ACTIONS:()=>YT});import{sql as v_}from"kysely";var YT=["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"],IJ=new Set(["review_verdict_requested"]);async function nJ(_){await xN(_,YT)}async function wJ(_){await xN(_,YT.filter((x)=>!IJ.has(x)))}async function xN(_,x){await v_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await v_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${v_.join(x.map((u)=>v_.lit(u)))}))`.execute(_)}var MT={};m(MT,{up:()=>VJ,down:()=>kJ});import{sql as g_}from"kysely";async function VJ(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await g_`
1606
1606
  ALTER TABLE task_board_items
1607
1607
  ADD CONSTRAINT chk_task_board_items_column_org
1608
1608
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
@@ -1653,7 +1653,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
1653
1653
  DROP COLUMN IF EXISTS last_synced_at,
1654
1654
  DROP COLUMN IF EXISTS last_sync_error,
1655
1655
  DROP COLUMN IF EXISTS rescan_pending
1656
- `.execute(_)}async function bJ(){}async function _Q(_,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 nT={};m(nT,{up:()=>xQ,down:()=>uQ});import{sql as a}from"kysely";async function xQ(_){await a`
1656
+ `.execute(_)}async function bJ(){}async function _Q(_,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 IT={};m(IT,{up:()=>xQ,down:()=>uQ});import{sql as a}from"kysely";async function xQ(_){await a`
1657
1657
  ALTER TABLE task_board_items
1658
1658
  ADD COLUMN IF NOT EXISTS source text
1659
1659
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
@@ -1674,14 +1674,14 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
1674
1674
  created_at timestamptz NOT NULL DEFAULT now(),
1675
1675
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
1676
1676
  )
1677
- `.execute(_)}async function uQ(_){await a`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await a`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await a`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var IT={};m(IT,{up:()=>mQ,down:()=>CQ});import{sql as P_}from"kysely";async function mQ(_){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(P_`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(P_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(P_`now()`)).execute(),await P_`
1677
+ `.execute(_)}async function uQ(_){await a`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await a`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await a`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var nT={};m(nT,{up:()=>mQ,down:()=>CQ});import{sql as P_}from"kysely";async function mQ(_){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(P_`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(P_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(P_`now()`)).execute(),await P_`
1678
1678
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
1679
1679
  ON organization_notices (organization_id)
1680
1680
  WHERE resolved_at IS NULL
1681
1681
  `.execute(_),await P_`
1682
1682
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
1683
1683
  ON organization_notices (organization_id, created_at DESC)
1684
- `.execute(_)}async function CQ(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var VT={};m(VT,{up:()=>jQ,down:()=>JQ});import{sql as wT}from"kysely";import{sql as MW}from"kysely";var TN=50000000,TQ=1e5;function KQ(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>TQ)return 1/0;let K=C.pop();if(typeof K==="string")u+=K.length;else if(Array.isArray(K))for(let E of K)C.push(E);else if(K!==null&&typeof K==="object")for(let E of Object.values(K))C.push(E)}return u}var NQ=/\u0000/g,EQ=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,zQ=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,PQ=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,$Q=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function UQ(_){return _.replace(NQ,"").replace(EQ,"\uFFFD").replace(zQ,"$1***@").replace(PQ,"$1***").replace($Q,"[base64 data omitted]")}function XQ(_){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 KN(_){if(KQ(_,TN)>TN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return UQ(u);if(XQ(u))return{type:"text",text:"[image omitted]"};return u})}var NN=20;async function jQ(_){let x=await wT`
1684
+ `.execute(_)}async function CQ(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var VT={};m(VT,{up:()=>jQ,down:()=>JQ});import{sql as wT}from"kysely";import{sql as BW}from"kysely";var TN=50000000,TQ=1e5;function KQ(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>TQ)return 1/0;let K=C.pop();if(typeof K==="string")u+=K.length;else if(Array.isArray(K))for(let E of K)C.push(E);else if(K!==null&&typeof K==="object")for(let E of Object.values(K))C.push(E)}return u}var NQ=/\u0000/g,EQ=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,zQ=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,PQ=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,$Q=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function UQ(_){return _.replace(NQ,"").replace(EQ,"\uFFFD").replace(zQ,"$1***@").replace(PQ,"$1***").replace($Q,"[base64 data omitted]")}function XQ(_){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 KN(_){if(KQ(_,TN)>TN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return UQ(u);if(XQ(u))return{type:"text",text:"[image omitted]"};return u})}var NN=20;async function jQ(_){let x=await wT`
1685
1685
  SELECT id FROM thread_message_parts
1686
1686
  WHERE pg_column_size(payload) > 8192
1687
1687
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
@@ -2012,19 +2012,19 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
2012
2012
  ON CONFLICT (thread_id, repository_id) DO NOTHING
2013
2013
  `.execute(_),await M`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function RQ(_){await M`DROP TABLE IF EXISTS thread_repositories`.execute(_),await M`
2014
2014
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
2015
- `.execute(_)}var YQ={"001-initial-schema":Yx,"002-organization-settings":Hx,"003-connection-schema-align":Mx,"004-remove-models-binding":Bx,"005-connection-configuration":Gx,"006-add-views-to-settings":yx,"007-monitoring-logs":fx,"008-event-bus":Ox,"009-drop-audit-logs":Sx,"010-gateways":Ax,"011-gateway-icon":nx,"012-gateway-tool-selection-mode":Ix,"013-monitoring-user-agent-gateway":wx,"014-gateway-resources-prompts":Vx,"015-monitoring-properties":kx,"016-downstream-token-client-info":px,"017-downstream-token-remove-userid":vx,"018-drop-gateway-tool-selection-strategy":gx,"019-remove-gateway-is-default":qx,"020-enabled-plugins":ix,"021-threads":tx,"022-rename-gateway-to-virtual-mcp":cx,"023-optimize-thread-indexes":hx,"024-consolidate-virtual-mcp":ox,"025-add-monitoring-virtual-mcp-id":ax,"026-restrict-child-connection-delete":rx,"027-update-management-mcp-url":lx,"028-update-management-mcp-to-self":sx,"029-add-updated-by-to-connections":bx,"030-member-tags":_u,"031-add-dependency-mode":xu,"032-projects":uu,"033-thread-status":mu,"034-monitoring-dashboards":Cu,"035-project-connections":Tu,"036-update-registry-url":Ku,"037-ai-provider-keys":Nu,"038-oauth-pkce-states":Eu,"039-automations":zu,"040-replace-next-run-at-with-last-run-at":Pu,"041-ai-provider-keys-unique-constraint":$u,"042-rename-mesh-mcp-to-cms-mcp":Uu,"043-rename-cms-mcp-to-deco-cms":Xu,"044-drop-connections-tools-column":ju,"045-thread-context-start-message":Ju,"046-remove-object-storage-plugin":Zu,"047-add-next-run-at":Wu,"048-merge-projects-agents":Lu,"049-remove-org-admin-projects":Fu,"050-durable-agent-runs":Ru,"051-org-sso":Hu,"052-thread-agent-ids":Mu,"053-registry-config":Bu,"054-connection-slug":yu,"055-spaces":fu,"056-automation-project-scope":Ou,"057-thread-virtual-mcp-id":Su,"058-trigger-callback-tokens":Au,"059-kv":nu,"060-member-index":Iu,"061-downstream-token-connection-index":wu,"062-private-registry":Vu,"063-event-subscriptions-enabled-boolean":ku,"064-brand-context":pu,"065-organization-domains":vu,"066-brand-context-structured":gu,"067-threads-metadata":qu,"068-threads-branch":iu,"069-sandbox-runner-state":tu,"070-model-categories":cu,"071-default-home-agents":hu,"072-ai-provider-key-preset-id":ou,"073-backfill-basic-usage-roles":au,"074-sandbox-runner-state-handle-nonunique":ru,"075-thread-inflight-async-jobs":eu,"076-automations-drop-agent-json":lu,"077-tier-only-model-selection":su,"078-automation-tool-call-kind":bu,"079-strip-legacy-freestyle-vm-map-entries":_m,"080-async-research-jobs":xm,"081-async-research-jobs-result-content":um,"082-secrets":mm,"083-thread-run-locally":Cm,"084-drop-host-sandbox-rows":Tm,"085-rename-runner-kind":Km,"086-thread-pins-and-vm-map-rekey":Nm,"087-fix-vm-map-rekey":Em,"088-purge-cli-activate-keys":zm,"089-rename-remote-user-to-desktop":Pm,"090-automation-webhook-triggers":$m,"091-organization-domains-allow-multi":Um,"092-sandbox-naming-uniformization":Xm,"093-backfill-global-search-basic-usage":jm,"094-org-file-configs":Qm,"095-remove-automation-tool-call-kind":Zm,"096-org-file-configs-public-url-base":Wm,"097-drop-local-docker-sandbox-state":Lm,"098-thread-message-parts":Fm,"099-run-fence":Rm,"100-link-transport":Ym,"101-cancel-requested-at":Hm,"102-observational-agent":Mm,"103-revert-observational-agent":Bm,"104-agent-sandbox-provider-kind":ym,"105-org-fs":fm,"106-automation-tools":Om,"107-org-fs-public-org":Sm,"108-automation-max-agent-steps":Am,"109-thread-message-parts-per-message-seq":nm,"110-backfill-ghs-token-expiry":Im,"111-org-fs-thread-id":wm,"112-org-file-configs-credential-type":Vm,"113-thread-failure-reason":km,"114-run-acked-seq":pm,"115-thread-projected-seq":vm,"116-org-sites":gm,"117-org-file-configs-site-slug":qm,"118-organization-domains-multi-verify":im,"119-organization-join-requests":tm,"120-org-fs-read-public":cm,"121-org-fs-share-password":hm,"122-split-web-research-tier":rm,"123-connection-credential-vault":em,"124-drop-thread-projected-seq":lm,"125-github-child-single-parent":dm,"126-task-board":bm,"127-task-board-due-date":_C,"128-reports-only":xC,"129-task-board-assigned-by":uC,"130-task-board-thread-id":mC,"131-task-board-thread-link-cascade":CC,"132-task-board-item-prs":TC,"133-dedupe-duplicate-members":KC,"134-drop-task-board-enabled":NC,"135-task-board-item-fk-cascade":EC,"136-task-board-import-idempotency":zC,"137-agent-sandbox-runner-state":PC,"138-agent-sandbox-sessions":$C,"139-organization-billing":UC,"140-seat-change-log":XC,"141-benefits-sync-pending":jC,"142-stripe-event-watermark":JC,"143-armed-report-url":QC,"144-benefits-pending-index":ZC,"145-user-model-preferences":WC,"146-organization-main-agent":DC,"147-drop-agent-sandbox-tables":LC,"148-org-flags":FC,"149-task-board-item-sort-order":RC,"150-task-board-activity":YC,"151-task-board-tags":MC,"152-repair-connection-slug":GC,"153-task-board-latest-assistant-part-index":yC,"154-task-board-qa-activity":OC,"155-task-board-review-claims":SC,"156-task-board-conflict-activity":nC,"157-drop-seat-billing":IC,"158-drop-github-child-single-parent":wC,"159-task-board-comments":VC,"160-task-quota-billing":kC,"161-task-quota-claim-state":vC,"162-claude-subscriptions":gC,"163-task-board-item-dismissed":qC,"164-per-org-task-quota":iC,"165-task-board-pending-review-index":tC,"166-task-board-last-swept-at":cC,"167-task-board-run-retry":hC,"168-org-repo-sync":aC,"169-task-board-merge-failed-activity":eC,"170-task-board-item-repo":lC,"171-jira-integration":dC,"172-task-board-item-key-seq":sC,"173-thread-github-repo-connection-index":bC,"174-thread-message-parts-persisted-at":xT,"175-task-board-sprints":uT,"176-task-board-done-sweep-index":mT,"177-notifications":CT,"178-jira-status-mapping-array":TT,"179-notification-mentioned":NT,"180-task-board-item-type":zT,"181-task-board-item-type-required":PT,"182-task-board-sprints-entities":$T,"183-drop-jira-jql-filter":UT,"184-jira-rescan-after-scope-change":XT,"185-jira-rescan-existing-cards":jT,"186-jira-rescan-pending-flag":QT,"187-task-board-comment-thread":ZT,"188-invitation-auto-accept":WT,"189-task-board-column-automations":LT,"190-task-board-review-cycle-started-at":FT,"191-task-board-columns":RT,"192-task-board-verdict-nudge-activity":HT,"193-task-board-status-column-fk":MT,"194-jira-link-sprint":BT,"195-task-board-sprint-activity":yT,"196-task-board-column-tracker-statuses":fT,"197-task-board-prompts":OT,"198-task-board-external-url":ST,"199-drop-jira-mirror-and-org-columns":AT,"200-jira-run-trigger":nT,"201-organization-notices":IT,"202-redact-base64-thread-parts":VT,"203-task-board-preview-routes":kT,"204-git-provider-accounts-and-repositories":pT,"205-repository-references":vT,"206-repository-consumers":Rx,"207-task-board-prs-repo-idx":Fx,"208-github-connect-flows":Lx,"209-github-installation-authorization":Dx,"210-github-repository-authorization":$x,"211-user-fs-org":Px,"212-coding-agent-mcp-excluded":Ux,"213-bitbucket-git-provider":Xx,"214-connections-sanitized-id-idx":Kx,"215-commerce-discovery-repository":Nx,"216-github-cli-auth":zx,"217-experiments":jx,"218-thread-message-parts-error-idx":Jx,"219-task-board-duplicate-reported-activity":Zx,"220-jira-automation-continue-pr":Wx,"221-remove-private-registry":r_,"222-org-git-credentials":e_,"223-drop-org-main-agent-id":Tx,"224-repository-sandbox-image":l_,"225-thread-analytics-indexes":s_,"226-deco-score-names":_x,"227-task-board-finding-resolved-activity":ux,"228-org-voice-config":a_,"229-jira-automation-from":mx,"230-project-sidebar":Cx},gT=YQ;import{getMigrations as xZ}from"better-auth/db";import{sso as uZ}from"@better-auth/sso";import{organization as mZ}from"@decocms/better-auth/plugins";import{admin as CZ,apiKey as TZ,jwt as KZ,magicLink as NZ,mcp as EZ,openAPI as zZ}from"better-auth/plugins";import{emailOTP as PZ}from"better-auth/plugins/email-otp";import{Kysely as rQ,PostgresDialect as WN}from"kysely";import{Pool as DN}from"pg";import{homedir as HQ}from"os";var MQ=new Set(["all","worker","api"]);function BQ(_){let x=(_??"").trim();return MQ.has(x)?x:"all"}var GQ=new Set(["production","development","test"]);function yQ(_){let x=(_??"").trim();return GQ.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function iT(_,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 B(_,x,u,T){return iT(_,x,T)??u}function fQ(_){let x={};for(let u of(_??"").split(",")){let T=u.trim();if(!T)continue;let C=T.indexOf("="),K=C>0?T.slice(0,C).trim():"",E=C>0?T.slice(C+1).trim():"";if(!K||!E){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${T}" \u2014 expected price_xxx=planId`);continue}x[K]=E}return x}function OQ(_,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 qT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function EN(_){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 SQ(_){return _===void 0||_===""||_==="true"||_==="1"}function $_(_,x){return _||x}function zN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${HQ()}/deco`,T=_.localMode,C=_.nodeEnv||yQ(x.NODE_ENV),K=x.NATS_URL||"nats://localhost:4222",E=x.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",N={nodeEnv:C,port:B("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:$_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,voiceConversationProvider:E==="elevenlabs"||E==="openai"?E:null,openaiLiveApiKey:x.OPENAI_LIVE_API_KEY,openaiLiveModel:x.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:x.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:x.ELEVENLABS_API_KEY,elevenlabsVoiceId:x.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:x.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:x.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databasePgSsl:Z(x.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:$_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:Z(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(x.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",x.JIRA_SETTLE_SECONDS,60,3600),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((z)=>z.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((z)=>z.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:iT("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:Z(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:fQ(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:OQ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(x.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(x.MONITOR_GA),plansEnabled:Z(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:qT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:qT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:B("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:SQ(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:iT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:BQ($_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:qT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:B("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:$_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:$_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(N.plansEnabled&&!N.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(N.plansEnabled&&!N.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(N.plansEnabled&&!N.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(N.plansEnabled&&Object.keys(N.stripePlanPriceIds).length>0&&!N.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(N.plansEnabled&&Object.keys(N.stripePlanPriceIds).length>1&&!N.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return{settings:N,externalDatabaseUrl:EN(x.DATABASE_URL),externalNatsUrl:EN(K),skipMigrations:_.skipMigrations}}var i_=null;function r(){if(!i_)AQ();return i_}function AQ(){if(i_)return;let _={...process.env},x=zN({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 pQ,metrics as vQ,propagation as cD,ROOT_CONTEXT as hD,SpanStatusCode as oD,trace as gQ}from"@opentelemetry/api";import{logs as qQ,SeverityNumber as tT}from"@opentelemetry/api-logs";import{OTLPLogExporter as eD}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as iQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as sD}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as _2}from"@opentelemetry/instrumentation-runtime-node";import{context as pW,propagation as vW,SpanKind as gW,SpanStatusCode as qW}from"@opentelemetry/api";var tW=globalThis.fetch;import{ExportResultCode as xD}from"@opentelemetry/core";import{ExportResultCode as t_}from"@opentelemetry/core";import{mkdir as nQ,rename as IQ,writeFile as wQ}from"fs/promises";import{join as c_}from"path";class h_{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:t_.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:t_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:t_.FAILED}});return Promise.resolve({code:t_.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 K=x.get(C.partition);if(!K)K=[],x.set(C.partition,K);K.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,K])=>this.writeNDJSON(K,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 K=_.filter((E)=>!C.has(E.partition));this.bufferItems=K.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?c_(this.basePath,x,...T):c_(this.basePath,...T);if(!this.knownDirs.has(C))await nQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let K=`${crypto.randomUUID()}.ndjson`,E=c_(C,`.${K}.tmp`),N=c_(C,K),z=_.join(`
2015
+ `.execute(_)}var YQ={"001-initial-schema":Yx,"002-organization-settings":Hx,"003-connection-schema-align":Mx,"004-remove-models-binding":Bx,"005-connection-configuration":Gx,"006-add-views-to-settings":yx,"007-monitoring-logs":fx,"008-event-bus":Ox,"009-drop-audit-logs":Sx,"010-gateways":Ax,"011-gateway-icon":Ix,"012-gateway-tool-selection-mode":nx,"013-monitoring-user-agent-gateway":wx,"014-gateway-resources-prompts":Vx,"015-monitoring-properties":kx,"016-downstream-token-client-info":px,"017-downstream-token-remove-userid":vx,"018-drop-gateway-tool-selection-strategy":gx,"019-remove-gateway-is-default":qx,"020-enabled-plugins":ix,"021-threads":tx,"022-rename-gateway-to-virtual-mcp":cx,"023-optimize-thread-indexes":hx,"024-consolidate-virtual-mcp":ox,"025-add-monitoring-virtual-mcp-id":ax,"026-restrict-child-connection-delete":rx,"027-update-management-mcp-url":lx,"028-update-management-mcp-to-self":sx,"029-add-updated-by-to-connections":bx,"030-member-tags":_u,"031-add-dependency-mode":xu,"032-projects":uu,"033-thread-status":mu,"034-monitoring-dashboards":Cu,"035-project-connections":Tu,"036-update-registry-url":Ku,"037-ai-provider-keys":Nu,"038-oauth-pkce-states":Eu,"039-automations":zu,"040-replace-next-run-at-with-last-run-at":Pu,"041-ai-provider-keys-unique-constraint":$u,"042-rename-mesh-mcp-to-cms-mcp":Uu,"043-rename-cms-mcp-to-deco-cms":Xu,"044-drop-connections-tools-column":ju,"045-thread-context-start-message":Ju,"046-remove-object-storage-plugin":Zu,"047-add-next-run-at":Wu,"048-merge-projects-agents":Lu,"049-remove-org-admin-projects":Fu,"050-durable-agent-runs":Ru,"051-org-sso":Hu,"052-thread-agent-ids":Mu,"053-registry-config":Bu,"054-connection-slug":yu,"055-spaces":fu,"056-automation-project-scope":Ou,"057-thread-virtual-mcp-id":Su,"058-trigger-callback-tokens":Au,"059-kv":Iu,"060-member-index":nu,"061-downstream-token-connection-index":wu,"062-private-registry":Vu,"063-event-subscriptions-enabled-boolean":ku,"064-brand-context":pu,"065-organization-domains":vu,"066-brand-context-structured":gu,"067-threads-metadata":qu,"068-threads-branch":iu,"069-sandbox-runner-state":tu,"070-model-categories":cu,"071-default-home-agents":hu,"072-ai-provider-key-preset-id":ou,"073-backfill-basic-usage-roles":au,"074-sandbox-runner-state-handle-nonunique":ru,"075-thread-inflight-async-jobs":eu,"076-automations-drop-agent-json":lu,"077-tier-only-model-selection":su,"078-automation-tool-call-kind":bu,"079-strip-legacy-freestyle-vm-map-entries":_m,"080-async-research-jobs":xm,"081-async-research-jobs-result-content":um,"082-secrets":mm,"083-thread-run-locally":Cm,"084-drop-host-sandbox-rows":Tm,"085-rename-runner-kind":Km,"086-thread-pins-and-vm-map-rekey":Nm,"087-fix-vm-map-rekey":Em,"088-purge-cli-activate-keys":zm,"089-rename-remote-user-to-desktop":Pm,"090-automation-webhook-triggers":$m,"091-organization-domains-allow-multi":Um,"092-sandbox-naming-uniformization":Xm,"093-backfill-global-search-basic-usage":jm,"094-org-file-configs":Qm,"095-remove-automation-tool-call-kind":Zm,"096-org-file-configs-public-url-base":Wm,"097-drop-local-docker-sandbox-state":Lm,"098-thread-message-parts":Fm,"099-run-fence":Rm,"100-link-transport":Ym,"101-cancel-requested-at":Hm,"102-observational-agent":Mm,"103-revert-observational-agent":Bm,"104-agent-sandbox-provider-kind":ym,"105-org-fs":fm,"106-automation-tools":Om,"107-org-fs-public-org":Sm,"108-automation-max-agent-steps":Am,"109-thread-message-parts-per-message-seq":Im,"110-backfill-ghs-token-expiry":nm,"111-org-fs-thread-id":wm,"112-org-file-configs-credential-type":Vm,"113-thread-failure-reason":km,"114-run-acked-seq":pm,"115-thread-projected-seq":vm,"116-org-sites":gm,"117-org-file-configs-site-slug":qm,"118-organization-domains-multi-verify":im,"119-organization-join-requests":tm,"120-org-fs-read-public":cm,"121-org-fs-share-password":hm,"122-split-web-research-tier":rm,"123-connection-credential-vault":em,"124-drop-thread-projected-seq":lm,"125-github-child-single-parent":dm,"126-task-board":bm,"127-task-board-due-date":_C,"128-reports-only":xC,"129-task-board-assigned-by":uC,"130-task-board-thread-id":mC,"131-task-board-thread-link-cascade":CC,"132-task-board-item-prs":TC,"133-dedupe-duplicate-members":KC,"134-drop-task-board-enabled":NC,"135-task-board-item-fk-cascade":EC,"136-task-board-import-idempotency":zC,"137-agent-sandbox-runner-state":PC,"138-agent-sandbox-sessions":$C,"139-organization-billing":UC,"140-seat-change-log":XC,"141-benefits-sync-pending":jC,"142-stripe-event-watermark":JC,"143-armed-report-url":QC,"144-benefits-pending-index":ZC,"145-user-model-preferences":WC,"146-organization-main-agent":DC,"147-drop-agent-sandbox-tables":LC,"148-org-flags":FC,"149-task-board-item-sort-order":RC,"150-task-board-activity":YC,"151-task-board-tags":MC,"152-repair-connection-slug":GC,"153-task-board-latest-assistant-part-index":yC,"154-task-board-qa-activity":OC,"155-task-board-review-claims":SC,"156-task-board-conflict-activity":IC,"157-drop-seat-billing":nC,"158-drop-github-child-single-parent":wC,"159-task-board-comments":VC,"160-task-quota-billing":kC,"161-task-quota-claim-state":vC,"162-claude-subscriptions":gC,"163-task-board-item-dismissed":qC,"164-per-org-task-quota":iC,"165-task-board-pending-review-index":tC,"166-task-board-last-swept-at":cC,"167-task-board-run-retry":hC,"168-org-repo-sync":aC,"169-task-board-merge-failed-activity":eC,"170-task-board-item-repo":lC,"171-jira-integration":dC,"172-task-board-item-key-seq":sC,"173-thread-github-repo-connection-index":bC,"174-thread-message-parts-persisted-at":xT,"175-task-board-sprints":uT,"176-task-board-done-sweep-index":mT,"177-notifications":CT,"178-jira-status-mapping-array":TT,"179-notification-mentioned":NT,"180-task-board-item-type":zT,"181-task-board-item-type-required":PT,"182-task-board-sprints-entities":$T,"183-drop-jira-jql-filter":UT,"184-jira-rescan-after-scope-change":XT,"185-jira-rescan-existing-cards":jT,"186-jira-rescan-pending-flag":QT,"187-task-board-comment-thread":ZT,"188-invitation-auto-accept":WT,"189-task-board-column-automations":LT,"190-task-board-review-cycle-started-at":FT,"191-task-board-columns":RT,"192-task-board-verdict-nudge-activity":HT,"193-task-board-status-column-fk":MT,"194-jira-link-sprint":BT,"195-task-board-sprint-activity":yT,"196-task-board-column-tracker-statuses":fT,"197-task-board-prompts":OT,"198-task-board-external-url":ST,"199-drop-jira-mirror-and-org-columns":AT,"200-jira-run-trigger":IT,"201-organization-notices":nT,"202-redact-base64-thread-parts":VT,"203-task-board-preview-routes":kT,"204-git-provider-accounts-and-repositories":pT,"205-repository-references":vT,"206-repository-consumers":Rx,"207-task-board-prs-repo-idx":Fx,"208-github-connect-flows":Lx,"209-github-installation-authorization":Dx,"210-github-repository-authorization":$x,"211-user-fs-org":Px,"212-coding-agent-mcp-excluded":Ux,"213-bitbucket-git-provider":Xx,"214-connections-sanitized-id-idx":Kx,"215-commerce-discovery-repository":Nx,"216-github-cli-auth":zx,"217-experiments":jx,"218-thread-message-parts-error-idx":Jx,"219-task-board-duplicate-reported-activity":Zx,"220-jira-automation-continue-pr":Wx,"221-remove-private-registry":r_,"222-org-git-credentials":e_,"223-drop-org-main-agent-id":Tx,"224-repository-sandbox-image":l_,"225-thread-analytics-indexes":s_,"226-deco-score-names":_x,"227-task-board-finding-resolved-activity":ux,"228-org-voice-config":a_,"229-jira-automation-from":mx,"230-project-sidebar":Cx},gT=YQ;import{getMigrations as uZ}from"better-auth/db";import{sso as mZ}from"@better-auth/sso";import{organization as CZ}from"@decocms/better-auth/plugins";import{admin as TZ,apiKey as KZ,jwt as NZ,magicLink as EZ,mcp as zZ,openAPI as PZ}from"better-auth/plugins";import{emailOTP as $Z}from"better-auth/plugins/email-otp";import{Kysely as rQ,PostgresDialect as WN}from"kysely";import{Pool as DN}from"pg";import{homedir as HQ}from"os";var MQ=new Set(["all","worker","api"]);function BQ(_){let x=(_??"").trim();return MQ.has(x)?x:"all"}var GQ=new Set(["production","development","test"]);function yQ(_){let x=(_??"").trim();return GQ.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function iT(_,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 B(_,x,u,T){return iT(_,x,T)??u}function fQ(_){let x={};for(let u of(_??"").split(",")){let T=u.trim();if(!T)continue;let C=T.indexOf("="),K=C>0?T.slice(0,C).trim():"",E=C>0?T.slice(C+1).trim():"";if(!K||!E){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${T}" \u2014 expected price_xxx=planId`);continue}x[K]=E}return x}function OQ(_,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 qT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function EN(_){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 SQ(_){return _===void 0||_===""||_==="true"||_==="1"}function $_(_,x){return _||x}function zN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${HQ()}/deco`,T=_.localMode,C=_.nodeEnv||yQ(x.NODE_ENV),K=x.NATS_URL||"nats://localhost:4222",E=x.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",N={nodeEnv:C,port:B("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:$_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,voiceConversationProvider:E==="elevenlabs"||E==="openai"?E:null,openaiLiveApiKey:x.OPENAI_LIVE_API_KEY,openaiLiveModel:x.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:x.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:x.ELEVENLABS_API_KEY,elevenlabsVoiceId:x.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:x.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:x.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databasePgSsl:Z(x.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:$_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:Z(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(x.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",x.JIRA_SETTLE_SECONDS,60,3600),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((z)=>z.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((z)=>z.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:iT("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:Z(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:fQ(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:OQ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(x.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(x.MONITOR_GA),plansEnabled:Z(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:qT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:qT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:B("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:SQ(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:iT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:BQ($_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:qT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:B("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:$_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:$_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(N.plansEnabled&&!N.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(N.plansEnabled&&!N.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(N.plansEnabled&&!N.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(N.plansEnabled&&Object.keys(N.stripePlanPriceIds).length>0&&!N.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(N.plansEnabled&&Object.keys(N.stripePlanPriceIds).length>1&&!N.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return{settings:N,externalDatabaseUrl:EN(x.DATABASE_URL),externalNatsUrl:EN(K),skipMigrations:_.skipMigrations}}var i_=null;function r(){if(!i_)AQ();return i_}function AQ(){if(i_)return;let _={...process.env},x=zN({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 pQ,metrics as vQ,propagation as hD,ROOT_CONTEXT as oD,SpanStatusCode as aD,trace as gQ}from"@opentelemetry/api";import{logs as qQ,SeverityNumber as tT}from"@opentelemetry/api-logs";import{OTLPLogExporter as lD}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as iQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as bD}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as x2}from"@opentelemetry/instrumentation-runtime-node";import{context as vW,propagation as gW,SpanKind as qW,SpanStatusCode as iW}from"@opentelemetry/api";var cW=globalThis.fetch;import{ExportResultCode as uD}from"@opentelemetry/core";import{ExportResultCode as t_}from"@opentelemetry/core";import{mkdir as IQ,rename as nQ,writeFile as wQ}from"fs/promises";import{join as c_}from"path";class h_{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:t_.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:t_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:t_.FAILED}});return Promise.resolve({code:t_.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 K=x.get(C.partition);if(!K)K=[],x.set(C.partition,K);K.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,K])=>this.writeNDJSON(K,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 K=_.filter((E)=>!C.has(E.partition));this.bufferItems=K.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?c_(this.basePath,x,...T):c_(this.basePath,...T);if(!this.knownDirs.has(C))await IQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let K=`${crypto.randomUUID()}.ndjson`,E=c_(C,`.${K}.tmp`),N=c_(C,K),z=_.join(`
2016
2016
  `)+`
2017
- `;await wQ(E,z,{mode:384}),await IQ(E,N)}}import{ExportResultCode as KD}from"@opentelemetry/core";import{AggregationTemporality as ED,DataPointType as zD}from"@opentelemetry/sdk-metrics";import{ExportResultCode as JD}from"@opentelemetry/core";var DD=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as z2,LoggerProvider as P2}from"@opentelemetry/sdk-logs";import{detectResources as U2,envDetector as X2,hostDetector as j2,osDetector as J2,processDetector as Q2,resourceFromAttributes as Z2}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as D2}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as RD}from"@opentelemetry/api-logs";import{NodeSDK as R2}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as H2,SamplingDecision as e}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as GD}from"@opentelemetry/api";var tQ="__d",cQ=pQ("Current request"),hQ=1;var $N=(_)=>{let u=new URL(_.url).searchParams.get(tQ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class UN{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,K){let E=_.getValue(cQ);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,K);return{decision:e.RECORD_AND_SAMPLED}}let N=$N(E);if(N)return{decision:e.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":N}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,K);if(z.decision===e.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:e.NOT_RECORD}}toString(){return"DebugSampler"}}class XN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:e.RECORD_AND_SAMPLED};return{decision:e.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var B2=new iQ({preventServerStart:!0}),G2=new UN(new XN(hQ));var PN=gQ.getTracer("studio","1.0.0"),U_=vQ.getMeter("studio","1.0.0"),oQ=qQ.getLogger("studio","1.0.0"),cT=(_,x,u)=>{let T={},C=u,K=u[u.length-1];if(K!==null&&typeof K==="object"&&!Array.isArray(K)&&!(K instanceof Error)&&Object.getPrototypeOf(K)===Object.prototype)T=K,C=u.slice(0,-1);let E=C.map((N)=>{if(N instanceof Error)return`${N.name}: ${N.message}`;if(typeof N==="object")try{return JSON.stringify(N)}catch{return"[Object]"}return String(N)}).join(" ");oQ.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},hT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{cT(tT.ERROR,"ERROR",_),hT.error(..._)};console.warn=(..._)=>{cT(tT.WARN,"WARN",_),hT.warn(..._)};console.debug=(..._)=>{cT(tT.DEBUG,"DEBUG",_),hT.debug(..._)};var oT,jN=0,aT=500;function aQ(){if(oT)return;let _=performance.now()+aT;oT=setInterval(()=>{let x=performance.now();jN=Math.max(0,x-_),_=x+aT},aT),oT.unref?.()}function JN(){return aQ(),jN}var eQ=()=>U_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),QN=()=>U_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),ZN=400,lQ=100,dQ=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>ZN){let T=JN(),C=T>ZN/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:o_()}})}if(eQ().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function sQ(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=o_(),K=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((N)=>{let z=performance.now()-T;if(QN().record(z,{"db.pool.outcome":K?"contended":"available"}),z>lQ)if(K)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 N},(N)=>{throw QN().record(performance.now()-T,{"db.pool.outcome":"error"}),N})},_}var LN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function FN(){try{return r().databasePgSsl}catch{return!1}}function o_(){try{return r().databasePoolMax}catch{return 10}}function bQ(_){let x=sQ(new DN({connectionString:_,max:o_(),ssl:FN(),...LN})),u=new WN({pool:x});return{type:"postgres",db:new rQ({dialect:u,log:dQ(x)}),pool:x}}function j_(){return r().databaseUrl}function RN(_){let x=_||j_();return new WN({pool:new DN({connectionString:x,max:o_(),ssl:FN(),...LN})})}function _Z(_){let x=_||j_();return bQ(x)}async function YN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===X_)X_=null}var X_=null;function rT(){if(!X_)X_=_Z(j_());return X_}async function HN(_){let u={database:RN(_||j_()),plugins:[mZ({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),CZ(),TZ(),KZ(),zZ(),EZ({loginPage:"/login"}),uZ(),NZ({sendMagicLink:async()=>{}}),PZ({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:K}=await xZ(u);if(!T.length&&!C.length)return"up to date";return await K(),`${C.length+T.length} table(s) migrated`}async function BN(_,x){return(await l`
2017
+ `;await wQ(E,z,{mode:384}),await nQ(E,N)}}import{ExportResultCode as ND}from"@opentelemetry/core";import{AggregationTemporality as zD,DataPointType as PD}from"@opentelemetry/sdk-metrics";import{ExportResultCode as QD}from"@opentelemetry/core";var LD=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as P2,LoggerProvider as $2}from"@opentelemetry/sdk-logs";import{detectResources as X2,envDetector as j2,hostDetector as J2,osDetector as Q2,processDetector as Z2,resourceFromAttributes as W2}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as L2}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as YD}from"@opentelemetry/api-logs";import{NodeSDK as Y2}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as M2,SamplingDecision as e}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as yD}from"@opentelemetry/api";var tQ="__d",cQ=pQ("Current request"),hQ=1;var $N=(_)=>{let u=new URL(_.url).searchParams.get(tQ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class UN{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,K){let E=_.getValue(cQ);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,K);return{decision:e.RECORD_AND_SAMPLED}}let N=$N(E);if(N)return{decision:e.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":N}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,K);if(z.decision===e.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:e.NOT_RECORD}}toString(){return"DebugSampler"}}class XN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:e.RECORD_AND_SAMPLED};return{decision:e.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var G2=new iQ({preventServerStart:!0}),y2=new UN(new XN(hQ));var PN=gQ.getTracer("studio","1.0.0"),U_=vQ.getMeter("studio","1.0.0"),oQ=qQ.getLogger("studio","1.0.0"),cT=(_,x,u)=>{let T={},C=u,K=u[u.length-1];if(K!==null&&typeof K==="object"&&!Array.isArray(K)&&!(K instanceof Error)&&Object.getPrototypeOf(K)===Object.prototype)T=K,C=u.slice(0,-1);let E=C.map((N)=>{if(N instanceof Error)return`${N.name}: ${N.message}`;if(typeof N==="object")try{return JSON.stringify(N)}catch{return"[Object]"}return String(N)}).join(" ");oQ.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},hT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{cT(tT.ERROR,"ERROR",_),hT.error(..._)};console.warn=(..._)=>{cT(tT.WARN,"WARN",_),hT.warn(..._)};console.debug=(..._)=>{cT(tT.DEBUG,"DEBUG",_),hT.debug(..._)};var oT,jN=0,aT=500;function aQ(){if(oT)return;let _=performance.now()+aT;oT=setInterval(()=>{let x=performance.now();jN=Math.max(0,x-_),_=x+aT},aT),oT.unref?.()}function JN(){return aQ(),jN}var eQ=()=>U_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),QN=()=>U_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),ZN=400,lQ=100,dQ=(_)=>({"db.status":_.level==="error"?"error":"success"}),sQ=(_)=>(x)=>{let u=dQ(x);if(x.queryDurationMillis>ZN){let T=JN(),C=T>ZN/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:o_()}})}if(eQ().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function bQ(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=o_(),K=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((N)=>{let z=performance.now()-T;if(QN().record(z,{"db.pool.outcome":K?"contended":"available"}),z>lQ)if(K)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 N},(N)=>{throw QN().record(performance.now()-T,{"db.pool.outcome":"error"}),N})},_}var LN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function FN(){try{return r().databasePgSsl}catch{return!1}}function o_(){try{return r().databasePoolMax}catch{return 10}}function _Z(_){let x=bQ(new DN({connectionString:_,max:o_(),ssl:FN(),...LN})),u=new WN({pool:x});return{type:"postgres",db:new rQ({dialect:u,log:sQ(x)}),pool:x}}function j_(){return r().databaseUrl}function RN(_){let x=_||j_();return new WN({pool:new DN({connectionString:x,max:o_(),ssl:FN(),...LN})})}function xZ(_){let x=_||j_();return _Z(x)}async function YN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===X_)X_=null}var X_=null;function rT(){if(!X_)X_=xZ(j_());return X_}async function HN(_){let u={database:RN(_||j_()),plugins:[CZ({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),TZ(),KZ(),NZ(),PZ(),zZ({loginPage:"/login"}),mZ(),EZ({sendMagicLink:async()=>{}}),$Z({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:K}=await uZ(u);if(!T.length&&!C.length)return"up to date";return await K(),`${C.length+T.length} table(s) migrated`}async function BN(_,x){return(await l`
2018
2018
  SELECT table_name FROM information_schema.tables
2019
2019
  WHERE table_schema='public' AND table_name=${x}
2020
- `.execute(_)).rows.length>0}async function $Z(_){if(await BN(_,"plugin_migrations"))return;await l`
2020
+ `.execute(_)).rows.length>0}async function UZ(_){if(await BN(_,"plugin_migrations"))return;await l`
2021
2021
  CREATE TABLE plugin_migrations (
2022
2022
  plugin_id TEXT NOT NULL,
2023
2023
  name TEXT NOT NULL,
2024
2024
  timestamp TEXT NOT NULL,
2025
2025
  PRIMARY KEY (plugin_id, name)
2026
2026
  )
2027
- `.execute(_)}async function UZ(_){if(!await BN(_,"kysely_migration"))return;let x=await l`
2027
+ `.execute(_)}async function XZ(_){if(!await BN(_,"kysely_migration"))return;let x=await l`
2028
2028
  SELECT name, timestamp FROM kysely_migration
2029
2029
  WHERE name LIKE '%/%'
2030
2030
  `.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 K=C.indexOf("/");if(K===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let E=C.substring(0,K),N=C.substring(K+1);try{await l`
@@ -2035,4 +2035,4 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
2035
2035
  WHERE plugin_id = ${E} AND name = ${N}
2036
2036
  `.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${N}, keeping in old table`);continue}}await l`
2037
2037
  DELETE FROM kysely_migration WHERE name = ${u}
2038
- `.execute(_)}}async function XZ(_){await $Z(_),await UZ(_);let x=new MN({db:_,provider:{getMigrations:()=>Promise.resolve(gT)}}),{error:u,results:T}=await x.migrateToLatest(),C=0;if(T?.forEach((K)=>{if(K.status==="Success")C++;else if(K.status==="Error")console.error(`Failed to execute migration "${K.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function jZ(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await HN();let K=u??rT(),E=async()=>{if(!x&&!u)await YN(K).catch((N)=>{console.warn("Warning: Error closing database:",N)})};try{let N=await XZ(K.db);return await E(),{betterAuth:C,kysely:N}}catch(N){throw await E(),N}}async function m7(){let _=rT(),x=new MN({db:_.db,provider:{getMigrations:()=>Promise.resolve(gT)}}),{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 jZ(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{XZ as runKyselyMigrations,jZ as migrateToLatest,m7 as migrateDown};
2038
+ `.execute(_)}}async function jZ(_){await UZ(_),await XZ(_);let x=new MN({db:_,provider:{getMigrations:()=>Promise.resolve(gT)}}),{error:u,results:T}=await x.migrateToLatest(),C=0;if(T?.forEach((K)=>{if(K.status==="Success")C++;else if(K.status==="Error")console.error(`Failed to execute migration "${K.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function JZ(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await HN();let K=u??rT(),E=async()=>{if(!x&&!u)await YN(K).catch((N)=>{console.warn("Warning: Error closing database:",N)})};try{let N=await jZ(K.db);return await E(),{betterAuth:C,kysely:N}}catch(N){throw await E(),N}}async function C7(){let _=rT(),x=new MN({db:_.db,provider:{getMigrations:()=>Promise.resolve(gT)}}),{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 JZ(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{jZ as runKyselyMigrations,JZ as migrateToLatest,C7 as migrateDown};