decocms 4.526.2 → 4.527.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-CwNMVlsU.js → ActiveShapeUtils-CLeQm0q6.js} +1 -1
- package/dist/client/assets/{AlertCircle-BQ7gdGwO.js → AlertCircle-D9_evsvO.js} +1 -1
- package/dist/client/assets/{AreaChart-2TBYeD3-.js → AreaChart-D4vFJ6vT.js} +1 -1
- package/dist/client/assets/{ArrowLeft-CzKuuRT3.js → ArrowLeft-B6qwUpLq.js} +1 -1
- package/dist/client/assets/{ArrowUp-hmPXempM.js → ArrowUp-Cth_eVmU.js} +1 -1
- package/dist/client/assets/{BarChart-CqU2QH_G.js → BarChart-DLJTWg68.js} +1 -1
- package/dist/client/assets/{Building02-BP04ade-.js → Building02-Wh9pimKL.js} +1 -1
- package/dist/client/assets/{CartesianChart-B5qhARMe.js → CartesianChart-DgnFHqiR.js} +1 -1
- package/dist/client/assets/{CategoricalChart-GePqKrAt.js → CategoricalChart-ChFkF0_C.js} +1 -1
- package/dist/client/assets/{CheckCircle-BVnx66vP.js → CheckCircle-DoJXwawU.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-D6sC3Vmb.js → ChevronSelectorVertical-CnRBP_5y.js} +1 -1
- package/dist/client/assets/{ChevronUp-B84nbyaB.js → ChevronUp-7SZxJu8w.js} +1 -1
- package/dist/client/assets/{Copy01-Bac6SVw1.js → Copy01-Bu20fOqK.js} +1 -1
- package/dist/client/assets/{CreditCard01-t317btce.js → CreditCard01-Br0-9pHI.js} +1 -1
- package/dist/client/assets/{DotsVertical-DjAfwlFJ.js → DotsVertical-OSj5km5S.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-DRnbzo4s.js → ErrorBarContext-BvjdLnvD.js} +1 -1
- package/dist/client/assets/{Globe04-DSBhW1To.js → Globe04-D4srY_QI.js} +1 -1
- package/dist/client/assets/{Image01-CNDErtLw.js → Image01-CzYWCBEQ.js} +1 -1
- package/dist/client/assets/{Key01-C_7n0i1h.js → Key01-C-bam-4X.js} +1 -1
- package/dist/client/assets/{Link01-kTPC8Qx-.js → Link01-DXRUIbxg.js} +1 -1
- package/dist/client/assets/{LinkBroken01-Ps7Q2TgQ.js → LinkBroken01-gdfveCgK.js} +1 -1
- package/dist/client/assets/{Minus-DwgwDeRT.js → Minus-Czu3kpSA.js} +1 -1
- package/dist/client/assets/{Monitor01-DLFV9f_c.js → Monitor01-CruCSnyq.js} +1 -1
- package/dist/client/assets/{Play-CQGngRNi.js → Play-RzA3Niav.js} +1 -1
- package/dist/client/assets/{Plus-DOCl9FQV.js → Plus-BA90GKs1.js} +1 -1
- package/dist/client/assets/{ReferenceLine-BW-WOxqj.js → ReferenceLine-8vT4zADE.js} +1 -1
- package/dist/client/assets/{SearchMd-BbTaBsWc.js → SearchMd-DO1eOJvD.js} +1 -1
- package/dist/client/assets/{Sector-CZev-ohv.js → Sector-Duu5xYm_.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-2qRSy_0A.js → ShoppingBag01-BuVMkUkJ.js} +1 -1
- package/dist/client/assets/{Sun-Cdvulc3r.js → Sun-Cg4UcsIP.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-DM99h8Bb.js → SwitchHorizontal01-D_E9YPjp.js} +1 -1
- package/dist/client/assets/{Tool01-C4vr_Fbq.js → Tool01-BJdrlQAn.js} +1 -1
- package/dist/client/assets/{Trash01-7cnh0-6j.js → Trash01-DcsYDVg8.js} +1 -1
- package/dist/client/assets/{Upload01-DJferCdW.js → Upload01-CYUmJE5W.js} +1 -1
- package/dist/client/assets/{UserSquare-CBDcV-Sr.js → UserSquare-D0z8lAkn.js} +1 -1
- package/dist/client/assets/{Users01-hfFVY4Rg.js → Users01-Y9yFg_2K.js} +1 -1
- package/dist/client/assets/{XClose-B2l9VhGF.js → XClose-DIFkFXp0.js} +1 -1
- package/dist/client/assets/{ZoomOut-CeC9MLz9.js → ZoomOut-rfozMzwP.js} +1 -1
- package/dist/client/assets/{access-gate-BanurxIu.js → access-gate-5CuwEsfU.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-DarQ1krm.js → add-connection-dialog-Dl0GCijo.js} +1 -1
- package/dist/client/assets/agent-analytics-DekAZPEA.js +1 -0
- package/dist/client/assets/agent-app-CTIntyRO.js +1 -0
- package/dist/client/assets/{agent-assets-vnboyQof.js → agent-assets-Bca92OI9.js} +1 -1
- package/dist/client/assets/{agent-automation-DXTohqIP.js → agent-automation-CMS-kRWl.js} +1 -1
- package/dist/client/assets/{agent-automations-BFozFJzs.js → agent-automations-BnnaEANZ.js} +1 -1
- package/dist/client/assets/{agent-calendar-DVHehu_x.js → agent-calendar-BOwlx26G.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-CwKjdmVU.js → agent-connect-sources-BXy938hL.js} +1 -1
- package/dist/client/assets/agent-deck-Blwg0xlI.js +1 -0
- package/dist/client/assets/{agent-e2e-DinWmv8w.js → agent-e2e-C129i6b0.js} +1 -1
- package/dist/client/assets/agent-experiments-Dh0XTNYQ.js +1 -0
- package/dist/client/assets/{agent-file-CXwfpXiU.js → agent-file-Pm-Pf6i7.js} +1 -1
- package/dist/client/assets/{agent-hosting-Drya8fUU.js → agent-hosting-d0mTmoi-.js} +1 -1
- package/dist/client/assets/{agent-icon-Bo37g0fF.js → agent-icon-C1y4Hi5E.js} +1 -1
- package/dist/client/assets/agent-library-BvqNBNnB.js +1 -0
- package/dist/client/assets/agent-library-file-B3CNW-Ur.js +1 -0
- package/dist/client/assets/agent-monitor-CRDNCfA0.js +1 -0
- package/dist/client/assets/{agent-overview-mxgKSo__.js → agent-overview-Dxkm_aaP.js} +1 -1
- package/dist/client/assets/{agent-releases-Bg7ZL_Eh.js → agent-releases-Cm87ANGo.js} +1 -1
- package/dist/client/assets/agent-settings-BO1V25up.js +1 -0
- package/dist/client/assets/{agent-site-editor-BSG_1jHk.js → agent-site-editor-DvH8IVvU.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-C_cxtapJ.js +2 -0
- package/dist/client/assets/agent-site-editor-content-BGtWv50J.js +1 -0
- package/dist/client/assets/agent-site-editor-preview-B0XVbr7I.js +1 -0
- package/dist/client/assets/{agent-view-guard-BHNxFqz2.js → agent-view-guard-DSdm7lha.js} +1 -1
- package/dist/client/assets/agent-view-sQDimm56.js +1 -0
- package/dist/client/assets/{agents-list-LjE12uZe.js → agents-list-3hk3xPXP.js} +1 -1
- package/dist/client/assets/{ai-providers-BnPLndR5.js → ai-providers-CHbdsaF9.js} +1 -1
- package/dist/client/assets/{alert-DGv9RNV8.js → alert-DiPve0LV.js} +1 -1
- package/dist/client/assets/{analytics-sections-BwRAKayH.js → analytics-sections-CQH2mNjC.js} +1 -1
- package/dist/client/assets/{analytics-tab-KcCM-OzF.js → analytics-tab-D1CO6HBg.js} +1 -1
- package/dist/client/assets/api-keys-6VZ4TzW2.js +1 -0
- package/dist/client/assets/{api-keys-BYiu4OiJ.js → api-keys-CsjJKvfD.js} +1 -1
- package/dist/client/assets/{app-editor-Dhabc6r3.js → app-editor-ajdhmZLY.js} +1 -1
- package/dist/client/assets/{asset-utils-BFPFspZC.js → asset-utils-ClXQ82gA.js} +1 -1
- package/dist/client/assets/{auth-BRizJz1-.js → auth-BJe1aOgg.js} +1 -1
- package/dist/client/assets/{auth-catchall-D1S0_WyO.js → auth-catchall-CeL8XspO.js} +1 -1
- package/dist/client/assets/{auth-entry-Bh9wXS29.js → auth-entry-Bux_mJRN.js} +1 -1
- package/dist/client/assets/{auth-split-layout-BvrJixVI.js → auth-split-layout-TRenqsIV.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-DzQvKWuf.js → authenticate-and-persist-oauth-BhtEjQrU.js} +1 -1
- package/dist/client/assets/{automation-list-row-DH4mXmBN.js → automation-list-row-DtC2tENT.js} +1 -1
- package/dist/client/assets/{automation-runs-DJix-DxY.js → automation-runs-BDvJXwcu.js} +1 -1
- package/dist/client/assets/{automations-BGTqqP4a.js → automations-Qapln07Q.js} +1 -1
- package/dist/client/assets/{autosend-DweeW6OU.js → autosend-BKwtMB6P.js} +1 -1
- package/dist/client/assets/{badge-6mumabZP.js → badge-Dne4Jx9I.js} +1 -1
- package/dist/client/assets/{block-document-6D9S2QJM.js → block-document-Cs719bjv.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-CQlVHIqR.js → blocks-preview-workspace-context-DUWc_2XG.js} +1 -1
- package/dist/client/assets/{blocks-tab-states-5o0yQDwk.js → blocks-tab-states-DBqkaxym.js} +1 -1
- package/dist/client/assets/{blog-schema-B1vhzoV7.js → blog-schema-bP1Fdz76.js} +1 -1
- package/dist/client/assets/{buckets-BXoMxN54.js → buckets-DIalMn5g.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-CNSfu0YZ.js → build-improve-prompt-doc-CxMWosB4.js} +1 -1
- package/dist/client/assets/{calendar-lhJ8p0qo.js → calendar-DqTMQkmt.js} +1 -1
- package/dist/client/assets/{capability-load-error-C3GmqKPQ.js → capability-load-error-C2YNxboS.js} +1 -1
- package/dist/client/assets/{category-editor-B-uVQjgp.js → category-editor-DcJjRuKm.js} +1 -1
- package/dist/client/assets/{cdn-tab-MGIcjUqn.js → cdn-tab-qQFB8_vy.js} +1 -1
- package/dist/client/assets/{chart-DgE2oixW.js → chart-CnvxVWLO.js} +1 -1
- package/dist/client/assets/{chat-context-BfN3Aasc.js → chat-context-C2Yxk7gW.js} +1 -1
- package/dist/client/assets/{chat-draft-1H_chlRR.js → chat-draft-CoNCF5e9.js} +1 -1
- package/dist/client/assets/{checkbox-BGizxNX2.js → checkbox-5tVptIvn.js} +1 -1
- package/dist/client/assets/{choose-editor-DPHanNqQ.js → choose-editor-he5994Iy.js} +1 -1
- package/dist/client/assets/{cli-auth-success-KhIa1i1d.js → cli-auth-success-C13o6nT8.js} +1 -1
- package/dist/client/assets/{client-icons-BB7vt0gq.js → client-icons-AfqD3us-.js} +1 -1
- package/dist/client/assets/cms-settings-editor-CFLaDl_s.js +1 -0
- package/dist/client/assets/{collapsible-BN3qlGJC.js → collapsible-B_i_flQZ.js} +1 -1
- package/dist/client/assets/{collection-detail-BaXvekU8.js → collection-detail-C5W1nmJm.js} +1 -1
- package/dist/client/assets/{collection-display-button-CFQaHfMS.js → collection-display-button-g8pw1BKa.js} +1 -1
- package/dist/client/assets/{collection-search-INMm_CkT.js → collection-search-DKSj36i2.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-Dt2ctjEE.js → collection-table-wrapper-BRngAqmo.js} +1 -1
- package/dist/client/assets/{collection-tabs-SEBBjtRQ.js → collection-tabs-BVf232LH.js} +1 -1
- package/dist/client/assets/{column-rules-BL4ZPS3s.js → column-rules-CRkg9Fxl.js} +1 -1
- package/dist/client/assets/{combobox-BO0oi3KV.js → combobox-B8zTmLu1.js} +1 -1
- package/dist/client/assets/{command-Cn1kHhQA.js → command-D79ZH19X.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-C6y38zop.js → companion-mcps-section-CthCluci.js} +1 -1
- package/dist/client/assets/{config-BmU_9L81.js → config-94XCayih.js} +1 -1
- package/dist/client/assets/{connect-Bf0Ja-ij.js → connect-DIgUkNj9.js} +1 -1
- package/dist/client/assets/{connect-layout-fE-7a2Jq.js → connect-layout-CH6ZSb5T.js} +1 -1
- package/dist/client/assets/{connect-source-dialog-Cxd2UcNI.js → connect-source-dialog-DPHm5SIR.js} +1 -1
- package/dist/client/assets/{connection-Dizw96b7.js → connection-CiqnzKwe.js} +1 -1
- package/dist/client/assets/{connection-card-D3-Gdl0S.js → connection-card-CgbmOEtZ.js} +1 -1
- package/dist/client/assets/{connection-detail-Chq5IDv2.js → connection-detail-CWZ53gOP.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-DYxyLK9S.js → connection-form-helpers-ntCbPy2n.js} +1 -1
- package/dist/client/assets/{connections-Ba6gsUgY.js → connections-Bt4pwqu3.js} +1 -1
- package/dist/client/assets/{content-tab-gYwhAZMG.js → content-tab--1ooKCUT.js} +3 -3
- package/dist/client/assets/{context-2BuuIfvl.js → context-C0NiIgda.js} +1 -1
- package/dist/client/assets/{context-menu-gP7nFahM.js → context-menu-BAoOyR8J.js} +1 -1
- package/dist/client/assets/{context-shell-sMRc_A5o.js → context-shell-BFW9I6d4.js} +3 -3
- package/dist/client/assets/{core.esm-BdDh475y.js → core.esm-DpydQIdT.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-Ci-3-YrG.js → create-organization-dialog-DKF90Pre.js} +1 -1
- package/dist/client/assets/daily-pulse-Bojl1W7A.js +1 -0
- package/dist/client/assets/{discover-Dgk-X72W.js → discover-CeBBMXm9.js} +1 -1
- package/dist/client/assets/{domain-settings-DXLwO71Z.js → domain-settings-BXAu6Flk.js} +1 -1
- package/dist/client/assets/{drawer-LA3NkA0S.js → drawer-hQxgme01.js} +1 -1
- package/dist/client/assets/{editor-C2vaY1i0.js → editor-C7NsJj0P.js} +1 -1
- package/dist/client/assets/{editor-classes-wrVHQOxp.js → editor-classes-iJqU7okF.js} +1 -1
- package/dist/client/assets/{empty-state-DHgdXyfD.js → empty-state-BGj88Oz3.js} +1 -1
- package/dist/client/assets/{empty-state-BIXUpBao.js → empty-state-Gwq8u3Sk.js} +1 -1
- package/dist/client/assets/{experiments-tab-DOsWoa0_.js → experiments-tab-B8wvIAAX.js} +1 -1
- package/dist/client/assets/{experiments-tab-choice-DdG3xkHn.js → experiments-tab-choice-C-Kj-SaP.js} +1 -1
- package/dist/client/assets/{extract-connection-data-BPic6jPp.js → extract-connection-data-Cx9ah1z5.js} +1 -1
- package/dist/client/assets/{feature-gate-uVlfgQri.js → feature-gate-DTum9WCp.js} +1 -1
- package/dist/client/assets/{feature-paywall-0Gw_Q4lr.js → feature-paywall-zO4dzbka.js} +1 -1
- package/dist/client/assets/{file-explorer-DgWEbnfC.js → file-explorer-Xl96APN-.js} +1 -1
- package/dist/client/assets/{file-preview-BHY7-Pu0.js → file-preview-Bm_62NfP.js} +1 -1
- package/dist/client/assets/{file-share-button-Dj47FtSF.js → file-share-button-D7t2lHex.js} +1 -1
- package/dist/client/assets/{file-type-icon-D98G7WK4.js → file-type-icon-DptKoj-q.js} +1 -1
- package/dist/client/assets/{folder-icon-CMFoNGkh.js → folder-icon-CAAlpUI4.js} +1 -1
- package/dist/client/assets/{form-oXstmc9Q.js → form-DU60ZzuM.js} +1 -1
- package/dist/client/assets/{general-Dg84kr26.js → general-DlFBPmt9.js} +1 -1
- package/dist/client/assets/{held-block-view-CpXdgp7m.js → held-block-view-rUTUNCUd.js} +3 -3
- package/dist/client/assets/{home-DzHhk92o.js → home-Bo_yPeSm.js} +1 -1
- package/dist/client/assets/{icon-button-vGME3QbC.js → icon-button-DhKNS89h.js} +1 -1
- package/dist/client/assets/{index-BBCK9r3-.js → index-7KY_ymC5.js} +1 -1
- package/dist/client/assets/{index-DMyWhhx4.js → index-AaUC9WD6.js} +1 -1
- package/dist/client/assets/{index-DgIUPTVB.js → index-B-HoKvLm.js} +1 -1
- package/dist/client/assets/{index-CUZ1Ro0y.js → index-BoQ6UNxI.js} +1 -1
- package/dist/client/assets/{index-20HoU-20.js → index-Boaq93Wx.js} +1 -1
- package/dist/client/assets/{index-B0CHXOni.js → index-BsRMIjqv.js} +1 -1
- package/dist/client/assets/{index-BVIkRnC2.js → index-BwdKQXWi.js} +1 -1
- package/dist/client/assets/{index-BcT8d0Ct.js → index-Cj3mLa-X.js} +1 -1
- package/dist/client/assets/{index-C4-Z_rKB.js → index-CoQjVodF.js} +1 -1
- package/dist/client/assets/{index-BapUxZWk.js → index-Cp2UI7aA.js} +1 -1
- package/dist/client/assets/{index-DampV2dK.js → index-Cuw4uBth.js} +5 -5
- package/dist/client/assets/{index-BcOdVYcr.js → index-D74iAt06.js} +1 -1
- package/dist/client/assets/{index-CKwkOVRk.js → index-DDaQcb3Z.js} +1 -1
- package/dist/client/assets/{index-CAdTS9ZX.js → index-T8jAgtpZ.js} +1 -1
- package/dist/client/assets/{index-CTcO2Era.js → index-XfVM7o1o.js} +1 -1
- package/dist/client/assets/{index-redirect-BcArEk0h.js → index-redirect-Du4fUGPn.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-koP9jk4d.js → infiniteQueryObserver-Dy0j8RRj.js} +1 -1
- package/dist/client/assets/{infra-billing-Dh0UUr_Y.js → infra-billing-BUQH5Z5B.js} +1 -1
- package/dist/client/assets/{input-B3p7vRnZ.js → input-CBK8CI9T.js} +1 -1
- package/dist/client/assets/{input-nNYp-8x6.js → input-eQkN56jq.js} +3 -3
- package/dist/client/assets/{integration-icon-CiAW8rDV.js → integration-icon-DkmY4VjA.js} +1 -1
- package/dist/client/assets/{jira-icon-CPygEn4Q.js → jira-icon-DIX055Fu.js} +1 -1
- package/dist/client/assets/{label-CjCrcKeN.js → label-GaS9ZdQZ.js} +1 -1
- package/dist/client/assets/{layout-BdGh_t6z.js → layout-D6bYiXJy.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-Cm0fVoJt.js → legacy-agents-deep-DwABkmGV.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-yklNT500.js → legacy-main-redirect-D9RmQuU4.js} +1 -1
- package/dist/client/assets/library--gRfaIdM.js +1 -0
- package/dist/client/assets/{login-zLCkg8LX.js → login-DbWYcBcy.js} +1 -1
- package/dist/client/assets/{markdown-Cqcjq3Xf.js → markdown-DWeSe4_P.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-dATLexqT.js → mcp-app-renderer-gjnt5Msm.js} +1 -1
- package/dist/client/assets/{mcp-oauth-CfI4AoXx.js → mcp-oauth-BN2jrcE-.js} +1 -1
- package/dist/client/assets/{mcp-oauth-CJZC8nld.js → mcp-oauth-DCesmV8O.js} +1 -1
- package/dist/client/assets/{members-4PYMHLuR.js → members-A7hOfyTI.js} +1 -1
- package/dist/client/assets/{memory-C6HI5VGy.js → memory-BToaysGU.js} +1 -1
- package/dist/client/assets/{mini-report-page-pa3awJPv.js → mini-report-page-B-hsDt1L.js} +1 -1
- package/dist/client/assets/mock-board-DrLmLQZ3.js +81 -0
- package/dist/client/assets/{monaco-editor-5y8rZvs2.js → monaco-editor-D7u0RPEL.js} +1 -1
- package/dist/client/assets/{monitoring-CGJWrng1.js → monitoring-VWUfglka.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-CKIqhhys.js → monitoring-stats-row-BHTpzVVz.js} +1 -1
- package/dist/client/assets/{multi-select-B11Nwxds.js → multi-select-A_VyitSa.js} +1 -1
- package/dist/client/assets/{mustache-C57uA7K3.js → mustache-BxO97obl.js} +1 -1
- package/dist/client/assets/{named-rule-uses-ZJHANdK7.js → named-rule-uses-B_glLrdA.js} +1 -1
- package/dist/client/assets/{new-project-dialog-BVdmAMTF.js → new-project-dialog-M-WLwZ47.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-B50P_7pe.js → oauth-callback-ai-provider-DwNEOUuo.js} +1 -1
- package/dist/client/assets/{oauth-callback-Clp9_mQH.js → oauth-callback-eNefWc41.js} +1 -1
- package/dist/client/assets/{onboarding-zwPhPqAT.js → onboarding-8FafpOAf.js} +1 -1
- package/dist/client/assets/{openai-conversation-BH7MRGH3.js → openai-conversation-Bi2qzvSg.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-p4b0qW4M.js → optimistic-project-sidebar-views-BFrvBRmj.js} +1 -1
- package/dist/client/assets/{order-monitor-day-CqO3tTmM.js → order-monitor-day-BBUvq3hr.js} +1 -1
- package/dist/client/assets/{organization-choice-9p7y5Qyt.js → organization-choice-CGhQdnA_.js} +1 -1
- package/dist/client/assets/{orgs-mkCn2L3g.js → orgs-Cp4K5sO3.js} +1 -1
- package/dist/client/assets/{page-seo-form-BsL_nGoH.js → page-seo-form-BUMyGTyK.js} +1 -1
- package/dist/client/assets/{pair-BlVTZ-F_.js → pair-DtCSsufw.js} +1 -1
- package/dist/client/assets/{parse-sections-D3_nSXsH.js → parse-sections-B1uka1Vq.js} +1 -1
- package/dist/client/assets/{plan-ea0rrjrS.js → plan-D4y2SMp_.js} +1 -1
- package/dist/client/assets/{plan-ladder-BQnQ-c-o.js → plan-ladder-Cr-CdTR1.js} +1 -1
- package/dist/client/assets/{popover-C6LRW83t.js → popover-DiqYPKHh.js} +1 -1
- package/dist/client/assets/{post-calendar-DScrSJbD.js → post-calendar-DYyzGtbp.js} +1 -1
- package/dist/client/assets/{post-editor-CEWlJ8jo.js → post-editor-Bcpnqi7N.js} +1 -1
- package/dist/client/assets/{preview-content-C-60FNpz.js → preview-content-BC2_4BBb.js} +1 -1
- package/dist/client/assets/{preview-dialog-CrPz9LUi.js → preview-dialog-DO4TwwDT.js} +1 -1
- package/dist/client/assets/{preview-panel-tI2aO6cK.js → preview-panel-DnnzsZo-.js} +1 -1
- package/dist/client/assets/{preview-tab-CZ3Cot3B.js → preview-tab-DV_MhenF.js} +3 -3
- package/dist/client/assets/{product-picker-dialog-JbKEmFSB.js → product-picker-dialog-D8RlvSwu.js} +1 -1
- package/dist/client/assets/{profile-tb3VLWGr.js → profile-CCof6E-v.js} +1 -1
- package/dist/client/assets/{project-app-view-BN5-NmcY.js → project-app-view-BwcoGS-v.js} +1 -1
- package/dist/client/assets/{project-apps-CUVHvRf7.js → project-apps-dDvUBGvO.js} +1 -1
- package/dist/client/assets/{project-feed-BUL7QZMR.js → project-feed-JqOKyKR3.js} +1 -1
- package/dist/client/assets/{project-icon-C4YSWqLo.js → project-icon-DQNZWn_4.js} +1 -1
- package/dist/client/assets/project-reports-C5SkTKHX.js +1 -0
- package/dist/client/assets/project-tasks-CX44ab5v.js +1 -0
- package/dist/client/assets/{projects-Dd92LlpW.js → projects-D8PEOsfX.js} +1 -1
- package/dist/client/assets/{projects-empty-state-BkJevxQj.js → projects-empty-state-ComRagNK.js} +1 -1
- package/dist/client/assets/{prompts-CjZHwr1o.js → prompts-D-z15mGy.js} +1 -1
- package/dist/client/assets/record-editor-FHEv7gn_.js +1 -0
- package/dist/client/assets/{redirect-editor-CbLBgrtr.js → redirect-editor-BcHXzq7w.js} +1 -1
- package/dist/client/assets/{releases-api-BXtcXUmK.js → releases-api-Dd6sHYpc.js} +1 -1
- package/dist/client/assets/{reports-CjzKQyjq.js → reports-C0wR9iIJ.js} +1 -1
- package/dist/client/assets/reports-DRzidVXr.js +1 -0
- package/dist/client/assets/{reports-onboarding-PhZdbYYv.js → reports-onboarding-B1OyYbCz.js} +1 -1
- package/dist/client/assets/{reports-tab-Cl5b6xq6.js → reports-tab-D1M-BlGe.js} +2 -2
- package/dist/client/assets/{repositories-Df9FHJII.js → repositories-DHT9v-UO.js} +1 -1
- package/dist/client/assets/repositories-Q-unbJnr.js +1 -0
- package/dist/client/assets/{repository-binding-DSYWyWQk.js → repository-binding-CXnxCF4M.js} +1 -1
- package/dist/client/assets/{repository-import-picker-CSAKO3X5.js → repository-import-picker-DLsxOOxp.js} +1 -1
- package/dist/client/assets/{repository-picker-3tqi2Hvb.js → repository-picker-Cq7JBkFe.js} +1 -1
- package/dist/client/assets/{require-capability-CLXh_YYN.js → require-capability-Cmje3DfT.js} +1 -1
- package/dist/client/assets/{required-auth-layout-DMJ9p0SW.js → required-auth-layout-CwX_2fTY.js} +1 -1
- package/dist/client/assets/{reset-password-C8ez-uKX.js → reset-password-CmI8_Uk5.js} +1 -1
- package/dist/client/assets/{resizable-CWhIVRKn.js → resizable-C7Is3s-0.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-l6kvyo7T.js → resolve-tab-icon-_XMXFt4U.js} +1 -1
- package/dist/client/assets/{review-settings-CXbKpHZd.js → review-settings-BFUKsPsq.js} +1 -1
- package/dist/client/assets/{roles-DSB-aYYs.js → roles-CeJo75GF.js} +1 -1
- package/dist/client/assets/{route-C4rRmU6W.js → route-BMliOu1G.js} +1 -1
- package/dist/client/assets/{route-BDXg8II4.js → route-Cvt2392J.js} +1 -1
- package/dist/client/assets/route-DVaDfduX.js +1 -0
- package/dist/client/assets/{sandbox-lifecycle-context-BVJJp5p1.js → sandbox-lifecycle-context-DdYoEP5e.js} +1 -1
- package/dist/client/assets/{schema-BcGVNeII.js → schema-D02aTPkl.js} +1 -1
- package/dist/client/assets/schema-D5UoICKI.js +1 -0
- package/dist/client/assets/{scroll-area-Dbl0Ja6M.js → scroll-area-CDUvVvSH.js} +1 -1
- package/dist/client/assets/{search-input-CI-RscAC.js → search-input-BqT8bImj.js} +1 -1
- package/dist/client/assets/{search-toggle-DfEbn4An.js → search-toggle-BoR9-yak.js} +1 -1
- package/dist/client/assets/{secret-picker-Cki8V7fz.js → secret-picker-vfO2xRLb.js} +1 -1
- package/dist/client/assets/{secrets-CiPY8Xbn.js → secrets-DIgmoPjh.js} +1 -1
- package/dist/client/assets/{section-array-field-DvT6jzl0.js → section-array-field-BwPxgG9_.js} +1 -1
- package/dist/client/assets/{sections-qI0m5KhX.js → sections-Bv_E_JwJ.js} +1 -1
- package/dist/client/assets/{sections-editor-B5DUhp2P.js → sections-editor-2zr-sr1i.js} +1 -1
- package/dist/client/assets/{select-BjOZT7HR.js → select-B73KS7i3.js} +1 -1
- package/dist/client/assets/{select-model-DkLK9HGj.js → select-model-zK4bDPrj.js} +1 -1
- package/dist/client/assets/{seo-editor-D05ebZyJ.js → seo-editor-DMhyWewz.js} +1 -1
- package/dist/client/assets/{separator-CjZHveNE.js → separator-Bun_4c4E.js} +1 -1
- package/dist/client/assets/settings-tab-CdOisIW6.js +1 -0
- package/dist/client/assets/{sheet-DfTFlGFH.js → sheet-56HC7WRJ.js} +1 -1
- package/dist/client/assets/{shell-layout-DDrdQOKB.js → shell-layout-C2BJGx2g.js} +1 -1
- package/dist/client/assets/{site-draft-actions-CGinyKcf.js → site-draft-actions-CSQlnRHC.js} +1 -1
- package/dist/client/assets/{site-draft-view-zFIJN3xy.js → site-draft-view-BaHCN82W.js} +2 -2
- package/dist/client/assets/site-editor-VsNIJVQY.js +1 -0
- package/dist/client/assets/{site-editor-toast-SKvfrYhz.js → site-editor-toast-DQ656FVh.js} +1 -1
- package/dist/client/assets/{skills-B_QDMWu_.js → skills-DJ7eTdb8.js} +1 -1
- package/dist/client/assets/{slider-DrOo7_UG.js → slider-DnA5KcIW.js} +1 -1
- package/dist/client/assets/{sortable.esm-bTAsk8Vk.js → sortable.esm-xXl-6mL4.js} +1 -1
- package/dist/client/assets/{sso-BwNLNHyD.js → sso-CpCZW-eP.js} +1 -1
- package/dist/client/assets/{suggestion-D6r-qU7q.js → suggestion-CZpp719s.js} +1 -1
- package/dist/client/assets/{switch-BaweF4ir.js → switch-n_zXX4if.js} +1 -1
- package/dist/client/assets/{symbol-CJnTkOND.js → symbol-YpIq4fgA.js} +1 -1
- package/dist/client/assets/{synced-repos-BD02afV5.js → synced-repos-B2cUQUNf.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-Dka1P8cQ.js → tab-icon-glyph-D237cGJI.js} +1 -1
- package/dist/client/assets/{table-ByFmIMk8.js → table-CSojOz4z.js} +1 -1
- package/dist/client/assets/{tabs-C_tuCc9E.js → tabs-C8EZr9R7.js} +1 -1
- package/dist/client/assets/{task-assignee-avatar-pNz0ct84.js → task-assignee-avatar-RKc3yRg-.js} +1 -1
- package/dist/client/assets/{task-board-CFm7hWmU.js → task-board-DH9ssxkG.js} +1 -1
- package/dist/client/assets/{task-route-CroNqaC_.js → task-route-bLUOK5JR.js} +1 -1
- package/dist/client/assets/{task-status-SVf_UHQ8.js → task-status-Bc6ioQFn.js} +1 -1
- package/dist/client/assets/{taskboard-analytics-BPmcL0th.js → taskboard-analytics-D7vs-xto.js} +1 -1
- package/dist/client/assets/tasks-DnPEEzRb.js +1 -0
- package/dist/client/assets/{tasks-CcIwJnqw.js → tasks-e6DH9H0h.js} +1 -1
- package/dist/client/assets/{textarea-CiRqIfaf.js → textarea-CDKBkceb.js} +1 -1
- package/dist/client/assets/{thread-analytics-VH5cv6lu.js → thread-analytics-BTiORs_j.js} +1 -1
- package/dist/client/assets/{thread-intent-BAI3Rlfu.js → thread-intent-CZ5_EO2w.js} +1 -1
- package/dist/client/assets/{thread-route-Nzl7YVXC.js → thread-route-BYWxmsao.js} +1 -1
- package/dist/client/assets/{thread-route-DCxAnsEA.js → thread-route-DIZgBacC.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-CpP9OOWv.js → thread-sheet-body-C_1TXm2y.js} +1 -1
- package/dist/client/assets/{time-range-picker-8OmeiBBB.js → time-range-picker-CF_xrXhr.js} +1 -1
- package/dist/client/assets/{toggle-group-DkOJZdVq.js → toggle-group-DGx4bXEF.js} +1 -1
- package/dist/client/assets/{tool-namespace-MjGHB-2n.js → tool-namespace-DO1Qm86o.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-DPdWBHmX.js → toolbar-icon-button-DZE2ESw9.js} +1 -1
- package/dist/client/assets/{tooltip-DZKcSDR4.js → tooltip-Ci3ZwooP.js} +1 -1
- package/dist/client/assets/{tooltipContext-J8gN2jYl.js → tooltipContext-DfN2pXFs.js} +1 -1
- package/dist/client/assets/{track-CPKI19Qd.js → track-BtJWR_CA.js} +1 -1
- package/dist/client/assets/{types-D-tO7eft.js → types-DhOLYbcW.js} +1 -1
- package/dist/client/assets/{url-slug-B3-3kua2.js → url-slug-CLyOdzAm.js} +1 -1
- package/dist/client/assets/{usage-stats-D7pL8W8y.js → usage-stats-CNLGhk-o.js} +1 -1
- package/dist/client/assets/{use-ai-providers-t0yXUakZ.js → use-ai-providers-DOax94rO.js} +1 -1
- package/dist/client/assets/{use-apply-named-rule-x6zm2qwO.js → use-apply-named-rule-CJFPy5HY.js} +1 -1
- package/dist/client/assets/{use-automations-DvxXx4v3.js → use-automations-CPkt7SVV.js} +1 -1
- package/dist/client/assets/{use-autosave-CKJcAkk6.js → use-autosave-yGWalCYV.js} +1 -1
- package/dist/client/assets/{use-chat-layout-state-Be7PCK7m.js → use-chat-layout-state-EYafKK4O.js} +1 -1
- package/dist/client/assets/{use-clock-tick-_wcwwysm.js → use-clock-tick-BUftA4XN.js} +1 -1
- package/dist/client/assets/{use-connect-companion-DqnlsCkr.js → use-connect-companion-BhEYBdV4.js} +1 -1
- package/dist/client/assets/{use-connection-BwtjQBnQ.js → use-connection-eHzowbKv.js} +1 -1
- package/dist/client/assets/{use-content-sync-Cnva7d9w.js → use-content-sync-CsEeS6wP.js} +1 -1
- package/dist/client/assets/{use-copy-CRYT_lEh.js → use-copy-ClerAXdJ.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-B7toVaXI.js → use-create-virtual-mcp-J2E0RhLc.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-DF7pxcBk.js → use-date-fns-locale-CrqyAQep.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-CQ0k7XU4.js → use-debounced-autosave-BVxg8vxx.js} +1 -1
- package/dist/client/assets/{use-debounced-value-BgU5Mlo6.js → use-debounced-value-2_mLSVw4.js} +1 -1
- package/dist/client/assets/{use-deco-credits-DRFtUrcE.js → use-deco-credits-DABk3yY1.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-aPDwNsv_.js → use-decopilot-events-CA56Gos8.js} +1 -1
- package/dist/client/assets/{use-delete-connection-DB3Kupec.js → use-delete-connection-CVhCNDYo.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-2Gp9fLRN.js → use-deployment-admin-BGnnzyoF.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-DfZ_rD3i.js → use-fast-preview-draft-url-DrM2pRhy.js} +1 -1
- package/dist/client/assets/{use-file-configs-DG6lQxbS.js → use-file-configs-Bg-fEAGm.js} +1 -1
- package/dist/client/assets/{use-inbox-feed-BAUqtwyl.js → use-inbox-feed-C9znaZFi.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-_QxCAV2S.js → use-infinite-scroll-DfZZeab5.js} +1 -1
- package/dist/client/assets/{use-join-requests-6CPF_lfc.js → use-join-requests-DHGPKNlr.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-CKFNH0cz.js → use-main-panel-tabs-WUAIV6cr.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-CG_Nglqa.js → use-mcp-auth-status-DZTVEUgz.js} +1 -1
- package/dist/client/assets/{use-mcp-client-Db3WwHkW.js → use-mcp-client-CfpsAKj4.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-D76okIQm.js → use-mcp-prompts-B6wGbsaO.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-BqAiOdl2.js → use-mcp-tools-De9LHWCI.js} +1 -1
- package/dist/client/assets/{use-mobile-BihCEjWm.js → use-mobile-99mfVsUI.js} +1 -1
- package/dist/client/assets/{use-move-blocks-CkTgDd_J.js → use-move-blocks-ChQw5gpw.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-DH-wfLLT.js → use-navigate-to-agent-DaAFktW9.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-BRN6W4Vx.js → use-open-billing-url-Bzh-ntva.js} +1 -1
- package/dist/client/assets/{use-org-fs-DYzo-CVk.js → use-org-fs-Dczc29OI.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-D2UZHvP3.js → use-org-repo-syncs-Cf3GrgqR.js} +1 -1
- package/dist/client/assets/{use-org-sso-dGa9sTJw.js → use-org-sso-CTKiuB0A.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DNM22dA7.js → use-organization-roles-BfeXwaiy.js} +1 -1
- package/dist/client/assets/{use-organization-settings-DOUb81j1.js → use-organization-settings-SIasU_tC.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-BYbZXvp4.js → use-panel-navigate-B12jZOsf.js} +1 -1
- package/dist/client/assets/{use-project-native-view-presence-DaDkyw-s.js → use-project-native-view-presence-BYkoNVb2.js} +1 -1
- package/dist/client/assets/{use-project-scope-JP7EfYKk.js → use-project-scope-8q_Pr-Xb.js} +1 -1
- package/dist/client/assets/{use-recent-apps-CXehLx4B.js → use-recent-apps-0tmI_vdA.js} +1 -1
- package/dist/client/assets/{use-releases-BN_Y86Es.js → use-releases-BrcgpLBE.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-R8fOEnxQ.js → use-reports-diagnostic-DXt6zEk2.js} +1 -1
- package/dist/client/assets/{use-sandbox-events-DoS1U6Xg.js → use-sandbox-events-DukuKdrD.js} +1 -1
- package/dist/client/assets/{use-secrets-D5GrKapk.js → use-secrets-zkQum-du.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-DoGRuc7-.js → use-section-preview-base-CPGTecvC.js} +1 -1
- package/dist/client/assets/{use-session-runtime-Bp29dZ9K.js → use-session-runtime-BkX1p9DX.js} +1 -1
- package/dist/client/assets/{use-sidebar-collapsed-B3wyR6wL.js → use-sidebar-collapsed-DxKpoCm3.js} +1 -1
- package/dist/client/assets/{use-tags-CyP6VoHu.js → use-tags-Cf5XANnQ.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-DIHarjfC.js → use-task-board-analytics-Bm_X5xzM.js} +1 -1
- package/dist/client/assets/{use-task-board-events-BWNw3HI5.js → use-task-board-events-CmQec1Gn.js} +1 -1
- package/dist/client/assets/{use-task-board-item-prs-BhBkGpQk.js → use-task-board-item-prs-CFwgg281.js} +1 -1
- package/dist/client/assets/{use-task-metadata-B9_EDVoX.js → use-task-metadata-ztONCu50.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-DJ-a1GYM.js → use-thread-analytics-D2_R_6NS.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-C5vhvZFZ.js → use-thread-outputs-CM6siwJk.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-DFK0dHSs.js +1 -0
- package/dist/client/assets/{useQueries-DQ6fzXUk.js → useQueries-BmYWSC6K.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BBbMOBX0.js +1 -0
- package/dist/client/assets/{users-CQ7ISHLn.js → users-Tw_qkTX5.js} +1 -1
- package/dist/client/assets/{utils-rLTU2EyK.js → utils-gKN9JfVP.js} +1 -1
- package/dist/client/assets/{variant-calendar-Cc7Av7n-.js → variant-calendar-BPJ1qq_6.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-CMTA6uf4.js → variant-matcher-override-DKBTrcbu.js} +1 -1
- package/dist/client/assets/{virtual-mcp-D2W6CtJ3.js → virtual-mcp-DSjzxtZz.js} +1 -1
- package/dist/client/assets/{watch-sse-pool-Cue4trO6.js → watch-sse-pool-B-BVtIbV.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/migrate.js +195 -195
- package/dist/server/server.js +846 -828
- package/package.json +1 -1
- package/dist/client/assets/agent-analytics-Cazr3KtN.js +0 -1
- package/dist/client/assets/agent-app-C_2G2yFw.js +0 -1
- package/dist/client/assets/agent-deck-DvlsuAfl.js +0 -1
- package/dist/client/assets/agent-experiments-mSZe2g7e.js +0 -1
- package/dist/client/assets/agent-library-CF5liEzt.js +0 -1
- package/dist/client/assets/agent-library-file-CdQ4OD0k.js +0 -1
- package/dist/client/assets/agent-monitor-D_MkJVMA.js +0 -1
- package/dist/client/assets/agent-settings-DEMD2MSc.js +0 -1
- package/dist/client/assets/agent-site-editor-code-CN1FjAA8.js +0 -2
- package/dist/client/assets/agent-site-editor-content-243OnENt.js +0 -1
- package/dist/client/assets/agent-site-editor-preview-BMX4-2ho.js +0 -1
- package/dist/client/assets/agent-view-CC8vCjbP.js +0 -1
- package/dist/client/assets/api-keys-Ix_KjoIE.js +0 -1
- package/dist/client/assets/cms-settings-editor-DwHv5VFb.js +0 -1
- package/dist/client/assets/daily-pulse-Ir1cHSjy.js +0 -1
- package/dist/client/assets/library-DxYyWAwR.js +0 -1
- package/dist/client/assets/mock-board-DKq30aNi.js +0 -81
- package/dist/client/assets/project-reports-BkL-vra7.js +0 -1
- package/dist/client/assets/project-tasks-CkDZssBo.js +0 -1
- package/dist/client/assets/record-editor-dqXrhJSK.js +0 -1
- package/dist/client/assets/reports-Dqbx9vvQ.js +0 -1
- package/dist/client/assets/repositories-CXJpDO8c.js +0 -1
- package/dist/client/assets/route-CBQzhShl.js +0 -1
- package/dist/client/assets/schema-C1grSGu6.js +0 -1
- package/dist/client/assets/settings-tab-D7kokq_E.js +0 -1
- package/dist/client/assets/site-editor-uqa8dwZT.js +0 -1
- package/dist/client/assets/tasks-CAcr5cg4.js +0 -1
- package/dist/client/assets/useInfiniteQuery-gMQYsgHb.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-huohnS0M.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var nz=Object.defineProperty;var vz=(_)=>_;function pz(_,x){this[_]=vz.bind(null,x)}var C=(_,x)=>{for(var u in x)nz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:pz.bind(x,u)})};import{Migrator as kz,sql as o}from"kysely";var Ux={};C(Ux,{up:()=>gz,down:()=>qz});import{sql as om}from"kysely";async function gz(_){await om`
|
|
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 qz(_){await om`ALTER TABLE task_board_items DROP COLUMN IF EXISTS harness_id`.execute(_)}var Px={};C(Px,{up:()=>iz,down:()=>cz});import{sql as G_}from"kysely";async function iz(_){await G_`
|
|
7
7
|
ALTER TABLE task_board_items
|
|
8
8
|
ADD COLUMN IF NOT EXISTS parent_id text NULL
|
|
9
9
|
REFERENCES task_board_items(id) ON DELETE SET NULL,
|
|
@@ -12,16 +12,16 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
12
12
|
CREATE INDEX IF NOT EXISTS idx_task_board_items_parent_id
|
|
13
13
|
ON task_board_items (parent_id)
|
|
14
14
|
WHERE parent_id IS NOT NULL
|
|
15
|
-
`.execute(_)}async function
|
|
15
|
+
`.execute(_)}async function cz(_){await G_`DROP INDEX IF EXISTS idx_task_board_items_parent_id`.execute(_),await G_`
|
|
16
16
|
ALTER TABLE task_board_items
|
|
17
17
|
DROP COLUMN IF EXISTS parent_id,
|
|
18
18
|
DROP COLUMN IF EXISTS is_epic
|
|
19
|
-
`.execute(_)}var Jx={};C(Jx,{up:()=>
|
|
19
|
+
`.execute(_)}var Jx={};C(Jx,{up:()=>hz,down:()=>tz});import{sql as am}from"kysely";async function hz(_){await am`
|
|
20
20
|
ALTER TABLE repositories
|
|
21
21
|
ADD COLUMN IF NOT EXISTS monitor_deploys boolean NOT NULL DEFAULT true
|
|
22
|
-
`.execute(_)}async function
|
|
22
|
+
`.execute(_)}async function tz(_){await am`
|
|
23
23
|
ALTER TABLE repositories DROP COLUMN IF EXISTS monitor_deploys
|
|
24
|
-
`.execute(_)}var Xx={};C(Xx,{up:()=>
|
|
24
|
+
`.execute(_)}var Xx={};C(Xx,{up:()=>oz,down:()=>az});async function oz(_){await _.schema.createTable("demo_board_snapshots").ifNotExists().addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("snapshot","jsonb",(x)=>x.notNull()).addColumn("frozen_item_ids","jsonb",(x)=>x.notNull()).addColumn("pr_cards","jsonb",(x)=>x.notNull()).addColumn("captured_at","timestamptz",(x)=>x.notNull()).addColumn("captured_by","text",(x)=>x.notNull()).addColumn("last_reset_at","timestamptz").addColumn("last_reset_error","text").addColumn("dead_preview_urls","jsonb").execute()}async function az(_){await _.schema.dropTable("demo_board_snapshots").ifExists().execute()}var Qx={};C(Qx,{up:()=>rz,down:()=>lz});async function rz(_){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 lz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Wx={};C(Wx,{up:()=>ez,down:()=>dz,TYPES:()=>Zx});import{sql as m_}from"kysely";var Zx=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function ez(_){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 rm(_,Zx)}async function dz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await rm(_,Zx.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function rm(_,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 jx={};C(jx,{up:()=>bz,down:()=>sz});import{sql as lm}from"kysely";async function bz(_){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",lm`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",lm`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function sz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Lx={};C(Lx,{up:()=>_E,down:()=>xE});import{sql as a}from"kysely";async function _E(_){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
|
|
25
25
|
DROP COLUMN IF EXISTS registry_config,
|
|
26
26
|
DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
|
|
27
27
|
BEGIN RETURN value::jsonb;
|
|
@@ -36,20 +36,20 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
36
36
|
)`.execute(_),await a`DELETE FROM connections
|
|
37
37
|
WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
|
|
38
38
|
OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
|
|
39
|
-
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function
|
|
39
|
+
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function xE(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Fx={};C(Fx,{up:()=>uE,down:()=>CE});import{sql as em}from"kysely";async function uE(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await em`
|
|
40
40
|
select organization_id, metadata
|
|
41
41
|
from connections
|
|
42
42
|
where connection_type = 'VIRTUAL'
|
|
43
43
|
and metadata like '%submoduleCredentials%'
|
|
44
44
|
order by updated_at asc
|
|
45
|
-
`.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
|
|
45
|
+
`.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 em`
|
|
46
46
|
insert into organization_settings
|
|
47
47
|
("organizationId", submodule_credentials, "createdAt", "updatedAt")
|
|
48
48
|
values (${K}, ${T}, ${N}, ${N})
|
|
49
49
|
on conflict ("organizationId") do update
|
|
50
50
|
set submodule_credentials = excluded.submodule_credentials,
|
|
51
51
|
"updatedAt" = excluded."updatedAt"
|
|
52
|
-
`.execute(_)}}async function
|
|
52
|
+
`.execute(_)}}async function CE(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Yx={};C(Yx,{up:()=>KE,down:()=>NE});async function KE(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function NE(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Hx={};C(Hx,{up:()=>mE,down:()=>TE});import{sql as Dx}from"kysely";async function mE(_){await Dx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Dx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Dx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function TE(_){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 Rx={};C(Rx,{up:()=>$E,down:()=>UE});import{sql as G}from"kysely";var zE={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"}},EE={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"}},Mx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function dm(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function bm(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,zE],[G`'commerce-discovery_' || organization_id`,EE]])for(let T of["title","description"]){let{from:z,to:E}=dm(m[T],x);await G`
|
|
53
53
|
UPDATE connections
|
|
54
54
|
SET ${G.ref(T)} = ${E}
|
|
55
55
|
WHERE id = ${K}
|
|
@@ -63,7 +63,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
63
63
|
RETURN NULL;
|
|
64
64
|
END;
|
|
65
65
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
66
|
-
`.execute(_);let{from:u,to:N}=
|
|
66
|
+
`.execute(_);let{from:u,to:N}=dm(Mx.label,x);await G`
|
|
67
67
|
WITH agents AS (
|
|
68
68
|
SELECT id, deco_score_try_jsonb(metadata) AS m
|
|
69
69
|
FROM connections
|
|
@@ -78,7 +78,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
78
78
|
(
|
|
79
79
|
SELECT jsonb_agg(
|
|
80
80
|
CASE
|
|
81
|
-
WHEN v ->> 'toolName' = ${
|
|
81
|
+
WHEN v ->> 'toolName' = ${Mx.toolName}
|
|
82
82
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
83
83
|
THEN v || jsonb_build_object('label', ${N}::text)
|
|
84
84
|
ELSE v
|
|
@@ -94,7 +94,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
94
94
|
AND EXISTS (
|
|
95
95
|
SELECT 1
|
|
96
96
|
FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
|
|
97
|
-
WHERE v ->> 'toolName' = ${
|
|
97
|
+
WHERE v ->> 'toolName' = ${Mx.toolName}
|
|
98
98
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
99
99
|
)
|
|
100
100
|
)
|
|
@@ -102,7 +102,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
102
102
|
SET metadata = r.m::text
|
|
103
103
|
FROM relabeled r
|
|
104
104
|
WHERE c.id = r.id
|
|
105
|
-
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function
|
|
105
|
+
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function $E(_){await bm(_,"up")}async function UE(_){await bm(_,"down")}var Gx={};C(Gx,{up:()=>JE,down:()=>XE,ACTIONS:()=>Bx});import{sql as T_}from"kysely";var Bx=["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"],PE=Bx.filter((_)=>_!=="finding_resolved");async function JE(_){await sm(_,Bx)}async function XE(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await sm(_,PE)}async function sm(_,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 Ox={};C(Ox,{up:()=>QE,down:()=>ZE});import{sql as O_}from"kysely";async function QE(_){await O_`
|
|
106
106
|
ALTER TABLE org_jira_column_automations
|
|
107
107
|
ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
|
|
108
108
|
CONSTRAINT chk_org_jira_column_automations_from_kind
|
|
@@ -113,7 +113,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
113
113
|
ALTER TABLE org_jira_column_automations
|
|
114
114
|
DROP CONSTRAINT org_jira_column_automations_pkey,
|
|
115
115
|
ADD PRIMARY KEY (organization_id, jira_status, from_key)
|
|
116
|
-
`.execute(_)}async function
|
|
116
|
+
`.execute(_)}async function ZE(_){await O_`
|
|
117
117
|
DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
|
|
118
118
|
`.execute(_),await O_`
|
|
119
119
|
ALTER TABLE org_jira_column_automations
|
|
@@ -122,18 +122,18 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
122
122
|
DROP COLUMN from_key,
|
|
123
123
|
DROP COLUMN from_statuses,
|
|
124
124
|
DROP COLUMN from_kind
|
|
125
|
-
`.execute(_)}var
|
|
125
|
+
`.execute(_)}var Sx={};C(Sx,{up:()=>WE,down:()=>jE});import{sql as _T}from"kysely";async function WE(_){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(_T`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(_T`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 jE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Ax={};C(Ax,{up:()=>LE,down:()=>FE});async function LE(){}async function FE(){}var Ix={};C(Ix,{up:()=>YE,down:()=>DE});import{sql as fx}from"kysely";async function YE(_){await fx`
|
|
126
126
|
ALTER TABLE task_board_prompts
|
|
127
127
|
ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
|
|
128
|
-
`.execute(_)}async function
|
|
128
|
+
`.execute(_)}async function DE(_){await fx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await fx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Vx={};C(Vx,{up:()=>HE,down:()=>ME});import{sql as yx}from"kysely";async function HE(_){await yx`
|
|
129
129
|
DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
|
|
130
|
-
`.execute(_),await
|
|
130
|
+
`.execute(_),await yx`
|
|
131
131
|
DELETE FROM connection_aggregations
|
|
132
132
|
WHERE parent_connection_id LIKE 'studio-jira\\_%'
|
|
133
|
-
`.execute(_),await
|
|
133
|
+
`.execute(_),await yx`
|
|
134
134
|
DELETE FROM connections
|
|
135
135
|
WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
|
|
136
|
-
`.execute(_)}async function
|
|
136
|
+
`.execute(_)}async function ME(){}var wx={};C(wx,{up:()=>RE,down:()=>BE});import{sql as xT}from"kysely";async function RE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(xT`audience in ('human', 'internal')`)).execute(),await xT`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function BE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var kx={};C(kx,{up:()=>OE,down:()=>SE});import{sql as GE}from"kysely";async function OE(_){await GE`
|
|
137
137
|
UPDATE org_fs_entry AS d
|
|
138
138
|
SET deleted_at = now(),
|
|
139
139
|
updated_at = now(),
|
|
@@ -152,7 +152,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
152
152
|
AND c.parent = d.path
|
|
153
153
|
AND c.deleted_at IS NULL
|
|
154
154
|
)
|
|
155
|
-
`.execute(_)}async function
|
|
155
|
+
`.execute(_)}async function SE(){}var vx={};C(vx,{up:()=>fE,down:()=>IE,ACTIONS:()=>nx});import{sql as F}from"kysely";var nx=["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"],AE=nx.filter((_)=>_!=="sprint_changed");async function fE(_){await F`
|
|
156
156
|
CREATE TABLE task_board_sprints (
|
|
157
157
|
id text PRIMARY KEY,
|
|
158
158
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -178,12 +178,12 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
178
178
|
CREATE INDEX idx_task_board_items_sprint
|
|
179
179
|
ON task_board_items (organization_id, sprint_id)
|
|
180
180
|
WHERE sprint_id IS NOT NULL
|
|
181
|
-
`.execute(_),await
|
|
181
|
+
`.execute(_),await uT(_,nx)}async function IE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await uT(_,AE),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 uT(_,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 px={};C(px,{up:()=>VE,planOrgSiteProjectLinks:()=>NT,down:()=>wE,applyOrgSiteProjectLinks:()=>mT});import{sql as J}from"kysely";var yE="migration-237",CT=1000;async function KT(_){return(await J`
|
|
182
182
|
SELECT conname FROM pg_constraint
|
|
183
183
|
WHERE conrelid = 'org_sites'::regclass
|
|
184
184
|
AND confrelid = 'organization'::regclass
|
|
185
185
|
AND contype = 'f'
|
|
186
|
-
`.execute(_)).rows[0]?.conname??null}async function
|
|
186
|
+
`.execute(_)).rows[0]?.conname??null}async function NT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
|
|
187
187
|
SELECT slug, organization_id FROM org_sites
|
|
188
188
|
WHERE organization_id IS NOT NULL
|
|
189
189
|
ORDER BY organization_id, slug
|
|
@@ -194,17 +194,17 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
194
194
|
SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
|
|
195
195
|
)
|
|
196
196
|
ORDER BY organization_id, id
|
|
197
|
-
`.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
|
|
197
|
+
`.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 mT(_,x){let u=0;for(let N=0;N<x.length;N+=CT){let K=J.join(x.slice(N,N+CT).map((T)=>J`(${T.slug}::text, ${T.projectId}::text)`)),m=await J`
|
|
198
198
|
UPDATE org_sites o
|
|
199
199
|
SET project_id = v.pid,
|
|
200
200
|
linked_at = now(),
|
|
201
|
-
updated_by = ${
|
|
201
|
+
updated_by = ${yE},
|
|
202
202
|
updated_at = now()
|
|
203
203
|
FROM (VALUES ${K}) AS v(slug, pid)
|
|
204
204
|
WHERE o.slug = v.slug
|
|
205
205
|
AND o.project_id IS NULL
|
|
206
206
|
AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
|
|
207
|
-
`.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function
|
|
207
|
+
`.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function VE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await NT(_);await J`
|
|
208
208
|
ALTER TABLE org_sites
|
|
209
209
|
ADD COLUMN project_id text NULL
|
|
210
210
|
REFERENCES connections(id) ON DELETE SET NULL,
|
|
@@ -212,7 +212,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
212
212
|
`.execute(_),await J`
|
|
213
213
|
CREATE UNIQUE INDEX org_sites_project_id_uq
|
|
214
214
|
ON org_sites (project_id) WHERE project_id IS NOT NULL
|
|
215
|
-
`.execute(_);let u=await
|
|
215
|
+
`.execute(_);let u=await KT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
|
|
216
216
|
ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
|
|
217
217
|
`.execute(_),await J`
|
|
218
218
|
ALTER TABLE org_sites
|
|
@@ -221,12 +221,12 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
221
221
|
ON DELETE SET NULL NOT VALID
|
|
222
222
|
`.execute(_),await J`
|
|
223
223
|
ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
|
|
224
|
-
`.execute(_);let N=await
|
|
224
|
+
`.execute(_);let N=await mT(_,x.links),K=await J`
|
|
225
225
|
UPDATE org_sites SET linked_at = created_at
|
|
226
226
|
WHERE organization_id IS NOT NULL AND linked_at IS NULL
|
|
227
|
-
`.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
|
|
227
|
+
`.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 wE(_){if((await J`
|
|
228
228
|
SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
|
|
229
|
-
`.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
|
|
229
|
+
`.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 KT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
|
|
230
230
|
ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
|
|
231
231
|
`.execute(_),await J`
|
|
232
232
|
ALTER TABLE org_sites
|
|
@@ -235,7 +235,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
235
235
|
ON DELETE CASCADE
|
|
236
236
|
`.execute(_),await J`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await J`
|
|
237
237
|
ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
|
|
238
|
-
`.execute(_)}var
|
|
238
|
+
`.execute(_)}var gx={};C(gx,{up:()=>kE,moveRules:()=>Y,down:()=>nE});import{sql as c}from"kysely";async function kE(_){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`
|
|
239
239
|
DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
|
|
240
240
|
`.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`
|
|
241
241
|
WITH moved AS (
|
|
@@ -263,7 +263,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
263
263
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
264
264
|
now()
|
|
265
265
|
FROM moved
|
|
266
|
-
`.execute(_)}async function
|
|
266
|
+
`.execute(_)}async function nE(){}async function Y(_,x,u,N,K){await c`
|
|
267
267
|
DELETE FROM ${c.table(x)} AS src
|
|
268
268
|
WHERE src.column_key = ${N}
|
|
269
269
|
AND EXISTS (
|
|
@@ -277,7 +277,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
277
277
|
id = ${u} || organization_id || '_' || ${K},
|
|
278
278
|
updated_at = now()
|
|
279
279
|
WHERE column_key = ${N}
|
|
280
|
-
`.execute(_)}var
|
|
280
|
+
`.execute(_)}var qx={};C(qx,{up:()=>pE,down:()=>gE});import{sql as vE}from"kysely";async function pE(_){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 vE`
|
|
281
281
|
WITH moved AS (
|
|
282
282
|
UPDATE task_board_items AS i
|
|
283
283
|
SET status = CASE prev.status
|
|
@@ -301,7 +301,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
301
301
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
302
302
|
now()
|
|
303
303
|
FROM moved
|
|
304
|
-
`.execute(_)}async function
|
|
304
|
+
`.execute(_)}async function gE(){}var ix={};C(ix,{up:()=>iE,down:()=>cE});import{sql as qE}from"kysely";async function iE(_){await qE`
|
|
305
305
|
WITH restored AS (
|
|
306
306
|
UPDATE task_board_items AS i
|
|
307
307
|
SET status = 'todo', updated_at = now()
|
|
@@ -328,7 +328,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
328
328
|
jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
|
|
329
329
|
now()
|
|
330
330
|
FROM restored
|
|
331
|
-
`.execute(_)}async function
|
|
331
|
+
`.execute(_)}async function cE(){}var cx={};C(cx,{up:()=>hE,down:()=>tE});import{sql as L}from"kysely";async function hE(_){await L`
|
|
332
332
|
ALTER TABLE automation_triggers
|
|
333
333
|
ADD COLUMN column_key text,
|
|
334
334
|
ADD COLUMN from_kind text,
|
|
@@ -354,7 +354,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
354
354
|
CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
|
|
355
355
|
ON task_board_activity (occurred_at)
|
|
356
356
|
WHERE action = 'status_changed'
|
|
357
|
-
`.execute(_)}async function
|
|
357
|
+
`.execute(_)}async function tE(_){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`
|
|
358
358
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
359
359
|
CHECK (type IN ('cron', 'event', 'webhook'))
|
|
360
360
|
`.execute(_),await L`
|
|
@@ -362,11 +362,11 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
362
362
|
DROP COLUMN IF EXISTS column_key,
|
|
363
363
|
DROP COLUMN IF EXISTS from_kind,
|
|
364
364
|
DROP COLUMN IF EXISTS from_statuses
|
|
365
|
-
`.execute(_)}var
|
|
365
|
+
`.execute(_)}var hx={};C(hx,{up:()=>lE,down:()=>eE,backfillUrlSlugs:()=>S_});import{sql as D}from"kysely";var zT=64,oE=new Set(["new","edit","settings","apps","projects","connections"]);function aE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function rE(_,x){let u=aE(_??"").slice(0,zT).replace(/-+$/,"");return u.length>=2&&!oE.has(u)?u:x}function TT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,zT-u.length).replace(/-+$/,"")}${u}`}async function S_(_){let{rows:x}=await D`
|
|
366
366
|
SELECT id, organization_id, title, connection_type, url_slug
|
|
367
367
|
FROM connections
|
|
368
368
|
ORDER BY organization_id, created_at, id
|
|
369
|
-
`.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=
|
|
369
|
+
`.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=rE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(TT(E,$)))$++;let P=TT(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`
|
|
370
370
|
UPDATE connections c
|
|
371
371
|
SET url_slug = v.slug
|
|
372
372
|
FROM unnest(
|
|
@@ -374,7 +374,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
374
374
|
${D.val(z.map((E)=>E.slug))}::text[]
|
|
375
375
|
) AS v(id, slug)
|
|
376
376
|
WHERE c.id = v.id AND c.url_slug IS NULL
|
|
377
|
-
`.execute(_)}}async function
|
|
377
|
+
`.execute(_)}}async function lE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
|
|
378
378
|
CREATE TABLE connection_slug_aliases (
|
|
379
379
|
organization_id text NOT NULL,
|
|
380
380
|
slug text NOT NULL,
|
|
@@ -388,18 +388,18 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
388
388
|
`.execute(_),await S_(_),await D`
|
|
389
389
|
CREATE UNIQUE INDEX idx_connections_org_url_slug
|
|
390
390
|
ON connections (organization_id, url_slug)
|
|
391
|
-
`.execute(_)}async function
|
|
391
|
+
`.execute(_)}async function eE(_){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 tx={};C(tx,{up:()=>dE,down:()=>bE});async function dE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function bE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var ox={};C(ox,{up:()=>sE,down:()=>_0});async function sE(_){await S_(_)}async function _0(){}var ax={};C(ax,{up:()=>x0,down:()=>u0});import{sql as A_}from"kysely";async function x0(_){await A_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await A_`
|
|
392
392
|
CREATE UNIQUE INDEX idx_automations_org_system_key
|
|
393
393
|
ON automations (organization_id, system_key)
|
|
394
394
|
WHERE system_key IS NOT NULL
|
|
395
|
-
`.execute(_)}async function
|
|
395
|
+
`.execute(_)}async function u0(_){await A_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await A_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var rx={};C(rx,{up:()=>C0,down:()=>K0});import{sql as z_}from"kysely";async function C0(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
|
|
396
396
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
397
397
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
|
|
398
398
|
'board_pr_ready'))
|
|
399
|
-
`.execute(_)}async function
|
|
399
|
+
`.execute(_)}async function K0(_){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_`
|
|
400
400
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
401
401
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
|
|
402
|
-
`.execute(_)}var
|
|
402
|
+
`.execute(_)}var lx={};C(lx,{up:()=>N0,down:()=>z0});import{sql as H}from"kysely";async function N0(_){let{rows:x}=await H`
|
|
403
403
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
404
404
|
WHERE conname = 'chk_trigger_type'
|
|
405
405
|
AND conrelid = 'automation_triggers'::regclass
|
|
@@ -426,8 +426,8 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
426
426
|
INSERT INTO automations
|
|
427
427
|
(id, organization_id, name, active, created_by, messages, models,
|
|
428
428
|
virtual_mcp_id)
|
|
429
|
-
VALUES (${T}, ${K.organization_id}, ${
|
|
430
|
-
${K.created_by}, ${JSON.stringify(
|
|
429
|
+
VALUES (${T}, ${K.organization_id}, ${m0(K)}, true,
|
|
430
|
+
${K.created_by}, ${JSON.stringify(T0(K.prompt))},
|
|
431
431
|
'{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
|
|
432
432
|
ON CONFLICT (id) DO NOTHING
|
|
433
433
|
`.execute(_),await H`
|
|
@@ -436,11 +436,11 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
436
436
|
VALUES (${`trg_${T}`}, ${T}, 'jira_transition', ${K.jira_status},
|
|
437
437
|
${K.from_kind}, ${K.from_statuses})
|
|
438
438
|
ON CONFLICT (id) DO NOTHING
|
|
439
|
-
`.execute(_)}}function
|
|
440
|
-
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function
|
|
439
|
+
`.execute(_)}}function m0(_){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 T0(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
|
|
440
|
+
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function z0(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
|
|
441
441
|
ALTER TABLE automation_triggers
|
|
442
442
|
DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
|
|
443
|
-
`.execute(_)}var
|
|
443
|
+
`.execute(_)}var ex={};C(ex,{up:()=>E0,down:()=>$0});import{sql as E_}from"kysely";async function E0(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function $0(_){await E_`
|
|
444
444
|
CREATE TABLE IF NOT EXISTS task_board_column_automations (
|
|
445
445
|
id text PRIMARY KEY,
|
|
446
446
|
organization_id text NOT NULL,
|
|
@@ -467,7 +467,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
467
467
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
468
468
|
PRIMARY KEY (organization_id, jira_status, from_key)
|
|
469
469
|
)
|
|
470
|
-
`.execute(_)}var
|
|
470
|
+
`.execute(_)}var dx={};C(dx,{up:()=>U0,down:()=>P0});import{sql as f_}from"kysely";async function U0(_){await f_`
|
|
471
471
|
ALTER TABLE task_board_items
|
|
472
472
|
ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
|
|
473
473
|
REFERENCES connections(id) ON DELETE SET NULL
|
|
@@ -475,22 +475,22 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
475
475
|
CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
|
|
476
476
|
ON task_board_items (virtual_mcp_id)
|
|
477
477
|
WHERE virtual_mcp_id IS NOT NULL
|
|
478
|
-
`.execute(_)}async function
|
|
478
|
+
`.execute(_)}async function P0(_){await f_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await f_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var bx={};C(bx,{up:()=>J0,down:()=>X0});async function J0(_){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 X0(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var sx={};C(sx,{up:()=>Q0,down:()=>Z0});async function Q0(_){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 Z0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var _u={};C(_u,{up:()=>W0,down:()=>j0});import{sql as r}from"kysely";var I_=["linked_chat_run"];async function ET(_){let{rows:x}=await r`
|
|
479
479
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
480
480
|
WHERE conname = 'chk_trigger_type'
|
|
481
481
|
AND conrelid = 'automation_triggers'::regclass
|
|
482
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
482
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function $T(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
|
|
483
483
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
484
484
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
485
|
-
`.execute(_)}async function
|
|
485
|
+
`.execute(_)}async function W0(_){let x=await ET(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await $T(_,x)}async function j0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(I_)})`.execute(_);let x=await ET(_);for(let u of I_)x.delete(u);await $T(_,x)}var xu={};C(xu,{up:()=>L0,down:()=>F0});import{sql as l}from"kysely";var y_=["board_pr_merged","chat_pr_opened"];async function UT(_){let{rows:x}=await l`
|
|
486
486
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
487
487
|
WHERE conname = 'chk_trigger_type'
|
|
488
488
|
AND conrelid = 'automation_triggers'::regclass
|
|
489
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
489
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function PT(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
|
|
490
490
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
491
491
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
492
|
-
`.execute(_)}async function
|
|
493
|
-
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function
|
|
492
|
+
`.execute(_)}async function L0(_){let x=await UT(_);if(y_.every((u)=>x.has(u)))return;for(let u of y_)x.add(u);await PT(_,x)}async function F0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(y_)})`.execute(_);let x=await UT(_);for(let u of y_)x.delete(u);await PT(_,x)}var uu={};C(uu,{up:()=>D0,down:()=>H0});import{sql as Y0}from"kysely";async function D0(_){await Y0`ALTER TABLE organization_settings
|
|
493
|
+
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function H0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var Cu={};C(Cu,{up:()=>M0,down:()=>R0});import{sql as JT}from"kysely";async function M0(_){await JT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function R0(_){await JT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var Ku={};C(Ku,{up:()=>B0,down:()=>G0});import{sql as O}from"kysely";async function B0(_){await O`
|
|
494
494
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
495
495
|
RETURNS jsonb AS $fn$
|
|
496
496
|
BEGIN
|
|
@@ -564,7 +564,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
564
564
|
|| '/' ||
|
|
565
565
|
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
|
|
566
566
|
) = lower(p.path)
|
|
567
|
-
`.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
|
|
567
|
+
`.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 G0(_){await O`
|
|
568
568
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
569
569
|
RETURNS jsonb AS $fn$
|
|
570
570
|
BEGIN
|
|
@@ -591,17 +591,17 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
591
591
|
)::text
|
|
592
592
|
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
593
593
|
AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
|
|
594
|
-
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var
|
|
594
|
+
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var mu={};C(mu,{up:()=>O0,down:()=>S0});import{sql as Nu}from"kysely";async function O0(_){await Nu`ALTER TABLE git_provider_accounts
|
|
595
595
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
596
596
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
597
597
|
CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
|
|
598
598
|
ADD CONSTRAINT git_provider_accounts_cli_check
|
|
599
599
|
CHECK (auth_kind <> 'github_cli' OR
|
|
600
|
-
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function
|
|
600
|
+
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function S0(_){await Nu`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await Nu`ALTER TABLE git_provider_accounts
|
|
601
601
|
DROP CONSTRAINT git_provider_accounts_cli_check,
|
|
602
602
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
603
603
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
604
|
-
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var
|
|
604
|
+
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var Tu={};C(Tu,{up:()=>A0,down:()=>f0});import{sql as XT}from"kysely";async function A0(_){await XT`
|
|
605
605
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
606
606
|
SELECT
|
|
607
607
|
'org_user_fs',
|
|
@@ -615,9 +615,9 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
615
615
|
END,
|
|
616
616
|
now()
|
|
617
617
|
ON CONFLICT (id) DO NOTHING
|
|
618
|
-
`.execute(_)}async function
|
|
618
|
+
`.execute(_)}async function f0(_){await XT`
|
|
619
619
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
620
|
-
`.execute(_)}var
|
|
620
|
+
`.execute(_)}var zu={};C(zu,{up:()=>I0,down:()=>y0});async function I0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function y0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Eu={};C(Eu,{up:()=>V0,down:()=>w0});async function V0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function w0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var $u={};C($u,{up:()=>n0,down:()=>v0});import{sql as $_}from"kysely";var k0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function QT(_,x){for(let{table:u,column:N}of k0){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 n0(_){await QT(_,["github","gitlab","bitbucket"])}async function v0(_){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 QT(_,["github","gitlab"])}var Uu={};C(Uu,{up:()=>p0,down:()=>g0});import{sql as V_}from"kysely";async function p0(_){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 g0(_){await _.schema.dropTable("experiments").execute()}var Pu={};C(Pu,{up:()=>i0,down:()=>c0});import{sql as q0}from"kysely";async function i0(_){await q0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function c0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Xu={};C(Xu,{up:()=>t0,down:()=>o0,ACTIONS:()=>Ju});import{sql as U_}from"kysely";var Ju=["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"],h0=Ju.filter((_)=>_!=="duplicate_reported");async function t0(_){await ZT(_,Ju)}async function o0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await ZT(_,h0)}async function ZT(_,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 Qu={};C(Qu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function r0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Zu={};C(Zu,{up:()=>l0,down:()=>e0});async function l0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function e0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Wu={};C(Wu,{up:()=>b0,down:()=>s0});import{sql as d0}from"kysely";async function b0(_){await d0`
|
|
621
621
|
CREATE TABLE github_connect_flows (
|
|
622
622
|
id text PRIMARY KEY,
|
|
623
623
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -627,7 +627,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
627
627
|
);
|
|
628
628
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
629
629
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
630
|
-
`.execute(_)}async function
|
|
630
|
+
`.execute(_)}async function s0(_){await _.schema.dropTable("github_connect_flows").execute()}var ju={};C(ju,{up:()=>_$,down:()=>x$});async function _$(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function x$(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Lu={};C(Lu,{up:()=>u$,down:()=>C$});import{sql as w_}from"kysely";async function u$(_){await w_`
|
|
631
631
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
632
632
|
DECLARE
|
|
633
633
|
metadata_json jsonb;
|
|
@@ -683,19 +683,19 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
683
683
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
684
684
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
685
685
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
686
|
-
`.execute(_)}async function _$(_){await w_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await w_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Lu={};C(Lu,{up:()=>x$,down:()=>u$});import{sql as V}from"kysely";async function x$(_){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 u$(_){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 Fu={};C(Fu,{up:()=>C$,down:()=>K$});import{sql as ZT}from"kysely";async function C$(_){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(ZT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(ZT`CURRENT_TIMESTAMP`)).execute()}async function K$(_){await _.schema.dropTable("organization_settings").execute()}var Yu={};C(Yu,{up:()=>N$,down:()=>m$});async function N$(_){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 m$(_){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 Du={};C(Du,{up:()=>T$,down:()=>z$});async function T$(_){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 z$(_){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 Hu={};C(Hu,{up:()=>E$,down:()=>$$});async function E$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function $$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Mu={};C(Mu,{up:()=>P$,down:()=>J$});import{sql as U$}from"kysely";async function P$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",U$`text`).execute()}async function J$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Ru={};C(Ru,{up:()=>X$,down:()=>Q$});async function X$(_){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 Q$(_){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 Bu={};C(Bu,{up:()=>Z$,down:()=>W$});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 W$(_){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 Gu={};C(Gu,{up:()=>L$,down:()=>F$});import{sql as j$}from"kysely";async function L$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function F$(_){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(j$`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 Ou={};C(Ou,{up:()=>Y$,down:()=>D$});import{sql as k_}from"kysely";async function Y$(_){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 D$(_){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 Su={};C(Su,{up:()=>H$,down:()=>M$});async function H$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function M$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Au={};C(Au,{up:()=>R$,down:()=>B$});import{sql as n_}from"kysely";async function R$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await n_`
|
|
686
|
+
`.execute(_)}async function C$(_){await w_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await w_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Fu={};C(Fu,{up:()=>K$,down:()=>N$});import{sql as V}from"kysely";async function K$(_){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 N$(_){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 Yu={};C(Yu,{up:()=>m$,down:()=>T$});import{sql as WT}from"kysely";async function m$(_){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(WT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(WT`CURRENT_TIMESTAMP`)).execute()}async function T$(_){await _.schema.dropTable("organization_settings").execute()}var Du={};C(Du,{up:()=>z$,down:()=>E$});async function z$(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function E$(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Hu={};C(Hu,{up:()=>$$,down:()=>U$});async function $$(_){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 U$(_){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 Mu={};C(Mu,{up:()=>P$,down:()=>J$});async function P$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function J$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Ru={};C(Ru,{up:()=>Q$,down:()=>Z$});import{sql as X$}from"kysely";async function Q$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",X$`text`).execute()}async function Z$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Bu={};C(Bu,{up:()=>W$,down:()=>j$});async function W$(_){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 j$(_){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 Gu={};C(Gu,{up:()=>L$,down:()=>F$});import{sql as P_}from"kysely";async function L$(_){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 F$(_){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 Ou={};C(Ou,{up:()=>D$,down:()=>H$});import{sql as Y$}from"kysely";async function D$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function H$(_){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(Y$`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 Su={};C(Su,{up:()=>M$,down:()=>R$});import{sql as k_}from"kysely";async function M$(_){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 R$(_){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 Au={};C(Au,{up:()=>B$,down:()=>G$});async function B$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function G$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var fu={};C(fu,{up:()=>O$,down:()=>S$});import{sql as n_}from"kysely";async function O$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await n_`
|
|
687
687
|
UPDATE gateways
|
|
688
688
|
SET tool_selection_mode = CASE
|
|
689
689
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
690
690
|
ELSE 'inclusion'
|
|
691
691
|
END
|
|
692
|
-
`.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
|
|
692
|
+
`.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 S$(_){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_`
|
|
693
693
|
UPDATE gateways
|
|
694
694
|
SET tool_selection_strategy = CASE
|
|
695
695
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
696
696
|
ELSE NULL
|
|
697
697
|
END
|
|
698
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var
|
|
698
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Iu={};C(Iu,{up:()=>A$,down:()=>f$});async function A$(_){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 f$(_){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 yu={};C(yu,{up:()=>I$,down:()=>y$});async function I$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function y$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Vu={};C(Vu,{up:()=>V$,down:()=>w$});async function V$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function w$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var wu={};C(wu,{up:()=>k$,down:()=>n$});async function k$(_){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 n$(_){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 ku={};C(ku,{up:()=>p$,down:()=>g$});import{sql as v$}from"kysely";async function p$(_){await v$`
|
|
699
699
|
DELETE FROM downstream_tokens
|
|
700
700
|
WHERE id NOT IN (
|
|
701
701
|
SELECT id FROM (
|
|
@@ -705,7 +705,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
705
705
|
) ranked
|
|
706
706
|
WHERE rn = 1
|
|
707
707
|
)
|
|
708
|
-
`.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
|
|
708
|
+
`.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 g$(_){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 nu={};C(nu,{up:()=>q$,down:()=>i$});async function q$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function i$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var vu={};C(vu,{up:()=>c$,down:()=>h$});import{sql as jT}from"kysely";async function c$(_){await jT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function h$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await jT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var pu={};C(pu,{up:()=>t$,down:()=>o$});async function t$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function o$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var gu={};C(gu,{up:()=>a$,down:()=>r$});import{sql as v_}from"kysely";async function a$(_){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 r$(_){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 qu={};C(qu,{up:()=>l$,down:()=>e$});async function l$(_){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 e$(_){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 iu={};C(iu,{up:()=>d$,down:()=>b$});async function d$(_){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 b$(_){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 cu={};C(cu,{up:()=>s$,down:()=>_U});import{sql as M}from"kysely";async function s$(_){await M`
|
|
709
709
|
INSERT INTO connections (
|
|
710
710
|
id,
|
|
711
711
|
organization_id,
|
|
@@ -752,7 +752,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
752
752
|
created_at,
|
|
753
753
|
updated_at
|
|
754
754
|
FROM virtual_mcps
|
|
755
|
-
`.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
|
|
755
|
+
`.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 _U(_){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`
|
|
756
756
|
INSERT INTO virtual_mcps (
|
|
757
757
|
id, organization_id, title, description, icon, status,
|
|
758
758
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -762,7 +762,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
762
762
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
763
763
|
FROM connections
|
|
764
764
|
WHERE connection_type = 'VIRTUAL'
|
|
765
|
-
`.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
|
|
765
|
+
`.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 hu={};C(hu,{up:()=>xU,down:()=>uU});async function xU(_){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 uU(_){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 tu={};C(tu,{up:()=>CU,down:()=>KU});import{sql as w}from"kysely";async function CU(_){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`
|
|
766
766
|
INSERT INTO connection_aggregations_new (
|
|
767
767
|
id, parent_connection_id, child_connection_id,
|
|
768
768
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -771,7 +771,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
771
771
|
id, parent_connection_id, child_connection_id,
|
|
772
772
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
773
773
|
FROM connection_aggregations
|
|
774
|
-
`.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
|
|
774
|
+
`.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 KU(_){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`
|
|
775
775
|
INSERT INTO connection_aggregations_new (
|
|
776
776
|
id, parent_connection_id, child_connection_id,
|
|
777
777
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -780,7 +780,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
780
780
|
id, parent_connection_id, child_connection_id,
|
|
781
781
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
782
782
|
FROM connection_aggregations
|
|
783
|
-
`.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
|
|
783
|
+
`.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 au={};C(au,{up:()=>NU,down:()=>mU});import{sql as ou}from"kysely";async function NU(_){await ou`
|
|
784
784
|
UPDATE connections
|
|
785
785
|
SET connection_url = connection_url || '/management',
|
|
786
786
|
tools = NULL,
|
|
@@ -788,42 +788,42 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
788
788
|
WHERE connection_url LIKE '%/mcp'
|
|
789
789
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
790
790
|
AND app_name = '@deco/management-mcp'
|
|
791
|
-
`.execute(_),await
|
|
791
|
+
`.execute(_),await ou`
|
|
792
792
|
UPDATE connections
|
|
793
793
|
SET tools = NULL,
|
|
794
794
|
updated_at = CURRENT_TIMESTAMP
|
|
795
795
|
WHERE app_name = '@deco/management-mcp'
|
|
796
796
|
AND tools IS NOT NULL
|
|
797
|
-
`.execute(_)}async function
|
|
797
|
+
`.execute(_)}async function mU(_){await ou`
|
|
798
798
|
UPDATE connections
|
|
799
799
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
800
800
|
updated_at = CURRENT_TIMESTAMP
|
|
801
801
|
WHERE connection_url LIKE '%/mcp/management'
|
|
802
802
|
AND app_name = '@deco/management-mcp'
|
|
803
|
-
`.execute(_)}var
|
|
803
|
+
`.execute(_)}var lu={};C(lu,{up:()=>TU,down:()=>zU});import{sql as ru}from"kysely";async function TU(_){await ru`
|
|
804
804
|
UPDATE connections
|
|
805
805
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
806
806
|
tools = NULL,
|
|
807
807
|
updated_at = CURRENT_TIMESTAMP
|
|
808
808
|
WHERE connection_url LIKE '%/mcp/management'
|
|
809
809
|
AND app_name = '@deco/management-mcp'
|
|
810
|
-
`.execute(_),await
|
|
810
|
+
`.execute(_),await ru`
|
|
811
811
|
UPDATE connections
|
|
812
812
|
SET tools = NULL,
|
|
813
813
|
updated_at = CURRENT_TIMESTAMP
|
|
814
814
|
WHERE connection_url LIKE '%/mcp/self'
|
|
815
815
|
AND app_name = '@deco/management-mcp'
|
|
816
816
|
AND tools IS NOT NULL
|
|
817
|
-
`.execute(_)}async function
|
|
817
|
+
`.execute(_)}async function zU(_){await ru`
|
|
818
818
|
UPDATE connections
|
|
819
819
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
820
820
|
updated_at = CURRENT_TIMESTAMP
|
|
821
821
|
WHERE connection_url LIKE '%/mcp/self'
|
|
822
822
|
AND app_name = '@deco/management-mcp'
|
|
823
|
-
`.execute(_)}var
|
|
823
|
+
`.execute(_)}var eu={};C(eu,{up:()=>EU,down:()=>$U});async function EU(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function $U(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var du={};C(du,{up:()=>UU,down:()=>PU});import{sql as LT}from"kysely";async function UU(_){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(LT`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(LT`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 PU(_){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 bu={};C(bu,{up:()=>JU,down:()=>XU});import{sql as J_}from"kysely";async function JU(_){await J_`
|
|
824
824
|
ALTER TABLE connection_aggregations
|
|
825
825
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
826
|
-
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function
|
|
826
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function XU(_){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_`
|
|
827
827
|
INSERT INTO connection_aggregations_new (
|
|
828
828
|
id, parent_connection_id, child_connection_id,
|
|
829
829
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -832,42 +832,42 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
832
832
|
id, parent_connection_id, child_connection_id,
|
|
833
833
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
834
834
|
FROM connection_aggregations
|
|
835
|
-
`.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
|
|
835
|
+
`.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 su={};C(su,{up:()=>LU,down:()=>FU});import{webcrypto as YT}from"crypto";var FT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var QU=128,h,e;function ZU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*QU),YT.getRandomValues(h),e=0;else if(e+_>h.length)YT.getRandomValues(h),e=0;e+=_}function d(_=21){ZU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=FT[h[u]&63];return x}var WU="org-admin",jU="Organization Admin";async function LU(_){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:WU,name:jU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function FU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var _C={};C(_C,{up:()=>YU,down:()=>DU});async function YU(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function DU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var xC={};C(xC,{up:()=>HU,down:()=>MU});async function HU(_){}async function MU(_){}var uC={};C(uC,{up:()=>RU,down:()=>BU});async function RU(_){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 BU(_){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 CC={};C(CC,{up:()=>GU,down:()=>OU});import{sql as DT}from"kysely";async function GU(_){await DT`
|
|
836
836
|
UPDATE connections
|
|
837
837
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
838
838
|
tools = NULL,
|
|
839
839
|
updated_at = CURRENT_TIMESTAMP
|
|
840
840
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
841
841
|
AND app_name = 'deco-registry'
|
|
842
|
-
`.execute(_)}async function
|
|
842
|
+
`.execute(_)}async function OU(_){await DT`
|
|
843
843
|
UPDATE connections
|
|
844
844
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
845
845
|
updated_at = CURRENT_TIMESTAMP
|
|
846
846
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
847
847
|
AND app_name = 'deco-registry'
|
|
848
|
-
`.execute(_)}var
|
|
848
|
+
`.execute(_)}var KC={};C(KC,{up:()=>AU,down:()=>fU});import{sql as SU}from"kysely";async function AU(_){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(SU`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 fU(_){await _.schema.dropTable("ai_provider_keys").execute()}var NC={};C(NC,{up:()=>yU,down:()=>VU});import{sql as IU}from"kysely";async function yU(_){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(IU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function VU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var mC={};C(mC,{up:()=>wU,down:()=>kU});import{sql as p}from"kysely";async function wU(_){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 kU(_){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 TC={};C(TC,{up:()=>nU,down:()=>vU});async function nU(_){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 vU(_){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 zC={};C(zC,{up:()=>pU,down:()=>gU});async function pU(_){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 gU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var EC={};C(EC,{up:()=>qU,down:()=>iU});import{sql as HT}from"kysely";async function qU(_){await HT`
|
|
849
849
|
UPDATE connections
|
|
850
850
|
SET title = 'CMS MCP',
|
|
851
851
|
tools = NULL,
|
|
852
852
|
updated_at = CURRENT_TIMESTAMP
|
|
853
853
|
WHERE app_name = '@deco/management-mcp'
|
|
854
|
-
`.execute(_)}async function
|
|
854
|
+
`.execute(_)}async function iU(_){await HT`
|
|
855
855
|
UPDATE connections
|
|
856
856
|
SET title = 'Mesh MCP',
|
|
857
857
|
updated_at = CURRENT_TIMESTAMP
|
|
858
858
|
WHERE app_name = '@deco/management-mcp'
|
|
859
|
-
`.execute(_)}var
|
|
859
|
+
`.execute(_)}var $C={};C($C,{up:()=>cU,down:()=>hU});import{sql as MT}from"kysely";async function cU(_){await MT`
|
|
860
860
|
UPDATE connections
|
|
861
861
|
SET title = 'Deco CMS',
|
|
862
862
|
tools = NULL,
|
|
863
863
|
updated_at = CURRENT_TIMESTAMP
|
|
864
864
|
WHERE app_name = '@deco/management-mcp'
|
|
865
|
-
`.execute(_)}async function
|
|
865
|
+
`.execute(_)}async function hU(_){await MT`
|
|
866
866
|
UPDATE connections
|
|
867
867
|
SET title = 'CMS MCP',
|
|
868
868
|
updated_at = CURRENT_TIMESTAMP
|
|
869
869
|
WHERE app_name = '@deco/management-mcp'
|
|
870
|
-
`.execute(_)}var
|
|
870
|
+
`.execute(_)}var UC={};C(UC,{up:()=>tU,down:()=>oU});async function tU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function oU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var PC={};C(PC,{up:()=>aU,down:()=>rU});async function aU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function rU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var XC={};C(XC,{up:()=>lU,down:()=>eU});import{sql as JC}from"kysely";async function lU(_){await JC`
|
|
871
871
|
UPDATE organization_settings
|
|
872
872
|
SET enabled_plugins = (
|
|
873
873
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -876,7 +876,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
876
876
|
)
|
|
877
877
|
WHERE enabled_plugins IS NOT NULL
|
|
878
878
|
AND enabled_plugins LIKE '%object-storage%'
|
|
879
|
-
`.execute(_),await
|
|
879
|
+
`.execute(_),await JC`
|
|
880
880
|
UPDATE projects
|
|
881
881
|
SET enabled_plugins = (
|
|
882
882
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -885,28 +885,28 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
885
885
|
)
|
|
886
886
|
WHERE enabled_plugins IS NOT NULL
|
|
887
887
|
AND enabled_plugins LIKE '%object-storage%'
|
|
888
|
-
`.execute(_),await
|
|
888
|
+
`.execute(_),await JC`
|
|
889
889
|
DELETE FROM project_plugin_configs
|
|
890
890
|
WHERE plugin_id = 'object-storage'
|
|
891
|
-
`.execute(_)}async function
|
|
891
|
+
`.execute(_)}async function eU(_){}var QC={};C(QC,{up:()=>dU,down:()=>bU});import{sql as RT}from"kysely";async function dU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await RT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function bU(_){await RT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var WC={};C(WC,{up:()=>sU,down:()=>_P});import{sql as ZC}from"kysely";async function sU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await ZC`
|
|
892
892
|
ALTER TABLE connections
|
|
893
893
|
ADD CONSTRAINT chk_connections_subtype
|
|
894
894
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
895
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
895
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await ZC`
|
|
896
896
|
UPDATE connections
|
|
897
897
|
SET subtype = 'agent'
|
|
898
898
|
WHERE connection_type = 'VIRTUAL'
|
|
899
|
-
`.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
|
|
899
|
+
`.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 _P(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await ZC`
|
|
900
900
|
ALTER TABLE connections
|
|
901
901
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
902
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
902
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var jC={};C(jC,{up:()=>uP,down:()=>CP});import{sql as xP}from"kysely";async function uP(_){await xP`
|
|
903
903
|
DELETE FROM connections
|
|
904
904
|
WHERE connection_type = 'VIRTUAL'
|
|
905
905
|
AND subtype = 'project'
|
|
906
906
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
907
|
-
`.execute(_)}async function
|
|
907
|
+
`.execute(_)}async function CP(_){}var LC={};C(LC,{up:()=>NP,down:()=>mP});import{sql as KP}from"kysely";async function NP(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await KP`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function mP(_){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 YC={};C(YC,{up:()=>TP,down:()=>zP});import{sql as FC}from"kysely";async function TP(_){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(FC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(FC`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(FC`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 zP(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var DC={};C(DC,{up:()=>EP,down:()=>$P});async function EP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function $P(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var HC={};C(HC,{up:()=>UP,down:()=>PP});async function UP(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function PP(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var RC={};C(RC,{up:()=>XP,down:()=>QP});import{sql as BT}from"kysely";function MC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function JP(_){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 MC(N)}catch{return MC(_.connection_url)}if(_.title)return MC(_.title);return _.id}async function XP(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await BT`
|
|
908
908
|
SELECT id, app_name, connection_url, title FROM connections
|
|
909
|
-
`.execute(_);for(let u of x.rows){let N
|
|
909
|
+
`.execute(_);for(let u of x.rows){let N=JP(u);await BT`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 QP(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var BC={};C(BC,{up:()=>ZP,down:()=>WP});import{sql as X_}from"kysely";async function ZP(_){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 WP(_){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 GC={};C(GC,{up:()=>jP,down:()=>LP});async function jP(_){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 LP(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var OC={};C(OC,{up:()=>FP,down:()=>YP});import{sql as p_}from"kysely";async function FP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await p_`
|
|
910
910
|
UPDATE threads
|
|
911
911
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
912
912
|
WHERE agent_ids IS NOT NULL
|
|
@@ -916,14 +916,14 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
916
916
|
`.execute(_),await p_`
|
|
917
917
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
918
918
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
919
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
919
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function YP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await p_`
|
|
920
920
|
UPDATE threads
|
|
921
921
|
SET agent_ids = CASE
|
|
922
922
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
923
923
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
924
924
|
ELSE '[]'
|
|
925
925
|
END
|
|
926
|
-
`.execute(_),await p_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var
|
|
926
|
+
`.execute(_),await p_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var SC={};C(SC,{up:()=>DP,down:()=>HP});async function DP(_){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 HP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var AC={};C(AC,{up:()=>MP,down:()=>RP});async function MP(_){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 RP(_){await _.schema.dropTable("kv").execute()}var fC={};C(fC,{up:()=>BP,down:()=>GP});async function BP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function GP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var IC={};C(IC,{up:()=>OP,down:()=>SP});async function OP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function SP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var yC={};C(yC,{up:()=>AP,down:()=>fP});import{sql as S}from"kysely";async function AP(_){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 fP(_){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 VC={};C(VC,{up:()=>IP,down:()=>yP});import{sql as b}from"kysely";async function IP(_){await b`
|
|
927
927
|
ALTER TABLE event_subscriptions
|
|
928
928
|
ALTER COLUMN enabled DROP DEFAULT
|
|
929
929
|
`.execute(_),await b`
|
|
@@ -933,7 +933,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
933
933
|
`.execute(_),await b`
|
|
934
934
|
ALTER TABLE event_subscriptions
|
|
935
935
|
ALTER COLUMN enabled SET DEFAULT true
|
|
936
|
-
`.execute(_)}async function
|
|
936
|
+
`.execute(_)}async function yP(_){await b`
|
|
937
937
|
ALTER TABLE event_subscriptions
|
|
938
938
|
ALTER COLUMN enabled DROP DEFAULT
|
|
939
939
|
`.execute(_),await b`
|
|
@@ -943,7 +943,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
943
943
|
`.execute(_),await b`
|
|
944
944
|
ALTER TABLE event_subscriptions
|
|
945
945
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
946
|
-
`.execute(_)}var
|
|
946
|
+
`.execute(_)}var wC={};C(wC,{up:()=>VP,down:()=>wP});import{sql as GT}from"kysely";async function VP(_){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(GT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(GT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function wP(_){await _.schema.dropTable("brand_context").execute()}var kC={};C(kC,{up:()=>kP,down:()=>nP});import{sql as OT}from"kysely";async function kP(_){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(OT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(OT`now()`)).execute()}async function nP(_){await _.schema.dropTable("organization_domains").execute()}var nC={};C(nC,{up:()=>qP,down:()=>iP});import{sql as ST}from"kysely";var g_=new Set(["primary","secondary","accent","background","foreground"]),vP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function pP(_){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 gP(_){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=vP[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 qP(_){let x=await ST`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=pP($);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=gP($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await ST`
|
|
947
947
|
UPDATE brand_context
|
|
948
948
|
SET
|
|
949
949
|
colors = ${T},
|
|
@@ -951,20 +951,20 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
951
951
|
metadata = ${$},
|
|
952
952
|
updated_at = NOW()
|
|
953
953
|
WHERE id = ${u.id}
|
|
954
|
-
`.execute(_)}}}async function
|
|
954
|
+
`.execute(_)}}}async function iP(_){}var vC={};C(vC,{up:()=>hP,down:()=>tP});import{sql as cP}from"kysely";async function hP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(cP`'{}'::jsonb`)).execute()}async function tP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var pC={};C(pC,{up:()=>oP,down:()=>aP});async function oP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function aP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var gC={};C(gC,{up:()=>rP,down:()=>lP});async function rP(_){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 lP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var qC={};C(qC,{up:()=>eP,down:()=>dP});async function eP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function dP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var iC={};C(iC,{up:()=>bP,down:()=>sP});async function bP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function sP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var cC={};C(cC,{up:()=>_J,down:()=>xJ});async function _J(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function xJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var hC={};C(hC,{up:()=>CJ,down:()=>KJ});import{sql as AT}from"kysely";var uJ=["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 CJ(_){let x=await AT`
|
|
955
955
|
SELECT id, permission FROM "organizationRole"
|
|
956
|
-
`.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,...
|
|
956
|
+
`.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,...uJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await AT`
|
|
957
957
|
UPDATE "organizationRole"
|
|
958
958
|
SET permission = ${z}
|
|
959
959
|
WHERE id = ${u.id}
|
|
960
|
-
`.execute(_)}}async function
|
|
960
|
+
`.execute(_)}}async function KJ(_){}var tC={};C(tC,{up:()=>NJ,down:()=>mJ});async function NJ(_){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 mJ(_){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 oC={};C(oC,{up:()=>TJ,down:()=>zJ});async function TJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function zJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var aC={};C(aC,{up:()=>EJ,down:()=>$J});import{sql as Q_}from"kysely";async function EJ(_){await Q_`
|
|
961
961
|
UPDATE automations
|
|
962
962
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
963
963
|
WHERE virtual_mcp_id IS NULL
|
|
964
964
|
`.execute(_),await Q_`
|
|
965
965
|
ALTER TABLE automations
|
|
966
966
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
967
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
967
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function $J(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
|
|
968
968
|
UPDATE automations
|
|
969
969
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
970
970
|
`.execute(_),await Q_`
|
|
@@ -973,7 +973,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
973
973
|
`.execute(_),await Q_`
|
|
974
974
|
ALTER TABLE automations
|
|
975
975
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
976
|
-
`.execute(_)}var
|
|
976
|
+
`.execute(_)}var lC={};C(lC,{up:()=>XJ,reshapeSimpleMode:()=>fT,inferAutomationTier:()=>IT,down:()=>QJ,__testing:()=>JJ});var UJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},PJ=["fast","smart","thinking","image","web_research"];function rC(_){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 PJ.some((N)=>(N in u))}function fT(_){if(rC(_))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 UJ;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 IT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function yT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var JJ={isAlreadyReshapedSimpleMode:rC,isAlreadyReshapedAutomationModels:yT};async function XJ(_){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(rC(K))continue;let m=fT(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(yT(K))continue;let m=IT(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 QJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var eC={};C(eC,{up:()=>ZJ,down:()=>WJ});import{sql as n}from"kysely";async function ZJ(_){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`
|
|
977
977
|
ALTER TABLE automations
|
|
978
978
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
979
979
|
`.execute(_),await n`
|
|
@@ -995,19 +995,19 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
995
995
|
AND tool_input IS NOT NULL
|
|
996
996
|
)
|
|
997
997
|
)
|
|
998
|
-
`.execute(_)}async function
|
|
998
|
+
`.execute(_)}async function WJ(_){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`
|
|
999
999
|
ALTER TABLE automations
|
|
1000
1000
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
1001
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var
|
|
1001
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var dC={};C(dC,{up:()=>LJ,down:()=>FJ});import{sql as VT}from"kysely";var jJ=new Set(["host","docker","agent-sandbox"]);async function LJ(_){let x=await VT`
|
|
1002
1002
|
SELECT id, metadata FROM "connections"
|
|
1003
1003
|
WHERE connection_type = 'VIRTUAL'
|
|
1004
1004
|
AND metadata IS NOT NULL
|
|
1005
1005
|
AND metadata LIKE '%vmMap%'
|
|
1006
|
-
`.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&&!
|
|
1006
|
+
`.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&&!jJ.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 VT`
|
|
1007
1007
|
UPDATE "connections"
|
|
1008
1008
|
SET metadata = ${z}
|
|
1009
1009
|
WHERE id = ${u.id}
|
|
1010
|
-
`.execute(_)}}async function
|
|
1010
|
+
`.execute(_)}}async function FJ(_){}var bC={};C(bC,{up:()=>YJ,down:()=>DJ});import{sql as Z_}from"kysely";async function YJ(_){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_`
|
|
1011
1011
|
CREATE INDEX async_research_jobs_active_idx
|
|
1012
1012
|
ON async_research_jobs (status, last_polled_at)
|
|
1013
1013
|
WHERE status IN ('pending', 'polling')
|
|
@@ -1015,7 +1015,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1015
1015
|
ALTER TABLE async_research_jobs
|
|
1016
1016
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
1017
1017
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
1018
|
-
`.execute(_)}async function
|
|
1018
|
+
`.execute(_)}async function DJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var sC={};C(sC,{up:()=>HJ,down:()=>MJ});async function HJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function MJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var _K={};C(_K,{up:()=>RJ,down:()=>BJ});import{sql as s}from"kysely";async function RJ(_){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`
|
|
1019
1019
|
ALTER TABLE secrets
|
|
1020
1020
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
1021
1021
|
`.execute(_),await s`
|
|
@@ -1032,7 +1032,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1032
1032
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
1033
1033
|
ON secrets (organization_id, lower(name))
|
|
1034
1034
|
WHERE scope = 'organization'
|
|
1035
|
-
`.execute(_)}async function
|
|
1035
|
+
`.execute(_)}async function BJ(_){await _.schema.dropTable("secrets").execute()}var xK={};C(xK,{up:()=>GJ,down:()=>OJ});async function GJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function OJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var uK={};C(uK,{up:()=>AJ,down:()=>fJ});import{sql as SJ}from"kysely";async function AJ(_){await SJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function fJ(_){}var CK={};C(CK,{up:()=>IJ,down:()=>yJ});import{sql as q_}from"kysely";async function IJ(_){await q_`
|
|
1036
1036
|
ALTER TABLE sandbox_runner_state
|
|
1037
1037
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
1038
1038
|
`.execute(_),await q_`
|
|
@@ -1070,7 +1070,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1070
1070
|
EXCEPTION WHEN undefined_table THEN
|
|
1071
1071
|
NULL;
|
|
1072
1072
|
END; $$
|
|
1073
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
1073
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function yJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await q_`
|
|
1074
1074
|
ALTER TABLE sandbox_runner_state
|
|
1075
1075
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
1076
1076
|
`.execute(_),await q_`
|
|
@@ -1108,7 +1108,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1108
1108
|
EXCEPTION WHEN undefined_table THEN
|
|
1109
1109
|
NULL;
|
|
1110
1110
|
END; $$
|
|
1111
|
-
`.execute(_)}var
|
|
1111
|
+
`.execute(_)}var KK={};C(KK,{up:()=>VJ,down:()=>wJ});import{sql as wT}from"kysely";async function VJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await wT`
|
|
1112
1112
|
DO $$ BEGIN
|
|
1113
1113
|
UPDATE virtualmcps v
|
|
1114
1114
|
SET metadata = jsonb_set(
|
|
@@ -1147,7 +1147,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1147
1147
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
1148
1148
|
NULL;
|
|
1149
1149
|
END; $$
|
|
1150
|
-
`.execute(_)}async function
|
|
1150
|
+
`.execute(_)}async function wJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await wT`
|
|
1151
1151
|
DO $$ BEGIN
|
|
1152
1152
|
UPDATE virtualmcps v
|
|
1153
1153
|
SET metadata = jsonb_set(
|
|
@@ -1180,7 +1180,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1180
1180
|
EXCEPTION WHEN undefined_table THEN
|
|
1181
1181
|
NULL;
|
|
1182
1182
|
END; $$
|
|
1183
|
-
`.execute(_)}var
|
|
1183
|
+
`.execute(_)}var NK={};C(NK,{up:()=>kJ,down:()=>nJ});import{sql as kT}from"kysely";async function kJ(_){await kT`
|
|
1184
1184
|
UPDATE connections c
|
|
1185
1185
|
SET metadata = (
|
|
1186
1186
|
jsonb_set(
|
|
@@ -1224,7 +1224,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1224
1224
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
1225
1225
|
WHERE entry ? 'vmId'
|
|
1226
1226
|
);
|
|
1227
|
-
`.execute(_),await
|
|
1227
|
+
`.execute(_),await kT`
|
|
1228
1228
|
UPDATE connections c
|
|
1229
1229
|
SET metadata = (
|
|
1230
1230
|
jsonb_set(
|
|
@@ -1278,10 +1278,10 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1278
1278
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1279
1279
|
WHERE inner_entry ? 'runnerKind'
|
|
1280
1280
|
);
|
|
1281
|
-
`.execute(_)}async function
|
|
1281
|
+
`.execute(_)}async function nJ(_){}var mK={};C(mK,{up:()=>pJ,down:()=>gJ});import{sql as vJ}from"kysely";async function pJ(_){await vJ`
|
|
1282
1282
|
DELETE FROM ai_provider_keys
|
|
1283
1283
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
1284
|
-
`.execute(_)}async function
|
|
1284
|
+
`.execute(_)}async function gJ(_){}var TK={};C(TK,{up:()=>qJ,down:()=>iJ});import{sql as i_}from"kysely";async function qJ(_){await i_`
|
|
1285
1285
|
UPDATE sandbox_runner_state
|
|
1286
1286
|
SET sandbox_provider_kind = 'desktop'
|
|
1287
1287
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
@@ -1379,13 +1379,13 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1379
1379
|
UPDATE threads
|
|
1380
1380
|
SET sandbox_provider_kind = 'desktop'
|
|
1381
1381
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1382
|
-
`.execute(_)}async function
|
|
1382
|
+
`.execute(_)}async function iJ(_){}var zK={};C(zK,{up:()=>cJ,down:()=>hJ});import{sql as W_}from"kysely";async function cJ(_){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 hJ(_){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 EK={};C(EK,{up:()=>tJ,down:()=>oJ});import{sql as nT}from"kysely";async function tJ(_){await nT`
|
|
1383
1383
|
ALTER TABLE organization_domains
|
|
1384
1384
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
1385
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function
|
|
1385
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function oJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await nT`
|
|
1386
1386
|
ALTER TABLE organization_domains
|
|
1387
1387
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
1388
|
-
`.execute(_)}var
|
|
1388
|
+
`.execute(_)}var $K={};C($K,{up:()=>aJ,down:()=>rJ});import{sql as c_}from"kysely";async function aJ(_){await c_`
|
|
1389
1389
|
UPDATE sandbox_runner_state
|
|
1390
1390
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
1391
1391
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -1474,19 +1474,19 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1474
1474
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1475
1475
|
AND c.metadata IS NOT NULL
|
|
1476
1476
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
1477
|
-
`.execute(_)}async function
|
|
1477
|
+
`.execute(_)}async function rJ(_){}var UK={};C(UK,{up:()=>eJ,down:()=>dJ});import{sql as vT}from"kysely";var lJ=["GLOBAL_SEARCH"];async function eJ(_){let x=await vT`
|
|
1478
1478
|
SELECT id, permission FROM "organizationRole"
|
|
1479
|
-
`.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,...
|
|
1479
|
+
`.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,...lJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await vT`
|
|
1480
1480
|
UPDATE "organizationRole"
|
|
1481
1481
|
SET permission = ${z}
|
|
1482
1482
|
WHERE id = ${u.id}
|
|
1483
|
-
`.execute(_)}}async function
|
|
1483
|
+
`.execute(_)}}async function dJ(_){}var JK={};C(JK,{up:()=>bJ,down:()=>sJ});import{sql as PK}from"kysely";async function bJ(_){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(PK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(PK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await PK`
|
|
1484
1484
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
1485
1485
|
ON org_file_configs (organization_id, lower(name))
|
|
1486
|
-
`.execute(_)}async function
|
|
1486
|
+
`.execute(_)}async function sJ(_){await _.schema.dropTable("org_file_configs").execute()}var XK={};C(XK,{up:()=>_X,down:()=>xX});import{sql as v}from"kysely";async function _X(_){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`
|
|
1487
1487
|
ALTER TABLE automations
|
|
1488
1488
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
1489
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function
|
|
1489
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function xX(_){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`
|
|
1490
1490
|
ALTER TABLE automations
|
|
1491
1491
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
1492
1492
|
`.execute(_),await v`
|
|
@@ -1508,25 +1508,25 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1508
1508
|
AND tool_input IS NOT NULL
|
|
1509
1509
|
)
|
|
1510
1510
|
)
|
|
1511
|
-
`.execute(_)}var
|
|
1511
|
+
`.execute(_)}var QK={};C(QK,{up:()=>uX,down:()=>CX});async function uX(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function CX(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var WK={};C(WK,{up:()=>KX,down:()=>NX});import{sql as ZK}from"kysely";var h_="local-docker";async function KX(_){await ZK`delete from sandbox_runner_state where sandbox_provider_kind = ${h_}`.execute(_);let x=await ZK`
|
|
1512
1512
|
SELECT id, metadata FROM "connections"
|
|
1513
1513
|
WHERE connection_type = 'VIRTUAL'
|
|
1514
1514
|
AND metadata IS NOT NULL
|
|
1515
1515
|
AND metadata LIKE ${"%"+h_+"%"}
|
|
1516
|
-
`.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
|
|
1516
|
+
`.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 ZK`
|
|
1517
1517
|
UPDATE "connections"
|
|
1518
1518
|
SET metadata = ${z}
|
|
1519
1519
|
WHERE id = ${u.id}
|
|
1520
|
-
`.execute(_)}}async function
|
|
1520
|
+
`.execute(_)}}async function NX(_){}var jK={};C(jK,{up:()=>mX,down:()=>TX});import{sql as t_}from"kysely";async function mX(_){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 TX(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var LK={};C(LK,{up:()=>zX,down:()=>EX});async function zX(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function EX(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var FK={};C(FK,{up:()=>$X,down:()=>UX});async function $X(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function UX(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var YK={};C(YK,{up:()=>PX,down:()=>JX});async function PX(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function JX(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var DK={};C(DK,{up:()=>XX,down:()=>QX});async function XX(_){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 QX(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var HK={};C(HK,{up:()=>ZX,down:()=>WX});async function ZX(_){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 WX(_){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 RK={};C(RK,{up:()=>LX,down:()=>FX});import{sql as k}from"kysely";var A="cluster",f="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function MK(_,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!==A&&_.sandboxProviderKind!==f&&_.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 jX(_,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]=MK(Q,x,u);else if(!o_($[u])&&o_(Q))P[u]=MK(Q,x,u);continue}let y=MK(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 pT(_,x,u){let N=await k`
|
|
1521
1521
|
SELECT id, metadata FROM connections
|
|
1522
1522
|
WHERE connection_type = 'VIRTUAL'
|
|
1523
1523
|
AND metadata IS NOT NULL
|
|
1524
1524
|
AND metadata LIKE ${"%"+x+"%"}
|
|
1525
|
-
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=
|
|
1525
|
+
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=jX(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
|
|
1526
1526
|
UPDATE connections
|
|
1527
1527
|
SET metadata = ${JSON.stringify(m)}
|
|
1528
1528
|
WHERE id = ${K.id}
|
|
1529
|
-
`.execute(_)}}async function
|
|
1529
|
+
`.execute(_)}}async function LX(_){await k`
|
|
1530
1530
|
UPDATE threads
|
|
1531
1531
|
SET sandbox_provider_kind = ${f}
|
|
1532
1532
|
WHERE sandbox_provider_kind = ${A}
|
|
@@ -1555,7 +1555,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1555
1555
|
UPDATE sandbox_runner_state
|
|
1556
1556
|
SET sandbox_provider_kind = ${f}
|
|
1557
1557
|
WHERE sandbox_provider_kind = ${A}
|
|
1558
|
-
`.execute(_),await
|
|
1558
|
+
`.execute(_),await pT(_,A,f)}async function FX(_){await k`
|
|
1559
1559
|
UPDATE threads
|
|
1560
1560
|
SET sandbox_provider_kind = ${A}
|
|
1561
1561
|
WHERE sandbox_provider_kind = ${f}
|
|
@@ -1584,7 +1584,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1584
1584
|
UPDATE sandbox_runner_state
|
|
1585
1585
|
SET sandbox_provider_kind = ${A}
|
|
1586
1586
|
WHERE sandbox_provider_kind = ${f}
|
|
1587
|
-
`.execute(_),await
|
|
1587
|
+
`.execute(_),await pT(_,f,A)}var BK={};C(BK,{up:()=>YX,down:()=>DX});import{sql as g}from"kysely";async function YX(_){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`
|
|
1588
1588
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1589
1589
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1590
1590
|
WHERE deleted_at IS NULL
|
|
@@ -1592,7 +1592,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1592
1592
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1593
1593
|
ON org_fs_entry (organization_id, volume, size)
|
|
1594
1594
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1595
|
-
`.execute(_)}async function
|
|
1595
|
+
`.execute(_)}async function DX(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var GK={};C(GK,{up:()=>HX,down:()=>MX});async function HX(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function MX(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var OK={};C(OK,{up:()=>RX,down:()=>BX});import{sql as gT}from"kysely";async function RX(_){await gT`
|
|
1596
1596
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1597
1597
|
SELECT
|
|
1598
1598
|
'org_orgfs_public_skills',
|
|
@@ -1606,13 +1606,13 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1606
1606
|
END,
|
|
1607
1607
|
now()
|
|
1608
1608
|
ON CONFLICT (id) DO NOTHING
|
|
1609
|
-
`.execute(_)}async function
|
|
1609
|
+
`.execute(_)}async function BX(_){await gT`
|
|
1610
1610
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1611
|
-
`.execute(_)}var
|
|
1611
|
+
`.execute(_)}var SK={};C(SK,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function OX(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var AK={};C(AK,{up:()=>SX,down:()=>AX});import{sql as qT}from"kysely";async function SX(_){await qT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function AX(_){await qT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var fK={};C(fK,{up:()=>IX,down:()=>yX});import{sql as fX}from"kysely";async function IX(_){await fX`
|
|
1612
1612
|
UPDATE downstream_tokens
|
|
1613
1613
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1614
1614
|
WHERE "expiresAt" IS NULL
|
|
1615
|
-
`.execute(_)}async function
|
|
1615
|
+
`.execute(_)}async function yX(_){}var IK={};C(IK,{up:()=>VX,down:()=>wX});async function VX(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function wX(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var yK={};C(yK,{up:()=>kX,down:()=>nX});async function kX(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function nX(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var VK={};C(VK,{up:()=>vX,down:()=>pX});async function vX(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function pX(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var wK={};C(wK,{up:()=>gX,down:()=>qX});async function gX(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function qX(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var kK={};C(kK,{up:()=>iX,down:()=>cX});async function iX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function cX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var nK={};C(nK,{up:()=>hX,down:()=>tX});import{sql as iT}from"kysely";async function hX(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function tX(_){await _.schema.dropTable("org_sites").execute()}var vK={};C(vK,{up:()=>oX,down:()=>aX});async function oX(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function aX(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var pK={};C(pK,{up:()=>rX,down:()=>lX});import{sql as R}from"kysely";async function rX(_){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`
|
|
1616
1616
|
UPDATE organization_domains
|
|
1617
1617
|
SET
|
|
1618
1618
|
id = gen_random_uuid()::text,
|
|
@@ -1621,18 +1621,18 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1621
1621
|
verification_method = 'email',
|
|
1622
1622
|
verified_at = created_at
|
|
1623
1623
|
WHERE id IS NULL
|
|
1624
|
-
`.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
|
|
1624
|
+
`.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 lX(_){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`
|
|
1625
1625
|
UPDATE organization_domains
|
|
1626
1626
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
1627
|
-
`.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
|
|
1627
|
+
`.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 gK={};C(gK,{up:()=>eX,down:()=>dX});import{sql as a_}from"kysely";async function eX(_){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_`
|
|
1628
1628
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1629
1629
|
ON organization_join_requests (organization_id, user_id)
|
|
1630
1630
|
WHERE status = 'pending'
|
|
1631
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function
|
|
1631
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function dX(_){await _.schema.dropTable("organization_join_requests").execute()}var qK={};C(qK,{up:()=>bX,down:()=>sX});async function bX(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function sX(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var iK={};C(iK,{up:()=>_Q,down:()=>xQ});async function _Q(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function xQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var tK={};C(tK,{up:()=>KQ,splitWebResearchTier:()=>hK,down:()=>NQ,__testing:()=>CQ});function uQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function cK(_){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 hK(_){if(!_||cK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(uQ(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var CQ={splitWebResearchTier:hK,isAlreadySplit:cK};async function KQ(_){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(cK(N))continue;let K=hK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function NQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var oK={};C(oK,{up:()=>mQ,down:()=>TQ});import{sql as j_}from"kysely";async function mQ(_){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_`
|
|
1632
1632
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1633
1633
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1634
1634
|
WHERE revoked_at IS NULL
|
|
1635
|
-
`.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
|
|
1635
|
+
`.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 TQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var aK={};C(aK,{up:()=>zQ,down:()=>EQ});async function zQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function EQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var rK={};C(rK,{up:()=>$Q,down:()=>UQ});import{sql as t}from"kysely";async function $Q(_){await t`
|
|
1636
1636
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1637
1637
|
RETURNS jsonb AS $fn$
|
|
1638
1638
|
BEGIN
|
|
@@ -1691,7 +1691,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1691
1691
|
BEFORE INSERT ON connection_aggregations
|
|
1692
1692
|
FOR EACH ROW
|
|
1693
1693
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1694
|
-
`.execute(_)}async function
|
|
1694
|
+
`.execute(_)}async function UQ(_){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 eK={};C(eK,{up:()=>PQ,down:()=>JQ});import{sql as lK}from"kysely";async function PQ(_){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(lK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(lK`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(lK`false`)).execute()}async function JQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var dK={};C(dK,{up:()=>XQ,down:()=>QQ});async function XQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function QQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var bK={};C(bK,{up:()=>ZQ,down:()=>WQ});async function ZQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function WQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var sK={};C(sK,{up:()=>jQ,down:()=>LQ});async function jQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function LQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var _N={};C(_N,{up:()=>YQ,down:()=>DQ});import{sql as FQ}from"kysely";async function YQ(_){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(FQ`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 DQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var xN={};C(xN,{up:()=>HQ,down:()=>MQ});async function HQ(_){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 MQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var uN={};C(uN,{up:()=>BQ,down:()=>GQ});import{sql as RQ}from"kysely";async function BQ(_){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(RQ`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 GQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var CN={};C(CN,{up:()=>SQ,down:()=>AQ});import{sql as OQ}from"kysely";async function SQ(_){await OQ`
|
|
1695
1695
|
DELETE FROM member
|
|
1696
1696
|
WHERE id IN (
|
|
1697
1697
|
SELECT id FROM (
|
|
@@ -1710,38 +1710,38 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1710
1710
|
) ranked
|
|
1711
1711
|
WHERE ranked.rn > 1
|
|
1712
1712
|
)
|
|
1713
|
-
`.execute(_)}async function
|
|
1713
|
+
`.execute(_)}async function AQ(_){}var KN={};C(KN,{up:()=>fQ,down:()=>IQ});async function fQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function IQ(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var NN={};C(NN,{up:()=>yQ,down:()=>VQ});async function yQ(_){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 VQ(_){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 mN={};C(mN,{up:()=>kQ,down:()=>nQ});import{sql as wQ}from"kysely";async function kQ(_){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(wQ`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 nQ(_){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 TN={};C(TN,{up:()=>pQ,down:()=>gQ});import{sql as vQ}from"kysely";async function pQ(_){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(vQ`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 gQ(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var zN={};C(zN,{up:()=>qQ,down:()=>iQ});import{sql as r_}from"kysely";async function qQ(_){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 iQ(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var EN={};C(EN,{up:()=>cQ,down:()=>hQ});import{sql as l_}from"kysely";async function cQ(_){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_`
|
|
1714
1714
|
insert into organization_billing (organization_id, legacy)
|
|
1715
1715
|
select id, true from organization
|
|
1716
1716
|
on conflict (organization_id) do nothing
|
|
1717
|
-
`.execute(_)}async function
|
|
1717
|
+
`.execute(_)}async function hQ(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var $N={};C($N,{up:()=>tQ,down:()=>oQ});import{sql as cT}from"kysely";async function tQ(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(cT`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(cT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function oQ(_){await _.schema.dropTable("seat_change_log").execute()}var UN={};C(UN,{up:()=>aQ,down:()=>rQ});async function aQ(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function rQ(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var PN={};C(PN,{up:()=>lQ,down:()=>eQ});import{sql as hT}from"kysely";async function lQ(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await hT`
|
|
1718
1718
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1719
1719
|
on organization_billing (stripe_subscription_id)
|
|
1720
1720
|
where stripe_subscription_id is not null
|
|
1721
|
-
`.execute(_)}async function
|
|
1721
|
+
`.execute(_)}async function eQ(_){await hT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var JN={};C(JN,{up:()=>dQ,down:()=>bQ});async function dQ(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function bQ(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var XN={};C(XN,{up:()=>sQ,down:()=>_Z});import{sql as tT}from"kysely";async function sQ(_){await tT`
|
|
1722
1722
|
create index idx_org_billing_benefits_pending
|
|
1723
1723
|
on organization_billing (updated_at)
|
|
1724
1724
|
where benefits_reference_id is not null
|
|
1725
|
-
`.execute(_)}async function
|
|
1725
|
+
`.execute(_)}async function _Z(_){await tT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var QN={};C(QN,{up:()=>xZ,down:()=>uZ});import{sql as oT}from"kysely";async function xZ(_){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(oT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(oT`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 uZ(_){await _.schema.dropTable("user_model_preferences").execute()}var ZN={};C(ZN,{up:()=>CZ,down:()=>KZ});async function CZ(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function KZ(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var WN={};C(WN,{up:()=>NZ,down:()=>mZ});async function NZ(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function mZ(_){}var jN={};C(jN,{up:()=>TZ,down:()=>zZ});import{sql as aT}from"kysely";async function TZ(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await aT`
|
|
1726
1726
|
UPDATE organization_settings
|
|
1727
1727
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1728
1728
|
WHERE reports_only IS NOT NULL
|
|
1729
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1729
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function zZ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await aT`
|
|
1730
1730
|
UPDATE organization_settings
|
|
1731
1731
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1732
1732
|
WHERE flags ? 'reports_only'
|
|
1733
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1733
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var LN={};C(LN,{up:()=>$Z,down:()=>UZ});import{sql as EZ}from"kysely";async function $Z(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await EZ`
|
|
1734
1734
|
update task_board_items
|
|
1735
1735
|
set sort_order = -extract(epoch from created_at)
|
|
1736
|
-
`.execute(_)}async function
|
|
1736
|
+
`.execute(_)}async function UZ(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var FN={};C(FN,{up:()=>PZ,down:()=>JZ,ACTIONS:()=>rT});import{sql as e_}from"kysely";var rT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function PZ(_){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(rT.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 JZ(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var DN={};C(DN,{up:()=>XZ,down:()=>QZ,ACTIONS:()=>YN});import{sql as L_}from"kysely";var YN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function XZ(_){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 lT(_,YN)}async function QZ(_){await lT(_,YN.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 lT(_,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 MN={};C(MN,{up:()=>WZ,down:()=>jZ});import{sql as eT}from"kysely";function HN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function ZZ(_){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 HN(N)}catch{return HN(_.connection_url)}if(_.title)return HN(_.title);return _.id}async function WZ(_){let x=await eT`
|
|
1737
1737
|
SELECT id, app_name, connection_url, title, slug
|
|
1738
1738
|
FROM connections
|
|
1739
1739
|
WHERE connection_type != 'VIRTUAL'
|
|
1740
|
-
`.execute(_),u=0;for(let N of x.rows){let K=
|
|
1740
|
+
`.execute(_),u=0;for(let N of x.rows){let K=ZZ(N);if(K===N.slug)continue;await eT`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 jZ(){}var RN={};C(RN,{up:()=>FZ,down:()=>YZ});import{sql as LZ}from"kysely";async function FZ(_){await LZ`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 YZ(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var GN={};C(GN,{up:()=>HZ,down:()=>MZ,ACTIONS:()=>BN});import{sql as d_}from"kysely";var BN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],DZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function HZ(_){await dT(_,BN)}async function MZ(_){await dT(_,BN.filter((x)=>!DZ.has(x)))}async function dT(_,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 ON={};C(ON,{up:()=>BZ,down:()=>GZ});import{sql as RZ}from"kysely";async function BZ(_){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(RZ`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 GZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var AN={};C(AN,{up:()=>SZ,down:()=>AZ,ACTIONS:()=>SN});import{sql as b_}from"kysely";var SN=["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"],OZ=new Set(["merge_conflict_resolution"]);async function SZ(_){await bT(_,SN)}async function AZ(_){await bT(_,SN.filter((x)=>!OZ.has(x)))}async function bT(_,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 fN={};C(fN,{up:()=>fZ,down:()=>IZ});import{sql as F_}from"kysely";async function fZ(_){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 IZ(_){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_`
|
|
1741
1741
|
create index idx_org_billing_benefits_pending
|
|
1742
1742
|
on organization_billing (updated_at)
|
|
1743
1743
|
where benefits_reference_id is not null
|
|
1744
|
-
`.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
|
|
1744
|
+
`.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 IN={};C(IN,{up:()=>yZ,down:()=>VZ});import{sql as s_}from"kysely";async function yZ(_){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 VZ(_){await s_`
|
|
1745
1745
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1746
1746
|
RETURNS trigger AS $fn$
|
|
1747
1747
|
BEGIN
|
|
@@ -1767,23 +1767,23 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1767
1767
|
BEFORE INSERT ON connection_aggregations
|
|
1768
1768
|
FOR EACH ROW
|
|
1769
1769
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1770
|
-
`.execute(_)}var
|
|
1770
|
+
`.execute(_)}var yN={};C(yN,{up:()=>wZ,down:()=>kZ});import{sql as sT}from"kysely";async function wZ(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(sT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(sT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function kZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var VN={};C(VN,{up:()=>nZ,down:()=>vZ});import{sql as _z}from"kysely";async function nZ(_){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(_z`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(_z`now()`)).execute()}async function vZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var kN={};C(kN,{up:()=>pZ,down:()=>gZ});import{sql as wN}from"kysely";async function pZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(wN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await wN`
|
|
1771
1771
|
create index idx_task_quota_claims_org_period_live
|
|
1772
1772
|
on task_quota_claims (organization_id, period_key)
|
|
1773
1773
|
where state <> 'released'
|
|
1774
|
-
`.execute(_)}async function
|
|
1774
|
+
`.execute(_)}async function gZ(_){await wN`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 nN={};C(nN,{up:()=>qZ,down:()=>iZ});async function qZ(_){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 iZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var vN={};C(vN,{up:()=>cZ,down:()=>hZ});async function cZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function hZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var pN={};C(pN,{up:()=>tZ,down:()=>oZ});import{sql as xz}from"kysely";async function tZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(xz`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(xz`monthly_task_executions > 0`)).execute()}async function oZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var gN={};C(gN,{up:()=>rZ,down:()=>lZ});import{sql as aZ}from"kysely";async function rZ(_){await aZ`
|
|
1775
1775
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1776
1776
|
ON task_board_items (updated_at, id)
|
|
1777
1777
|
WHERE status = 'in_review'
|
|
1778
1778
|
AND assignee_id = 'super-agent'
|
|
1779
1779
|
AND dismissed_at IS NULL
|
|
1780
|
-
`.execute(_)}async function
|
|
1780
|
+
`.execute(_)}async function lZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var qN={};C(qN,{up:()=>eZ,down:()=>dZ});import{sql as uz}from"kysely";async function eZ(_){await uz`
|
|
1781
1781
|
ALTER TABLE task_board_items
|
|
1782
1782
|
ADD COLUMN last_swept_at timestamptz
|
|
1783
|
-
`.execute(_)}async function
|
|
1783
|
+
`.execute(_)}async function dZ(_){await uz`
|
|
1784
1784
|
ALTER TABLE task_board_items
|
|
1785
1785
|
DROP COLUMN last_swept_at
|
|
1786
|
-
`.execute(_)}var
|
|
1786
|
+
`.execute(_)}var iN={};C(iN,{up:()=>bZ,down:()=>sZ});import{sql as _x}from"kysely";async function bZ(_){await _x`
|
|
1787
1787
|
ALTER TABLE task_board_items
|
|
1788
1788
|
ADD COLUMN retry_at timestamptz,
|
|
1789
1789
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
@@ -1791,11 +1791,11 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1791
1791
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1792
1792
|
ON task_board_items (retry_at)
|
|
1793
1793
|
WHERE retry_at IS NOT NULL
|
|
1794
|
-
`.execute(_)}async function
|
|
1794
|
+
`.execute(_)}async function sZ(_){await _x`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await _x`
|
|
1795
1795
|
ALTER TABLE task_board_items
|
|
1796
1796
|
DROP COLUMN retry_at,
|
|
1797
1797
|
DROP COLUMN retry_attempts
|
|
1798
|
-
`.execute(_)}var
|
|
1798
|
+
`.execute(_)}var hN={};C(hN,{up:()=>_6,down:()=>x6});import{sql as cN}from"kysely";async function _6(_){await cN`
|
|
1799
1799
|
CREATE TABLE org_repo_sync (
|
|
1800
1800
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1801
1801
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1813,11 +1813,11 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1813
1813
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1814
1814
|
UNIQUE (organization_id, volume)
|
|
1815
1815
|
)
|
|
1816
|
-
`.execute(_),await
|
|
1816
|
+
`.execute(_),await cN`
|
|
1817
1817
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1818
1818
|
ON org_repo_sync (organization_id)
|
|
1819
1819
|
WHERE enabled
|
|
1820
|
-
`.execute(_)}async function
|
|
1820
|
+
`.execute(_)}async function x6(_){await cN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var oN={};C(oN,{up:()=>C6,down:()=>K6,ACTIONS:()=>tN});import{sql as xx}from"kysely";var tN=["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"],u6=new Set(["merge_failed"]);async function C6(_){await Cz(_,tN)}async function K6(_){await Cz(_,tN.filter((x)=>!u6.has(x)))}async function Cz(_,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 aN={};C(aN,{up:()=>N6,down:()=>m6});async function N6(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function m6(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var rN={};C(rN,{up:()=>T6,down:()=>z6});import{sql as x_}from"kysely";async function T6(_){await x_`
|
|
1821
1821
|
CREATE TABLE org_jira_integrations (
|
|
1822
1822
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1823
1823
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1856,7 +1856,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1856
1856
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1857
1857
|
UNIQUE (organization_id, jira_comment_id)
|
|
1858
1858
|
)
|
|
1859
|
-
`.execute(_)}async function
|
|
1859
|
+
`.execute(_)}async function z6(_){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 lN={};C(lN,{up:()=>$6,down:()=>U6});import{sql as E6}from"kysely";async function $6(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await E6`
|
|
1860
1860
|
update task_board_items as t
|
|
1861
1861
|
set key_seq = numbered.seq
|
|
1862
1862
|
from (
|
|
@@ -1869,25 +1869,25 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1869
1869
|
from task_board_items
|
|
1870
1870
|
) as numbered
|
|
1871
1871
|
where t.id = numbered.id
|
|
1872
|
-
`.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
|
|
1872
|
+
`.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 U6(_){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 eN={};C(eN,{up:()=>P6,down:()=>J6});import{sql as Kz}from"kysely";async function P6(_){await Kz`
|
|
1873
1873
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1874
1874
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1875
1875
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1876
|
-
`.execute(_)}async function
|
|
1876
|
+
`.execute(_)}async function J6(_){await Kz`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var bN={};C(bN,{up:()=>X6,down:()=>Q6});import{sql as dN}from"kysely";async function X6(_){await dN`
|
|
1877
1877
|
ALTER TABLE thread_message_parts
|
|
1878
1878
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1879
|
-
`.execute(_),await
|
|
1879
|
+
`.execute(_),await dN`
|
|
1880
1880
|
ALTER TABLE thread_message_parts
|
|
1881
1881
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1882
|
-
`.execute(_)}async function
|
|
1882
|
+
`.execute(_)}async function Q6(_){await dN`
|
|
1883
1883
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1884
|
-
`.execute(_)}var
|
|
1884
|
+
`.execute(_)}var sN={};C(sN,{up:()=>Z6,down:()=>W6});async function Z6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function W6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var _m={};C(_m,{up:()=>L6,down:()=>F6});import{sql as j6}from"kysely";async function L6(_){await j6`
|
|
1885
1885
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1886
1886
|
ON task_board_items (updated_at)
|
|
1887
1887
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1888
|
-
`.execute(_)}async function
|
|
1888
|
+
`.execute(_)}async function F6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var xm={};C(xm,{up:()=>Y6,down:()=>D6,TYPES:()=>Nz});import{sql as q}from"kysely";var Nz=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function Y6(_){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(Nz.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
|
|
1889
1889
|
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
|
|
1890
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function
|
|
1890
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function D6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var um={};C(um,{up:()=>H6,down:()=>M6});import{sql as mz}from"kysely";async function H6(_){await mz`
|
|
1891
1891
|
UPDATE org_jira_integrations
|
|
1892
1892
|
SET status_mapping = (
|
|
1893
1893
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1902,7 +1902,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1902
1902
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1903
1903
|
WHERE jsonb_typeof(value) = 'array'
|
|
1904
1904
|
)
|
|
1905
|
-
`.execute(_)}async function
|
|
1905
|
+
`.execute(_)}async function M6(_){await mz`
|
|
1906
1906
|
UPDATE org_jira_integrations
|
|
1907
1907
|
SET status_mapping = (
|
|
1908
1908
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1917,7 +1917,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1917
1917
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1918
1918
|
WHERE jsonb_typeof(value) = 'array'
|
|
1919
1919
|
)
|
|
1920
|
-
`.execute(_)}var
|
|
1920
|
+
`.execute(_)}var Km={};C(Km,{up:()=>B6,down:()=>G6,TYPES:()=>Cm});import{sql as ux}from"kysely";var Cm=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],R6=new Set(["mentioned"]);async function B6(_){await Tz(_,Cm)}async function G6(_){await Tz(_,Cm.filter((x)=>!R6.has(x)))}async function Tz(_,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 mm={};C(mm,{up:()=>A6,down:()=>f6,ACTIONS:()=>Nm});import{sql as i}from"kysely";var O6=["bug","feature","chore","spike","security"],Nm=["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"],S6=new Set(["type_changed"]);async function A6(_){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(O6.map((x)=>i.lit(x)))}))`.execute(_),await zz(_,Nm)}async function f6(_){await zz(_,Nm.filter((x)=>!S6.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 zz(_,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 Tm={};C(Tm,{up:()=>I6,down:()=>y6});import{sql as W}from"kysely";var $z=["bug","feature","chore","spike","security"],Ez="chore";async function I6(_){await W`UPDATE task_board_items SET type = ${W.lit(Ez)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(Ez)}`.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($z.map((x)=>W.lit(x)))}))`.execute(_)}async function y6(_){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($z.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 zm={};C(zm,{up:()=>V6,down:()=>w6});import{sql as u_}from"kysely";async function V6(_){await u_`
|
|
1921
1921
|
CREATE TABLE task_board_sprints (
|
|
1922
1922
|
id text PRIMARY KEY,
|
|
1923
1923
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1942,34 +1942,34 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1942
1942
|
CREATE INDEX idx_task_board_items_sprint
|
|
1943
1943
|
ON task_board_items (organization_id, sprint_id)
|
|
1944
1944
|
WHERE sprint_id IS NOT NULL
|
|
1945
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function
|
|
1945
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function w6(_){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 Em={};C(Em,{up:()=>n6,down:()=>v6});import{sql as k6}from"kysely";async function n6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function v6(_){await k6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var $m={};C($m,{up:()=>g6,down:()=>q6});import{sql as p6}from"kysely";async function g6(_){await p6`
|
|
1946
1946
|
UPDATE org_jira_integrations
|
|
1947
1947
|
SET last_synced_at = NULL,
|
|
1948
1948
|
last_sync_error = NULL
|
|
1949
1949
|
WHERE last_synced_at IS NOT NULL
|
|
1950
|
-
`.execute(_)}async function
|
|
1950
|
+
`.execute(_)}async function q6(){}var Um={};C(Um,{up:()=>c6,down:()=>h6});import{sql as i6}from"kysely";async function c6(_){await i6`
|
|
1951
1951
|
UPDATE org_jira_integrations
|
|
1952
1952
|
SET last_synced_at = NULL,
|
|
1953
1953
|
last_sync_error = NULL
|
|
1954
1954
|
WHERE last_synced_at IS NOT NULL
|
|
1955
|
-
`.execute(_)}async function
|
|
1955
|
+
`.execute(_)}async function h6(){}var Jm={};C(Jm,{up:()=>t6,down:()=>o6});import{sql as Pm}from"kysely";async function t6(_){await Pm`
|
|
1956
1956
|
ALTER TABLE org_jira_integrations
|
|
1957
1957
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1958
|
-
`.execute(_),await
|
|
1958
|
+
`.execute(_),await Pm`
|
|
1959
1959
|
UPDATE org_jira_integrations
|
|
1960
1960
|
SET rescan_pending = true
|
|
1961
1961
|
WHERE last_synced_at IS NULL
|
|
1962
|
-
`.execute(_)}async function
|
|
1962
|
+
`.execute(_)}async function o6(_){await Pm`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var Xm={};C(Xm,{up:()=>a6,down:()=>r6});async function a6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function r6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Qm={};C(Qm,{up:()=>l6,down:()=>e6});import{sql as Uz}from"kysely";async function l6(_){await Uz`
|
|
1963
1963
|
ALTER TABLE invitation
|
|
1964
1964
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1965
|
-
`.execute(_)}async function
|
|
1965
|
+
`.execute(_)}async function e6(_){await Uz`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Wm={};C(Wm,{up:()=>d6,down:()=>b6});import{sql as Zm}from"kysely";async function d6(_){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(Zm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Zm`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 Zm`
|
|
1966
1966
|
INSERT INTO task_board_column_automations
|
|
1967
1967
|
(id, organization_id, column_key, prompt)
|
|
1968
1968
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1969
1969
|
FROM org_jira_integrations
|
|
1970
1970
|
WHERE auto_delegate = true
|
|
1971
1971
|
ON CONFLICT DO NOTHING
|
|
1972
|
-
`.execute(_)}async function
|
|
1972
|
+
`.execute(_)}async function b6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var jm={};C(jm,{up:()=>s6,down:()=>_W});import{sql as Y_}from"kysely";async function s6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
|
|
1973
1973
|
UPDATE task_board_items i
|
|
1974
1974
|
SET review_cycle_started_at = (
|
|
1975
1975
|
SELECT max(a.occurred_at)
|
|
@@ -1985,13 +1985,13 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
1985
1985
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1986
1986
|
AND assignee_id = 'super-agent'
|
|
1987
1987
|
AND dismissed_at IS NULL
|
|
1988
|
-
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function
|
|
1988
|
+
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function _W(_){await Y_`
|
|
1989
1989
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1990
1990
|
ON task_board_items (updated_at, id)
|
|
1991
1991
|
WHERE status = 'in_review'
|
|
1992
1992
|
AND assignee_id = 'super-agent'
|
|
1993
1993
|
AND dismissed_at IS NULL
|
|
1994
|
-
`.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
|
|
1994
|
+
`.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 Lm={};C(Lm,{up:()=>xW,down:()=>uW});import{sql as Pz}from"kysely";async function xW(_){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(Pz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Pz`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 uW(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Ym={};C(Ym,{up:()=>KW,down:()=>NW,ACTIONS:()=>Fm});import{sql as Cx}from"kysely";var Fm=["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"],CW=new Set(["review_verdict_requested"]);async function KW(_){await Jz(_,Fm)}async function NW(_){await Jz(_,Fm.filter((x)=>!CW.has(x)))}async function Jz(_,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 Dm={};C(Dm,{up:()=>mW,down:()=>TW});import{sql as Kx}from"kysely";async function mW(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Kx`
|
|
1995
1995
|
ALTER TABLE task_board_items
|
|
1996
1996
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1997
1997
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
@@ -2001,13 +2001,13 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
2001
2001
|
FOREIGN KEY (board_column_org, status)
|
|
2002
2002
|
REFERENCES task_board_columns (organization_id, key)
|
|
2003
2003
|
ON DELETE RESTRICT
|
|
2004
|
-
`.execute(_)}async function
|
|
2004
|
+
`.execute(_)}async function TW(_){await Kx`
|
|
2005
2005
|
ALTER TABLE task_board_items
|
|
2006
2006
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
2007
2007
|
`.execute(_),await Kx`
|
|
2008
2008
|
ALTER TABLE task_board_items
|
|
2009
2009
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
2010
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
2010
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var Hm={};C(Hm,{up:()=>zW,down:()=>EW});async function zW(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function EW(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Rm={};C(Rm,{up:()=>UW,down:()=>PW,ACTIONS:()=>Mm});import{sql as Nx}from"kysely";var Mm=["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"],$W=new Set(["sprint_changed"]);async function UW(_){await Xz(_,Mm)}async function PW(_){await Xz(_,Mm.filter((x)=>!$W.has(x)))}async function Xz(_,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 Bm={};C(Bm,{up:()=>XW,down:()=>QW});import{sql as JW}from"kysely";async function XW(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(JW`'[]'::jsonb`)).execute()}async function QW(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Gm={};C(Gm,{up:()=>ZW,down:()=>WW});import{sql as Qz}from"kysely";async function ZW(_){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(Qz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Qz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function WW(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Om={};C(Om,{up:()=>LW,down:()=>FW});import{sql as jW}from"kysely";async function LW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await jW`
|
|
2011
2011
|
UPDATE task_board_items i
|
|
2012
2012
|
SET external_url = t.url,
|
|
2013
2013
|
description = CASE
|
|
@@ -2026,11 +2026,11 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
2026
2026
|
ON g.organization_id = l.organization_id
|
|
2027
2027
|
) t
|
|
2028
2028
|
WHERE t.item_id = i.id
|
|
2029
|
-
`.execute(_)}async function
|
|
2029
|
+
`.execute(_)}async function FW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Sm={};C(Sm,{up:()=>DW,down:()=>HW,ACTIONS:()=>Zz});import{sql as X}from"kysely";var YW=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Zz=["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 DW(_){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`
|
|
2030
2030
|
UPDATE task_board_items
|
|
2031
2031
|
SET status = 'triage'
|
|
2032
|
-
WHERE status NOT IN (${X.join(
|
|
2033
|
-
`.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
|
|
2032
|
+
WHERE status NOT IN (${X.join(YW.map((x)=>X.lit(x)))})
|
|
2033
|
+
`.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 MW(_,Zz),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
|
|
2034
2034
|
ALTER TABLE task_board_item_jira_links
|
|
2035
2035
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
2036
2036
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -2042,7 +2042,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
2042
2042
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
2043
2043
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
2044
2044
|
DROP COLUMN IF EXISTS rescan_pending
|
|
2045
|
-
`.execute(_)}async function
|
|
2045
|
+
`.execute(_)}async function HW(){}async function MW(_,x){await X`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await X`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${X.join(x.map((u)=>X.lit(u)))}))`.execute(_)}var Am={};C(Am,{up:()=>RW,down:()=>BW});import{sql as C_}from"kysely";async function RW(_){await C_`
|
|
2046
2046
|
ALTER TABLE task_board_items
|
|
2047
2047
|
ADD COLUMN IF NOT EXISTS source text
|
|
2048
2048
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
@@ -2063,24 +2063,24 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
2063
2063
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2064
2064
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
2065
2065
|
)
|
|
2066
|
-
`.execute(_)}async function
|
|
2066
|
+
`.execute(_)}async function BW(_){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 fm={};C(fm,{up:()=>GW,down:()=>OW});import{sql as D_}from"kysely";async function GW(_){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_`
|
|
2067
2067
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
2068
2068
|
ON organization_notices (organization_id)
|
|
2069
2069
|
WHERE resolved_at IS NULL
|
|
2070
2070
|
`.execute(_),await D_`
|
|
2071
2071
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
2072
2072
|
ON organization_notices (organization_id, created_at DESC)
|
|
2073
|
-
`.execute(_)}async function
|
|
2073
|
+
`.execute(_)}async function OW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var ym={};C(ym,{up:()=>vW,down:()=>pW});import{sql as Im}from"kysely";import{sql as Y5}from"kysely";var Wz=50000000,SW=1e5;function AW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>SW)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 fW=/\u0000/g,IW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,yW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,VW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,wW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function kW(_){return _.replace(fW,"").replace(IW,"\uFFFD").replace(yW,"$1***@").replace(VW,"$1***").replace(wW,"[base64 data omitted]")}function nW(_){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 jz(_){if(AW(_,Wz)>Wz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return kW(u);if(nW(u))return{type:"text",text:"[image omitted]"};return u})}var Lz=20;async function vW(_){let x=await Im`
|
|
2074
2074
|
SELECT id FROM thread_message_parts
|
|
2075
2075
|
WHERE pg_column_size(payload) > 8192
|
|
2076
2076
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
2077
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
2077
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=Lz){let N=x.rows.slice(u,u+Lz).map((m)=>m.id),K=await Im`
|
|
2078
2078
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
|
|
2079
|
-
`.execute(_);for(let m of K.rows){let T=
|
|
2079
|
+
`.execute(_);for(let m of K.rows){let T=jz(m.payload);if(T===JSON.stringify(m.payload))continue;await Im`
|
|
2080
2080
|
UPDATE thread_message_parts
|
|
2081
2081
|
SET payload = ${T}::jsonb
|
|
2082
2082
|
WHERE id = ${m.id}
|
|
2083
|
-
`.execute(_)}}}async function
|
|
2083
|
+
`.execute(_)}}}async function pW(){}var Vm={};C(Vm,{up:()=>gW,down:()=>qW});async function gW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function qW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var wm={};C(wm,{up:()=>iW,down:()=>cW});import{sql as U}from"kysely";async function iW(_){await U`
|
|
2084
2084
|
CREATE TABLE git_provider_accounts (
|
|
2085
2085
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
2086
2086
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2324,11 +2324,11 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
2324
2324
|
AND r.organization_id = s.organization_id
|
|
2325
2325
|
AND r.host = 'github.com'
|
|
2326
2326
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
|
|
2327
|
-
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function
|
|
2327
|
+
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function cW(_){await U`
|
|
2328
2328
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
2329
2329
|
`.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
|
|
2330
2330
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
2331
|
-
`.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
|
|
2331
|
+
`.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 km={};C(km,{up:()=>tW,down:()=>oW});import{sql as I}from"kysely";var hW=I`
|
|
2332
2332
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
2333
2333
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
2334
2334
|
BEGIN
|
|
@@ -2337,7 +2337,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
2337
2337
|
RETURN NULL;
|
|
2338
2338
|
END;
|
|
2339
2339
|
$$
|
|
2340
|
-
`;async function
|
|
2340
|
+
`;async function tW(_){await hW.execute(_),await I`
|
|
2341
2341
|
ALTER TABLE connections
|
|
2342
2342
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2343
2343
|
`.execute(_),await I`
|
|
@@ -2399,21 +2399,21 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
2399
2399
|
AND r.host = 'github.com'
|
|
2400
2400
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
2401
2401
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
2402
|
-
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function
|
|
2402
|
+
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function oW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
|
|
2403
2403
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
2404
|
-
`.execute(_)}var hW={"001-initial-schema":Lu,"002-organization-settings":Fu,"003-connection-schema-align":Yu,"004-remove-models-binding":Du,"005-connection-configuration":Hu,"006-add-views-to-settings":Mu,"007-monitoring-logs":Ru,"008-event-bus":Bu,"009-drop-audit-logs":Gu,"010-gateways":Ou,"011-gateway-icon":Su,"012-gateway-tool-selection-mode":Au,"013-monitoring-user-agent-gateway":fu,"014-gateway-resources-prompts":Iu,"015-monitoring-properties":yu,"016-downstream-token-client-info":Vu,"017-downstream-token-remove-userid":wu,"018-drop-gateway-tool-selection-strategy":ku,"019-remove-gateway-is-default":nu,"020-enabled-plugins":vu,"021-threads":pu,"022-rename-gateway-to-virtual-mcp":gu,"023-optimize-thread-indexes":qu,"024-consolidate-virtual-mcp":iu,"025-add-monitoring-virtual-mcp-id":cu,"026-restrict-child-connection-delete":hu,"027-update-management-mcp-url":ou,"028-update-management-mcp-to-self":ru,"029-add-updated-by-to-connections":lu,"030-member-tags":eu,"031-add-dependency-mode":du,"032-projects":bu,"033-thread-status":su,"034-monitoring-dashboards":_C,"035-project-connections":xC,"036-update-registry-url":uC,"037-ai-provider-keys":CC,"038-oauth-pkce-states":KC,"039-automations":NC,"040-replace-next-run-at-with-last-run-at":mC,"041-ai-provider-keys-unique-constraint":TC,"042-rename-mesh-mcp-to-cms-mcp":zC,"043-rename-cms-mcp-to-deco-cms":EC,"044-drop-connections-tools-column":$C,"045-thread-context-start-message":UC,"046-remove-object-storage-plugin":JC,"047-add-next-run-at":XC,"048-merge-projects-agents":ZC,"049-remove-org-admin-projects":WC,"050-durable-agent-runs":jC,"051-org-sso":FC,"052-thread-agent-ids":YC,"053-registry-config":DC,"054-connection-slug":MC,"055-spaces":RC,"056-automation-project-scope":BC,"057-thread-virtual-mcp-id":GC,"058-trigger-callback-tokens":OC,"059-kv":SC,"060-member-index":AC,"061-downstream-token-connection-index":fC,"062-private-registry":IC,"063-event-subscriptions-enabled-boolean":yC,"064-brand-context":VC,"065-organization-domains":wC,"066-brand-context-structured":kC,"067-threads-metadata":nC,"068-threads-branch":vC,"069-sandbox-runner-state":pC,"070-model-categories":gC,"071-default-home-agents":qC,"072-ai-provider-key-preset-id":iC,"073-backfill-basic-usage-roles":cC,"074-sandbox-runner-state-handle-nonunique":hC,"075-thread-inflight-async-jobs":tC,"076-automations-drop-agent-json":oC,"077-tier-only-model-selection":rC,"078-automation-tool-call-kind":lC,"079-strip-legacy-freestyle-vm-map-entries":eC,"080-async-research-jobs":dC,"081-async-research-jobs-result-content":bC,"082-secrets":sC,"083-thread-run-locally":_K,"084-drop-host-sandbox-rows":xK,"085-rename-runner-kind":uK,"086-thread-pins-and-vm-map-rekey":CK,"087-fix-vm-map-rekey":KK,"088-purge-cli-activate-keys":NK,"089-rename-remote-user-to-desktop":mK,"090-automation-webhook-triggers":TK,"091-organization-domains-allow-multi":zK,"092-sandbox-naming-uniformization":EK,"093-backfill-global-search-basic-usage":$K,"094-org-file-configs":PK,"095-remove-automation-tool-call-kind":JK,"096-org-file-configs-public-url-base":XK,"097-drop-local-docker-sandbox-state":ZK,"098-thread-message-parts":WK,"099-run-fence":jK,"100-link-transport":LK,"101-cancel-requested-at":FK,"102-observational-agent":YK,"103-revert-observational-agent":DK,"104-agent-sandbox-provider-kind":MK,"105-org-fs":RK,"106-automation-tools":BK,"107-org-fs-public-org":GK,"108-automation-max-agent-steps":OK,"109-thread-message-parts-per-message-seq":SK,"110-backfill-ghs-token-expiry":AK,"111-org-fs-thread-id":fK,"112-org-file-configs-credential-type":IK,"113-thread-failure-reason":yK,"114-run-acked-seq":VK,"115-thread-projected-seq":wK,"116-org-sites":kK,"117-org-file-configs-site-slug":nK,"118-organization-domains-multi-verify":vK,"119-organization-join-requests":pK,"120-org-fs-read-public":gK,"121-org-fs-share-password":qK,"122-split-web-research-tier":hK,"123-connection-credential-vault":tK,"124-drop-thread-projected-seq":oK,"125-github-child-single-parent":aK,"126-task-board":lK,"127-task-board-due-date":eK,"128-reports-only":dK,"129-task-board-assigned-by":bK,"130-task-board-thread-id":sK,"131-task-board-thread-link-cascade":_N,"132-task-board-item-prs":xN,"133-dedupe-duplicate-members":uN,"134-drop-task-board-enabled":CN,"135-task-board-item-fk-cascade":KN,"136-task-board-import-idempotency":NN,"137-agent-sandbox-runner-state":mN,"138-agent-sandbox-sessions":TN,"139-organization-billing":zN,"140-seat-change-log":EN,"141-benefits-sync-pending":$N,"142-stripe-event-watermark":UN,"143-armed-report-url":PN,"144-benefits-pending-index":JN,"145-user-model-preferences":XN,"146-organization-main-agent":QN,"147-drop-agent-sandbox-tables":ZN,"148-org-flags":WN,"149-task-board-item-sort-order":jN,"150-task-board-activity":LN,"151-task-board-tags":YN,"152-repair-connection-slug":HN,"153-task-board-latest-assistant-part-index":MN,"154-task-board-qa-activity":BN,"155-task-board-review-claims":GN,"156-task-board-conflict-activity":SN,"157-drop-seat-billing":AN,"158-drop-github-child-single-parent":fN,"159-task-board-comments":IN,"160-task-quota-billing":yN,"161-task-quota-claim-state":wN,"162-claude-subscriptions":kN,"163-task-board-item-dismissed":nN,"164-per-org-task-quota":vN,"165-task-board-pending-review-index":pN,"166-task-board-last-swept-at":gN,"167-task-board-run-retry":qN,"168-org-repo-sync":cN,"169-task-board-merge-failed-activity":tN,"170-task-board-item-repo":oN,"171-jira-integration":aN,"172-task-board-item-key-seq":rN,"173-thread-github-repo-connection-index":lN,"174-thread-message-parts-persisted-at":dN,"175-task-board-sprints":bN,"176-task-board-done-sweep-index":sN,"177-notifications":_m,"178-jira-status-mapping-array":xm,"179-notification-mentioned":Cm,"180-task-board-item-type":Nm,"181-task-board-item-type-required":mm,"182-task-board-sprints-entities":Tm,"183-drop-jira-jql-filter":zm,"184-jira-rescan-after-scope-change":Em,"185-jira-rescan-existing-cards":$m,"186-jira-rescan-pending-flag":Pm,"187-task-board-comment-thread":Jm,"188-invitation-auto-accept":Xm,"189-task-board-column-automations":Zm,"190-task-board-review-cycle-started-at":Wm,"191-task-board-columns":jm,"192-task-board-verdict-nudge-activity":Fm,"193-task-board-status-column-fk":Ym,"194-jira-link-sprint":Dm,"195-task-board-sprint-activity":Mm,"196-task-board-column-tracker-statuses":Rm,"197-task-board-prompts":Bm,"198-task-board-external-url":Gm,"199-drop-jira-mirror-and-org-columns":Om,"200-jira-run-trigger":Sm,"201-organization-notices":Am,"202-redact-base64-thread-parts":Im,"203-task-board-preview-routes":ym,"204-git-provider-accounts-and-repositories":Vm,"205-repository-references":wm,"206-repository-consumers":ju,"207-task-board-prs-repo-idx":Wu,"208-github-connect-flows":Zu,"209-github-installation-authorization":Qu,"210-github-repository-authorization":Tu,"211-user-fs-org":mu,"212-coding-agent-mcp-excluded":zu,"213-bitbucket-git-provider":Eu,"214-connections-sanitized-id-idx":uu,"215-commerce-discovery-repository":Cu,"216-github-cli-auth":Nu,"217-experiments":$u,"218-thread-message-parts-error-idx":Uu,"219-task-board-duplicate-reported-activity":Ju,"220-jira-automation-continue-pr":Xu,"221-remove-private-registry":jx,"222-org-git-credentials":Lx,"223-drop-org-main-agent-id":xu,"224-repository-sandbox-image":Fx,"225-thread-analytics-indexes":Dx,"226-deco-score-names":Mx,"227-task-board-finding-resolved-activity":Bx,"228-org-voice-config":Wx,"229-jira-automation-from":Gx,"230-project-sidebar":Ox,"231-jira-chat-agent":Sx,"232-task-board-prompt-skills":fx,"233-remove-jira-chat-agent":yx,"234-task-board-comment-audience":Vx,"235-prune-empty-thread-dirs":wx,"236-task-board-sprints":nx,"237-org-sites-project-link":vx,"238-task-board-default-lanes":px,"239-task-board-retire-old-lanes":gx,"240-task-board-restore-todo":qx,"241-automation-board-column-transition":ix,"242-connection-url-slug":cx,"243-experiment-task-board-item":hx,"244-connection-url-slug-rollout-backfill":tx,"245-automation-system-key":ox,"246-automation-pr-ready-trigger":ax,"247-automation-jira-transition":rx,"248-drop-retired-rule-tables":lx,"249-task-board-item-project":ex,"250-github-copilot-subscriptions":dx,"251-org-shared-plans":bx,"252-automation-linked-chat-trigger":sx,"253-automation-pr-builtin-triggers":_u,"254-codex-subscriptions":Xx,"255-order-monitor":Zx,"256-task-board-harness":Ux,"257-task-board-item-hierarchy":Px,"259-repository-monitor-deploys":Jx},mx=hW;import{getMigrations as H9}from"better-auth/db";import{sso as M9}from"@better-auth/sso";import{organization as R9}from"@decocms/better-auth/plugins";import{admin as B9,apiKey as G9,jwt as O9,magicLink as S9,mcp as A9,openAPI as f9}from"better-auth/plugins";import{emailOTP as I9}from"better-auth/plugins/email-otp";import{Kysely as Q9,PostgresDialect as Oz}from"kysely";import{Pool as Sz}from"pg";import{homedir as tW}from"os";var oW=new Set(["all","worker","api"]);function aW(_){let x=(_??"").trim();return oW.has(x)?x:"all"}var rW=new Set(["production","development","test"]);function lW(_){let x=(_??"").trim();return rW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function nm(_,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 nm(_,x,N)??u}function eW(_){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 dW(_,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 km(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function bW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Lz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${tW()}/deco`,u=lW(_.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:nm("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:eW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:dW("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:km(_.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:km(_.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:bW(_.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:nm("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:aW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:km(_.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 sW=null;function K_(){return sW??=Object.freeze(Lz(process.env))}import{createContextKey as N9,metrics as m9,propagation as n8,ROOT_CONTEXT as v8,SpanStatusCode as p8,trace as T9}from"@opentelemetry/api";import{logs as z9,SeverityNumber as vm}from"@opentelemetry/api-logs";import{OTLPLogExporter as i8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as E9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as t8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as a8}from"@opentelemetry/instrumentation-runtime-node";import{context as f5,propagation as I5,SpanKind as y5,SpanStatusCode as V5}from"@opentelemetry/api";var k5=globalThis.fetch;import{ExportResultCode as r5}from"@opentelemetry/core";import{ExportResultCode as Tx}from"@opentelemetry/core";import{mkdir as _9,rename as x9,writeFile as u9}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 _9(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(`
|
|
2404
|
+
`.execute(_)}var aW={"001-initial-schema":Fu,"002-organization-settings":Yu,"003-connection-schema-align":Du,"004-remove-models-binding":Hu,"005-connection-configuration":Mu,"006-add-views-to-settings":Ru,"007-monitoring-logs":Bu,"008-event-bus":Gu,"009-drop-audit-logs":Ou,"010-gateways":Su,"011-gateway-icon":Au,"012-gateway-tool-selection-mode":fu,"013-monitoring-user-agent-gateway":Iu,"014-gateway-resources-prompts":yu,"015-monitoring-properties":Vu,"016-downstream-token-client-info":wu,"017-downstream-token-remove-userid":ku,"018-drop-gateway-tool-selection-strategy":nu,"019-remove-gateway-is-default":vu,"020-enabled-plugins":pu,"021-threads":gu,"022-rename-gateway-to-virtual-mcp":qu,"023-optimize-thread-indexes":iu,"024-consolidate-virtual-mcp":cu,"025-add-monitoring-virtual-mcp-id":hu,"026-restrict-child-connection-delete":tu,"027-update-management-mcp-url":au,"028-update-management-mcp-to-self":lu,"029-add-updated-by-to-connections":eu,"030-member-tags":du,"031-add-dependency-mode":bu,"032-projects":su,"033-thread-status":_C,"034-monitoring-dashboards":xC,"035-project-connections":uC,"036-update-registry-url":CC,"037-ai-provider-keys":KC,"038-oauth-pkce-states":NC,"039-automations":mC,"040-replace-next-run-at-with-last-run-at":TC,"041-ai-provider-keys-unique-constraint":zC,"042-rename-mesh-mcp-to-cms-mcp":EC,"043-rename-cms-mcp-to-deco-cms":$C,"044-drop-connections-tools-column":UC,"045-thread-context-start-message":PC,"046-remove-object-storage-plugin":XC,"047-add-next-run-at":QC,"048-merge-projects-agents":WC,"049-remove-org-admin-projects":jC,"050-durable-agent-runs":LC,"051-org-sso":YC,"052-thread-agent-ids":DC,"053-registry-config":HC,"054-connection-slug":RC,"055-spaces":BC,"056-automation-project-scope":GC,"057-thread-virtual-mcp-id":OC,"058-trigger-callback-tokens":SC,"059-kv":AC,"060-member-index":fC,"061-downstream-token-connection-index":IC,"062-private-registry":yC,"063-event-subscriptions-enabled-boolean":VC,"064-brand-context":wC,"065-organization-domains":kC,"066-brand-context-structured":nC,"067-threads-metadata":vC,"068-threads-branch":pC,"069-sandbox-runner-state":gC,"070-model-categories":qC,"071-default-home-agents":iC,"072-ai-provider-key-preset-id":cC,"073-backfill-basic-usage-roles":hC,"074-sandbox-runner-state-handle-nonunique":tC,"075-thread-inflight-async-jobs":oC,"076-automations-drop-agent-json":aC,"077-tier-only-model-selection":lC,"078-automation-tool-call-kind":eC,"079-strip-legacy-freestyle-vm-map-entries":dC,"080-async-research-jobs":bC,"081-async-research-jobs-result-content":sC,"082-secrets":_K,"083-thread-run-locally":xK,"084-drop-host-sandbox-rows":uK,"085-rename-runner-kind":CK,"086-thread-pins-and-vm-map-rekey":KK,"087-fix-vm-map-rekey":NK,"088-purge-cli-activate-keys":mK,"089-rename-remote-user-to-desktop":TK,"090-automation-webhook-triggers":zK,"091-organization-domains-allow-multi":EK,"092-sandbox-naming-uniformization":$K,"093-backfill-global-search-basic-usage":UK,"094-org-file-configs":JK,"095-remove-automation-tool-call-kind":XK,"096-org-file-configs-public-url-base":QK,"097-drop-local-docker-sandbox-state":WK,"098-thread-message-parts":jK,"099-run-fence":LK,"100-link-transport":FK,"101-cancel-requested-at":YK,"102-observational-agent":DK,"103-revert-observational-agent":HK,"104-agent-sandbox-provider-kind":RK,"105-org-fs":BK,"106-automation-tools":GK,"107-org-fs-public-org":OK,"108-automation-max-agent-steps":SK,"109-thread-message-parts-per-message-seq":AK,"110-backfill-ghs-token-expiry":fK,"111-org-fs-thread-id":IK,"112-org-file-configs-credential-type":yK,"113-thread-failure-reason":VK,"114-run-acked-seq":wK,"115-thread-projected-seq":kK,"116-org-sites":nK,"117-org-file-configs-site-slug":vK,"118-organization-domains-multi-verify":pK,"119-organization-join-requests":gK,"120-org-fs-read-public":qK,"121-org-fs-share-password":iK,"122-split-web-research-tier":tK,"123-connection-credential-vault":oK,"124-drop-thread-projected-seq":aK,"125-github-child-single-parent":rK,"126-task-board":eK,"127-task-board-due-date":dK,"128-reports-only":bK,"129-task-board-assigned-by":sK,"130-task-board-thread-id":_N,"131-task-board-thread-link-cascade":xN,"132-task-board-item-prs":uN,"133-dedupe-duplicate-members":CN,"134-drop-task-board-enabled":KN,"135-task-board-item-fk-cascade":NN,"136-task-board-import-idempotency":mN,"137-agent-sandbox-runner-state":TN,"138-agent-sandbox-sessions":zN,"139-organization-billing":EN,"140-seat-change-log":$N,"141-benefits-sync-pending":UN,"142-stripe-event-watermark":PN,"143-armed-report-url":JN,"144-benefits-pending-index":XN,"145-user-model-preferences":QN,"146-organization-main-agent":ZN,"147-drop-agent-sandbox-tables":WN,"148-org-flags":jN,"149-task-board-item-sort-order":LN,"150-task-board-activity":FN,"151-task-board-tags":DN,"152-repair-connection-slug":MN,"153-task-board-latest-assistant-part-index":RN,"154-task-board-qa-activity":GN,"155-task-board-review-claims":ON,"156-task-board-conflict-activity":AN,"157-drop-seat-billing":fN,"158-drop-github-child-single-parent":IN,"159-task-board-comments":yN,"160-task-quota-billing":VN,"161-task-quota-claim-state":kN,"162-claude-subscriptions":nN,"163-task-board-item-dismissed":vN,"164-per-org-task-quota":pN,"165-task-board-pending-review-index":gN,"166-task-board-last-swept-at":qN,"167-task-board-run-retry":iN,"168-org-repo-sync":hN,"169-task-board-merge-failed-activity":oN,"170-task-board-item-repo":aN,"171-jira-integration":rN,"172-task-board-item-key-seq":lN,"173-thread-github-repo-connection-index":eN,"174-thread-message-parts-persisted-at":bN,"175-task-board-sprints":sN,"176-task-board-done-sweep-index":_m,"177-notifications":xm,"178-jira-status-mapping-array":um,"179-notification-mentioned":Km,"180-task-board-item-type":mm,"181-task-board-item-type-required":Tm,"182-task-board-sprints-entities":zm,"183-drop-jira-jql-filter":Em,"184-jira-rescan-after-scope-change":$m,"185-jira-rescan-existing-cards":Um,"186-jira-rescan-pending-flag":Jm,"187-task-board-comment-thread":Xm,"188-invitation-auto-accept":Qm,"189-task-board-column-automations":Wm,"190-task-board-review-cycle-started-at":jm,"191-task-board-columns":Lm,"192-task-board-verdict-nudge-activity":Ym,"193-task-board-status-column-fk":Dm,"194-jira-link-sprint":Hm,"195-task-board-sprint-activity":Rm,"196-task-board-column-tracker-statuses":Bm,"197-task-board-prompts":Gm,"198-task-board-external-url":Om,"199-drop-jira-mirror-and-org-columns":Sm,"200-jira-run-trigger":Am,"201-organization-notices":fm,"202-redact-base64-thread-parts":ym,"203-task-board-preview-routes":Vm,"204-git-provider-accounts-and-repositories":wm,"205-repository-references":km,"206-repository-consumers":Lu,"207-task-board-prs-repo-idx":ju,"208-github-connect-flows":Wu,"209-github-installation-authorization":Zu,"210-github-repository-authorization":zu,"211-user-fs-org":Tu,"212-coding-agent-mcp-excluded":Eu,"213-bitbucket-git-provider":$u,"214-connections-sanitized-id-idx":Cu,"215-commerce-discovery-repository":Ku,"216-github-cli-auth":mu,"217-experiments":Uu,"218-thread-message-parts-error-idx":Pu,"219-task-board-duplicate-reported-activity":Xu,"220-jira-automation-continue-pr":Qu,"221-remove-private-registry":Lx,"222-org-git-credentials":Fx,"223-drop-org-main-agent-id":uu,"224-repository-sandbox-image":Yx,"225-thread-analytics-indexes":Hx,"226-deco-score-names":Rx,"227-task-board-finding-resolved-activity":Gx,"228-org-voice-config":jx,"229-jira-automation-from":Ox,"230-project-sidebar":Sx,"231-jira-chat-agent":Ax,"232-task-board-prompt-skills":Ix,"233-remove-jira-chat-agent":Vx,"234-task-board-comment-audience":wx,"235-prune-empty-thread-dirs":kx,"236-task-board-sprints":vx,"237-org-sites-project-link":px,"238-task-board-default-lanes":gx,"239-task-board-retire-old-lanes":qx,"240-task-board-restore-todo":ix,"241-automation-board-column-transition":cx,"242-connection-url-slug":hx,"243-experiment-task-board-item":tx,"244-connection-url-slug-rollout-backfill":ox,"245-automation-system-key":ax,"246-automation-pr-ready-trigger":rx,"247-automation-jira-transition":lx,"248-drop-retired-rule-tables":ex,"249-task-board-item-project":dx,"250-github-copilot-subscriptions":bx,"251-org-shared-plans":sx,"252-automation-linked-chat-trigger":_u,"253-automation-pr-builtin-triggers":xu,"254-codex-subscriptions":Qx,"255-order-monitor":Wx,"256-task-board-harness":Ux,"257-task-board-item-hierarchy":Px,"259-repository-monitor-deploys":Jx,"260-demo-board-snapshots":Xx},mx=aW;import{getMigrations as B9}from"better-auth/db";import{sso as G9}from"@better-auth/sso";import{organization as O9}from"@decocms/better-auth/plugins";import{admin as S9,apiKey as A9,jwt as f9,magicLink as I9,mcp as y9,openAPI as V9}from"better-auth/plugins";import{emailOTP as w9}from"better-auth/plugins/email-otp";import{Kysely as j9,PostgresDialect as Sz}from"kysely";import{Pool as Az}from"pg";import{homedir as rW}from"os";var lW=new Set(["all","worker","api"]);function eW(_){let x=(_??"").trim();return lW.has(x)?x:"all"}var dW=new Set(["production","development","test"]);function bW(_){let x=(_??"").trim();return dW.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 sW(_){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 _9(_,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 nm(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function x9(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Fz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${rW()}/deco`,u=bW(_.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:sW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:_9("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:nm(_.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:nm(_.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:x9(_.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:eW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:nm(_.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 u9=null;function K_(){return u9??=Object.freeze(Fz(process.env))}import{createContextKey as z9,metrics as E9,propagation as g8,ROOT_CONTEXT as q8,SpanStatusCode as i8,trace as $9}from"@opentelemetry/api";import{logs as U9,SeverityNumber as pm}from"@opentelemetry/api-logs";import{OTLPLogExporter as t8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as P9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as r8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as e8}from"@opentelemetry/instrumentation-runtime-node";import{context as V5,propagation as w5,SpanKind as k5,SpanStatusCode as n5}from"@opentelemetry/api";var p5=globalThis.fetch;import{ExportResultCode as d5}from"@opentelemetry/core";import{ExportResultCode as Tx}from"@opentelemetry/core";import{mkdir as C9,rename as K9,writeFile as N9}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 C9(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(`
|
|
2405
2405
|
`)+`
|
|
2406
|
-
`;await
|
|
2406
|
+
`;await N9(T,E,{mode:384}),await K9(T,z)}}import{ExportResultCode as u8}from"@opentelemetry/core";import{AggregationTemporality as K8,DataPointType as N8}from"@opentelemetry/sdk-metrics";import{ExportResultCode as U8}from"@opentelemetry/core";var Q8=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as N3,LoggerProvider as m3}from"@opentelemetry/sdk-logs";import{detectResources as z3,envDetector as E3,hostDetector as $3,osDetector as U3,processDetector as P3,resourceFromAttributes as J3}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as Q3}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as j8}from"@opentelemetry/api-logs";import{NodeSDK as j3}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as F3,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as H8}from"@opentelemetry/api";var J9="__d",X9=z9("Current request"),Q9=1;var Dz=(_)=>{let u=new URL(_.url).searchParams.get(J9);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Hz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(X9);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Dz(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 Mz{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 D3=new P9({preventServerStart:!0}),H3=new Hz(new Mz(Q9));var Yz=$9.getTracer("studio","1.0.0"),M_=E9.getMeter("studio","1.0.0"),Z9=U9.getLogger("studio","1.0.0"),gm=(_,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(" ");Z9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},qm={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{gm(pm.ERROR,"ERROR",_),qm.error(..._)};console.warn=(..._)=>{gm(pm.WARN,"WARN",_),qm.warn(..._)};console.debug=(..._)=>{gm(pm.DEBUG,"DEBUG",_),qm.debug(..._)};var im,Rz=0,cm=500;function W9(){if(im)return;let _=performance.now()+cm;im=setInterval(()=>{let x=performance.now();Rz=Math.max(0,x-_),_=x+cm},cm),im.unref?.()}function Bz(){return W9(),Rz}var L9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Gz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Oz=400,F9=100,Y9=(_)=>({"db.status":_.level==="error"?"error":"success"}),D9=(_)=>(x)=>{let u=Y9(x);if(x.queryDurationMillis>Oz){let N=Bz(),K=N>Oz/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(L9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function H9(_){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(Gz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>F9)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 Gz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var fz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Iz(){try{return K_().databasePgSsl}catch{return!1}}function $x(){try{return K_().databasePoolMax}catch{return 10}}function M9(_){let x=H9(new Az({connectionString:_,max:$x(),ssl:Iz(),...fz})),u=new Sz({pool:x});return{type:"postgres",db:new j9({dialect:u,log:D9(x)}),pool:x}}function B_(){return K_().databaseUrl}function yz(_){let x=_||B_();return new Sz({pool:new Az({connectionString:x,max:$x(),ssl:Iz(),...fz})})}function R9(_){let x=_||B_();return M9(x)}async function Vz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function hm(){if(!R_)R_=R9(B_());return R_}async function wz(_){let u={database:yz(_||B_()),plugins:[O9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),S9(),A9(),f9(),V9(),y9({loginPage:"/login"}),G9(),I9({sendMagicLink:async()=>{}}),w9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await B9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function tm(_,x){return(await o`
|
|
2407
2407
|
SELECT table_name FROM information_schema.tables
|
|
2408
2408
|
WHERE table_schema='public' AND table_name=${x}
|
|
2409
|
-
`.execute(_)).rows.length>0}async function
|
|
2409
|
+
`.execute(_)).rows.length>0}async function k9(_){if(await tm(_,"plugin_migrations"))return;await o`
|
|
2410
2410
|
CREATE TABLE plugin_migrations (
|
|
2411
2411
|
plugin_id TEXT NOT NULL,
|
|
2412
2412
|
name TEXT NOT NULL,
|
|
2413
2413
|
timestamp TEXT NOT NULL,
|
|
2414
2414
|
PRIMARY KEY (plugin_id, name)
|
|
2415
2415
|
)
|
|
2416
|
-
`.execute(_)}async function
|
|
2416
|
+
`.execute(_)}async function n9(_){if(!await tm(_,"kysely_migration"))return;let x=await o`
|
|
2417
2417
|
SELECT name, timestamp FROM kysely_migration
|
|
2418
2418
|
WHERE name LIKE '%/%'
|
|
2419
2419
|
`.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`
|
|
@@ -2424,6 +2424,6 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
|
|
|
2424
2424
|
WHERE plugin_id = ${T} AND name = ${z}
|
|
2425
2425
|
`.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${T}/${z}, keeping in old table`);continue}}await o`
|
|
2426
2426
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
2427
|
-
`.execute(_)}}async function
|
|
2427
|
+
`.execute(_)}}async function v9(_){if(!await tm(_,"kysely_migration"))return{};let{rows:x}=await o`
|
|
2428
2428
|
SELECT name FROM kysely_migration
|
|
2429
|
-
`.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
|
|
2429
|
+
`.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 p9(_){await k9(_),await n9(_);let x=new kz({db:_,provider:{getMigrations:async()=>({...await v9(_),...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 g9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await wz();let m=u??hm(),T=async()=>{if(!x&&!u)await Vz(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await p9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function s3(){let _=hm(),x=new kz({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 g9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{p9 as runKyselyMigrations,g9 as migrateToLatest,s3 as migrateDown};
|