decocms 4.402.1 → 4.403.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/dist/client/assets/{AlertCircle-DcHwjWsq.js → AlertCircle-BjnxyDOP.js} +1 -1
  2. package/dist/client/assets/{AreaChart-BPY6McAI.js → AreaChart-BgjldTZ3.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-Bkin1mI_.js → ArrowLeft-DQ9UKKAN.js} +1 -1
  4. package/dist/client/assets/{ArrowRight-5pCNMYve.js → ArrowRight-DiT079bV.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-BBAz-eci.js → ArrowUp-BKoObjW-.js} +1 -1
  6. package/dist/client/assets/{CartesianChart-Jh2jk1q9.js → CartesianChart-E8ZbYInN.js} +1 -1
  7. package/dist/client/assets/{Check-D8Zqb1HC.js → Check-DAeVWel0.js} +1 -1
  8. package/dist/client/assets/{CheckCircle-CF8WeHYg.js → CheckCircle-i5UWgig8.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-CGDgj0bm.js → ChevronUp-BZ-l57nk.js} +1 -1
  10. package/dist/client/assets/{Copy01-C9mP-VM4.js → Copy01-DAVjKSIW.js} +1 -1
  11. package/dist/client/assets/{CreditCard01-DQsr79v7.js → CreditCard01-BdF-cK8s.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-DpAeUNyz.js → DotsVertical-Cwch2oVB.js} +1 -1
  13. package/dist/client/assets/{ErrorBarContext-CwmIk3tm.js → ErrorBarContext-BcIn9bAS.js} +1 -1
  14. package/dist/client/assets/{Eye-DpBHj09D.js → Eye-DQ7cfCM0.js} +1 -1
  15. package/dist/client/assets/{Globe04-vwBxz8j-.js → Globe04-DKoPzLrY.js} +1 -1
  16. package/dist/client/assets/{Image01-CWl1q5TL.js → Image01-DbwBpUqU.js} +1 -1
  17. package/dist/client/assets/{Key01-BdZlsNHY.js → Key01-zwp6W4d5.js} +1 -1
  18. package/dist/client/assets/{LayoutLeft-BCyzo03m.js → LayoutLeft-C-SKczLZ.js} +1 -1
  19. package/dist/client/assets/{Line-D3dMYTRZ.js → Line-Ded98G6Q.js} +1 -1
  20. package/dist/client/assets/{Link01-DL0Bhiy8.js → Link01-zc_yw7bC.js} +1 -1
  21. package/dist/client/assets/{LinkExternal01-Bzm59G9x.js → LinkExternal01-CXDDMqr6.js} +1 -1
  22. package/dist/client/assets/{Monitor01-BWry3mi8.js → Monitor01-DWGOwDQg.js} +1 -1
  23. package/dist/client/assets/{Palette-QMR4FKys.js → Palette-DWlnTZiX.js} +1 -1
  24. package/dist/client/assets/{Plus-BUY7Ud4X.js → Plus-qxuO6WDR.js} +1 -1
  25. package/dist/client/assets/{SearchMd-BZrJSLPd.js → SearchMd-DX0K-HMy.js} +1 -1
  26. package/dist/client/assets/{Sector-DDD99rSB.js → Sector-B3qdp4tS.js} +1 -1
  27. package/dist/client/assets/{Share07-lQLk_Wuy.js → Share07-BnshXTQj.js} +1 -1
  28. package/dist/client/assets/{Sun-BVJsSwmV.js → Sun-ANdrraHV.js} +1 -1
  29. package/dist/client/assets/{Tool01-eWiBwjAj.js → Tool01-TjgiGeiC.js} +1 -1
  30. package/dist/client/assets/{Trash01-CytDsT4G.js → Trash01-CrHs9whM.js} +1 -1
  31. package/dist/client/assets/{Upload01-CDaZdY6S.js → Upload01-C5ztKcks.js} +1 -1
  32. package/dist/client/assets/{User01-Co__-w2M.js → User01-CXM1GVfD.js} +1 -1
  33. package/dist/client/assets/{UserSquare-DWwkQbY_.js → UserSquare-opUUQIJ1.js} +1 -1
  34. package/dist/client/assets/{Users01-DAz3tepP.js → Users01-5Z8_4Xc4.js} +1 -1
  35. package/dist/client/assets/{X-DAJc3BKO.js → X-DmIzVIVO.js} +1 -1
  36. package/dist/client/assets/{XClose-BNaGgCB0.js → XClose-Ck6U0czU.js} +1 -1
  37. package/dist/client/assets/{Zap-Cku-mkoY.js → Zap-DA1b9hd1.js} +1 -1
  38. package/dist/client/assets/{ZoomOut-DdkoWs_x.js → ZoomOut-Dcywub4h.js} +1 -1
  39. package/dist/client/assets/{access-gate-BhuVj9y1.js → access-gate-MDdmDxXn.js} +1 -1
  40. package/dist/client/assets/{add-connection-dialog-Df12oKBz.js → add-connection-dialog-DU7LzF51.js} +1 -1
  41. package/dist/client/assets/{agent-analytics-DbTHKQ1k.js → agent-analytics-wlF8_i7k.js} +1 -1
  42. package/dist/client/assets/agent-app-BpLFU4fH.js +1 -0
  43. package/dist/client/assets/agent-assets-CmfaU4i1.js +1 -0
  44. package/dist/client/assets/{agent-automation-CuAepk_l.js → agent-automation-CaO9571m.js} +1 -1
  45. package/dist/client/assets/{agent-automations-Bj04SxRa.js → agent-automations-BNHRsCg2.js} +1 -1
  46. package/dist/client/assets/{agent-connect-sources-BCyCM1tV.js → agent-connect-sources-Dhhwa0F6.js} +1 -1
  47. package/dist/client/assets/agent-deck-idtinKR_.js +1 -0
  48. package/dist/client/assets/{agent-e2e-C-5GcU_j.js → agent-e2e-CjqnHGPK.js} +1 -1
  49. package/dist/client/assets/{agent-experiments-C8LQkh0S.js → agent-experiments-BJgr6c6L.js} +1 -1
  50. package/dist/client/assets/{agent-file-iVhCT82h.js → agent-file-DTsmPXS9.js} +1 -1
  51. package/dist/client/assets/{agent-git-3yyAe1K7.js → agent-git-zLHFVqcf.js} +2 -2
  52. package/dist/client/assets/{agent-hosting-DDQwutKA.js → agent-hosting-Bd611big.js} +1 -1
  53. package/dist/client/assets/{agent-icon-BvX9_a8p.js → agent-icon-CPkpuu5N.js} +1 -1
  54. package/dist/client/assets/agent-library-file-MlJkgMqI.js +1 -0
  55. package/dist/client/assets/{agent-monitor-Cb-4CMIV.js → agent-monitor-NiXXUkxV.js} +1 -1
  56. package/dist/client/assets/{agent-overview-DGYqyfwa.js → agent-overview-Cy5phgJk.js} +1 -1
  57. package/dist/client/assets/agent-settings-CrMnMoYM.js +1 -0
  58. package/dist/client/assets/agent-site-editor-code-D8cBK_Ux.js +2 -0
  59. package/dist/client/assets/{agent-site-editor-content-DTjzis44.js → agent-site-editor-content-a5TI2r7z.js} +3 -3
  60. package/dist/client/assets/{agent-site-editor-preview-CjO8bl2l.js → agent-site-editor-preview-gHcJBdxE.js} +3 -3
  61. package/dist/client/assets/{agent-site-editor-DZsDoL4C.js → agent-site-editor-xAaHN9ew.js} +1 -1
  62. package/dist/client/assets/agent-view-Bohb1wKC.js +1 -0
  63. package/dist/client/assets/{agent-view-guard-DKeKGOgB.js → agent-view-guard-tp4TNcN4.js} +1 -1
  64. package/dist/client/assets/{agents-list-VW3RCSuu.js → agents-list-Iqj0VESU.js} +1 -1
  65. package/dist/client/assets/{ai-providers-DmdvF_P2.js → ai-providers-BzGiZdMW.js} +1 -1
  66. package/dist/client/assets/{alert-BWOy_aTe.js → alert-Cs-bStiD.js} +1 -1
  67. package/dist/client/assets/{alert-dialog-BUIr72GF.js → alert-dialog-BqYCADnJ.js} +1 -1
  68. package/dist/client/assets/{analytics-sections-CtJSDTKq.js → analytics-sections-DTymFcLM.js} +1 -1
  69. package/dist/client/assets/{api-keys-BkC5Tf1A.js → api-keys-BeBXKTTu.js} +1 -1
  70. package/dist/client/assets/api-keys-CL0QJc9S.js +1 -0
  71. package/dist/client/assets/app-editor-CR1c2RpF.js +1 -0
  72. package/dist/client/assets/{asset-utils-CCxUxZJl.js → asset-utils-CFWp7R-O.js} +1 -1
  73. package/dist/client/assets/{auth-D8auDfWe.js → auth-DMDdodew.js} +1 -1
  74. package/dist/client/assets/{auth-catchall-Bc-Nu92V.js → auth-catchall-CnzMelD2.js} +1 -1
  75. package/dist/client/assets/{auth-entry-BwKPXJEb.js → auth-entry-CB9sp4oM.js} +1 -1
  76. package/dist/client/assets/{auth-split-layout-34Nf6GFY.js → auth-split-layout-CCJSBMY1.js} +1 -1
  77. package/dist/client/assets/{authenticate-and-persist-oauth-xX05HUt0.js → authenticate-and-persist-oauth-CNlmBCGw.js} +1 -1
  78. package/dist/client/assets/{automation-list-row-BjKSRD_8.js → automation-list-row-WR8tLDcb.js} +1 -1
  79. package/dist/client/assets/{automation-runs-DYTaC7v8.js → automation-runs-CMmjYDxj.js} +1 -1
  80. package/dist/client/assets/{automations-Dh1bOrz6.js → automations-DjMvE8Jp.js} +1 -1
  81. package/dist/client/assets/{autosend-CAruNR-r.js → autosend-o13Aw1Rn.js} +1 -1
  82. package/dist/client/assets/{avatar-DpIdIzyq.js → avatar-D35e4GmC.js} +1 -1
  83. package/dist/client/assets/{badge-Cz4FrB04.js → badge-B194cO51.js} +1 -1
  84. package/dist/client/assets/{block-document-DBd3EXVE.js → block-document-BOCciQCf.js} +1 -1
  85. package/dist/client/assets/{blocks-preview-workspace-context-CagHfewh.js → blocks-preview-workspace-context-CBbcF7mQ.js} +1 -1
  86. package/dist/client/assets/{buckets-pLKwt15L.js → buckets-CaYRkeTq.js} +1 -1
  87. package/dist/client/assets/{build-improve-prompt-doc-DktDRS2O.js → build-improve-prompt-doc-PevJByNh.js} +1 -1
  88. package/dist/client/assets/{calendar-D1XYfb8U.js → calendar-C6nVhblX.js} +1 -1
  89. package/dist/client/assets/{capability-load-error-C7vdFk9B.js → capability-load-error-Gr2lFmRO.js} +1 -1
  90. package/dist/client/assets/{cards-DwAzndr5.js → cards-gLcUNsCS.js} +1 -1
  91. package/dist/client/assets/category-editor-BL-y4acD.js +1 -0
  92. package/dist/client/assets/{chart-PWKZfojU.js → chart-DaTqNVF8.js} +1 -1
  93. package/dist/client/assets/{chat-context-lntumHEL.js → chat-context-WNSIRKCQ.js} +1 -1
  94. package/dist/client/assets/{chat-draft-vzCx0JHx.js → chat-draft-BcyCtTKR.js} +1 -1
  95. package/dist/client/assets/{checkbox-CjzMziEV.js → checkbox-JdVFVT9j.js} +1 -1
  96. package/dist/client/assets/{choose-editor-Dau4YBRD.js → choose-editor-KLJrpSbS.js} +1 -1
  97. package/dist/client/assets/{claim-phase-copy-CKjixjui.js → claim-phase-copy-DWojSJiP.js} +1 -1
  98. package/dist/client/assets/{cli-auth-success-DYzdHJrD.js → cli-auth-success-RutxCdeJ.js} +1 -1
  99. package/dist/client/assets/{client-icons-DsW6C1D5.js → client-icons-iHLtcmNR.js} +1 -1
  100. package/dist/client/assets/{collapsible-C1N5Vk5A.js → collapsible-Cvuvqexz.js} +1 -1
  101. package/dist/client/assets/{collection-detail-CpyWy-pY.js → collection-detail-BPtNs1k-.js} +1 -1
  102. package/dist/client/assets/{collection-display-button-DDhY9dMS.js → collection-display-button-CfKd9s7o.js} +1 -1
  103. package/dist/client/assets/{collection-search-hFSvTg9q.js → collection-search-Dj-lj2Fa.js} +1 -1
  104. package/dist/client/assets/{collection-table-wrapper-CoSdC7p-.js → collection-table-wrapper-DZhdr5fM.js} +1 -1
  105. package/dist/client/assets/{collection-tabs-CB5jU9UN.js → collection-tabs-glsScWrF.js} +1 -1
  106. package/dist/client/assets/{combobox-D6DckToA.js → combobox-CRDHNq4d.js} +1 -1
  107. package/dist/client/assets/{command-M2XMNX_S.js → command-CaZijnVF.js} +1 -1
  108. package/dist/client/assets/{companion-mcps-section-B9h24TwK.js → companion-mcps-section-BkRhUSqK.js} +1 -1
  109. package/dist/client/assets/{connect-kPokwQd1.js → connect-Ciw6e4mA.js} +1 -1
  110. package/dist/client/assets/{connect-layout-BLRcrSQ6.js → connect-layout-D1t_CVe0.js} +1 -1
  111. package/dist/client/assets/{connection-DNxakCqK.js → connection-Bp_V6T8B.js} +1 -1
  112. package/dist/client/assets/{connection-card-B_Iux5tH.js → connection-card-CtvZJL9l.js} +1 -1
  113. package/dist/client/assets/{connection-detail-X7jG3k4W.js → connection-detail-Df_r-qH6.js} +1 -1
  114. package/dist/client/assets/{connection-form-helpers-Diud5YKf.js → connection-form-helpers-BsreWXIJ.js} +1 -1
  115. package/dist/client/assets/{connections-CdmbRwtQ.js → connections-CK-Ua6Mw.js} +1 -1
  116. package/dist/client/assets/context-BM8vfIaN.js +1 -0
  117. package/dist/client/assets/{create-organization-dialog-Dvo8jU8X.js → create-organization-dialog-BwjjbQTa.js} +1 -1
  118. package/dist/client/assets/{decofile-api-CRY_R36f.js → decofile-api-SdRYqTHk.js} +1 -1
  119. package/dist/client/assets/{decopilot-B9r80dff.js → decopilot-CZjF5g1z.js} +1 -1
  120. package/dist/client/assets/{dialog-DZbrQs4a.js → dialog-GV2-AWhM.js} +1 -1
  121. package/dist/client/assets/{discover-N-k9SPj2.js → discover-BvsLStXF.js} +1 -1
  122. package/dist/client/assets/{domain-settings-DaO7iyKF.js → domain-settings-D6Vd7rgv.js} +1 -1
  123. package/dist/client/assets/{download-app-dialog-Cc26MdhV.js → download-app-dialog-CwDsIUWZ.js} +1 -1
  124. package/dist/client/assets/{drawer-B5y-1Csa.js → drawer-BpYKYeO-.js} +1 -1
  125. package/dist/client/assets/{editor-BYzs-ptR.js → editor-D-V05JcK.js} +1 -1
  126. package/dist/client/assets/{empty-state-sf1-Jq0W.js → empty-state-BIGrNuvN.js} +1 -1
  127. package/dist/client/assets/{empty-state-ypVDBd57.js → empty-state-DD1de6E_.js} +1 -1
  128. package/dist/client/assets/{extract-connection-data-DjI_aoBC.js → extract-connection-data-CDeCZEXj.js} +1 -1
  129. package/dist/client/assets/{feature-gate-DcRjQ5be.js → feature-gate-CVihx7r6.js} +1 -1
  130. package/dist/client/assets/{feature-paywall-BJyKoG94.js → feature-paywall-BWXzTC8M.js} +1 -1
  131. package/dist/client/assets/{file-explorer-4Pc4NHzH.js → file-explorer-C8-AkN7L.js} +1 -1
  132. package/dist/client/assets/{file-preview-BEbWQaxd.js → file-preview-DCDQ1qgJ.js} +1 -1
  133. package/dist/client/assets/{file-share-button-c3pbTUkm.js → file-share-button-Cty0rZxy.js} +1 -1
  134. package/dist/client/assets/{file-type-icon-M-h3H6gl.js → file-type-icon-C06txfjh.js} +1 -1
  135. package/dist/client/assets/{folder-icon-u0aPfhqN.js → folder-icon-D94yBI09.js} +1 -1
  136. package/dist/client/assets/{form-BW5sQRmk.js → form-CeykBl5J.js} +1 -1
  137. package/dist/client/assets/{gateway-client-Iyhaszzo.js → gateway-client-Bv7LvgK9.js} +1 -1
  138. package/dist/client/assets/{general-BvHqxpPY.js → general-D80iGMZp.js} +1 -1
  139. package/dist/client/assets/{github-icon-BDxNO7KC.js → github-icon-CbIIkcig.js} +1 -1
  140. package/dist/client/assets/{home-5wJZqSWV.js → home-Ckz9i9hX.js} +1 -1
  141. package/dist/client/assets/{hooks-DWWfCdjK.js → hooks-y4FNzMnr.js} +1 -1
  142. package/dist/client/assets/{icon-button-CtJzFHej.js → icon-button-eT6FWsHz.js} +1 -1
  143. package/dist/client/assets/{index-BO05OYcW.js → index-BawJz1J9.js} +1 -1
  144. package/dist/client/assets/{index--em0zeg6.js → index-BhpvncYH.js} +1 -1
  145. package/dist/client/assets/{index-ziWxoYuo.js → index-CC25Ppah.js} +39 -39
  146. package/dist/client/assets/{index-CS_gB0YL.js → index-CESNu6n_.js} +1 -1
  147. package/dist/client/assets/{index-fHAcll79.js → index-CKT6eBt7.js} +1 -1
  148. package/dist/client/assets/{index-sefeb9SI.js → index-CMWq57js.js} +1 -1
  149. package/dist/client/assets/{index-9mA_jLNn.js → index-ClcQkcu8.js} +1 -1
  150. package/dist/client/assets/{index-CC84NaKX.js → index-DQZsFtMU.js} +1 -1
  151. package/dist/client/assets/{index-BTBWEo6K.js → index-DVEm55Ak.js} +1 -1
  152. package/dist/client/assets/{index-BICcivlc.js → index-DhDOCrMt.js} +1 -1
  153. package/dist/client/assets/{index-6cM3T3JU.js → index-DjPOBo3H.js} +1 -1
  154. package/dist/client/assets/{index-DMC1gEI3.js → index-Dn2PGa-1.js} +1 -1
  155. package/dist/client/assets/{index-B_nJnclR.js → index-bkwORM24.js} +1 -1
  156. package/dist/client/assets/{index-redirect-Bup6rHGm.js → index-redirect-DA2gVoAj.js} +1 -1
  157. package/dist/client/assets/{index-By68j_mZ.js → index-sjAGIPtv.js} +1 -1
  158. package/dist/client/assets/{infiniteQueryObserver-C0scbCv9.js → infiniteQueryObserver-BKtbJar9.js} +1 -1
  159. package/dist/client/assets/{infra-billing-DZvKZXmT.js → infra-billing-xtFcZesZ.js} +1 -1
  160. package/dist/client/assets/{input-CXPy1lnR.js → input-BkFUax8j.js} +1 -1
  161. package/dist/client/assets/{input-CJpGQ1Th.js → input-DwcsciNr.js} +1 -1
  162. package/dist/client/assets/{input-CztG7UMa.js → input-mcA88pmm.js} +1 -1
  163. package/dist/client/assets/{integration-icon-BzvUNmRE.js → integration-icon-DzNK1v4_.js} +1 -1
  164. package/dist/client/assets/{label-_3WYFdo5.js → label-5K8407_a.js} +1 -1
  165. package/dist/client/assets/{last-preview-page-CHWyRhbr.js → last-preview-page-BFJ4AUvo.js} +1 -1
  166. package/dist/client/assets/{layout-DYIHs9kD.js → layout-Cbc-ZMTn.js} +1 -1
  167. package/dist/client/assets/{legacy-agents-deep-DBTnH6bL.js → legacy-agents-deep-CuLGH4ta.js} +1 -1
  168. package/dist/client/assets/{legacy-main-redirect-BsYq-xiI.js → legacy-main-redirect-5ChwjO4K.js} +1 -1
  169. package/dist/client/assets/{library-Do40Vk3o.js → library-FuZGXdY7.js} +1 -1
  170. package/dist/client/assets/{login-Btr57Seb.js → login-BESokYtj.js} +1 -1
  171. package/dist/client/assets/{markdown-BA0WefIr.js → markdown-BU3lUbXy.js} +1 -1
  172. package/dist/client/assets/{mcp-app-renderer-BMekd9hK.js → mcp-app-renderer-DT5aj_bA.js} +1 -1
  173. package/dist/client/assets/{mcp-oauth-9MW-5Yis.js → mcp-oauth-CGCjtFIL.js} +1 -1
  174. package/dist/client/assets/{members-C1yb5hTi.js → members-D6d3YDya.js} +1 -1
  175. package/dist/client/assets/{message-templates-BreVPcoU.js → message-templates-BJgQYm2J.js} +1 -1
  176. package/dist/client/assets/{mini-report-page-C4fct7wn.js → mini-report-page-b1QX6rLb.js} +1 -1
  177. package/dist/client/assets/{mock-board-BtM1Rw_K.js → mock-board-B8nkK2VT.js} +3 -3
  178. package/dist/client/assets/{monaco-editor-Rppk41ht.js → monaco-editor-BfhKEQLl.js} +1 -1
  179. package/dist/client/assets/{monitoring-stats-row-Cc7ItOSd.js → monitoring-stats-row-BWEDudJY.js} +1 -1
  180. package/dist/client/assets/{multi-select-3KqHCA4E.js → multi-select-Mgyr0yZF.js} +1 -1
  181. package/dist/client/assets/{mustache-_Bjx0slz.js → mustache-DlIZk22M.js} +1 -1
  182. package/dist/client/assets/{oauth-callback-Bcy-6PY_.js → oauth-callback-C6cn0WJr.js} +1 -1
  183. package/dist/client/assets/{oauth-callback-ai-provider-ly_LHSFd.js → oauth-callback-ai-provider-3cLyFWDl.js} +1 -1
  184. package/dist/client/assets/{onboarding-CbAB8H9h.js → onboarding-6J2rn57y.js} +1 -1
  185. package/dist/client/assets/{optimistic-project-sidebar-views-BEr3crxf.js → optimistic-project-sidebar-views-DN1bS66D.js} +1 -1
  186. package/dist/client/assets/{org-file-open-context--mCB_iQy.js → org-file-open-context-CxjyfiTf.js} +1 -1
  187. package/dist/client/assets/{organization-choice-BsW0tsr0.js → organization-choice-Ci76yuJO.js} +1 -1
  188. package/dist/client/assets/{orgs-DqNq_SYU.js → orgs-ChszBSbG.js} +1 -1
  189. package/dist/client/assets/{page-seo-form-DojL7wpr.js → page-seo-form-COrevNmR.js} +1 -1
  190. package/dist/client/assets/{pair-B8zmeOHa.js → pair-h-AKbDiX.js} +7 -7
  191. package/dist/client/assets/{plan-ladder-B4Yh8okh.js → plan-ladder-DdvajrNu.js} +1 -1
  192. package/dist/client/assets/{popover-Bk7hW0ey.js → popover-Ckvyzpb1.js} +1 -1
  193. package/dist/client/assets/post-calendar-DK_KPx-Z.js +1 -0
  194. package/dist/client/assets/{post-editor-BT9uGcZD.js → post-editor-BguSWLmG.js} +2 -2
  195. package/dist/client/assets/{preview-content-QoDE1rCY.js → preview-content-C_A2MJh2.js} +1 -1
  196. package/dist/client/assets/{preview-dialog-C9P8-JXO.js → preview-dialog-Bpp6PBmH.js} +1 -1
  197. package/dist/client/assets/{profile-io3wVtBH.js → profile-COoSSb-C.js} +1 -1
  198. package/dist/client/assets/{project-app-view-uS1Oyo_z.js → project-app-view-B-CtRlEH.js} +1 -1
  199. package/dist/client/assets/{project-feed-BOlh1fkU.js → project-feed-CijFeCZm.js} +1 -1
  200. package/dist/client/assets/{project-icon-Dqsi312T.js → project-icon-B8aarRYC.js} +1 -1
  201. package/dist/client/assets/project-reports-DM8FxeCU.js +1 -0
  202. package/dist/client/assets/project-tasks-y98lccVT.js +1 -0
  203. package/dist/client/assets/{prompts-BG-MPyn-.js → prompts-DtZMitBK.js} +1 -1
  204. package/dist/client/assets/record-editor-eoqHGqFA.js +1 -0
  205. package/dist/client/assets/{redirect-editor-JipDfipG.js → redirect-editor-d9lKn-Hk.js} +1 -1
  206. package/dist/client/assets/reports-B2pQ333W.js +1 -0
  207. package/dist/client/assets/{reports-onboarding-Cy3jqQvd.js → reports-onboarding-CRlCaHnm.js} +1 -1
  208. package/dist/client/assets/{reports-tab-o_wsXSh7.js → reports-tab-BKjilIxh.js} +2 -2
  209. package/dist/client/assets/{reports-DKfv6F8w.js → reports-w3F-AXn2.js} +1 -1
  210. package/dist/client/assets/{repositories-CSGkwVyT.js → repositories-CPDrDXOZ.js} +1 -1
  211. package/dist/client/assets/{repository-import-picker-CQVzq3BU.js → repository-import-picker-DgRDvroV.js} +1 -1
  212. package/dist/client/assets/{repository-picker-BdMF9zgM.js → repository-picker-DJ0Bq0Gn.js} +1 -1
  213. package/dist/client/assets/{require-capability-DEtYkpLS.js → require-capability-LrdDjhZ1.js} +1 -1
  214. package/dist/client/assets/{required-auth-layout-CAKi6iDw.js → required-auth-layout-DxuleY4O.js} +1 -1
  215. package/dist/client/assets/{reset-password-CjXeqPrv.js → reset-password-CviYfK6_.js} +1 -1
  216. package/dist/client/assets/{resizable-Dwlj_5ft.js → resizable-DI9TRgqq.js} +1 -1
  217. package/dist/client/assets/resolve-tab-icon-DXJnhSrQ.js +1 -0
  218. package/dist/client/assets/{review-settings-BUpwP2dx.js → review-settings-B9NDOqi3.js} +1 -1
  219. package/dist/client/assets/{rich-text-link-control-DNvgXQgl.js → rich-text-link-control-CGgVTmqZ.js} +1 -1
  220. package/dist/client/assets/{roles-BTKe5RPi.js → roles-DD9S2BWe.js} +1 -1
  221. package/dist/client/assets/route-B_khi6wn.js +1 -0
  222. package/dist/client/assets/route-C2cWZSDL.js +1 -0
  223. package/dist/client/assets/{route-CJkw61Zc.js → route-Cd4OR2Vk.js} +1 -1
  224. package/dist/client/assets/{route-page-header-BX_04V6X.js → route-page-header-C3phk_gY.js} +1 -1
  225. package/dist/client/assets/{runnable-block-editor-BqGS6HoQ.js → runnable-block-editor-CqnIW6eK.js} +1 -1
  226. package/dist/client/assets/{sandbox-lifecycle-context-CMg8X78k.js → sandbox-lifecycle-context-DQzttex0.js} +1 -1
  227. package/dist/client/assets/schema-DW2eCFm-.js +1 -0
  228. package/dist/client/assets/{scroll-area-WP6xUrg2.js → scroll-area-CRSx-oF3.js} +1 -1
  229. package/dist/client/assets/{search-input-CzMI7SbY.js → search-input-DZFOIFWl.js} +1 -1
  230. package/dist/client/assets/{search-toggle-_SwtmigM.js → search-toggle-C8zsunL3.js} +1 -1
  231. package/dist/client/assets/{secret-picker-B7LbtI2k.js → secret-picker-BSKOhI0I.js} +1 -1
  232. package/dist/client/assets/{secrets-B5P1IBT4.js → secrets-DBJKBNLw.js} +1 -1
  233. package/dist/client/assets/{sections-editor-DIx6r2h9.js → sections-editor-DZc2rx0-.js} +1 -1
  234. package/dist/client/assets/{select-8KXSGRLl.js → select-Cfsqli3Z.js} +1 -1
  235. package/dist/client/assets/{select-model-Bo57k2gC.js → select-model-CyT9vd4S.js} +1 -1
  236. package/dist/client/assets/{seo-editor-BCM5fWif.js → seo-editor-DGGq3jmD.js} +1 -1
  237. package/dist/client/assets/{separator-BW4l_JXy.js → separator-BSrhq7Cs.js} +1 -1
  238. package/dist/client/assets/{settings-tab-CvDc9lSQ.js → settings-tab-Jt6e4-NS.js} +1 -1
  239. package/dist/client/assets/{sheet-BoIBD2fU.js → sheet-BhcdHJA0.js} +1 -1
  240. package/dist/client/assets/{shell-layout-C4Rn0yyM.js → shell-layout-Bq2laVk4.js} +1 -1
  241. package/dist/client/assets/{skill-preview-CQYYDECQ.js → skill-preview-XcnB5GU4.js} +1 -1
  242. package/dist/client/assets/{skills-ByEvh5tv.js → skills-Bz3eOc9s.js} +1 -1
  243. package/dist/client/assets/{sso-CmLvBErH.js → sso-w4y2xRSU.js} +1 -1
  244. package/dist/client/assets/{suggestion-tuFcyOKm.js → suggestion-DpmAiVaO.js} +1 -1
  245. package/dist/client/assets/{switch-DPTro45D.js → switch-EEYQU2u1.js} +1 -1
  246. package/dist/client/assets/{synced-repos-B4c-CrQ7.js → synced-repos-DUfGHrhe.js} +1 -1
  247. package/dist/client/assets/tab-icon-glyph-CZyIWS8W.js +1 -0
  248. package/dist/client/assets/{table-C7ZZ1Gh3.js → table-CvgH2_1o.js} +1 -1
  249. package/dist/client/assets/{tabs-CI-qOCoA.js → tabs-B6noAKK3.js} +1 -1
  250. package/dist/client/assets/{task-board-DPuIO3lj.js → task-board-DQdrQPfw.js} +1 -1
  251. package/dist/client/assets/{task-route-B502sFo7.js → task-route-CuzZF1yz.js} +1 -1
  252. package/dist/client/assets/{task-status-CY7tmQAt.js → task-status-SfODZErT.js} +1 -1
  253. package/dist/client/assets/{taskboard-analytics-wJrWcpXu.js → taskboard-analytics-CerK1Pau.js} +1 -1
  254. package/dist/client/assets/{tasks-DdJpYlFL.js → tasks-D-ll0tka.js} +1 -1
  255. package/dist/client/assets/tasks-gcF8REwt.js +1 -0
  256. package/dist/client/assets/{textarea-BncilA97.js → textarea-Czh9V7Yz.js} +1 -1
  257. package/dist/client/assets/{thread-analytics-ApATKMqj.js → thread-analytics-jaTbSvK6.js} +1 -1
  258. package/dist/client/assets/{thread-button-DJeTkAyH.js → thread-button-1Q3JXQEU.js} +1 -1
  259. package/dist/client/assets/{thread-intent-BNnANQO5.js → thread-intent-CEfA_P9I.js} +1 -1
  260. package/dist/client/assets/{thread-route-CBWg87G3.js → thread-route-Bqw7sU0F.js} +1 -1
  261. package/dist/client/assets/{thread-route-M4rTxHUV.js → thread-route-uijiMPxh.js} +1 -1
  262. package/dist/client/assets/{thread-sheet-body-CFRV6F8c.js → thread-sheet-body-C9l7h07l.js} +1 -1
  263. package/dist/client/assets/{toggle-group-DnlZm5ed.js → toggle-group-lq2B3qIc.js} +1 -1
  264. package/dist/client/assets/{toolbar-icon-button-D8Zp_HQd.js → toolbar-icon-button-DOWuqRsT.js} +1 -1
  265. package/dist/client/assets/{tooltip-OlmP4Xne.js → tooltip-CxCpd2vh.js} +1 -1
  266. package/dist/client/assets/{track-B0Nkp-gO.js → track-Dhm24-m4.js} +1 -1
  267. package/dist/client/assets/{types-DXypKwsh.js → types-B6rztgnY.js} +1 -1
  268. package/dist/client/assets/{usage-stats-CAm8ll0C.js → usage-stats-BFEJJHEo.js} +1 -1
  269. package/dist/client/assets/{use-ai-providers-Lvr_1665.js → use-ai-providers-B23SXI_f.js} +1 -1
  270. package/dist/client/assets/{use-automations-81CjRTlN.js → use-automations-D-adRU5z.js} +1 -1
  271. package/dist/client/assets/{use-autosave-t6s5wMUE.js → use-autosave-Dc8uh5nF.js} +1 -1
  272. package/dist/client/assets/{use-connect-companion-BxZZw6OD.js → use-connect-companion-JFx8RLXa.js} +1 -1
  273. package/dist/client/assets/{use-connection-DXReahBl.js → use-connection-B9c3iEps.js} +1 -1
  274. package/dist/client/assets/{use-copy-DZfoedG5.js → use-copy-C57femQY.js} +1 -1
  275. package/dist/client/assets/{use-create-virtual-mcp-D3lKBA1-.js → use-create-virtual-mcp-Dfs-9sda.js} +1 -1
  276. package/dist/client/assets/{use-date-fns-locale-B6lsja9n.js → use-date-fns-locale-BFb3ULJS.js} +1 -1
  277. package/dist/client/assets/{use-debounced-autosave-D2HFk0bO.js → use-debounced-autosave-Dco5Jt9P.js} +1 -1
  278. package/dist/client/assets/{use-debounced-value-C7-JMyFp.js → use-debounced-value-IfXb0kJG.js} +1 -1
  279. package/dist/client/assets/{use-deco-credits-hhJiNpZB.js → use-deco-credits-DNa0dEA5.js} +1 -1
  280. package/dist/client/assets/{use-decopilot-events-zVeGPrg4.js → use-decopilot-events-DyDz5Dvh.js} +1 -1
  281. package/dist/client/assets/{use-delete-connection-B5GiyA_y.js → use-delete-connection-Du2Nx9s-.js} +1 -1
  282. package/dist/client/assets/{use-deployment-admin-Bw0ESsNA.js → use-deployment-admin-D6zDzsS_.js} +1 -1
  283. package/dist/client/assets/{use-entitlements-DdLeP5e8.js → use-entitlements-R7iGGl1k.js} +1 -1
  284. package/dist/client/assets/{use-fast-preview-draft-url-DmGf6kPM.js → use-fast-preview-draft-url-UqkQUKSb.js} +1 -1
  285. package/dist/client/assets/{use-file-configs-DtnzXs8S.js → use-file-configs-Cdbct8Cf.js} +1 -1
  286. package/dist/client/assets/{use-in-settings-Dvk70b-r.js → use-in-settings-CH61l7dC.js} +1 -1
  287. package/dist/client/assets/{use-infinite-scroll-OBKDpZd2.js → use-infinite-scroll-CyOQA4SB.js} +1 -1
  288. package/dist/client/assets/{use-join-requests-BR_Ts9mr.js → use-join-requests-CPo5qDn_.js} +1 -1
  289. package/dist/client/assets/use-main-panel-tabs-DT72lles.js +1 -0
  290. package/dist/client/assets/{use-mcp-auth-status-B6yMK8tP.js → use-mcp-auth-status-CE4mQood.js} +1 -1
  291. package/dist/client/assets/{use-mcp-client-D0GxBaDo.js → use-mcp-client-CgA0k7AX.js} +1 -1
  292. package/dist/client/assets/{use-mcp-prompts-CYjViP6k.js → use-mcp-prompts--gNDdjf0.js} +1 -1
  293. package/dist/client/assets/{use-mcp-tools-_g4NAjrq.js → use-mcp-tools-DjC5fBeS.js} +1 -1
  294. package/dist/client/assets/{use-members-Ct_DkclC.js → use-members-i2T2it_v.js} +1 -1
  295. package/dist/client/assets/{use-mobile-DL0BBun-.js → use-mobile-DNQy-neC.js} +1 -1
  296. package/dist/client/assets/{use-navigate-to-agent-C0Wb0lHC.js → use-navigate-to-agent-BmpybU3_.js} +1 -1
  297. package/dist/client/assets/{use-open-billing-url-5Jl47ZN-.js → use-open-billing-url-jz-QPVzs.js} +1 -1
  298. package/dist/client/assets/{use-org-auth-client-BhlcNBON.js → use-org-auth-client-B7ZtWQAU.js} +1 -1
  299. package/dist/client/assets/{use-org-fs-BZxhCLBv.js → use-org-fs-Dax61xWP.js} +1 -1
  300. package/dist/client/assets/{use-org-sso-B67vSzPL.js → use-org-sso-0Z0wHR7c.js} +1 -1
  301. package/dist/client/assets/{use-organization-roles-DvWLvtJo.js → use-organization-roles-OVZBs-M_.js} +1 -1
  302. package/dist/client/assets/{use-organization-settings-Cj191Ewd.js → use-organization-settings-dzIa476E.js} +1 -1
  303. package/dist/client/assets/{use-panel-navigate-CxM_dPDF.js → use-panel-navigate-Dl11oG8L.js} +1 -1
  304. package/dist/client/assets/{use-project-native-view-presence-Dpkg39tr.js → use-project-native-view-presence-pXoLbAJi.js} +1 -1
  305. package/dist/client/assets/{use-project-scope-CmwWylK9.js → use-project-scope-eV1RUVZG.js} +1 -1
  306. package/dist/client/assets/{use-releases-C64Gw739.js → use-releases-D4jayvGP.js} +1 -1
  307. package/dist/client/assets/{use-reports-diagnostic-BlZh8B-b.js → use-reports-diagnostic-C7fMxKgO.js} +1 -1
  308. package/dist/client/assets/{use-route-default-main-4PMl5Y8H.js → use-route-default-main-CXl47PXA.js} +1 -1
  309. package/dist/client/assets/{use-secrets-DCi_KkhE.js → use-secrets-CvGXZI7J.js} +1 -1
  310. package/dist/client/assets/{use-section-preview-base-0PubG-2k.js → use-section-preview-base-iip3gtjU.js} +1 -1
  311. package/dist/client/assets/{use-session-runtime-BQHvzOwo.js → use-session-runtime-CXsIHSqC.js} +1 -1
  312. package/dist/client/assets/{use-tags-NI2eu5Cz.js → use-tags-DaYz9bo1.js} +1 -1
  313. package/dist/client/assets/{use-task-board-analytics-Xdiuqy_o.js → use-task-board-analytics-DEETXgb8.js} +1 -1
  314. package/dist/client/assets/{use-task-metadata-CCc0stnS.js → use-task-metadata-B50R7YVb.js} +1 -1
  315. package/dist/client/assets/{use-thread-analytics-CYxmK_WD.js → use-thread-analytics-B7GKRETB.js} +1 -1
  316. package/dist/client/assets/{use-thread-outputs-Bv992dBv.js → use-thread-outputs-a13sDbFX.js} +1 -1
  317. package/dist/client/assets/{use-virtual-mcp-D6_hi4NV.js → use-virtual-mcp-CDAUj4PY.js} +1 -1
  318. package/dist/client/assets/useInfiniteQuery-DW7bCHpf.js +1 -0
  319. package/dist/client/assets/{useQueries-Dh-P597K.js → useQueries-qsAfW5MY.js} +1 -1
  320. package/dist/client/assets/useSuspenseInfiniteQuery-DF4BukrQ.js +1 -0
  321. package/dist/client/assets/{users-D2bWKe0T.js → users-Dg0Pugfo.js} +1 -1
  322. package/dist/client/assets/{utils-Drhm0YFn.js → utils-C77-XjSJ.js} +1 -1
  323. package/dist/client/assets/variant-calendar-Bf5XWw8C.js +1 -0
  324. package/dist/client/assets/{variant-matcher-override-D83fZJgn.js → variant-matcher-override-W93uDCwe.js} +1 -1
  325. package/dist/client/assets/{view-mode-toggle-CyBHOQ0X.js → view-mode-toggle-DceLwxgk.js} +1 -1
  326. package/dist/client/assets/{virtual-mcp-BcxcIP1Z.js → virtual-mcp-DhabdkeJ.js} +1 -1
  327. package/dist/client/index.html +1 -1
  328. package/dist/server/cli.js +791 -738
  329. package/dist/server/migrate.js +288 -235
  330. package/dist/server/server.js +8 -8
  331. package/package.json +1 -1
  332. package/dist/client/assets/agent-app-Sr-2nirf.js +0 -1
  333. package/dist/client/assets/agent-assets-CK7eio8D.js +0 -1
  334. package/dist/client/assets/agent-deck-D-UCGYQX.js +0 -1
  335. package/dist/client/assets/agent-library-file-Cvi8jKHC.js +0 -1
  336. package/dist/client/assets/agent-settings-CTbjU_Gy.js +0 -1
  337. package/dist/client/assets/agent-site-editor-code-DR-g4J4J.js +0 -2
  338. package/dist/client/assets/agent-view-B6BDTAiP.js +0 -1
  339. package/dist/client/assets/api-keys-CvoR7Xp2.js +0 -1
  340. package/dist/client/assets/app-editor-BxSmqsZG.js +0 -1
  341. package/dist/client/assets/category-editor-ogyqgis9.js +0 -1
  342. package/dist/client/assets/context-D_-nNlkt.js +0 -1
  343. package/dist/client/assets/post-calendar-BV1eHaK8.js +0 -1
  344. package/dist/client/assets/project-reports-DDobh4a3.js +0 -1
  345. package/dist/client/assets/project-tasks-DQbSKuzy.js +0 -1
  346. package/dist/client/assets/record-editor-BEfIzmJ1.js +0 -1
  347. package/dist/client/assets/reports-DypWpAd4.js +0 -1
  348. package/dist/client/assets/route-CW79snE6.js +0 -1
  349. package/dist/client/assets/route-DAYL9p8i.js +0 -1
  350. package/dist/client/assets/schema-DVTBToxW.js +0 -1
  351. package/dist/client/assets/tasks-BCglhWH3.js +0 -1
  352. package/dist/client/assets/use-main-panel-tabs-D7hvsAEq.js +0 -1
  353. package/dist/client/assets/useInfiniteQuery-BGHP6rbt.js +0 -1
  354. package/dist/client/assets/useSuspenseInfiniteQuery-D4hZ-82Z.js +0 -1
  355. package/dist/client/assets/variant-calendar-aRH9J9TF.js +0 -1
@@ -1,34 +1,87 @@
1
1
  // @bun
2
- var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null,x)}var m=(_,x)=>{for(var u in x)UK(_,u,{get:x[u],enumerable:!0,configurable:!0,set:JK.bind(x,u)})};import{Migrator as PK,sql as e}from"kysely";var c_={};m(c_,{up:()=>jK,down:()=>QK});import{sql as p}from"kysely";async function jK(_){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 p`ALTER TABLE organization_settings
2
+ var ZK=Object.defineProperty;var DK=(_)=>_;function WK(_,x){this[_]=DK.bind(null,x)}var m=(_,x)=>{for(var u in x)ZK(_,u,{get:x[u],enumerable:!0,configurable:!0,set:WK.bind(x,u)})};import{Migrator as JK,sql as l}from"kysely";var h_={};m(h_,{up:()=>LK,down:()=>FK});import{sql as v}from"kysely";async function LK(_){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
- DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await p`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
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;
6
6
  EXCEPTION WHEN invalid_text_representation THEN RETURN NULL;
7
7
  END;
8
- $fn$ LANGUAGE plpgsql IMMUTABLE`.execute(_),await p`UPDATE connections SET metadata = (registry_try_jsonb(metadata) - 'enabled_plugins')::text
9
- WHERE registry_try_jsonb(metadata) ? 'enabled_plugins'`.execute(_),await p`DROP FUNCTION registry_try_jsonb(text)`.execute(_),await p`DELETE FROM connection_aggregations WHERE child_connection_id IN (
8
+ $fn$ LANGUAGE plpgsql IMMUTABLE`.execute(_),await v`UPDATE connections SET metadata = (registry_try_jsonb(metadata) - 'enabled_plugins')::text
9
+ WHERE registry_try_jsonb(metadata) ? 'enabled_plugins'`.execute(_),await v`DROP FUNCTION registry_try_jsonb(text)`.execute(_),await v`DELETE FROM connection_aggregations WHERE child_connection_id IN (
10
10
  SELECT id FROM connections
11
11
  WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
12
12
  OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
13
13
  OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')
14
- )`.execute(_),await p`DELETE FROM connections
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 QK(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var h_={};m(h_,{up:()=>WK,down:()=>ZK});import{sql as vN}from"kysely";async function WK(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await vN`
17
+ OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function FK(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var o_={};m(o_,{up:()=>RK,down:()=>YK});import{sql as iN}from"kysely";async function RK(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await iN`
18
18
  select organization_id, metadata
19
19
  from connections
20
20
  where connection_type = 'VIRTUAL'
21
21
  and metadata like '%submoduleCredentials%'
22
22
  order by updated_at asc
23
- `.execute(_),u=new Map;for(let C of x.rows){if(!C.metadata)continue;let T;try{T=JSON.parse(C.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let E of T){let K=E?.host,z=E?.secretId;if(typeof K!=="string"||!K)continue;if(typeof z!=="string"||!z)continue;let $=u.get(C.organization_id)??new Map;$.set(K,z),u.set(C.organization_id,$)}}let N=new Date().toISOString();for(let[C,T]of u){let E=JSON.stringify([...T].map(([K,z])=>({host:K,secretId:z})));await vN`
23
+ `.execute(_),u=new Map;for(let C of x.rows){if(!C.metadata)continue;let T;try{T=JSON.parse(C.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let K of T){let E=K?.host,z=K?.secretId;if(typeof E!=="string"||!E)continue;if(typeof z!=="string"||!z)continue;let $=u.get(C.organization_id)??new Map;$.set(E,z),u.set(C.organization_id,$)}}let N=new Date().toISOString();for(let[C,T]of u){let K=JSON.stringify([...T].map(([E,z])=>({host:E,secretId:z})));await iN`
24
24
  insert into organization_settings
25
25
  ("organizationId", submodule_credentials, "createdAt", "updatedAt")
26
- values (${C}, ${E}, ${N}, ${N})
26
+ values (${C}, ${K}, ${N}, ${N})
27
27
  on conflict ("organizationId") do update
28
28
  set submodule_credentials = excluded.submodule_credentials,
29
29
  "updatedAt" = excluded."updatedAt"
30
- `.execute(_)}}async function ZK(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var o_={};m(o_,{up:()=>DK,down:()=>LK});async function DK(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function LK(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var r_={};m(r_,{up:()=>FK,down:()=>RK});import{sql as a_}from"kysely";async function FK(_){await a_`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await a_`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await a_`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function RK(_){await _.schema.dropIndex("idx_threads_active_status").execute(),await _.schema.dropIndex("idx_threads_updated_at").execute(),await _.schema.dropIndex("idx_tmp_finish_persisted_at").execute()}var e_={};m(e_,{up:()=>HK,down:()=>MK});import{sql as YK}from"kysely";async function HK(_){await YK`ALTER TABLE organization_settings
31
- DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function MK(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var l_={};m(l_,{up:()=>BK,down:()=>GK});import{sql as qN}from"kysely";async function BK(_){await qN`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function GK(_){await qN`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var d_={};m(d_,{up:()=>fK,down:()=>yK});import{sql as L}from"kysely";async function fK(_){await L`
30
+ `.execute(_)}}async function YK(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var a_={};m(a_,{up:()=>HK,down:()=>MK});async function HK(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function MK(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var e_={};m(e_,{up:()=>BK,down:()=>GK});import{sql as r_}from"kysely";async function BK(_){await r_`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await r_`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await r_`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function GK(_){await _.schema.dropIndex("idx_threads_active_status").execute(),await _.schema.dropIndex("idx_threads_updated_at").execute(),await _.schema.dropIndex("idx_tmp_finish_persisted_at").execute()}var d_={};m(d_,{up:()=>OK,down:()=>SK});import{sql as L}from"kysely";var yK={title:{old:["Store Report","Commerce Discovery"],new:"Deco Score"},description:{old:["Your store's report and diagnostics","Commerce report and diagnostics","Commerce Discovery report and commerce diagnostics."],new:"Your store's Deco Score"}},fK={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},l_={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function tN(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function cN(_,x){for(let[C,T]of[[L`organization_id || '_commerce-discovery'`,yK],[L`'commerce-discovery_' || organization_id`,fK]])for(let K of["title","description"]){let{from:E,to:z}=tN(T[K],x);await L`
31
+ UPDATE connections
32
+ SET ${L.ref(K)} = ${z}
33
+ WHERE id = ${C}
34
+ AND ${L.ref(K)} = ANY(${L.val(E)}::text[])
35
+ `.execute(_)}await L`
36
+ CREATE OR REPLACE FUNCTION deco_score_try_jsonb(t text)
37
+ RETURNS jsonb AS $fn$
38
+ BEGIN
39
+ RETURN t::jsonb;
40
+ EXCEPTION WHEN others THEN
41
+ RETURN NULL;
42
+ END;
43
+ $fn$ LANGUAGE plpgsql IMMUTABLE;
44
+ `.execute(_);let{from:u,to:N}=tN(l_.label,x);await L`
45
+ WITH agents AS (
46
+ SELECT id, deco_score_try_jsonb(metadata) AS m
47
+ FROM connections
48
+ WHERE id = 'commerce-discovery_' || organization_id
49
+ ),
50
+ relabeled AS (
51
+ SELECT
52
+ a.id,
53
+ jsonb_set(
54
+ a.m,
55
+ '{ui,pinnedViews}',
56
+ (
57
+ SELECT jsonb_agg(
58
+ CASE
59
+ WHEN v ->> 'toolName' = ${l_.toolName}
60
+ AND v ->> 'label' = ANY(${L.val(u)}::text[])
61
+ THEN v || jsonb_build_object('label', ${N}::text)
62
+ ELSE v
63
+ END
64
+ ORDER BY ord
65
+ )
66
+ FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews')
67
+ WITH ORDINALITY AS t(v, ord)
68
+ )
69
+ ) AS m
70
+ FROM agents a
71
+ WHERE jsonb_typeof(a.m -> 'ui' -> 'pinnedViews') = 'array'
72
+ AND EXISTS (
73
+ SELECT 1
74
+ FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
75
+ WHERE v ->> 'toolName' = ${l_.toolName}
76
+ AND v ->> 'label' = ANY(${L.val(u)}::text[])
77
+ )
78
+ )
79
+ UPDATE connections c
80
+ SET metadata = r.m::text
81
+ FROM relabeled r
82
+ WHERE c.id = r.id
83
+ `.execute(_),await L`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function OK(_){await cN(_,"up")}async function SK(_){await cN(_,"down")}var s_={};m(s_,{up:()=>IK,down:()=>nK});import{sql as AK}from"kysely";async function IK(_){await AK`ALTER TABLE organization_settings
84
+ DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function nK(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var b_={};m(b_,{up:()=>wK,down:()=>VK});import{sql as hN}from"kysely";async function wK(_){await hN`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function VK(_){await hN`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var _x={};m(_x,{up:()=>kK,down:()=>pK});import{sql as F}from"kysely";async function kK(_){await F`
32
85
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
33
86
  RETURNS jsonb AS $fn$
34
87
  BEGIN
@@ -37,7 +90,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
37
90
  RETURN NULL;
38
91
  END;
39
92
  $fn$ LANGUAGE plpgsql IMMUTABLE;
40
- `.execute(_),await L`
93
+ `.execute(_),await F`
41
94
  CREATE OR REPLACE VIEW cd_repo_picks AS
42
95
  SELECT
43
96
  c.id AS connection_id,
@@ -47,7 +100,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
47
100
  WHERE c.id = c.organization_id || '_commerce-discovery'
48
101
  AND cd_repo_try_jsonb(c.configuration_state) ->> 'github_repo'
49
102
  ~ '^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$'
50
- `.execute(_),await L`
103
+ `.execute(_),await F`
51
104
  INSERT INTO repositories (
52
105
  organization_id, account_id, provider, host, path, web_url
53
106
  )
@@ -57,7 +110,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
57
110
  FROM cd_repo_picks p
58
111
  ORDER BY p.organization_id, lower(p.path)
59
112
  ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
60
- `.execute(_),await L`
113
+ `.execute(_),await F`
61
114
  UPDATE connections c
62
115
  SET configuration_state = (
63
116
  cd_repo_try_jsonb(c.configuration_state) || jsonb_build_object(
@@ -78,7 +131,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
78
131
  AND lower(r.path) = lower(p.path)
79
132
  WHERE c.id = p.connection_id
80
133
  AND cd_repo_try_jsonb(c.configuration_state) -> 'repository' IS NULL
81
- `.execute(_),await L`
134
+ `.execute(_),await F`
82
135
  UPDATE connections a
83
136
  SET
84
137
  repository_id = r.id,
@@ -102,7 +155,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
102
155
  || '/' ||
103
156
  coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
104
157
  ) = lower(p.path)
105
- `.execute(_),await L`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await L`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function yK(_){await L`
158
+ `.execute(_),await F`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await F`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function pK(_){await F`
106
159
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
107
160
  RETURNS jsonb AS $fn$
108
161
  BEGIN
@@ -111,13 +164,13 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
111
164
  RETURN NULL;
112
165
  END;
113
166
  $fn$ LANGUAGE plpgsql IMMUTABLE;
114
- `.execute(_),await L`
167
+ `.execute(_),await F`
115
168
  UPDATE connections c
116
169
  SET configuration_state =
117
170
  (cd_repo_try_jsonb(c.configuration_state) - 'repository')::text
118
171
  WHERE c.id = c.organization_id || '_commerce-discovery'
119
172
  AND cd_repo_try_jsonb(c.configuration_state) -> 'repository' IS NOT NULL
120
- `.execute(_),await L`
173
+ `.execute(_),await F`
121
174
  UPDATE connections a
122
175
  SET
123
176
  repository_id = NULL,
@@ -129,17 +182,17 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
129
182
  )::text
130
183
  WHERE a.id = 'commerce-discovery_' || a.organization_id
131
184
  AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
132
- `.execute(_),await L`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var b_={};m(b_,{up:()=>OK,down:()=>SK});import{sql as s_}from"kysely";async function OK(_){await s_`ALTER TABLE git_provider_accounts
185
+ `.execute(_),await F`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var ux={};m(ux,{up:()=>vK,down:()=>qK});import{sql as xx}from"kysely";async function vK(_){await xx`ALTER TABLE git_provider_accounts
133
186
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
134
187
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
135
188
  CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
136
189
  ADD CONSTRAINT git_provider_accounts_cli_check
137
190
  CHECK (auth_kind <> 'github_cli' OR
138
- (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function SK(_){await s_`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await s_`ALTER TABLE git_provider_accounts
191
+ (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function qK(_){await xx`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await xx`ALTER TABLE git_provider_accounts
139
192
  DROP CONSTRAINT git_provider_accounts_cli_check,
140
193
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
141
194
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
142
- CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var _x={};m(_x,{up:()=>AK,down:()=>IK});import{sql as gN}from"kysely";async function AK(_){await gN`
195
+ CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var mx={};m(mx,{up:()=>gK,down:()=>iK});import{sql as oN}from"kysely";async function gK(_){await oN`
143
196
  INSERT INTO "organization" (id, name, slug, "createdAt")
144
197
  SELECT
145
198
  'org_user_fs',
@@ -153,9 +206,9 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
153
206
  END,
154
207
  now()
155
208
  ON CONFLICT (id) DO NOTHING
156
- `.execute(_)}async function IK(_){await gN`
209
+ `.execute(_)}async function iK(_){await oN`
157
210
  DELETE FROM "organization" WHERE id = 'org_user_fs'
158
- `.execute(_)}var xx={};m(xx,{up:()=>nK,down:()=>wK});async function nK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function wK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var ux={};m(ux,{up:()=>VK,down:()=>kK});async function VK(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function kK(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var mx={};m(mx,{up:()=>vK,down:()=>qK});import{sql as l}from"kysely";var pK=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function iN(_,x){for(let{table:u,column:N}of pK){let C=`${u}_${N}_check`,T=x.map((E)=>`'${E}'`).join(", ");await l.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await l.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${N} IN (${T}))`).execute(_)}}async function vK(_){await iN(_,["github","gitlab","bitbucket"])}async function qK(_){await l`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await l`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await l`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await iN(_,["github","gitlab"])}var Cx={};m(Cx,{up:()=>gK,down:()=>iK});import{sql as X_}from"kysely";async function gK(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(X_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(X_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(X_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(X_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function iK(_){await _.schema.dropTable("experiments").execute()}var Nx={};m(Nx,{up:()=>cK,down:()=>hK});import{sql as tK}from"kysely";async function cK(_){await tK`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function hK(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Kx={};m(Kx,{up:()=>aK,down:()=>rK,ACTIONS:()=>Tx});import{sql as d}from"kysely";var Tx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],oK=Tx.filter((_)=>_!=="duplicate_reported");async function aK(_){await tN(_,Tx)}async function rK(_){await d`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await tN(_,oK)}async function tN(_,x){await d`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await d`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${d.join(x.map((u)=>d.lit(u)))}))`.execute(_)}var Ex={};m(Ex,{up:()=>eK,down:()=>lK});async function eK(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function lK(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var zx={};m(zx,{up:()=>dK,down:()=>sK});async function dK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function sK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Px={};m(Px,{up:()=>_E,down:()=>xE});import{sql as bK}from"kysely";async function _E(_){await bK`
211
+ `.execute(_)}var Cx={};m(Cx,{up:()=>tK,down:()=>cK});async function tK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function cK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Nx={};m(Nx,{up:()=>hK,down:()=>oK});async function hK(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function oK(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var Tx={};m(Tx,{up:()=>rK,down:()=>eK});import{sql as d}from"kysely";var aK=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function aN(_,x){for(let{table:u,column:N}of aK){let C=`${u}_${N}_check`,T=x.map((K)=>`'${K}'`).join(", ");await d.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await d.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${N} IN (${T}))`).execute(_)}}async function rK(_){await aN(_,["github","gitlab","bitbucket"])}async function eK(_){await d`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await d`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await d`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await aN(_,["github","gitlab"])}var Kx={};m(Kx,{up:()=>lK,down:()=>dK});import{sql as j_}from"kysely";async function lK(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(j_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(j_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function dK(_){await _.schema.dropTable("experiments").execute()}var Ex={};m(Ex,{up:()=>bK,down:()=>_E});import{sql as sK}from"kysely";async function bK(_){await sK`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function _E(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Px={};m(Px,{up:()=>uE,down:()=>mE,ACTIONS:()=>zx});import{sql as s}from"kysely";var zx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],xE=zx.filter((_)=>_!=="duplicate_reported");async function uE(_){await rN(_,zx)}async function mE(_){await s`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await rN(_,xE)}async function rN(_,x){await s`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await s`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${s.join(x.map((u)=>s.lit(u)))}))`.execute(_)}var $x={};m($x,{up:()=>CE,down:()=>NE});async function CE(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function NE(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Ux={};m(Ux,{up:()=>TE,down:()=>KE});async function TE(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function KE(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Xx={};m(Xx,{up:()=>zE,down:()=>PE});import{sql as EE}from"kysely";async function zE(_){await EE`
159
212
  CREATE TABLE github_connect_flows (
160
213
  id text PRIMARY KEY,
161
214
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -165,7 +218,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
165
218
  );
166
219
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
167
220
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
168
- `.execute(_)}async function xE(_){await _.schema.dropTable("github_connect_flows").execute()}var $x={};m($x,{up:()=>uE,down:()=>mE});async function uE(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function mE(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Ux={};m(Ux,{up:()=>CE,down:()=>NE});import{sql as J_}from"kysely";async function CE(_){await J_`
221
+ `.execute(_)}async function PE(_){await _.schema.dropTable("github_connect_flows").execute()}var jx={};m(jx,{up:()=>$E,down:()=>UE});async function $E(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function UE(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Jx={};m(Jx,{up:()=>XE,down:()=>jE});import{sql as J_}from"kysely";async function XE(_){await J_`
169
222
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
170
223
  DECLARE
171
224
  metadata_json jsonb;
@@ -221,19 +274,19 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
221
274
  FROM repositories r WHERE s.repository_id IS NULL
222
275
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
223
276
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
224
- `.execute(_)}async function NE(_){await J_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await J_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Xx={};m(Xx,{up:()=>TE,down:()=>KE});import{sql as B}from"kysely";async function TE(_){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(B`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(B`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(B`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(B`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(B`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(B`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(B`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(B`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(B`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(B`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 KE(_){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 Jx={};m(Jx,{up:()=>EE,down:()=>zE});import{sql as cN}from"kysely";async function EE(_){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(cN`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(cN`CURRENT_TIMESTAMP`)).execute()}async function zE(_){await _.schema.dropTable("organization_settings").execute()}var jx={};m(jx,{up:()=>PE,down:()=>$E});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 $E(_){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 Qx={};m(Qx,{up:()=>UE,down:()=>XE});async function UE(_){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 XE(_){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 Wx={};m(Wx,{up:()=>JE,down:()=>jE});async function JE(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function jE(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Zx={};m(Zx,{up:()=>WE,down:()=>ZE});import{sql as QE}from"kysely";async function WE(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",QE`text`).execute()}async function ZE(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Dx={};m(Dx,{up:()=>DE,down:()=>LE});async function DE(_){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 LE(_){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 Lx={};m(Lx,{up:()=>FE,down:()=>RE});import{sql as s}from"kysely";async function FE(_){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(s`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(s`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(s`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(s`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(s`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 RE(_){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 Fx={};m(Fx,{up:()=>HE,down:()=>ME});import{sql as YE}from"kysely";async function HE(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function ME(_){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(YE`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 Rx={};m(Rx,{up:()=>BE,down:()=>GE});import{sql as j_}from"kysely";async function BE(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await j_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function GE(_){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 Yx={};m(Yx,{up:()=>fE,down:()=>yE});async function fE(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function yE(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Hx={};m(Hx,{up:()=>OE,down:()=>SE});import{sql as Q_}from"kysely";async function OE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await Q_`
277
+ `.execute(_)}async function jE(_){await J_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await J_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Qx={};m(Qx,{up:()=>JE,down:()=>QE});import{sql as G}from"kysely";async function JE(_){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(G`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(G`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(G`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(G`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(G`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(G`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(G`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(G`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(G`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(G`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 QE(_){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 Zx={};m(Zx,{up:()=>ZE,down:()=>DE});import{sql as eN}from"kysely";async function ZE(_){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(eN`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(eN`CURRENT_TIMESTAMP`)).execute()}async function DE(_){await _.schema.dropTable("organization_settings").execute()}var Dx={};m(Dx,{up:()=>WE,down:()=>LE});async function WE(_){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 LE(_){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 Wx={};m(Wx,{up:()=>FE,down:()=>RE});async function FE(_){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 RE(_){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 Lx={};m(Lx,{up:()=>YE,down:()=>HE});async function YE(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function HE(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Fx={};m(Fx,{up:()=>BE,down:()=>GE});import{sql as ME}from"kysely";async function BE(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",ME`text`).execute()}async function GE(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Rx={};m(Rx,{up:()=>yE,down:()=>fE});async function yE(_){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 fE(_){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 Yx={};m(Yx,{up:()=>OE,down:()=>SE});import{sql as b}from"kysely";async function OE(_){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(b`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(b`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(b`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(b`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(b`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 SE(_){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 Hx={};m(Hx,{up:()=>IE,down:()=>nE});import{sql as AE}from"kysely";async function IE(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function nE(_){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(AE`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 Mx={};m(Mx,{up:()=>wE,down:()=>VE});import{sql as Q_}from"kysely";async function wE(_){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(Q_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Q_`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(Q_`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 Q_`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 VE(_){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 Bx={};m(Bx,{up:()=>kE,down:()=>pE});async function kE(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function pE(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Gx={};m(Gx,{up:()=>vE,down:()=>qE});import{sql as Z_}from"kysely";async function vE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await Z_`
225
278
  UPDATE gateways
226
279
  SET tool_selection_mode = CASE
227
280
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
228
281
  ELSE 'inclusion'
229
282
  END
230
- `.execute(_),await Q_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function SE(_){await Q_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await Q_`
283
+ `.execute(_),await Z_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function qE(_){await Z_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await Z_`
231
284
  UPDATE gateways
232
285
  SET tool_selection_strategy = CASE
233
286
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
234
287
  ELSE NULL
235
288
  END
236
- `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Mx={};m(Mx,{up:()=>AE,down:()=>IE});async function AE(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function IE(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var Bx={};m(Bx,{up:()=>nE,down:()=>wE});async function nE(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function wE(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Gx={};m(Gx,{up:()=>VE,down:()=>kE});async function VE(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function kE(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var fx={};m(fx,{up:()=>pE,down:()=>vE});async function pE(_){await _.schema.alterTable("downstream_tokens").addColumn("clientId","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("clientSecret","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("tokenEndpoint","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}async function vE(_){await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("tokenEndpoint").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientSecret").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientId").execute()}var yx={};m(yx,{up:()=>gE,down:()=>iE});import{sql as qE}from"kysely";async function gE(_){await qE`
289
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var yx={};m(yx,{up:()=>gE,down:()=>iE});async function gE(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function iE(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var fx={};m(fx,{up:()=>tE,down:()=>cE});async function tE(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function cE(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Ox={};m(Ox,{up:()=>hE,down:()=>oE});async function hE(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function oE(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Sx={};m(Sx,{up:()=>aE,down:()=>rE});async function aE(_){await _.schema.alterTable("downstream_tokens").addColumn("clientId","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("clientSecret","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("tokenEndpoint","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}async function rE(_){await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("tokenEndpoint").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientSecret").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientId").execute()}var Ax={};m(Ax,{up:()=>lE,down:()=>dE});import{sql as eE}from"kysely";async function lE(_){await eE`
237
290
  DELETE FROM downstream_tokens
238
291
  WHERE id NOT IN (
239
292
  SELECT id FROM (
@@ -243,7 +296,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
243
296
  ) ranked
244
297
  WHERE rn = 1
245
298
  )
246
- `.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function iE(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var Ox={};m(Ox,{up:()=>tE,down:()=>cE});async function tE(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function cE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Sx={};m(Sx,{up:()=>hE,down:()=>oE});import{sql as hN}from"kysely";async function hE(_){await hN`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function oE(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await hN`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Ax={};m(Ax,{up:()=>aE,down:()=>rE});async function aE(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function rE(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Ix={};m(Ix,{up:()=>eE,down:()=>lE});import{sql as W_}from"kysely";async function eE(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(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("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function lE(_){await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropTable("thread_messages").execute(),await _.schema.dropTable("threads").execute()}var nx={};m(nx,{up:()=>dE,down:()=>sE});async function dE(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function sE(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var wx={};m(wx,{up:()=>bE,down:()=>_z});async function bE(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function _z(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var Vx={};m(Vx,{up:()=>xz,down:()=>uz});import{sql as Z}from"kysely";async function xz(_){await Z`
299
+ `.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function dE(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var Ix={};m(Ix,{up:()=>sE,down:()=>bE});async function sE(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function bE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var nx={};m(nx,{up:()=>_z,down:()=>xz});import{sql as lN}from"kysely";async function _z(_){await lN`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function xz(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await lN`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var wx={};m(wx,{up:()=>uz,down:()=>mz});async function uz(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function mz(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Vx={};m(Vx,{up:()=>Cz,down:()=>Nz});import{sql as D_}from"kysely";async function Cz(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(D_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(D_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function Nz(_){await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropTable("thread_messages").execute(),await _.schema.dropTable("threads").execute()}var kx={};m(kx,{up:()=>Tz,down:()=>Kz});async function Tz(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function Kz(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var px={};m(px,{up:()=>Ez,down:()=>zz});async function Ez(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function zz(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var vx={};m(vx,{up:()=>Pz,down:()=>$z});import{sql as D}from"kysely";async function Pz(_){await D`
247
300
  INSERT INTO connections (
248
301
  id,
249
302
  organization_id,
@@ -290,7 +343,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
290
343
  created_at,
291
344
  updated_at
292
345
  FROM virtual_mcps
293
- `.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await Z`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await Z`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await Z`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function uz(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(Z`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Z`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await Z`
346
+ `.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await D`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await D`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await D`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await D`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await D`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await D`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await D`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function $z(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await D`
294
347
  INSERT INTO virtual_mcps (
295
348
  id, organization_id, title, description, icon, status,
296
349
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -300,7 +353,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
300
353
  created_at, updated_at, created_by, NULL, 'inclusion'
301
354
  FROM connections
302
355
  WHERE connection_type = 'VIRTUAL'
303
- `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await Z`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var kx={};m(kx,{up:()=>mz,down:()=>Cz});async function mz(_){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 Cz(_){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 px={};m(px,{up:()=>Nz,down:()=>Tz});import{sql as G}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(G`CURRENT_TIMESTAMP`)).execute(),await G`
356
+ `.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 D`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 qx={};m(qx,{up:()=>Uz,down:()=>Xz});async function Uz(_){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 Xz(_){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 gx={};m(gx,{up:()=>jz,down:()=>Jz});import{sql as y}from"kysely";async function jz(_){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(y`CURRENT_TIMESTAMP`)).execute(),await y`
304
357
  INSERT INTO connection_aggregations_new (
305
358
  id, parent_connection_id, child_connection_id,
306
359
  selected_tools, selected_resources, selected_prompts, created_at
@@ -309,7 +362,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
309
362
  id, parent_connection_id, child_connection_id,
310
363
  selected_tools, selected_resources, selected_prompts, created_at
311
364
  FROM connection_aggregations
312
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await G`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await G`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await G`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 Tz(_){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(G`CURRENT_TIMESTAMP`)).execute(),await G`
365
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await y`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await y`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await y`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 Jz(_){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(y`CURRENT_TIMESTAMP`)).execute(),await y`
313
366
  INSERT INTO connection_aggregations_new (
314
367
  id, parent_connection_id, child_connection_id,
315
368
  selected_tools, selected_resources, selected_prompts, created_at
@@ -318,7 +371,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
318
371
  id, parent_connection_id, child_connection_id,
319
372
  selected_tools, selected_resources, selected_prompts, created_at
320
373
  FROM connection_aggregations
321
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await G`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await G`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await G`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var qx={};m(qx,{up:()=>Kz,down:()=>Ez});import{sql as vx}from"kysely";async function Kz(_){await vx`
374
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await y`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await y`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await y`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var tx={};m(tx,{up:()=>Qz,down:()=>Zz});import{sql as ix}from"kysely";async function Qz(_){await ix`
322
375
  UPDATE connections
323
376
  SET connection_url = connection_url || '/management',
324
377
  tools = NULL,
@@ -326,42 +379,42 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
326
379
  WHERE connection_url LIKE '%/mcp'
327
380
  AND connection_url NOT LIKE '%/mcp/management'
328
381
  AND app_name = '@deco/management-mcp'
329
- `.execute(_),await vx`
382
+ `.execute(_),await ix`
330
383
  UPDATE connections
331
384
  SET tools = NULL,
332
385
  updated_at = CURRENT_TIMESTAMP
333
386
  WHERE app_name = '@deco/management-mcp'
334
387
  AND tools IS NOT NULL
335
- `.execute(_)}async function Ez(_){await vx`
388
+ `.execute(_)}async function Zz(_){await ix`
336
389
  UPDATE connections
337
390
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
338
391
  updated_at = CURRENT_TIMESTAMP
339
392
  WHERE connection_url LIKE '%/mcp/management'
340
393
  AND app_name = '@deco/management-mcp'
341
- `.execute(_)}var ix={};m(ix,{up:()=>zz,down:()=>Pz});import{sql as gx}from"kysely";async function zz(_){await gx`
394
+ `.execute(_)}var hx={};m(hx,{up:()=>Dz,down:()=>Wz});import{sql as cx}from"kysely";async function Dz(_){await cx`
342
395
  UPDATE connections
343
396
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
344
397
  tools = NULL,
345
398
  updated_at = CURRENT_TIMESTAMP
346
399
  WHERE connection_url LIKE '%/mcp/management'
347
400
  AND app_name = '@deco/management-mcp'
348
- `.execute(_),await gx`
401
+ `.execute(_),await cx`
349
402
  UPDATE connections
350
403
  SET tools = NULL,
351
404
  updated_at = CURRENT_TIMESTAMP
352
405
  WHERE connection_url LIKE '%/mcp/self'
353
406
  AND app_name = '@deco/management-mcp'
354
407
  AND tools IS NOT NULL
355
- `.execute(_)}async function Pz(_){await gx`
408
+ `.execute(_)}async function Wz(_){await cx`
356
409
  UPDATE connections
357
410
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
358
411
  updated_at = CURRENT_TIMESTAMP
359
412
  WHERE connection_url LIKE '%/mcp/self'
360
413
  AND app_name = '@deco/management-mcp'
361
- `.execute(_)}var tx={};m(tx,{up:()=>$z,down:()=>Uz});async function $z(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function Uz(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var cx={};m(cx,{up:()=>Xz,down:()=>Jz});import{sql as oN}from"kysely";async function Xz(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(oN`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(oN`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function Jz(_){await _.schema.dropIndex("idx_member_tags_unique").execute(),await _.schema.dropIndex("idx_member_tags_tag").execute(),await _.schema.dropIndex("idx_member_tags_member").execute(),await _.schema.dropIndex("idx_organization_tags_unique_name").execute(),await _.schema.dropIndex("idx_organization_tags_org").execute(),await _.schema.dropTable("member_tags").execute(),await _.schema.dropTable("organization_tags").execute()}var hx={};m(hx,{up:()=>jz,down:()=>Qz});import{sql as b}from"kysely";async function jz(_){await b`
414
+ `.execute(_)}var ox={};m(ox,{up:()=>Lz,down:()=>Fz});async function Lz(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function Fz(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var ax={};m(ax,{up:()=>Rz,down:()=>Yz});import{sql as dN}from"kysely";async function Rz(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(dN`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(dN`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function Yz(_){await _.schema.dropIndex("idx_member_tags_unique").execute(),await _.schema.dropIndex("idx_member_tags_tag").execute(),await _.schema.dropIndex("idx_member_tags_member").execute(),await _.schema.dropIndex("idx_organization_tags_unique_name").execute(),await _.schema.dropIndex("idx_organization_tags_org").execute(),await _.schema.dropTable("member_tags").execute(),await _.schema.dropTable("organization_tags").execute()}var rx={};m(rx,{up:()=>Hz,down:()=>Mz});import{sql as __}from"kysely";async function Hz(_){await __`
362
415
  ALTER TABLE connection_aggregations
363
416
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
364
- `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function Qz(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await b`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await b`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(b`CURRENT_TIMESTAMP`)).execute(),await b`
417
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function Mz(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await __`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await __`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await __`
365
418
  INSERT INTO connection_aggregations_new (
366
419
  id, parent_connection_id, child_connection_id,
367
420
  selected_tools, selected_resources, selected_prompts, created_at
@@ -370,42 +423,42 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
370
423
  id, parent_connection_id, child_connection_id,
371
424
  selected_tools, selected_resources, selected_prompts, created_at
372
425
  FROM connection_aggregations
373
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var ox={};m(ox,{up:()=>Fz,down:()=>Rz});import{webcrypto as rN}from"crypto";var aN="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Wz=128,V,v;function Zz(_){if(!V||V.length<_)V=Buffer.allocUnsafe(_*Wz),rN.getRandomValues(V),v=0;else if(v+_>V.length)rN.getRandomValues(V),v=0;v+=_}function q(_=21){Zz(_|=0);let x="";for(let u=v-_;u<v;u++)x+=aN[V[u]&63];return x}var Dz="org-admin",Lz="Organization Admin";async function Fz(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),C=`proj_${q()}`,T=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:Dz,name:Lz,description:null,enabled_plugins:T?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function Rz(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var ax={};m(ax,{up:()=>Yz,down:()=>Hz});async function Yz(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function Hz(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var rx={};m(rx,{up:()=>Mz,down:()=>Bz});async function Mz(_){}async function Bz(_){}var ex={};m(ex,{up:()=>Gz,down:()=>fz});async function Gz(_){await _.schema.createTable("project_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("project_id","text",(x)=>x.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await _.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function fz(_){await _.schema.dropIndex("project_connections_project_id_idx").execute(),await _.schema.dropIndex("project_connections_project_conn_unique").execute(),await _.schema.dropTable("project_connections").execute()}var lx={};m(lx,{up:()=>yz,down:()=>Oz});import{sql as eN}from"kysely";async function yz(_){await eN`
426
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var ex={};m(ex,{up:()=>Oz,down:()=>Sz});import{webcrypto as bN}from"crypto";var sN="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Bz=128,k,q;function Gz(_){if(!k||k.length<_)k=Buffer.allocUnsafe(_*Bz),bN.getRandomValues(k),q=0;else if(q+_>k.length)bN.getRandomValues(k),q=0;q+=_}function g(_=21){Gz(_|=0);let x="";for(let u=q-_;u<q;u++)x+=sN[k[u]&63];return x}var yz="org-admin",fz="Organization Admin";async function Oz(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),C=`proj_${g()}`,T=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:yz,name:fz,description:null,enabled_plugins:T?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function Sz(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var lx={};m(lx,{up:()=>Az,down:()=>Iz});async function Az(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function Iz(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var dx={};m(dx,{up:()=>nz,down:()=>wz});async function nz(_){}async function wz(_){}var sx={};m(sx,{up:()=>Vz,down:()=>kz});async function Vz(_){await _.schema.createTable("project_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("project_id","text",(x)=>x.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await _.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function kz(_){await _.schema.dropIndex("project_connections_project_id_idx").execute(),await _.schema.dropIndex("project_connections_project_conn_unique").execute(),await _.schema.dropTable("project_connections").execute()}var bx={};m(bx,{up:()=>pz,down:()=>vz});import{sql as _T}from"kysely";async function pz(_){await _T`
374
427
  UPDATE connections
375
428
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
376
429
  tools = NULL,
377
430
  updated_at = CURRENT_TIMESTAMP
378
431
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
379
432
  AND app_name = 'deco-registry'
380
- `.execute(_)}async function Oz(_){await eN`
433
+ `.execute(_)}async function vz(_){await _T`
381
434
  UPDATE connections
382
435
  SET connection_url = 'https://api.decocms.com/mcp/registry',
383
436
  updated_at = CURRENT_TIMESTAMP
384
437
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
385
438
  AND app_name = 'deco-registry'
386
- `.execute(_)}var dx={};m(dx,{up:()=>Az,down:()=>Iz});import{sql as Sz}from"kysely";async function Az(_){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(Sz`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 Iz(_){await _.schema.dropTable("ai_provider_keys").execute()}var sx={};m(sx,{up:()=>wz,down:()=>Vz});import{sql as nz}from"kysely";async function wz(_){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(nz`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function Vz(_){await _.schema.dropTable("oauth_pkce_states").execute()}var bx={};m(bx,{up:()=>kz,down:()=>pz});import{sql as A}from"kysely";async function kz(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(A`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(A`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(A`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(A`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(A`CURRENT_TIMESTAMP`)).execute(),await A`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await A`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await A`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 pz(_){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 _u={};m(_u,{up:()=>vz,down:()=>qz});async function vz(_){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 qz(_){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 xu={};m(xu,{up:()=>gz,down:()=>iz});async function gz(_){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 iz(_){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:()=>tz,down:()=>cz});import{sql as lN}from"kysely";async function tz(_){await lN`
439
+ `.execute(_)}var _u={};m(_u,{up:()=>gz,down:()=>iz});import{sql as qz}from"kysely";async function gz(_){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(qz`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 iz(_){await _.schema.dropTable("ai_provider_keys").execute()}var xu={};m(xu,{up:()=>cz,down:()=>hz});import{sql as tz}from"kysely";async function cz(_){await _.schema.createTable("oauth_pkce_states").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull()).addColumn("code_verifier","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(tz`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function hz(_){await _.schema.dropTable("oauth_pkce_states").execute()}var uu={};m(uu,{up:()=>oz,down:()=>az});import{sql as I}from"kysely";async function oz(_){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 az(_){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 mu={};m(mu,{up:()=>rz,down:()=>ez});async function rz(_){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 ez(_){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 Cu={};m(Cu,{up:()=>lz,down:()=>dz});async function lz(_){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 dz(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Nu={};m(Nu,{up:()=>sz,down:()=>bz});import{sql as xT}from"kysely";async function sz(_){await xT`
387
440
  UPDATE connections
388
441
  SET title = 'CMS MCP',
389
442
  tools = NULL,
390
443
  updated_at = CURRENT_TIMESTAMP
391
444
  WHERE app_name = '@deco/management-mcp'
392
- `.execute(_)}async function cz(_){await lN`
445
+ `.execute(_)}async function bz(_){await xT`
393
446
  UPDATE connections
394
447
  SET title = 'Mesh MCP',
395
448
  updated_at = CURRENT_TIMESTAMP
396
449
  WHERE app_name = '@deco/management-mcp'
397
- `.execute(_)}var mu={};m(mu,{up:()=>hz,down:()=>oz});import{sql as dN}from"kysely";async function hz(_){await dN`
450
+ `.execute(_)}var Tu={};m(Tu,{up:()=>_0,down:()=>x0});import{sql as uT}from"kysely";async function _0(_){await uT`
398
451
  UPDATE connections
399
452
  SET title = 'Deco CMS',
400
453
  tools = NULL,
401
454
  updated_at = CURRENT_TIMESTAMP
402
455
  WHERE app_name = '@deco/management-mcp'
403
- `.execute(_)}async function oz(_){await dN`
456
+ `.execute(_)}async function x0(_){await uT`
404
457
  UPDATE connections
405
458
  SET title = 'CMS MCP',
406
459
  updated_at = CURRENT_TIMESTAMP
407
460
  WHERE app_name = '@deco/management-mcp'
408
- `.execute(_)}var Cu={};m(Cu,{up:()=>az,down:()=>rz});async function az(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function rz(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var Nu={};m(Nu,{up:()=>ez,down:()=>lz});async function ez(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function lz(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var Ku={};m(Ku,{up:()=>dz,down:()=>sz});import{sql as Tu}from"kysely";async function dz(_){await Tu`
461
+ `.execute(_)}var Ku={};m(Ku,{up:()=>u0,down:()=>m0});async function u0(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function m0(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var Eu={};m(Eu,{up:()=>C0,down:()=>N0});async function C0(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function N0(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var Pu={};m(Pu,{up:()=>T0,down:()=>K0});import{sql as zu}from"kysely";async function T0(_){await zu`
409
462
  UPDATE organization_settings
410
463
  SET enabled_plugins = (
411
464
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -414,7 +467,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
414
467
  )
415
468
  WHERE enabled_plugins IS NOT NULL
416
469
  AND enabled_plugins LIKE '%object-storage%'
417
- `.execute(_),await Tu`
470
+ `.execute(_),await zu`
418
471
  UPDATE projects
419
472
  SET enabled_plugins = (
420
473
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -423,106 +476,106 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
423
476
  )
424
477
  WHERE enabled_plugins IS NOT NULL
425
478
  AND enabled_plugins LIKE '%object-storage%'
426
- `.execute(_),await Tu`
479
+ `.execute(_),await zu`
427
480
  DELETE FROM project_plugin_configs
428
481
  WHERE plugin_id = 'object-storage'
429
- `.execute(_)}async function sz(_){}var Eu={};m(Eu,{up:()=>bz,down:()=>_0});import{sql as sN}from"kysely";async function bz(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await sN`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function _0(_){await sN`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var Pu={};m(Pu,{up:()=>x0,down:()=>u0});import{sql as zu}from"kysely";async function x0(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await zu`
482
+ `.execute(_)}async function K0(_){}var $u={};m($u,{up:()=>E0,down:()=>z0});import{sql as mT}from"kysely";async function E0(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await mT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function z0(_){await mT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var Xu={};m(Xu,{up:()=>P0,down:()=>$0});import{sql as Uu}from"kysely";async function P0(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await Uu`
430
483
  ALTER TABLE connections
431
484
  ADD CONSTRAINT chk_connections_subtype
432
485
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
433
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await zu`
486
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await Uu`
434
487
  UPDATE connections
435
488
  SET subtype = 'agent'
436
489
  WHERE connection_type = 'VIRTUAL'
437
- `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(K)=>K.primaryKey()).addColumn("virtual_mcp_id","text",(K)=>K.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(K)=>K.notNull()).addColumn("connection_id","text",(K)=>K.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let K of u)N.set(K.organizationId,K.userId);let C=new Map;for(let K of x){let z=`vir_${q()}`;C.set(K.id,z);let $=K.ui?JSON.parse(K.ui):null,U=JSON.stringify({enabled_plugins:K.enabled_plugins?JSON.parse(K.enabled_plugins):null,ui:$,migrated_from_project:K.id,migrated_project_slug:K.slug}),Q=N.get(K.organization_id);if(!Q)continue;await _.insertInto("connections").values({id:z,organization_id:K.organization_id,created_by:Q,updated_by:null,title:K.name,description:K.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${z}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:K.created_at,updated_at:K.updated_at}).execute()}let T=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let K of T){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${q()}`,parent_connection_id:z,child_connection_id:K.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:K.created_at}).onConflict(($)=>$.doNothing()).execute()}let E=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let K of E){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${q()}`,virtual_mcp_id:z,plugin_id:K.plugin_id,connection_id:K.connection_id,settings:K.settings,created_at:K.created_at,updated_at:K.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function u0(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await zu`
490
+ `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(E)=>E.primaryKey()).addColumn("virtual_mcp_id","text",(E)=>E.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(E)=>E.notNull()).addColumn("connection_id","text",(E)=>E.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(E)=>E.notNull()).addColumn("updated_at","text",(E)=>E.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let E of u)N.set(E.organizationId,E.userId);let C=new Map;for(let E of x){let z=`vir_${g()}`;C.set(E.id,z);let $=E.ui?JSON.parse(E.ui):null,U=JSON.stringify({enabled_plugins:E.enabled_plugins?JSON.parse(E.enabled_plugins):null,ui:$,migrated_from_project:E.id,migrated_project_slug:E.slug}),Q=N.get(E.organization_id);if(!Q)continue;await _.insertInto("connections").values({id:z,organization_id:E.organization_id,created_by:Q,updated_by:null,title:E.name,description:E.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:E.created_at,updated_at:E.updated_at}).execute()}let T=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let E of T){let z=C.get(E.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${g()}`,parent_connection_id:z,child_connection_id:E.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:E.created_at}).onConflict(($)=>$.doNothing()).execute()}let K=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let E of K){let z=C.get(E.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${g()}`,virtual_mcp_id:z,plugin_id:E.plugin_id,connection_id:E.connection_id,settings:E.settings,created_at:E.created_at,updated_at:E.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function $0(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Uu`
438
491
  ALTER TABLE connections
439
492
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
440
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var $u={};m($u,{up:()=>C0,down:()=>N0});import{sql as m0}from"kysely";async function C0(_){await m0`
493
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var ju={};m(ju,{up:()=>X0,down:()=>j0});import{sql as U0}from"kysely";async function X0(_){await U0`
441
494
  DELETE FROM connections
442
495
  WHERE connection_type = 'VIRTUAL'
443
496
  AND subtype = 'project'
444
497
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
445
- `.execute(_)}async function N0(_){}var Uu={};m(Uu,{up:()=>K0,down:()=>E0});import{sql as T0}from"kysely";async function K0(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await T0`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function E0(_){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 Ju={};m(Ju,{up:()=>z0,down:()=>P0});import{sql as Xu}from"kysely";async function z0(_){await _.schema.createTable("org_sso_config").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(x)=>x.notNull()).addColumn("client_id","text",(x)=>x.notNull()).addColumn("client_secret","text",(x)=>x.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(x)=>x.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(x)=>x.notNull()).addColumn("enforced","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(Xu`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Xu`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await _.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await _.schema.createTable("org_sso_sessions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(x)=>x.notNull()).addColumn("expires_at","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(Xu`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function P0(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var ju={};m(ju,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function U0(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var Qu={};m(Qu,{up:()=>X0,down:()=>J0});async function X0(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function J0(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var Zu={};m(Zu,{up:()=>Q0,down:()=>W0});import{sql as bN}from"kysely";function Wu(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function j0(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return Wu(N)}catch{return Wu(_.connection_url)}if(_.title)return Wu(_.title);return _.id}async function Q0(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await bN`
498
+ `.execute(_)}async function j0(_){}var Ju={};m(Ju,{up:()=>Q0,down:()=>Z0});import{sql as J0}from"kysely";async function Q0(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await J0`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function Z0(_){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 Zu={};m(Zu,{up:()=>D0,down:()=>W0});import{sql as Qu}from"kysely";async function D0(_){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(Qu`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Qu`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(Qu`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 W0(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var Du={};m(Du,{up:()=>L0,down:()=>F0});async function L0(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function F0(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var Wu={};m(Wu,{up:()=>R0,down:()=>Y0});async function R0(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function Y0(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var Fu={};m(Fu,{up:()=>M0,down:()=>B0});import{sql as CT}from"kysely";function Lu(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function H0(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return Lu(N)}catch{return Lu(_.connection_url)}if(_.title)return Lu(_.title);return _.id}async function M0(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await CT`
446
499
  SELECT id, app_name, connection_url, title FROM connections
447
- `.execute(_);for(let u of x.rows){let N=j0(u);await bN`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function W0(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var Du={};m(Du,{up:()=>Z0,down:()=>D0});import{sql as __}from"kysely";async function Z0(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await __`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await __`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 D0(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await __`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await __`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await __`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 Lu={};m(Lu,{up:()=>L0,down:()=>F0});async function L0(_){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 F0(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var Fu={};m(Fu,{up:()=>R0,down:()=>Y0});import{sql as Z_}from"kysely";async function R0(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await Z_`
500
+ `.execute(_);for(let u of x.rows){let N=H0(u);await CT`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function B0(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var Ru={};m(Ru,{up:()=>G0,down:()=>y0});import{sql as x_}from"kysely";async function G0(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await x_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await x_`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 y0(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await x_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await x_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await x_`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 Yu={};m(Yu,{up:()=>f0,down:()=>O0});async function f0(_){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 O0(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var Hu={};m(Hu,{up:()=>S0,down:()=>A0});import{sql as W_}from"kysely";async function S0(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await W_`
448
501
  UPDATE threads
449
502
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
450
503
  WHERE agent_ids IS NOT NULL
451
504
  AND agent_ids != '[]'
452
505
  AND agent_ids != ''
453
506
  AND (agent_ids::jsonb ->> 0) IS NOT NULL
454
- `.execute(_),await Z_`
507
+ `.execute(_),await W_`
455
508
  CREATE INDEX idx_threads_virtual_mcp_id
456
509
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
457
- `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function Y0(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await Z_`
510
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function A0(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await W_`
458
511
  UPDATE threads
459
512
  SET agent_ids = CASE
460
513
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
461
514
  THEN jsonb_build_array(virtual_mcp_id)::text
462
515
  ELSE '[]'
463
516
  END
464
- `.execute(_),await Z_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Ru={};m(Ru,{up:()=>H0,down:()=>M0});async function H0(_){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 M0(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Yu={};m(Yu,{up:()=>B0,down:()=>G0});async function B0(_){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 G0(_){await _.schema.dropTable("kv").execute()}var Hu={};m(Hu,{up:()=>f0,down:()=>y0});async function f0(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function y0(_){await _.schema.dropIndex("idx_member_user_org").execute()}var Mu={};m(Mu,{up:()=>O0,down:()=>S0});async function O0(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function S0(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var Bu={};m(Bu,{up:()=>A0,down:()=>I0});import{sql as F}from"kysely";async function A0(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await F`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await F`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function I0(_){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 Gu={};m(Gu,{up:()=>n0,down:()=>w0});import{sql as g}from"kysely";async function n0(_){await g`
517
+ `.execute(_),await W_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Mu={};m(Mu,{up:()=>I0,down:()=>n0});async function I0(_){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 n0(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Bu={};m(Bu,{up:()=>w0,down:()=>V0});async function w0(_){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 V0(_){await _.schema.dropTable("kv").execute()}var Gu={};m(Gu,{up:()=>k0,down:()=>p0});async function k0(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function p0(_){await _.schema.dropIndex("idx_member_user_org").execute()}var yu={};m(yu,{up:()=>v0,down:()=>q0});async function v0(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function q0(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var fu={};m(fu,{up:()=>g0,down:()=>i0});import{sql as R}from"kysely";async function g0(_){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 i0(_){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 Ou={};m(Ou,{up:()=>t0,down:()=>c0});import{sql as i}from"kysely";async function t0(_){await i`
465
518
  ALTER TABLE event_subscriptions
466
519
  ALTER COLUMN enabled DROP DEFAULT
467
- `.execute(_),await g`
520
+ `.execute(_),await i`
468
521
  ALTER TABLE event_subscriptions
469
522
  ALTER COLUMN enabled TYPE boolean
470
523
  USING enabled::boolean
471
- `.execute(_),await g`
524
+ `.execute(_),await i`
472
525
  ALTER TABLE event_subscriptions
473
526
  ALTER COLUMN enabled SET DEFAULT true
474
- `.execute(_)}async function w0(_){await g`
527
+ `.execute(_)}async function c0(_){await i`
475
528
  ALTER TABLE event_subscriptions
476
529
  ALTER COLUMN enabled DROP DEFAULT
477
- `.execute(_),await g`
530
+ `.execute(_),await i`
478
531
  ALTER TABLE event_subscriptions
479
532
  ALTER COLUMN enabled TYPE integer
480
533
  USING enabled::integer
481
- `.execute(_),await g`
534
+ `.execute(_),await i`
482
535
  ALTER TABLE event_subscriptions
483
536
  ALTER COLUMN enabled SET DEFAULT 1
484
- `.execute(_)}var fu={};m(fu,{up:()=>V0,down:()=>k0});import{sql as _T}from"kysely";async function V0(_){await _.schema.createTable("brand_context").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("domain","text",(x)=>x.notNull()).addColumn("overview","text",(x)=>x.notNull()).addColumn("logo","text").addColumn("favicon","text").addColumn("og_image","text").addColumn("fonts","text").addColumn("colors","text").addColumn("images","text").addColumn("metadata","text").addColumn("archived_at","timestamptz").addColumn("is_default","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(_T`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(_T`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function k0(_){await _.schema.dropTable("brand_context").execute()}var yu={};m(yu,{up:()=>p0,down:()=>v0});import{sql as xT}from"kysely";async function p0(_){await _.schema.createTable("organization_domains").addColumn("organization_id","text",(x)=>x.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(x)=>x.notNull().unique()).addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(xT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(xT`now()`)).execute()}async function v0(_){await _.schema.dropTable("organization_domains").execute()}var Ou={};m(Ou,{up:()=>t0,down:()=>c0});import{sql as uT}from"kysely";var D_=new Set(["primary","secondary","accent","background","foreground"]),q0={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function g0(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>D_.has(C))){let C={};for(let[T,E]of Object.entries(u)){if(typeof E!=="string")continue;if(D_.has(T))C[T]=E;else x[T]=E}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let N={};for(let[C,T]of Object.entries(u)){if(typeof T!=="string")continue;if(D_.has(C.toLowerCase()))N[C.toLowerCase()]=T;else x[C]=T}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let C=N,T=C.label?.toLowerCase?.(),E=C.value;if(!T||!E)continue;if(D_.has(T))u[T]=E;else x[T]=E}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function i0(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let C=N,T=C.name??C.family??void 0,E=C.role?.toLowerCase?.()??"";if(!T)continue;let K=q0[E];if(K&&!x[K])x[K]=T;else u.push(T)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function t0(_){let x=await uT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,C=!1,T=!1,E=u.colors,K=u.fonts,z={};try{z=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=g0($);if(E=U.structured,N=!0,Object.keys(U.extra).length>0)z.extraColors=U.extra,T=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))K=i0($),C=!0}catch{}if(N||C||T){let $=T?JSON.stringify(z):u.metadata;await uT`
537
+ `.execute(_)}var Su={};m(Su,{up:()=>h0,down:()=>o0});import{sql as NT}from"kysely";async function h0(_){await _.schema.createTable("brand_context").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("domain","text",(x)=>x.notNull()).addColumn("overview","text",(x)=>x.notNull()).addColumn("logo","text").addColumn("favicon","text").addColumn("og_image","text").addColumn("fonts","text").addColumn("colors","text").addColumn("images","text").addColumn("metadata","text").addColumn("archived_at","timestamptz").addColumn("is_default","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(NT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(NT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function o0(_){await _.schema.dropTable("brand_context").execute()}var Au={};m(Au,{up:()=>a0,down:()=>r0});import{sql as TT}from"kysely";async function a0(_){await _.schema.createTable("organization_domains").addColumn("organization_id","text",(x)=>x.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(x)=>x.notNull().unique()).addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(TT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(TT`now()`)).execute()}async function r0(_){await _.schema.dropTable("organization_domains").execute()}var Iu={};m(Iu,{up:()=>s0,down:()=>b0});import{sql as KT}from"kysely";var L_=new Set(["primary","secondary","accent","background","foreground"]),e0={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function l0(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>L_.has(C))){let C={};for(let[T,K]of Object.entries(u)){if(typeof K!=="string")continue;if(L_.has(T))C[T]=K;else x[T]=K}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let N={};for(let[C,T]of Object.entries(u)){if(typeof T!=="string")continue;if(L_.has(C.toLowerCase()))N[C.toLowerCase()]=T;else x[C]=T}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let C=N,T=C.label?.toLowerCase?.(),K=C.value;if(!T||!K)continue;if(L_.has(T))u[T]=K;else x[T]=K}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function d0(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let C=N,T=C.name??C.family??void 0,K=C.role?.toLowerCase?.()??"";if(!T)continue;let E=e0[K];if(E&&!x[E])x[E]=T;else u.push(T)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function s0(_){let x=await KT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,C=!1,T=!1,K=u.colors,E=u.fonts,z={};try{z=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=l0($);if(K=U.structured,N=!0,Object.keys(U.extra).length>0)z.extraColors=U.extra,T=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))E=d0($),C=!0}catch{}if(N||C||T){let $=T?JSON.stringify(z):u.metadata;await KT`
485
538
  UPDATE brand_context
486
539
  SET
487
- colors = ${E},
488
- fonts = ${K},
540
+ colors = ${K},
541
+ fonts = ${E},
489
542
  metadata = ${$},
490
543
  updated_at = NOW()
491
544
  WHERE id = ${u.id}
492
- `.execute(_)}}}async function c0(_){}var Su={};m(Su,{up:()=>o0,down:()=>a0});import{sql as h0}from"kysely";async function o0(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(h0`'{}'::jsonb`)).execute()}async function a0(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var Au={};m(Au,{up:()=>r0,down:()=>e0});async function r0(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function e0(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Iu={};m(Iu,{up:()=>l0,down:()=>d0});async function l0(_){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 d0(_){await _.schema.dropTable("sandbox_runner_state").execute()}var nu={};m(nu,{up:()=>s0,down:()=>b0});async function s0(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function b0(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var wu={};m(wu,{up:()=>_P,down:()=>xP});async function _P(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function xP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Vu={};m(Vu,{up:()=>uP,down:()=>mP});async function uP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function mP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var ku={};m(ku,{up:()=>NP,down:()=>TP});import{sql as mT}from"kysely";var CP=["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 mT`
545
+ `.execute(_)}}}async function b0(_){}var nu={};m(nu,{up:()=>xP,down:()=>uP});import{sql as _P}from"kysely";async function xP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(_P`'{}'::jsonb`)).execute()}async function uP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var wu={};m(wu,{up:()=>mP,down:()=>CP});async function mP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function CP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Vu={};m(Vu,{up:()=>NP,down:()=>TP});async function NP(_){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 TP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var ku={};m(ku,{up:()=>KP,down:()=>EP});async function KP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function EP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var pu={};m(pu,{up:()=>zP,down:()=>PP});async function zP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function PP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var vu={};m(vu,{up:()=>$P,down:()=>UP});async function $P(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function UP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var qu={};m(qu,{up:()=>jP,down:()=>JP});import{sql as ET}from"kysely";var XP=["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 jP(_){let x=await ET`
493
546
  SELECT id, permission FROM "organizationRole"
494
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let C=N.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let T=C,E=Array.from(new Set([...T,...CP]));if(E.length===T.length)continue;N.self=E;let K=JSON.stringify(N);await mT`
547
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let C=N.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let T=C,K=Array.from(new Set([...T,...XP]));if(K.length===T.length)continue;N.self=K;let E=JSON.stringify(N);await ET`
495
548
  UPDATE "organizationRole"
496
- SET permission = ${K}
549
+ SET permission = ${E}
497
550
  WHERE id = ${u.id}
498
- `.execute(_)}}async function TP(_){}var pu={};m(pu,{up:()=>KP,down:()=>EP});async function KP(_){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 EP(_){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 vu={};m(vu,{up:()=>zP,down:()=>PP});async function zP(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function PP(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var qu={};m(qu,{up:()=>$P,down:()=>UP});import{sql as x_}from"kysely";async function $P(_){await x_`
551
+ `.execute(_)}}async function JP(_){}var gu={};m(gu,{up:()=>QP,down:()=>ZP});async function QP(_){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 ZP(_){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 iu={};m(iu,{up:()=>DP,down:()=>WP});async function DP(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function WP(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var tu={};m(tu,{up:()=>LP,down:()=>FP});import{sql as u_}from"kysely";async function LP(_){await u_`
499
552
  UPDATE automations
500
553
  SET virtual_mcp_id = (agent::json ->> 'id')
501
554
  WHERE virtual_mcp_id IS NULL
502
- `.execute(_),await x_`
555
+ `.execute(_),await u_`
503
556
  ALTER TABLE automations
504
557
  ALTER COLUMN virtual_mcp_id SET NOT NULL
505
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function UP(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await x_`
558
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function FP(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await u_`
506
559
  UPDATE automations
507
560
  SET agent = json_build_object('id', virtual_mcp_id)::text
508
- `.execute(_),await x_`
561
+ `.execute(_),await u_`
509
562
  ALTER TABLE automations
510
563
  ALTER COLUMN agent SET NOT NULL
511
- `.execute(_),await x_`
564
+ `.execute(_),await u_`
512
565
  ALTER TABLE automations
513
566
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
514
- `.execute(_)}var iu={};m(iu,{up:()=>QP,reshapeSimpleMode:()=>CT,inferAutomationTier:()=>NT,down:()=>WP,__testing:()=>jP});var XP={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},JP=["fast","smart","thinking","image","web_research"];function gu(_){if(!_||typeof _!=="object")return!1;let x=_;if(!("tiers"in x))return!1;let u=x.tiers;if(!u||typeof u!=="object")return!1;return JP.some((N)=>(N in u))}function CT(_){if(gu(_))return _;let x=_,u=x?.enabled===!0,N=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return XP;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function NT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function TT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var jP={isAlreadyReshapedSimpleMode:gu,isAlreadyReshapedAutomationModels:TT};async function QP(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let C=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(gu(C))continue;let T=CT(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(T)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let C;try{C=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{C={}}if(TT(C))continue;let T=NT(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:T})}).where("id","=",N.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${T}"`)}}async function WP(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var tu={};m(tu,{up:()=>ZP,down:()=>DP});import{sql as O}from"kysely";async function ZP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await O`
567
+ `.execute(_)}var hu={};m(hu,{up:()=>MP,reshapeSimpleMode:()=>zT,inferAutomationTier:()=>PT,down:()=>BP,__testing:()=>HP});var RP={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},YP=["fast","smart","thinking","image","web_research"];function cu(_){if(!_||typeof _!=="object")return!1;let x=_;if(!("tiers"in x))return!1;let u=x.tiers;if(!u||typeof u!=="object")return!1;return YP.some((N)=>(N in u))}function zT(_){if(cu(_))return _;let x=_,u=x?.enabled===!0,N=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return RP;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function PT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function $T(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var HP={isAlreadyReshapedSimpleMode:cu,isAlreadyReshapedAutomationModels:$T};async function MP(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let C=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(cu(C))continue;let T=zT(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(T)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let C;try{C=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{C={}}if($T(C))continue;let T=PT(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:T})}).where("id","=",N.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${T}"`)}}async function BP(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var ou={};m(ou,{up:()=>GP,down:()=>yP});import{sql as S}from"kysely";async function GP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await S`
515
568
  ALTER TABLE automations
516
569
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
517
- `.execute(_),await O`
570
+ `.execute(_),await S`
518
571
  ALTER TABLE automations
519
572
  ADD CONSTRAINT chk_automation_kind
520
573
  CHECK (kind IN ('agent', 'tool_call'))
521
- `.execute(_),await O`
574
+ `.execute(_),await S`
522
575
  ALTER TABLE automations
523
576
  ADD CONSTRAINT chk_automation_agent_fields
524
577
  CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
525
- `.execute(_),await O`
578
+ `.execute(_),await S`
526
579
  ALTER TABLE automations
527
580
  ADD CONSTRAINT chk_automation_tool_call_fields
528
581
  CHECK (
@@ -533,47 +586,47 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
533
586
  AND tool_input IS NOT NULL
534
587
  )
535
588
  )
536
- `.execute(_)}async function DP(_){await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await O`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await O`
589
+ `.execute(_)}async function yP(_){await S`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await S`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await S`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await S`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await S`
537
590
  ALTER TABLE automations
538
591
  ALTER COLUMN virtual_mcp_id SET NOT NULL
539
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var cu={};m(cu,{up:()=>FP,down:()=>RP});import{sql as KT}from"kysely";var LP=new Set(["host","docker","agent-sandbox"]);async function FP(_){let x=await KT`
592
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var au={};m(au,{up:()=>OP,down:()=>SP});import{sql as UT}from"kysely";var fP=new Set(["host","docker","agent-sandbox"]);async function OP(_){let x=await UT`
540
593
  SELECT id, metadata FROM "connections"
541
594
  WHERE connection_type = 'VIRTUAL'
542
595
  AND metadata IS NOT NULL
543
596
  AND metadata LIKE '%vmMap%'
544
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let C=N.vmMap;if(!C||typeof C!=="object")continue;let T=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){T=!0;continue}let U={};for(let[Q,J]of Object.entries($)){if(!J||typeof J!=="object"){T=!0;continue}let M=J.runnerKind;if(M!==void 0&&!LP.has(M)){T=!0;continue}U[Q]=J}if(Object.keys(U).length>0)E[z]=U;else T=!0}if(!T)continue;N.vmMap=E;let K=JSON.stringify(N);await KT`
597
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let C=N.vmMap;if(!C||typeof C!=="object")continue;let T=!1,K={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){T=!0;continue}let U={};for(let[Q,j]of Object.entries($)){if(!j||typeof j!=="object"){T=!0;continue}let B=j.runnerKind;if(B!==void 0&&!fP.has(B)){T=!0;continue}U[Q]=j}if(Object.keys(U).length>0)K[z]=U;else T=!0}if(!T)continue;N.vmMap=K;let E=JSON.stringify(N);await UT`
545
598
  UPDATE "connections"
546
- SET metadata = ${K}
599
+ SET metadata = ${E}
547
600
  WHERE id = ${u.id}
548
- `.execute(_)}}async function RP(_){}var hu={};m(hu,{up:()=>YP,down:()=>HP});import{sql as u_}from"kysely";async function YP(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(u_`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(u_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(u_`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await u_`
601
+ `.execute(_)}}async function SP(_){}var ru={};m(ru,{up:()=>AP,down:()=>IP});import{sql as m_}from"kysely";async function AP(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(m_`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(m_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(m_`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await m_`
549
602
  CREATE INDEX async_research_jobs_active_idx
550
603
  ON async_research_jobs (status, last_polled_at)
551
604
  WHERE status IN ('pending', 'polling')
552
- `.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await u_`
605
+ `.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await m_`
553
606
  ALTER TABLE async_research_jobs
554
607
  ADD CONSTRAINT chk_async_research_jobs_status
555
608
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
556
- `.execute(_)}async function HP(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var ou={};m(ou,{up:()=>MP,down:()=>BP});async function MP(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function BP(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var au={};m(au,{up:()=>GP,down:()=>fP});import{sql as i}from"kysely";async function GP(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(i`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(i`CURRENT_TIMESTAMP`)).execute(),await i`
609
+ `.execute(_)}async function IP(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var eu={};m(eu,{up:()=>nP,down:()=>wP});async function nP(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function wP(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var lu={};m(lu,{up:()=>VP,down:()=>kP});import{sql as t}from"kysely";async function VP(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(t`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t`CURRENT_TIMESTAMP`)).execute(),await t`
557
610
  ALTER TABLE secrets
558
611
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
559
- `.execute(_),await i`
612
+ `.execute(_),await t`
560
613
  ALTER TABLE secrets
561
614
  ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
562
615
  (scope = 'user' AND user_id IS NOT NULL)
563
616
  OR (scope = 'organization' AND user_id IS NULL)
564
617
  )
565
- `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await i`
618
+ `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await t`
566
619
  CREATE UNIQUE INDEX idx_secrets_user_name
567
620
  ON secrets (organization_id, user_id, lower(name))
568
621
  WHERE scope = 'user'
569
- `.execute(_),await i`
622
+ `.execute(_),await t`
570
623
  CREATE UNIQUE INDEX idx_secrets_org_name
571
624
  ON secrets (organization_id, lower(name))
572
625
  WHERE scope = 'organization'
573
- `.execute(_)}async function fP(_){await _.schema.dropTable("secrets").execute()}var ru={};m(ru,{up:()=>yP,down:()=>OP});async function yP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function OP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var eu={};m(eu,{up:()=>AP,down:()=>IP});import{sql as SP}from"kysely";async function AP(_){await SP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function IP(_){}var lu={};m(lu,{up:()=>nP,down:()=>wP});import{sql as L_}from"kysely";async function nP(_){await L_`
626
+ `.execute(_)}async function kP(_){await _.schema.dropTable("secrets").execute()}var du={};m(du,{up:()=>pP,down:()=>vP});async function pP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function vP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var su={};m(su,{up:()=>gP,down:()=>iP});import{sql as qP}from"kysely";async function gP(_){await qP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function iP(_){}var bu={};m(bu,{up:()=>tP,down:()=>cP});import{sql as F_}from"kysely";async function tP(_){await F_`
574
627
  ALTER TABLE sandbox_runner_state
575
628
  RENAME COLUMN runner_kind TO sandbox_provider_kind
576
- `.execute(_),await L_`
629
+ `.execute(_),await F_`
577
630
  DO $$ BEGIN
578
631
  UPDATE virtualmcps v
579
632
  SET metadata = jsonb_set(
@@ -608,10 +661,10 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
608
661
  EXCEPTION WHEN undefined_table THEN
609
662
  NULL;
610
663
  END; $$
611
- `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function wP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await L_`
664
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function cP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await F_`
612
665
  ALTER TABLE sandbox_runner_state
613
666
  RENAME COLUMN sandbox_provider_kind TO runner_kind
614
- `.execute(_),await L_`
667
+ `.execute(_),await F_`
615
668
  DO $$ BEGIN
616
669
  UPDATE virtualmcps v
617
670
  SET metadata = jsonb_set(
@@ -646,7 +699,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
646
699
  EXCEPTION WHEN undefined_table THEN
647
700
  NULL;
648
701
  END; $$
649
- `.execute(_)}var du={};m(du,{up:()=>VP,down:()=>kP});import{sql as ET}from"kysely";async function VP(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await ET`
702
+ `.execute(_)}var _m={};m(_m,{up:()=>hP,down:()=>oP});import{sql as XT}from"kysely";async function hP(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await XT`
650
703
  DO $$ BEGIN
651
704
  UPDATE virtualmcps v
652
705
  SET metadata = jsonb_set(
@@ -685,7 +738,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
685
738
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
686
739
  NULL;
687
740
  END; $$
688
- `.execute(_)}async function kP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await ET`
741
+ `.execute(_)}async function oP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await XT`
689
742
  DO $$ BEGIN
690
743
  UPDATE virtualmcps v
691
744
  SET metadata = jsonb_set(
@@ -718,7 +771,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
718
771
  EXCEPTION WHEN undefined_table THEN
719
772
  NULL;
720
773
  END; $$
721
- `.execute(_)}var su={};m(su,{up:()=>pP,down:()=>vP});import{sql as zT}from"kysely";async function pP(_){await zT`
774
+ `.execute(_)}var xm={};m(xm,{up:()=>aP,down:()=>rP});import{sql as jT}from"kysely";async function aP(_){await jT`
722
775
  UPDATE connections c
723
776
  SET metadata = (
724
777
  jsonb_set(
@@ -762,7 +815,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
762
815
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
763
816
  WHERE entry ? 'vmId'
764
817
  );
765
- `.execute(_),await zT`
818
+ `.execute(_),await jT`
766
819
  UPDATE connections c
767
820
  SET metadata = (
768
821
  jsonb_set(
@@ -816,14 +869,14 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
816
869
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
817
870
  WHERE inner_entry ? 'runnerKind'
818
871
  );
819
- `.execute(_)}async function vP(_){}var bu={};m(bu,{up:()=>gP,down:()=>iP});import{sql as qP}from"kysely";async function gP(_){await qP`
872
+ `.execute(_)}async function rP(_){}var um={};m(um,{up:()=>lP,down:()=>dP});import{sql as eP}from"kysely";async function lP(_){await eP`
820
873
  DELETE FROM ai_provider_keys
821
874
  WHERE provider_id IN ('claude-code', 'codex')
822
- `.execute(_)}async function iP(_){}var _m={};m(_m,{up:()=>tP,down:()=>cP});import{sql as F_}from"kysely";async function tP(_){await F_`
875
+ `.execute(_)}async function dP(_){}var mm={};m(mm,{up:()=>sP,down:()=>bP});import{sql as R_}from"kysely";async function sP(_){await R_`
823
876
  UPDATE sandbox_runner_state
824
877
  SET sandbox_provider_kind = 'desktop'
825
878
  WHERE sandbox_provider_kind = 'remote-user'
826
- `.execute(_),await F_`
879
+ `.execute(_),await R_`
827
880
  UPDATE connections c
828
881
  SET metadata = (
829
882
  jsonb_set(
@@ -866,7 +919,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
866
919
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
867
920
  WHERE kind_key = 'remote-user'
868
921
  );
869
- `.execute(_),await F_`
922
+ `.execute(_),await R_`
870
923
  UPDATE connections c
871
924
  SET metadata = (
872
925
  jsonb_set(
@@ -913,17 +966,17 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
913
966
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
914
967
  WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
915
968
  );
916
- `.execute(_),await F_`
969
+ `.execute(_),await R_`
917
970
  UPDATE threads
918
971
  SET sandbox_provider_kind = 'desktop'
919
972
  WHERE sandbox_provider_kind = 'remote-user'
920
- `.execute(_)}async function cP(_){}var xm={};m(xm,{up:()=>hP,down:()=>oP});import{sql as m_}from"kysely";async function hP(_){await m_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await m_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function oP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await m_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await m_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await m_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var um={};m(um,{up:()=>aP,down:()=>rP});import{sql as PT}from"kysely";async function aP(_){await PT`
973
+ `.execute(_)}async function bP(_){}var Cm={};m(Cm,{up:()=>_$,down:()=>x$});import{sql as C_}from"kysely";async function _$(_){await C_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await C_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function x$(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await C_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await C_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await C_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var Nm={};m(Nm,{up:()=>u$,down:()=>m$});import{sql as JT}from"kysely";async function u$(_){await JT`
921
974
  ALTER TABLE organization_domains
922
975
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
923
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function rP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await PT`
976
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function m$(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await JT`
924
977
  ALTER TABLE organization_domains
925
978
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
926
- `.execute(_)}var mm={};m(mm,{up:()=>eP,down:()=>lP});import{sql as R_}from"kysely";async function eP(_){await R_`
979
+ `.execute(_)}var Tm={};m(Tm,{up:()=>C$,down:()=>N$});import{sql as Y_}from"kysely";async function C$(_){await Y_`
927
980
  UPDATE sandbox_runner_state
928
981
  SET sandbox_provider_kind = CASE sandbox_provider_kind
929
982
  WHEN 'docker' THEN 'local-docker'
@@ -933,7 +986,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
933
986
  ELSE sandbox_provider_kind
934
987
  END
935
988
  WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
936
- `.execute(_),await R_`
989
+ `.execute(_),await Y_`
937
990
  UPDATE connections c
938
991
  SET metadata = (
939
992
  (c.metadata::jsonb - 'vmMap')
@@ -942,7 +995,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
942
995
  WHERE c.connection_type = 'VIRTUAL'
943
996
  AND c.metadata IS NOT NULL
944
997
  AND c.metadata::jsonb ? 'vmMap'
945
- `.execute(_),await R_`
998
+ `.execute(_),await Y_`
946
999
  UPDATE connections c
947
1000
  SET metadata = (
948
1001
  jsonb_set(
@@ -1003,7 +1056,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1003
1056
  WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
1004
1057
  OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
1005
1058
  );
1006
- `.execute(_),await R_`
1059
+ `.execute(_),await Y_`
1007
1060
  UPDATE connections c
1008
1061
  SET metadata = REPLACE(
1009
1062
  REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
@@ -1012,30 +1065,30 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1012
1065
  WHERE c.connection_type = 'VIRTUAL'
1013
1066
  AND c.metadata IS NOT NULL
1014
1067
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
1015
- `.execute(_)}async function lP(_){}var Cm={};m(Cm,{up:()=>sP,down:()=>bP});import{sql as $T}from"kysely";var dP=["GLOBAL_SEARCH"];async function sP(_){let x=await $T`
1068
+ `.execute(_)}async function N$(_){}var Km={};m(Km,{up:()=>K$,down:()=>E$});import{sql as QT}from"kysely";var T$=["GLOBAL_SEARCH"];async function K$(_){let x=await QT`
1016
1069
  SELECT id, permission FROM "organizationRole"
1017
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let C=N.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let T=C,E=Array.from(new Set([...T,...dP]));if(E.length===T.length)continue;N.self=E;let K=JSON.stringify(N);await $T`
1070
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let C=N.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let T=C,K=Array.from(new Set([...T,...T$]));if(K.length===T.length)continue;N.self=K;let E=JSON.stringify(N);await QT`
1018
1071
  UPDATE "organizationRole"
1019
- SET permission = ${K}
1072
+ SET permission = ${E}
1020
1073
  WHERE id = ${u.id}
1021
- `.execute(_)}}async function bP(_){}var Tm={};m(Tm,{up:()=>_$,down:()=>x$});import{sql as Nm}from"kysely";async function _$(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await Nm`
1074
+ `.execute(_)}}async function E$(_){}var zm={};m(zm,{up:()=>z$,down:()=>P$});import{sql as Em}from"kysely";async function z$(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Em`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Em`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await Em`
1022
1075
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
1023
1076
  ON org_file_configs (organization_id, lower(name))
1024
- `.execute(_)}async function x$(_){await _.schema.dropTable("org_file_configs").execute()}var Km={};m(Km,{up:()=>u$,down:()=>m$});import{sql as S}from"kysely";async function u$(_){await S`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await S`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await S`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await S`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await S`
1077
+ `.execute(_)}async function P$(_){await _.schema.dropTable("org_file_configs").execute()}var Pm={};m(Pm,{up:()=>$$,down:()=>U$});import{sql as A}from"kysely";async function $$(_){await A`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await A`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await A`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await A`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await A`
1025
1078
  ALTER TABLE automations
1026
1079
  ALTER COLUMN virtual_mcp_id SET NOT NULL
1027
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function m$(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await S`
1080
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function U$(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await A`
1028
1081
  ALTER TABLE automations
1029
1082
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
1030
- `.execute(_),await S`
1083
+ `.execute(_),await A`
1031
1084
  ALTER TABLE automations
1032
1085
  ADD CONSTRAINT chk_automation_kind
1033
1086
  CHECK (kind IN ('agent', 'tool_call'))
1034
- `.execute(_),await S`
1087
+ `.execute(_),await A`
1035
1088
  ALTER TABLE automations
1036
1089
  ADD CONSTRAINT chk_automation_agent_fields
1037
1090
  CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
1038
- `.execute(_),await S`
1091
+ `.execute(_),await A`
1039
1092
  ALTER TABLE automations
1040
1093
  ADD CONSTRAINT chk_automation_tool_call_fields
1041
1094
  CHECK (
@@ -1046,91 +1099,91 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1046
1099
  AND tool_input IS NOT NULL
1047
1100
  )
1048
1101
  )
1049
- `.execute(_)}var Em={};m(Em,{up:()=>C$,down:()=>N$});async function C$(_){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 Pm={};m(Pm,{up:()=>T$,down:()=>K$});import{sql as zm}from"kysely";var Y_="local-docker";async function T$(_){await zm`delete from sandbox_runner_state where sandbox_provider_kind = ${Y_}`.execute(_);let x=await zm`
1102
+ `.execute(_)}var $m={};m($m,{up:()=>X$,down:()=>j$});async function X$(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function j$(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var Xm={};m(Xm,{up:()=>J$,down:()=>Q$});import{sql as Um}from"kysely";var H_="local-docker";async function J$(_){await Um`delete from sandbox_runner_state where sandbox_provider_kind = ${H_}`.execute(_);let x=await Um`
1050
1103
  SELECT id, metadata FROM "connections"
1051
1104
  WHERE connection_type = 'VIRTUAL'
1052
1105
  AND metadata IS NOT NULL
1053
- AND metadata LIKE ${"%"+Y_+"%"}
1054
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let C=N.sandboxMap;if(!C||typeof C!=="object")continue;let T=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){T=!0;continue}let U={};for(let[Q,J]of Object.entries($)){if(!J||typeof J!=="object"){T=!0;continue}if(Y_ in J){T=!0;let M={...J};if(delete M[Y_],Object.keys(M).length>0)U[Q]=M}else U[Q]=J}if(Object.keys(U).length>0)E[z]=U;else T=!0}if(!T)continue;N.sandboxMap=E;let K=JSON.stringify(N);await zm`
1106
+ AND metadata LIKE ${"%"+H_+"%"}
1107
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let C=N.sandboxMap;if(!C||typeof C!=="object")continue;let T=!1,K={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){T=!0;continue}let U={};for(let[Q,j]of Object.entries($)){if(!j||typeof j!=="object"){T=!0;continue}if(H_ in j){T=!0;let B={...j};if(delete B[H_],Object.keys(B).length>0)U[Q]=B}else U[Q]=j}if(Object.keys(U).length>0)K[z]=U;else T=!0}if(!T)continue;N.sandboxMap=K;let E=JSON.stringify(N);await Um`
1055
1108
  UPDATE "connections"
1056
- SET metadata = ${K}
1109
+ SET metadata = ${E}
1057
1110
  WHERE id = ${u.id}
1058
- `.execute(_)}}async function K$(_){}var $m={};m($m,{up:()=>E$,down:()=>z$});import{sql as H_}from"kysely";async function E$(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await H_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await H_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await H_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await H_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function z$(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var Um={};m(Um,{up:()=>P$,down:()=>$$});async function P$(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function $$(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var Xm={};m(Xm,{up:()=>U$,down:()=>X$});async function U$(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function X$(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var Jm={};m(Jm,{up:()=>J$,down:()=>j$});async function J$(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function j$(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var jm={};m(jm,{up:()=>Q$,down:()=>W$});async function Q$(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function W$(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var Qm={};m(Qm,{up:()=>Z$,down:()=>D$});async function Z$(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function D$(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var Zm={};m(Zm,{up:()=>F$,down:()=>R$});import{sql as f}from"kysely";var R="cluster",Y="agent-sandbox";function t(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function Wm(_,x,u){if(!t(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function M_(_){if(!t(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==R&&_.sandboxProviderKind!==Y&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!t(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function L$(_,x,u){if(!t(_))return null;let N=!1,C={};for(let[T,E]of Object.entries(_)){if(!t(E)){C[T]=E;continue}let K={};for(let[z,$]of Object.entries(E)){if(!t($)){K[z]=$;continue}let U={};for(let[Q,J]of Object.entries($)){if(Q===x){if(N=!0,!(u in $))U[u]=Wm(J,x,u);else if(!M_($[u])&&M_(J))U[u]=Wm(J,x,u);continue}let M=Wm(J,x,u);if(M!==J)N=!0;if(Q===u&&Q in U&&M_(U[Q])&&!M_(M))continue;U[Q]=M}K[z]=U}C[T]=K}return{sandboxMap:C,changed:N}}async function UT(_,x,u){let N=await f`
1111
+ `.execute(_)}}async function Q$(_){}var jm={};m(jm,{up:()=>Z$,down:()=>D$});import{sql as M_}from"kysely";async function Z$(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await M_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await M_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await M_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await M_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function D$(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var Jm={};m(Jm,{up:()=>W$,down:()=>L$});async function W$(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function L$(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var Qm={};m(Qm,{up:()=>F$,down:()=>R$});async function F$(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function R$(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var Zm={};m(Zm,{up:()=>Y$,down:()=>H$});async function Y$(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function H$(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var Dm={};m(Dm,{up:()=>M$,down:()=>B$});async function M$(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function B$(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var Wm={};m(Wm,{up:()=>G$,down:()=>y$});async function G$(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function y$(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var Fm={};m(Fm,{up:()=>O$,down:()=>S$});import{sql as f}from"kysely";var Y="cluster",H="agent-sandbox";function c(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function Lm(_,x,u){if(!c(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function B_(_){if(!c(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==Y&&_.sandboxProviderKind!==H&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!c(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function f$(_,x,u){if(!c(_))return null;let N=!1,C={};for(let[T,K]of Object.entries(_)){if(!c(K)){C[T]=K;continue}let E={};for(let[z,$]of Object.entries(K)){if(!c($)){E[z]=$;continue}let U={};for(let[Q,j]of Object.entries($)){if(Q===x){if(N=!0,!(u in $))U[u]=Lm(j,x,u);else if(!B_($[u])&&B_(j))U[u]=Lm(j,x,u);continue}let B=Lm(j,x,u);if(B!==j)N=!0;if(Q===u&&Q in U&&B_(U[Q])&&!B_(B))continue;U[Q]=B}E[z]=U}C[T]=E}return{sandboxMap:C,changed:N}}async function ZT(_,x,u){let N=await f`
1059
1112
  SELECT id, metadata FROM connections
1060
1113
  WHERE connection_type = 'VIRTUAL'
1061
1114
  AND metadata IS NOT NULL
1062
1115
  AND metadata LIKE ${"%"+x+"%"}
1063
- `.execute(_);for(let C of N.rows){if(!C.metadata)continue;let T;try{T=JSON.parse(C.metadata)}catch{continue}let E=L$(T.sandboxMap,x,u);if(!E?.changed)continue;T.sandboxMap=E.sandboxMap,await f`
1116
+ `.execute(_);for(let C of N.rows){if(!C.metadata)continue;let T;try{T=JSON.parse(C.metadata)}catch{continue}let K=f$(T.sandboxMap,x,u);if(!K?.changed)continue;T.sandboxMap=K.sandboxMap,await f`
1064
1117
  UPDATE connections
1065
1118
  SET metadata = ${JSON.stringify(T)}
1066
1119
  WHERE id = ${C.id}
1067
- `.execute(_)}}async function F$(_){await f`
1120
+ `.execute(_)}}async function O$(_){await f`
1068
1121
  UPDATE threads
1069
- SET sandbox_provider_kind = ${Y}
1070
- WHERE sandbox_provider_kind = ${R}
1122
+ SET sandbox_provider_kind = ${H}
1123
+ WHERE sandbox_provider_kind = ${Y}
1071
1124
  `.execute(_),await f`
1072
1125
  UPDATE sandbox_runner_state canonical
1073
1126
  SET handle = legacy.handle,
1074
1127
  state = legacy.state,
1075
1128
  updated_at = legacy.updated_at
1076
1129
  FROM sandbox_runner_state legacy
1077
- WHERE canonical.sandbox_provider_kind = ${Y}
1078
- AND legacy.sandbox_provider_kind = ${R}
1130
+ WHERE canonical.sandbox_provider_kind = ${H}
1131
+ AND legacy.sandbox_provider_kind = ${Y}
1079
1132
  AND canonical.user_id = legacy.user_id
1080
1133
  AND canonical.project_ref = legacy.project_ref
1081
1134
  AND legacy.updated_at > canonical.updated_at
1082
1135
  `.execute(_),await f`
1083
1136
  DELETE FROM sandbox_runner_state legacy
1084
- WHERE legacy.sandbox_provider_kind = ${R}
1137
+ WHERE legacy.sandbox_provider_kind = ${Y}
1085
1138
  AND EXISTS (
1086
1139
  SELECT 1
1087
1140
  FROM sandbox_runner_state canonical
1088
1141
  WHERE canonical.user_id = legacy.user_id
1089
1142
  AND canonical.project_ref = legacy.project_ref
1090
- AND canonical.sandbox_provider_kind = ${Y}
1143
+ AND canonical.sandbox_provider_kind = ${H}
1091
1144
  )
1092
1145
  `.execute(_),await f`
1093
1146
  UPDATE sandbox_runner_state
1094
- SET sandbox_provider_kind = ${Y}
1095
- WHERE sandbox_provider_kind = ${R}
1096
- `.execute(_),await UT(_,R,Y)}async function R$(_){await f`
1097
- UPDATE threads
1098
- SET sandbox_provider_kind = ${R}
1147
+ SET sandbox_provider_kind = ${H}
1099
1148
  WHERE sandbox_provider_kind = ${Y}
1149
+ `.execute(_),await ZT(_,Y,H)}async function S$(_){await f`
1150
+ UPDATE threads
1151
+ SET sandbox_provider_kind = ${Y}
1152
+ WHERE sandbox_provider_kind = ${H}
1100
1153
  `.execute(_),await f`
1101
1154
  UPDATE sandbox_runner_state legacy
1102
1155
  SET handle = canonical.handle,
1103
1156
  state = canonical.state,
1104
1157
  updated_at = canonical.updated_at
1105
1158
  FROM sandbox_runner_state canonical
1106
- WHERE legacy.sandbox_provider_kind = ${R}
1107
- AND canonical.sandbox_provider_kind = ${Y}
1159
+ WHERE legacy.sandbox_provider_kind = ${Y}
1160
+ AND canonical.sandbox_provider_kind = ${H}
1108
1161
  AND legacy.user_id = canonical.user_id
1109
1162
  AND legacy.project_ref = canonical.project_ref
1110
1163
  AND canonical.updated_at > legacy.updated_at
1111
1164
  `.execute(_),await f`
1112
1165
  DELETE FROM sandbox_runner_state canonical
1113
- WHERE canonical.sandbox_provider_kind = ${Y}
1166
+ WHERE canonical.sandbox_provider_kind = ${H}
1114
1167
  AND EXISTS (
1115
1168
  SELECT 1
1116
1169
  FROM sandbox_runner_state legacy
1117
1170
  WHERE legacy.user_id = canonical.user_id
1118
1171
  AND legacy.project_ref = canonical.project_ref
1119
- AND legacy.sandbox_provider_kind = ${R}
1172
+ AND legacy.sandbox_provider_kind = ${Y}
1120
1173
  )
1121
1174
  `.execute(_),await f`
1122
1175
  UPDATE sandbox_runner_state
1123
- SET sandbox_provider_kind = ${R}
1124
- WHERE sandbox_provider_kind = ${Y}
1125
- `.execute(_),await UT(_,Y,R)}var Dm={};m(Dm,{up:()=>Y$,down:()=>H$});import{sql as I}from"kysely";async function Y$(_){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`
1176
+ SET sandbox_provider_kind = ${Y}
1177
+ WHERE sandbox_provider_kind = ${H}
1178
+ `.execute(_),await ZT(_,H,Y)}var Rm={};m(Rm,{up:()=>A$,down:()=>I$});import{sql as n}from"kysely";async function A$(_){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`
1126
1179
  CREATE INDEX idx_org_fs_entry_parent
1127
1180
  ON org_fs_entry (organization_id, volume, parent)
1128
1181
  WHERE deleted_at IS NULL
1129
- `.execute(_),await I`
1182
+ `.execute(_),await n`
1130
1183
  CREATE INDEX idx_org_fs_entry_usage
1131
1184
  ON org_fs_entry (organization_id, volume, size)
1132
1185
  WHERE kind = 'file' AND deleted_at IS NULL
1133
- `.execute(_)}async function H$(_){await _.schema.dropTable("org_fs_entry").execute(),await I`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var Lm={};m(Lm,{up:()=>M$,down:()=>B$});async function M$(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function B$(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var Fm={};m(Fm,{up:()=>G$,down:()=>f$});import{sql as XT}from"kysely";async function G$(_){await XT`
1186
+ `.execute(_)}async function I$(_){await _.schema.dropTable("org_fs_entry").execute(),await n`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var Ym={};m(Ym,{up:()=>n$,down:()=>w$});async function n$(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function w$(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var Hm={};m(Hm,{up:()=>V$,down:()=>k$});import{sql as DT}from"kysely";async function V$(_){await DT`
1134
1187
  INSERT INTO "organization" (id, name, slug, "createdAt")
1135
1188
  SELECT
1136
1189
  'org_orgfs_public_skills',
@@ -1144,13 +1197,13 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1144
1197
  END,
1145
1198
  now()
1146
1199
  ON CONFLICT (id) DO NOTHING
1147
- `.execute(_)}async function f$(_){await XT`
1200
+ `.execute(_)}async function k$(_){await DT`
1148
1201
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
1149
- `.execute(_)}var Rm={};m(Rm,{up:()=>y$,down:()=>O$});async function y$(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function O$(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Ym={};m(Ym,{up:()=>S$,down:()=>A$});import{sql as JT}from"kysely";async function S$(_){await JT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function A$(_){await JT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Hm={};m(Hm,{up:()=>n$,down:()=>w$});import{sql as I$}from"kysely";async function n$(_){await I$`
1202
+ `.execute(_)}var Mm={};m(Mm,{up:()=>p$,down:()=>v$});async function p$(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function v$(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Bm={};m(Bm,{up:()=>q$,down:()=>g$});import{sql as WT}from"kysely";async function q$(_){await WT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function g$(_){await WT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Gm={};m(Gm,{up:()=>t$,down:()=>c$});import{sql as i$}from"kysely";async function t$(_){await i$`
1150
1203
  UPDATE downstream_tokens
1151
1204
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1152
1205
  WHERE "expiresAt" IS NULL
1153
- `.execute(_)}async function w$(_){}var Mm={};m(Mm,{up:()=>V$,down:()=>k$});async function V$(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function k$(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var Bm={};m(Bm,{up:()=>p$,down:()=>v$});async function p$(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function v$(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var Gm={};m(Gm,{up:()=>q$,down:()=>g$});async function q$(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function g$(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var fm={};m(fm,{up:()=>i$,down:()=>t$});async function i$(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function t$(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var ym={};m(ym,{up:()=>c$,down:()=>h$});async function c$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function h$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Om={};m(Om,{up:()=>o$,down:()=>a$});import{sql as jT}from"kysely";async function o$(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(jT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(jT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function a$(_){await _.schema.dropTable("org_sites").execute()}var Sm={};m(Sm,{up:()=>r$,down:()=>e$});async function r$(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function e$(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Am={};m(Am,{up:()=>l$,down:()=>d$});import{sql as D}from"kysely";async function l$(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await D`
1206
+ `.execute(_)}async function c$(_){}var ym={};m(ym,{up:()=>h$,down:()=>o$});async function h$(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function o$(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var fm={};m(fm,{up:()=>a$,down:()=>r$});async function a$(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function r$(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var Om={};m(Om,{up:()=>e$,down:()=>l$});async function e$(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function l$(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Sm={};m(Sm,{up:()=>d$,down:()=>s$});async function d$(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function s$(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Am={};m(Am,{up:()=>b$,down:()=>_U});async function b$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function _U(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Im={};m(Im,{up:()=>xU,down:()=>uU});import{sql as LT}from"kysely";async function xU(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(LT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(LT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function uU(_){await _.schema.dropTable("org_sites").execute()}var nm={};m(nm,{up:()=>mU,down:()=>CU});async function mU(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function CU(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var wm={};m(wm,{up:()=>NU,down:()=>TU});import{sql as W}from"kysely";async function NU(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await W`
1154
1207
  UPDATE organization_domains
1155
1208
  SET
1156
1209
  id = gen_random_uuid()::text,
@@ -1159,18 +1212,18 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1159
1212
  verification_method = 'email',
1160
1213
  verified_at = created_at
1161
1214
  WHERE id IS NULL
1162
- `.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await D`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function d$(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await D`
1215
+ `.execute(_),await W`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await W`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await W`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await W`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await W`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await W`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await W`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await W`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function TU(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await W`
1163
1216
  UPDATE organization_domains
1164
1217
  SET auto_join_enabled = (join_mode = 'auto')
1165
- `.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var Im={};m(Im,{up:()=>s$,down:()=>b$});import{sql as B_}from"kysely";async function s$(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(B_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(B_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(B_`now()`)).execute(),await B_`
1218
+ `.execute(_),await W`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await W`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var Vm={};m(Vm,{up:()=>KU,down:()=>EU});import{sql as G_}from"kysely";async function KU(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(G_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(G_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(G_`now()`)).execute(),await G_`
1166
1219
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1167
1220
  ON organization_join_requests (organization_id, user_id)
1168
1221
  WHERE status = 'pending'
1169
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function b$(_){await _.schema.dropTable("organization_join_requests").execute()}var nm={};m(nm,{up:()=>_U,down:()=>xU});async function _U(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function xU(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var wm={};m(wm,{up:()=>uU,down:()=>mU});async function uU(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function mU(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var pm={};m(pm,{up:()=>TU,splitWebResearchTier:()=>km,down:()=>KU,__testing:()=>NU});function CU(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Vm(_){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 km(_){if(!_||Vm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...C}=x,T=null,E=null;if(u)if(CU(u.modelId))E=u;else T=u;return{..._,tiers:{...C,web_search:T,deep_research:E}}}var NU={splitWebResearchTier:km,isAlreadySplit:Vm};async function TU(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(Vm(N))continue;let C=km(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function KU(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var vm={};m(vm,{up:()=>EU,down:()=>zU});import{sql as C_}from"kysely";async function EU(_){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(C_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(C_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await C_`
1222
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function EU(_){await _.schema.dropTable("organization_join_requests").execute()}var km={};m(km,{up:()=>zU,down:()=>PU});async function zU(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function PU(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var pm={};m(pm,{up:()=>$U,down:()=>UU});async function $U(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function UU(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var gm={};m(gm,{up:()=>JU,splitWebResearchTier:()=>qm,down:()=>QU,__testing:()=>jU});function XU(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function vm(_){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 qm(_){if(!_||vm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...C}=x,T=null,K=null;if(u)if(XU(u.modelId))K=u;else T=u;return{..._,tiers:{...C,web_search:T,deep_research:K}}}var jU={splitWebResearchTier:qm,isAlreadySplit:vm};async function JU(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(vm(N))continue;let C=qm(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function QU(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var im={};m(im,{up:()=>ZU,down:()=>DU});import{sql as N_}from"kysely";async function ZU(_){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(N_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(N_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await N_`
1170
1223
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1171
1224
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1172
1225
  WHERE revoked_at IS NULL
1173
- `.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(C_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(C_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function zU(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var qm={};m(qm,{up:()=>PU,down:()=>$U});async function PU(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function $U(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var gm={};m(gm,{up:()=>UU,down:()=>XU});import{sql as k}from"kysely";async function UU(_){await k`
1226
+ `.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(N_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(N_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function DU(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var tm={};m(tm,{up:()=>WU,down:()=>LU});async function WU(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function LU(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var cm={};m(cm,{up:()=>FU,down:()=>RU});import{sql as p}from"kysely";async function FU(_){await p`
1174
1227
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1175
1228
  RETURNS jsonb AS $fn$
1176
1229
  BEGIN
@@ -1179,7 +1232,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1179
1232
  RETURN NULL;
1180
1233
  END;
1181
1234
  $fn$ LANGUAGE plpgsql IMMUTABLE;
1182
- `.execute(_),await k`
1235
+ `.execute(_),await p`
1183
1236
  DELETE FROM connection_aggregations a
1184
1237
  USING (
1185
1238
  SELECT
@@ -1203,7 +1256,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1203
1256
  WHERE jsonb_typeof(try_parse_jsonb(child.metadata) -> 'repoScope') = 'object'
1204
1257
  ) ranked
1205
1258
  WHERE a.id = ranked.id AND ranked.rn > 1;
1206
- `.execute(_),await k`
1259
+ `.execute(_),await p`
1207
1260
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1208
1261
  RETURNS trigger AS $fn$
1209
1262
  BEGIN
@@ -1224,12 +1277,12 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1224
1277
  RETURN NEW;
1225
1278
  END;
1226
1279
  $fn$ LANGUAGE plpgsql;
1227
- `.execute(_),await k`
1280
+ `.execute(_),await p`
1228
1281
  CREATE TRIGGER trg_repo_github_child_single_parent
1229
1282
  BEFORE INSERT ON connection_aggregations
1230
1283
  FOR EACH ROW
1231
1284
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1232
- `.execute(_)}async function XU(_){await k`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await k`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await k`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var tm={};m(tm,{up:()=>JU,down:()=>jU});import{sql as im}from"kysely";async function JU(_){await _.schema.createTable("task_board_items").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("status","text",(x)=>x.notNull().defaultTo("triage")).addColumn("priority","text",(x)=>x.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(im`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(im`now()`)).execute(),await _.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(im`false`)).execute()}async function jU(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var cm={};m(cm,{up:()=>QU,down:()=>WU});async function QU(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function WU(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var hm={};m(hm,{up:()=>ZU,down:()=>DU});async function ZU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function DU(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var om={};m(om,{up:()=>LU,down:()=>FU});async function LU(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function FU(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var am={};m(am,{up:()=>YU,down:()=>HU});import{sql as RU}from"kysely";async function YU(_){await _.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(RU`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await _.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await _.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function HU(_){await _.schema.dropTable("task_board_item_threads").execute()}var rm={};m(rm,{up:()=>MU,down:()=>BU});async function MU(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(x)=>x.onDelete("cascade")).execute()}async function BU(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var em={};m(em,{up:()=>fU,down:()=>yU});import{sql as GU}from"kysely";async function fU(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(GU`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await _.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function yU(_){await _.schema.dropTable("task_board_item_prs").execute()}var lm={};m(lm,{up:()=>SU,down:()=>AU});import{sql as OU}from"kysely";async function SU(_){await OU`
1285
+ `.execute(_)}async function RU(_){await p`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await p`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await p`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var om={};m(om,{up:()=>YU,down:()=>HU});import{sql as hm}from"kysely";async function YU(_){await _.schema.createTable("task_board_items").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("status","text",(x)=>x.notNull().defaultTo("triage")).addColumn("priority","text",(x)=>x.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(hm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(hm`now()`)).execute(),await _.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(hm`false`)).execute()}async function HU(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var am={};m(am,{up:()=>MU,down:()=>BU});async function MU(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function BU(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var rm={};m(rm,{up:()=>GU,down:()=>yU});async function GU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function yU(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var em={};m(em,{up:()=>fU,down:()=>OU});async function fU(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function OU(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var lm={};m(lm,{up:()=>AU,down:()=>IU});import{sql as SU}from"kysely";async function AU(_){await _.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(SU`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await _.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await _.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function IU(_){await _.schema.dropTable("task_board_item_threads").execute()}var dm={};m(dm,{up:()=>nU,down:()=>wU});async function nU(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(x)=>x.onDelete("cascade")).execute()}async function wU(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var sm={};m(sm,{up:()=>kU,down:()=>pU});import{sql as VU}from"kysely";async function kU(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(VU`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await _.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function pU(_){await _.schema.dropTable("task_board_item_prs").execute()}var bm={};m(bm,{up:()=>qU,down:()=>gU});import{sql as vU}from"kysely";async function qU(_){await vU`
1233
1286
  DELETE FROM member
1234
1287
  WHERE id IN (
1235
1288
  SELECT id FROM (
@@ -1248,38 +1301,38 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1248
1301
  ) ranked
1249
1302
  WHERE ranked.rn > 1
1250
1303
  )
1251
- `.execute(_)}async function AU(_){}var dm={};m(dm,{up:()=>IU,down:()=>nU});async function IU(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function nU(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var sm={};m(sm,{up:()=>wU,down:()=>VU});async function wU(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function VU(_){await _.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var bm={};m(bm,{up:()=>pU,down:()=>vU});import{sql as kU}from"kysely";async function pU(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(kU`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await _.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await _.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function vU(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var _C={};m(_C,{up:()=>gU,down:()=>iU});import{sql as qU}from"kysely";async function gU(_){await _.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(x)=>x.notNull()).addColumn("sandbox_provider_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qU`now()`)).addPrimaryKeyConstraint("agent_sandbox_runner_state_pkey",["project_ref","sandbox_provider_kind"]).execute(),await _.schema.createIndex("agent_sandbox_runner_state_handle_idx").on("agent_sandbox_runner_state").column("handle").execute()}async function iU(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var xC={};m(xC,{up:()=>tU,down:()=>cU});import{sql as G_}from"kysely";async function tU(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(G_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(G_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",G_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",G_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function cU(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var uC={};m(uC,{up:()=>hU,down:()=>oU});import{sql as f_}from"kysely";async function hU(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(f_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(f_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(f_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await f_`
1304
+ `.execute(_)}async function gU(_){}var _C={};m(_C,{up:()=>iU,down:()=>tU});async function iU(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function tU(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var xC={};m(xC,{up:()=>cU,down:()=>hU});async function cU(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function hU(_){await _.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var uC={};m(uC,{up:()=>aU,down:()=>rU});import{sql as oU}from"kysely";async function aU(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(oU`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await _.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await _.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function rU(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var mC={};m(mC,{up:()=>lU,down:()=>dU});import{sql as eU}from"kysely";async function lU(_){await _.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(x)=>x.notNull()).addColumn("sandbox_provider_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(eU`now()`)).addPrimaryKeyConstraint("agent_sandbox_runner_state_pkey",["project_ref","sandbox_provider_kind"]).execute(),await _.schema.createIndex("agent_sandbox_runner_state_handle_idx").on("agent_sandbox_runner_state").column("handle").execute()}async function dU(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var CC={};m(CC,{up:()=>sU,down:()=>bU});import{sql as y_}from"kysely";async function sU(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",y_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",y_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function bU(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var NC={};m(NC,{up:()=>_X,down:()=>xX});import{sql as f_}from"kysely";async function _X(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(f_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(f_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(f_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await f_`
1252
1305
  insert into organization_billing (organization_id, legacy)
1253
1306
  select id, true from organization
1254
1307
  on conflict (organization_id) do nothing
1255
- `.execute(_)}async function oU(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var mC={};m(mC,{up:()=>aU,down:()=>rU});import{sql as QT}from"kysely";async function aU(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(QT`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(QT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function rU(_){await _.schema.dropTable("seat_change_log").execute()}var CC={};m(CC,{up:()=>eU,down:()=>lU});async function eU(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function lU(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var NC={};m(NC,{up:()=>dU,down:()=>sU});import{sql as WT}from"kysely";async function dU(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await WT`
1308
+ `.execute(_)}async function xX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var TC={};m(TC,{up:()=>uX,down:()=>mX});import{sql as FT}from"kysely";async function uX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(FT`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(FT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function mX(_){await _.schema.dropTable("seat_change_log").execute()}var KC={};m(KC,{up:()=>CX,down:()=>NX});async function CX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function NX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var EC={};m(EC,{up:()=>TX,down:()=>KX});import{sql as RT}from"kysely";async function TX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await RT`
1256
1309
  create unique index organization_billing_stripe_subscription_id_uq
1257
1310
  on organization_billing (stripe_subscription_id)
1258
1311
  where stripe_subscription_id is not null
1259
- `.execute(_)}async function sU(_){await WT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var TC={};m(TC,{up:()=>bU,down:()=>_X});async function bU(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function _X(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var KC={};m(KC,{up:()=>xX,down:()=>uX});import{sql as ZT}from"kysely";async function xX(_){await ZT`
1312
+ `.execute(_)}async function KX(_){await RT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var zC={};m(zC,{up:()=>EX,down:()=>zX});async function EX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function zX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var PC={};m(PC,{up:()=>PX,down:()=>$X});import{sql as YT}from"kysely";async function PX(_){await YT`
1260
1313
  create index idx_org_billing_benefits_pending
1261
1314
  on organization_billing (updated_at)
1262
1315
  where benefits_reference_id is not null
1263
- `.execute(_)}async function uX(_){await ZT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var EC={};m(EC,{up:()=>mX,down:()=>CX});import{sql as DT}from"kysely";async function mX(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(DT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(DT`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 CX(_){await _.schema.dropTable("user_model_preferences").execute()}var zC={};m(zC,{up:()=>NX,down:()=>TX});async function NX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function TX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var PC={};m(PC,{up:()=>KX,down:()=>EX});async function KX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function EX(_){}var $C={};m($C,{up:()=>zX,down:()=>PX});import{sql as LT}from"kysely";async function zX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await LT`
1316
+ `.execute(_)}async function $X(_){await YT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var $C={};m($C,{up:()=>UX,down:()=>XX});import{sql as HT}from"kysely";async function UX(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(HT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(HT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function XX(_){await _.schema.dropTable("user_model_preferences").execute()}var UC={};m(UC,{up:()=>jX,down:()=>JX});async function jX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function JX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var XC={};m(XC,{up:()=>QX,down:()=>ZX});async function QX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function ZX(_){}var jC={};m(jC,{up:()=>DX,down:()=>WX});import{sql as MT}from"kysely";async function DX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await MT`
1264
1317
  UPDATE organization_settings
1265
1318
  SET flags = jsonb_build_object('reports_only', reports_only)
1266
1319
  WHERE reports_only IS NOT NULL
1267
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function PX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await LT`
1320
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function WX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await MT`
1268
1321
  UPDATE organization_settings
1269
1322
  SET reports_only = (flags ->> 'reports_only')::boolean
1270
1323
  WHERE flags ? 'reports_only'
1271
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var UC={};m(UC,{up:()=>UX,down:()=>XX});import{sql as $X}from"kysely";async function UX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await $X`
1324
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var JC={};m(JC,{up:()=>FX,down:()=>RX});import{sql as LX}from"kysely";async function FX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await LX`
1272
1325
  update task_board_items
1273
1326
  set sort_order = -extract(epoch from created_at)
1274
- `.execute(_)}async function XX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var XC={};m(XC,{up:()=>JX,down:()=>jX,ACTIONS:()=>FT});import{sql as y_}from"kysely";var FT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function JX(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addCheckConstraint("chk_task_board_activity_action",y_`action IN (${y_.join(FT.map((x)=>y_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function jX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var jC={};m(jC,{up:()=>QX,down:()=>WX,ACTIONS:()=>JC});import{sql as N_}from"kysely";var JC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function QX(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(N_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await RT(_,JC)}async function WX(_){await RT(_,JC.filter((x)=>x!=="tags_changed")),await _.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await _.schema.dropTable("task_board_item_tags").execute(),await _.schema.alterTable("organization_tags").dropColumn("color").execute()}async function RT(_,x){await 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 WC={};m(WC,{up:()=>DX,down:()=>LX});import{sql as YT}from"kysely";function QC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function ZX(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return QC(N)}catch{return QC(_.connection_url)}if(_.title)return QC(_.title);return _.id}async function DX(_){let x=await YT`
1327
+ `.execute(_)}async function RX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var QC={};m(QC,{up:()=>YX,down:()=>HX,ACTIONS:()=>BT});import{sql as O_}from"kysely";var BT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function YX(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(O_`now()`)).addCheckConstraint("chk_task_board_activity_action",O_`action IN (${O_.join(BT.map((x)=>O_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function HX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var DC={};m(DC,{up:()=>MX,down:()=>BX,ACTIONS:()=>ZC});import{sql as T_}from"kysely";var ZC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function MX(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(T_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await GT(_,ZC)}async function BX(_){await GT(_,ZC.filter((x)=>x!=="tags_changed")),await _.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await _.schema.dropTable("task_board_item_tags").execute(),await _.schema.alterTable("organization_tags").dropColumn("color").execute()}async function GT(_,x){await T_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await T_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${T_.join(x.map((u)=>T_.lit(u)))}))`.execute(_)}var LC={};m(LC,{up:()=>yX,down:()=>fX});import{sql as yT}from"kysely";function WC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function GX(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return WC(N)}catch{return WC(_.connection_url)}if(_.title)return WC(_.title);return _.id}async function yX(_){let x=await yT`
1275
1328
  SELECT id, app_name, connection_url, title, slug
1276
1329
  FROM connections
1277
1330
  WHERE connection_type != 'VIRTUAL'
1278
- `.execute(_),u=0;for(let N of x.rows){let C=ZX(N);if(C===N.slug)continue;await YT`UPDATE connections SET slug = ${C} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function LX(){}var ZC={};m(ZC,{up:()=>RX,down:()=>YX});import{sql as FX}from"kysely";async function RX(_){await FX`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 YX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var LC={};m(LC,{up:()=>MX,down:()=>BX,ACTIONS:()=>DC});import{sql as O_}from"kysely";var DC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],HX=new Set(["review_requested","review_approved","review_changes_requested"]);async function MX(_){await HT(_,DC)}async function BX(_){await HT(_,DC.filter((x)=>!HX.has(x)))}async function HT(_,x){await O_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await O_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${O_.join(x.map((u)=>O_.lit(u)))}))`.execute(_)}var FC={};m(FC,{up:()=>fX,down:()=>yX});import{sql as GX}from"kysely";async function fX(_){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(GX`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 yX(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var YC={};m(YC,{up:()=>SX,down:()=>AX,ACTIONS:()=>RC});import{sql as S_}from"kysely";var RC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],OX=new Set(["merge_conflict_resolution"]);async function SX(_){await MT(_,RC)}async function AX(_){await MT(_,RC.filter((x)=>!OX.has(x)))}async function MT(_,x){await S_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await S_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${S_.join(x.map((u)=>S_.lit(u)))}))`.execute(_)}var HC={};m(HC,{up:()=>IX,down:()=>nX});import{sql as T_}from"kysely";async function IX(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await T_`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 nX(_){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 T_`
1331
+ `.execute(_),u=0;for(let N of x.rows){let C=GX(N);if(C===N.slug)continue;await yT`UPDATE connections SET slug = ${C} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function fX(){}var FC={};m(FC,{up:()=>SX,down:()=>AX});import{sql as OX}from"kysely";async function SX(_){await OX`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 AX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var YC={};m(YC,{up:()=>nX,down:()=>wX,ACTIONS:()=>RC});import{sql as S_}from"kysely";var RC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],IX=new Set(["review_requested","review_approved","review_changes_requested"]);async function nX(_){await fT(_,RC)}async function wX(_){await fT(_,RC.filter((x)=>!IX.has(x)))}async function fT(_,x){await S_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await S_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${S_.join(x.map((u)=>S_.lit(u)))}))`.execute(_)}var HC={};m(HC,{up:()=>kX,down:()=>pX});import{sql as VX}from"kysely";async function kX(_){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(VX`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 pX(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var BC={};m(BC,{up:()=>qX,down:()=>gX,ACTIONS:()=>MC});import{sql as A_}from"kysely";var MC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],vX=new Set(["merge_conflict_resolution"]);async function qX(_){await OT(_,MC)}async function gX(_){await OT(_,MC.filter((x)=>!vX.has(x)))}async function OT(_,x){await A_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await A_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${A_.join(x.map((u)=>A_.lit(u)))}))`.execute(_)}var GC={};m(GC,{up:()=>iX,down:()=>tX});import{sql as K_}from"kysely";async function iX(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await K_`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 tX(_){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 K_`
1279
1332
  create index idx_org_billing_benefits_pending
1280
1333
  on organization_billing (updated_at)
1281
1334
  where benefits_reference_id is not null
1282
- `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(T_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(T_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(T_`now()`)).execute()}var MC={};m(MC,{up:()=>wX,down:()=>VX});import{sql as A_}from"kysely";async function wX(_){await A_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await A_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function VX(_){await A_`
1335
+ `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(K_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(K_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(K_`now()`)).execute()}var yC={};m(yC,{up:()=>cX,down:()=>hX});import{sql as I_}from"kysely";async function cX(_){await I_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await I_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function hX(_){await I_`
1283
1336
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1284
1337
  RETURNS trigger AS $fn$
1285
1338
  BEGIN
@@ -1300,40 +1353,40 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1300
1353
  RETURN NEW;
1301
1354
  END;
1302
1355
  $fn$ LANGUAGE plpgsql;
1303
- `.execute(_),await A_`
1356
+ `.execute(_),await I_`
1304
1357
  CREATE TRIGGER trg_repo_github_child_single_parent
1305
1358
  BEFORE INSERT ON connection_aggregations
1306
1359
  FOR EACH ROW
1307
1360
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1308
- `.execute(_)}var BC={};m(BC,{up:()=>kX,down:()=>pX});import{sql as BT}from"kysely";async function kX(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(BT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(BT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function pX(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var GC={};m(GC,{up:()=>vX,down:()=>qX});import{sql as GT}from"kysely";async function vX(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(GT`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(GT`now()`)).execute()}async function qX(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var yC={};m(yC,{up:()=>gX,down:()=>iX});import{sql as fC}from"kysely";async function gX(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(fC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await fC`
1361
+ `.execute(_)}var fC={};m(fC,{up:()=>oX,down:()=>aX});import{sql as ST}from"kysely";async function oX(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(ST`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(ST`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function aX(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var OC={};m(OC,{up:()=>rX,down:()=>eX});import{sql as AT}from"kysely";async function rX(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(AT`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(AT`now()`)).execute()}async function eX(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var AC={};m(AC,{up:()=>lX,down:()=>dX});import{sql as SC}from"kysely";async function lX(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(SC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await SC`
1309
1362
  create index idx_task_quota_claims_org_period_live
1310
1363
  on task_quota_claims (organization_id, period_key)
1311
1364
  where state <> 'released'
1312
- `.execute(_)}async function iX(_){await fC`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var OC={};m(OC,{up:()=>tX,down:()=>cX});async function tX(_){await _.schema.createTable("claude_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function cX(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var SC={};m(SC,{up:()=>hX,down:()=>oX});async function hX(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function oX(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var AC={};m(AC,{up:()=>aX,down:()=>rX});import{sql as fT}from"kysely";async function aX(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(fT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(fT`monthly_task_executions > 0`)).execute()}async function rX(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var IC={};m(IC,{up:()=>lX,down:()=>dX});import{sql as eX}from"kysely";async function lX(_){await eX`
1365
+ `.execute(_)}async function dX(_){await SC`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var IC={};m(IC,{up:()=>sX,down:()=>bX});async function sX(_){await _.schema.createTable("claude_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function bX(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var nC={};m(nC,{up:()=>_j,down:()=>xj});async function _j(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function xj(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var wC={};m(wC,{up:()=>uj,down:()=>mj});import{sql as IT}from"kysely";async function uj(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(IT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(IT`monthly_task_executions > 0`)).execute()}async function mj(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var VC={};m(VC,{up:()=>Nj,down:()=>Tj});import{sql as Cj}from"kysely";async function Nj(_){await Cj`
1313
1366
  CREATE INDEX idx_task_board_items_pending_review
1314
1367
  ON task_board_items (updated_at, id)
1315
1368
  WHERE status = 'in_review'
1316
1369
  AND assignee_id = 'super-agent'
1317
1370
  AND dismissed_at IS NULL
1318
- `.execute(_)}async function dX(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var nC={};m(nC,{up:()=>sX,down:()=>bX});import{sql as yT}from"kysely";async function sX(_){await yT`
1371
+ `.execute(_)}async function Tj(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var kC={};m(kC,{up:()=>Kj,down:()=>Ej});import{sql as nT}from"kysely";async function Kj(_){await nT`
1319
1372
  ALTER TABLE task_board_items
1320
1373
  ADD COLUMN last_swept_at timestamptz
1321
- `.execute(_)}async function bX(_){await yT`
1374
+ `.execute(_)}async function Ej(_){await nT`
1322
1375
  ALTER TABLE task_board_items
1323
1376
  DROP COLUMN last_swept_at
1324
- `.execute(_)}var wC={};m(wC,{up:()=>_J,down:()=>xJ});import{sql as I_}from"kysely";async function _J(_){await I_`
1377
+ `.execute(_)}var pC={};m(pC,{up:()=>zj,down:()=>Pj});import{sql as n_}from"kysely";async function zj(_){await n_`
1325
1378
  ALTER TABLE task_board_items
1326
1379
  ADD COLUMN retry_at timestamptz,
1327
1380
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
1328
- `.execute(_),await I_`
1381
+ `.execute(_),await n_`
1329
1382
  CREATE INDEX idx_task_board_items_retry_due
1330
1383
  ON task_board_items (retry_at)
1331
1384
  WHERE retry_at IS NOT NULL
1332
- `.execute(_)}async function xJ(_){await I_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await I_`
1385
+ `.execute(_)}async function Pj(_){await n_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await n_`
1333
1386
  ALTER TABLE task_board_items
1334
1387
  DROP COLUMN retry_at,
1335
1388
  DROP COLUMN retry_attempts
1336
- `.execute(_)}var kC={};m(kC,{up:()=>uJ,down:()=>mJ});import{sql as VC}from"kysely";async function uJ(_){await VC`
1389
+ `.execute(_)}var qC={};m(qC,{up:()=>$j,down:()=>Uj});import{sql as vC}from"kysely";async function $j(_){await vC`
1337
1390
  CREATE TABLE org_repo_sync (
1338
1391
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1339
1392
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1351,11 +1404,11 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1351
1404
  updated_at timestamptz NOT NULL DEFAULT now(),
1352
1405
  UNIQUE (organization_id, volume)
1353
1406
  )
1354
- `.execute(_),await VC`
1407
+ `.execute(_),await vC`
1355
1408
  CREATE INDEX idx_org_repo_sync_enabled
1356
1409
  ON org_repo_sync (organization_id)
1357
1410
  WHERE enabled
1358
- `.execute(_)}async function mJ(_){await VC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var vC={};m(vC,{up:()=>NJ,down:()=>TJ,ACTIONS:()=>pC});import{sql as n_}from"kysely";var pC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],CJ=new Set(["merge_failed"]);async function NJ(_){await OT(_,pC)}async function TJ(_){await OT(_,pC.filter((x)=>!CJ.has(x)))}async function OT(_,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 qC={};m(qC,{up:()=>KJ,down:()=>EJ});async function KJ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function EJ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var gC={};m(gC,{up:()=>zJ,down:()=>PJ});import{sql as c}from"kysely";async function zJ(_){await c`
1411
+ `.execute(_)}async function Uj(_){await vC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var iC={};m(iC,{up:()=>jj,down:()=>Jj,ACTIONS:()=>gC});import{sql as w_}from"kysely";var gC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],Xj=new Set(["merge_failed"]);async function jj(_){await wT(_,gC)}async function Jj(_){await wT(_,gC.filter((x)=>!Xj.has(x)))}async function wT(_,x){await w_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await w_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${w_.join(x.map((u)=>w_.lit(u)))}))`.execute(_)}var tC={};m(tC,{up:()=>Qj,down:()=>Zj});async function Qj(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function Zj(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var cC={};m(cC,{up:()=>Dj,down:()=>Wj});import{sql as h}from"kysely";async function Dj(_){await h`
1359
1412
  CREATE TABLE org_jira_integrations (
1360
1413
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1361
1414
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1375,7 +1428,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1375
1428
  created_at timestamptz NOT NULL DEFAULT now(),
1376
1429
  updated_at timestamptz NOT NULL DEFAULT now()
1377
1430
  )
1378
- `.execute(_),await c`
1431
+ `.execute(_),await h`
1379
1432
  CREATE TABLE task_board_item_jira_links (
1380
1433
  item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
1381
1434
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1386,7 +1439,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1386
1439
  created_at timestamptz NOT NULL DEFAULT now(),
1387
1440
  UNIQUE (organization_id, jira_issue_id)
1388
1441
  )
1389
- `.execute(_),await c`
1442
+ `.execute(_),await h`
1390
1443
  CREATE TABLE task_board_comment_jira_links (
1391
1444
  comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
1392
1445
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1394,7 +1447,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1394
1447
  created_at timestamptz NOT NULL DEFAULT now(),
1395
1448
  UNIQUE (organization_id, jira_comment_id)
1396
1449
  )
1397
- `.execute(_)}async function PJ(_){await c`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await c`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await c`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var iC={};m(iC,{up:()=>UJ,down:()=>XJ});import{sql as $J}from"kysely";async function UJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await $J`
1450
+ `.execute(_)}async function Wj(_){await h`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await h`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await h`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var hC={};m(hC,{up:()=>Fj,down:()=>Rj});import{sql as Lj}from"kysely";async function Fj(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await Lj`
1398
1451
  update task_board_items as t
1399
1452
  set key_seq = numbered.seq
1400
1453
  from (
@@ -1407,25 +1460,25 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1407
1460
  from task_board_items
1408
1461
  ) as numbered
1409
1462
  where t.id = numbered.id
1410
- `.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function XJ(_){await _.schema.dropIndex("task_board_items_org_key_seq_unique").on("task_board_items").execute(),await _.schema.alterTable("task_board_items").dropColumn("key_seq").execute()}var tC={};m(tC,{up:()=>JJ,down:()=>jJ});import{sql as ST}from"kysely";async function JJ(_){await ST`
1463
+ `.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function Rj(_){await _.schema.dropIndex("task_board_items_org_key_seq_unique").on("task_board_items").execute(),await _.schema.alterTable("task_board_items").dropColumn("key_seq").execute()}var oC={};m(oC,{up:()=>Yj,down:()=>Hj});import{sql as VT}from"kysely";async function Yj(_){await VT`
1411
1464
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1412
1465
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1413
1466
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1414
- `.execute(_)}async function jJ(_){await ST`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var hC={};m(hC,{up:()=>QJ,down:()=>WJ});import{sql as cC}from"kysely";async function QJ(_){await cC`
1467
+ `.execute(_)}async function Hj(_){await VT`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var rC={};m(rC,{up:()=>Mj,down:()=>Bj});import{sql as aC}from"kysely";async function Mj(_){await aC`
1415
1468
  ALTER TABLE thread_message_parts
1416
1469
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1417
- `.execute(_),await cC`
1470
+ `.execute(_),await aC`
1418
1471
  ALTER TABLE thread_message_parts
1419
1472
  ALTER COLUMN persisted_at SET DEFAULT now()
1420
- `.execute(_)}async function WJ(_){await cC`
1473
+ `.execute(_)}async function Bj(_){await aC`
1421
1474
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1422
- `.execute(_)}var oC={};m(oC,{up:()=>ZJ,down:()=>DJ});async function ZJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function DJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var aC={};m(aC,{up:()=>FJ,down:()=>RJ});import{sql as LJ}from"kysely";async function FJ(_){await LJ`
1475
+ `.execute(_)}var eC={};m(eC,{up:()=>Gj,down:()=>yj});async function Gj(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function yj(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var lC={};m(lC,{up:()=>Oj,down:()=>Sj});import{sql as fj}from"kysely";async function Oj(_){await fj`
1423
1476
  CREATE INDEX idx_task_board_items_done_sweep
1424
1477
  ON task_board_items (updated_at)
1425
1478
  WHERE status = 'done' AND dismissed_at IS NULL
1426
- `.execute(_)}async function RJ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var rC={};m(rC,{up:()=>YJ,down:()=>HJ,TYPES:()=>AT});import{sql as n}from"kysely";var AT=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function YJ(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(n`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(n`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(n`now()`)).addCheckConstraint("notifications_type_check",n`type IN (${n.join(AT.map((x)=>n.lit(x)))})`).execute(),await n`CREATE INDEX notifications_user_unread ON notifications
1427
- (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await n`CREATE INDEX notifications_digest ON notifications
1428
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function HJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var eC={};m(eC,{up:()=>MJ,down:()=>BJ});import{sql as IT}from"kysely";async function MJ(_){await IT`
1479
+ `.execute(_)}async function Sj(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var dC={};m(dC,{up:()=>Aj,down:()=>Ij,TYPES:()=>kT});import{sql as w}from"kysely";var kT=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function Aj(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(w`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(w`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(w`now()`)).addCheckConstraint("notifications_type_check",w`type IN (${w.join(kT.map((x)=>w.lit(x)))})`).execute(),await w`CREATE INDEX notifications_user_unread ON notifications
1480
+ (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await w`CREATE INDEX notifications_digest ON notifications
1481
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function Ij(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var sC={};m(sC,{up:()=>nj,down:()=>wj});import{sql as pT}from"kysely";async function nj(_){await pT`
1429
1482
  UPDATE org_jira_integrations
1430
1483
  SET status_mapping = (
1431
1484
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1440,7 +1493,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1440
1493
  SELECT 1 FROM jsonb_each(status_mapping)
1441
1494
  WHERE jsonb_typeof(value) = 'array'
1442
1495
  )
1443
- `.execute(_)}async function BJ(_){await IT`
1496
+ `.execute(_)}async function wj(_){await pT`
1444
1497
  UPDATE org_jira_integrations
1445
1498
  SET status_mapping = (
1446
1499
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1455,7 +1508,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1455
1508
  SELECT 1 FROM jsonb_each(status_mapping)
1456
1509
  WHERE jsonb_typeof(value) = 'array'
1457
1510
  )
1458
- `.execute(_)}var dC={};m(dC,{up:()=>fJ,down:()=>yJ,TYPES:()=>lC});import{sql as w_}from"kysely";var lC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],GJ=new Set(["mentioned"]);async function fJ(_){await nT(_,lC)}async function yJ(_){await nT(_,lC.filter((x)=>!GJ.has(x)))}async function nT(_,x){await w_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await w_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${w_.join(x.map((u)=>w_.lit(u)))}))`.execute(_)}var bC={};m(bC,{up:()=>AJ,down:()=>IJ,ACTIONS:()=>sC});import{sql as w}from"kysely";var OJ=["bug","feature","chore","spike","security"],sC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed","type_changed"],SJ=new Set(["type_changed"]);async function AJ(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await w`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${w.join(OJ.map((x)=>w.lit(x)))}))`.execute(_),await wT(_,sC)}async function IJ(_){await wT(_,sC.filter((x)=>!SJ.has(x))),await w`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function wT(_,x){await w`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await w`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${w.join(x.map((u)=>w.lit(u)))}))`.execute(_)}var _N={};m(_N,{up:()=>nJ,down:()=>wJ});import{sql as j}from"kysely";var kT=["bug","feature","chore","spike","security"],VT="chore";async function nJ(_){await j`UPDATE task_board_items SET type = ${j.lit(VT)} WHERE type IS NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${j.lit(VT)}`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await j`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await j`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${j.join(kT.map((x)=>j.lit(x)))}))`.execute(_)}async function wJ(_){await j`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await j`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${j.join(kT.map((x)=>j.lit(x)))}))`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var xN={};m(xN,{up:()=>VJ,down:()=>kJ});import{sql as h}from"kysely";async function VJ(_){await h`
1511
+ `.execute(_)}var _N={};m(_N,{up:()=>kj,down:()=>pj,TYPES:()=>bC});import{sql as V_}from"kysely";var bC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],Vj=new Set(["mentioned"]);async function kj(_){await vT(_,bC)}async function pj(_){await vT(_,bC.filter((x)=>!Vj.has(x)))}async function vT(_,x){await V_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await V_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${V_.join(x.map((u)=>V_.lit(u)))}))`.execute(_)}var uN={};m(uN,{up:()=>gj,down:()=>ij,ACTIONS:()=>xN});import{sql as V}from"kysely";var vj=["bug","feature","chore","spike","security"],xN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed","type_changed"],qj=new Set(["type_changed"]);async function gj(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await V`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${V.join(vj.map((x)=>V.lit(x)))}))`.execute(_),await qT(_,xN)}async function ij(_){await qT(_,xN.filter((x)=>!qj.has(x))),await V`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function qT(_,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 mN={};m(mN,{up:()=>tj,down:()=>cj});import{sql as J}from"kysely";var iT=["bug","feature","chore","spike","security"],gT="chore";async function tj(_){await J`UPDATE task_board_items SET type = ${J.lit(gT)} WHERE type IS NULL`.execute(_),await J`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${J.lit(gT)}`.execute(_),await J`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await J`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await J`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${J.join(iT.map((x)=>J.lit(x)))}))`.execute(_)}async function cj(_){await J`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await J`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${J.join(iT.map((x)=>J.lit(x)))}))`.execute(_),await J`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await J`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var CN={};m(CN,{up:()=>hj,down:()=>oj});import{sql as o}from"kysely";async function hj(_){await o`
1459
1512
  CREATE TABLE task_board_sprints (
1460
1513
  id text PRIMARY KEY,
1461
1514
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1470,44 +1523,44 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1470
1523
  CHECK (state IN ('active', 'future', 'closed')),
1471
1524
  UNIQUE (organization_id, jira_sprint_id)
1472
1525
  )
1473
- `.execute(_),await h`
1526
+ `.execute(_),await o`
1474
1527
  CREATE INDEX idx_task_board_sprints_org
1475
1528
  ON task_board_sprints (organization_id, starts_at)
1476
- `.execute(_),await h`
1529
+ `.execute(_),await o`
1477
1530
  ALTER TABLE task_board_items
1478
1531
  ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
1479
- `.execute(_),await h`
1532
+ `.execute(_),await o`
1480
1533
  CREATE INDEX idx_task_board_items_sprint
1481
1534
  ON task_board_items (organization_id, sprint_id)
1482
1535
  WHERE sprint_id IS NOT NULL
1483
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function kJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await h`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await h`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var uN={};m(uN,{up:()=>vJ,down:()=>qJ});import{sql as pJ}from"kysely";async function vJ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function qJ(_){await pJ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var mN={};m(mN,{up:()=>iJ,down:()=>tJ});import{sql as gJ}from"kysely";async function iJ(_){await gJ`
1536
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function oj(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await o`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await o`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var NN={};m(NN,{up:()=>rj,down:()=>ej});import{sql as aj}from"kysely";async function rj(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function ej(_){await aj`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var TN={};m(TN,{up:()=>dj,down:()=>sj});import{sql as lj}from"kysely";async function dj(_){await lj`
1484
1537
  UPDATE org_jira_integrations
1485
1538
  SET last_synced_at = NULL,
1486
1539
  last_sync_error = NULL
1487
1540
  WHERE last_synced_at IS NOT NULL
1488
- `.execute(_)}async function tJ(){}var CN={};m(CN,{up:()=>hJ,down:()=>oJ});import{sql as cJ}from"kysely";async function hJ(_){await cJ`
1541
+ `.execute(_)}async function sj(){}var KN={};m(KN,{up:()=>_J,down:()=>xJ});import{sql as bj}from"kysely";async function _J(_){await bj`
1489
1542
  UPDATE org_jira_integrations
1490
1543
  SET last_synced_at = NULL,
1491
1544
  last_sync_error = NULL
1492
1545
  WHERE last_synced_at IS NOT NULL
1493
- `.execute(_)}async function oJ(){}var TN={};m(TN,{up:()=>aJ,down:()=>rJ});import{sql as NN}from"kysely";async function aJ(_){await NN`
1546
+ `.execute(_)}async function xJ(){}var zN={};m(zN,{up:()=>uJ,down:()=>mJ});import{sql as EN}from"kysely";async function uJ(_){await EN`
1494
1547
  ALTER TABLE org_jira_integrations
1495
1548
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1496
- `.execute(_),await NN`
1549
+ `.execute(_),await EN`
1497
1550
  UPDATE org_jira_integrations
1498
1551
  SET rescan_pending = true
1499
1552
  WHERE last_synced_at IS NULL
1500
- `.execute(_)}async function rJ(_){await NN`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var KN={};m(KN,{up:()=>eJ,down:()=>lJ});async function eJ(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function lJ(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var EN={};m(EN,{up:()=>dJ,down:()=>sJ});import{sql as pT}from"kysely";async function dJ(_){await pT`
1553
+ `.execute(_)}async function mJ(_){await EN`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var PN={};m(PN,{up:()=>CJ,down:()=>NJ});async function CJ(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function NJ(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var $N={};m($N,{up:()=>TJ,down:()=>KJ});import{sql as tT}from"kysely";async function TJ(_){await tT`
1501
1554
  ALTER TABLE invitation
1502
1555
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1503
- `.execute(_)}async function sJ(_){await pT`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var PN={};m(PN,{up:()=>bJ,down:()=>_j});import{sql as zN}from"kysely";async function bJ(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(zN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(zN`now()`)).execute(),await _.schema.createIndex("task_board_column_automations_org_column_uniq").ifNotExists().on("task_board_column_automations").columns(["organization_id","column_key"]).unique().execute(),await zN`
1556
+ `.execute(_)}async function KJ(_){await tT`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var XN={};m(XN,{up:()=>EJ,down:()=>zJ});import{sql as UN}from"kysely";async function EJ(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(UN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(UN`now()`)).execute(),await _.schema.createIndex("task_board_column_automations_org_column_uniq").ifNotExists().on("task_board_column_automations").columns(["organization_id","column_key"]).unique().execute(),await UN`
1504
1557
  INSERT INTO task_board_column_automations
1505
1558
  (id, organization_id, column_key, prompt)
1506
1559
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1507
1560
  FROM org_jira_integrations
1508
1561
  WHERE auto_delegate = true
1509
1562
  ON CONFLICT DO NOTHING
1510
- `.execute(_)}async function _j(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var $N={};m($N,{up:()=>xj,down:()=>uj});import{sql as K_}from"kysely";async function xj(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await K_`
1563
+ `.execute(_)}async function zJ(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var jN={};m(jN,{up:()=>PJ,down:()=>$J});import{sql as E_}from"kysely";async function PJ(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await E_`
1511
1564
  UPDATE task_board_items i
1512
1565
  SET review_cycle_started_at = (
1513
1566
  SELECT max(a.occurred_at)
@@ -1517,35 +1570,35 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1517
1570
  AND a.data ->> 'to' = 'in_review'
1518
1571
  )
1519
1572
  WHERE i.status = 'in_review'
1520
- `.execute(_),await K_`
1573
+ `.execute(_),await E_`
1521
1574
  CREATE INDEX idx_task_board_items_review_cycle
1522
1575
  ON task_board_items (updated_at, id)
1523
1576
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1524
1577
  AND assignee_id = 'super-agent'
1525
1578
  AND dismissed_at IS NULL
1526
- `.execute(_),await K_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function uj(_){await K_`
1579
+ `.execute(_),await E_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function $J(_){await E_`
1527
1580
  CREATE INDEX idx_task_board_items_pending_review
1528
1581
  ON task_board_items (updated_at, id)
1529
1582
  WHERE status = 'in_review'
1530
1583
  AND assignee_id = 'super-agent'
1531
1584
  AND dismissed_at IS NULL
1532
- `.execute(_),await K_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var UN={};m(UN,{up:()=>mj,down:()=>Cj});import{sql as vT}from"kysely";async function mj(_){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(vT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(vT`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 Cj(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var JN={};m(JN,{up:()=>Tj,down:()=>Kj,ACTIONS:()=>XN});import{sql as V_}from"kysely";var XN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],Nj=new Set(["review_verdict_requested"]);async function Tj(_){await qT(_,XN)}async function Kj(_){await qT(_,XN.filter((x)=>!Nj.has(x)))}async function qT(_,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 jN={};m(jN,{up:()=>Ej,down:()=>zj});import{sql as k_}from"kysely";async function Ej(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await k_`
1585
+ `.execute(_),await E_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var JN={};m(JN,{up:()=>UJ,down:()=>XJ});import{sql as cT}from"kysely";async function UJ(_){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(cT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(cT`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 XJ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var ZN={};m(ZN,{up:()=>JJ,down:()=>QJ,ACTIONS:()=>QN});import{sql as k_}from"kysely";var QN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],jJ=new Set(["review_verdict_requested"]);async function JJ(_){await hT(_,QN)}async function QJ(_){await hT(_,QN.filter((x)=>!jJ.has(x)))}async function hT(_,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 DN={};m(DN,{up:()=>ZJ,down:()=>DJ});import{sql as p_}from"kysely";async function ZJ(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await p_`
1533
1586
  ALTER TABLE task_board_items
1534
1587
  ADD CONSTRAINT chk_task_board_items_column_org
1535
1588
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
1536
- `.execute(_),await k_`
1589
+ `.execute(_),await p_`
1537
1590
  ALTER TABLE task_board_items
1538
1591
  ADD CONSTRAINT task_board_items_board_column_fkey
1539
1592
  FOREIGN KEY (board_column_org, status)
1540
1593
  REFERENCES task_board_columns (organization_id, key)
1541
1594
  ON DELETE RESTRICT
1542
- `.execute(_)}async function zj(_){await k_`
1595
+ `.execute(_)}async function DJ(_){await p_`
1543
1596
  ALTER TABLE task_board_items
1544
1597
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1545
- `.execute(_),await k_`
1598
+ `.execute(_),await p_`
1546
1599
  ALTER TABLE task_board_items
1547
1600
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
1548
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var QN={};m(QN,{up:()=>Pj,down:()=>$j});async function Pj(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function $j(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var ZN={};m(ZN,{up:()=>Xj,down:()=>Jj,ACTIONS:()=>WN});import{sql as p_}from"kysely";var WN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],Uj=new Set(["sprint_changed"]);async function Xj(_){await gT(_,WN)}async function Jj(_){await gT(_,WN.filter((x)=>!Uj.has(x)))}async function gT(_,x){await p_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await p_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${p_.join(x.map((u)=>p_.lit(u)))}))`.execute(_)}var DN={};m(DN,{up:()=>Qj,down:()=>Wj});import{sql as jj}from"kysely";async function Qj(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(jj`'[]'::jsonb`)).execute()}async function Wj(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var LN={};m(LN,{up:()=>Zj,down:()=>Dj});import{sql as iT}from"kysely";async function Zj(_){await _.schema.createTable("task_board_prompts").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text").addColumn("prompt","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function Dj(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var FN={};m(FN,{up:()=>Fj,down:()=>Rj});import{sql as Lj}from"kysely";async function Fj(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await Lj`
1601
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var WN={};m(WN,{up:()=>WJ,down:()=>LJ});async function WJ(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function LJ(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var FN={};m(FN,{up:()=>RJ,down:()=>YJ,ACTIONS:()=>LN});import{sql as v_}from"kysely";var LN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],FJ=new Set(["sprint_changed"]);async function RJ(_){await oT(_,LN)}async function YJ(_){await oT(_,LN.filter((x)=>!FJ.has(x)))}async function oT(_,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 RN={};m(RN,{up:()=>MJ,down:()=>BJ});import{sql as HJ}from"kysely";async function MJ(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(HJ`'[]'::jsonb`)).execute()}async function BJ(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var YN={};m(YN,{up:()=>GJ,down:()=>yJ});import{sql as aT}from"kysely";async function GJ(_){await _.schema.createTable("task_board_prompts").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text").addColumn("prompt","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(aT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(aT`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function yJ(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var HN={};m(HN,{up:()=>OJ,down:()=>SJ});import{sql as fJ}from"kysely";async function OJ(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await fJ`
1549
1602
  UPDATE task_board_items i
1550
1603
  SET external_url = t.url,
1551
1604
  description = CASE
@@ -1564,11 +1617,11 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1564
1617
  ON g.organization_id = l.organization_id
1565
1618
  ) t
1566
1619
  WHERE t.item_id = i.id
1567
- `.execute(_)}async function Rj(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var RN={};m(RN,{up:()=>Hj,down:()=>Mj,ACTIONS:()=>tT});import{sql as X}from"kysely";var Yj=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],tT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"];async function Hj(_){await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await X`DROP TABLE IF EXISTS task_board_columns`.execute(_),await X`
1620
+ `.execute(_)}async function SJ(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var MN={};m(MN,{up:()=>IJ,down:()=>nJ,ACTIONS:()=>rT});import{sql as X}from"kysely";var AJ=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],rT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"];async function IJ(_){await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await X`DROP TABLE IF EXISTS task_board_columns`.execute(_),await X`
1568
1621
  UPDATE task_board_items
1569
1622
  SET status = 'triage'
1570
- WHERE status NOT IN (${X.join(Yj.map((x)=>X.lit(x)))})
1571
- `.execute(_),await X`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await X`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await Bj(_,tT),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
1623
+ WHERE status NOT IN (${X.join(AJ.map((x)=>X.lit(x)))})
1624
+ `.execute(_),await X`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await X`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await wJ(_,rT),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
1572
1625
  ALTER TABLE task_board_item_jira_links
1573
1626
  DROP COLUMN IF EXISTS jira_updated_at,
1574
1627
  DROP COLUMN IF EXISTS jira_status,
@@ -1580,11 +1633,11 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1580
1633
  DROP COLUMN IF EXISTS last_synced_at,
1581
1634
  DROP COLUMN IF EXISTS last_sync_error,
1582
1635
  DROP COLUMN IF EXISTS rescan_pending
1583
- `.execute(_)}async function Mj(){}async function Bj(_,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 YN={};m(YN,{up:()=>Gj,down:()=>fj});import{sql as o}from"kysely";async function Gj(_){await o`
1636
+ `.execute(_)}async function nJ(){}async function wJ(_,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 BN={};m(BN,{up:()=>VJ,down:()=>kJ});import{sql as a}from"kysely";async function VJ(_){await a`
1584
1637
  ALTER TABLE task_board_items
1585
1638
  ADD COLUMN IF NOT EXISTS source text
1586
1639
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
1587
- `.execute(_),await o`
1640
+ `.execute(_),await a`
1588
1641
  CREATE TABLE IF NOT EXISTS org_jira_column_automations (
1589
1642
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
1590
1643
  jira_status text NOT NULL,
@@ -1593,7 +1646,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1593
1646
  updated_at timestamptz NOT NULL DEFAULT now(),
1594
1647
  PRIMARY KEY (organization_id, jira_status)
1595
1648
  )
1596
- `.execute(_),await o`
1649
+ `.execute(_),await a`
1597
1650
  CREATE TABLE IF NOT EXISTS jira_trigger_claims (
1598
1651
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
1599
1652
  jira_issue_id text NOT NULL,
@@ -1601,24 +1654,24 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1601
1654
  created_at timestamptz NOT NULL DEFAULT now(),
1602
1655
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
1603
1656
  )
1604
- `.execute(_)}async function fj(_){await o`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await o`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await o`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var HN={};m(HN,{up:()=>yj,down:()=>Oj});import{sql as E_}from"kysely";async function yj(_){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(E_`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(E_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(E_`now()`)).execute(),await E_`
1657
+ `.execute(_)}async function kJ(_){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 GN={};m(GN,{up:()=>pJ,down:()=>vJ});import{sql as z_}from"kysely";async function pJ(_){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(z_`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(z_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(z_`now()`)).execute(),await z_`
1605
1658
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
1606
1659
  ON organization_notices (organization_id)
1607
1660
  WHERE resolved_at IS NULL
1608
- `.execute(_),await E_`
1661
+ `.execute(_),await z_`
1609
1662
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
1610
1663
  ON organization_notices (organization_id, created_at DESC)
1611
- `.execute(_)}async function Oj(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var BN={};m(BN,{up:()=>qj,down:()=>gj});import{sql as MN}from"kysely";import{sql as o6}from"kysely";var cT=50000000,Sj=1e5;function Aj(_,x){let u=0,N=0,C=[_];while(C.length>0){if(u>x||++N>Sj)return 1/0;let T=C.pop();if(typeof T==="string")u+=T.length;else if(Array.isArray(T))for(let E of T)C.push(E);else if(T!==null&&typeof T==="object")for(let E of Object.values(T))C.push(E)}return u}var Ij=/\u0000/g,nj=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,wj=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,Vj=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,kj=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function pj(_){return _.replace(Ij,"").replace(nj,"\uFFFD").replace(wj,"$1***@").replace(Vj,"$1***").replace(kj,"[base64 data omitted]")}function vj(_){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 hT(_){if(Aj(_,cT)>cT)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return pj(u);if(vj(u))return{type:"text",text:"[image omitted]"};return u})}var oT=20;async function qj(_){let x=await MN`
1664
+ `.execute(_)}async function vJ(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var fN={};m(fN,{up:()=>eJ,down:()=>lJ});import{sql as yN}from"kysely";import{sql as uD}from"kysely";var eT=50000000,qJ=1e5;function gJ(_,x){let u=0,N=0,C=[_];while(C.length>0){if(u>x||++N>qJ)return 1/0;let T=C.pop();if(typeof T==="string")u+=T.length;else if(Array.isArray(T))for(let K of T)C.push(K);else if(T!==null&&typeof T==="object")for(let K of Object.values(T))C.push(K)}return u}var iJ=/\u0000/g,tJ=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,cJ=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,hJ=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,oJ=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function aJ(_){return _.replace(iJ,"").replace(tJ,"\uFFFD").replace(cJ,"$1***@").replace(hJ,"$1***").replace(oJ,"[base64 data omitted]")}function rJ(_){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 lT(_){if(gJ(_,eT)>eT)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return aJ(u);if(rJ(u))return{type:"text",text:"[image omitted]"};return u})}var dT=20;async function eJ(_){let x=await yN`
1612
1665
  SELECT id FROM thread_message_parts
1613
1666
  WHERE pg_column_size(payload) > 8192
1614
1667
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
1615
- `.execute(_);for(let u=0;u<x.rows.length;u+=oT){let N=x.rows.slice(u,u+oT).map((T)=>T.id),C=await MN`
1668
+ `.execute(_);for(let u=0;u<x.rows.length;u+=dT){let N=x.rows.slice(u,u+dT).map((T)=>T.id),C=await yN`
1616
1669
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
1617
- `.execute(_);for(let T of C.rows){let E=hT(T.payload);if(E===JSON.stringify(T.payload))continue;await MN`
1670
+ `.execute(_);for(let T of C.rows){let K=lT(T.payload);if(K===JSON.stringify(T.payload))continue;await yN`
1618
1671
  UPDATE thread_message_parts
1619
- SET payload = ${E}::jsonb
1672
+ SET payload = ${K}::jsonb
1620
1673
  WHERE id = ${T.id}
1621
- `.execute(_)}}}async function gj(){}var GN={};m(GN,{up:()=>ij,down:()=>tj});async function ij(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function tj(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var fN={};m(fN,{up:()=>cj,down:()=>hj});import{sql as P}from"kysely";async function cj(_){await P`
1674
+ `.execute(_)}}}async function lJ(){}var ON={};m(ON,{up:()=>dJ,down:()=>sJ});async function dJ(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function sJ(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var SN={};m(SN,{up:()=>bJ,down:()=>_Q});import{sql as P}from"kysely";async function bJ(_){await P`
1622
1675
  CREATE TABLE git_provider_accounts (
1623
1676
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1624
1677
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1862,11 +1915,11 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1862
1915
  AND r.organization_id = s.organization_id
1863
1916
  AND r.host = 'github.com'
1864
1917
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
1865
- `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function hj(_){await P`
1918
+ `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function _Q(_){await P`
1866
1919
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
1867
1920
  `.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
1868
1921
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
1869
- `.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var yN={};m(yN,{up:()=>aj,down:()=>rj});import{sql as H}from"kysely";var oj=H`
1922
+ `.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var AN={};m(AN,{up:()=>uQ,down:()=>mQ});import{sql as M}from"kysely";var xQ=M`
1870
1923
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
1871
1924
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
1872
1925
  BEGIN
@@ -1875,13 +1928,13 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1875
1928
  RETURN NULL;
1876
1929
  END;
1877
1930
  $$
1878
- `;async function aj(_){await oj.execute(_),await H`
1931
+ `;async function uQ(_){await xQ.execute(_),await M`
1879
1932
  ALTER TABLE connections
1880
1933
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
1881
- `.execute(_),await H`
1934
+ `.execute(_),await M`
1882
1935
  CREATE INDEX idx_connections_repository
1883
1936
  ON connections (repository_id) WHERE repository_id IS NOT NULL
1884
- `.execute(_),await H`
1937
+ `.execute(_),await M`
1885
1938
  CREATE TABLE thread_repositories (
1886
1939
  thread_id text NOT NULL REFERENCES threads(id) ON DELETE CASCADE,
1887
1940
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1889,10 +1942,10 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1889
1942
  added_at timestamptz NOT NULL DEFAULT now(),
1890
1943
  PRIMARY KEY (thread_id, repository_id)
1891
1944
  )
1892
- `.execute(_),await H`
1945
+ `.execute(_),await M`
1893
1946
  CREATE INDEX idx_thread_repositories_repo
1894
1947
  ON thread_repositories (repository_id)
1895
- `.execute(_),await H`
1948
+ `.execute(_),await M`
1896
1949
  UPDATE connections c
1897
1950
  SET repository_id = r.id
1898
1951
  FROM repositories r
@@ -1904,7 +1957,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1904
1957
  || '/' ||
1905
1958
  (repo_ref_try_jsonb(c.metadata) #>> '{githubRepo,name}')
1906
1959
  )
1907
- `.execute(_),await H`
1960
+ `.execute(_),await M`
1908
1961
  INSERT INTO repositories (
1909
1962
  organization_id, account_id, provider, host, path, web_url
1910
1963
  )
@@ -1925,7 +1978,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1925
1978
  AND e.name NOT LIKE '%/%'
1926
1979
  ORDER BY t.organization_id, lower(e.owner || '/' || e.name)
1927
1980
  ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
1928
- `.execute(_),await H`
1981
+ `.execute(_),await M`
1929
1982
  INSERT INTO thread_repositories (thread_id, organization_id, repository_id)
1930
1983
  SELECT DISTINCT t.id, t.organization_id, r.id
1931
1984
  FROM threads t
@@ -1937,29 +1990,29 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
1937
1990
  AND r.host = 'github.com'
1938
1991
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
1939
1992
  ON CONFLICT (thread_id, repository_id) DO NOTHING
1940
- `.execute(_),await H`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function rj(_){await H`DROP TABLE IF EXISTS thread_repositories`.execute(_),await H`
1993
+ `.execute(_),await M`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function mQ(_){await M`DROP TABLE IF EXISTS thread_repositories`.execute(_),await M`
1941
1994
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
1942
- `.execute(_)}var ej={"001-initial-schema":Xx,"002-organization-settings":Jx,"003-connection-schema-align":jx,"004-remove-models-binding":Qx,"005-connection-configuration":Wx,"006-add-views-to-settings":Zx,"007-monitoring-logs":Dx,"008-event-bus":Lx,"009-drop-audit-logs":Fx,"010-gateways":Rx,"011-gateway-icon":Yx,"012-gateway-tool-selection-mode":Hx,"013-monitoring-user-agent-gateway":Mx,"014-gateway-resources-prompts":Bx,"015-monitoring-properties":Gx,"016-downstream-token-client-info":fx,"017-downstream-token-remove-userid":yx,"018-drop-gateway-tool-selection-strategy":Ox,"019-remove-gateway-is-default":Sx,"020-enabled-plugins":Ax,"021-threads":Ix,"022-rename-gateway-to-virtual-mcp":nx,"023-optimize-thread-indexes":wx,"024-consolidate-virtual-mcp":Vx,"025-add-monitoring-virtual-mcp-id":kx,"026-restrict-child-connection-delete":px,"027-update-management-mcp-url":qx,"028-update-management-mcp-to-self":ix,"029-add-updated-by-to-connections":tx,"030-member-tags":cx,"031-add-dependency-mode":hx,"032-projects":ox,"033-thread-status":ax,"034-monitoring-dashboards":rx,"035-project-connections":ex,"036-update-registry-url":lx,"037-ai-provider-keys":dx,"038-oauth-pkce-states":sx,"039-automations":bx,"040-replace-next-run-at-with-last-run-at":_u,"041-ai-provider-keys-unique-constraint":xu,"042-rename-mesh-mcp-to-cms-mcp":uu,"043-rename-cms-mcp-to-deco-cms":mu,"044-drop-connections-tools-column":Cu,"045-thread-context-start-message":Nu,"046-remove-object-storage-plugin":Ku,"047-add-next-run-at":Eu,"048-merge-projects-agents":Pu,"049-remove-org-admin-projects":$u,"050-durable-agent-runs":Uu,"051-org-sso":Ju,"052-thread-agent-ids":ju,"053-registry-config":Qu,"054-connection-slug":Zu,"055-spaces":Du,"056-automation-project-scope":Lu,"057-thread-virtual-mcp-id":Fu,"058-trigger-callback-tokens":Ru,"059-kv":Yu,"060-member-index":Hu,"061-downstream-token-connection-index":Mu,"062-private-registry":Bu,"063-event-subscriptions-enabled-boolean":Gu,"064-brand-context":fu,"065-organization-domains":yu,"066-brand-context-structured":Ou,"067-threads-metadata":Su,"068-threads-branch":Au,"069-sandbox-runner-state":Iu,"070-model-categories":nu,"071-default-home-agents":wu,"072-ai-provider-key-preset-id":Vu,"073-backfill-basic-usage-roles":ku,"074-sandbox-runner-state-handle-nonunique":pu,"075-thread-inflight-async-jobs":vu,"076-automations-drop-agent-json":qu,"077-tier-only-model-selection":iu,"078-automation-tool-call-kind":tu,"079-strip-legacy-freestyle-vm-map-entries":cu,"080-async-research-jobs":hu,"081-async-research-jobs-result-content":ou,"082-secrets":au,"083-thread-run-locally":ru,"084-drop-host-sandbox-rows":eu,"085-rename-runner-kind":lu,"086-thread-pins-and-vm-map-rekey":du,"087-fix-vm-map-rekey":su,"088-purge-cli-activate-keys":bu,"089-rename-remote-user-to-desktop":_m,"090-automation-webhook-triggers":xm,"091-organization-domains-allow-multi":um,"092-sandbox-naming-uniformization":mm,"093-backfill-global-search-basic-usage":Cm,"094-org-file-configs":Tm,"095-remove-automation-tool-call-kind":Km,"096-org-file-configs-public-url-base":Em,"097-drop-local-docker-sandbox-state":Pm,"098-thread-message-parts":$m,"099-run-fence":Um,"100-link-transport":Xm,"101-cancel-requested-at":Jm,"102-observational-agent":jm,"103-revert-observational-agent":Qm,"104-agent-sandbox-provider-kind":Zm,"105-org-fs":Dm,"106-automation-tools":Lm,"107-org-fs-public-org":Fm,"108-automation-max-agent-steps":Rm,"109-thread-message-parts-per-message-seq":Ym,"110-backfill-ghs-token-expiry":Hm,"111-org-fs-thread-id":Mm,"112-org-file-configs-credential-type":Bm,"113-thread-failure-reason":Gm,"114-run-acked-seq":fm,"115-thread-projected-seq":ym,"116-org-sites":Om,"117-org-file-configs-site-slug":Sm,"118-organization-domains-multi-verify":Am,"119-organization-join-requests":Im,"120-org-fs-read-public":nm,"121-org-fs-share-password":wm,"122-split-web-research-tier":pm,"123-connection-credential-vault":vm,"124-drop-thread-projected-seq":qm,"125-github-child-single-parent":gm,"126-task-board":tm,"127-task-board-due-date":cm,"128-reports-only":hm,"129-task-board-assigned-by":om,"130-task-board-thread-id":am,"131-task-board-thread-link-cascade":rm,"132-task-board-item-prs":em,"133-dedupe-duplicate-members":lm,"134-drop-task-board-enabled":dm,"135-task-board-item-fk-cascade":sm,"136-task-board-import-idempotency":bm,"137-agent-sandbox-runner-state":_C,"138-agent-sandbox-sessions":xC,"139-organization-billing":uC,"140-seat-change-log":mC,"141-benefits-sync-pending":CC,"142-stripe-event-watermark":NC,"143-armed-report-url":TC,"144-benefits-pending-index":KC,"145-user-model-preferences":EC,"146-organization-main-agent":zC,"147-drop-agent-sandbox-tables":PC,"148-org-flags":$C,"149-task-board-item-sort-order":UC,"150-task-board-activity":XC,"151-task-board-tags":jC,"152-repair-connection-slug":WC,"153-task-board-latest-assistant-part-index":ZC,"154-task-board-qa-activity":LC,"155-task-board-review-claims":FC,"156-task-board-conflict-activity":YC,"157-drop-seat-billing":HC,"158-drop-github-child-single-parent":MC,"159-task-board-comments":BC,"160-task-quota-billing":GC,"161-task-quota-claim-state":yC,"162-claude-subscriptions":OC,"163-task-board-item-dismissed":SC,"164-per-org-task-quota":AC,"165-task-board-pending-review-index":IC,"166-task-board-last-swept-at":nC,"167-task-board-run-retry":wC,"168-org-repo-sync":kC,"169-task-board-merge-failed-activity":vC,"170-task-board-item-repo":qC,"171-jira-integration":gC,"172-task-board-item-key-seq":iC,"173-thread-github-repo-connection-index":tC,"174-thread-message-parts-persisted-at":hC,"175-task-board-sprints":oC,"176-task-board-done-sweep-index":aC,"177-notifications":rC,"178-jira-status-mapping-array":eC,"179-notification-mentioned":dC,"180-task-board-item-type":bC,"181-task-board-item-type-required":_N,"182-task-board-sprints-entities":xN,"183-drop-jira-jql-filter":uN,"184-jira-rescan-after-scope-change":mN,"185-jira-rescan-existing-cards":CN,"186-jira-rescan-pending-flag":TN,"187-task-board-comment-thread":KN,"188-invitation-auto-accept":EN,"189-task-board-column-automations":PN,"190-task-board-review-cycle-started-at":$N,"191-task-board-columns":UN,"192-task-board-verdict-nudge-activity":JN,"193-task-board-status-column-fk":jN,"194-jira-link-sprint":QN,"195-task-board-sprint-activity":ZN,"196-task-board-column-tracker-statuses":DN,"197-task-board-prompts":LN,"198-task-board-external-url":FN,"199-drop-jira-mirror-and-org-columns":RN,"200-jira-run-trigger":YN,"201-organization-notices":HN,"202-redact-base64-thread-parts":BN,"203-task-board-preview-routes":GN,"204-git-provider-accounts-and-repositories":fN,"205-repository-references":yN,"206-repository-consumers":Ux,"207-task-board-prs-repo-idx":$x,"208-github-connect-flows":Px,"209-github-installation-authorization":zx,"210-github-repository-authorization":xx,"211-user-fs-org":_x,"212-coding-agent-mcp-excluded":ux,"213-bitbucket-git-provider":mx,"214-connections-sanitized-id-idx":l_,"215-commerce-discovery-repository":d_,"216-github-cli-auth":b_,"217-experiments":Cx,"218-thread-message-parts-error-idx":Nx,"219-task-board-duplicate-reported-activity":Kx,"220-jira-automation-continue-pr":Ex,"221-remove-private-registry":c_,"222-org-git-credentials":h_,"223-drop-org-main-agent-id":e_,"224-repository-sandbox-image":o_,"225-thread-analytics-indexes":r_},ON=ej;import{getMigrations as GQ}from"better-auth/db";import{sso as fQ}from"@better-auth/sso";import{organization as yQ}from"@decocms/better-auth/plugins";import{admin as OQ,apiKey as SQ,jwt as AQ,magicLink as IQ,mcp as nQ,openAPI as wQ}from"better-auth/plugins";import{emailOTP as VQ}from"better-auth/plugins/email-otp";import{Kysely as LQ,PostgresDialect as mK}from"kysely";import{Pool as CK}from"pg";import{homedir as lj}from"os";var dj=new Set(["all","worker","api"]);function sj(_){let x=(_??"").trim();return dj.has(x)?x:"all"}var bj=new Set(["production","development","test"]);function _Q(_){let x=(_??"").trim();return bj.has(x)?x:"development"}function W(_){return _==="true"||_==="1"}function AN(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function y(_,x,u,N){return AN(_,x,N)??u}function xQ(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let C=N.indexOf("="),T=C>0?N.slice(0,C).trim():"",E=C>0?N.slice(C+1).trim():"";if(!T||!E){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=E}return x}function uQ(_,x,u,N){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(N!==void 0&&C>N)throw Error(`${_} must be at most ${N}`);return C}function SN(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function aT(_){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 mQ(_){return _===void 0||_===""||_==="true"||_==="1"}function z_(_,x){return _||x}function rT(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${lj()}/deco`,N=_.localMode,C=_.nodeEnv||_Q(x.NODE_ENV),T=x.NATS_URL||"nats://localhost:4222",E={nodeEnv:C,port:y("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:z_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:W(x.DATABASE_PG_SSL),databasePoolMax:y("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:y("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:z_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:N,disableRateLimit:W(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:W(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((K)=>K.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((K)=>K.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:AN("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:W(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:xQ(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:uQ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:W(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:y("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:y("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:y("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:W(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:W(x.HOSTING_CONTROL_PLANE_GA),monitorGa:W(x.MONITOR_GA),plansEnabled:W(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:SN(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:W(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:y("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:y("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:SN(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:y("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:mQ(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:AN("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:sj(z_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:W(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:W(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:SN(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:W(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:y("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:z_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:z_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(E.plansEnabled&&!E.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(E.plansEnabled&&!E.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(E.plansEnabled&&!E.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(E.plansEnabled&&Object.keys(E.stripePlanPriceIds).length>0&&!E.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(E.plansEnabled&&Object.keys(E.stripePlanPriceIds).length>1&&!E.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return{settings:E,externalDatabaseUrl:aT(x.DATABASE_URL),externalNatsUrl:aT(T),skipMigrations:_.skipMigrations}}var v_=null;function a(){if(!v_)CQ();return v_}function CQ(){if(v_)return;let _={...process.env},x=rT({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},_);v_=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 $Q,propagation as $D,ROOT_CONTEXT as UD,SpanStatusCode as XD,trace as UQ}from"@opentelemetry/api";import{logs as XQ,SeverityNumber as IN}from"@opentelemetry/api-logs";import{OTLPLogExporter as QD}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as JQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as DD}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as FD}from"@opentelemetry/instrumentation-runtime-node";import{context as N4,propagation as T4,SpanKind as K4,SpanStatusCode as E4}from"@opentelemetry/api";var P4=globalThis.fetch;import{ExportResultCode as R4}from"@opentelemetry/core";import{ExportResultCode as q_}from"@opentelemetry/core";import{mkdir as NQ,rename as TQ,writeFile as KQ}from"fs/promises";import{join as g_}from"path";class i_{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:q_.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:q_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:q_.FAILED}});return Promise.resolve({code:q_.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 T=x.get(C.partition);if(!T)T=[],x.set(C.partition,T);T.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,T])=>this.writeNDJSON(T,C).then(()=>C))),N=u.find((C)=>C.status==="rejected");if(N){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let T=_.filter((E)=>!C.has(E.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?g_(this.basePath,x,...N):g_(this.basePath,...N);if(!this.knownDirs.has(C))await NQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let T=`${crypto.randomUUID()}.ndjson`,E=g_(C,`.${T}.tmp`),K=g_(C,T),z=_.join(`
1995
+ `.execute(_)}var CQ={"001-initial-schema":Qx,"002-organization-settings":Zx,"003-connection-schema-align":Dx,"004-remove-models-binding":Wx,"005-connection-configuration":Lx,"006-add-views-to-settings":Fx,"007-monitoring-logs":Rx,"008-event-bus":Yx,"009-drop-audit-logs":Hx,"010-gateways":Mx,"011-gateway-icon":Bx,"012-gateway-tool-selection-mode":Gx,"013-monitoring-user-agent-gateway":yx,"014-gateway-resources-prompts":fx,"015-monitoring-properties":Ox,"016-downstream-token-client-info":Sx,"017-downstream-token-remove-userid":Ax,"018-drop-gateway-tool-selection-strategy":Ix,"019-remove-gateway-is-default":nx,"020-enabled-plugins":wx,"021-threads":Vx,"022-rename-gateway-to-virtual-mcp":kx,"023-optimize-thread-indexes":px,"024-consolidate-virtual-mcp":vx,"025-add-monitoring-virtual-mcp-id":qx,"026-restrict-child-connection-delete":gx,"027-update-management-mcp-url":tx,"028-update-management-mcp-to-self":hx,"029-add-updated-by-to-connections":ox,"030-member-tags":ax,"031-add-dependency-mode":rx,"032-projects":ex,"033-thread-status":lx,"034-monitoring-dashboards":dx,"035-project-connections":sx,"036-update-registry-url":bx,"037-ai-provider-keys":_u,"038-oauth-pkce-states":xu,"039-automations":uu,"040-replace-next-run-at-with-last-run-at":mu,"041-ai-provider-keys-unique-constraint":Cu,"042-rename-mesh-mcp-to-cms-mcp":Nu,"043-rename-cms-mcp-to-deco-cms":Tu,"044-drop-connections-tools-column":Ku,"045-thread-context-start-message":Eu,"046-remove-object-storage-plugin":Pu,"047-add-next-run-at":$u,"048-merge-projects-agents":Xu,"049-remove-org-admin-projects":ju,"050-durable-agent-runs":Ju,"051-org-sso":Zu,"052-thread-agent-ids":Du,"053-registry-config":Wu,"054-connection-slug":Fu,"055-spaces":Ru,"056-automation-project-scope":Yu,"057-thread-virtual-mcp-id":Hu,"058-trigger-callback-tokens":Mu,"059-kv":Bu,"060-member-index":Gu,"061-downstream-token-connection-index":yu,"062-private-registry":fu,"063-event-subscriptions-enabled-boolean":Ou,"064-brand-context":Su,"065-organization-domains":Au,"066-brand-context-structured":Iu,"067-threads-metadata":nu,"068-threads-branch":wu,"069-sandbox-runner-state":Vu,"070-model-categories":ku,"071-default-home-agents":pu,"072-ai-provider-key-preset-id":vu,"073-backfill-basic-usage-roles":qu,"074-sandbox-runner-state-handle-nonunique":gu,"075-thread-inflight-async-jobs":iu,"076-automations-drop-agent-json":tu,"077-tier-only-model-selection":hu,"078-automation-tool-call-kind":ou,"079-strip-legacy-freestyle-vm-map-entries":au,"080-async-research-jobs":ru,"081-async-research-jobs-result-content":eu,"082-secrets":lu,"083-thread-run-locally":du,"084-drop-host-sandbox-rows":su,"085-rename-runner-kind":bu,"086-thread-pins-and-vm-map-rekey":_m,"087-fix-vm-map-rekey":xm,"088-purge-cli-activate-keys":um,"089-rename-remote-user-to-desktop":mm,"090-automation-webhook-triggers":Cm,"091-organization-domains-allow-multi":Nm,"092-sandbox-naming-uniformization":Tm,"093-backfill-global-search-basic-usage":Km,"094-org-file-configs":zm,"095-remove-automation-tool-call-kind":Pm,"096-org-file-configs-public-url-base":$m,"097-drop-local-docker-sandbox-state":Xm,"098-thread-message-parts":jm,"099-run-fence":Jm,"100-link-transport":Qm,"101-cancel-requested-at":Zm,"102-observational-agent":Dm,"103-revert-observational-agent":Wm,"104-agent-sandbox-provider-kind":Fm,"105-org-fs":Rm,"106-automation-tools":Ym,"107-org-fs-public-org":Hm,"108-automation-max-agent-steps":Mm,"109-thread-message-parts-per-message-seq":Bm,"110-backfill-ghs-token-expiry":Gm,"111-org-fs-thread-id":ym,"112-org-file-configs-credential-type":fm,"113-thread-failure-reason":Om,"114-run-acked-seq":Sm,"115-thread-projected-seq":Am,"116-org-sites":Im,"117-org-file-configs-site-slug":nm,"118-organization-domains-multi-verify":wm,"119-organization-join-requests":Vm,"120-org-fs-read-public":km,"121-org-fs-share-password":pm,"122-split-web-research-tier":gm,"123-connection-credential-vault":im,"124-drop-thread-projected-seq":tm,"125-github-child-single-parent":cm,"126-task-board":om,"127-task-board-due-date":am,"128-reports-only":rm,"129-task-board-assigned-by":em,"130-task-board-thread-id":lm,"131-task-board-thread-link-cascade":dm,"132-task-board-item-prs":sm,"133-dedupe-duplicate-members":bm,"134-drop-task-board-enabled":_C,"135-task-board-item-fk-cascade":xC,"136-task-board-import-idempotency":uC,"137-agent-sandbox-runner-state":mC,"138-agent-sandbox-sessions":CC,"139-organization-billing":NC,"140-seat-change-log":TC,"141-benefits-sync-pending":KC,"142-stripe-event-watermark":EC,"143-armed-report-url":zC,"144-benefits-pending-index":PC,"145-user-model-preferences":$C,"146-organization-main-agent":UC,"147-drop-agent-sandbox-tables":XC,"148-org-flags":jC,"149-task-board-item-sort-order":JC,"150-task-board-activity":QC,"151-task-board-tags":DC,"152-repair-connection-slug":LC,"153-task-board-latest-assistant-part-index":FC,"154-task-board-qa-activity":YC,"155-task-board-review-claims":HC,"156-task-board-conflict-activity":BC,"157-drop-seat-billing":GC,"158-drop-github-child-single-parent":yC,"159-task-board-comments":fC,"160-task-quota-billing":OC,"161-task-quota-claim-state":AC,"162-claude-subscriptions":IC,"163-task-board-item-dismissed":nC,"164-per-org-task-quota":wC,"165-task-board-pending-review-index":VC,"166-task-board-last-swept-at":kC,"167-task-board-run-retry":pC,"168-org-repo-sync":qC,"169-task-board-merge-failed-activity":iC,"170-task-board-item-repo":tC,"171-jira-integration":cC,"172-task-board-item-key-seq":hC,"173-thread-github-repo-connection-index":oC,"174-thread-message-parts-persisted-at":rC,"175-task-board-sprints":eC,"176-task-board-done-sweep-index":lC,"177-notifications":dC,"178-jira-status-mapping-array":sC,"179-notification-mentioned":_N,"180-task-board-item-type":uN,"181-task-board-item-type-required":mN,"182-task-board-sprints-entities":CN,"183-drop-jira-jql-filter":NN,"184-jira-rescan-after-scope-change":TN,"185-jira-rescan-existing-cards":KN,"186-jira-rescan-pending-flag":zN,"187-task-board-comment-thread":PN,"188-invitation-auto-accept":$N,"189-task-board-column-automations":XN,"190-task-board-review-cycle-started-at":jN,"191-task-board-columns":JN,"192-task-board-verdict-nudge-activity":ZN,"193-task-board-status-column-fk":DN,"194-jira-link-sprint":WN,"195-task-board-sprint-activity":FN,"196-task-board-column-tracker-statuses":RN,"197-task-board-prompts":YN,"198-task-board-external-url":HN,"199-drop-jira-mirror-and-org-columns":MN,"200-jira-run-trigger":BN,"201-organization-notices":GN,"202-redact-base64-thread-parts":fN,"203-task-board-preview-routes":ON,"204-git-provider-accounts-and-repositories":SN,"205-repository-references":AN,"206-repository-consumers":Jx,"207-task-board-prs-repo-idx":jx,"208-github-connect-flows":Xx,"209-github-installation-authorization":Ux,"210-github-repository-authorization":Cx,"211-user-fs-org":mx,"212-coding-agent-mcp-excluded":Nx,"213-bitbucket-git-provider":Tx,"214-connections-sanitized-id-idx":b_,"215-commerce-discovery-repository":_x,"216-github-cli-auth":ux,"217-experiments":Kx,"218-thread-message-parts-error-idx":Ex,"219-task-board-duplicate-reported-activity":Px,"220-jira-automation-continue-pr":$x,"221-remove-private-registry":h_,"222-org-git-credentials":o_,"223-drop-org-main-agent-id":s_,"224-repository-sandbox-image":a_,"225-thread-analytics-indexes":e_,"226-deco-score-names":d_},IN=CQ;import{getMigrations as VQ}from"better-auth/db";import{sso as kQ}from"@better-auth/sso";import{organization as pQ}from"@decocms/better-auth/plugins";import{admin as vQ,apiKey as qQ,jwt as gQ,magicLink as iQ,mcp as tQ,openAPI as cQ}from"better-auth/plugins";import{emailOTP as hQ}from"better-auth/plugins/email-otp";import{Kysely as fQ,PostgresDialect as EK}from"kysely";import{Pool as zK}from"pg";import{homedir as NQ}from"os";var TQ=new Set(["all","worker","api"]);function KQ(_){let x=(_??"").trim();return TQ.has(x)?x:"all"}var EQ=new Set(["production","development","test"]);function zQ(_){let x=(_??"").trim();return EQ.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function wN(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function O(_,x,u,N){return wN(_,x,N)??u}function PQ(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let C=N.indexOf("="),T=C>0?N.slice(0,C).trim():"",K=C>0?N.slice(C+1).trim():"";if(!T||!K){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=K}return x}function $Q(_,x,u,N){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(N!==void 0&&C>N)throw Error(`${_} must be at most ${N}`);return C}function nN(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function sT(_){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 UQ(_){return _===void 0||_===""||_==="true"||_==="1"}function P_(_,x){return _||x}function bT(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${NQ()}/deco`,N=_.localMode,C=_.nodeEnv||zQ(x.NODE_ENV),T=x.NATS_URL||"nats://localhost:4222",K={nodeEnv:C,port:O("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:P_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:Z(x.DATABASE_PG_SSL),databasePoolMax:O("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:O("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:P_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:N,disableRateLimit:Z(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((E)=>E.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((E)=>E.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:wN("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:PQ(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:$Q("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:O("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:O("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:O("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:nN(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:O("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:O("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:nN(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:O("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:UQ(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:wN("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:KQ(P_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:nN(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:O("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:P_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:P_(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(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return{settings:K,externalDatabaseUrl:sT(x.DATABASE_URL),externalNatsUrl:sT(T),skipMigrations:_.skipMigrations}}var q_=null;function r(){if(!q_)XQ();return q_}function XQ(){if(q_)return;let _={...process.env},x=bT({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},_);q_=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 WQ,metrics as LQ,propagation as FW,ROOT_CONTEXT as RW,SpanStatusCode as YW,trace as FQ}from"@opentelemetry/api";import{logs as RQ,SeverityNumber as VN}from"@opentelemetry/api-logs";import{OTLPLogExporter as BW}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as YQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as fW}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as SW}from"@opentelemetry/instrumentation-runtime-node";import{context as JD,propagation as QD,SpanKind as ZD,SpanStatusCode as DD}from"@opentelemetry/api";var LD=globalThis.fetch;import{ExportResultCode as AD}from"@opentelemetry/core";import{ExportResultCode as g_}from"@opentelemetry/core";import{mkdir as jQ,rename as JQ,writeFile as QQ}from"fs/promises";import{join as i_}from"path";class t_{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:g_.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:g_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:g_.FAILED}});return Promise.resolve({code:g_.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 T=x.get(C.partition);if(!T)T=[],x.set(C.partition,T);T.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,T])=>this.writeNDJSON(T,C).then(()=>C))),N=u.find((C)=>C.status==="rejected");if(N){let C=new Set;for(let K of u)if(K.status==="fulfilled")C.add(K.value);let T=_.filter((K)=>!C.has(K.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let K of this.bufferItems)this.bufferBytes+=Buffer.byteLength(K.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?i_(this.basePath,x,...N):i_(this.basePath,...N);if(!this.knownDirs.has(C))await jQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let T=`${crypto.randomUUID()}.ndjson`,K=i_(C,`.${T}.tmp`),E=i_(C,T),z=_.join(`
1943
1996
  `)+`
1944
- `;await KQ(E,z,{mode:384}),await TQ(E,K)}}import{ExportResultCode as G4}from"@opentelemetry/core";import{AggregationTemporality as y4,DataPointType as O4}from"@opentelemetry/sdk-metrics";import{ExportResultCode as V4}from"@opentelemetry/core";var q4=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as OD,LoggerProvider as SD}from"@opentelemetry/sdk-logs";import{detectResources as ID,envDetector as nD,hostDetector as wD,osDetector as VD,processDetector as kD,resourceFromAttributes as pD}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as qD}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as t4}from"@opentelemetry/api-logs";import{NodeSDK as tD}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as hD,SamplingDecision as r}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as r4}from"@opentelemetry/api";var jQ="__d",QQ=PQ("Current request"),WQ=1;var lT=(_)=>{let u=new URL(_.url).searchParams.get(jQ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class dT{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,C,T){let E=_.getValue(QQ);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,N,C,T);return{decision:r.RECORD_AND_SAMPLED}}let K=lT(E);if(K)return{decision:r.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let z=this.inner.shouldSample(_,x,u,N,C,T);if(z.decision===r.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:r.NOT_RECORD}}toString(){return"DebugSampler"}}class sT{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:r.RECORD_AND_SAMPLED};return{decision:r.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var aD=new JQ({preventServerStart:!0}),rD=new dT(new sT(WQ));var eT=UQ.getTracer("studio","1.0.0"),P_=$Q.getMeter("studio","1.0.0"),ZQ=XQ.getLogger("studio","1.0.0"),nN=(_,x,u)=>{let N={},C=u,T=u[u.length-1];if(T!==null&&typeof T==="object"&&!Array.isArray(T)&&!(T instanceof Error)&&Object.getPrototypeOf(T)===Object.prototype)N=T,C=u.slice(0,-1);let E=C.map((K)=>{if(K instanceof Error)return`${K.name}: ${K.message}`;if(typeof K==="object")try{return JSON.stringify(K)}catch{return"[Object]"}return String(K)}).join(" ");ZQ.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...N}})},wN={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{nN(IN.ERROR,"ERROR",_),wN.error(..._)};console.warn=(..._)=>{nN(IN.WARN,"WARN",_),wN.warn(..._)};console.debug=(..._)=>{nN(IN.DEBUG,"DEBUG",_),wN.debug(..._)};var VN,bT=0,kN=500;function DQ(){if(VN)return;let _=performance.now()+kN;VN=setInterval(()=>{let x=performance.now();bT=Math.max(0,x-_),_=x+kN},kN),VN.unref?.()}function _K(){return DQ(),bT}var FQ=()=>P_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),xK=()=>P_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),uK=400,RQ=100,YQ=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>uK){let N=_K(),C=N>uK/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:t_()}})}if(FQ().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function HQ(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),C=t_(),T=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-N;if(xK().record(z,{"db.pool.outcome":T?"contended":"available"}),z>RQ)if(T)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:z,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:z,idleAtStart:E,total:_.totalCount,max:C});return K},(K)=>{throw xK().record(performance.now()-N,{"db.pool.outcome":"error"}),K})},_}var NK={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function TK(){try{return a().databasePgSsl}catch{return!1}}function t_(){try{return a().databasePoolMax}catch{return 10}}function MQ(_){let x=HQ(new CK({connectionString:_,max:t_(),ssl:TK(),...NK})),u=new mK({pool:x});return{type:"postgres",db:new LQ({dialect:u,log:YQ(x)}),pool:x}}function U_(){return a().databaseUrl}function KK(_){let x=_||U_();return new mK({pool:new CK({connectionString:x,max:t_(),ssl:TK(),...NK})})}function BQ(_){let x=_||U_();return MQ(x)}async function EK(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===$_)$_=null}var $_=null;function pN(){if(!$_)$_=BQ(U_());return $_}async function zK(_){let u={database:KK(_||U_()),plugins:[yQ({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),OQ(),SQ(),AQ(),wQ(),nQ({loginPage:"/login"}),fQ(),IQ({sendMagicLink:async()=>{}}),VQ({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:C,runMigrations:T}=await GQ(u);if(!N.length&&!C.length)return"up to date";return await T(),`${C.length+N.length} table(s) migrated`}async function $K(_,x){return(await e`
1997
+ `;await QQ(K,z,{mode:384}),await JQ(K,E)}}import{ExportResultCode as kD}from"@opentelemetry/core";import{AggregationTemporality as vD,DataPointType as qD}from"@opentelemetry/sdk-metrics";import{ExportResultCode as oD}from"@opentelemetry/core";var lD=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as qW,LoggerProvider as gW}from"@opentelemetry/sdk-logs";import{detectResources as tW,envDetector as cW,hostDetector as hW,osDetector as oW,processDetector as aW,resourceFromAttributes as rW}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as lW}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as bD}from"@opentelemetry/api-logs";import{NodeSDK as bW}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as x7,SamplingDecision as e}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as CW}from"@opentelemetry/api";var HQ="__d",MQ=WQ("Current request"),BQ=1;var xK=(_)=>{let u=new URL(_.url).searchParams.get(HQ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class uK{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,C,T){let K=_.getValue(MQ);if(!K){if(this.inner)return this.inner.shouldSample(_,x,u,N,C,T);return{decision:e.RECORD_AND_SAMPLED}}let E=xK(K);if(E)return{decision:e.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":E}};if(this.inner){let z=this.inner.shouldSample(_,x,u,N,C,T);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 mK{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 m7=new YQ({preventServerStart:!0}),C7=new uK(new mK(BQ));var _K=FQ.getTracer("studio","1.0.0"),$_=LQ.getMeter("studio","1.0.0"),GQ=RQ.getLogger("studio","1.0.0"),kN=(_,x,u)=>{let N={},C=u,T=u[u.length-1];if(T!==null&&typeof T==="object"&&!Array.isArray(T)&&!(T instanceof Error)&&Object.getPrototypeOf(T)===Object.prototype)N=T,C=u.slice(0,-1);let K=C.map((E)=>{if(E instanceof Error)return`${E.name}: ${E.message}`;if(typeof E==="object")try{return JSON.stringify(E)}catch{return"[Object]"}return String(E)}).join(" ");GQ.emit({severityNumber:_,severityText:x,body:K,attributes:{"log.source":"console",...N}})},pN={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{kN(VN.ERROR,"ERROR",_),pN.error(..._)};console.warn=(..._)=>{kN(VN.WARN,"WARN",_),pN.warn(..._)};console.debug=(..._)=>{kN(VN.DEBUG,"DEBUG",_),pN.debug(..._)};var vN,CK=0,qN=500;function yQ(){if(vN)return;let _=performance.now()+qN;vN=setInterval(()=>{let x=performance.now();CK=Math.max(0,x-_),_=x+qN},qN),vN.unref?.()}function NK(){return yQ(),CK}var OQ=()=>$_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),TK=()=>$_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),KK=400,SQ=100,AQ=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>KK){let N=NK(),C=N>KK/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:c_()}})}if(OQ().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function IQ(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),C=c_(),T=_.idleCount===0&&_.totalCount>=C,K=_.idleCount;return x().then((E)=>{let z=performance.now()-N;if(TK().record(z,{"db.pool.outcome":T?"contended":"available"}),z>SQ)if(T)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:K,total:_.totalCount,max:C});return E},(E)=>{throw TK().record(performance.now()-N,{"db.pool.outcome":"error"}),E})},_}var PK={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function $K(){try{return r().databasePgSsl}catch{return!1}}function c_(){try{return r().databasePoolMax}catch{return 10}}function nQ(_){let x=IQ(new zK({connectionString:_,max:c_(),ssl:$K(),...PK})),u=new EK({pool:x});return{type:"postgres",db:new fQ({dialect:u,log:AQ(x)}),pool:x}}function X_(){return r().databaseUrl}function UK(_){let x=_||X_();return new EK({pool:new zK({connectionString:x,max:c_(),ssl:$K(),...PK})})}function wQ(_){let x=_||X_();return nQ(x)}async function XK(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===U_)U_=null}var U_=null;function gN(){if(!U_)U_=wQ(X_());return U_}async function jK(_){let u={database:UK(_||X_()),plugins:[pQ({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),vQ(),qQ(),gQ(),cQ(),tQ({loginPage:"/login"}),kQ(),iQ({sendMagicLink:async()=>{}}),hQ({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:C,runMigrations:T}=await VQ(u);if(!N.length&&!C.length)return"up to date";return await T(),`${C.length+N.length} table(s) migrated`}async function QK(_,x){return(await l`
1945
1998
  SELECT table_name FROM information_schema.tables
1946
1999
  WHERE table_schema='public' AND table_name=${x}
1947
- `.execute(_)).rows.length>0}async function kQ(_){if(await $K(_,"plugin_migrations"))return;await e`
2000
+ `.execute(_)).rows.length>0}async function oQ(_){if(await QK(_,"plugin_migrations"))return;await l`
1948
2001
  CREATE TABLE plugin_migrations (
1949
2002
  plugin_id TEXT NOT NULL,
1950
2003
  name TEXT NOT NULL,
1951
2004
  timestamp TEXT NOT NULL,
1952
2005
  PRIMARY KEY (plugin_id, name)
1953
2006
  )
1954
- `.execute(_)}async function pQ(_){if(!await $K(_,"kysely_migration"))return;let x=await e`
2007
+ `.execute(_)}async function aQ(_){if(!await QK(_,"kysely_migration"))return;let x=await l`
1955
2008
  SELECT name, timestamp FROM kysely_migration
1956
2009
  WHERE name LIKE '%/%'
1957
- `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let T=C.indexOf("/");if(T===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let E=C.substring(0,T),K=C.substring(T+1);try{await e`
2010
+ `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let T=C.indexOf("/");if(T===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let K=C.substring(0,T),E=C.substring(T+1);try{await l`
1958
2011
  INSERT INTO plugin_migrations (plugin_id, name, timestamp)
1959
- VALUES (${E}, ${K}, ${N})
1960
- `.execute(_)}catch{let z=await e`
2012
+ VALUES (${K}, ${E}, ${N})
2013
+ `.execute(_)}catch{let z=await l`
1961
2014
  SELECT COUNT(*) as cnt FROM plugin_migrations
1962
- WHERE plugin_id = ${E} AND name = ${K}
1963
- `.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${K}, keeping in old table`);continue}}await e`
2015
+ WHERE plugin_id = ${K} AND name = ${E}
2016
+ `.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${K}/${E}, keeping in old table`);continue}}await l`
1964
2017
  DELETE FROM kysely_migration WHERE name = ${u}
1965
- `.execute(_)}}async function vQ(_){await kQ(_),await pQ(_);let x=new PK({db:_,provider:{getMigrations:()=>Promise.resolve(ON)}}),{error:u,results:N}=await x.migrateToLatest(),C=0;if(N?.forEach((T)=>{if(T.status==="Success")C++;else if(T.status==="Error")console.error(`Failed to execute migration "${T.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function qQ(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},C="skipped";if(!N&&!u)C=await zK();let T=u??pN(),E=async()=>{if(!x&&!u)await EK(T).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await vQ(T.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function H7(){let _=pN(),x=new PK({db:_.db,provider:{getMigrations:()=>Promise.resolve(ON)}}),{error:u,results:N}=await x.migrateDown();if(N?.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 qQ(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{vQ as runKyselyMigrations,qQ as migrateToLatest,H7 as migrateDown};
2018
+ `.execute(_)}}async function rQ(_){await oQ(_),await aQ(_);let x=new JK({db:_,provider:{getMigrations:()=>Promise.resolve(IN)}}),{error:u,results:N}=await x.migrateToLatest(),C=0;if(N?.forEach((T)=>{if(T.status==="Success")C++;else if(T.status==="Error")console.error(`Failed to execute migration "${T.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function eQ(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},C="skipped";if(!N&&!u)C=await jK();let T=u??gN(),K=async()=>{if(!x&&!u)await XK(T).catch((E)=>{console.warn("Warning: Error closing database:",E)})};try{let E=await rQ(T.db);return await K(),{betterAuth:C,kysely:E}}catch(E){throw await K(),E}}async function n7(){let _=gN(),x=new JK({db:_.db,provider:{getMigrations:()=>Promise.resolve(IN)}}),{error:u,results:N}=await x.migrateDown();if(N?.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 eQ(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{rQ as runKyselyMigrations,eQ as migrateToLatest,n7 as migrateDown};