decocms 4.512.0 → 4.513.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{ActiveShapeUtils-BqXaxeEk.js → ActiveShapeUtils-LBvsEtIF.js} +1 -1
- package/dist/client/assets/{AlertCircle-DK2FZfq_.js → AlertCircle-Cvem4Y6m.js} +1 -1
- package/dist/client/assets/{AreaChart-D20Y4YrT.js → AreaChart-I34_ZlKp.js} +1 -1
- package/dist/client/assets/{ArrowLeft-DeArBtCe.js → ArrowLeft-BJyRuK9C.js} +1 -1
- package/dist/client/assets/{ArrowUp-WyrFSyy2.js → ArrowUp-QuecNIl2.js} +1 -1
- package/dist/client/assets/{BarChart-NjIc-R5Q.js → BarChart-pbqGOvnz.js} +1 -1
- package/dist/client/assets/{Building02-DAcqoX9o.js → Building02-BN2ObsvL.js} +1 -1
- package/dist/client/assets/{CartesianChart-ewQXcC6D.js → CartesianChart-BedGXqvm.js} +1 -1
- package/dist/client/assets/{CategoricalChart-Ww8ZbfTQ.js → CategoricalChart--HklPf_2.js} +1 -1
- package/dist/client/assets/{CheckCircle-CYOgoN0G.js → CheckCircle-CGmhPfvZ.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-Cvvc3Ycc.js → ChevronSelectorVertical-U9ccH2nL.js} +1 -1
- package/dist/client/assets/{ChevronUp-BxYIDb-x.js → ChevronUp-lK1rs_GL.js} +1 -1
- package/dist/client/assets/{Copy01-CTyD1rLp.js → Copy01-Bx8Y-gRl.js} +1 -1
- package/dist/client/assets/{CreditCard01-Da5XMYV-.js → CreditCard01-DJaSdmGa.js} +1 -1
- package/dist/client/assets/{DotsVertical-CNVtWIJ7.js → DotsVertical-BNZNyNFz.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-TQ2l2kVE.js → ErrorBarContext-DzKnIsKK.js} +1 -1
- package/dist/client/assets/{Globe04-DjRwh9a-.js → Globe04-De900zqZ.js} +1 -1
- package/dist/client/assets/{Image01-D1bKc4md.js → Image01-B8PoGELO.js} +1 -1
- package/dist/client/assets/{Key01-BYJ128a3.js → Key01-BljyWDFA.js} +1 -1
- package/dist/client/assets/{Link01-DqHpWHY8.js → Link01-C3oYUEbC.js} +1 -1
- package/dist/client/assets/{LinkBroken01-aPOHQnBE.js → LinkBroken01-Y3mt2hVL.js} +1 -1
- package/dist/client/assets/{Monitor01-Cw5jJJVb.js → Monitor01-HFhvTdbN.js} +1 -1
- package/dist/client/assets/{Play-Dd2AwbZZ.js → Play-d5F43Knt.js} +1 -1
- package/dist/client/assets/{Plus-B8PTzKCJ.js → Plus-Bqqgzhs9.js} +1 -1
- package/dist/client/assets/{ReferenceLine-BG_edhdV.js → ReferenceLine-BJB76XEK.js} +1 -1
- package/dist/client/assets/{SearchMd-D3yhpWbR.js → SearchMd-B9CuCbEU.js} +1 -1
- package/dist/client/assets/{Sector-Bgd6nrBp.js → Sector-5t1y_8w7.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-CYZOSU1V.js → ShoppingBag01-CKzXoaBh.js} +1 -1
- package/dist/client/assets/{Sun-B10rY-R5.js → Sun-e4Jz5epu.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-Bq9E5Vax.js → SwitchHorizontal01-DUci_dzf.js} +1 -1
- package/dist/client/assets/{Tool01-CQUSHKqc.js → Tool01-BE48oOYM.js} +1 -1
- package/dist/client/assets/{Trash01-CretPaef.js → Trash01-hjqx0xiP.js} +1 -1
- package/dist/client/assets/{Upload01-CVhony-r.js → Upload01-Dui_BQYy.js} +1 -1
- package/dist/client/assets/{User01-DF9l-GU2.js → User01-DBEYfJmD.js} +1 -1
- package/dist/client/assets/{UserSquare-Cuys-2dP.js → UserSquare-BQx0PoRd.js} +1 -1
- package/dist/client/assets/{Users01-bkihWpCj.js → Users01-eugfopoG.js} +1 -1
- package/dist/client/assets/{XClose-C1QcKbDl.js → XClose-Bowm5HJz.js} +1 -1
- package/dist/client/assets/{ZoomOut-B0pykhd4.js → ZoomOut-ChtZny13.js} +1 -1
- package/dist/client/assets/{access-gate-C7OqpcLT.js → access-gate-DPS87CJq.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-CnqJkiXZ.js → add-connection-dialog-DAySVccA.js} +1 -1
- package/dist/client/assets/{agent-analytics-CUwS6_rz.js → agent-analytics-CrMNgewv.js} +1 -1
- package/dist/client/assets/agent-app-WJHllD8s.js +1 -0
- package/dist/client/assets/{agent-assets-P2G1Iq3R.js → agent-assets-DWhf_SEf.js} +1 -1
- package/dist/client/assets/{agent-automation-BHyQsnuP.js → agent-automation-lORFyc9I.js} +1 -1
- package/dist/client/assets/{agent-automations-CJSrZ5Vp.js → agent-automations-RkIafiu4.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-DN1wNEhn.js → agent-connect-sources-CMhIynuO.js} +1 -1
- package/dist/client/assets/agent-deck-Dd6sBGr8.js +1 -0
- package/dist/client/assets/{agent-e2e-DwGVDlzp.js → agent-e2e-D4ENm6k_.js} +1 -1
- package/dist/client/assets/{agent-experiments-BoIr7XxF.js → agent-experiments-BtEg3B74.js} +1 -1
- package/dist/client/assets/{agent-file-2pFCpIV0.js → agent-file-Cv4GNKAu.js} +1 -1
- package/dist/client/assets/{agent-hosting-DSi1Fd9g.js → agent-hosting-QFiH6VR3.js} +1 -1
- package/dist/client/assets/{agent-icon-B7rVb-UC.js → agent-icon-DlDNTTdr.js} +1 -1
- package/dist/client/assets/agent-library-DrqQUbdQ.js +1 -0
- package/dist/client/assets/agent-library-file-6uox-pXr.js +1 -0
- package/dist/client/assets/{agent-monitor-Xl4yLwZJ.js → agent-monitor-BHnCA5z7.js} +1 -1
- package/dist/client/assets/agent-overview-BwDPLgMe.js +1 -0
- package/dist/client/assets/{agent-releases-BDpvLNiN.js → agent-releases-Bofb2T7R.js} +1 -1
- package/dist/client/assets/agent-settings-DFZRcTqc.js +1 -0
- package/dist/client/assets/{agent-site-editor-DFmffFy9.js → agent-site-editor-D7rBmOw2.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-CHHgreNV.js +2 -0
- package/dist/client/assets/agent-site-editor-content-DpXXf6a-.js +1 -0
- package/dist/client/assets/agent-site-editor-preview-GazN0kVi.js +1 -0
- package/dist/client/assets/agent-view-C8Skk6kr.js +1 -0
- package/dist/client/assets/{agent-view-guard-2OOZcT_a.js → agent-view-guard-DyDnDg7y.js} +1 -1
- package/dist/client/assets/{agents-list-BbOOxq3N.js → agents-list-T2KWhjOT.js} +1 -1
- package/dist/client/assets/{ai-providers-CRoSh_Ne.js → ai-providers-Bnd-GLut.js} +1 -1
- package/dist/client/assets/{alert-rR7VfeHJ.js → alert-BwaNqkbw.js} +1 -1
- package/dist/client/assets/{alert-dialog-Btsam2R0.js → alert-dialog-CmKQuDkV.js} +1 -1
- package/dist/client/assets/{analytics-sections-BqXukiXU.js → analytics-sections-DwtWSdAK.js} +1 -1
- package/dist/client/assets/api-keys-D-DVIp0w.js +1 -0
- package/dist/client/assets/{api-keys-6kTh9rnL.js → api-keys-KcVvFrOK.js} +1 -1
- package/dist/client/assets/{app-editor-Db0wIy_P.js → app-editor-BxQO_X8O.js} +1 -1
- package/dist/client/assets/{asset-utils-D30iIhdL.js → asset-utils-DBfxeqs4.js} +1 -1
- package/dist/client/assets/{auth-Clo1_wgF.js → auth-CxzzB0A-.js} +1 -1
- package/dist/client/assets/{auth-catchall-CJ8Vox7m.js → auth-catchall-YU9hssz4.js} +1 -1
- package/dist/client/assets/{auth-entry-DnDJ4ROD.js → auth-entry-BDxcstat.js} +1 -1
- package/dist/client/assets/{auth-split-layout-VBGAvThu.js → auth-split-layout-uPIZ06pl.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-BnY5dO50.js → authenticate-and-persist-oauth-pViKD1Gc.js} +1 -1
- package/dist/client/assets/{automation-list-row-BG6dRpia.js → automation-list-row-VbClolLO.js} +1 -1
- package/dist/client/assets/{automation-runs-AF6X8ZOz.js → automation-runs-Ji-ZINaE.js} +1 -1
- package/dist/client/assets/{automations-ER97uUTY.js → automations-D-FftS8j.js} +1 -1
- package/dist/client/assets/{autosend-bimRZaLD.js → autosend-DpLh7dWJ.js} +1 -1
- package/dist/client/assets/{avatar-i3vWIq3o.js → avatar-B7fJfb4h.js} +1 -1
- package/dist/client/assets/{badge-DO2QHf4i.js → badge-jakYyc_g.js} +1 -1
- package/dist/client/assets/{block-document-WpLDzgzB.js → block-document-DG8gJAvd.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-DHEiV7FW.js → blocks-preview-workspace-context-BDcQiasN.js} +1 -1
- package/dist/client/assets/{blocks-tab-states-zv-dv8Cm.js → blocks-tab-states-MA76RVeA.js} +3 -3
- package/dist/client/assets/{blog-schema-CX88EW7a.js → blog-schema-D9C9kwxP.js} +1 -1
- package/dist/client/assets/{board-analytics-CadkLp9i.js → board-analytics-DalD9fQ3.js} +1 -1
- package/dist/client/assets/{buckets-BqlPSibi.js → buckets-Dn6CexmT.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-Lli8CacX.js → build-improve-prompt-doc-BBxdElnJ.js} +1 -1
- package/dist/client/assets/{calendar-DVY5Z5FU.js → calendar-C3YpQYuA.js} +1 -1
- package/dist/client/assets/{capability-load-error-B4LXqJxt.js → capability-load-error-BiQECpRV.js} +1 -1
- package/dist/client/assets/{category-editor-CcfiT9gF.js → category-editor-DTbDHa8_.js} +1 -1
- package/dist/client/assets/{chart-adhFnxGn.js → chart-Br89Gn0m.js} +1 -1
- package/dist/client/assets/{chat-context-NDDJSRja.js → chat-context-Bt_IpHdn.js} +1 -1
- package/dist/client/assets/{chat-draft-CKDX00Is.js → chat-draft-BGbvxGKi.js} +1 -1
- package/dist/client/assets/{checkbox-CSe-UA-r.js → checkbox-ltNhNDM4.js} +1 -1
- package/dist/client/assets/{choose-editor-CPzp6u32.js → choose-editor-BPKHXrR8.js} +1 -1
- package/dist/client/assets/{cli-auth-success-dYtbLFMZ.js → cli-auth-success-LMenui54.js} +1 -1
- package/dist/client/assets/{client-icons-DKQgTNgx.js → client-icons-DZCTBLc_.js} +1 -1
- package/dist/client/assets/cms-settings-editor-Bx8oZCiE.js +1 -0
- package/dist/client/assets/{collapsible-fTb-vmHr.js → collapsible-zZWIPLJZ.js} +1 -1
- package/dist/client/assets/{collection-detail-B9GQI2n6.js → collection-detail-DIQzmK8m.js} +1 -1
- package/dist/client/assets/{collection-display-button-CX1G7c9G.js → collection-display-button-KTr_BPyD.js} +1 -1
- package/dist/client/assets/{collection-search-BqITyoum.js → collection-search-YuTRrSRO.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-BF8j8uWE.js → collection-table-wrapper-DLVMl8sg.js} +1 -1
- package/dist/client/assets/{collection-tabs-D7b60YKa.js → collection-tabs-c6VqSBVf.js} +1 -1
- package/dist/client/assets/{column-rules-C6_zhNQE.js → column-rules-CjQsEHE1.js} +1 -1
- package/dist/client/assets/{combobox-ACPrpnea.js → combobox-NN0PZi2X.js} +1 -1
- package/dist/client/assets/coming-soon-page-BJ9pltmN.js +1 -0
- package/dist/client/assets/{command-BwbhyDqA.js → command-De4hkzkI.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-BqBn2EOY.js → companion-mcps-section-Czb-JWAm.js} +1 -1
- package/dist/client/assets/config-C3xx9JGl.js +1 -0
- package/dist/client/assets/{connect-DYmhSvES.js → connect-CnHwICLf.js} +1 -1
- package/dist/client/assets/{connect-layout-D2RUPfzB.js → connect-layout-CyExoM2e.js} +1 -1
- package/dist/client/assets/{connection-caJZqWZZ.js → connection-DNHX-zI2.js} +1 -1
- package/dist/client/assets/{connection-card-BvgnpDHG.js → connection-card-D-zYcnvX.js} +1 -1
- package/dist/client/assets/{connection-detail-CeMkOrGO.js → connection-detail-D0Ov4Y6W.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-BUfYVR9O.js → connection-form-helpers-B4YACDyO.js} +1 -1
- package/dist/client/assets/{connections-DP13-vXh.js → connections-CxrYf-kX.js} +1 -1
- package/dist/client/assets/{content-tab-DnZn6Mjm.js → content-tab-DGigAgtr.js} +3 -3
- package/dist/client/assets/{context-qT-RDTKc.js → context-CqSnYEDh.js} +1 -1
- package/dist/client/assets/{context-menu-CNk3BuaP.js → context-menu-DytMQMuj.js} +1 -1
- package/dist/client/assets/{context-shell-DFmkrO3u.js → context-shell-B_t5yOoc.js} +3 -3
- package/dist/client/assets/{core.esm-DqoCRb2X.js → core.esm-ELTg1p5B.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-B7k3tumO.js → create-organization-dialog-OyCDluH-.js} +1 -1
- package/dist/client/assets/daily-pulse-B8GWVVWD.js +1 -0
- package/dist/client/assets/{discover-BRk-BlyX.js → discover-CY6WK9ZB.js} +1 -1
- package/dist/client/assets/{domain-settings-BAY8_vYu.js → domain-settings-BPxde74J.js} +1 -1
- package/dist/client/assets/{drawer-DjD-QGwh.js → drawer-tVqfqfgS.js} +1 -1
- package/dist/client/assets/{editor-classes-BgPVRA_3.js → editor-classes-DuHYsQXo.js} +1 -1
- package/dist/client/assets/{editor-DNDxVWeH.js → editor-u4-EEM31.js} +1 -1
- package/dist/client/assets/{empty-state-BFhIB3xg.js → empty-state-DOXszr-G.js} +1 -1
- package/dist/client/assets/{empty-state-5BqD0UbM.js → empty-state-DhQ6b-4X.js} +1 -1
- package/dist/client/assets/{extract-connection-data-DbnjVBDv.js → extract-connection-data-Noi2laOR.js} +1 -1
- package/dist/client/assets/{feature-gate-9GT7LhYT.js → feature-gate-BCWJGTl6.js} +1 -1
- package/dist/client/assets/{feature-paywall-BAu2jsDC.js → feature-paywall-DSUE7uWN.js} +1 -1
- package/dist/client/assets/{file-explorer-DxVkmqii.js → file-explorer-cyqbbj8g.js} +1 -1
- package/dist/client/assets/{file-preview-wNDwfIP7.js → file-preview-BjiRATef.js} +1 -1
- package/dist/client/assets/{file-share-button-abhF8Su5.js → file-share-button-D64rdBSQ.js} +1 -1
- package/dist/client/assets/{file-type-icon-8rMDbRmj.js → file-type-icon-C8TsjujV.js} +1 -1
- package/dist/client/assets/flat-project-CSSZxBOE.js +1 -0
- package/dist/client/assets/{folder-icon-DMj8ClBM.js → folder-icon-B9zlfCiB.js} +1 -1
- package/dist/client/assets/{form-Bs2xZGTQ.js → form-CSFIwIoN.js} +1 -1
- package/dist/client/assets/{general-rFBbxXYe.js → general-BXsEOlZ5.js} +1 -1
- package/dist/client/assets/home-CBma7wvX.js +1 -0
- package/dist/client/assets/{hosted-publish-feedback-DijEGuR8.js → hosted-publish-feedback-Dg4Y4bkK.js} +1 -1
- package/dist/client/assets/{icon-button-Cex24He3.js → icon-button-DJlTsKMg.js} +1 -1
- package/dist/client/assets/{index-Dh6lqV-D.js → index-B2TzlpQ3.js} +29 -29
- package/dist/client/assets/{index-BMZ3Ud--.js → index-B9bk7VCc.js} +1 -1
- package/dist/client/assets/{index-peZFrJhF.js → index-BFpWqRZ0.js} +1 -1
- package/dist/client/assets/index-BY2lzf-u.js +81 -0
- package/dist/client/assets/{index-WoXUWPGe.js → index-CWXy03he.js} +1 -1
- package/dist/client/assets/{index-BODFjW9s.js → index-CY0geMFq.js} +1 -1
- package/dist/client/assets/{index-DFAdg6N_.js → index-DHfIFZth.js} +1 -1
- package/dist/client/assets/{index-TZpDJbC_.js → index-DsQzKhrM.js} +1 -1
- package/dist/client/assets/{index-D-l2CdkZ.js → index-Dv5iQt6B.js} +1 -1
- package/dist/client/assets/{index-HMEBscyd.js → index-KNQWtaCb.js} +1 -1
- package/dist/client/assets/{index-Dcb4_xyT.js → index-LRv4COmF.js} +2 -2
- package/dist/client/assets/index-dF7Fpxre.css +1 -0
- package/dist/client/assets/{index-DKIHmPFZ.js → index-eSoO1i0F.js} +1 -1
- package/dist/client/assets/{index-C3umTCP7.js → index-fTp2wmQ3.js} +1 -1
- package/dist/client/assets/{index-CH9keryZ.js → index-lvF8BPVu.js} +1 -1
- package/dist/client/assets/{index-CrLXS4WT.js → index-ooKcIXhe.js} +1 -1
- package/dist/client/assets/{index-redirect-CdF37rDs.js → index-redirect-BeoaztAB.js} +1 -1
- package/dist/client/assets/{index-CpVCAf6d.js → index-yL8irnL4.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-BSFHeTIc.js → infiniteQueryObserver-BPxNO74V.js} +1 -1
- package/dist/client/assets/{infra-billing-BDTrUrFq.js → infra-billing-DAC7xXxq.js} +1 -1
- package/dist/client/assets/{input-DI2G3bv8.js → input-C6aPvUej.js} +3 -3
- package/dist/client/assets/{input-BgxbN3FA.js → input-Ct6LNWBH.js} +1 -1
- package/dist/client/assets/{integration-icon-Dj1FnH9e.js → integration-icon-GE6gXozG.js} +1 -1
- package/dist/client/assets/{jira-icon-C0At9iVB.js → jira-icon-DJu4VOlJ.js} +1 -1
- package/dist/client/assets/{label-Dj-ztJPu.js → label-BZWf9QYv.js} +1 -1
- package/dist/client/assets/{layout-kJwH7bPL.js → layout-DFE-VkxR.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-DWc7UYvz.js → legacy-agents-deep-BoBSHh4p.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-CWdpuVgi.js → legacy-main-redirect-BzTdSNma.js} +1 -1
- package/dist/client/assets/library-D0guJwzz.js +1 -0
- package/dist/client/assets/{library-tab-RzmHo_wf.js → library-tab-BotaUMxF.js} +1 -1
- package/dist/client/assets/{login-BEtdVuQ3.js → login-BGNHu7VT.js} +1 -1
- package/dist/client/assets/{markdown-DtvytvCC.js → markdown-BDFrzJxg.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-BMDWzwzn.js → mcp-app-renderer-DrvF9Pa7.js} +1 -1
- package/dist/client/assets/{mcp-oauth-Ddst4pnk.js → mcp-oauth-Cz4ZcdFq.js} +1 -1
- package/dist/client/assets/{mcp-oauth-BD62sKj_.js → mcp-oauth-DCzrBgix.js} +1 -1
- package/dist/client/assets/{members-B31bXYFr.js → members-i_wujRIe.js} +1 -1
- package/dist/client/assets/{memory-DK9q5CXA.js → memory-BQXcCBLH.js} +1 -1
- package/dist/client/assets/{mini-report-page-CR0USEBv.js → mini-report-page-tiAHPa9i.js} +1 -1
- package/dist/client/assets/mock-board-BR-zRSgi.js +1 -0
- package/dist/client/assets/{monaco-editor-BnK6-IRy.js → monaco-editor-BhXbxyIo.js} +1 -1
- package/dist/client/assets/monitoring-ByTqoKkm.js +1 -0
- package/dist/client/assets/{monitoring-stats-row-DtzdSbwr.js → monitoring-stats-row-WEAYPHMD.js} +1 -1
- package/dist/client/assets/{multi-select-B8lwKqlL.js → multi-select-BbCHHIsr.js} +1 -1
- package/dist/client/assets/{mustache-DnKeBDfO.js → mustache-CLs-t0EC.js} +1 -1
- package/dist/client/assets/{new-project-dialog-D7SPZ5ge.js → new-project-dialog-Ceh0T8Zf.js} +1 -1
- package/dist/client/assets/{oauth-callback-CoOXZoe9.js → oauth-callback-DoEjttDw.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-D6IXgPxd.js → oauth-callback-ai-provider-DoDUw7wL.js} +1 -1
- package/dist/client/assets/{onboarding-CXxz5uAe.js → onboarding-L82roMb_.js} +1 -1
- package/dist/client/assets/{openai-conversation-Ar6jUIys.js → openai-conversation-DAtvucBP.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-DAj-vyYC.js → optimistic-project-sidebar-views-BasKJepJ.js} +1 -1
- package/dist/client/assets/{order-monitor-day-BwvJoZfk.js → order-monitor-day-k6dr4Zbg.js} +1 -1
- package/dist/client/assets/{organization-choice-CJ5IEGyS.js → organization-choice-PC77U28J.js} +1 -1
- package/dist/client/assets/{orgs-aykyf6Kr.js → orgs-CIp7lq46.js} +1 -1
- package/dist/client/assets/{page-seo-form-752AEhan.js → page-seo-form-CpA9AjIr.js} +1 -1
- package/dist/client/assets/{pair-Dw7a3nGB.js → pair-CDXhexja.js} +1 -1
- package/dist/client/assets/plan-DMGu-u0K.js +1 -0
- package/dist/client/assets/{plan-ladder-Ba6XkMw3.js → plan-ladder-ChIYVMh8.js} +1 -1
- package/dist/client/assets/{popover-DQhcVLFt.js → popover-DSQOAh-c.js} +1 -1
- package/dist/client/assets/{post-calendar-B4bCNGY0.js → post-calendar-DZAFc_0t.js} +1 -1
- package/dist/client/assets/{post-editor-D7T84bLt.js → post-editor-hE-yOtFr.js} +1 -1
- package/dist/client/assets/{preview-content-DgFv493T.js → preview-content-C1y4Cni-.js} +1 -1
- package/dist/client/assets/{preview-dialog-ssvWXN-1.js → preview-dialog-BXoibHar.js} +1 -1
- package/dist/client/assets/{preview-panel-CqWlhuGI.js → preview-panel-DwwDdJ8h.js} +1 -1
- package/dist/client/assets/{preview-tab-C_NfR_m5.js → preview-tab-B17aL0uv.js} +3 -3
- package/dist/client/assets/{product-picker-dialog-Cfz22jaK.js → product-picker-dialog-hqwivccT.js} +1 -1
- package/dist/client/assets/{profile-D1bqvB-L.js → profile-D1aXcB6j.js} +1 -1
- package/dist/client/assets/{project-app-view-C44gytu_.js → project-app-view-c32i0SfA.js} +1 -1
- package/dist/client/assets/{project-apps-CYnwwcuf.js → project-apps-D81NGCcl.js} +1 -1
- package/dist/client/assets/project-feed-CEyfQQlk.js +1 -0
- package/dist/client/assets/{project-icon-hXRLMrWg.js → project-icon-DMkjvbD2.js} +1 -1
- package/dist/client/assets/project-reports-C__FSGIV.js +1 -0
- package/dist/client/assets/project-tasks-Cc3a2zti.js +1 -0
- package/dist/client/assets/{projects-DpkcOQTF.js → projects-CVwQvEzi.js} +1 -1
- package/dist/client/assets/{projects-empty-state-IzdO-9SP.js → projects-empty-state-DaO_LK3i.js} +1 -1
- package/dist/client/assets/{prompts-DZ4DaWQs.js → prompts-C_XE1PBe.js} +1 -1
- package/dist/client/assets/record-editor-DCZHnUOF.js +1 -0
- package/dist/client/assets/{redirect-editor-BxlvKJKR.js → redirect-editor-D1A3peeB.js} +1 -1
- package/dist/client/assets/{reports-C6fYHKzz.js → reports-BI-WplZi.js} +1 -1
- package/dist/client/assets/reports-BLOeTE2J.js +1 -0
- package/dist/client/assets/{reports-onboarding-DE90Iibp.js → reports-onboarding-Bny-I2Ds.js} +1 -1
- package/dist/client/assets/{reports-tab-hw3HASwE.js → reports-tab-BJw03qVv.js} +2 -2
- package/dist/client/assets/{repositories-DQWqExUz.js → repositories-D-ENxt9m.js} +1 -1
- package/dist/client/assets/repositories-DcSyG13S.js +1 -0
- package/dist/client/assets/{repository-binding-BCGiuuGC.js → repository-binding-BHR5kpih.js} +1 -1
- package/dist/client/assets/{repository-import-picker-cI1645ZT.js → repository-import-picker-Qyk6d7Zu.js} +1 -1
- package/dist/client/assets/{repository-picker-Bfqv3k5s.js → repository-picker-Bj1Nc6kr.js} +1 -1
- package/dist/client/assets/{require-capability-BWi-K_Zr.js → require-capability-CAruTncm.js} +1 -1
- package/dist/client/assets/{required-auth-layout-BM3uC4cu.js → required-auth-layout-C77EYaMY.js} +1 -1
- package/dist/client/assets/{reset-password-B66FDbYP.js → reset-password-BkBiknMt.js} +1 -1
- package/dist/client/assets/{resizable-DtiM22Vx.js → resizable-Cdm-hXXC.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-ClMpcUKc.js → resolve-tab-icon-CLxwJMYD.js} +1 -1
- package/dist/client/assets/{review-settings-Muikz6NE.js → review-settings-DJcdSi1O.js} +1 -1
- package/dist/client/assets/{roles-B4eK3vad.js → roles-Ctu--JGK.js} +1 -1
- package/dist/client/assets/route-BcljPCXS.js +1 -0
- package/dist/client/assets/{route-R-vqgxGv.js → route-Bv7zngSu.js} +1 -1
- package/dist/client/assets/route-C_XW9SML.js +1 -0
- package/dist/client/assets/{sandbox-lifecycle-context-BrxgA0sv.js → sandbox-lifecycle-context-DiQubSE3.js} +1 -1
- package/dist/client/assets/{schema-BuzuX8NO.js → schema-BJSITXJ8.js} +1 -1
- package/dist/client/assets/{schema-AtmYiPLx.js → schema-C7iS0wFx.js} +1 -1
- package/dist/client/assets/{scroll-area-C7n1PFcD.js → scroll-area-PyP08N60.js} +1 -1
- package/dist/client/assets/{search-input-Dckh30mC.js → search-input-C1UN1o4M.js} +1 -1
- package/dist/client/assets/{search-toggle-C0_kcq9-.js → search-toggle-XARujNee.js} +1 -1
- package/dist/client/assets/{secret-ciphertext-o5cL6Xn4.js → secret-ciphertext-C105RZR8.js} +1 -1
- package/dist/client/assets/{secret-picker-ooQ7rZX9.js → secret-picker--t9IEGre.js} +1 -1
- package/dist/client/assets/{secrets-FRwltxar.js → secrets-a886ZQjo.js} +1 -1
- package/dist/client/assets/{sections-B-cuXkLa.js → sections--OK8BqVo.js} +1 -1
- package/dist/client/assets/{sections-editor-BDIoUQ5d.js → sections-editor-ODb5eT5K.js} +1 -1
- package/dist/client/assets/{select-Cef95OjK.js → select-CbXBky5o.js} +1 -1
- package/dist/client/assets/{select-model-DHKZ1ZDZ.js → select-model-DnqdlTY0.js} +1 -1
- package/dist/client/assets/{seo-editor-Bqn0foSL.js → seo-editor-_gXa0jQZ.js} +1 -1
- package/dist/client/assets/{separator-CwH_YycN.js → separator-BvB_O5R3.js} +1 -1
- package/dist/client/assets/settings-tab-CQaLGUBt.js +1 -0
- package/dist/client/assets/{sheet-CimgCzeL.js → sheet-DJ-bT8ZN.js} +1 -1
- package/dist/client/assets/{shell-layout-D8Xsf_zl.js → shell-layout-zTHQ8o3e.js} +1 -1
- package/dist/client/assets/{site-editor-toast-DdsDl_0Y.js → site-editor-toast-VSiTWj1-.js} +1 -1
- package/dist/client/assets/site-editor-xZY1UAX7.js +1 -0
- package/dist/client/assets/{skills-C4ZwAnjx.js → skills-CY75dh6w.js} +1 -1
- package/dist/client/assets/{slider-BHirSB_K.js → slider-DLQnZK5w.js} +1 -1
- package/dist/client/assets/{sortable.esm-CvLlP0RR.js → sortable.esm-C1Eh7IYA.js} +1 -1
- package/dist/client/assets/{sso-v6m5j6TF.js → sso-HvcRYsLs.js} +1 -1
- package/dist/client/assets/{suggestion-QVDTZ8A_.js → suggestion-Bd2p1cFs.js} +1 -1
- package/dist/client/assets/{switch-1VT3-JZU.js → switch-CBoIFiQt.js} +1 -1
- package/dist/client/assets/{symbol-BMlIc2jK.js → symbol-DWwkR4VS.js} +1 -1
- package/dist/client/assets/{synced-repos-D8W0CBOK.js → synced-repos-BHAxDLjN.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-CrYN-umX.js → tab-icon-glyph-4oa_teIT.js} +1 -1
- package/dist/client/assets/{table-LP-zKv5o.js → table-DR5sKbqx.js} +1 -1
- package/dist/client/assets/{tabs-C9Nx2Idu.js → tabs-CNGqHoIP.js} +1 -1
- package/dist/client/assets/task-assignee-avatar-DHQM3xug.js +1 -0
- package/dist/client/assets/{task-board-Diavk1ck.js → task-board-CcHSIY54.js} +1 -1
- package/dist/client/assets/{task-route-siExH-mL.js → task-route-SZvHObwH.js} +1 -1
- package/dist/client/assets/{task-status-AFUh541V.js → task-status-DWiZUPkY.js} +1 -1
- package/dist/client/assets/taskboard-analytics-DudxlCXA.js +1 -0
- package/dist/client/assets/{tasks-C9Gd4_To.js → tasks-DS6EMqnA.js} +1 -1
- package/dist/client/assets/tasks-DlxMQA6S.js +1 -0
- package/dist/client/assets/{textarea-B-ovDoRb.js → textarea-DyZlrsVq.js} +1 -1
- package/dist/client/assets/{thread-analytics-kWaYFE4J.js → thread-analytics-DHjhymZ1.js} +1 -1
- package/dist/client/assets/{thread-intent-BYCrOafD.js → thread-intent-DDbt1zFs.js} +1 -1
- package/dist/client/assets/{thread-route-7ByWVOfP.js → thread-route-BfzBR-qP.js} +1 -1
- package/dist/client/assets/{thread-route-DzDPZLRL.js → thread-route-BuNjfRbE.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-DiXISFlP.js → thread-sheet-body-DKb5Tkbf.js} +1 -1
- package/dist/client/assets/{time-range-picker-DvXQ7QLk.js → time-range-picker-C3KImImw.js} +1 -1
- package/dist/client/assets/{toggle-group-wEYCZVcF.js → toggle-group-NHMm81uy.js} +1 -1
- package/dist/client/assets/{tool-namespace-B3QK2yBI.js → tool-namespace-cOMZbGcB.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-D627FbTD.js → toolbar-icon-button-BDnjVLQO.js} +1 -1
- package/dist/client/assets/{tooltip-CmXQ9oQt.js → tooltip-CPnhEOeb.js} +1 -1
- package/dist/client/assets/{tooltipContext-DmhAKx1k.js → tooltipContext-CcxsGSie.js} +1 -1
- package/dist/client/assets/{track-BMsM3ByM.js → track-CdsiPzAC.js} +1 -1
- package/dist/client/assets/{types-CUwR7U_Z.js → types-B1hCJ-PH.js} +1 -1
- package/dist/client/assets/{url-slug-BV2QtAPw.js → url-slug-BlavxIAd.js} +1 -1
- package/dist/client/assets/{usage-stats-BdiHoLKd.js → usage-stats-evHtcCgH.js} +1 -1
- package/dist/client/assets/{use-ai-providers-DZsKzgFC.js → use-ai-providers-NTub8QOK.js} +1 -1
- package/dist/client/assets/{use-automations-B6vjCo1m.js → use-automations-BwkvJGBq.js} +1 -1
- package/dist/client/assets/{use-autosave-DLdx8RNS.js → use-autosave-B6_j9303.js} +1 -1
- package/dist/client/assets/{use-chat-layout-state-Ba5KYF9k.js → use-chat-layout-state-Bq1kK1d0.js} +1 -1
- package/dist/client/assets/{use-clock-tick-DSbjL7oE.js → use-clock-tick-AQvE7bKr.js} +1 -1
- package/dist/client/assets/{use-connect-companion-D9ja_N7u.js → use-connect-companion-wPVbpX2v.js} +1 -1
- package/dist/client/assets/{use-connection-Cp-tv1BK.js → use-connection-Brqa7Ss0.js} +1 -1
- package/dist/client/assets/{use-content-sync-ldgQLauf.js → use-content-sync-CMGC5Qk5.js} +1 -1
- package/dist/client/assets/{use-copy-D48hguMU.js → use-copy-DuLRO-Fh.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-DO_nWtPm.js → use-create-virtual-mcp-DtbsfC0A.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-C72eYhR9.js → use-date-fns-locale-BPO9eUd-.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-DhnhF8nU.js → use-debounced-autosave-Bqicbzgb.js} +1 -1
- package/dist/client/assets/{use-debounced-value-Br22DL_0.js → use-debounced-value-vhxkuBRI.js} +1 -1
- package/dist/client/assets/{use-deco-credits-Da6-vCm9.js → use-deco-credits-DYXvHZvv.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-CJ91OyZt.js → use-decopilot-events-DuEo5esR.js} +1 -1
- package/dist/client/assets/{use-delete-connection-CMF5teGf.js → use-delete-connection-B6sEpykr.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-Ck3AxShs.js → use-deployment-admin-CXTN6dcC.js} +1 -1
- package/dist/client/assets/{use-ensure-project-folder-CxDawJky.js → use-ensure-project-folder-BjmSBA08.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-1e8YW9EA.js → use-fast-preview-draft-url-MiSihGpC.js} +1 -1
- package/dist/client/assets/{use-file-configs-CgM1W9PQ.js → use-file-configs-DqTgPICU.js} +1 -1
- package/dist/client/assets/use-inbox-feed-CW81Gsok.js +1 -0
- package/dist/client/assets/{use-infinite-scroll-DS1TqBpf.js → use-infinite-scroll-rQID4ALa.js} +1 -1
- package/dist/client/assets/{use-join-requests-Cw4Iso9A.js → use-join-requests-hKm0f1kJ.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-CrR_azof.js → use-main-panel-tabs-AvyS9cfs.js} +1 -1
- package/dist/client/assets/{use-main-schema-v8-BHKJCsva.js → use-main-schema-v8-HicBcdhy.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-CSLj6nae.js → use-mcp-auth-status-C9h87_Be.js} +1 -1
- package/dist/client/assets/{use-mcp-client-CIq01hYv.js → use-mcp-client-BtBrdGJv.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-B-e8wfJm.js → use-mcp-prompts-BHoghaTR.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-DmBPD8wk.js → use-mcp-tools-C9XRg5hE.js} +1 -1
- package/dist/client/assets/{use-members-DrZyxeiH.js → use-members-BdFbg_Mm.js} +1 -1
- package/dist/client/assets/{use-mobile-BR2A_Ib8.js → use-mobile-B3guCu1w.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-B9gUcVum.js → use-navigate-to-agent-DzJ4GpEZ.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-DQdkm51D.js → use-open-billing-url-CdXn5_vW.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-By1ti4aQ.js → use-org-auth-client-eVmapzts.js} +1 -1
- package/dist/client/assets/{use-org-fs-BPBqitWx.js → use-org-fs-CIqZsziN.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-DnUT1Ym2.js → use-org-repo-syncs-dS9FSvkG.js} +1 -1
- package/dist/client/assets/{use-org-sso-ZQedlNFK.js → use-org-sso-DwazSX6k.js} +1 -1
- package/dist/client/assets/{use-organization-roles-NPjVrrzg.js → use-organization-roles-BiMGfJ70.js} +1 -1
- package/dist/client/assets/{use-organization-settings-ChEBrtav.js → use-organization-settings-BcZ9BFJG.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-DezU-2WA.js → use-panel-navigate-B-vjXQrO.js} +1 -1
- package/dist/client/assets/{use-project-native-view-presence-D7v1kI_o.js → use-project-native-view-presence-0vSzphBC.js} +1 -1
- package/dist/client/assets/{use-project-scope-CGfPDbaQ.js → use-project-scope-DEadi158.js} +1 -1
- package/dist/client/assets/{use-recent-apps-zpxUk_Vz.js → use-recent-apps-BbY9Gh07.js} +1 -1
- package/dist/client/assets/{use-releases-DYNAYIw_.js → use-releases-CgicO3CW.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-DyIage8a.js → use-reports-diagnostic-GYWr-M97.js} +1 -1
- package/dist/client/assets/{use-secrets-DDIHld0W.js → use-secrets-CHPX0iF7.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-9MyykawR.js → use-section-preview-base-BdGcCaRc.js} +1 -1
- package/dist/client/assets/{use-sidebar-collapsed-pUh-sfhc.js → use-sidebar-collapsed-CFQZVlEf.js} +1 -1
- package/dist/client/assets/{use-tags-DMcpPhb7.js → use-tags-ZJAZZKBe.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-rXs4_TEv.js → use-task-board-analytics-u_O6doFC.js} +1 -1
- package/dist/client/assets/{use-task-board-events-BMxEDOi0.js → use-task-board-events-Bc0NLtD6.js} +1 -1
- package/dist/client/assets/{use-task-board-item-prs-BhJT5ASF.js → use-task-board-item-prs-Bll-IQgK.js} +1 -1
- package/dist/client/assets/{use-task-metadata-Cof6Ul56.js → use-task-metadata-DiCUjyvF.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-kGsu4IN8.js → use-thread-analytics-YIvbbfjU.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-BMwy7cGe.js → use-thread-outputs-CFKmmshn.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-CkPcoq7e.js +1 -0
- package/dist/client/assets/{useQueries-C2h4ef8M.js → useQueries--n-b-7z3.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DWp7pfSN.js +1 -0
- package/dist/client/assets/{users-JSvsSC2z.js → users--QRo4rfP.js} +1 -1
- package/dist/client/assets/{utils-Bk5Ym65x.js → utils-CmBQ_sIU.js} +1 -1
- package/dist/client/assets/{variant-calendar-B8XaApRe.js → variant-calendar-Bh20TlOL.js} +1 -1
- package/dist/client/assets/{variant-draft-pointer-BQxAPrW3.js → variant-draft-pointer-Bs4oKxZX.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-CAPnB5Vm.js → view-mode-toggle-Bg52aP2b.js} +1 -1
- package/dist/client/assets/{virtual-mcp-C0HuYnes.js → virtual-mcp-DHr3dTxJ.js} +1 -1
- package/dist/client/assets/{watch-sse-pool-CM7whpbI.js → watch-sse-pool-DLxI6U1q.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/migrate.js +234 -221
- package/dist/server/server.js +699 -689
- package/package.json +1 -1
- package/dist/client/assets/agent-app-BSHAznsx.js +0 -1
- package/dist/client/assets/agent-deck-BJ1MkiZV.js +0 -1
- package/dist/client/assets/agent-library-BuVtsbs2.js +0 -1
- package/dist/client/assets/agent-library-file-yO5zQHlv.js +0 -1
- package/dist/client/assets/agent-overview-BNA-U_b_.js +0 -1
- package/dist/client/assets/agent-settings-Ozoybz5s.js +0 -1
- package/dist/client/assets/agent-site-editor-code-DqK04FvP.js +0 -2
- package/dist/client/assets/agent-site-editor-content-CLSU2mjX.js +0 -1
- package/dist/client/assets/agent-site-editor-preview-B2ju7pgT.js +0 -1
- package/dist/client/assets/agent-view-B2yenRlN.js +0 -1
- package/dist/client/assets/api-keys-C7ldc4Ve.js +0 -1
- package/dist/client/assets/cms-settings-editor-0F_ySZig.js +0 -1
- package/dist/client/assets/coming-soon-page-f5NnfJuk.js +0 -1
- package/dist/client/assets/config-Djlb3vyk.js +0 -1
- package/dist/client/assets/daily-pulse-Dg5dzf6h.js +0 -1
- package/dist/client/assets/flat-project-hj6GEPKg.js +0 -1
- package/dist/client/assets/home-gZkVaiRX.js +0 -1
- package/dist/client/assets/index-ChREtrmV.js +0 -81
- package/dist/client/assets/index-JiORW7MK.css +0 -1
- package/dist/client/assets/library-vX7PhbME.js +0 -1
- package/dist/client/assets/mock-board-CDD87bU0.js +0 -1
- package/dist/client/assets/monitoring-DfTIyamA.js +0 -1
- package/dist/client/assets/plan-DBAODlHT.js +0 -1
- package/dist/client/assets/project-feed-BpQ3T_Kg.js +0 -1
- package/dist/client/assets/project-reports-DiBOgsT_.js +0 -1
- package/dist/client/assets/project-tasks-DX5XzbQB.js +0 -1
- package/dist/client/assets/record-editor-DT4mjCCQ.js +0 -1
- package/dist/client/assets/reports-DT_toL69.js +0 -1
- package/dist/client/assets/repositories-BA8gueJ7.js +0 -1
- package/dist/client/assets/route-ChobQ2Og.js +0 -1
- package/dist/client/assets/route-nqyKGaqK.js +0 -1
- package/dist/client/assets/settings-tab-khZIifRI.js +0 -1
- package/dist/client/assets/site-editor-Dg3K4Mc7.js +0 -1
- package/dist/client/assets/taskboard-analytics-CvL629EJ.js +0 -1
- package/dist/client/assets/tasks-DmUCLi94.js +0 -1
- package/dist/client/assets/use-task-board-items-pu7twpW9.js +0 -1
- package/dist/client/assets/useInfiniteQuery-Crjct8k5.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DxrmmJFg.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null,x)}var C=(_,x)=>{for(var u in x)Vz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:kz.bind(x,u)})};import{Migrator as yz,sql as o}from"kysely";var Ux={};C(Ux,{up:()=>nz,down:()=>vz});import{sql as hm}from"kysely";async function nz(_){await hm`
|
|
3
3
|
ALTER TABLE task_board_items
|
|
4
4
|
ADD COLUMN IF NOT EXISTS harness_id text NOT NULL DEFAULT 'claude-code'
|
|
5
5
|
CHECK (harness_id IN ('claude-code', 'codex'))
|
|
6
|
-
`.execute(_)}async function
|
|
6
|
+
`.execute(_)}async function vz(_){await hm`ALTER TABLE task_board_items DROP COLUMN IF EXISTS harness_id`.execute(_)}var Px={};C(Px,{up:()=>pz,down:()=>gz});import{sql as G_}from"kysely";async function pz(_){await G_`
|
|
7
|
+
ALTER TABLE task_board_items
|
|
8
|
+
ADD COLUMN IF NOT EXISTS parent_id text NULL
|
|
9
|
+
REFERENCES task_board_items(id) ON DELETE SET NULL,
|
|
10
|
+
ADD COLUMN IF NOT EXISTS is_epic boolean NOT NULL DEFAULT false
|
|
11
|
+
`.execute(_),await G_`
|
|
12
|
+
CREATE INDEX IF NOT EXISTS idx_task_board_items_parent_id
|
|
13
|
+
ON task_board_items (parent_id)
|
|
14
|
+
WHERE parent_id IS NOT NULL
|
|
15
|
+
`.execute(_)}async function gz(_){await G_`DROP INDEX IF EXISTS idx_task_board_items_parent_id`.execute(_),await G_`
|
|
16
|
+
ALTER TABLE task_board_items
|
|
17
|
+
DROP COLUMN IF EXISTS parent_id,
|
|
18
|
+
DROP COLUMN IF EXISTS is_epic
|
|
19
|
+
`.execute(_)}var Jx={};C(Jx,{up:()=>qz,down:()=>iz});async function qz(_){await _.schema.createTable("codex_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey().references("user.id").onDelete("cascade")).addColumn("encrypted_auth","text",(x)=>x.notNull()).addColumn("auth_hash","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function iz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Qx={};C(Qx,{up:()=>cz,down:()=>hz,TYPES:()=>Xx});import{sql as m_}from"kysely";var Xx=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function cz(_){await _.schema.createTable("order_monitor_state").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("rule","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("since","timestamptz",(x)=>x.notNull()).addColumn("evaluated_at","timestamptz",(x)=>x.notNull()).addColumn("verdict","jsonb",(x)=>x.notNull()).addColumn("prev_status","text").addColumn("task_board_item_id","text",(x)=>x.references("task_board_items.id").onDelete("set null")).addPrimaryKeyConstraint("order_monitor_state_pkey",["organization_id","connection_id","rule"]).execute(),await tm(_,Xx)}async function hz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await tm(_,Xx.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function tm(_,x){await m_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await m_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var Zx={};C(Zx,{up:()=>tz,down:()=>oz});import{sql as om}from"kysely";async function tz(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",om`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",om`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function oz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Wx={};C(Wx,{up:()=>az,down:()=>rz});import{sql as a}from"kysely";async function az(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await a`ALTER TABLE organization_settings
|
|
7
20
|
DROP COLUMN IF EXISTS registry_config,
|
|
8
21
|
DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
|
|
9
22
|
BEGIN RETURN value::jsonb;
|
|
@@ -18,20 +31,20 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
18
31
|
)`.execute(_),await a`DELETE FROM connections
|
|
19
32
|
WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
|
|
20
33
|
OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
|
|
21
|
-
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function
|
|
34
|
+
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function rz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var jx={};C(jx,{up:()=>lz,down:()=>ez});import{sql as am}from"kysely";async function lz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await am`
|
|
22
35
|
select organization_id, metadata
|
|
23
36
|
from connections
|
|
24
37
|
where connection_type = 'VIRTUAL'
|
|
25
38
|
and metadata like '%submoduleCredentials%'
|
|
26
39
|
order by updated_at asc
|
|
27
|
-
`.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(m))continue;for(let T of m){let z=T?.host,E=T?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,m]of u){let T=JSON.stringify([...m].map(([z,E])=>({host:z,secretId:E})));await
|
|
40
|
+
`.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(m))continue;for(let T of m){let z=T?.host,E=T?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,m]of u){let T=JSON.stringify([...m].map(([z,E])=>({host:z,secretId:E})));await am`
|
|
28
41
|
insert into organization_settings
|
|
29
42
|
("organizationId", submodule_credentials, "createdAt", "updatedAt")
|
|
30
43
|
values (${K}, ${T}, ${N}, ${N})
|
|
31
44
|
on conflict ("organizationId") do update
|
|
32
45
|
set submodule_credentials = excluded.submodule_credentials,
|
|
33
46
|
"updatedAt" = excluded."updatedAt"
|
|
34
|
-
`.execute(_)}}async function
|
|
47
|
+
`.execute(_)}}async function ez(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Lx={};C(Lx,{up:()=>dz,down:()=>bz});async function dz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function bz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Yx={};C(Yx,{up:()=>sz,down:()=>_E});import{sql as Fx}from"kysely";async function sz(_){await Fx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Fx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Fx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function _E(_){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 Hx={};C(Hx,{up:()=>CE,down:()=>KE});import{sql as G}from"kysely";var xE={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"}},uE={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"}},Dx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function rm(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function lm(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,xE],[G`'commerce-discovery_' || organization_id`,uE]])for(let T of["title","description"]){let{from:z,to:E}=rm(m[T],x);await G`
|
|
35
48
|
UPDATE connections
|
|
36
49
|
SET ${G.ref(T)} = ${E}
|
|
37
50
|
WHERE id = ${K}
|
|
@@ -45,7 +58,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
45
58
|
RETURN NULL;
|
|
46
59
|
END;
|
|
47
60
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
48
|
-
`.execute(_);let{from:u,to:N}=
|
|
61
|
+
`.execute(_);let{from:u,to:N}=rm(Dx.label,x);await G`
|
|
49
62
|
WITH agents AS (
|
|
50
63
|
SELECT id, deco_score_try_jsonb(metadata) AS m
|
|
51
64
|
FROM connections
|
|
@@ -60,7 +73,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
60
73
|
(
|
|
61
74
|
SELECT jsonb_agg(
|
|
62
75
|
CASE
|
|
63
|
-
WHEN v ->> 'toolName' = ${
|
|
76
|
+
WHEN v ->> 'toolName' = ${Dx.toolName}
|
|
64
77
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
65
78
|
THEN v || jsonb_build_object('label', ${N}::text)
|
|
66
79
|
ELSE v
|
|
@@ -76,7 +89,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
76
89
|
AND EXISTS (
|
|
77
90
|
SELECT 1
|
|
78
91
|
FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
|
|
79
|
-
WHERE v ->> 'toolName' = ${
|
|
92
|
+
WHERE v ->> 'toolName' = ${Dx.toolName}
|
|
80
93
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
81
94
|
)
|
|
82
95
|
)
|
|
@@ -84,38 +97,38 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
84
97
|
SET metadata = r.m::text
|
|
85
98
|
FROM relabeled r
|
|
86
99
|
WHERE c.id = r.id
|
|
87
|
-
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function
|
|
100
|
+
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function CE(_){await lm(_,"up")}async function KE(_){await lm(_,"down")}var Rx={};C(Rx,{up:()=>mE,down:()=>TE,ACTIONS:()=>Mx});import{sql as T_}from"kysely";var Mx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],NE=Mx.filter((_)=>_!=="finding_resolved");async function mE(_){await em(_,Mx)}async function TE(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await em(_,NE)}async function em(_,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 Bx={};C(Bx,{up:()=>zE,down:()=>EE});import{sql as O_}from"kysely";async function zE(_){await O_`
|
|
88
101
|
ALTER TABLE org_jira_column_automations
|
|
89
102
|
ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
|
|
90
103
|
CONSTRAINT chk_org_jira_column_automations_from_kind
|
|
91
104
|
CHECK (from_kind IN ('any', 'earlier', 'later', 'statuses')),
|
|
92
105
|
ADD COLUMN IF NOT EXISTS from_statuses text[] NOT NULL DEFAULT '{}',
|
|
93
106
|
ADD COLUMN IF NOT EXISTS from_key text NOT NULL DEFAULT 'any'
|
|
94
|
-
`.execute(_),await
|
|
107
|
+
`.execute(_),await O_`
|
|
95
108
|
ALTER TABLE org_jira_column_automations
|
|
96
109
|
DROP CONSTRAINT org_jira_column_automations_pkey,
|
|
97
110
|
ADD PRIMARY KEY (organization_id, jira_status, from_key)
|
|
98
|
-
`.execute(_)}async function
|
|
111
|
+
`.execute(_)}async function EE(_){await O_`
|
|
99
112
|
DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
|
|
100
|
-
`.execute(_),await
|
|
113
|
+
`.execute(_),await O_`
|
|
101
114
|
ALTER TABLE org_jira_column_automations
|
|
102
115
|
DROP CONSTRAINT org_jira_column_automations_pkey,
|
|
103
116
|
ADD PRIMARY KEY (organization_id, jira_status),
|
|
104
117
|
DROP COLUMN from_key,
|
|
105
118
|
DROP COLUMN from_statuses,
|
|
106
119
|
DROP COLUMN from_kind
|
|
107
|
-
`.execute(_)}var
|
|
120
|
+
`.execute(_)}var Gx={};C(Gx,{up:()=>$E,down:()=>UE});import{sql as dm}from"kysely";async function $E(_){await _.schema.createTable("org_project_folders").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("folders","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(dm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("user_sidebar_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("preferences","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(dm`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_sidebar_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_sidebar_preferences_organization_id_idx").on("user_sidebar_preferences").column("organization_id").execute()}async function UE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Ox={};C(Ox,{up:()=>PE,down:()=>JE});async function PE(){}async function JE(){}var fx={};C(fx,{up:()=>XE,down:()=>QE});import{sql as Sx}from"kysely";async function XE(_){await Sx`
|
|
108
121
|
ALTER TABLE task_board_prompts
|
|
109
122
|
ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
|
|
110
|
-
`.execute(_)}async function
|
|
123
|
+
`.execute(_)}async function QE(_){await Sx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Sx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Ix={};C(Ix,{up:()=>ZE,down:()=>WE});import{sql as Ax}from"kysely";async function ZE(_){await Ax`
|
|
111
124
|
DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
|
|
112
|
-
`.execute(_),await
|
|
125
|
+
`.execute(_),await Ax`
|
|
113
126
|
DELETE FROM connection_aggregations
|
|
114
127
|
WHERE parent_connection_id LIKE 'studio-jira\\_%'
|
|
115
|
-
`.execute(_),await
|
|
128
|
+
`.execute(_),await Ax`
|
|
116
129
|
DELETE FROM connections
|
|
117
130
|
WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
|
|
118
|
-
`.execute(_)}async function
|
|
131
|
+
`.execute(_)}async function WE(){}var yx={};C(yx,{up:()=>jE,down:()=>LE});import{sql as bm}from"kysely";async function jE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(bm`audience in ('human', 'internal')`)).execute(),await bm`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function LE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Vx={};C(Vx,{up:()=>YE,down:()=>DE});import{sql as FE}from"kysely";async function YE(_){await FE`
|
|
119
132
|
UPDATE org_fs_entry AS d
|
|
120
133
|
SET deleted_at = now(),
|
|
121
134
|
updated_at = now(),
|
|
@@ -134,7 +147,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
134
147
|
AND c.parent = d.path
|
|
135
148
|
AND c.deleted_at IS NULL
|
|
136
149
|
)
|
|
137
|
-
`.execute(_)}async function
|
|
150
|
+
`.execute(_)}async function DE(){}var kx={};C(kx,{up:()=>ME,down:()=>RE,ACTIONS:()=>wx});import{sql as F}from"kysely";var wx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],HE=wx.filter((_)=>_!=="sprint_changed");async function ME(_){await F`
|
|
138
151
|
CREATE TABLE task_board_sprints (
|
|
139
152
|
id text PRIMARY KEY,
|
|
140
153
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -160,12 +173,12 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
160
173
|
CREATE INDEX idx_task_board_items_sprint
|
|
161
174
|
ON task_board_items (organization_id, sprint_id)
|
|
162
175
|
WHERE sprint_id IS NOT NULL
|
|
163
|
-
`.execute(_),await
|
|
176
|
+
`.execute(_),await sm(_,wx)}async function RE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await sm(_,HE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function sm(_,x){await F`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await F`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${F.join(x.map((u)=>F.lit(u)))}))`.execute(_)}var nx={};C(nx,{up:()=>GE,planOrgSiteProjectLinks:()=>uT,down:()=>OE,applyOrgSiteProjectLinks:()=>CT});import{sql as J}from"kysely";var BE="migration-237",_T=1000;async function xT(_){return(await J`
|
|
164
177
|
SELECT conname FROM pg_constraint
|
|
165
178
|
WHERE conrelid = 'org_sites'::regclass
|
|
166
179
|
AND confrelid = 'organization'::regclass
|
|
167
180
|
AND contype = 'f'
|
|
168
|
-
`.execute(_)).rows[0]?.conname??null}async function
|
|
181
|
+
`.execute(_)).rows[0]?.conname??null}async function uT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
|
|
169
182
|
SELECT slug, organization_id FROM org_sites
|
|
170
183
|
WHERE organization_id IS NOT NULL
|
|
171
184
|
ORDER BY organization_id, slug
|
|
@@ -176,17 +189,17 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
176
189
|
SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
|
|
177
190
|
)
|
|
178
191
|
ORDER BY organization_id, id
|
|
179
|
-
`.execute(_),K=new Map;for(let m of N.rows){if(!m.metadata)continue;let T;try{let $=JSON.parse(m.metadata);if($&&typeof $==="object")T=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof T!=="string"||!T)continue;let z=`${m.organization_id}\x00${T}`,E=K.get(z)??[];E.push(m.id),K.set(z,E)}for(let{slug:m,organization_id:T}of u.rows){let z=K.get(`${T}\x00${m}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:m,projectIds:z});else x.links.push({slug:m,projectId:z[0]})}return x}async function
|
|
192
|
+
`.execute(_),K=new Map;for(let m of N.rows){if(!m.metadata)continue;let T;try{let $=JSON.parse(m.metadata);if($&&typeof $==="object")T=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof T!=="string"||!T)continue;let z=`${m.organization_id}\x00${T}`,E=K.get(z)??[];E.push(m.id),K.set(z,E)}for(let{slug:m,organization_id:T}of u.rows){let z=K.get(`${T}\x00${m}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:m,projectIds:z});else x.links.push({slug:m,projectId:z[0]})}return x}async function CT(_,x){let u=0;for(let N=0;N<x.length;N+=_T){let K=J.join(x.slice(N,N+_T).map((T)=>J`(${T.slug}::text, ${T.projectId}::text)`)),m=await J`
|
|
180
193
|
UPDATE org_sites o
|
|
181
194
|
SET project_id = v.pid,
|
|
182
195
|
linked_at = now(),
|
|
183
|
-
updated_by = ${
|
|
196
|
+
updated_by = ${BE},
|
|
184
197
|
updated_at = now()
|
|
185
198
|
FROM (VALUES ${K}) AS v(slug, pid)
|
|
186
199
|
WHERE o.slug = v.slug
|
|
187
200
|
AND o.project_id IS NULL
|
|
188
201
|
AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
|
|
189
|
-
`.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function
|
|
202
|
+
`.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function GE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await uT(_);await J`
|
|
190
203
|
ALTER TABLE org_sites
|
|
191
204
|
ADD COLUMN project_id text NULL
|
|
192
205
|
REFERENCES connections(id) ON DELETE SET NULL,
|
|
@@ -194,7 +207,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
194
207
|
`.execute(_),await J`
|
|
195
208
|
CREATE UNIQUE INDEX org_sites_project_id_uq
|
|
196
209
|
ON org_sites (project_id) WHERE project_id IS NOT NULL
|
|
197
|
-
`.execute(_);let u=await
|
|
210
|
+
`.execute(_);let u=await xT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
|
|
198
211
|
ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
|
|
199
212
|
`.execute(_),await J`
|
|
200
213
|
ALTER TABLE org_sites
|
|
@@ -203,12 +216,12 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
203
216
|
ON DELETE SET NULL NOT VALID
|
|
204
217
|
`.execute(_),await J`
|
|
205
218
|
ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
|
|
206
|
-
`.execute(_);let N=await
|
|
219
|
+
`.execute(_);let N=await CT(_,x.links),K=await J`
|
|
207
220
|
UPDATE org_sites SET linked_at = created_at
|
|
208
221
|
WHERE organization_id IS NOT NULL AND linked_at IS NULL
|
|
209
|
-
`.execute(_);await J`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:m,projectIds:T}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${m}": ${T.join(", ")}`)}async function
|
|
222
|
+
`.execute(_);await J`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:m,projectIds:T}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${m}": ${T.join(", ")}`)}async function OE(_){if((await J`
|
|
210
223
|
SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
|
|
211
|
-
`.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await
|
|
224
|
+
`.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await xT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
|
|
212
225
|
ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
|
|
213
226
|
`.execute(_),await J`
|
|
214
227
|
ALTER TABLE org_sites
|
|
@@ -217,7 +230,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
217
230
|
ON DELETE CASCADE
|
|
218
231
|
`.execute(_),await J`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await J`
|
|
219
232
|
ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
|
|
220
|
-
`.execute(_)}var
|
|
233
|
+
`.execute(_)}var vx={};C(vx,{up:()=>SE,moveRules:()=>Y,down:()=>fE});import{sql as c}from"kysely";async function SE(_){await Y(_,"task_board_prompts","tbp_","in_progress","in_review"),await Y(_,"task_board_prompts","tbp_","todo","in_progress"),await Y(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await Y(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
|
|
221
234
|
DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
|
|
222
235
|
`.execute(_),await Y(_,"task_board_column_automations","tbca_","todo","in_progress"),await Y(_,"task_board_column_automations","tbca_","approved","ready_for_deployment"),await Y(_,"task_board_column_automations","tbca_","merged","post_deploy_validation"),await c`
|
|
223
236
|
WITH moved AS (
|
|
@@ -245,7 +258,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
245
258
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
246
259
|
now()
|
|
247
260
|
FROM moved
|
|
248
|
-
`.execute(_)}async function
|
|
261
|
+
`.execute(_)}async function fE(){}async function Y(_,x,u,N,K){await c`
|
|
249
262
|
DELETE FROM ${c.table(x)} AS src
|
|
250
263
|
WHERE src.column_key = ${N}
|
|
251
264
|
AND EXISTS (
|
|
@@ -259,7 +272,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
259
272
|
id = ${u} || organization_id || '_' || ${K},
|
|
260
273
|
updated_at = now()
|
|
261
274
|
WHERE column_key = ${N}
|
|
262
|
-
`.execute(_)}var
|
|
275
|
+
`.execute(_)}var px={};C(px,{up:()=>IE,down:()=>yE});import{sql as AE}from"kysely";async function IE(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await Y(_,x,u,"todo","in_progress"),await Y(_,x,u,"approved","ready_for_deployment"),await Y(_,x,u,"merged","post_deploy_validation")}await AE`
|
|
263
276
|
WITH moved AS (
|
|
264
277
|
UPDATE task_board_items AS i
|
|
265
278
|
SET status = CASE prev.status
|
|
@@ -283,7 +296,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
283
296
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
284
297
|
now()
|
|
285
298
|
FROM moved
|
|
286
|
-
`.execute(_)}async function
|
|
299
|
+
`.execute(_)}async function yE(){}var gx={};C(gx,{up:()=>wE,down:()=>kE});import{sql as VE}from"kysely";async function wE(_){await VE`
|
|
287
300
|
WITH restored AS (
|
|
288
301
|
UPDATE task_board_items AS i
|
|
289
302
|
SET status = 'todo', updated_at = now()
|
|
@@ -310,45 +323,45 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
310
323
|
jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
|
|
311
324
|
now()
|
|
312
325
|
FROM restored
|
|
313
|
-
`.execute(_)}async function
|
|
326
|
+
`.execute(_)}async function kE(){}var qx={};C(qx,{up:()=>nE,down:()=>vE});import{sql as L}from"kysely";async function nE(_){await L`
|
|
314
327
|
ALTER TABLE automation_triggers
|
|
315
328
|
ADD COLUMN column_key text,
|
|
316
329
|
ADD COLUMN from_kind text,
|
|
317
330
|
ADD COLUMN from_statuses text[] NOT NULL DEFAULT '{}'
|
|
318
|
-
`.execute(_),await
|
|
331
|
+
`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
|
|
319
332
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
320
333
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
|
|
321
|
-
`.execute(_),await
|
|
334
|
+
`.execute(_),await L`
|
|
322
335
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_board_column_transition_trigger
|
|
323
336
|
CHECK (
|
|
324
337
|
type != 'board_column_transition'
|
|
325
338
|
OR (column_key IS NOT NULL
|
|
326
339
|
AND from_kind IN ('any', 'earlier', 'later', 'statuses'))
|
|
327
340
|
)
|
|
328
|
-
`.execute(_),await
|
|
341
|
+
`.execute(_),await L`
|
|
329
342
|
CREATE TABLE automation_trigger_fires (
|
|
330
343
|
trigger_id text NOT NULL REFERENCES automation_triggers(id) ON DELETE CASCADE,
|
|
331
344
|
event_key text NOT NULL,
|
|
332
345
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
333
346
|
PRIMARY KEY (trigger_id, event_key)
|
|
334
347
|
)
|
|
335
|
-
`.execute(_),await
|
|
348
|
+
`.execute(_),await L`
|
|
336
349
|
CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
|
|
337
350
|
ON task_board_activity (occurred_at)
|
|
338
351
|
WHERE action = 'status_changed'
|
|
339
|
-
`.execute(_)}async function
|
|
352
|
+
`.execute(_)}async function vE(_){await L`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await L`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await L`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
|
|
340
353
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
341
354
|
CHECK (type IN ('cron', 'event', 'webhook'))
|
|
342
|
-
`.execute(_),await
|
|
355
|
+
`.execute(_),await L`
|
|
343
356
|
ALTER TABLE automation_triggers
|
|
344
357
|
DROP COLUMN IF EXISTS column_key,
|
|
345
358
|
DROP COLUMN IF EXISTS from_kind,
|
|
346
359
|
DROP COLUMN IF EXISTS from_statuses
|
|
347
|
-
`.execute(_)}var
|
|
360
|
+
`.execute(_)}var ix={};C(ix,{up:()=>iE,down:()=>cE,backfillUrlSlugs:()=>S_});import{sql as D}from"kysely";var NT=64,pE=new Set(["new","edit","settings","apps","projects","connections"]);function gE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function qE(_,x){let u=gE(_??"").slice(0,NT).replace(/-+$/,"");return u.length>=2&&!pE.has(u)?u:x}function KT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,NT-u.length).replace(/-+$/,"")}${u}`}async function S_(_){let{rows:x}=await D`
|
|
348
361
|
SELECT id, organization_id, title, connection_type, url_slug
|
|
349
362
|
FROM connections
|
|
350
363
|
ORDER BY organization_id, created_at, id
|
|
351
|
-
`.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(T)=>{let z=N.get(T);if(!z)N.set(T,z=new Set);return z};for(let T of x)if(T.url_slug)K(T.organization_id).add(T.url_slug);for(let T of u)K(T.organization_id).add(T.slug);let m=[];for(let T of x){if(T.url_slug)continue;let z=K(T.organization_id),E=
|
|
364
|
+
`.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(T)=>{let z=N.get(T);if(!z)N.set(T,z=new Set);return z};for(let T of x)if(T.url_slug)K(T.organization_id).add(T.url_slug);for(let T of u)K(T.organization_id).add(T.slug);let m=[];for(let T of x){if(T.url_slug)continue;let z=K(T.organization_id),E=qE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(KT(E,$)))$++;let P=KT(E,$);z.add(P),m.push({id:T.id,slug:P})}for(let T=0;T<m.length;T+=1000){let z=m.slice(T,T+1000);await D`
|
|
352
365
|
UPDATE connections c
|
|
353
366
|
SET url_slug = v.slug
|
|
354
367
|
FROM unnest(
|
|
@@ -356,7 +369,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
356
369
|
${D.val(z.map((E)=>E.slug))}::text[]
|
|
357
370
|
) AS v(id, slug)
|
|
358
371
|
WHERE c.id = v.id AND c.url_slug IS NULL
|
|
359
|
-
`.execute(_)}}async function
|
|
372
|
+
`.execute(_)}}async function iE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
|
|
360
373
|
CREATE TABLE connection_slug_aliases (
|
|
361
374
|
organization_id text NOT NULL,
|
|
362
375
|
slug text NOT NULL,
|
|
@@ -367,21 +380,21 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
367
380
|
`.execute(_),await D`
|
|
368
381
|
CREATE INDEX idx_connection_slug_aliases_connection
|
|
369
382
|
ON connection_slug_aliases (connection_id)
|
|
370
|
-
`.execute(_),await
|
|
383
|
+
`.execute(_),await S_(_),await D`
|
|
371
384
|
CREATE UNIQUE INDEX idx_connections_org_url_slug
|
|
372
385
|
ON connections (organization_id, url_slug)
|
|
373
|
-
`.execute(_)}async function
|
|
386
|
+
`.execute(_)}async function cE(_){await D`DROP TABLE connection_slug_aliases`.execute(_),await D`DROP INDEX idx_connections_org_url_slug`.execute(_),await D`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var cx={};C(cx,{up:()=>hE,down:()=>tE});async function hE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function tE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var hx={};C(hx,{up:()=>oE,down:()=>aE});async function oE(_){await S_(_)}async function aE(){}var tx={};C(tx,{up:()=>rE,down:()=>lE});import{sql as f_}from"kysely";async function rE(_){await f_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await f_`
|
|
374
387
|
CREATE UNIQUE INDEX idx_automations_org_system_key
|
|
375
388
|
ON automations (organization_id, system_key)
|
|
376
389
|
WHERE system_key IS NOT NULL
|
|
377
|
-
`.execute(_)}async function
|
|
390
|
+
`.execute(_)}async function lE(_){await f_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await f_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var ox={};C(ox,{up:()=>eE,down:()=>dE});import{sql as z_}from"kysely";async function eE(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
|
|
378
391
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
379
392
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
|
|
380
393
|
'board_pr_ready'))
|
|
381
|
-
`.execute(_)}async function
|
|
394
|
+
`.execute(_)}async function dE(_){await z_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
|
|
382
395
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
383
396
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
|
|
384
|
-
`.execute(_)}var
|
|
397
|
+
`.execute(_)}var ax={};C(ax,{up:()=>bE,down:()=>x0});import{sql as H}from"kysely";async function bE(_){let{rows:x}=await H`
|
|
385
398
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
386
399
|
WHERE conname = 'chk_trigger_type'
|
|
387
400
|
AND conrelid = 'automation_triggers'::regclass
|
|
@@ -408,8 +421,8 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
408
421
|
INSERT INTO automations
|
|
409
422
|
(id, organization_id, name, active, created_by, messages, models,
|
|
410
423
|
virtual_mcp_id)
|
|
411
|
-
VALUES (${T}, ${K.organization_id}, ${
|
|
412
|
-
${K.created_by}, ${JSON.stringify(
|
|
424
|
+
VALUES (${T}, ${K.organization_id}, ${sE(K)}, true,
|
|
425
|
+
${K.created_by}, ${JSON.stringify(_0(K.prompt))},
|
|
413
426
|
'{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
|
|
414
427
|
ON CONFLICT (id) DO NOTHING
|
|
415
428
|
`.execute(_),await H`
|
|
@@ -418,11 +431,11 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
418
431
|
VALUES (${`trg_${T}`}, ${T}, 'jira_transition', ${K.jira_status},
|
|
419
432
|
${K.from_kind}, ${K.from_statuses})
|
|
420
433
|
ON CONFLICT (id) DO NOTHING
|
|
421
|
-
`.execute(_)}}function
|
|
422
|
-
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function
|
|
434
|
+
`.execute(_)}}function sE(_){let x=_.from_kind==="earlier"?" (from an earlier column)":_.from_kind==="later"?" (from a later column)":_.from_kind==="statuses"?` (from ${_.from_statuses.join(", ")})`:"";return`Jira: ${_.jira_status}${x}`}function _0(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
|
|
435
|
+
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function x0(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
|
|
423
436
|
ALTER TABLE automation_triggers
|
|
424
437
|
DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
|
|
425
|
-
`.execute(_)}var
|
|
438
|
+
`.execute(_)}var rx={};C(rx,{up:()=>u0,down:()=>C0});import{sql as E_}from"kysely";async function u0(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function C0(_){await E_`
|
|
426
439
|
CREATE TABLE IF NOT EXISTS task_board_column_automations (
|
|
427
440
|
id text PRIMARY KEY,
|
|
428
441
|
organization_id text NOT NULL,
|
|
@@ -449,30 +462,30 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
449
462
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
450
463
|
PRIMARY KEY (organization_id, jira_status, from_key)
|
|
451
464
|
)
|
|
452
|
-
`.execute(_)}var
|
|
465
|
+
`.execute(_)}var lx={};C(lx,{up:()=>K0,down:()=>N0});import{sql as A_}from"kysely";async function K0(_){await A_`
|
|
453
466
|
ALTER TABLE task_board_items
|
|
454
467
|
ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
|
|
455
468
|
REFERENCES connections(id) ON DELETE SET NULL
|
|
456
|
-
`.execute(_),await
|
|
469
|
+
`.execute(_),await A_`
|
|
457
470
|
CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
|
|
458
471
|
ON task_board_items (virtual_mcp_id)
|
|
459
472
|
WHERE virtual_mcp_id IS NOT NULL
|
|
460
|
-
`.execute(_)}async function
|
|
473
|
+
`.execute(_)}async function N0(_){await A_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await A_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var ex={};C(ex,{up:()=>m0,down:()=>T0});async function m0(_){await _.schema.createTable("github_copilot_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function T0(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var dx={};C(dx,{up:()=>z0,down:()=>E0});async function z0(_){await _.schema.createTable("org_shared_plans").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("created_at","timestamptz",(x)=>x.notNull()).addPrimaryKeyConstraint("org_shared_plans_pkey",["organization_id","provider_id","user_id"]).execute()}async function E0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var bx={};C(bx,{up:()=>$0,down:()=>U0});import{sql as r}from"kysely";var I_=["linked_chat_run"];async function mT(_){let{rows:x}=await r`
|
|
461
474
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
462
475
|
WHERE conname = 'chk_trigger_type'
|
|
463
476
|
AND conrelid = 'automation_triggers'::regclass
|
|
464
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
477
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function TT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
|
|
465
478
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
466
479
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
467
|
-
`.execute(_)}async function
|
|
480
|
+
`.execute(_)}async function $0(_){let x=await mT(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await TT(_,x)}async function U0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(I_)})`.execute(_);let x=await mT(_);for(let u of I_)x.delete(u);await TT(_,x)}var sx={};C(sx,{up:()=>P0,down:()=>J0});import{sql as l}from"kysely";var y_=["board_pr_merged","chat_pr_opened"];async function zT(_){let{rows:x}=await l`
|
|
468
481
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
469
482
|
WHERE conname = 'chk_trigger_type'
|
|
470
483
|
AND conrelid = 'automation_triggers'::regclass
|
|
471
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
484
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function ET(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
|
|
472
485
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
473
486
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
474
|
-
`.execute(_)}async function
|
|
475
|
-
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function
|
|
487
|
+
`.execute(_)}async function P0(_){let x=await zT(_);if(y_.every((u)=>x.has(u)))return;for(let u of y_)x.add(u);await ET(_,x)}async function J0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(y_)})`.execute(_);let x=await zT(_);for(let u of y_)x.delete(u);await ET(_,x)}var _u={};C(_u,{up:()=>Q0,down:()=>Z0});import{sql as X0}from"kysely";async function Q0(_){await X0`ALTER TABLE organization_settings
|
|
488
|
+
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function Z0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var xu={};C(xu,{up:()=>W0,down:()=>j0});import{sql as $T}from"kysely";async function W0(_){await $T`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function j0(_){await $T`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var uu={};C(uu,{up:()=>L0,down:()=>F0});import{sql as O}from"kysely";async function L0(_){await O`
|
|
476
489
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
477
490
|
RETURNS jsonb AS $fn$
|
|
478
491
|
BEGIN
|
|
@@ -546,7 +559,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
546
559
|
|| '/' ||
|
|
547
560
|
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
|
|
548
561
|
) = lower(p.path)
|
|
549
|
-
`.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function
|
|
562
|
+
`.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function F0(_){await O`
|
|
550
563
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
551
564
|
RETURNS jsonb AS $fn$
|
|
552
565
|
BEGIN
|
|
@@ -573,17 +586,17 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
573
586
|
)::text
|
|
574
587
|
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
575
588
|
AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
|
|
576
|
-
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var
|
|
589
|
+
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var Ku={};C(Ku,{up:()=>Y0,down:()=>D0});import{sql as Cu}from"kysely";async function Y0(_){await Cu`ALTER TABLE git_provider_accounts
|
|
577
590
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
578
591
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
579
592
|
CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
|
|
580
593
|
ADD CONSTRAINT git_provider_accounts_cli_check
|
|
581
594
|
CHECK (auth_kind <> 'github_cli' OR
|
|
582
|
-
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function
|
|
595
|
+
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function D0(_){await Cu`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await Cu`ALTER TABLE git_provider_accounts
|
|
583
596
|
DROP CONSTRAINT git_provider_accounts_cli_check,
|
|
584
597
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
585
598
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
586
|
-
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var
|
|
599
|
+
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var Nu={};C(Nu,{up:()=>H0,down:()=>M0});import{sql as UT}from"kysely";async function H0(_){await UT`
|
|
587
600
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
588
601
|
SELECT
|
|
589
602
|
'org_user_fs',
|
|
@@ -597,9 +610,9 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
597
610
|
END,
|
|
598
611
|
now()
|
|
599
612
|
ON CONFLICT (id) DO NOTHING
|
|
600
|
-
`.execute(_)}async function
|
|
613
|
+
`.execute(_)}async function M0(_){await UT`
|
|
601
614
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
602
|
-
`.execute(_)}var
|
|
615
|
+
`.execute(_)}var mu={};C(mu,{up:()=>R0,down:()=>B0});async function R0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function B0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Tu={};C(Tu,{up:()=>G0,down:()=>O0});async function G0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function O0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var zu={};C(zu,{up:()=>f0,down:()=>A0});import{sql as $_}from"kysely";var S0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function PT(_,x){for(let{table:u,column:N}of S0){let K=`${u}_${N}_check`,m=x.map((T)=>`'${T}'`).join(", ");await $_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await $_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${m}))`).execute(_)}}async function f0(_){await PT(_,["github","gitlab","bitbucket"])}async function A0(_){await $_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await PT(_,["github","gitlab"])}var Eu={};C(Eu,{up:()=>I0,down:()=>y0});import{sql as V_}from"kysely";async function I0(_){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(V_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(V_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(V_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(V_`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 y0(_){await _.schema.dropTable("experiments").execute()}var $u={};C($u,{up:()=>w0,down:()=>k0});import{sql as V0}from"kysely";async function w0(_){await V0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function k0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0,ACTIONS:()=>Uu});import{sql as U_}from"kysely";var Uu=["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"],n0=Uu.filter((_)=>_!=="duplicate_reported");async function v0(_){await JT(_,Uu)}async function p0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await JT(_,n0)}async function JT(_,x){await U_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await U_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${U_.join(x.map((u)=>U_.lit(u)))}))`.execute(_)}var Ju={};C(Ju,{up:()=>g0,down:()=>q0});async function g0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function q0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Xu={};C(Xu,{up:()=>i0,down:()=>c0});async function i0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function c0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Qu={};C(Qu,{up:()=>t0,down:()=>o0});import{sql as h0}from"kysely";async function t0(_){await h0`
|
|
603
616
|
CREATE TABLE github_connect_flows (
|
|
604
617
|
id text PRIMARY KEY,
|
|
605
618
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -609,7 +622,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
609
622
|
);
|
|
610
623
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
611
624
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
612
|
-
`.execute(_)}async function
|
|
625
|
+
`.execute(_)}async function o0(_){await _.schema.dropTable("github_connect_flows").execute()}var Zu={};C(Zu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function r0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Wu={};C(Wu,{up:()=>l0,down:()=>e0});import{sql as w_}from"kysely";async function l0(_){await w_`
|
|
613
626
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
614
627
|
DECLARE
|
|
615
628
|
metadata_json jsonb;
|
|
@@ -660,24 +673,24 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
660
673
|
AFTER INSERT OR UPDATE OF metadata ON connections
|
|
661
674
|
FOR EACH ROW EXECUTE FUNCTION adopt_legacy_repository();
|
|
662
675
|
UPDATE connections SET metadata = metadata WHERE slug = 'mcp-github';
|
|
663
|
-
`.execute(_),await
|
|
676
|
+
`.execute(_),await w_`
|
|
664
677
|
UPDATE org_repo_sync s SET repository_id = r.id
|
|
665
678
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
666
679
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
667
680
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
668
|
-
`.execute(_)}async function o0(_){await V_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await V_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Zu={};C(Zu,{up:()=>a0,down:()=>r0});import{sql as V}from"kysely";async function a0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function r0(_){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 Wu={};C(Wu,{up:()=>l0,down:()=>e0});import{sql as PT}from"kysely";async function l0(_){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(PT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(PT`CURRENT_TIMESTAMP`)).execute()}async function e0(_){await _.schema.dropTable("organization_settings").execute()}var Lu={};C(Lu,{up:()=>d0,down:()=>s0});async function d0(_){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 s0(_){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 ju={};C(ju,{up:()=>b0,down:()=>_$});async function b0(_){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 _$(_){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 Fu={};C(Fu,{up:()=>x$,down:()=>u$});async function x$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function u$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Yu={};C(Yu,{up:()=>K$,down:()=>N$});import{sql as C$}from"kysely";async function K$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",C$`text`).execute()}async function N$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Du={};C(Du,{up:()=>m$,down:()=>T$});async function m$(_){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 T$(_){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 Hu={};C(Hu,{up:()=>z$,down:()=>E$});import{sql as P_}from"kysely";async function z$(_){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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`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 E$(_){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 Mu={};C(Mu,{up:()=>U$,down:()=>P$});import{sql as $$}from"kysely";async function U$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function P$(_){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($$`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 Ru={};C(Ru,{up:()=>J$,down:()=>X$});import{sql as w_}from"kysely";async function J$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await w_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function X$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var Bu={};C(Bu,{up:()=>Q$,down:()=>Z$});async function Q$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function Z$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Gu={};C(Gu,{up:()=>W$,down:()=>L$});import{sql as k_}from"kysely";async function W$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await k_`
|
|
681
|
+
`.execute(_)}async function e0(_){await w_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await w_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var ju={};C(ju,{up:()=>d0,down:()=>b0});import{sql as V}from"kysely";async function d0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function b0(_){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 Lu={};C(Lu,{up:()=>s0,down:()=>_$});import{sql as XT}from"kysely";async function s0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(XT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(XT`CURRENT_TIMESTAMP`)).execute()}async function _$(_){await _.schema.dropTable("organization_settings").execute()}var Fu={};C(Fu,{up:()=>x$,down:()=>u$});async function x$(_){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 u$(_){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 Yu={};C(Yu,{up:()=>C$,down:()=>K$});async function C$(_){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 K$(_){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 Du={};C(Du,{up:()=>N$,down:()=>m$});async function N$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function m$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Hu={};C(Hu,{up:()=>z$,down:()=>E$});import{sql as T$}from"kysely";async function z$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",T$`text`).execute()}async function E$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Mu={};C(Mu,{up:()=>$$,down:()=>U$});async function $$(_){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 U$(_){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 Ru={};C(Ru,{up:()=>P$,down:()=>J$});import{sql as P_}from"kysely";async function P$(_){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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`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 J$(_){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 Bu={};C(Bu,{up:()=>Q$,down:()=>Z$});import{sql as X$}from"kysely";async function Q$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function Z$(_){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(X$`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 Gu={};C(Gu,{up:()=>W$,down:()=>j$});import{sql as k_}from"kysely";async function W$(_){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(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("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(k_`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 k_`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 j$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_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 Ou={};C(Ou,{up:()=>L$,down:()=>F$});async function L$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function F$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Su={};C(Su,{up:()=>Y$,down:()=>D$});import{sql as n_}from"kysely";async function Y$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await n_`
|
|
669
682
|
UPDATE gateways
|
|
670
683
|
SET tool_selection_mode = CASE
|
|
671
684
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
672
685
|
ELSE 'inclusion'
|
|
673
686
|
END
|
|
674
|
-
`.execute(_),await
|
|
687
|
+
`.execute(_),await n_`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 D$(_){await n_`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 n_`
|
|
675
688
|
UPDATE gateways
|
|
676
689
|
SET tool_selection_strategy = CASE
|
|
677
690
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
678
691
|
ELSE NULL
|
|
679
692
|
END
|
|
680
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var
|
|
693
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var fu={};C(fu,{up:()=>H$,down:()=>M$});async function H$(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function M$(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var Au={};C(Au,{up:()=>R$,down:()=>B$});async function R$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function B$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Iu={};C(Iu,{up:()=>G$,down:()=>O$});async function G$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function O$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var yu={};C(yu,{up:()=>S$,down:()=>f$});async function S$(_){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 f$(_){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 Vu={};C(Vu,{up:()=>I$,down:()=>y$});import{sql as A$}from"kysely";async function I$(_){await A$`
|
|
681
694
|
DELETE FROM downstream_tokens
|
|
682
695
|
WHERE id NOT IN (
|
|
683
696
|
SELECT id FROM (
|
|
@@ -687,7 +700,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
687
700
|
) ranked
|
|
688
701
|
WHERE rn = 1
|
|
689
702
|
)
|
|
690
|
-
`.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
|
|
703
|
+
`.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 y$(_){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 wu={};C(wu,{up:()=>V$,down:()=>w$});async function V$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function w$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var ku={};C(ku,{up:()=>k$,down:()=>n$});import{sql as QT}from"kysely";async function k$(_){await QT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function n$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await QT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var nu={};C(nu,{up:()=>v$,down:()=>p$});async function v$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function p$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var vu={};C(vu,{up:()=>g$,down:()=>q$});import{sql as v_}from"kysely";async function g$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function q$(_){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 pu={};C(pu,{up:()=>i$,down:()=>c$});async function i$(_){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 c$(_){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 gu={};C(gu,{up:()=>h$,down:()=>t$});async function h$(_){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 t$(_){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 qu={};C(qu,{up:()=>o$,down:()=>a$});import{sql as M}from"kysely";async function o$(_){await M`
|
|
691
704
|
INSERT INTO connections (
|
|
692
705
|
id,
|
|
693
706
|
organization_id,
|
|
@@ -734,7 +747,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
734
747
|
created_at,
|
|
735
748
|
updated_at
|
|
736
749
|
FROM virtual_mcps
|
|
737
|
-
`.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function
|
|
750
|
+
`.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function a$(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await M`
|
|
738
751
|
INSERT INTO virtual_mcps (
|
|
739
752
|
id, organization_id, title, description, icon, status,
|
|
740
753
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -744,7 +757,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
744
757
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
745
758
|
FROM connections
|
|
746
759
|
WHERE connection_type = 'VIRTUAL'
|
|
747
|
-
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var
|
|
760
|
+
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var iu={};C(iu,{up:()=>r$,down:()=>l$});async function r$(_){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 l$(_){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 cu={};C(cu,{up:()=>e$,down:()=>d$});import{sql as w}from"kysely";async function e$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
|
|
748
761
|
INSERT INTO connection_aggregations_new (
|
|
749
762
|
id, parent_connection_id, child_connection_id,
|
|
750
763
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -753,7 +766,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
753
766
|
id, parent_connection_id, child_connection_id,
|
|
754
767
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
755
768
|
FROM connection_aggregations
|
|
756
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function
|
|
769
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function d$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
|
|
757
770
|
INSERT INTO connection_aggregations_new (
|
|
758
771
|
id, parent_connection_id, child_connection_id,
|
|
759
772
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -762,7 +775,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
762
775
|
id, parent_connection_id, child_connection_id,
|
|
763
776
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
764
777
|
FROM connection_aggregations
|
|
765
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var
|
|
778
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var tu={};C(tu,{up:()=>b$,down:()=>s$});import{sql as hu}from"kysely";async function b$(_){await hu`
|
|
766
779
|
UPDATE connections
|
|
767
780
|
SET connection_url = connection_url || '/management',
|
|
768
781
|
tools = NULL,
|
|
@@ -770,42 +783,42 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
770
783
|
WHERE connection_url LIKE '%/mcp'
|
|
771
784
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
772
785
|
AND app_name = '@deco/management-mcp'
|
|
773
|
-
`.execute(_),await
|
|
786
|
+
`.execute(_),await hu`
|
|
774
787
|
UPDATE connections
|
|
775
788
|
SET tools = NULL,
|
|
776
789
|
updated_at = CURRENT_TIMESTAMP
|
|
777
790
|
WHERE app_name = '@deco/management-mcp'
|
|
778
791
|
AND tools IS NOT NULL
|
|
779
|
-
`.execute(_)}async function
|
|
792
|
+
`.execute(_)}async function s$(_){await hu`
|
|
780
793
|
UPDATE connections
|
|
781
794
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
782
795
|
updated_at = CURRENT_TIMESTAMP
|
|
783
796
|
WHERE connection_url LIKE '%/mcp/management'
|
|
784
797
|
AND app_name = '@deco/management-mcp'
|
|
785
|
-
`.execute(_)}var
|
|
798
|
+
`.execute(_)}var au={};C(au,{up:()=>_U,down:()=>xU});import{sql as ou}from"kysely";async function _U(_){await ou`
|
|
786
799
|
UPDATE connections
|
|
787
800
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
788
801
|
tools = NULL,
|
|
789
802
|
updated_at = CURRENT_TIMESTAMP
|
|
790
803
|
WHERE connection_url LIKE '%/mcp/management'
|
|
791
804
|
AND app_name = '@deco/management-mcp'
|
|
792
|
-
`.execute(_),await
|
|
805
|
+
`.execute(_),await ou`
|
|
793
806
|
UPDATE connections
|
|
794
807
|
SET tools = NULL,
|
|
795
808
|
updated_at = CURRENT_TIMESTAMP
|
|
796
809
|
WHERE connection_url LIKE '%/mcp/self'
|
|
797
810
|
AND app_name = '@deco/management-mcp'
|
|
798
811
|
AND tools IS NOT NULL
|
|
799
|
-
`.execute(_)}async function
|
|
812
|
+
`.execute(_)}async function xU(_){await ou`
|
|
800
813
|
UPDATE connections
|
|
801
814
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
802
815
|
updated_at = CURRENT_TIMESTAMP
|
|
803
816
|
WHERE connection_url LIKE '%/mcp/self'
|
|
804
817
|
AND app_name = '@deco/management-mcp'
|
|
805
|
-
`.execute(_)}var
|
|
818
|
+
`.execute(_)}var ru={};C(ru,{up:()=>uU,down:()=>CU});async function uU(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function CU(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var lu={};C(lu,{up:()=>KU,down:()=>NU});import{sql as ZT}from"kysely";async function KU(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(ZT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(ZT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function NU(_){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 eu={};C(eu,{up:()=>mU,down:()=>TU});import{sql as J_}from"kysely";async function mU(_){await J_`
|
|
806
819
|
ALTER TABLE connection_aggregations
|
|
807
820
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
808
|
-
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function
|
|
821
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function TU(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await J_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await J_`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).execute(),await J_`
|
|
809
822
|
INSERT INTO connection_aggregations_new (
|
|
810
823
|
id, parent_connection_id, child_connection_id,
|
|
811
824
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -814,42 +827,42 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
814
827
|
id, parent_connection_id, child_connection_id,
|
|
815
828
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
816
829
|
FROM connection_aggregations
|
|
817
|
-
`.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
|
|
830
|
+
`.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 du={};C(du,{up:()=>PU,down:()=>JU});import{webcrypto as jT}from"crypto";var WT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var zU=128,h,e;function EU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*zU),jT.getRandomValues(h),e=0;else if(e+_>h.length)jT.getRandomValues(h),e=0;e+=_}function d(_=21){EU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=WT[h[u]&63];return x}var $U="org-admin",UU="Organization Admin";async function PU(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),K=`proj_${d()}`,m=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:$U,name:UU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function JU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var bu={};C(bu,{up:()=>XU,down:()=>QU});async function XU(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function QU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var su={};C(su,{up:()=>ZU,down:()=>WU});async function ZU(_){}async function WU(_){}var _C={};C(_C,{up:()=>jU,down:()=>LU});async function jU(_){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 LU(_){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 xC={};C(xC,{up:()=>FU,down:()=>YU});import{sql as LT}from"kysely";async function FU(_){await LT`
|
|
818
831
|
UPDATE connections
|
|
819
832
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
820
833
|
tools = NULL,
|
|
821
834
|
updated_at = CURRENT_TIMESTAMP
|
|
822
835
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
823
836
|
AND app_name = 'deco-registry'
|
|
824
|
-
`.execute(_)}async function
|
|
837
|
+
`.execute(_)}async function YU(_){await LT`
|
|
825
838
|
UPDATE connections
|
|
826
839
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
827
840
|
updated_at = CURRENT_TIMESTAMP
|
|
828
841
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
829
842
|
AND app_name = 'deco-registry'
|
|
830
|
-
`.execute(_)}var
|
|
843
|
+
`.execute(_)}var uC={};C(uC,{up:()=>HU,down:()=>MU});import{sql as DU}from"kysely";async function HU(_){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(DU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await _.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function MU(_){await _.schema.dropTable("ai_provider_keys").execute()}var CC={};C(CC,{up:()=>BU,down:()=>GU});import{sql as RU}from"kysely";async function BU(_){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(RU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function GU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var KC={};C(KC,{up:()=>OU,down:()=>SU});import{sql as p}from"kysely";async function OU(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function SU(_){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 NC={};C(NC,{up:()=>fU,down:()=>AU});async function fU(_){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 AU(_){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 mC={};C(mC,{up:()=>IU,down:()=>yU});async function IU(_){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 yU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var TC={};C(TC,{up:()=>VU,down:()=>wU});import{sql as FT}from"kysely";async function VU(_){await FT`
|
|
831
844
|
UPDATE connections
|
|
832
845
|
SET title = 'CMS MCP',
|
|
833
846
|
tools = NULL,
|
|
834
847
|
updated_at = CURRENT_TIMESTAMP
|
|
835
848
|
WHERE app_name = '@deco/management-mcp'
|
|
836
|
-
`.execute(_)}async function
|
|
849
|
+
`.execute(_)}async function wU(_){await FT`
|
|
837
850
|
UPDATE connections
|
|
838
851
|
SET title = 'Mesh MCP',
|
|
839
852
|
updated_at = CURRENT_TIMESTAMP
|
|
840
853
|
WHERE app_name = '@deco/management-mcp'
|
|
841
|
-
`.execute(_)}var
|
|
854
|
+
`.execute(_)}var zC={};C(zC,{up:()=>kU,down:()=>nU});import{sql as YT}from"kysely";async function kU(_){await YT`
|
|
842
855
|
UPDATE connections
|
|
843
856
|
SET title = 'Deco CMS',
|
|
844
857
|
tools = NULL,
|
|
845
858
|
updated_at = CURRENT_TIMESTAMP
|
|
846
859
|
WHERE app_name = '@deco/management-mcp'
|
|
847
|
-
`.execute(_)}async function
|
|
860
|
+
`.execute(_)}async function nU(_){await YT`
|
|
848
861
|
UPDATE connections
|
|
849
862
|
SET title = 'CMS MCP',
|
|
850
863
|
updated_at = CURRENT_TIMESTAMP
|
|
851
864
|
WHERE app_name = '@deco/management-mcp'
|
|
852
|
-
`.execute(_)}var
|
|
865
|
+
`.execute(_)}var EC={};C(EC,{up:()=>vU,down:()=>pU});async function vU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function pU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var $C={};C($C,{up:()=>gU,down:()=>qU});async function gU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function qU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var PC={};C(PC,{up:()=>iU,down:()=>cU});import{sql as UC}from"kysely";async function iU(_){await UC`
|
|
853
866
|
UPDATE organization_settings
|
|
854
867
|
SET enabled_plugins = (
|
|
855
868
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -858,7 +871,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
858
871
|
)
|
|
859
872
|
WHERE enabled_plugins IS NOT NULL
|
|
860
873
|
AND enabled_plugins LIKE '%object-storage%'
|
|
861
|
-
`.execute(_),await
|
|
874
|
+
`.execute(_),await UC`
|
|
862
875
|
UPDATE projects
|
|
863
876
|
SET enabled_plugins = (
|
|
864
877
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -867,65 +880,65 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
867
880
|
)
|
|
868
881
|
WHERE enabled_plugins IS NOT NULL
|
|
869
882
|
AND enabled_plugins LIKE '%object-storage%'
|
|
870
|
-
`.execute(_),await
|
|
883
|
+
`.execute(_),await UC`
|
|
871
884
|
DELETE FROM project_plugin_configs
|
|
872
885
|
WHERE plugin_id = 'object-storage'
|
|
873
|
-
`.execute(_)}async function
|
|
886
|
+
`.execute(_)}async function cU(_){}var JC={};C(JC,{up:()=>hU,down:()=>tU});import{sql as DT}from"kysely";async function hU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await DT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function tU(_){await DT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var QC={};C(QC,{up:()=>oU,down:()=>aU});import{sql as XC}from"kysely";async function oU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await XC`
|
|
874
887
|
ALTER TABLE connections
|
|
875
888
|
ADD CONSTRAINT chk_connections_subtype
|
|
876
889
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
877
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
890
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await XC`
|
|
878
891
|
UPDATE connections
|
|
879
892
|
SET subtype = 'agent'
|
|
880
893
|
WHERE connection_type = 'VIRTUAL'
|
|
881
|
-
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,P=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),
|
|
894
|
+
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,P=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),j=N.get(z.organization_id);if(!j)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:j,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:P,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let m=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${d()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let T=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${d()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function aU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await XC`
|
|
882
895
|
ALTER TABLE connections
|
|
883
896
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
884
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
897
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var ZC={};C(ZC,{up:()=>lU,down:()=>eU});import{sql as rU}from"kysely";async function lU(_){await rU`
|
|
885
898
|
DELETE FROM connections
|
|
886
899
|
WHERE connection_type = 'VIRTUAL'
|
|
887
900
|
AND subtype = 'project'
|
|
888
901
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
889
|
-
`.execute(_)}async function
|
|
902
|
+
`.execute(_)}async function eU(_){}var WC={};C(WC,{up:()=>bU,down:()=>sU});import{sql as dU}from"kysely";async function bU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await dU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function sU(_){await _.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var LC={};C(LC,{up:()=>_P,down:()=>xP});import{sql as jC}from"kysely";async function _P(_){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(jC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(jC`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(jC`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 xP(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var FC={};C(FC,{up:()=>uP,down:()=>CP});async function uP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function CP(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var YC={};C(YC,{up:()=>KP,down:()=>NP});async function KP(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function NP(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var HC={};C(HC,{up:()=>TP,down:()=>zP});import{sql as HT}from"kysely";function DC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function mP(_){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 DC(N)}catch{return DC(_.connection_url)}if(_.title)return DC(_.title);return _.id}async function TP(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await HT`
|
|
890
903
|
SELECT id, app_name, connection_url, title FROM connections
|
|
891
|
-
`.execute(_);for(let u of x.rows){let N=
|
|
904
|
+
`.execute(_);for(let u of x.rows){let N=mP(u);await HT`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 zP(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var MC={};C(MC,{up:()=>EP,down:()=>$P});import{sql as X_}from"kysely";async function EP(_){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 $P(_){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 RC={};C(RC,{up:()=>UP,down:()=>PP});async function UP(_){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 PP(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var BC={};C(BC,{up:()=>JP,down:()=>XP});import{sql as p_}from"kysely";async function JP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await p_`
|
|
892
905
|
UPDATE threads
|
|
893
906
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
894
907
|
WHERE agent_ids IS NOT NULL
|
|
895
908
|
AND agent_ids != '[]'
|
|
896
909
|
AND agent_ids != ''
|
|
897
910
|
AND (agent_ids::jsonb ->> 0) IS NOT NULL
|
|
898
|
-
`.execute(_),await
|
|
911
|
+
`.execute(_),await p_`
|
|
899
912
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
900
913
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
901
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
914
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function XP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await p_`
|
|
902
915
|
UPDATE threads
|
|
903
916
|
SET agent_ids = CASE
|
|
904
917
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
905
918
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
906
919
|
ELSE '[]'
|
|
907
920
|
END
|
|
908
|
-
`.execute(_),await
|
|
921
|
+
`.execute(_),await p_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var GC={};C(GC,{up:()=>QP,down:()=>ZP});async function QP(_){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 ZP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var OC={};C(OC,{up:()=>WP,down:()=>jP});async function WP(_){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 jP(_){await _.schema.dropTable("kv").execute()}var SC={};C(SC,{up:()=>LP,down:()=>FP});async function LP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function FP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var fC={};C(fC,{up:()=>YP,down:()=>DP});async function YP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function DP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var AC={};C(AC,{up:()=>HP,down:()=>MP});import{sql as S}from"kysely";async function HP(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await S`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await S`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function MP(_){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 IC={};C(IC,{up:()=>RP,down:()=>BP});import{sql as b}from"kysely";async function RP(_){await b`
|
|
909
922
|
ALTER TABLE event_subscriptions
|
|
910
923
|
ALTER COLUMN enabled DROP DEFAULT
|
|
911
|
-
`.execute(_),await
|
|
924
|
+
`.execute(_),await b`
|
|
912
925
|
ALTER TABLE event_subscriptions
|
|
913
926
|
ALTER COLUMN enabled TYPE boolean
|
|
914
927
|
USING enabled::boolean
|
|
915
|
-
`.execute(_),await
|
|
928
|
+
`.execute(_),await b`
|
|
916
929
|
ALTER TABLE event_subscriptions
|
|
917
930
|
ALTER COLUMN enabled SET DEFAULT true
|
|
918
|
-
`.execute(_)}async function
|
|
931
|
+
`.execute(_)}async function BP(_){await b`
|
|
919
932
|
ALTER TABLE event_subscriptions
|
|
920
933
|
ALTER COLUMN enabled DROP DEFAULT
|
|
921
|
-
`.execute(_),await
|
|
934
|
+
`.execute(_),await b`
|
|
922
935
|
ALTER TABLE event_subscriptions
|
|
923
936
|
ALTER COLUMN enabled TYPE integer
|
|
924
937
|
USING enabled::integer
|
|
925
|
-
`.execute(_),await
|
|
938
|
+
`.execute(_),await b`
|
|
926
939
|
ALTER TABLE event_subscriptions
|
|
927
940
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
928
|
-
`.execute(_)}var
|
|
941
|
+
`.execute(_)}var yC={};C(yC,{up:()=>GP,down:()=>OP});import{sql as MT}from"kysely";async function GP(_){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(MT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(MT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function OP(_){await _.schema.dropTable("brand_context").execute()}var VC={};C(VC,{up:()=>SP,down:()=>fP});import{sql as RT}from"kysely";async function SP(_){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(RT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(RT`now()`)).execute()}async function fP(_){await _.schema.dropTable("organization_domains").execute()}var wC={};C(wC,{up:()=>VP,down:()=>wP});import{sql as BT}from"kysely";var g_=new Set(["primary","secondary","accent","background","foreground"]),AP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function IP(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>g_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(g_.has(m))K[m]=T;else x[m]=T}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,m]of Object.entries(u)){if(typeof m!=="string")continue;if(g_.has(K.toLowerCase()))N[K.toLowerCase()]=m;else x[K]=m}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,m=K.label?.toLowerCase?.(),T=K.value;if(!m||!T)continue;if(g_.has(m))u[m]=T;else x[m]=T}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function yP(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let K=N,m=K.name??K.family??void 0,T=K.role?.toLowerCase?.()??"";if(!m)continue;let z=AP[T];if(z&&!x[z])x[z]=m;else u.push(m)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function VP(_){let x=await BT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,m=!1,T=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let P=IP($);if(T=P.structured,N=!0,Object.keys(P.extra).length>0)E.extraColors=P.extra,m=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=yP($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await BT`
|
|
929
942
|
UPDATE brand_context
|
|
930
943
|
SET
|
|
931
944
|
colors = ${T},
|
|
@@ -933,20 +946,20 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
933
946
|
metadata = ${$},
|
|
934
947
|
updated_at = NOW()
|
|
935
948
|
WHERE id = ${u.id}
|
|
936
|
-
`.execute(_)}}}async function
|
|
949
|
+
`.execute(_)}}}async function wP(_){}var kC={};C(kC,{up:()=>nP,down:()=>vP});import{sql as kP}from"kysely";async function nP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(kP`'{}'::jsonb`)).execute()}async function vP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var nC={};C(nC,{up:()=>pP,down:()=>gP});async function pP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function gP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var vC={};C(vC,{up:()=>qP,down:()=>iP});async function qP(_){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 iP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var pC={};C(pC,{up:()=>cP,down:()=>hP});async function cP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function hP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var gC={};C(gC,{up:()=>tP,down:()=>oP});async function tP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function oP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var qC={};C(qC,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function rP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var iC={};C(iC,{up:()=>eP,down:()=>dP});import{sql as GT}from"kysely";var lP=["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 eP(_){let x=await GT`
|
|
937
950
|
SELECT id, permission FROM "organizationRole"
|
|
938
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...
|
|
951
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...lP]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await GT`
|
|
939
952
|
UPDATE "organizationRole"
|
|
940
953
|
SET permission = ${z}
|
|
941
954
|
WHERE id = ${u.id}
|
|
942
|
-
`.execute(_)}}async function
|
|
955
|
+
`.execute(_)}}async function dP(_){}var cC={};C(cC,{up:()=>bP,down:()=>sP});async function bP(_){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 sP(_){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 hC={};C(hC,{up:()=>_J,down:()=>xJ});async function _J(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function xJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var tC={};C(tC,{up:()=>uJ,down:()=>CJ});import{sql as Q_}from"kysely";async function uJ(_){await Q_`
|
|
943
956
|
UPDATE automations
|
|
944
957
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
945
958
|
WHERE virtual_mcp_id IS NULL
|
|
946
959
|
`.execute(_),await Q_`
|
|
947
960
|
ALTER TABLE automations
|
|
948
961
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
949
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
962
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function CJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
|
|
950
963
|
UPDATE automations
|
|
951
964
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
952
965
|
`.execute(_),await Q_`
|
|
@@ -955,7 +968,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
955
968
|
`.execute(_),await Q_`
|
|
956
969
|
ALTER TABLE automations
|
|
957
970
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
958
|
-
`.execute(_)}var
|
|
971
|
+
`.execute(_)}var aC={};C(aC,{up:()=>TJ,reshapeSimpleMode:()=>OT,inferAutomationTier:()=>ST,down:()=>zJ,__testing:()=>mJ});var KJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},NJ=["fast","smart","thinking","image","web_research"];function oC(_){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 NJ.some((N)=>(N in u))}function OT(_){if(oC(_))return _;let x=_,u=x?.enabled===!0,N=(K)=>K&&K.keyId&&K.modelId?{keyId:K.keyId,modelId:K.modelId,title:K.title}:null;if(!u)return KJ;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 ST(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function fT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var mJ={isAlreadyReshapedSimpleMode:oC,isAlreadyReshapedAutomationModels:fT};async function TJ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let K=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(oC(K))continue;let m=OT(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(m)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(fT(K))continue;let m=ST(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:m})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${m}"`)}}async function zJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var rC={};C(rC,{up:()=>EJ,down:()=>$J});import{sql as n}from"kysely";async function EJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await n`
|
|
959
972
|
ALTER TABLE automations
|
|
960
973
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
961
974
|
`.execute(_),await n`
|
|
@@ -977,19 +990,19 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
977
990
|
AND tool_input IS NOT NULL
|
|
978
991
|
)
|
|
979
992
|
)
|
|
980
|
-
`.execute(_)}async function
|
|
993
|
+
`.execute(_)}async function $J(_){await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await n`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await n`
|
|
981
994
|
ALTER TABLE automations
|
|
982
995
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
983
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var
|
|
996
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var lC={};C(lC,{up:()=>PJ,down:()=>JJ});import{sql as AT}from"kysely";var UJ=new Set(["host","docker","agent-sandbox"]);async function PJ(_){let x=await AT`
|
|
984
997
|
SELECT id, metadata FROM "connections"
|
|
985
998
|
WHERE connection_type = 'VIRTUAL'
|
|
986
999
|
AND metadata IS NOT NULL
|
|
987
1000
|
AND metadata LIKE '%vmMap%'
|
|
988
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[
|
|
1001
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[j,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}let y=Q.runnerKind;if(y!==void 0&&!UJ.has(y)){m=!0;continue}P[j]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.vmMap=T;let z=JSON.stringify(N);await AT`
|
|
989
1002
|
UPDATE "connections"
|
|
990
1003
|
SET metadata = ${z}
|
|
991
1004
|
WHERE id = ${u.id}
|
|
992
|
-
`.execute(_)}}async function
|
|
1005
|
+
`.execute(_)}}async function JJ(_){}var eC={};C(eC,{up:()=>XJ,down:()=>QJ});import{sql as Z_}from"kysely";async function XJ(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Z_`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(Z_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`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 Z_`
|
|
993
1006
|
CREATE INDEX async_research_jobs_active_idx
|
|
994
1007
|
ON async_research_jobs (status, last_polled_at)
|
|
995
1008
|
WHERE status IN ('pending', 'polling')
|
|
@@ -997,27 +1010,27 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
997
1010
|
ALTER TABLE async_research_jobs
|
|
998
1011
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
999
1012
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
1000
|
-
`.execute(_)}async function
|
|
1013
|
+
`.execute(_)}async function QJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var dC={};C(dC,{up:()=>ZJ,down:()=>WJ});async function ZJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function WJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var bC={};C(bC,{up:()=>jJ,down:()=>LJ});import{sql as s}from"kysely";async function jJ(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await s`
|
|
1001
1014
|
ALTER TABLE secrets
|
|
1002
1015
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
1003
|
-
`.execute(_),await
|
|
1016
|
+
`.execute(_),await s`
|
|
1004
1017
|
ALTER TABLE secrets
|
|
1005
1018
|
ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
|
|
1006
1019
|
(scope = 'user' AND user_id IS NOT NULL)
|
|
1007
1020
|
OR (scope = 'organization' AND user_id IS NULL)
|
|
1008
1021
|
)
|
|
1009
|
-
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await
|
|
1022
|
+
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await s`
|
|
1010
1023
|
CREATE UNIQUE INDEX idx_secrets_user_name
|
|
1011
1024
|
ON secrets (organization_id, user_id, lower(name))
|
|
1012
1025
|
WHERE scope = 'user'
|
|
1013
|
-
`.execute(_),await
|
|
1026
|
+
`.execute(_),await s`
|
|
1014
1027
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
1015
1028
|
ON secrets (organization_id, lower(name))
|
|
1016
1029
|
WHERE scope = 'organization'
|
|
1017
|
-
`.execute(_)}async function
|
|
1030
|
+
`.execute(_)}async function LJ(_){await _.schema.dropTable("secrets").execute()}var sC={};C(sC,{up:()=>FJ,down:()=>YJ});async function FJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function YJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var _K={};C(_K,{up:()=>HJ,down:()=>MJ});import{sql as DJ}from"kysely";async function HJ(_){await DJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function MJ(_){}var xK={};C(xK,{up:()=>RJ,down:()=>BJ});import{sql as q_}from"kysely";async function RJ(_){await q_`
|
|
1018
1031
|
ALTER TABLE sandbox_runner_state
|
|
1019
1032
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
1020
|
-
`.execute(_),await
|
|
1033
|
+
`.execute(_),await q_`
|
|
1021
1034
|
DO $$ BEGIN
|
|
1022
1035
|
UPDATE virtualmcps v
|
|
1023
1036
|
SET metadata = jsonb_set(
|
|
@@ -1052,10 +1065,10 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1052
1065
|
EXCEPTION WHEN undefined_table THEN
|
|
1053
1066
|
NULL;
|
|
1054
1067
|
END; $$
|
|
1055
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
1068
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function BJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await q_`
|
|
1056
1069
|
ALTER TABLE sandbox_runner_state
|
|
1057
1070
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
1058
|
-
`.execute(_),await
|
|
1071
|
+
`.execute(_),await q_`
|
|
1059
1072
|
DO $$ BEGIN
|
|
1060
1073
|
UPDATE virtualmcps v
|
|
1061
1074
|
SET metadata = jsonb_set(
|
|
@@ -1090,7 +1103,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1090
1103
|
EXCEPTION WHEN undefined_table THEN
|
|
1091
1104
|
NULL;
|
|
1092
1105
|
END; $$
|
|
1093
|
-
`.execute(_)}var
|
|
1106
|
+
`.execute(_)}var uK={};C(uK,{up:()=>GJ,down:()=>OJ});import{sql as IT}from"kysely";async function GJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await IT`
|
|
1094
1107
|
DO $$ BEGIN
|
|
1095
1108
|
UPDATE virtualmcps v
|
|
1096
1109
|
SET metadata = jsonb_set(
|
|
@@ -1129,7 +1142,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1129
1142
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
1130
1143
|
NULL;
|
|
1131
1144
|
END; $$
|
|
1132
|
-
`.execute(_)}async function
|
|
1145
|
+
`.execute(_)}async function OJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await IT`
|
|
1133
1146
|
DO $$ BEGIN
|
|
1134
1147
|
UPDATE virtualmcps v
|
|
1135
1148
|
SET metadata = jsonb_set(
|
|
@@ -1162,7 +1175,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1162
1175
|
EXCEPTION WHEN undefined_table THEN
|
|
1163
1176
|
NULL;
|
|
1164
1177
|
END; $$
|
|
1165
|
-
`.execute(_)}var
|
|
1178
|
+
`.execute(_)}var CK={};C(CK,{up:()=>SJ,down:()=>fJ});import{sql as yT}from"kysely";async function SJ(_){await yT`
|
|
1166
1179
|
UPDATE connections c
|
|
1167
1180
|
SET metadata = (
|
|
1168
1181
|
jsonb_set(
|
|
@@ -1206,7 +1219,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1206
1219
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
1207
1220
|
WHERE entry ? 'vmId'
|
|
1208
1221
|
);
|
|
1209
|
-
`.execute(_),await
|
|
1222
|
+
`.execute(_),await yT`
|
|
1210
1223
|
UPDATE connections c
|
|
1211
1224
|
SET metadata = (
|
|
1212
1225
|
jsonb_set(
|
|
@@ -1260,14 +1273,14 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1260
1273
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1261
1274
|
WHERE inner_entry ? 'runnerKind'
|
|
1262
1275
|
);
|
|
1263
|
-
`.execute(_)}async function
|
|
1276
|
+
`.execute(_)}async function fJ(_){}var KK={};C(KK,{up:()=>IJ,down:()=>yJ});import{sql as AJ}from"kysely";async function IJ(_){await AJ`
|
|
1264
1277
|
DELETE FROM ai_provider_keys
|
|
1265
1278
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
1266
|
-
`.execute(_)}async function
|
|
1279
|
+
`.execute(_)}async function yJ(_){}var NK={};C(NK,{up:()=>VJ,down:()=>wJ});import{sql as i_}from"kysely";async function VJ(_){await i_`
|
|
1267
1280
|
UPDATE sandbox_runner_state
|
|
1268
1281
|
SET sandbox_provider_kind = 'desktop'
|
|
1269
1282
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1270
|
-
`.execute(_),await
|
|
1283
|
+
`.execute(_),await i_`
|
|
1271
1284
|
UPDATE connections c
|
|
1272
1285
|
SET metadata = (
|
|
1273
1286
|
jsonb_set(
|
|
@@ -1310,7 +1323,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1310
1323
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1311
1324
|
WHERE kind_key = 'remote-user'
|
|
1312
1325
|
);
|
|
1313
|
-
`.execute(_),await
|
|
1326
|
+
`.execute(_),await i_`
|
|
1314
1327
|
UPDATE connections c
|
|
1315
1328
|
SET metadata = (
|
|
1316
1329
|
jsonb_set(
|
|
@@ -1357,17 +1370,17 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1357
1370
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1358
1371
|
WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
|
|
1359
1372
|
);
|
|
1360
|
-
`.execute(_),await
|
|
1373
|
+
`.execute(_),await i_`
|
|
1361
1374
|
UPDATE threads
|
|
1362
1375
|
SET sandbox_provider_kind = 'desktop'
|
|
1363
1376
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1364
|
-
`.execute(_)}async function
|
|
1377
|
+
`.execute(_)}async function wJ(_){}var mK={};C(mK,{up:()=>kJ,down:()=>nJ});import{sql as W_}from"kysely";async function kJ(_){await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`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 nJ(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await W_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var TK={};C(TK,{up:()=>vJ,down:()=>pJ});import{sql as VT}from"kysely";async function vJ(_){await VT`
|
|
1365
1378
|
ALTER TABLE organization_domains
|
|
1366
1379
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
1367
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function
|
|
1380
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function pJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await VT`
|
|
1368
1381
|
ALTER TABLE organization_domains
|
|
1369
1382
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
1370
|
-
`.execute(_)}var
|
|
1383
|
+
`.execute(_)}var zK={};C(zK,{up:()=>gJ,down:()=>qJ});import{sql as c_}from"kysely";async function gJ(_){await c_`
|
|
1371
1384
|
UPDATE sandbox_runner_state
|
|
1372
1385
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
1373
1386
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -1377,7 +1390,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1377
1390
|
ELSE sandbox_provider_kind
|
|
1378
1391
|
END
|
|
1379
1392
|
WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
|
|
1380
|
-
`.execute(_),await
|
|
1393
|
+
`.execute(_),await c_`
|
|
1381
1394
|
UPDATE connections c
|
|
1382
1395
|
SET metadata = (
|
|
1383
1396
|
(c.metadata::jsonb - 'vmMap')
|
|
@@ -1386,7 +1399,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1386
1399
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1387
1400
|
AND c.metadata IS NOT NULL
|
|
1388
1401
|
AND c.metadata::jsonb ? 'vmMap'
|
|
1389
|
-
`.execute(_),await
|
|
1402
|
+
`.execute(_),await c_`
|
|
1390
1403
|
UPDATE connections c
|
|
1391
1404
|
SET metadata = (
|
|
1392
1405
|
jsonb_set(
|
|
@@ -1447,7 +1460,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1447
1460
|
WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
|
|
1448
1461
|
OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
|
|
1449
1462
|
);
|
|
1450
|
-
`.execute(_),await
|
|
1463
|
+
`.execute(_),await c_`
|
|
1451
1464
|
UPDATE connections c
|
|
1452
1465
|
SET metadata = REPLACE(
|
|
1453
1466
|
REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
|
|
@@ -1456,19 +1469,19 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1456
1469
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1457
1470
|
AND c.metadata IS NOT NULL
|
|
1458
1471
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
1459
|
-
`.execute(_)}async function
|
|
1472
|
+
`.execute(_)}async function qJ(_){}var EK={};C(EK,{up:()=>cJ,down:()=>hJ});import{sql as wT}from"kysely";var iJ=["GLOBAL_SEARCH"];async function cJ(_){let x=await wT`
|
|
1460
1473
|
SELECT id, permission FROM "organizationRole"
|
|
1461
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...
|
|
1474
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...iJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await wT`
|
|
1462
1475
|
UPDATE "organizationRole"
|
|
1463
1476
|
SET permission = ${z}
|
|
1464
1477
|
WHERE id = ${u.id}
|
|
1465
|
-
`.execute(_)}}async function
|
|
1478
|
+
`.execute(_)}}async function hJ(_){}var UK={};C(UK,{up:()=>tJ,down:()=>oJ});import{sql as $K}from"kysely";async function tJ(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo($K`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($K`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await $K`
|
|
1466
1479
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
1467
1480
|
ON org_file_configs (organization_id, lower(name))
|
|
1468
|
-
`.execute(_)}async function
|
|
1481
|
+
`.execute(_)}async function oJ(_){await _.schema.dropTable("org_file_configs").execute()}var PK={};C(PK,{up:()=>aJ,down:()=>rJ});import{sql as v}from"kysely";async function aJ(_){await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await v`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await v`
|
|
1469
1482
|
ALTER TABLE automations
|
|
1470
1483
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
1471
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function
|
|
1484
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function rJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await v`
|
|
1472
1485
|
ALTER TABLE automations
|
|
1473
1486
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
1474
1487
|
`.execute(_),await v`
|
|
@@ -1490,25 +1503,25 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1490
1503
|
AND tool_input IS NOT NULL
|
|
1491
1504
|
)
|
|
1492
1505
|
)
|
|
1493
|
-
`.execute(_)}var
|
|
1506
|
+
`.execute(_)}var JK={};C(JK,{up:()=>lJ,down:()=>eJ});async function lJ(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function eJ(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var QK={};C(QK,{up:()=>dJ,down:()=>bJ});import{sql as XK}from"kysely";var h_="local-docker";async function dJ(_){await XK`delete from sandbox_runner_state where sandbox_provider_kind = ${h_}`.execute(_);let x=await XK`
|
|
1494
1507
|
SELECT id, metadata FROM "connections"
|
|
1495
1508
|
WHERE connection_type = 'VIRTUAL'
|
|
1496
1509
|
AND metadata IS NOT NULL
|
|
1497
|
-
AND metadata LIKE ${"%"+
|
|
1498
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[
|
|
1510
|
+
AND metadata LIKE ${"%"+h_+"%"}
|
|
1511
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[j,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}if(h_ in Q){m=!0;let y={...Q};if(delete y[h_],Object.keys(y).length>0)P[j]=y}else P[j]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.sandboxMap=T;let z=JSON.stringify(N);await XK`
|
|
1499
1512
|
UPDATE "connections"
|
|
1500
1513
|
SET metadata = ${z}
|
|
1501
1514
|
WHERE id = ${u.id}
|
|
1502
|
-
`.execute(_)}}async function
|
|
1515
|
+
`.execute(_)}}async function bJ(_){}var ZK={};C(ZK,{up:()=>sJ,down:()=>_X});import{sql as t_}from"kysely";async function sJ(_){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 t_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await t_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await t_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await t_`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 _X(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var WK={};C(WK,{up:()=>xX,down:()=>uX});async function xX(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function uX(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var jK={};C(jK,{up:()=>CX,down:()=>KX});async function CX(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function KX(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var LK={};C(LK,{up:()=>NX,down:()=>mX});async function NX(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function mX(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var FK={};C(FK,{up:()=>TX,down:()=>zX});async function TX(_){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 zX(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var YK={};C(YK,{up:()=>EX,down:()=>$X});async function EX(_){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 $X(_){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 HK={};C(HK,{up:()=>PX,down:()=>JX});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function DK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function o_(_){if(!__(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function UX(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[m,T]of Object.entries(_)){if(!__(T)){K[m]=T;continue}let z={};for(let[E,$]of Object.entries(T)){if(!__($)){z[E]=$;continue}let P={};for(let[j,Q]of Object.entries($)){if(j===x){if(N=!0,!(u in $))P[u]=DK(Q,x,u);else if(!o_($[u])&&o_(Q))P[u]=DK(Q,x,u);continue}let y=DK(Q,x,u);if(y!==Q)N=!0;if(j===u&&j in P&&o_(P[j])&&!o_(y))continue;P[j]=y}z[E]=P}K[m]=z}return{sandboxMap:K,changed:N}}async function kT(_,x,u){let N=await k`
|
|
1503
1516
|
SELECT id, metadata FROM connections
|
|
1504
1517
|
WHERE connection_type = 'VIRTUAL'
|
|
1505
1518
|
AND metadata IS NOT NULL
|
|
1506
1519
|
AND metadata LIKE ${"%"+x+"%"}
|
|
1507
|
-
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=
|
|
1520
|
+
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=UX(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
|
|
1508
1521
|
UPDATE connections
|
|
1509
1522
|
SET metadata = ${JSON.stringify(m)}
|
|
1510
1523
|
WHERE id = ${K.id}
|
|
1511
|
-
`.execute(_)}}async function
|
|
1524
|
+
`.execute(_)}}async function PX(_){await k`
|
|
1512
1525
|
UPDATE threads
|
|
1513
1526
|
SET sandbox_provider_kind = ${A}
|
|
1514
1527
|
WHERE sandbox_provider_kind = ${f}
|
|
@@ -1537,7 +1550,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1537
1550
|
UPDATE sandbox_runner_state
|
|
1538
1551
|
SET sandbox_provider_kind = ${A}
|
|
1539
1552
|
WHERE sandbox_provider_kind = ${f}
|
|
1540
|
-
`.execute(_),await
|
|
1553
|
+
`.execute(_),await kT(_,f,A)}async function JX(_){await k`
|
|
1541
1554
|
UPDATE threads
|
|
1542
1555
|
SET sandbox_provider_kind = ${f}
|
|
1543
1556
|
WHERE sandbox_provider_kind = ${A}
|
|
@@ -1566,7 +1579,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1566
1579
|
UPDATE sandbox_runner_state
|
|
1567
1580
|
SET sandbox_provider_kind = ${f}
|
|
1568
1581
|
WHERE sandbox_provider_kind = ${A}
|
|
1569
|
-
`.execute(_),await
|
|
1582
|
+
`.execute(_),await kT(_,A,f)}var MK={};C(MK,{up:()=>XX,down:()=>QX});import{sql as g}from"kysely";async function XX(_){await g`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(g`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(g`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await g`
|
|
1570
1583
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1571
1584
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1572
1585
|
WHERE deleted_at IS NULL
|
|
@@ -1574,7 +1587,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1574
1587
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1575
1588
|
ON org_fs_entry (organization_id, volume, size)
|
|
1576
1589
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1577
|
-
`.execute(_)}async function
|
|
1590
|
+
`.execute(_)}async function QX(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var RK={};C(RK,{up:()=>ZX,down:()=>WX});async function ZX(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function WX(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var BK={};C(BK,{up:()=>jX,down:()=>LX});import{sql as nT}from"kysely";async function jX(_){await nT`
|
|
1578
1591
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1579
1592
|
SELECT
|
|
1580
1593
|
'org_orgfs_public_skills',
|
|
@@ -1588,13 +1601,13 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1588
1601
|
END,
|
|
1589
1602
|
now()
|
|
1590
1603
|
ON CONFLICT (id) DO NOTHING
|
|
1591
|
-
`.execute(_)}async function
|
|
1604
|
+
`.execute(_)}async function LX(_){await nT`
|
|
1592
1605
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1593
|
-
`.execute(_)}var
|
|
1606
|
+
`.execute(_)}var GK={};C(GK,{up:()=>FX,down:()=>YX});async function FX(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function YX(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var OK={};C(OK,{up:()=>DX,down:()=>HX});import{sql as vT}from"kysely";async function DX(_){await vT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function HX(_){await vT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var SK={};C(SK,{up:()=>RX,down:()=>BX});import{sql as MX}from"kysely";async function RX(_){await MX`
|
|
1594
1607
|
UPDATE downstream_tokens
|
|
1595
1608
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1596
1609
|
WHERE "expiresAt" IS NULL
|
|
1597
|
-
`.execute(_)}async function
|
|
1610
|
+
`.execute(_)}async function BX(_){}var fK={};C(fK,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function OX(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var AK={};C(AK,{up:()=>SX,down:()=>fX});async function SX(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function fX(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var IK={};C(IK,{up:()=>AX,down:()=>IX});async function AX(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function IX(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var yK={};C(yK,{up:()=>yX,down:()=>VX});async function yX(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function VX(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var VK={};C(VK,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function kX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var wK={};C(wK,{up:()=>nX,down:()=>vX});import{sql as pT}from"kysely";async function nX(_){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(pT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(pT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function vX(_){await _.schema.dropTable("org_sites").execute()}var kK={};C(kK,{up:()=>pX,down:()=>gX});async function pX(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function gX(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var nK={};C(nK,{up:()=>qX,down:()=>iX});import{sql as R}from"kysely";async function qX(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await R`
|
|
1598
1611
|
UPDATE organization_domains
|
|
1599
1612
|
SET
|
|
1600
1613
|
id = gen_random_uuid()::text,
|
|
@@ -1603,18 +1616,18 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1603
1616
|
verification_method = 'email',
|
|
1604
1617
|
verified_at = created_at
|
|
1605
1618
|
WHERE id IS NULL
|
|
1606
|
-
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function
|
|
1619
|
+
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function iX(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await R`
|
|
1607
1620
|
UPDATE organization_domains
|
|
1608
1621
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
1609
|
-
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var
|
|
1622
|
+
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var vK={};C(vK,{up:()=>cX,down:()=>hX});import{sql as a_}from"kysely";async function cX(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(a_`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(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).execute(),await a_`
|
|
1610
1623
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1611
1624
|
ON organization_join_requests (organization_id, user_id)
|
|
1612
1625
|
WHERE status = 'pending'
|
|
1613
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function
|
|
1626
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function hX(_){await _.schema.dropTable("organization_join_requests").execute()}var pK={};C(pK,{up:()=>tX,down:()=>oX});async function tX(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function oX(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var gK={};C(gK,{up:()=>aX,down:()=>rX});async function aX(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function rX(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var cK={};C(cK,{up:()=>dX,splitWebResearchTier:()=>iK,down:()=>bX,__testing:()=>eX});function lX(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function qK(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function iK(_){if(!_||qK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(lX(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var eX={splitWebResearchTier:iK,isAlreadySplit:qK};async function dX(_){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(qK(N))continue;let K=iK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function bX(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var hK={};C(hK,{up:()=>sX,down:()=>_Q});import{sql as j_}from"kysely";async function sX(_){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(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await j_`
|
|
1614
1627
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1615
1628
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1616
1629
|
WHERE revoked_at IS NULL
|
|
1617
|
-
`.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(
|
|
1630
|
+
`.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(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`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 _Q(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var tK={};C(tK,{up:()=>xQ,down:()=>uQ});async function xQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function uQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var oK={};C(oK,{up:()=>CQ,down:()=>KQ});import{sql as t}from"kysely";async function CQ(_){await t`
|
|
1618
1631
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1619
1632
|
RETURNS jsonb AS $fn$
|
|
1620
1633
|
BEGIN
|
|
@@ -1673,7 +1686,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1673
1686
|
BEFORE INSERT ON connection_aggregations
|
|
1674
1687
|
FOR EACH ROW
|
|
1675
1688
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1676
|
-
`.execute(_)}async function
|
|
1689
|
+
`.execute(_)}async function KQ(_){await t`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await t`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await t`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var rK={};C(rK,{up:()=>NQ,down:()=>mQ});import{sql as aK}from"kysely";async function NQ(_){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(aK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(aK`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(aK`false`)).execute()}async function mQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var lK={};C(lK,{up:()=>TQ,down:()=>zQ});async function TQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function zQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var eK={};C(eK,{up:()=>EQ,down:()=>$Q});async function EQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function $Q(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var dK={};C(dK,{up:()=>UQ,down:()=>PQ});async function UQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function PQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var bK={};C(bK,{up:()=>XQ,down:()=>QQ});import{sql as JQ}from"kysely";async function XQ(_){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(JQ`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 QQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var sK={};C(sK,{up:()=>ZQ,down:()=>WQ});async function ZQ(_){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 WQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var _N={};C(_N,{up:()=>LQ,down:()=>FQ});import{sql as jQ}from"kysely";async function LQ(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(jQ`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 FQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var xN={};C(xN,{up:()=>DQ,down:()=>HQ});import{sql as YQ}from"kysely";async function DQ(_){await YQ`
|
|
1677
1690
|
DELETE FROM member
|
|
1678
1691
|
WHERE id IN (
|
|
1679
1692
|
SELECT id FROM (
|
|
@@ -1692,38 +1705,38 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1692
1705
|
) ranked
|
|
1693
1706
|
WHERE ranked.rn > 1
|
|
1694
1707
|
)
|
|
1695
|
-
`.execute(_)}async function
|
|
1708
|
+
`.execute(_)}async function HQ(_){}var uN={};C(uN,{up:()=>MQ,down:()=>RQ});async function MQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function RQ(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var CN={};C(CN,{up:()=>BQ,down:()=>GQ});async function BQ(_){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 GQ(_){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 KN={};C(KN,{up:()=>SQ,down:()=>fQ});import{sql as OQ}from"kysely";async function SQ(_){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(OQ`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 fQ(_){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 NN={};C(NN,{up:()=>IQ,down:()=>yQ});import{sql as AQ}from"kysely";async function IQ(_){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(AQ`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 yQ(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var mN={};C(mN,{up:()=>VQ,down:()=>wQ});import{sql as r_}from"kysely";async function VQ(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",r_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",r_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function wQ(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var TN={};C(TN,{up:()=>kQ,down:()=>nQ});import{sql as l_}from"kysely";async function kQ(_){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(l_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(l_`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(l_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await l_`
|
|
1696
1709
|
insert into organization_billing (organization_id, legacy)
|
|
1697
1710
|
select id, true from organization
|
|
1698
1711
|
on conflict (organization_id) do nothing
|
|
1699
|
-
`.execute(_)}async function
|
|
1712
|
+
`.execute(_)}async function nQ(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var zN={};C(zN,{up:()=>vQ,down:()=>pQ});import{sql as gT}from"kysely";async function vQ(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(gT`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(gT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function pQ(_){await _.schema.dropTable("seat_change_log").execute()}var EN={};C(EN,{up:()=>gQ,down:()=>qQ});async function gQ(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function qQ(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var $N={};C($N,{up:()=>iQ,down:()=>cQ});import{sql as qT}from"kysely";async function iQ(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await qT`
|
|
1700
1713
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1701
1714
|
on organization_billing (stripe_subscription_id)
|
|
1702
1715
|
where stripe_subscription_id is not null
|
|
1703
|
-
`.execute(_)}async function
|
|
1716
|
+
`.execute(_)}async function cQ(_){await qT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var UN={};C(UN,{up:()=>hQ,down:()=>tQ});async function hQ(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function tQ(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var PN={};C(PN,{up:()=>oQ,down:()=>aQ});import{sql as iT}from"kysely";async function oQ(_){await iT`
|
|
1704
1717
|
create index idx_org_billing_benefits_pending
|
|
1705
1718
|
on organization_billing (updated_at)
|
|
1706
1719
|
where benefits_reference_id is not null
|
|
1707
|
-
`.execute(_)}async function
|
|
1720
|
+
`.execute(_)}async function aQ(_){await iT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var JN={};C(JN,{up:()=>rQ,down:()=>lQ});import{sql as cT}from"kysely";async function rQ(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(cT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(cT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function lQ(_){await _.schema.dropTable("user_model_preferences").execute()}var XN={};C(XN,{up:()=>eQ,down:()=>dQ});async function eQ(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function dQ(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var QN={};C(QN,{up:()=>bQ,down:()=>sQ});async function bQ(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function sQ(_){}var ZN={};C(ZN,{up:()=>_Z,down:()=>xZ});import{sql as hT}from"kysely";async function _Z(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await hT`
|
|
1708
1721
|
UPDATE organization_settings
|
|
1709
1722
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1710
1723
|
WHERE reports_only IS NOT NULL
|
|
1711
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1724
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function xZ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await hT`
|
|
1712
1725
|
UPDATE organization_settings
|
|
1713
1726
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1714
1727
|
WHERE flags ? 'reports_only'
|
|
1715
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1728
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var WN={};C(WN,{up:()=>CZ,down:()=>KZ});import{sql as uZ}from"kysely";async function CZ(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await uZ`
|
|
1716
1729
|
update task_board_items
|
|
1717
1730
|
set sort_order = -extract(epoch from created_at)
|
|
1718
|
-
`.execute(_)}async function
|
|
1731
|
+
`.execute(_)}async function KZ(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var jN={};C(jN,{up:()=>NZ,down:()=>mZ,ACTIONS:()=>tT});import{sql as e_}from"kysely";var tT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function NZ(_){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(e_`now()`)).addCheckConstraint("chk_task_board_activity_action",e_`action IN (${e_.join(tT.map((x)=>e_.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 mZ(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var FN={};C(FN,{up:()=>TZ,down:()=>zZ,ACTIONS:()=>LN});import{sql as L_}from"kysely";var LN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function TZ(_){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(L_`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 oT(_,LN)}async function zZ(_){await oT(_,LN.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 oT(_,x){await L_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await L_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${L_.join(x.map((u)=>L_.lit(u)))}))`.execute(_)}var DN={};C(DN,{up:()=>$Z,down:()=>UZ});import{sql as aT}from"kysely";function YN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function EZ(_){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 YN(N)}catch{return YN(_.connection_url)}if(_.title)return YN(_.title);return _.id}async function $Z(_){let x=await aT`
|
|
1719
1732
|
SELECT id, app_name, connection_url, title, slug
|
|
1720
1733
|
FROM connections
|
|
1721
1734
|
WHERE connection_type != 'VIRTUAL'
|
|
1722
|
-
`.execute(_),u=0;for(let N of x.rows){let K=
|
|
1735
|
+
`.execute(_),u=0;for(let N of x.rows){let K=EZ(N);if(K===N.slug)continue;await aT`UPDATE connections SET slug = ${K} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function UZ(){}var HN={};C(HN,{up:()=>JZ,down:()=>XZ});import{sql as PZ}from"kysely";async function JZ(_){await PZ`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 XZ(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var RN={};C(RN,{up:()=>ZZ,down:()=>WZ,ACTIONS:()=>MN});import{sql as d_}from"kysely";var MN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],QZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function ZZ(_){await rT(_,MN)}async function WZ(_){await rT(_,MN.filter((x)=>!QZ.has(x)))}async function rT(_,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 BN={};C(BN,{up:()=>LZ,down:()=>FZ});import{sql as jZ}from"kysely";async function LZ(_){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(jZ`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 FZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var ON={};C(ON,{up:()=>DZ,down:()=>HZ,ACTIONS:()=>GN});import{sql as b_}from"kysely";var GN=["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"],YZ=new Set(["merge_conflict_resolution"]);async function DZ(_){await lT(_,GN)}async function HZ(_){await lT(_,GN.filter((x)=>!YZ.has(x)))}async function lT(_,x){await b_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await b_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${b_.join(x.map((u)=>b_.lit(u)))}))`.execute(_)}var SN={};C(SN,{up:()=>MZ,down:()=>RZ});import{sql as F_}from"kysely";async function MZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await F_`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 RZ(_){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 F_`
|
|
1723
1736
|
create index idx_org_billing_benefits_pending
|
|
1724
1737
|
on organization_billing (updated_at)
|
|
1725
1738
|
where benefits_reference_id is not null
|
|
1726
|
-
`.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_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(F_`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(F_`now()`)).execute()}var
|
|
1739
|
+
`.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_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(F_`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(F_`now()`)).execute()}var fN={};C(fN,{up:()=>BZ,down:()=>GZ});import{sql as s_}from"kysely";async function BZ(_){await s_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await s_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function GZ(_){await s_`
|
|
1727
1740
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1728
1741
|
RETURNS trigger AS $fn$
|
|
1729
1742
|
BEGIN
|
|
@@ -1749,35 +1762,35 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1749
1762
|
BEFORE INSERT ON connection_aggregations
|
|
1750
1763
|
FOR EACH ROW
|
|
1751
1764
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1752
|
-
`.execute(_)}var
|
|
1765
|
+
`.execute(_)}var AN={};C(AN,{up:()=>OZ,down:()=>SZ});import{sql as eT}from"kysely";async function OZ(_){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(eT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(eT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function SZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var IN={};C(IN,{up:()=>fZ,down:()=>AZ});import{sql as dT}from"kysely";async function fZ(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(dT`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(dT`now()`)).execute()}async function AZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var VN={};C(VN,{up:()=>IZ,down:()=>yZ});import{sql as yN}from"kysely";async function IZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(yN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await yN`
|
|
1753
1766
|
create index idx_task_quota_claims_org_period_live
|
|
1754
1767
|
on task_quota_claims (organization_id, period_key)
|
|
1755
1768
|
where state <> 'released'
|
|
1756
|
-
`.execute(_)}async function
|
|
1769
|
+
`.execute(_)}async function yZ(_){await yN`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 wN={};C(wN,{up:()=>VZ,down:()=>wZ});async function VZ(_){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 wZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var kN={};C(kN,{up:()=>kZ,down:()=>nZ});async function kZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function nZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var nN={};C(nN,{up:()=>vZ,down:()=>pZ});import{sql as bT}from"kysely";async function vZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(bT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(bT`monthly_task_executions > 0`)).execute()}async function pZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var vN={};C(vN,{up:()=>qZ,down:()=>iZ});import{sql as gZ}from"kysely";async function qZ(_){await gZ`
|
|
1757
1770
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1758
1771
|
ON task_board_items (updated_at, id)
|
|
1759
1772
|
WHERE status = 'in_review'
|
|
1760
1773
|
AND assignee_id = 'super-agent'
|
|
1761
1774
|
AND dismissed_at IS NULL
|
|
1762
|
-
`.execute(_)}async function
|
|
1775
|
+
`.execute(_)}async function iZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var pN={};C(pN,{up:()=>cZ,down:()=>hZ});import{sql as sT}from"kysely";async function cZ(_){await sT`
|
|
1763
1776
|
ALTER TABLE task_board_items
|
|
1764
1777
|
ADD COLUMN last_swept_at timestamptz
|
|
1765
|
-
`.execute(_)}async function
|
|
1778
|
+
`.execute(_)}async function hZ(_){await sT`
|
|
1766
1779
|
ALTER TABLE task_board_items
|
|
1767
1780
|
DROP COLUMN last_swept_at
|
|
1768
|
-
`.execute(_)}var
|
|
1781
|
+
`.execute(_)}var gN={};C(gN,{up:()=>tZ,down:()=>oZ});import{sql as _x}from"kysely";async function tZ(_){await _x`
|
|
1769
1782
|
ALTER TABLE task_board_items
|
|
1770
1783
|
ADD COLUMN retry_at timestamptz,
|
|
1771
1784
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
1772
|
-
`.execute(_),await
|
|
1785
|
+
`.execute(_),await _x`
|
|
1773
1786
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1774
1787
|
ON task_board_items (retry_at)
|
|
1775
1788
|
WHERE retry_at IS NOT NULL
|
|
1776
|
-
`.execute(_)}async function
|
|
1789
|
+
`.execute(_)}async function oZ(_){await _x`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await _x`
|
|
1777
1790
|
ALTER TABLE task_board_items
|
|
1778
1791
|
DROP COLUMN retry_at,
|
|
1779
1792
|
DROP COLUMN retry_attempts
|
|
1780
|
-
`.execute(_)}var
|
|
1793
|
+
`.execute(_)}var iN={};C(iN,{up:()=>aZ,down:()=>rZ});import{sql as qN}from"kysely";async function aZ(_){await qN`
|
|
1781
1794
|
CREATE TABLE org_repo_sync (
|
|
1782
1795
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1783
1796
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1795,11 +1808,11 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1795
1808
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1796
1809
|
UNIQUE (organization_id, volume)
|
|
1797
1810
|
)
|
|
1798
|
-
`.execute(_),await
|
|
1811
|
+
`.execute(_),await qN`
|
|
1799
1812
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1800
1813
|
ON org_repo_sync (organization_id)
|
|
1801
1814
|
WHERE enabled
|
|
1802
|
-
`.execute(_)}async function
|
|
1815
|
+
`.execute(_)}async function rZ(_){await qN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var hN={};C(hN,{up:()=>eZ,down:()=>dZ,ACTIONS:()=>cN});import{sql as xx}from"kysely";var cN=["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"],lZ=new Set(["merge_failed"]);async function eZ(_){await _z(_,cN)}async function dZ(_){await _z(_,cN.filter((x)=>!lZ.has(x)))}async function _z(_,x){await xx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await xx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var tN={};C(tN,{up:()=>bZ,down:()=>sZ});async function bZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function sZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var oN={};C(oN,{up:()=>_6,down:()=>x6});import{sql as x_}from"kysely";async function _6(_){await x_`
|
|
1803
1816
|
CREATE TABLE org_jira_integrations (
|
|
1804
1817
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1805
1818
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1838,7 +1851,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1838
1851
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1839
1852
|
UNIQUE (organization_id, jira_comment_id)
|
|
1840
1853
|
)
|
|
1841
|
-
`.execute(_)}async function
|
|
1854
|
+
`.execute(_)}async function x6(_){await x_`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var aN={};C(aN,{up:()=>C6,down:()=>K6});import{sql as u6}from"kysely";async function C6(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await u6`
|
|
1842
1855
|
update task_board_items as t
|
|
1843
1856
|
set key_seq = numbered.seq
|
|
1844
1857
|
from (
|
|
@@ -1851,25 +1864,25 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1851
1864
|
from task_board_items
|
|
1852
1865
|
) as numbered
|
|
1853
1866
|
where t.id = numbered.id
|
|
1854
|
-
`.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
|
|
1867
|
+
`.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 K6(_){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 rN={};C(rN,{up:()=>N6,down:()=>m6});import{sql as xz}from"kysely";async function N6(_){await xz`
|
|
1855
1868
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1856
1869
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1857
1870
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1858
|
-
`.execute(_)}async function
|
|
1871
|
+
`.execute(_)}async function m6(_){await xz`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var eN={};C(eN,{up:()=>T6,down:()=>z6});import{sql as lN}from"kysely";async function T6(_){await lN`
|
|
1859
1872
|
ALTER TABLE thread_message_parts
|
|
1860
1873
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1861
|
-
`.execute(_),await
|
|
1874
|
+
`.execute(_),await lN`
|
|
1862
1875
|
ALTER TABLE thread_message_parts
|
|
1863
1876
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1864
|
-
`.execute(_)}async function
|
|
1877
|
+
`.execute(_)}async function z6(_){await lN`
|
|
1865
1878
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1866
|
-
`.execute(_)}var
|
|
1879
|
+
`.execute(_)}var dN={};C(dN,{up:()=>E6,down:()=>$6});async function E6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function $6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var bN={};C(bN,{up:()=>P6,down:()=>J6});import{sql as U6}from"kysely";async function P6(_){await U6`
|
|
1867
1880
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1868
1881
|
ON task_board_items (updated_at)
|
|
1869
1882
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1870
|
-
`.execute(_)}async function
|
|
1883
|
+
`.execute(_)}async function J6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var sN={};C(sN,{up:()=>X6,down:()=>Q6,TYPES:()=>uz});import{sql as q}from"kysely";var uz=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function X6(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addCheckConstraint("notifications_type_check",q`type IN (${q.join(uz.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
|
|
1871
1884
|
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
|
|
1872
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function
|
|
1885
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function Q6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var _m={};C(_m,{up:()=>Z6,down:()=>W6});import{sql as Cz}from"kysely";async function Z6(_){await Cz`
|
|
1873
1886
|
UPDATE org_jira_integrations
|
|
1874
1887
|
SET status_mapping = (
|
|
1875
1888
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1884,7 +1897,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1884
1897
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1885
1898
|
WHERE jsonb_typeof(value) = 'array'
|
|
1886
1899
|
)
|
|
1887
|
-
`.execute(_)}async function
|
|
1900
|
+
`.execute(_)}async function W6(_){await Cz`
|
|
1888
1901
|
UPDATE org_jira_integrations
|
|
1889
1902
|
SET status_mapping = (
|
|
1890
1903
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1899,7 +1912,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1899
1912
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1900
1913
|
WHERE jsonb_typeof(value) = 'array'
|
|
1901
1914
|
)
|
|
1902
|
-
`.execute(_)}var
|
|
1915
|
+
`.execute(_)}var um={};C(um,{up:()=>L6,down:()=>F6,TYPES:()=>xm});import{sql as ux}from"kysely";var xm=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],j6=new Set(["mentioned"]);async function L6(_){await Kz(_,xm)}async function F6(_){await Kz(_,xm.filter((x)=>!j6.has(x)))}async function Kz(_,x){await ux`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await ux`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${ux.join(x.map((u)=>ux.lit(u)))}))`.execute(_)}var Km={};C(Km,{up:()=>H6,down:()=>M6,ACTIONS:()=>Cm});import{sql as i}from"kysely";var Y6=["bug","feature","chore","spike","security"],Cm=["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"],D6=new Set(["type_changed"]);async function H6(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await i`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${i.join(Y6.map((x)=>i.lit(x)))}))`.execute(_),await Nz(_,Cm)}async function M6(_){await Nz(_,Cm.filter((x)=>!D6.has(x))),await i`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function Nz(_,x){await i`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await i`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${i.join(x.map((u)=>i.lit(u)))}))`.execute(_)}var Nm={};C(Nm,{up:()=>R6,down:()=>B6});import{sql as W}from"kysely";var Tz=["bug","feature","chore","spike","security"],mz="chore";async function R6(_){await W`UPDATE task_board_items SET type = ${W.lit(mz)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(mz)}`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${W.join(Tz.map((x)=>W.lit(x)))}))`.execute(_)}async function B6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(Tz.map((x)=>W.lit(x)))}))`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var mm={};C(mm,{up:()=>G6,down:()=>O6});import{sql as u_}from"kysely";async function G6(_){await u_`
|
|
1903
1916
|
CREATE TABLE task_board_sprints (
|
|
1904
1917
|
id text PRIMARY KEY,
|
|
1905
1918
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1924,34 +1937,34 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1924
1937
|
CREATE INDEX idx_task_board_items_sprint
|
|
1925
1938
|
ON task_board_items (organization_id, sprint_id)
|
|
1926
1939
|
WHERE sprint_id IS NOT NULL
|
|
1927
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function
|
|
1940
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function O6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await u_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await u_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var Tm={};C(Tm,{up:()=>f6,down:()=>A6});import{sql as S6}from"kysely";async function f6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function A6(_){await S6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var zm={};C(zm,{up:()=>y6,down:()=>V6});import{sql as I6}from"kysely";async function y6(_){await I6`
|
|
1928
1941
|
UPDATE org_jira_integrations
|
|
1929
1942
|
SET last_synced_at = NULL,
|
|
1930
1943
|
last_sync_error = NULL
|
|
1931
1944
|
WHERE last_synced_at IS NOT NULL
|
|
1932
|
-
`.execute(_)}async function
|
|
1945
|
+
`.execute(_)}async function V6(){}var Em={};C(Em,{up:()=>k6,down:()=>n6});import{sql as w6}from"kysely";async function k6(_){await w6`
|
|
1933
1946
|
UPDATE org_jira_integrations
|
|
1934
1947
|
SET last_synced_at = NULL,
|
|
1935
1948
|
last_sync_error = NULL
|
|
1936
1949
|
WHERE last_synced_at IS NOT NULL
|
|
1937
|
-
`.execute(_)}async function
|
|
1950
|
+
`.execute(_)}async function n6(){}var Um={};C(Um,{up:()=>v6,down:()=>p6});import{sql as $m}from"kysely";async function v6(_){await $m`
|
|
1938
1951
|
ALTER TABLE org_jira_integrations
|
|
1939
1952
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1940
|
-
`.execute(_),await
|
|
1953
|
+
`.execute(_),await $m`
|
|
1941
1954
|
UPDATE org_jira_integrations
|
|
1942
1955
|
SET rescan_pending = true
|
|
1943
1956
|
WHERE last_synced_at IS NULL
|
|
1944
|
-
`.execute(_)}async function
|
|
1957
|
+
`.execute(_)}async function p6(_){await $m`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var Pm={};C(Pm,{up:()=>g6,down:()=>q6});async function g6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function q6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Jm={};C(Jm,{up:()=>i6,down:()=>c6});import{sql as zz}from"kysely";async function i6(_){await zz`
|
|
1945
1958
|
ALTER TABLE invitation
|
|
1946
1959
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1947
|
-
`.execute(_)}async function
|
|
1960
|
+
`.execute(_)}async function c6(_){await zz`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Qm={};C(Qm,{up:()=>h6,down:()=>t6});import{sql as Xm}from"kysely";async function h6(_){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(Xm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Xm`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 Xm`
|
|
1948
1961
|
INSERT INTO task_board_column_automations
|
|
1949
1962
|
(id, organization_id, column_key, prompt)
|
|
1950
1963
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1951
1964
|
FROM org_jira_integrations
|
|
1952
1965
|
WHERE auto_delegate = true
|
|
1953
1966
|
ON CONFLICT DO NOTHING
|
|
1954
|
-
`.execute(_)}async function
|
|
1967
|
+
`.execute(_)}async function t6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Zm={};C(Zm,{up:()=>o6,down:()=>a6});import{sql as Y_}from"kysely";async function o6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
|
|
1955
1968
|
UPDATE task_board_items i
|
|
1956
1969
|
SET review_cycle_started_at = (
|
|
1957
1970
|
SELECT max(a.occurred_at)
|
|
@@ -1967,29 +1980,29 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
1967
1980
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1968
1981
|
AND assignee_id = 'super-agent'
|
|
1969
1982
|
AND dismissed_at IS NULL
|
|
1970
|
-
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function
|
|
1983
|
+
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function a6(_){await Y_`
|
|
1971
1984
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1972
1985
|
ON task_board_items (updated_at, id)
|
|
1973
1986
|
WHERE status = 'in_review'
|
|
1974
1987
|
AND assignee_id = 'super-agent'
|
|
1975
1988
|
AND dismissed_at IS NULL
|
|
1976
|
-
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var
|
|
1989
|
+
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var Wm={};C(Wm,{up:()=>r6,down:()=>l6});import{sql as Ez}from"kysely";async function r6(_){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(Ez`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Ez`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 l6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Lm={};C(Lm,{up:()=>d6,down:()=>b6,ACTIONS:()=>jm});import{sql as Cx}from"kysely";var jm=["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"],e6=new Set(["review_verdict_requested"]);async function d6(_){await $z(_,jm)}async function b6(_){await $z(_,jm.filter((x)=>!e6.has(x)))}async function $z(_,x){await Cx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Cx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Cx.join(x.map((u)=>Cx.lit(u)))}))`.execute(_)}var Fm={};C(Fm,{up:()=>s6,down:()=>_W});import{sql as Kx}from"kysely";async function s6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Kx`
|
|
1977
1990
|
ALTER TABLE task_board_items
|
|
1978
1991
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1979
1992
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
1980
|
-
`.execute(_),await
|
|
1993
|
+
`.execute(_),await Kx`
|
|
1981
1994
|
ALTER TABLE task_board_items
|
|
1982
1995
|
ADD CONSTRAINT task_board_items_board_column_fkey
|
|
1983
1996
|
FOREIGN KEY (board_column_org, status)
|
|
1984
1997
|
REFERENCES task_board_columns (organization_id, key)
|
|
1985
1998
|
ON DELETE RESTRICT
|
|
1986
|
-
`.execute(_)}async function
|
|
1999
|
+
`.execute(_)}async function _W(_){await Kx`
|
|
1987
2000
|
ALTER TABLE task_board_items
|
|
1988
2001
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
1989
|
-
`.execute(_),await
|
|
2002
|
+
`.execute(_),await Kx`
|
|
1990
2003
|
ALTER TABLE task_board_items
|
|
1991
2004
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
1992
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
2005
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var Ym={};C(Ym,{up:()=>xW,down:()=>uW});async function xW(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function uW(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Hm={};C(Hm,{up:()=>KW,down:()=>NW,ACTIONS:()=>Dm});import{sql as Nx}from"kysely";var Dm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],CW=new Set(["sprint_changed"]);async function KW(_){await Uz(_,Dm)}async function NW(_){await Uz(_,Dm.filter((x)=>!CW.has(x)))}async function Uz(_,x){await Nx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Nx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Nx.join(x.map((u)=>Nx.lit(u)))}))`.execute(_)}var Mm={};C(Mm,{up:()=>TW,down:()=>zW});import{sql as mW}from"kysely";async function TW(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(mW`'[]'::jsonb`)).execute()}async function zW(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Rm={};C(Rm,{up:()=>EW,down:()=>$W});import{sql as Pz}from"kysely";async function EW(_){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(Pz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Pz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function $W(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Bm={};C(Bm,{up:()=>PW,down:()=>JW});import{sql as UW}from"kysely";async function PW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await UW`
|
|
1993
2006
|
UPDATE task_board_items i
|
|
1994
2007
|
SET external_url = t.url,
|
|
1995
2008
|
description = CASE
|
|
@@ -2008,11 +2021,11 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
2008
2021
|
ON g.organization_id = l.organization_id
|
|
2009
2022
|
) t
|
|
2010
2023
|
WHERE t.item_id = i.id
|
|
2011
|
-
`.execute(_)}async function
|
|
2024
|
+
`.execute(_)}async function JW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Gm={};C(Gm,{up:()=>QW,down:()=>ZW,ACTIONS:()=>Jz});import{sql as X}from"kysely";var XW=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Jz=["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 QW(_){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`
|
|
2012
2025
|
UPDATE task_board_items
|
|
2013
2026
|
SET status = 'triage'
|
|
2014
|
-
WHERE status NOT IN (${X.join(
|
|
2015
|
-
`.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
|
|
2027
|
+
WHERE status NOT IN (${X.join(XW.map((x)=>X.lit(x)))})
|
|
2028
|
+
`.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 WW(_,Jz),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
|
|
2016
2029
|
ALTER TABLE task_board_item_jira_links
|
|
2017
2030
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
2018
2031
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -2024,7 +2037,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
2024
2037
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
2025
2038
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
2026
2039
|
DROP COLUMN IF EXISTS rescan_pending
|
|
2027
|
-
`.execute(_)}async function
|
|
2040
|
+
`.execute(_)}async function ZW(){}async function WW(_,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 Om={};C(Om,{up:()=>jW,down:()=>LW});import{sql as C_}from"kysely";async function jW(_){await C_`
|
|
2028
2041
|
ALTER TABLE task_board_items
|
|
2029
2042
|
ADD COLUMN IF NOT EXISTS source text
|
|
2030
2043
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
@@ -2045,24 +2058,24 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
2045
2058
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2046
2059
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
2047
2060
|
)
|
|
2048
|
-
`.execute(_)}async function
|
|
2061
|
+
`.execute(_)}async function LW(_){await C_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await C_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await C_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var Sm={};C(Sm,{up:()=>FW,down:()=>YW});import{sql as D_}from"kysely";async function FW(_){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(D_`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(D_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).execute(),await D_`
|
|
2049
2062
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
2050
2063
|
ON organization_notices (organization_id)
|
|
2051
2064
|
WHERE resolved_at IS NULL
|
|
2052
2065
|
`.execute(_),await D_`
|
|
2053
2066
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
2054
2067
|
ON organization_notices (organization_id, created_at DESC)
|
|
2055
|
-
`.execute(_)}async function
|
|
2068
|
+
`.execute(_)}async function YW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Am={};C(Am,{up:()=>AW,down:()=>IW});import{sql as fm}from"kysely";import{sql as J5}from"kysely";var Xz=50000000,DW=1e5;function HW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>DW)return 1/0;let m=K.pop();if(typeof m==="string")u+=m.length;else if(Array.isArray(m))for(let T of m)K.push(T);else if(m!==null&&typeof m==="object")for(let T of Object.values(m))K.push(T)}return u}var MW=/\u0000/g,RW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,BW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,GW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,OW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function SW(_){return _.replace(MW,"").replace(RW,"\uFFFD").replace(BW,"$1***@").replace(GW,"$1***").replace(OW,"[base64 data omitted]")}function fW(_){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 Qz(_){if(HW(_,Xz)>Xz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return SW(u);if(fW(u))return{type:"text",text:"[image omitted]"};return u})}var Zz=20;async function AW(_){let x=await fm`
|
|
2056
2069
|
SELECT id FROM thread_message_parts
|
|
2057
2070
|
WHERE pg_column_size(payload) > 8192
|
|
2058
2071
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
2059
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
2072
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=Zz){let N=x.rows.slice(u,u+Zz).map((m)=>m.id),K=await fm`
|
|
2060
2073
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
|
|
2061
|
-
`.execute(_);for(let m of K.rows){let T=
|
|
2074
|
+
`.execute(_);for(let m of K.rows){let T=Qz(m.payload);if(T===JSON.stringify(m.payload))continue;await fm`
|
|
2062
2075
|
UPDATE thread_message_parts
|
|
2063
2076
|
SET payload = ${T}::jsonb
|
|
2064
2077
|
WHERE id = ${m.id}
|
|
2065
|
-
`.execute(_)}}}async function
|
|
2078
|
+
`.execute(_)}}}async function IW(){}var Im={};C(Im,{up:()=>yW,down:()=>VW});async function yW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function VW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var ym={};C(ym,{up:()=>wW,down:()=>kW});import{sql as U}from"kysely";async function wW(_){await U`
|
|
2066
2079
|
CREATE TABLE git_provider_accounts (
|
|
2067
2080
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
2068
2081
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2306,11 +2319,11 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
2306
2319
|
AND r.organization_id = s.organization_id
|
|
2307
2320
|
AND r.host = 'github.com'
|
|
2308
2321
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
|
|
2309
|
-
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function
|
|
2322
|
+
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function kW(_){await U`
|
|
2310
2323
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
2311
2324
|
`.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
|
|
2312
2325
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
2313
|
-
`.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var
|
|
2326
|
+
`.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var Vm={};C(Vm,{up:()=>vW,down:()=>pW});import{sql as I}from"kysely";var nW=I`
|
|
2314
2327
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
2315
2328
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
2316
2329
|
BEGIN
|
|
@@ -2319,7 +2332,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
2319
2332
|
RETURN NULL;
|
|
2320
2333
|
END;
|
|
2321
2334
|
$$
|
|
2322
|
-
`;async function
|
|
2335
|
+
`;async function vW(_){await nW.execute(_),await I`
|
|
2323
2336
|
ALTER TABLE connections
|
|
2324
2337
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2325
2338
|
`.execute(_),await I`
|
|
@@ -2381,21 +2394,21 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
2381
2394
|
AND r.host = 'github.com'
|
|
2382
2395
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
2383
2396
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
2384
|
-
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function
|
|
2397
|
+
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function pW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
|
|
2385
2398
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
2386
|
-
`.execute(_)}var kW={"001-initial-schema":Zu,"002-organization-settings":Wu,"003-connection-schema-align":Lu,"004-remove-models-binding":ju,"005-connection-configuration":Fu,"006-add-views-to-settings":Yu,"007-monitoring-logs":Du,"008-event-bus":Hu,"009-drop-audit-logs":Mu,"010-gateways":Ru,"011-gateway-icon":Bu,"012-gateway-tool-selection-mode":Gu,"013-monitoring-user-agent-gateway":Ou,"014-gateway-resources-prompts":Su,"015-monitoring-properties":fu,"016-downstream-token-client-info":Au,"017-downstream-token-remove-userid":Iu,"018-drop-gateway-tool-selection-strategy":yu,"019-remove-gateway-is-default":Vu,"020-enabled-plugins":wu,"021-threads":ku,"022-rename-gateway-to-virtual-mcp":nu,"023-optimize-thread-indexes":vu,"024-consolidate-virtual-mcp":pu,"025-add-monitoring-virtual-mcp-id":gu,"026-restrict-child-connection-delete":qu,"027-update-management-mcp-url":cu,"028-update-management-mcp-to-self":tu,"029-add-updated-by-to-connections":ou,"030-member-tags":au,"031-add-dependency-mode":ru,"032-projects":lu,"033-thread-status":eu,"034-monitoring-dashboards":du,"035-project-connections":su,"036-update-registry-url":bu,"037-ai-provider-keys":_C,"038-oauth-pkce-states":xC,"039-automations":uC,"040-replace-next-run-at-with-last-run-at":CC,"041-ai-provider-keys-unique-constraint":KC,"042-rename-mesh-mcp-to-cms-mcp":NC,"043-rename-cms-mcp-to-deco-cms":mC,"044-drop-connections-tools-column":TC,"045-thread-context-start-message":zC,"046-remove-object-storage-plugin":$C,"047-add-next-run-at":UC,"048-merge-projects-agents":JC,"049-remove-org-admin-projects":XC,"050-durable-agent-runs":QC,"051-org-sso":WC,"052-thread-agent-ids":LC,"053-registry-config":jC,"054-connection-slug":YC,"055-spaces":DC,"056-automation-project-scope":HC,"057-thread-virtual-mcp-id":MC,"058-trigger-callback-tokens":RC,"059-kv":BC,"060-member-index":GC,"061-downstream-token-connection-index":OC,"062-private-registry":SC,"063-event-subscriptions-enabled-boolean":fC,"064-brand-context":AC,"065-organization-domains":IC,"066-brand-context-structured":yC,"067-threads-metadata":VC,"068-threads-branch":wC,"069-sandbox-runner-state":kC,"070-model-categories":nC,"071-default-home-agents":vC,"072-ai-provider-key-preset-id":pC,"073-backfill-basic-usage-roles":gC,"074-sandbox-runner-state-handle-nonunique":qC,"075-thread-inflight-async-jobs":iC,"076-automations-drop-agent-json":cC,"077-tier-only-model-selection":tC,"078-automation-tool-call-kind":oC,"079-strip-legacy-freestyle-vm-map-entries":aC,"080-async-research-jobs":rC,"081-async-research-jobs-result-content":lC,"082-secrets":eC,"083-thread-run-locally":dC,"084-drop-host-sandbox-rows":sC,"085-rename-runner-kind":bC,"086-thread-pins-and-vm-map-rekey":_K,"087-fix-vm-map-rekey":xK,"088-purge-cli-activate-keys":uK,"089-rename-remote-user-to-desktop":CK,"090-automation-webhook-triggers":KK,"091-organization-domains-allow-multi":NK,"092-sandbox-naming-uniformization":mK,"093-backfill-global-search-basic-usage":TK,"094-org-file-configs":EK,"095-remove-automation-tool-call-kind":$K,"096-org-file-configs-public-url-base":UK,"097-drop-local-docker-sandbox-state":JK,"098-thread-message-parts":XK,"099-run-fence":QK,"100-link-transport":ZK,"101-cancel-requested-at":WK,"102-observational-agent":LK,"103-revert-observational-agent":jK,"104-agent-sandbox-provider-kind":YK,"105-org-fs":DK,"106-automation-tools":HK,"107-org-fs-public-org":MK,"108-automation-max-agent-steps":RK,"109-thread-message-parts-per-message-seq":BK,"110-backfill-ghs-token-expiry":GK,"111-org-fs-thread-id":OK,"112-org-file-configs-credential-type":SK,"113-thread-failure-reason":fK,"114-run-acked-seq":AK,"115-thread-projected-seq":IK,"116-org-sites":yK,"117-org-file-configs-site-slug":VK,"118-organization-domains-multi-verify":wK,"119-organization-join-requests":kK,"120-org-fs-read-public":nK,"121-org-fs-share-password":vK,"122-split-web-research-tier":qK,"123-connection-credential-vault":iK,"124-drop-thread-projected-seq":cK,"125-github-child-single-parent":hK,"126-task-board":oK,"127-task-board-due-date":aK,"128-reports-only":rK,"129-task-board-assigned-by":lK,"130-task-board-thread-id":eK,"131-task-board-thread-link-cascade":dK,"132-task-board-item-prs":sK,"133-dedupe-duplicate-members":bK,"134-drop-task-board-enabled":_N,"135-task-board-item-fk-cascade":xN,"136-task-board-import-idempotency":uN,"137-agent-sandbox-runner-state":CN,"138-agent-sandbox-sessions":KN,"139-organization-billing":NN,"140-seat-change-log":mN,"141-benefits-sync-pending":TN,"142-stripe-event-watermark":zN,"143-armed-report-url":EN,"144-benefits-pending-index":$N,"145-user-model-preferences":UN,"146-organization-main-agent":PN,"147-drop-agent-sandbox-tables":JN,"148-org-flags":XN,"149-task-board-item-sort-order":QN,"150-task-board-activity":ZN,"151-task-board-tags":LN,"152-repair-connection-slug":FN,"153-task-board-latest-assistant-part-index":YN,"154-task-board-qa-activity":HN,"155-task-board-review-claims":MN,"156-task-board-conflict-activity":BN,"157-drop-seat-billing":GN,"158-drop-github-child-single-parent":ON,"159-task-board-comments":SN,"160-task-quota-billing":fN,"161-task-quota-claim-state":IN,"162-claude-subscriptions":yN,"163-task-board-item-dismissed":VN,"164-per-org-task-quota":wN,"165-task-board-pending-review-index":kN,"166-task-board-last-swept-at":nN,"167-task-board-run-retry":vN,"168-org-repo-sync":gN,"169-task-board-merge-failed-activity":iN,"170-task-board-item-repo":cN,"171-jira-integration":hN,"172-task-board-item-key-seq":tN,"173-thread-github-repo-connection-index":oN,"174-thread-message-parts-persisted-at":rN,"175-task-board-sprints":lN,"176-task-board-done-sweep-index":eN,"177-notifications":dN,"178-jira-status-mapping-array":sN,"179-notification-mentioned":_m,"180-task-board-item-type":um,"181-task-board-item-type-required":Cm,"182-task-board-sprints-entities":Km,"183-drop-jira-jql-filter":Nm,"184-jira-rescan-after-scope-change":mm,"185-jira-rescan-existing-cards":Tm,"186-jira-rescan-pending-flag":Em,"187-task-board-comment-thread":$m,"188-invitation-auto-accept":Um,"189-task-board-column-automations":Jm,"190-task-board-review-cycle-started-at":Xm,"191-task-board-columns":Qm,"192-task-board-verdict-nudge-activity":Wm,"193-task-board-status-column-fk":Lm,"194-jira-link-sprint":jm,"195-task-board-sprint-activity":Ym,"196-task-board-column-tracker-statuses":Dm,"197-task-board-prompts":Hm,"198-task-board-external-url":Mm,"199-drop-jira-mirror-and-org-columns":Rm,"200-jira-run-trigger":Bm,"201-organization-notices":Gm,"202-redact-base64-thread-parts":Sm,"203-task-board-preview-routes":fm,"204-git-provider-accounts-and-repositories":Am,"205-repository-references":Im,"206-repository-consumers":Qu,"207-task-board-prs-repo-idx":Xu,"208-github-connect-flows":Ju,"209-github-installation-authorization":Pu,"210-github-repository-authorization":Ku,"211-user-fs-org":Cu,"212-coding-agent-mcp-excluded":Nu,"213-bitbucket-git-provider":mu,"214-connections-sanitized-id-idx":bx,"215-commerce-discovery-repository":_u,"216-github-cli-auth":uu,"217-experiments":Tu,"218-thread-message-parts-error-idx":zu,"219-task-board-duplicate-reported-activity":$u,"220-jira-automation-continue-pr":Uu,"221-remove-private-registry":Qx,"222-org-git-credentials":Zx,"223-drop-org-main-agent-id":sx,"224-repository-sandbox-image":Wx,"225-thread-analytics-indexes":jx,"226-deco-score-names":Yx,"227-task-board-finding-resolved-activity":Hx,"228-org-voice-config":Xx,"229-jira-automation-from":Mx,"230-project-sidebar":Rx,"231-jira-chat-agent":Bx,"232-task-board-prompt-skills":Ox,"233-remove-jira-chat-agent":fx,"234-task-board-comment-audience":Ax,"235-prune-empty-thread-dirs":Ix,"236-task-board-sprints":Vx,"237-org-sites-project-link":wx,"238-task-board-default-lanes":kx,"239-task-board-retire-old-lanes":nx,"240-task-board-restore-todo":vx,"241-automation-board-column-transition":px,"242-connection-url-slug":gx,"243-experiment-task-board-item":qx,"244-connection-url-slug-rollout-backfill":ix,"245-automation-system-key":cx,"246-automation-pr-ready-trigger":hx,"247-automation-jira-transition":tx,"248-drop-retired-rule-tables":ox,"249-task-board-item-project":ax,"250-github-copilot-subscriptions":rx,"251-org-shared-plans":lx,"252-automation-linked-chat-trigger":ex,"253-automation-pr-builtin-triggers":dx,"254-codex-subscriptions":Ux,"255-order-monitor":Jx,"256-task-board-harness":$x},Nx=kW;import{getMigrations as Q9}from"better-auth/db";import{sso as Z9}from"@better-auth/sso";import{organization as W9}from"@decocms/better-auth/plugins";import{admin as L9,apiKey as j9,jwt as F9,magicLink as Y9,mcp as D9,openAPI as H9}from"better-auth/plugins";import{emailOTP as M9}from"better-auth/plugins/email-otp";import{Kysely as T9,PostgresDialect as Mz}from"kysely";import{Pool as Rz}from"pg";import{homedir as nW}from"os";var vW=new Set(["all","worker","api"]);function pW(_){let x=(_??"").trim();return vW.has(x)?x:"all"}var gW=new Set(["production","development","test"]);function qW(_){let x=(_??"").trim();return gW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function Vm(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return Vm(_,x,N)??u}function iW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),m=K>0?N.slice(0,K).trim():"",T=K>0?N.slice(K+1).trim():"";if(!m||!T){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[m]=T}return x}function cW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function ym(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function hW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Qz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${nW()}/deco`,u=qW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:H_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:H_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),codexUsageUrl:_.CODEX_USAGE_URL||"https://chatgpt.com/backend-api/wham/usage",claudeUsageUrl:_.CLAUDE_USAGE_URL||"https://api.anthropic.com/api/oauth/usage",jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((m)=>m.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((m)=>m.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Vm("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((m)=>m.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:iW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:cW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:ym(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:ym(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:hW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:Vm("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:pW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:ym(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,customerLakeUrl:_.CUSTOMER_LAKE_URL,customerLakeAdminUsername:_.CUSTOMER_LAKE_ADMIN_USERNAME||"customer_lake_user_admin",customerLakeAdminPassword:_.CUSTOMER_LAKE_ADMIN_PASSWORD,customerLakeTenantSecret:_.CUSTOMER_LAKE_TENANT_SECRET,orderMonitorIngestUrl:_.ORDER_MONITOR_INGEST_URL,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:H_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:H_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://assets.decocms.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY,deliveryR2AccountId:_.DELIVERY_R2_ACCOUNT_ID,deliveryR2AccessKeyId:_.DELIVERY_R2_ACCESS_KEY_ID,deliveryR2SecretAccessKey:_.DELIVERY_R2_SECRET_ACCESS_KEY,deliveryR2Bucket:_.DELIVERY_R2_BUCKET,deliveryR2Endpoint:_.DELIVERY_R2_ENDPOINT,deliveryPublicOrigin:_.DELIVERY_PUBLIC_ORIGIN,siteTokenSigningKey:_.DECO_SITE_TOKEN_SIGNING_KEY,cfDeliveryZoneId:_.CF_DELIVERY_ZONE_ID,cfPurgeApiToken:_.CF_PURGE_API_TOKEN};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var tW=null;function K_(){return tW??=Object.freeze(Qz(process.env))}import{createContextKey as dW,metrics as sW,propagation as G5,ROOT_CONTEXT as O5,SpanStatusCode as S5,trace as bW}from"@opentelemetry/api";import{logs as _9,SeverityNumber as wm}from"@opentelemetry/api-logs";import{OTLPLogExporter as I5}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as x9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as w5}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as n5}from"@opentelemetry/instrumentation-runtime-node";import{context as Yj,propagation as Dj,SpanKind as Hj,SpanStatusCode as Mj}from"@opentelemetry/api";var Bj=globalThis.fetch;import{ExportResultCode as vj}from"@opentelemetry/core";import{ExportResultCode as mx}from"@opentelemetry/core";import{mkdir as oW,rename as aW,writeFile as rW}from"fs/promises";import{join as Tx}from"path";class zx{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:mx.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:mx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:mx.FAILED}});return Promise.resolve({code:mx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Tx(this.basePath,x,...N):Tx(this.basePath,...N);if(!this.knownDirs.has(K))await oW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=Tx(K,`.${m}.tmp`),z=Tx(K,m),E=_.join(`
|
|
2399
|
+
`.execute(_)}var gW={"001-initial-schema":ju,"002-organization-settings":Lu,"003-connection-schema-align":Fu,"004-remove-models-binding":Yu,"005-connection-configuration":Du,"006-add-views-to-settings":Hu,"007-monitoring-logs":Mu,"008-event-bus":Ru,"009-drop-audit-logs":Bu,"010-gateways":Gu,"011-gateway-icon":Ou,"012-gateway-tool-selection-mode":Su,"013-monitoring-user-agent-gateway":fu,"014-gateway-resources-prompts":Au,"015-monitoring-properties":Iu,"016-downstream-token-client-info":yu,"017-downstream-token-remove-userid":Vu,"018-drop-gateway-tool-selection-strategy":wu,"019-remove-gateway-is-default":ku,"020-enabled-plugins":nu,"021-threads":vu,"022-rename-gateway-to-virtual-mcp":pu,"023-optimize-thread-indexes":gu,"024-consolidate-virtual-mcp":qu,"025-add-monitoring-virtual-mcp-id":iu,"026-restrict-child-connection-delete":cu,"027-update-management-mcp-url":tu,"028-update-management-mcp-to-self":au,"029-add-updated-by-to-connections":ru,"030-member-tags":lu,"031-add-dependency-mode":eu,"032-projects":du,"033-thread-status":bu,"034-monitoring-dashboards":su,"035-project-connections":_C,"036-update-registry-url":xC,"037-ai-provider-keys":uC,"038-oauth-pkce-states":CC,"039-automations":KC,"040-replace-next-run-at-with-last-run-at":NC,"041-ai-provider-keys-unique-constraint":mC,"042-rename-mesh-mcp-to-cms-mcp":TC,"043-rename-cms-mcp-to-deco-cms":zC,"044-drop-connections-tools-column":EC,"045-thread-context-start-message":$C,"046-remove-object-storage-plugin":PC,"047-add-next-run-at":JC,"048-merge-projects-agents":QC,"049-remove-org-admin-projects":ZC,"050-durable-agent-runs":WC,"051-org-sso":LC,"052-thread-agent-ids":FC,"053-registry-config":YC,"054-connection-slug":HC,"055-spaces":MC,"056-automation-project-scope":RC,"057-thread-virtual-mcp-id":BC,"058-trigger-callback-tokens":GC,"059-kv":OC,"060-member-index":SC,"061-downstream-token-connection-index":fC,"062-private-registry":AC,"063-event-subscriptions-enabled-boolean":IC,"064-brand-context":yC,"065-organization-domains":VC,"066-brand-context-structured":wC,"067-threads-metadata":kC,"068-threads-branch":nC,"069-sandbox-runner-state":vC,"070-model-categories":pC,"071-default-home-agents":gC,"072-ai-provider-key-preset-id":qC,"073-backfill-basic-usage-roles":iC,"074-sandbox-runner-state-handle-nonunique":cC,"075-thread-inflight-async-jobs":hC,"076-automations-drop-agent-json":tC,"077-tier-only-model-selection":aC,"078-automation-tool-call-kind":rC,"079-strip-legacy-freestyle-vm-map-entries":lC,"080-async-research-jobs":eC,"081-async-research-jobs-result-content":dC,"082-secrets":bC,"083-thread-run-locally":sC,"084-drop-host-sandbox-rows":_K,"085-rename-runner-kind":xK,"086-thread-pins-and-vm-map-rekey":uK,"087-fix-vm-map-rekey":CK,"088-purge-cli-activate-keys":KK,"089-rename-remote-user-to-desktop":NK,"090-automation-webhook-triggers":mK,"091-organization-domains-allow-multi":TK,"092-sandbox-naming-uniformization":zK,"093-backfill-global-search-basic-usage":EK,"094-org-file-configs":UK,"095-remove-automation-tool-call-kind":PK,"096-org-file-configs-public-url-base":JK,"097-drop-local-docker-sandbox-state":QK,"098-thread-message-parts":ZK,"099-run-fence":WK,"100-link-transport":jK,"101-cancel-requested-at":LK,"102-observational-agent":FK,"103-revert-observational-agent":YK,"104-agent-sandbox-provider-kind":HK,"105-org-fs":MK,"106-automation-tools":RK,"107-org-fs-public-org":BK,"108-automation-max-agent-steps":GK,"109-thread-message-parts-per-message-seq":OK,"110-backfill-ghs-token-expiry":SK,"111-org-fs-thread-id":fK,"112-org-file-configs-credential-type":AK,"113-thread-failure-reason":IK,"114-run-acked-seq":yK,"115-thread-projected-seq":VK,"116-org-sites":wK,"117-org-file-configs-site-slug":kK,"118-organization-domains-multi-verify":nK,"119-organization-join-requests":vK,"120-org-fs-read-public":pK,"121-org-fs-share-password":gK,"122-split-web-research-tier":cK,"123-connection-credential-vault":hK,"124-drop-thread-projected-seq":tK,"125-github-child-single-parent":oK,"126-task-board":rK,"127-task-board-due-date":lK,"128-reports-only":eK,"129-task-board-assigned-by":dK,"130-task-board-thread-id":bK,"131-task-board-thread-link-cascade":sK,"132-task-board-item-prs":_N,"133-dedupe-duplicate-members":xN,"134-drop-task-board-enabled":uN,"135-task-board-item-fk-cascade":CN,"136-task-board-import-idempotency":KN,"137-agent-sandbox-runner-state":NN,"138-agent-sandbox-sessions":mN,"139-organization-billing":TN,"140-seat-change-log":zN,"141-benefits-sync-pending":EN,"142-stripe-event-watermark":$N,"143-armed-report-url":UN,"144-benefits-pending-index":PN,"145-user-model-preferences":JN,"146-organization-main-agent":XN,"147-drop-agent-sandbox-tables":QN,"148-org-flags":ZN,"149-task-board-item-sort-order":WN,"150-task-board-activity":jN,"151-task-board-tags":FN,"152-repair-connection-slug":DN,"153-task-board-latest-assistant-part-index":HN,"154-task-board-qa-activity":RN,"155-task-board-review-claims":BN,"156-task-board-conflict-activity":ON,"157-drop-seat-billing":SN,"158-drop-github-child-single-parent":fN,"159-task-board-comments":AN,"160-task-quota-billing":IN,"161-task-quota-claim-state":VN,"162-claude-subscriptions":wN,"163-task-board-item-dismissed":kN,"164-per-org-task-quota":nN,"165-task-board-pending-review-index":vN,"166-task-board-last-swept-at":pN,"167-task-board-run-retry":gN,"168-org-repo-sync":iN,"169-task-board-merge-failed-activity":hN,"170-task-board-item-repo":tN,"171-jira-integration":oN,"172-task-board-item-key-seq":aN,"173-thread-github-repo-connection-index":rN,"174-thread-message-parts-persisted-at":eN,"175-task-board-sprints":dN,"176-task-board-done-sweep-index":bN,"177-notifications":sN,"178-jira-status-mapping-array":_m,"179-notification-mentioned":um,"180-task-board-item-type":Km,"181-task-board-item-type-required":Nm,"182-task-board-sprints-entities":mm,"183-drop-jira-jql-filter":Tm,"184-jira-rescan-after-scope-change":zm,"185-jira-rescan-existing-cards":Em,"186-jira-rescan-pending-flag":Um,"187-task-board-comment-thread":Pm,"188-invitation-auto-accept":Jm,"189-task-board-column-automations":Qm,"190-task-board-review-cycle-started-at":Zm,"191-task-board-columns":Wm,"192-task-board-verdict-nudge-activity":Lm,"193-task-board-status-column-fk":Fm,"194-jira-link-sprint":Ym,"195-task-board-sprint-activity":Hm,"196-task-board-column-tracker-statuses":Mm,"197-task-board-prompts":Rm,"198-task-board-external-url":Bm,"199-drop-jira-mirror-and-org-columns":Gm,"200-jira-run-trigger":Om,"201-organization-notices":Sm,"202-redact-base64-thread-parts":Am,"203-task-board-preview-routes":Im,"204-git-provider-accounts-and-repositories":ym,"205-repository-references":Vm,"206-repository-consumers":Wu,"207-task-board-prs-repo-idx":Zu,"208-github-connect-flows":Qu,"209-github-installation-authorization":Xu,"210-github-repository-authorization":mu,"211-user-fs-org":Nu,"212-coding-agent-mcp-excluded":Tu,"213-bitbucket-git-provider":zu,"214-connections-sanitized-id-idx":xu,"215-commerce-discovery-repository":uu,"216-github-cli-auth":Ku,"217-experiments":Eu,"218-thread-message-parts-error-idx":$u,"219-task-board-duplicate-reported-activity":Pu,"220-jira-automation-continue-pr":Ju,"221-remove-private-registry":Wx,"222-org-git-credentials":jx,"223-drop-org-main-agent-id":_u,"224-repository-sandbox-image":Lx,"225-thread-analytics-indexes":Yx,"226-deco-score-names":Hx,"227-task-board-finding-resolved-activity":Rx,"228-org-voice-config":Zx,"229-jira-automation-from":Bx,"230-project-sidebar":Gx,"231-jira-chat-agent":Ox,"232-task-board-prompt-skills":fx,"233-remove-jira-chat-agent":Ix,"234-task-board-comment-audience":yx,"235-prune-empty-thread-dirs":Vx,"236-task-board-sprints":kx,"237-org-sites-project-link":nx,"238-task-board-default-lanes":vx,"239-task-board-retire-old-lanes":px,"240-task-board-restore-todo":gx,"241-automation-board-column-transition":qx,"242-connection-url-slug":ix,"243-experiment-task-board-item":cx,"244-connection-url-slug-rollout-backfill":hx,"245-automation-system-key":tx,"246-automation-pr-ready-trigger":ox,"247-automation-jira-transition":ax,"248-drop-retired-rule-tables":rx,"249-task-board-item-project":lx,"250-github-copilot-subscriptions":ex,"251-org-shared-plans":dx,"252-automation-linked-chat-trigger":bx,"253-automation-pr-builtin-triggers":sx,"254-codex-subscriptions":Jx,"255-order-monitor":Qx,"256-task-board-harness":Ux,"257-task-board-item-hierarchy":Px},mx=gW;import{getMigrations as L9}from"better-auth/db";import{sso as F9}from"@better-auth/sso";import{organization as Y9}from"@decocms/better-auth/plugins";import{admin as D9,apiKey as H9,jwt as M9,magicLink as R9,mcp as B9,openAPI as G9}from"better-auth/plugins";import{emailOTP as O9}from"better-auth/plugins/email-otp";import{Kysely as U9,PostgresDialect as Bz}from"kysely";import{Pool as Gz}from"pg";import{homedir as qW}from"os";var iW=new Set(["all","worker","api"]);function cW(_){let x=(_??"").trim();return iW.has(x)?x:"all"}var hW=new Set(["production","development","test"]);function tW(_){let x=(_??"").trim();return hW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function km(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return km(_,x,N)??u}function oW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),m=K>0?N.slice(0,K).trim():"",T=K>0?N.slice(K+1).trim():"";if(!m||!T){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[m]=T}return x}function aW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function wm(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function rW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Wz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${qW()}/deco`,u=tW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:H_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:H_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),codexUsageUrl:_.CODEX_USAGE_URL||"https://chatgpt.com/backend-api/wham/usage",claudeUsageUrl:_.CLAUDE_USAGE_URL||"https://api.anthropic.com/api/oauth/usage",jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((m)=>m.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((m)=>m.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:km("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((m)=>m.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:oW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:aW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:wm(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:wm(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:rW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:km("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:cW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:wm(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,customerLakeUrl:_.CUSTOMER_LAKE_URL,customerLakeAdminUsername:_.CUSTOMER_LAKE_ADMIN_USERNAME||"customer_lake_user_admin",customerLakeAdminPassword:_.CUSTOMER_LAKE_ADMIN_PASSWORD,customerLakeTenantSecret:_.CUSTOMER_LAKE_TENANT_SECRET,orderMonitorIngestUrl:_.ORDER_MONITOR_INGEST_URL,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:H_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:H_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://assets.decocms.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY,deliveryR2AccountId:_.DELIVERY_R2_ACCOUNT_ID,deliveryR2AccessKeyId:_.DELIVERY_R2_ACCESS_KEY_ID,deliveryR2SecretAccessKey:_.DELIVERY_R2_SECRET_ACCESS_KEY,deliveryR2Bucket:_.DELIVERY_R2_BUCKET,deliveryR2Endpoint:_.DELIVERY_R2_ENDPOINT,deliveryPublicOrigin:_.DELIVERY_PUBLIC_ORIGIN,siteTokenSigningKey:_.DECO_SITE_TOKEN_SIGNING_KEY,cfDeliveryZoneId:_.CF_DELIVERY_ZONE_ID,cfPurgeApiToken:_.CF_PURGE_API_TOKEN};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var lW=null;function K_(){return lW??=Object.freeze(Wz(process.env))}import{createContextKey as x9,metrics as u9,propagation as I8,ROOT_CONTEXT as y8,SpanStatusCode as V8,trace as C9}from"@opentelemetry/api";import{logs as K9,SeverityNumber as nm}from"@opentelemetry/api-logs";import{OTLPLogExporter as n8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as N9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as g8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as i8}from"@opentelemetry/instrumentation-runtime-node";import{context as B5,propagation as G5,SpanKind as O5,SpanStatusCode as S5}from"@opentelemetry/api";var A5=globalThis.fetch;import{ExportResultCode as c5}from"@opentelemetry/core";import{ExportResultCode as Tx}from"@opentelemetry/core";import{mkdir as eW,rename as dW,writeFile as bW}from"fs/promises";import{join as zx}from"path";class Ex{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:Tx.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:Tx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Tx.FAILED}});return Promise.resolve({code:Tx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?zx(this.basePath,x,...N):zx(this.basePath,...N);if(!this.knownDirs.has(K))await eW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=zx(K,`.${m}.tmp`),z=zx(K,m),E=_.join(`
|
|
2387
2400
|
`)+`
|
|
2388
|
-
`;await
|
|
2401
|
+
`;await bW(T,E,{mode:384}),await dW(T,z)}}import{ExportResultCode as r5}from"@opentelemetry/core";import{AggregationTemporality as e5,DataPointType as d5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as C8}from"@opentelemetry/core";var T8=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as d8,LoggerProvider as b8}from"@opentelemetry/sdk-logs";import{detectResources as _3,envDetector as x3,hostDetector as u3,osDetector as C3,processDetector as K3,resourceFromAttributes as N3}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as T3}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as $8}from"@opentelemetry/api-logs";import{NodeSDK as $3}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as P3,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as Q8}from"@opentelemetry/api";var m9="__d",T9=x9("Current request"),z9=1;var Lz=(_)=>{let u=new URL(_.url).searchParams.get(m9);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Fz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(T9);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Lz(T);if(z)return{decision:N_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,m);if(E.decision===N_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:N_.NOT_RECORD}}toString(){return"DebugSampler"}}class Yz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:N_.RECORD_AND_SAMPLED};return{decision:N_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var X3=new N9({preventServerStart:!0}),Q3=new Fz(new Yz(z9));var jz=C9.getTracer("studio","1.0.0"),M_=u9.getMeter("studio","1.0.0"),E9=K9.getLogger("studio","1.0.0"),vm=(_,x,u)=>{let N={},K=u,m=u[u.length-1];if(m!==null&&typeof m==="object"&&!Array.isArray(m)&&!(m instanceof Error)&&Object.getPrototypeOf(m)===Object.prototype)N=m,K=u.slice(0,-1);let T=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");E9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},pm={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{vm(nm.ERROR,"ERROR",_),pm.error(..._)};console.warn=(..._)=>{vm(nm.WARN,"WARN",_),pm.warn(..._)};console.debug=(..._)=>{vm(nm.DEBUG,"DEBUG",_),pm.debug(..._)};var gm,Dz=0,qm=500;function $9(){if(gm)return;let _=performance.now()+qm;gm=setInterval(()=>{let x=performance.now();Dz=Math.max(0,x-_),_=x+qm},qm),gm.unref?.()}function Hz(){return $9(),Dz}var P9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Mz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Rz=400,J9=100,X9=(_)=>({"db.status":_.level==="error"?"error":"success"}),Q9=(_)=>(x)=>{let u=X9(x);if(x.queryDurationMillis>Rz){let N=Hz(),K=N>Rz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:$x()}})}if(P9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function Z9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=$x(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Mz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>J9)if(m)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:T,total:_.totalCount,max:K});return z},(z)=>{throw Mz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Oz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Sz(){try{return K_().databasePgSsl}catch{return!1}}function $x(){try{return K_().databasePoolMax}catch{return 10}}function W9(_){let x=Z9(new Gz({connectionString:_,max:$x(),ssl:Sz(),...Oz})),u=new Bz({pool:x});return{type:"postgres",db:new U9({dialect:u,log:Q9(x)}),pool:x}}function B_(){return K_().databaseUrl}function fz(_){let x=_||B_();return new Bz({pool:new Gz({connectionString:x,max:$x(),ssl:Sz(),...Oz})})}function j9(_){let x=_||B_();return W9(x)}async function Az(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function im(){if(!R_)R_=j9(B_());return R_}async function Iz(_){let u={database:fz(_||B_()),plugins:[Y9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),D9(),H9(),M9(),G9(),B9({loginPage:"/login"}),F9(),R9({sendMagicLink:async()=>{}}),O9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await L9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function cm(_,x){return(await o`
|
|
2389
2402
|
SELECT table_name FROM information_schema.tables
|
|
2390
2403
|
WHERE table_schema='public' AND table_name=${x}
|
|
2391
|
-
`.execute(_)).rows.length>0}async function
|
|
2404
|
+
`.execute(_)).rows.length>0}async function S9(_){if(await cm(_,"plugin_migrations"))return;await o`
|
|
2392
2405
|
CREATE TABLE plugin_migrations (
|
|
2393
2406
|
plugin_id TEXT NOT NULL,
|
|
2394
2407
|
name TEXT NOT NULL,
|
|
2395
2408
|
timestamp TEXT NOT NULL,
|
|
2396
2409
|
PRIMARY KEY (plugin_id, name)
|
|
2397
2410
|
)
|
|
2398
|
-
`.execute(_)}async function
|
|
2411
|
+
`.execute(_)}async function f9(_){if(!await cm(_,"kysely_migration"))return;let x=await o`
|
|
2399
2412
|
SELECT name, timestamp FROM kysely_migration
|
|
2400
2413
|
WHERE name LIKE '%/%'
|
|
2401
2414
|
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let K=u;if(u.includes("~plugins/"))K=u.substring(u.indexOf("~plugins/")+9);let m=K.indexOf("/");if(m===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let T=K.substring(0,m),z=K.substring(m+1);try{await o`
|
|
@@ -2406,6 +2419,6 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
|
|
|
2406
2419
|
WHERE plugin_id = ${T} AND name = ${z}
|
|
2407
2420
|
`.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${T}/${z}, keeping in old table`);continue}}await o`
|
|
2408
2421
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
2409
|
-
`.execute(_)}}async function
|
|
2422
|
+
`.execute(_)}}async function A9(_){if(!await cm(_,"kysely_migration"))return{};let{rows:x}=await o`
|
|
2410
2423
|
SELECT name FROM kysely_migration
|
|
2411
|
-
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(
|
|
2424
|
+
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(mx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function I9(_){await S9(_),await f9(_);let x=new yz({db:_,provider:{getMigrations:async()=>({...await A9(_),...mx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((m)=>{if(m.status==="Success")K++;else if(m.status==="Error")console.error(`Failed to execute migration "${m.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function y9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Iz();let m=u??im(),T=async()=>{if(!x&&!u)await Az(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await I9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function t3(){let _=im(),x=new yz({db:_.db,provider:{getMigrations:()=>Promise.resolve(mx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await y9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{I9 as runKyselyMigrations,y9 as migrateToLatest,t3 as migrateDown};
|