decocms 4.502.10 → 4.503.2
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-CTZB0gAT.js → ActiveShapeUtils-CBLSJqBl.js} +1 -1
- package/dist/client/assets/{AlertCircle-DbZXzHU4.js → AlertCircle-BFUZ4yx0.js} +1 -1
- package/dist/client/assets/AreaChart-DKrmhkRJ.js +1 -0
- package/dist/client/assets/{ArrowLeft-DHzrTLxh.js → ArrowLeft-CK2OAC0l.js} +1 -1
- package/dist/client/assets/{ArrowUp-B82v86-f.js → ArrowUp-U6_gobY2.js} +1 -1
- package/dist/client/assets/{BarChart-BJWxjtS7.js → BarChart-DBqZyJQX.js} +1 -1
- package/dist/client/assets/{Building02-DlUkTaCT.js → Building02-Ddm6hNyu.js} +1 -1
- package/dist/client/assets/{CategoricalChart-DpAvLSfP.js → CategoricalChart-DYWjGYq1.js} +3 -3
- package/dist/client/assets/{CheckCircle-C9xArOgT.js → CheckCircle-BWW06ZXQ.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-DhFNZZ7b.js → ChevronSelectorVertical-DKcwgXpF.js} +1 -1
- package/dist/client/assets/{ChevronUp-9p6Wfyjc.js → ChevronUp-CTrNq9Nk.js} +1 -1
- package/dist/client/assets/{Copy01-C21BKNhK.js → Copy01-TJP2zB12.js} +1 -1
- package/dist/client/assets/{CreditCard01-BBQFm-D2.js → CreditCard01-Bm6_xB5H.js} +1 -1
- package/dist/client/assets/{DotsVertical-C79u6eki.js → DotsVertical-DKl8j3BE.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-BPj030RE.js → ErrorBarContext-CR5xIaDQ.js} +1 -1
- package/dist/client/assets/{Globe04-C7fefIAW.js → Globe04-ClrCqE7c.js} +1 -1
- package/dist/client/assets/{Image01-DLGYTG6l.js → Image01-Cf_YxPro.js} +1 -1
- package/dist/client/assets/{Key01-BdXZUygf.js → Key01-55Z6tHcr.js} +1 -1
- package/dist/client/assets/{Link01-nN5I95Fv.js → Link01-DNXOSsg9.js} +1 -1
- package/dist/client/assets/{LinkBroken01-zQXz81xm.js → LinkBroken01-Vuoqu_ZW.js} +1 -1
- package/dist/client/assets/{Monitor01-fhRCZgsV.js → Monitor01-C-mB2rao.js} +1 -1
- package/dist/client/assets/{Play-BVd9KRbk.js → Play-CUFyJJIt.js} +1 -1
- package/dist/client/assets/{Plus-BQGAsZcO.js → Plus-D-GSl2MA.js} +1 -1
- package/dist/client/assets/{SearchMd-DpkjOBW1.js → SearchMd-CkV8MM4H.js} +1 -1
- package/dist/client/assets/{Sector-BwVl_qyy.js → Sector-CNZsIxmG.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-B8fMxhTk.js → ShoppingBag01-dI1cRqeE.js} +1 -1
- package/dist/client/assets/{Sun-zOV0D2Wt.js → Sun-BPl8u-yx.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-rhX6IQru.js → SwitchHorizontal01-KDjTaTLX.js} +1 -1
- package/dist/client/assets/{Tool01-Dg-pQnlG.js → Tool01-CvAlZ6_R.js} +1 -1
- package/dist/client/assets/{Trash01-Xx4Vpu1z.js → Trash01-BzUZQR5Y.js} +1 -1
- package/dist/client/assets/{Upload01-BQIZ0qft.js → Upload01-CdgDB-zC.js} +1 -1
- package/dist/client/assets/{User01-G7-LShqY.js → User01-CinpYulR.js} +1 -1
- package/dist/client/assets/{UserSquare-nowvR0IP.js → UserSquare-0R6kuy9W.js} +1 -1
- package/dist/client/assets/{Users01-DQmBq_uH.js → Users01-DFSTtPtZ.js} +1 -1
- package/dist/client/assets/{XAxis-DnACCXBs.js → XAxis-CMCcO3jI.js} +1 -1
- package/dist/client/assets/{XClose-COhsaGEO.js → XClose-CXxsMd9c.js} +1 -1
- package/dist/client/assets/{ZoomOut-BfZ_MoNU.js → ZoomOut-C1rwTYBB.js} +1 -1
- package/dist/client/assets/{access-gate-CSIEzs4r.js → access-gate-BSx5LbNZ.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-BJ9BKenv.js → add-connection-dialog-CNB1XZS8.js} +1 -1
- package/dist/client/assets/{agent-analytics-D6kjzCQ7.js → agent-analytics-BKsJAgnt.js} +1 -1
- package/dist/client/assets/agent-app-DBSthuoA.js +1 -0
- package/dist/client/assets/{agent-assets-zN5MFK69.js → agent-assets-CvHLRtfR.js} +1 -1
- package/dist/client/assets/{agent-automation-DrGgySuT.js → agent-automation-DG660AlN.js} +1 -1
- package/dist/client/assets/{agent-automations-B2esCZDo.js → agent-automations-DkNZsDdV.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-RG33fd5J.js → agent-connect-sources-DFGjLsvu.js} +1 -1
- package/dist/client/assets/agent-deck-DW69LMk-.js +1 -0
- package/dist/client/assets/{agent-e2e-kwpPDUnP.js → agent-e2e-CTTKhY1C.js} +1 -1
- package/dist/client/assets/{agent-experiments-CNdgRxuu.js → agent-experiments-B23reQrT.js} +1 -1
- package/dist/client/assets/{agent-file-DXydhQME.js → agent-file-CFgK4Fqg.js} +1 -1
- package/dist/client/assets/{agent-hosting-DlozufnU.js → agent-hosting-BL7RyxMT.js} +1 -1
- package/dist/client/assets/{agent-icon-w0fx2BM9.js → agent-icon-Bmu0Xuy8.js} +1 -1
- package/dist/client/assets/agent-library-D9aAC92j.js +1 -0
- package/dist/client/assets/agent-library-file-Dlq-Vts6.js +1 -0
- package/dist/client/assets/agent-monitor-Dxt5K5x_.js +1 -0
- package/dist/client/assets/agent-overview-CAzScYJD.js +1 -0
- package/dist/client/assets/{agent-releases-BkIdH2My.js → agent-releases-RSbZ96r7.js} +1 -1
- package/dist/client/assets/agent-settings-5EOlZJW6.js +1 -0
- package/dist/client/assets/{agent-site-editor-Dip0L8FQ.js → agent-site-editor-DFWKub_t.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-I8N3vaXE.js +2 -0
- package/dist/client/assets/agent-site-editor-content-uhd8Bnc-.js +1 -0
- package/dist/client/assets/agent-site-editor-preview-CV5DbDBm.js +1 -0
- package/dist/client/assets/agent-view-QNUTYcIi.js +1 -0
- package/dist/client/assets/{agent-view-guard-C6h6rG-Z.js → agent-view-guard-BwubZYi8.js} +1 -1
- package/dist/client/assets/{agents-list-DDQraAcj.js → agents-list-L7YgNFph.js} +1 -1
- package/dist/client/assets/{ai-providers-DmFV4s-Y.js → ai-providers-DEeLkiCM.js} +1 -1
- package/dist/client/assets/{alert-Bl0z1bzt.js → alert-CnRQ3m-7.js} +1 -1
- package/dist/client/assets/{alert-dialog-BudrRkY9.js → alert-dialog-BaBKldUA.js} +1 -1
- package/dist/client/assets/{analytics-sections-BYrQ2Tus.js → analytics-sections-BIEC86HP.js} +1 -1
- package/dist/client/assets/api-keys-BgtInlXe.js +1 -0
- package/dist/client/assets/{api-keys-Du67GzRh.js → api-keys-CmpJo1Rr.js} +1 -1
- package/dist/client/assets/{app-editor-4p8eBhOq.js → app-editor-BqvAOKlk.js} +1 -1
- package/dist/client/assets/{asset-utils-COm4-tit.js → asset-utils--N2gsOKr.js} +1 -1
- package/dist/client/assets/{auth-BBFulaR2.js → auth-BeK8rRbB.js} +1 -1
- package/dist/client/assets/{auth-catchall-BP0YZzgG.js → auth-catchall-fFMHk_ps.js} +1 -1
- package/dist/client/assets/{auth-entry-BfanHpTj.js → auth-entry-C1_Znn_c.js} +1 -1
- package/dist/client/assets/{auth-split-layout-OXHnaFJZ.js → auth-split-layout-CocPnGfp.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-uNX2a7wo.js → authenticate-and-persist-oauth-DJwJCiC8.js} +1 -1
- package/dist/client/assets/{automation-list-row-Cxes9h3I.js → automation-list-row-3WI1rtPZ.js} +1 -1
- package/dist/client/assets/{automation-runs-CkMQ30IJ.js → automation-runs-dkpbdf4I.js} +1 -1
- package/dist/client/assets/{automations-DYMDL0bR.js → automations-CaP79ol1.js} +1 -1
- package/dist/client/assets/{autosend-8U0-dRxu.js → autosend-B-VPnrp2.js} +1 -1
- package/dist/client/assets/{avatar--kF1Sxbg.js → avatar-yCbsNNbw.js} +1 -1
- package/dist/client/assets/{badge-CalXC-Hw.js → badge-Zdi_g359.js} +1 -1
- package/dist/client/assets/{block-document-DIEwEDyG.js → block-document-D4x1DRNW.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-DHduztUh.js → blocks-preview-workspace-context-CMtVQxL8.js} +1 -1
- package/dist/client/assets/{blocks-tab-states-Dj62473g.js → blocks-tab-states-B7_Q2Byx.js} +3 -3
- package/dist/client/assets/{blog-schema-C78FYDZX.js → blog-schema-D0r94Mwa.js} +1 -1
- package/dist/client/assets/{board-analytics-C_fzmWgr.js → board-analytics-DjFw48Ii.js} +1 -1
- package/dist/client/assets/{buckets-CvusBLr6.js → buckets-DmovZm0n.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-CvtJUY07.js → build-improve-prompt-doc-Cd4DLFMv.js} +1 -1
- package/dist/client/assets/{calendar-BrDGheLn.js → calendar-aMW3a7Qx.js} +1 -1
- package/dist/client/assets/{capability-load-error-unMOGE7-.js → capability-load-error-xmV40q_-.js} +1 -1
- package/dist/client/assets/{category-editor-BHP5YPUn.js → category-editor-BYf-_N2d.js} +1 -1
- package/dist/client/assets/{chart-DHN0nyqC.js → chart-D1eqwoYD.js} +1 -1
- package/dist/client/assets/{chat-context-C7boc8JM.js → chat-context-C4pDshj1.js} +1 -1
- package/dist/client/assets/{chat-draft-Y7uteI96.js → chat-draft-D5dlb_sl.js} +1 -1
- package/dist/client/assets/{checkbox-CWYWbV7j.js → checkbox-C2l5tKo2.js} +1 -1
- package/dist/client/assets/{choose-editor-CuZGoYGT.js → choose-editor-C_NzKjq2.js} +1 -1
- package/dist/client/assets/{cli-auth-success-B-M6jnbq.js → cli-auth-success-DSx-mAhh.js} +1 -1
- package/dist/client/assets/{client-icons-DNcBuTjH.js → client-icons-BasHQFnS.js} +1 -1
- package/dist/client/assets/cms-settings-editor-BB3l1bfM.js +1 -0
- package/dist/client/assets/{collapsible-dPqRUFUS.js → collapsible-CDZFoOK-.js} +1 -1
- package/dist/client/assets/{collection-detail-By5cY3Zd.js → collection-detail-DkNCk0OQ.js} +1 -1
- package/dist/client/assets/{collection-display-button-C8-mjKkg.js → collection-display-button--eCg5c5n.js} +1 -1
- package/dist/client/assets/{collection-search-Cpx0YrAf.js → collection-search-sopr7ssV.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-DEDdyYPP.js → collection-table-wrapper-Cy3Cbckv.js} +1 -1
- package/dist/client/assets/{collection-tabs-dQf8n2Wy.js → collection-tabs-DU5QTifc.js} +1 -1
- package/dist/client/assets/{column-rules-CB8_X7l2.js → column-rules-Z54WqqNc.js} +1 -1
- package/dist/client/assets/{combobox-CIJ-TFnx.js → combobox-C2hXpc1p.js} +1 -1
- package/dist/client/assets/{command-D5QXIfZJ.js → command-BSGZ-TwS.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-CCrMSp7z.js → companion-mcps-section-d9HGklIc.js} +1 -1
- package/dist/client/assets/{config-C_5rJ3AS.js → config-CddNRjRY.js} +1 -1
- package/dist/client/assets/{connect-D80egF9f.js → connect-BGfL3A9r.js} +1 -1
- package/dist/client/assets/{connect-layout-BZV7md2x.js → connect-layout-DoM7vuFX.js} +1 -1
- package/dist/client/assets/{connection-DodWF9zN.js → connection-B0eFNfCu.js} +1 -1
- package/dist/client/assets/{connection-card-BNE5emfZ.js → connection-card-BzTYJa6s.js} +1 -1
- package/dist/client/assets/{connection-detail-CsNgDg4n.js → connection-detail-Cwz-qT82.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-C3pfz3w3.js → connection-form-helpers-ChgreO5F.js} +1 -1
- package/dist/client/assets/{connections-BTwsUVHU.js → connections-CnirV_66.js} +1 -1
- package/dist/client/assets/{content-tab-FdqIt_Oh.js → content-tab-BIEsoSfa.js} +3 -3
- package/dist/client/assets/{context-BSqPFNMt.js → context-DEuw9CjH.js} +1 -1
- package/dist/client/assets/{context-menu-DMp6u7s_.js → context-menu-CHrxflOD.js} +1 -1
- package/dist/client/assets/{core.esm-B8TX0IEB.js → core.esm-CWXW2IWJ.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-DBgtiZ3V.js → create-organization-dialog-Bci4qKSS.js} +1 -1
- package/dist/client/assets/{daily-pulse-D6PbLmHv.js → daily-pulse-CRZ8lDnm.js} +1 -1
- package/dist/client/assets/{discover-CCdXzYXu.js → discover-C3iLTVFB.js} +1 -1
- package/dist/client/assets/{domain-settings-B97ncMbo.js → domain-settings-DdY9W_8b.js} +1 -1
- package/dist/client/assets/{drawer-CYWmH_yu.js → drawer-BpEasqMM.js} +1 -1
- package/dist/client/assets/{editor-BhHZG0fs.js → editor-DQK8Gbky.js} +1 -1
- package/dist/client/assets/{editor-classes-D8DelYa3.js → editor-classes-wKHzvXkJ.js} +1 -1
- package/dist/client/assets/{empty-state-D5cCxi9-.js → empty-state-Ck0Y0zH4.js} +1 -1
- package/dist/client/assets/{empty-state-CsxboN3T.js → empty-state-GUv-DLNf.js} +1 -1
- package/dist/client/assets/{extract-connection-data-BAExt33p.js → extract-connection-data-CyaR6DQN.js} +1 -1
- package/dist/client/assets/{feature-gate-C4xy7xJ2.js → feature-gate-Cd3TCuYG.js} +1 -1
- package/dist/client/assets/{feature-paywall-yoBHjyVR.js → feature-paywall-HnwykYzM.js} +1 -1
- package/dist/client/assets/{file-explorer-0Yc8xmWi.js → file-explorer-B8GvovSI.js} +1 -1
- package/dist/client/assets/{file-preview-BdFmryUk.js → file-preview-KNDU2UhF.js} +1 -1
- package/dist/client/assets/{file-share-button-D-jwYu_R.js → file-share-button-BX7_JCXp.js} +1 -1
- package/dist/client/assets/{file-type-icon-DQMhIyFo.js → file-type-icon-C2WSm6EM.js} +1 -1
- package/dist/client/assets/flat-project-XWFiDywx.js +1 -0
- package/dist/client/assets/{folder-icon-qj3AAsYb.js → folder-icon-DOSAeTvE.js} +1 -1
- package/dist/client/assets/{form-DLKWVYAo.js → form-Dz-wry37.js} +1 -1
- package/dist/client/assets/{general-ek_y6y3g.js → general-lahSHdvs.js} +1 -1
- package/dist/client/assets/home-CfslMwmV.js +1 -0
- package/dist/client/assets/{hosted-publish-feedback-DxQxeJ4m.js → hosted-publish-feedback-D7K1BgAP.js} +1 -1
- package/dist/client/assets/{icon-button-_GCussIb.js → icon-button-BbQESQAz.js} +1 -1
- package/dist/client/assets/{index-B58qKdtq.js → index-BFWcpEys.js} +1 -1
- package/dist/client/assets/index-BX4Ek3Q9.js +5 -0
- package/dist/client/assets/{index-dpDf5Mys.js → index-BhuMySoe.js} +1 -1
- package/dist/client/assets/{index-DzGYQ4je.js → index-BoB02eW2.js} +37 -37
- package/dist/client/assets/{index-D5cXidcn.js → index-CAsLc9Zw.js} +1 -1
- package/dist/client/assets/{index-By2pGaur.js → index-CD1O2KuY.js} +5 -5
- package/dist/client/assets/{index-DRl6L2p1.js → index-COyZFAVd.js} +1 -1
- package/dist/client/assets/{index-Ch32U0g7.js → index-CVeMcxNw.js} +1 -1
- package/dist/client/assets/{index-C6EeQiXi.js → index-Cdsu1Nw_.js} +1 -1
- package/dist/client/assets/{index-2oqi1IPe.js → index-DSuQX-Dj.js} +1 -1
- package/dist/client/assets/{index-2P0tcyzM.js → index-DhnL-yRw.js} +1 -1
- package/dist/client/assets/{index-DEpAEWYh.js → index-DuSo48nd.js} +1 -1
- package/dist/client/assets/{index-CFsJz__8.js → index-Fqg3dcpq.js} +1 -1
- package/dist/client/assets/{index-DkvszBzo.js → index-mPiuZtAa.js} +1 -1
- package/dist/client/assets/{index-CO_EJ9J6.js → index-qp2WMoaq.js} +1 -1
- package/dist/client/assets/{index-redirect-BU3dut4I.js → index-redirect-LGC8XAQa.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-pgDKCF24.js → infiniteQueryObserver-BuOPvaCd.js} +1 -1
- package/dist/client/assets/{infra-billing-DiVJM4iA.js → infra-billing-C7a9CxBG.js} +1 -1
- package/dist/client/assets/{input-B1h4zvN9.js → input-CC2XqVda.js} +1 -1
- package/dist/client/assets/{input-B38h0Qtk.js → input-Dx6Yl3YV.js} +3 -3
- package/dist/client/assets/{integration-icon-BxOhvDOr.js → integration-icon-YHEiRLgT.js} +1 -1
- package/dist/client/assets/{jira-icon-DY_jBl8B.js → jira-icon-i9apovX2.js} +1 -1
- package/dist/client/assets/{label-CW8ZlpsA.js → label-CsyEQPG4.js} +1 -1
- package/dist/client/assets/{layout-DnHQN45O.js → layout-BT112QdT.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-CIAoGOpa.js → legacy-agents-deep-HgU3c2Dz.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-CsdcjRMa.js → legacy-main-redirect-jScx_XSf.js} +1 -1
- package/dist/client/assets/library-CWV47kSp.js +1 -0
- package/dist/client/assets/{library-tab-Dax3-FxG.js → library-tab-9158ORpA.js} +1 -1
- package/dist/client/assets/{login-CUYStE89.js → login-OE28YT2s.js} +1 -1
- package/dist/client/assets/{markdown-DeT-O_Oi.js → markdown-TXCHEe-4.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-DcFodUL5.js → mcp-app-renderer-BAlCN3Lv.js} +1 -1
- package/dist/client/assets/{mcp-oauth-BpHonAUS.js → mcp-oauth-BFqNJ-iQ.js} +1 -1
- package/dist/client/assets/{mcp-oauth-BNbzufHU.js → mcp-oauth-CuU6LL15.js} +1 -1
- package/dist/client/assets/{members-DtzKsLnR.js → members-CbEEa2ua.js} +1 -1
- package/dist/client/assets/{memory-BfLKA6nk.js → memory-malk94i-.js} +1 -1
- package/dist/client/assets/{mini-report-page-DHTuyxkC.js → mini-report-page-Dhes7qGv.js} +1 -1
- package/dist/client/assets/{mock-board-BN3sYkpd.js → mock-board-B4GBU96k.js} +1 -1
- package/dist/client/assets/{monaco-editor-DIoQcD6P.js → monaco-editor-DIn5LVAo.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-DWB3Il2o.js → monitoring-stats-row-CsXWM1-N.js} +1 -1
- package/dist/client/assets/{multi-select-DW--_mMy.js → multi-select-jv5l4gKB.js} +1 -1
- package/dist/client/assets/{mustache-C198M5dI.js → mustache-C3mAjW3w.js} +1 -1
- package/dist/client/assets/{new-project-dialog-rdjKEc0R.js → new-project-dialog-DCPZVRuS.js} +1 -1
- package/dist/client/assets/{oauth-callback-aF742nt_.js → oauth-callback-C7bM7rgT.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-C4-2VbK9.js → oauth-callback-ai-provider-maa6Zm5e.js} +1 -1
- package/dist/client/assets/{onboarding-DL3n8PFk.js → onboarding-ds1UbiQ9.js} +1 -1
- package/dist/client/assets/{openai-conversation-DCn05VED.js → openai-conversation-BSvbWT0F.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-D4gNzi2A.js → optimistic-project-sidebar-views-2rlAyeqj.js} +1 -1
- package/dist/client/assets/order-monitor-day-CZG8_Uqo.js +1 -0
- package/dist/client/assets/{organization-choice-CdLzIyKm.js → organization-choice-CGGV7pYx.js} +1 -1
- package/dist/client/assets/{orgs-CKuopKwY.js → orgs-DSh5ncFV.js} +1 -1
- package/dist/client/assets/{page-seo-form-8rJfoHEA.js → page-seo-form-BPMiXtW-.js} +1 -1
- package/dist/client/assets/{pair-D9iXgt--.js → pair-C9IKm4JE.js} +1 -1
- package/dist/client/assets/{plan-ladder-BpZwGVg8.js → plan-ladder-DbkDT52b.js} +1 -1
- package/dist/client/assets/{popover-BEsj6vR3.js → popover-CzNTcDJM.js} +1 -1
- package/dist/client/assets/{post-calendar-D-CBcyUU.js → post-calendar-DGIFZvru.js} +1 -1
- package/dist/client/assets/{post-editor-N7AeVTTK.js → post-editor-BINaZa6q.js} +1 -1
- package/dist/client/assets/{preview-content-CX-RAAIs.js → preview-content-BjX4Mivy.js} +1 -1
- package/dist/client/assets/{preview-dialog-BG9NdirF.js → preview-dialog-C8Boj2eR.js} +1 -1
- package/dist/client/assets/{preview-panel-DFmf2KiU.js → preview-panel-BTtWNKn9.js} +1 -1
- package/dist/client/assets/{preview-tab-Cq0FzOLH.js → preview-tab-BYhuHpLV.js} +3 -3
- package/dist/client/assets/{product-picker-dialog-Ce-UR28c.js → product-picker-dialog-qxyRXjlS.js} +1 -1
- package/dist/client/assets/{profile-ssV3RkZV.js → profile-Cgb34CQu.js} +1 -1
- package/dist/client/assets/project-app-view-B5MD1o9B.js +1 -0
- package/dist/client/assets/project-feed-DnDlefHV.js +1 -0
- package/dist/client/assets/{project-icon-BOZuHsb6.js → project-icon-CP0m7tWm.js} +1 -1
- package/dist/client/assets/project-reports-8XAuspn6.js +1 -0
- package/dist/client/assets/project-tasks-CGbl7DTy.js +1 -0
- package/dist/client/assets/{projects-CkR0cdT4.js → projects-DmCmaniu.js} +1 -1
- package/dist/client/assets/{projects-empty-state-Cpuqs4EG.js → projects-empty-state-fIhR2Z5I.js} +1 -1
- package/dist/client/assets/{prompts-BSPLyPpm.js → prompts-CW5UUH65.js} +1 -1
- package/dist/client/assets/record-editor--8X4AXV_.js +1 -0
- package/dist/client/assets/{redirect-editor-D805B62q.js → redirect-editor-CxJl2CVJ.js} +1 -1
- package/dist/client/assets/{reports-CNap1_Uc.js → reports-BXGEiRjn.js} +1 -1
- package/dist/client/assets/reports-eZ_It7qc.js +1 -0
- package/dist/client/assets/{reports-onboarding-CGwOTesM.js → reports-onboarding-DNEAbZJV.js} +1 -1
- package/dist/client/assets/reports-tab-CwK-fp7x.js +2 -0
- package/dist/client/assets/{repositories-CjjlbHXH.js → repositories-ClghJilC.js} +1 -1
- package/dist/client/assets/{repository-binding-Bi-DIonY.js → repository-binding-BYnKmLVI.js} +1 -1
- package/dist/client/assets/{repository-import-picker-DOf1x-tI.js → repository-import-picker-De4qAOck.js} +1 -1
- package/dist/client/assets/{repository-picker-BWuJDa_H.js → repository-picker-B7BUYgB7.js} +1 -1
- package/dist/client/assets/{require-capability-CwAFbuBD.js → require-capability-hn1SreP5.js} +1 -1
- package/dist/client/assets/{required-auth-layout-CLr_4vv9.js → required-auth-layout-Mqzz7XgH.js} +1 -1
- package/dist/client/assets/{reset-password-CTxZk19a.js → reset-password-BOpvbCSW.js} +1 -1
- package/dist/client/assets/{resizable-DD98lqRp.js → resizable-DpCFVPH5.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-BPVtTVku.js → resolve-tab-icon-8PRTNpAS.js} +1 -1
- package/dist/client/assets/{review-settings-CI3bfaH0.js → review-settings-Bw0A1sn1.js} +1 -1
- package/dist/client/assets/{roles-Dz-VLGCL.js → roles-BMCtr4MB.js} +1 -1
- package/dist/client/assets/{route-DobCmO6a.js → route-DLSqOpoM.js} +1 -1
- package/dist/client/assets/route-DnP6JRb8.js +1 -0
- package/dist/client/assets/route-yiouOCXy.js +1 -0
- package/dist/client/assets/{sandbox-lifecycle-context-BRQHpP7A.js → sandbox-lifecycle-context-Dg7K5ioC.js} +1 -1
- package/dist/client/assets/{schema-BGyA--3u.js → schema-D-qEbXZ-.js} +1 -1
- package/dist/client/assets/{schema-mfoOTdbg.js → schema-zU96PUAb.js} +1 -1
- package/dist/client/assets/{scroll-area-DaaLgz_s.js → scroll-area-D_ro8hTm.js} +1 -1
- package/dist/client/assets/{search-input-eg4Y4YFa.js → search-input-qNQGHbDh.js} +1 -1
- package/dist/client/assets/{search-toggle-zYkiRJNX.js → search-toggle-Dfh8XGYH.js} +1 -1
- package/dist/client/assets/{secret-ciphertext-I7QauOs3.js → secret-ciphertext-DkD2R7dc.js} +1 -1
- package/dist/client/assets/{secret-picker-DfGNpKHv.js → secret-picker-CmVVvqgZ.js} +1 -1
- package/dist/client/assets/{secrets-Dc03pb2z.js → secrets-BDW-A1kb.js} +1 -1
- package/dist/client/assets/{sections-editor-BW5ddo_f.js → sections-editor-BKmXdadO.js} +1 -1
- package/dist/client/assets/{select-QBZaLypJ.js → select-C4iThYr6.js} +1 -1
- package/dist/client/assets/{select-model-Dq1aN4vX.js → select-model-BND792Uy.js} +1 -1
- package/dist/client/assets/{seo-editor-CHwUmjlz.js → seo-editor-ClpJZQda.js} +1 -1
- package/dist/client/assets/{separator-CdijOcZe.js → separator-DYHY_XVB.js} +1 -1
- package/dist/client/assets/{settings-tab-WSqsQnVz.js → settings-tab-A8T1BHYG.js} +1 -1
- package/dist/client/assets/{sheet-CkMWrJVJ.js → sheet-BXRHJIP3.js} +1 -1
- package/dist/client/assets/{shell-layout-SkoXOd1a.js → shell-layout-BhM3Q_22.js} +1 -1
- package/dist/client/assets/site-editor-LulM9jUZ.js +1 -0
- package/dist/client/assets/{site-editor-toast-B0pO5yON.js → site-editor-toast-DPPGE5LH.js} +1 -1
- package/dist/client/assets/{skills-3AkZMRJC.js → skills-Kw1j3-7B.js} +1 -1
- package/dist/client/assets/{slider-BUbDFjHG.js → slider-CpU4rmfX.js} +1 -1
- package/dist/client/assets/{sortable.esm-r_0kxOCd.js → sortable.esm-CBSg5QWi.js} +1 -1
- package/dist/client/assets/{sso-Dc5pWnzG.js → sso-GSEhvAQ2.js} +1 -1
- package/dist/client/assets/{suggestion-D84t4pYi.js → suggestion-BPVDnpZj.js} +1 -1
- package/dist/client/assets/{switch-BmYqPGgo.js → switch-63WSXheM.js} +1 -1
- package/dist/client/assets/{symbol-CJzDXO7c.js → symbol-rviHpBrN.js} +1 -1
- package/dist/client/assets/{synced-repos-fVXqYXys.js → synced-repos-D3YnOlYC.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-C5tGzEgb.js → tab-icon-glyph-Dqe-yN6V.js} +1 -1
- package/dist/client/assets/{table-CIfuKXR7.js → table-CLaOCONQ.js} +1 -1
- package/dist/client/assets/{tabs-D_cbCZvQ.js → tabs-BQUPeDjf.js} +1 -1
- package/dist/client/assets/{task-board-D3hDrEMs.js → task-board-DxxiAR5A.js} +1 -1
- package/dist/client/assets/task-key-BCHdFiOO.js +1 -0
- package/dist/client/assets/task-route-Ce6MTE8h.js +1 -0
- package/dist/client/assets/{task-status-BtShubbX.js → task-status-CMbp-PaL.js} +1 -1
- package/dist/client/assets/taskboard-analytics-_ZvfL2sj.js +1 -0
- package/dist/client/assets/{tasks-aU51vuBa.js → tasks-BarD4hla.js} +1 -1
- package/dist/client/assets/tasks-DcunZstc.js +1 -0
- package/dist/client/assets/{textarea-YNmZlxz9.js → textarea-CxYAsAPe.js} +1 -1
- package/dist/client/assets/{thread-analytics-CSwkdFem.js → thread-analytics-Cjx1orRq.js} +1 -1
- package/dist/client/assets/{thread-intent-C0peckWT.js → thread-intent-DikZOwd-.js} +1 -1
- package/dist/client/assets/{thread-route-BIabyzB_.js → thread-route-CRU_aqN9.js} +1 -1
- package/dist/client/assets/{thread-route-BiWGG6Nf.js → thread-route-ChugAIRh.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-o-wpyh-M.js → thread-sheet-body-DfFj6DBB.js} +1 -1
- package/dist/client/assets/{time-range-picker-BrI8y_uu.js → time-range-picker-Bf6M5ihN.js} +1 -1
- package/dist/client/assets/{toggle-group-CIDl0GvE.js → toggle-group-DbSldXZX.js} +1 -1
- package/dist/client/assets/{tool-namespace-1HqDTB0T.js → tool-namespace-pIFYrei5.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-DXjKtTYI.js → toolbar-icon-button-B24Twz-b.js} +1 -1
- package/dist/client/assets/{tooltip-OOT2FRXJ.js → tooltip-Bs0EJaD7.js} +1 -1
- package/dist/client/assets/{tooltipContext-B-cNOrp0.js → tooltipContext-fXkDpiI8.js} +1 -1
- package/dist/client/assets/{track-Bbr1fYQY.js → track-BzGhLw1A.js} +1 -1
- package/dist/client/assets/{types-BETxN8TR.js → types-IpdOmnYx.js} +1 -1
- package/dist/client/assets/{url-slug-63gf-C65.js → url-slug-CMCbwnaP.js} +1 -1
- package/dist/client/assets/{usage-stats-B912Tchp.js → usage-stats-DuvxTL2m.js} +1 -1
- package/dist/client/assets/{use-ai-providers-Boin6TrZ.js → use-ai-providers-Becg3IYt.js} +1 -1
- package/dist/client/assets/{use-app-takeover-bAb0Bn22.js → use-app-takeover-DFb1RzQs.js} +1 -1
- package/dist/client/assets/{use-automations-BA1S9JI2.js → use-automations-Cp9pysoO.js} +1 -1
- package/dist/client/assets/{use-autosave-nQjtFOs-.js → use-autosave-C5CskRdQ.js} +1 -1
- package/dist/client/assets/{use-chat-navigation-CTkiB6Jn.js → use-chat-navigation-BJSvg7rH.js} +1 -1
- package/dist/client/assets/{use-clock-tick-CEu8zq2_.js → use-clock-tick-B1PaG9d4.js} +1 -1
- package/dist/client/assets/{use-connect-companion-3Gaurk9V.js → use-connect-companion-ClLk9Ret.js} +1 -1
- package/dist/client/assets/{use-connection-CIk0SysG.js → use-connection-CLmhN_H7.js} +1 -1
- package/dist/client/assets/{use-copy-DdqqSOOQ.js → use-copy-T3xwaExj.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-DLCnN0Bc.js → use-create-virtual-mcp-CVTk_yNo.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-D224q4hz.js → use-date-fns-locale-CYDYn543.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-BeG6Pney.js → use-debounced-autosave-8fEcHiWI.js} +1 -1
- package/dist/client/assets/{use-debounced-value-CIdisYkq.js → use-debounced-value-d254MtLc.js} +1 -1
- package/dist/client/assets/{use-deco-credits-DkGJI-x1.js → use-deco-credits-BJdkVUlJ.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-BENb56k0.js → use-decopilot-events-D42PqykU.js} +1 -1
- package/dist/client/assets/{use-delete-connection-Bp53G_uo.js → use-delete-connection-Bp41mUbu.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-CzPDXfcD.js → use-deployment-admin-Cz36UM7j.js} +1 -1
- package/dist/client/assets/{use-ensure-project-folder-BcmfbAuR.js → use-ensure-project-folder-DV9pI0pa.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-uP7_OFcR.js → use-fast-preview-draft-url-Dbj9pvCB.js} +1 -1
- package/dist/client/assets/{use-file-configs-Ch0NS5Pc.js → use-file-configs-D_kGDRPd.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-G4rzGI3v.js → use-infinite-scroll-C47I-wuH.js} +1 -1
- package/dist/client/assets/{use-join-requests-yp6IAr0h.js → use-join-requests-Cy3hlZv5.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-0bYC8cZT.js → use-main-panel-tabs-DjhEbRyd.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-yFWtpTs2.js → use-mcp-auth-status-5SUSMsp-.js} +1 -1
- package/dist/client/assets/{use-mcp-client-CwFvp4EC.js → use-mcp-client-CEKqqblF.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-CAOKsDB1.js → use-mcp-prompts-CwF-bqUg.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-DV8Ssa-N.js → use-mcp-tools-_07-mu_D.js} +1 -1
- package/dist/client/assets/{use-members-DKlVbBsg.js → use-members-CFcpHrvE.js} +1 -1
- package/dist/client/assets/{use-mobile-Bv4e9giO.js → use-mobile-CYsZ0F3X.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-Br865bX5.js → use-navigate-to-agent-DNsHLJD8.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-D1GUbTgf.js → use-open-billing-url-C1m0KS6b.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-CNVATKKL.js → use-org-auth-client-9ZqTxhaU.js} +1 -1
- package/dist/client/assets/{use-org-fs-Byjmod8E.js → use-org-fs-Wo4_O8nn.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-DsFnwWov.js → use-org-repo-syncs-HjlHy8Rb.js} +1 -1
- package/dist/client/assets/{use-org-sso-ktfOKKdk.js → use-org-sso-BSkklN8h.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DeL0SOnB.js → use-organization-roles-Dga2ANZJ.js} +1 -1
- package/dist/client/assets/{use-organization-settings-CRThO_Bk.js → use-organization-settings-DHSMN_14.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-Cqu8Xb_L.js → use-panel-navigate-62gIHptt.js} +1 -1
- package/dist/client/assets/{use-project-native-view-presence-EAxaV-35.js → use-project-native-view-presence-D12oGF6A.js} +1 -1
- package/dist/client/assets/{use-project-scope-BFkfMXrm.js → use-project-scope-Dk4Q60O6.js} +1 -1
- package/dist/client/assets/{use-recent-apps-BdqTYWmf.js → use-recent-apps-CCwo686W.js} +1 -1
- package/dist/client/assets/{use-releases-DPoATUeI.js → use-releases-wK1mECcA.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-BMtStgbM.js → use-reports-diagnostic-CfPcDRof.js} +1 -1
- package/dist/client/assets/{use-secrets-9Nv6GJGB.js → use-secrets-Cmhjz2bf.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-BJN5vPDz.js → use-section-preview-base-DJFgOhQZ.js} +1 -1
- package/dist/client/assets/{use-tags-DzaE0p5G.js → use-tags-D0LqZNOI.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-yq3fDjmF.js → use-task-board-analytics-BpQqtB1w.js} +1 -1
- package/dist/client/assets/{use-task-board-events-Cm7RiaOR.js → use-task-board-events-BrTJpTlj.js} +1 -1
- package/dist/client/assets/{use-task-board-item-prs-CpuwpMX_.js → use-task-board-item-prs-BHRZFWqk.js} +1 -1
- package/dist/client/assets/{use-task-board-items-BXjcIp4o.js → use-task-board-items-CZjiF2uB.js} +1 -1
- package/dist/client/assets/{use-task-metadata-CEqKqYBo.js → use-task-metadata-Bef5UioD.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-KrnGogU9.js → use-thread-analytics-CiJumHRj.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-Bhilo9S-.js → use-thread-outputs-BVEM1vsy.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-S3a_-GqY.js +1 -0
- package/dist/client/assets/{useQueries-CDCmtMzA.js → useQueries-D52x651p.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DiRI5XkI.js +1 -0
- package/dist/client/assets/{users-DpioRMZR.js → users-DfEzbgjc.js} +1 -1
- package/dist/client/assets/{utils-CyO0sFRF.js → utils-DVs-Bhj-.js} +1 -1
- package/dist/client/assets/{variant-calendar-D2Ue9ttA.js → variant-calendar-B4damr_G.js} +1 -1
- package/dist/client/assets/{variant-draft-pointer-DVvHww7x.js → variant-draft-pointer-BnxZeLy_.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-DR63ro4_.js → view-mode-toggle-DKlegHXH.js} +1 -1
- package/dist/client/assets/{virtual-mcp-BEkVRfgx.js → virtual-mcp-UT0zZzHO.js} +1 -1
- package/dist/client/assets/watch-sse-pool-BdkzrgTO.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +1 -1
- package/dist/server/migrate-dbos.js +2 -2
- package/dist/server/migrate.js +244 -244
- package/dist/server/server.js +723 -693
- package/package.json +1 -1
- package/dist/client/assets/AreaChart-BDK36Hx4.js +0 -1
- package/dist/client/assets/agent-app-Cy0Wb8nQ.js +0 -1
- package/dist/client/assets/agent-deck-D_FtTpRb.js +0 -1
- package/dist/client/assets/agent-library-DuNdcBDQ.js +0 -1
- package/dist/client/assets/agent-library-file-BfuKcUpc.js +0 -1
- package/dist/client/assets/agent-monitor-CtwdZs_a.js +0 -1
- package/dist/client/assets/agent-overview-CXUTFZ-0.js +0 -1
- package/dist/client/assets/agent-settings-VI8Jye-y.js +0 -1
- package/dist/client/assets/agent-site-editor-code-H-580bQR.js +0 -2
- package/dist/client/assets/agent-site-editor-content-Sx7h5Jhh.js +0 -1
- package/dist/client/assets/agent-site-editor-preview-GqVBwoZa.js +0 -1
- package/dist/client/assets/agent-view-CYDFPIV_.js +0 -1
- package/dist/client/assets/api-keys-CcdfCp8Z.js +0 -1
- package/dist/client/assets/cms-settings-editor-D_UEmRaG.js +0 -1
- package/dist/client/assets/flat-project-Djf43rrR.js +0 -1
- package/dist/client/assets/home-B0VHSSDj.js +0 -1
- package/dist/client/assets/index-CEMpcZH2.js +0 -5
- package/dist/client/assets/library-qn0udAVP.js +0 -1
- package/dist/client/assets/project-app-view-CbRGVruN.js +0 -1
- package/dist/client/assets/project-feed-BYkTxe8U.js +0 -1
- package/dist/client/assets/project-reports-Cby7ToLK.js +0 -1
- package/dist/client/assets/project-tasks-DWvwJU4i.js +0 -1
- package/dist/client/assets/record-editor-BTpwFXbZ.js +0 -1
- package/dist/client/assets/reports-B_aoe-_-.js +0 -1
- package/dist/client/assets/reports-tab-BfjGKI8Z.js +0 -2
- package/dist/client/assets/route-B3ci9bDJ.js +0 -1
- package/dist/client/assets/route-BGgyso4O.js +0 -1
- package/dist/client/assets/site-editor-Db8otCJp.js +0 -1
- package/dist/client/assets/task-route-Ct_lSat4.js +0 -1
- package/dist/client/assets/taskboard-analytics-xs2Qkqls.js +0 -1
- package/dist/client/assets/tasks-B1SLqYgx.js +0 -1
- package/dist/client/assets/useInfiniteQuery-Ddm9V9zO.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-Zvo1j3mt.js +0 -1
- package/dist/client/assets/watch-sse-pool-DtoO-1Ad.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null,x)}var C=(_,x)=>{for(var u in x)fz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Iz.bind(x,u)})};import{Migrator as Sz,sql as o}from"kysely";var $x={};C($x,{up:()=>yz,down:()=>Vz});async function yz(_){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 Vz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Jx={};C(Jx,{up:()=>wz,down:()=>kz,TYPES:()=>Ux});import{sql as m_}from"kysely";var Ux=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function wz(_){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 qm(_,Ux)}async function kz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await qm(_,Ux.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function qm(_,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 Px={};C(Px,{up:()=>nz,down:()=>vz});import{sql as im}from"kysely";async function nz(_){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",im`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",im`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function vz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Qx={};C(Qx,{up:()=>pz,down:()=>gz});import{sql as a}from"kysely";async function pz(_){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
|
|
3
3
|
DROP COLUMN IF EXISTS registry_config,
|
|
4
4
|
DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
|
|
5
5
|
BEGIN RETURN value::jsonb;
|
|
@@ -14,20 +14,20 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
14
14
|
)`.execute(_),await a`DELETE FROM connections
|
|
15
15
|
WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
|
|
16
16
|
OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
|
|
17
|
-
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function
|
|
17
|
+
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function gz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Xx={};C(Xx,{up:()=>qz,down:()=>iz});import{sql as cm}from"kysely";async function qz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await cm`
|
|
18
18
|
select organization_id, metadata
|
|
19
19
|
from connections
|
|
20
20
|
where connection_type = 'VIRTUAL'
|
|
21
21
|
and metadata like '%submoduleCredentials%'
|
|
22
22
|
order by updated_at asc
|
|
23
|
-
`.execute(_),u=new Map;for(let 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
|
|
23
|
+
`.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 cm`
|
|
24
24
|
insert into organization_settings
|
|
25
25
|
("organizationId", submodule_credentials, "createdAt", "updatedAt")
|
|
26
26
|
values (${K}, ${T}, ${N}, ${N})
|
|
27
27
|
on conflict ("organizationId") do update
|
|
28
28
|
set submodule_credentials = excluded.submodule_credentials,
|
|
29
29
|
"updatedAt" = excluded."updatedAt"
|
|
30
|
-
`.execute(_)}}async function
|
|
30
|
+
`.execute(_)}}async function iz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Zx={};C(Zx,{up:()=>cz,down:()=>hz});async function cz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function hz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var jx={};C(jx,{up:()=>tz,down:()=>oz});import{sql as Wx}from"kysely";async function tz(_){await Wx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Wx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Wx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function oz(_){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 Fx={};C(Fx,{up:()=>lz,down:()=>ez});import{sql as G}from"kysely";var az={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"}},rz={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"}},Lx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function hm(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function tm(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,az],[G`'commerce-discovery_' || organization_id`,rz]])for(let T of["title","description"]){let{from:z,to:E}=hm(m[T],x);await G`
|
|
31
31
|
UPDATE connections
|
|
32
32
|
SET ${G.ref(T)} = ${E}
|
|
33
33
|
WHERE id = ${K}
|
|
@@ -41,7 +41,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
41
41
|
RETURN NULL;
|
|
42
42
|
END;
|
|
43
43
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
44
|
-
`.execute(_);let{from:u,to:N}=
|
|
44
|
+
`.execute(_);let{from:u,to:N}=hm(Lx.label,x);await G`
|
|
45
45
|
WITH agents AS (
|
|
46
46
|
SELECT id, deco_score_try_jsonb(metadata) AS m
|
|
47
47
|
FROM connections
|
|
@@ -56,7 +56,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
56
56
|
(
|
|
57
57
|
SELECT jsonb_agg(
|
|
58
58
|
CASE
|
|
59
|
-
WHEN v ->> 'toolName' = ${
|
|
59
|
+
WHEN v ->> 'toolName' = ${Lx.toolName}
|
|
60
60
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
61
61
|
THEN v || jsonb_build_object('label', ${N}::text)
|
|
62
62
|
ELSE v
|
|
@@ -72,7 +72,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
72
72
|
AND EXISTS (
|
|
73
73
|
SELECT 1
|
|
74
74
|
FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
|
|
75
|
-
WHERE v ->> 'toolName' = ${
|
|
75
|
+
WHERE v ->> 'toolName' = ${Lx.toolName}
|
|
76
76
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
77
77
|
)
|
|
78
78
|
)
|
|
@@ -80,38 +80,38 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
80
80
|
SET metadata = r.m::text
|
|
81
81
|
FROM relabeled r
|
|
82
82
|
WHERE c.id = r.id
|
|
83
|
-
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function
|
|
83
|
+
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function lz(_){await tm(_,"up")}async function ez(_){await tm(_,"down")}var Dx={};C(Dx,{up:()=>bz,down:()=>sz,ACTIONS:()=>Yx});import{sql as T_}from"kysely";var Yx=["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"],dz=Yx.filter((_)=>_!=="finding_resolved");async function bz(_){await om(_,Yx)}async function sz(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await om(_,dz)}async function om(_,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 Hx={};C(Hx,{up:()=>_E,down:()=>xE});import{sql as G_}from"kysely";async function _E(_){await G_`
|
|
84
84
|
ALTER TABLE org_jira_column_automations
|
|
85
85
|
ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
|
|
86
86
|
CONSTRAINT chk_org_jira_column_automations_from_kind
|
|
87
87
|
CHECK (from_kind IN ('any', 'earlier', 'later', 'statuses')),
|
|
88
88
|
ADD COLUMN IF NOT EXISTS from_statuses text[] NOT NULL DEFAULT '{}',
|
|
89
89
|
ADD COLUMN IF NOT EXISTS from_key text NOT NULL DEFAULT 'any'
|
|
90
|
-
`.execute(_),await
|
|
90
|
+
`.execute(_),await G_`
|
|
91
91
|
ALTER TABLE org_jira_column_automations
|
|
92
92
|
DROP CONSTRAINT org_jira_column_automations_pkey,
|
|
93
93
|
ADD PRIMARY KEY (organization_id, jira_status, from_key)
|
|
94
|
-
`.execute(_)}async function
|
|
94
|
+
`.execute(_)}async function xE(_){await G_`
|
|
95
95
|
DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
|
|
96
|
-
`.execute(_),await
|
|
96
|
+
`.execute(_),await G_`
|
|
97
97
|
ALTER TABLE org_jira_column_automations
|
|
98
98
|
DROP CONSTRAINT org_jira_column_automations_pkey,
|
|
99
99
|
ADD PRIMARY KEY (organization_id, jira_status),
|
|
100
100
|
DROP COLUMN from_key,
|
|
101
101
|
DROP COLUMN from_statuses,
|
|
102
102
|
DROP COLUMN from_kind
|
|
103
|
-
`.execute(_)}var
|
|
103
|
+
`.execute(_)}var Mx={};C(Mx,{up:()=>uE,down:()=>CE});import{sql as am}from"kysely";async function uE(_){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(am`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(am`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 CE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Rx={};C(Rx,{up:()=>KE,down:()=>NE});async function KE(){}async function NE(){}var Gx={};C(Gx,{up:()=>mE,down:()=>TE});import{sql as Bx}from"kysely";async function mE(_){await Bx`
|
|
104
104
|
ALTER TABLE task_board_prompts
|
|
105
105
|
ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
|
|
106
|
-
`.execute(_)}async function
|
|
106
|
+
`.execute(_)}async function TE(_){await Bx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Bx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Sx={};C(Sx,{up:()=>zE,down:()=>EE});import{sql as Ox}from"kysely";async function zE(_){await Ox`
|
|
107
107
|
DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
|
|
108
|
-
`.execute(_),await
|
|
108
|
+
`.execute(_),await Ox`
|
|
109
109
|
DELETE FROM connection_aggregations
|
|
110
110
|
WHERE parent_connection_id LIKE 'studio-jira\\_%'
|
|
111
|
-
`.execute(_),await
|
|
111
|
+
`.execute(_),await Ox`
|
|
112
112
|
DELETE FROM connections
|
|
113
113
|
WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
|
|
114
|
-
`.execute(_)}async function
|
|
114
|
+
`.execute(_)}async function EE(){}var fx={};C(fx,{up:()=>$E,down:()=>UE});import{sql as rm}from"kysely";async function $E(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(rm`audience in ('human', 'internal')`)).execute(),await rm`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function UE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Ax={};C(Ax,{up:()=>PE,down:()=>QE});import{sql as JE}from"kysely";async function PE(_){await JE`
|
|
115
115
|
UPDATE org_fs_entry AS d
|
|
116
116
|
SET deleted_at = now(),
|
|
117
117
|
updated_at = now(),
|
|
@@ -130,7 +130,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
130
130
|
AND c.parent = d.path
|
|
131
131
|
AND c.deleted_at IS NULL
|
|
132
132
|
)
|
|
133
|
-
`.execute(_)}async function
|
|
133
|
+
`.execute(_)}async function QE(){}var yx={};C(yx,{up:()=>ZE,down:()=>WE,ACTIONS:()=>Ix});import{sql as F}from"kysely";var Ix=["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"],XE=Ix.filter((_)=>_!=="sprint_changed");async function ZE(_){await F`
|
|
134
134
|
CREATE TABLE task_board_sprints (
|
|
135
135
|
id text PRIMARY KEY,
|
|
136
136
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -156,64 +156,64 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
156
156
|
CREATE INDEX idx_task_board_items_sprint
|
|
157
157
|
ON task_board_items (organization_id, sprint_id)
|
|
158
158
|
WHERE sprint_id IS NOT NULL
|
|
159
|
-
`.execute(_),await
|
|
159
|
+
`.execute(_),await lm(_,Ix)}async function WE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await lm(_,XE),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 lm(_,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 Vx={};C(Vx,{up:()=>LE,planOrgSiteProjectLinks:()=>bm,down:()=>FE,applyOrgSiteProjectLinks:()=>sm});import{sql as P}from"kysely";var jE="migration-237",em=1000;async function dm(_){return(await P`
|
|
160
160
|
SELECT conname FROM pg_constraint
|
|
161
161
|
WHERE conrelid = 'org_sites'::regclass
|
|
162
162
|
AND confrelid = 'organization'::regclass
|
|
163
163
|
AND contype = 'f'
|
|
164
|
-
`.execute(_)).rows[0]?.conname??null}async function
|
|
164
|
+
`.execute(_)).rows[0]?.conname??null}async function bm(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await P`
|
|
165
165
|
SELECT slug, organization_id FROM org_sites
|
|
166
166
|
WHERE organization_id IS NOT NULL
|
|
167
167
|
ORDER BY organization_id, slug
|
|
168
|
-
`.execute(_);if(u.rows.length===0)return x;let N=await
|
|
168
|
+
`.execute(_);if(u.rows.length===0)return x;let N=await P`
|
|
169
169
|
SELECT id, organization_id, metadata FROM connections
|
|
170
170
|
WHERE connection_type = 'VIRTUAL'
|
|
171
171
|
AND organization_id IN (
|
|
172
172
|
SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
|
|
173
173
|
)
|
|
174
174
|
ORDER BY organization_id, id
|
|
175
|
-
`.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
|
|
175
|
+
`.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 sm(_,x){let u=0;for(let N=0;N<x.length;N+=em){let K=P.join(x.slice(N,N+em).map((T)=>P`(${T.slug}::text, ${T.projectId}::text)`)),m=await P`
|
|
176
176
|
UPDATE org_sites o
|
|
177
177
|
SET project_id = v.pid,
|
|
178
178
|
linked_at = now(),
|
|
179
|
-
updated_by = ${
|
|
179
|
+
updated_by = ${jE},
|
|
180
180
|
updated_at = now()
|
|
181
181
|
FROM (VALUES ${K}) AS v(slug, pid)
|
|
182
182
|
WHERE o.slug = v.slug
|
|
183
183
|
AND o.project_id IS NULL
|
|
184
184
|
AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
|
|
185
|
-
`.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function
|
|
185
|
+
`.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function LE(_){await P`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await bm(_);await P`
|
|
186
186
|
ALTER TABLE org_sites
|
|
187
187
|
ADD COLUMN project_id text NULL
|
|
188
188
|
REFERENCES connections(id) ON DELETE SET NULL,
|
|
189
189
|
ADD COLUMN linked_at timestamptz NULL
|
|
190
|
-
`.execute(_),await
|
|
190
|
+
`.execute(_),await P`
|
|
191
191
|
CREATE UNIQUE INDEX org_sites_project_id_uq
|
|
192
192
|
ON org_sites (project_id) WHERE project_id IS NOT NULL
|
|
193
|
-
`.execute(_);let u=await
|
|
193
|
+
`.execute(_);let u=await dm(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
|
|
194
194
|
ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
|
|
195
|
-
`.execute(_),await
|
|
195
|
+
`.execute(_),await P`
|
|
196
196
|
ALTER TABLE org_sites
|
|
197
197
|
ADD CONSTRAINT org_sites_organization_id_fkey
|
|
198
198
|
FOREIGN KEY (organization_id) REFERENCES organization(id)
|
|
199
199
|
ON DELETE SET NULL NOT VALID
|
|
200
|
-
`.execute(_),await
|
|
200
|
+
`.execute(_),await P`
|
|
201
201
|
ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
|
|
202
|
-
`.execute(_);let N=await
|
|
202
|
+
`.execute(_);let N=await sm(_,x.links),K=await P`
|
|
203
203
|
UPDATE org_sites SET linked_at = created_at
|
|
204
204
|
WHERE organization_id IS NOT NULL AND linked_at IS NULL
|
|
205
|
-
`.execute(_);await
|
|
205
|
+
`.execute(_);await P`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 FE(_){if((await P`
|
|
206
206
|
SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
|
|
207
|
-
`.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
|
|
207
|
+
`.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 dm(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
|
|
208
208
|
ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
|
|
209
|
-
`.execute(_),await
|
|
209
|
+
`.execute(_),await P`
|
|
210
210
|
ALTER TABLE org_sites
|
|
211
211
|
ADD CONSTRAINT org_sites_organization_id_fkey
|
|
212
212
|
FOREIGN KEY (organization_id) REFERENCES organization(id)
|
|
213
213
|
ON DELETE CASCADE
|
|
214
|
-
`.execute(_),await
|
|
214
|
+
`.execute(_),await P`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await P`
|
|
215
215
|
ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
|
|
216
|
-
`.execute(_)}var
|
|
216
|
+
`.execute(_)}var wx={};C(wx,{up:()=>YE,moveRules:()=>Y,down:()=>DE});import{sql as c}from"kysely";async function YE(_){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`
|
|
217
217
|
DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
|
|
218
218
|
`.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`
|
|
219
219
|
WITH moved AS (
|
|
@@ -241,7 +241,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
241
241
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
242
242
|
now()
|
|
243
243
|
FROM moved
|
|
244
|
-
`.execute(_)}async function
|
|
244
|
+
`.execute(_)}async function DE(){}async function Y(_,x,u,N,K){await c`
|
|
245
245
|
DELETE FROM ${c.table(x)} AS src
|
|
246
246
|
WHERE src.column_key = ${N}
|
|
247
247
|
AND EXISTS (
|
|
@@ -255,7 +255,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
255
255
|
id = ${u} || organization_id || '_' || ${K},
|
|
256
256
|
updated_at = now()
|
|
257
257
|
WHERE column_key = ${N}
|
|
258
|
-
`.execute(_)}var
|
|
258
|
+
`.execute(_)}var kx={};C(kx,{up:()=>ME,down:()=>RE});import{sql as HE}from"kysely";async function ME(_){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 HE`
|
|
259
259
|
WITH moved AS (
|
|
260
260
|
UPDATE task_board_items AS i
|
|
261
261
|
SET status = CASE prev.status
|
|
@@ -279,7 +279,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
279
279
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
280
280
|
now()
|
|
281
281
|
FROM moved
|
|
282
|
-
`.execute(_)}async function
|
|
282
|
+
`.execute(_)}async function RE(){}var nx={};C(nx,{up:()=>GE,down:()=>OE});import{sql as BE}from"kysely";async function GE(_){await BE`
|
|
283
283
|
WITH restored AS (
|
|
284
284
|
UPDATE task_board_items AS i
|
|
285
285
|
SET status = 'todo', updated_at = now()
|
|
@@ -306,7 +306,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
306
306
|
jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
|
|
307
307
|
now()
|
|
308
308
|
FROM restored
|
|
309
|
-
`.execute(_)}async function
|
|
309
|
+
`.execute(_)}async function OE(){}var vx={};C(vx,{up:()=>SE,down:()=>fE});import{sql as L}from"kysely";async function SE(_){await L`
|
|
310
310
|
ALTER TABLE automation_triggers
|
|
311
311
|
ADD COLUMN column_key text,
|
|
312
312
|
ADD COLUMN from_kind text,
|
|
@@ -332,7 +332,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
332
332
|
CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
|
|
333
333
|
ON task_board_activity (occurred_at)
|
|
334
334
|
WHERE action = 'status_changed'
|
|
335
|
-
`.execute(_)}async function
|
|
335
|
+
`.execute(_)}async function fE(_){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`
|
|
336
336
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
337
337
|
CHECK (type IN ('cron', 'event', 'webhook'))
|
|
338
338
|
`.execute(_),await L`
|
|
@@ -340,11 +340,11 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
340
340
|
DROP COLUMN IF EXISTS column_key,
|
|
341
341
|
DROP COLUMN IF EXISTS from_kind,
|
|
342
342
|
DROP COLUMN IF EXISTS from_statuses
|
|
343
|
-
`.execute(_)}var
|
|
343
|
+
`.execute(_)}var px={};C(px,{up:()=>VE,down:()=>wE,backfillUrlSlugs:()=>O_});import{sql as D}from"kysely";var xT=64,AE=new Set(["new","edit","settings","apps","projects","connections"]);function IE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function yE(_,x){let u=IE(_??"").slice(0,xT).replace(/-+$/,"");return u.length>=2&&!AE.has(u)?u:x}function _T(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,xT-u.length).replace(/-+$/,"")}${u}`}async function O_(_){let{rows:x}=await D`
|
|
344
344
|
SELECT id, organization_id, title, connection_type, url_slug
|
|
345
345
|
FROM connections
|
|
346
346
|
ORDER BY organization_id, created_at, id
|
|
347
|
-
`.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=
|
|
347
|
+
`.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=yE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(_T(E,$)))$++;let J=_T(E,$);z.add(J),m.push({id:T.id,slug:J})}for(let T=0;T<m.length;T+=1000){let z=m.slice(T,T+1000);await D`
|
|
348
348
|
UPDATE connections c
|
|
349
349
|
SET url_slug = v.slug
|
|
350
350
|
FROM unnest(
|
|
@@ -352,7 +352,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
352
352
|
${D.val(z.map((E)=>E.slug))}::text[]
|
|
353
353
|
) AS v(id, slug)
|
|
354
354
|
WHERE c.id = v.id AND c.url_slug IS NULL
|
|
355
|
-
`.execute(_)}}async function
|
|
355
|
+
`.execute(_)}}async function VE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
|
|
356
356
|
CREATE TABLE connection_slug_aliases (
|
|
357
357
|
organization_id text NOT NULL,
|
|
358
358
|
slug text NOT NULL,
|
|
@@ -363,21 +363,21 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
363
363
|
`.execute(_),await D`
|
|
364
364
|
CREATE INDEX idx_connection_slug_aliases_connection
|
|
365
365
|
ON connection_slug_aliases (connection_id)
|
|
366
|
-
`.execute(_),await
|
|
366
|
+
`.execute(_),await O_(_),await D`
|
|
367
367
|
CREATE UNIQUE INDEX idx_connections_org_url_slug
|
|
368
368
|
ON connections (organization_id, url_slug)
|
|
369
|
-
`.execute(_)}async function
|
|
369
|
+
`.execute(_)}async function wE(_){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 gx={};C(gx,{up:()=>kE,down:()=>nE});async function kE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function nE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var qx={};C(qx,{up:()=>vE,down:()=>pE});async function vE(_){await O_(_)}async function pE(){}var ix={};C(ix,{up:()=>gE,down:()=>qE});import{sql as S_}from"kysely";async function gE(_){await S_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await S_`
|
|
370
370
|
CREATE UNIQUE INDEX idx_automations_org_system_key
|
|
371
371
|
ON automations (organization_id, system_key)
|
|
372
372
|
WHERE system_key IS NOT NULL
|
|
373
|
-
`.execute(_)}async function
|
|
373
|
+
`.execute(_)}async function qE(_){await S_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await S_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var cx={};C(cx,{up:()=>iE,down:()=>cE});import{sql as z_}from"kysely";async function iE(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
|
|
374
374
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
375
375
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
|
|
376
376
|
'board_pr_ready'))
|
|
377
|
-
`.execute(_)}async function
|
|
377
|
+
`.execute(_)}async function cE(_){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_`
|
|
378
378
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
379
379
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
|
|
380
|
-
`.execute(_)}var
|
|
380
|
+
`.execute(_)}var hx={};C(hx,{up:()=>hE,down:()=>aE});import{sql as H}from"kysely";async function hE(_){let{rows:x}=await H`
|
|
381
381
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
382
382
|
WHERE conname = 'chk_trigger_type'
|
|
383
383
|
AND conrelid = 'automation_triggers'::regclass
|
|
@@ -404,8 +404,8 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
404
404
|
INSERT INTO automations
|
|
405
405
|
(id, organization_id, name, active, created_by, messages, models,
|
|
406
406
|
virtual_mcp_id)
|
|
407
|
-
VALUES (${T}, ${K.organization_id}, ${
|
|
408
|
-
${K.created_by}, ${JSON.stringify(
|
|
407
|
+
VALUES (${T}, ${K.organization_id}, ${tE(K)}, true,
|
|
408
|
+
${K.created_by}, ${JSON.stringify(oE(K.prompt))},
|
|
409
409
|
'{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
|
|
410
410
|
ON CONFLICT (id) DO NOTHING
|
|
411
411
|
`.execute(_),await H`
|
|
@@ -414,11 +414,11 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
414
414
|
VALUES (${`trg_${T}`}, ${T}, 'jira_transition', ${K.jira_status},
|
|
415
415
|
${K.from_kind}, ${K.from_statuses})
|
|
416
416
|
ON CONFLICT (id) DO NOTHING
|
|
417
|
-
`.execute(_)}}function
|
|
418
|
-
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function
|
|
417
|
+
`.execute(_)}}function tE(_){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 oE(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
|
|
418
|
+
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function aE(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
|
|
419
419
|
ALTER TABLE automation_triggers
|
|
420
420
|
DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
|
|
421
|
-
`.execute(_)}var
|
|
421
|
+
`.execute(_)}var tx={};C(tx,{up:()=>rE,down:()=>lE});import{sql as E_}from"kysely";async function rE(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function lE(_){await E_`
|
|
422
422
|
CREATE TABLE IF NOT EXISTS task_board_column_automations (
|
|
423
423
|
id text PRIMARY KEY,
|
|
424
424
|
organization_id text NOT NULL,
|
|
@@ -427,10 +427,10 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
427
427
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
428
428
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
429
429
|
)
|
|
430
|
-
`.execute(_),await
|
|
430
|
+
`.execute(_),await E_`
|
|
431
431
|
CREATE UNIQUE INDEX IF NOT EXISTS task_board_column_automations_org_column_uniq
|
|
432
432
|
ON task_board_column_automations (organization_id, column_key)
|
|
433
|
-
`.execute(_),await
|
|
433
|
+
`.execute(_),await E_`
|
|
434
434
|
CREATE TABLE IF NOT EXISTS org_jira_column_automations (
|
|
435
435
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
436
436
|
jira_status text NOT NULL,
|
|
@@ -445,30 +445,30 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
445
445
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
446
446
|
PRIMARY KEY (organization_id, jira_status, from_key)
|
|
447
447
|
)
|
|
448
|
-
`.execute(_)}var
|
|
448
|
+
`.execute(_)}var ox={};C(ox,{up:()=>eE,down:()=>dE});import{sql as f_}from"kysely";async function eE(_){await f_`
|
|
449
449
|
ALTER TABLE task_board_items
|
|
450
450
|
ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
|
|
451
451
|
REFERENCES connections(id) ON DELETE SET NULL
|
|
452
|
-
`.execute(_),await
|
|
452
|
+
`.execute(_),await f_`
|
|
453
453
|
CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
|
|
454
454
|
ON task_board_items (virtual_mcp_id)
|
|
455
455
|
WHERE virtual_mcp_id IS NOT NULL
|
|
456
|
-
`.execute(_)}async function
|
|
456
|
+
`.execute(_)}async function dE(_){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 ax={};C(ax,{up:()=>bE,down:()=>sE});async function bE(_){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 sE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var rx={};C(rx,{up:()=>_0,down:()=>x0});async function _0(_){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 x0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var lx={};C(lx,{up:()=>u0,down:()=>C0});import{sql as r}from"kysely";var A_=["linked_chat_run"];async function uT(_){let{rows:x}=await r`
|
|
457
457
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
458
458
|
WHERE conname = 'chk_trigger_type'
|
|
459
459
|
AND conrelid = 'automation_triggers'::regclass
|
|
460
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
460
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function CT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
|
|
461
461
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
462
462
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
463
|
-
`.execute(_)}async function
|
|
463
|
+
`.execute(_)}async function u0(_){let x=await uT(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await CT(_,x)}async function C0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(A_)})`.execute(_);let x=await uT(_);for(let u of A_)x.delete(u);await CT(_,x)}var ex={};C(ex,{up:()=>K0,down:()=>N0});import{sql as l}from"kysely";var I_=["board_pr_merged","chat_pr_opened"];async function KT(_){let{rows:x}=await l`
|
|
464
464
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
465
465
|
WHERE conname = 'chk_trigger_type'
|
|
466
466
|
AND conrelid = 'automation_triggers'::regclass
|
|
467
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
467
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function NT(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
|
|
468
468
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
469
469
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
470
|
-
`.execute(_)}async function
|
|
471
|
-
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function
|
|
470
|
+
`.execute(_)}async function K0(_){let x=await KT(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await NT(_,x)}async function N0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(I_)})`.execute(_);let x=await KT(_);for(let u of I_)x.delete(u);await NT(_,x)}var dx={};C(dx,{up:()=>T0,down:()=>z0});import{sql as m0}from"kysely";async function T0(_){await m0`ALTER TABLE organization_settings
|
|
471
|
+
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function z0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var bx={};C(bx,{up:()=>E0,down:()=>$0});import{sql as mT}from"kysely";async function E0(_){await mT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function $0(_){await mT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var sx={};C(sx,{up:()=>U0,down:()=>J0});import{sql as O}from"kysely";async function U0(_){await O`
|
|
472
472
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
473
473
|
RETURNS jsonb AS $fn$
|
|
474
474
|
BEGIN
|
|
@@ -542,7 +542,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
542
542
|
|| '/' ||
|
|
543
543
|
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
|
|
544
544
|
) = lower(p.path)
|
|
545
|
-
`.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
|
|
545
|
+
`.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 J0(_){await O`
|
|
546
546
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
547
547
|
RETURNS jsonb AS $fn$
|
|
548
548
|
BEGIN
|
|
@@ -569,17 +569,17 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
569
569
|
)::text
|
|
570
570
|
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
571
571
|
AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
|
|
572
|
-
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var
|
|
572
|
+
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var xu={};C(xu,{up:()=>P0,down:()=>Q0});import{sql as _u}from"kysely";async function P0(_){await _u`ALTER TABLE git_provider_accounts
|
|
573
573
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
574
574
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
575
575
|
CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
|
|
576
576
|
ADD CONSTRAINT git_provider_accounts_cli_check
|
|
577
577
|
CHECK (auth_kind <> 'github_cli' OR
|
|
578
|
-
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function
|
|
578
|
+
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function Q0(_){await _u`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await _u`ALTER TABLE git_provider_accounts
|
|
579
579
|
DROP CONSTRAINT git_provider_accounts_cli_check,
|
|
580
580
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
581
581
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
582
|
-
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var
|
|
582
|
+
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var uu={};C(uu,{up:()=>X0,down:()=>Z0});import{sql as TT}from"kysely";async function X0(_){await TT`
|
|
583
583
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
584
584
|
SELECT
|
|
585
585
|
'org_user_fs',
|
|
@@ -593,9 +593,9 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
593
593
|
END,
|
|
594
594
|
now()
|
|
595
595
|
ON CONFLICT (id) DO NOTHING
|
|
596
|
-
`.execute(_)}async function
|
|
596
|
+
`.execute(_)}async function Z0(_){await TT`
|
|
597
597
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
598
|
-
`.execute(_)}var
|
|
598
|
+
`.execute(_)}var Cu={};C(Cu,{up:()=>W0,down:()=>j0});async function W0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function j0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Ku={};C(Ku,{up:()=>L0,down:()=>F0});async function L0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function F0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var Nu={};C(Nu,{up:()=>D0,down:()=>H0});import{sql as $_}from"kysely";var Y0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function zT(_,x){for(let{table:u,column:N}of Y0){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 D0(_){await zT(_,["github","gitlab","bitbucket"])}async function H0(_){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 zT(_,["github","gitlab"])}var mu={};C(mu,{up:()=>M0,down:()=>R0});import{sql as y_}from"kysely";async function M0(_){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(y_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(y_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).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 R0(_){await _.schema.dropTable("experiments").execute()}var Tu={};C(Tu,{up:()=>G0,down:()=>O0});import{sql as B0}from"kysely";async function G0(_){await B0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function O0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Eu={};C(Eu,{up:()=>f0,down:()=>A0,ACTIONS:()=>zu});import{sql as U_}from"kysely";var zu=["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"],S0=zu.filter((_)=>_!=="duplicate_reported");async function f0(_){await ET(_,zu)}async function A0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await ET(_,S0)}async function ET(_,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 $u={};C($u,{up:()=>I0,down:()=>y0});async function I0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function y0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Uu={};C(Uu,{up:()=>V0,down:()=>w0});async function V0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function w0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Ju={};C(Ju,{up:()=>n0,down:()=>v0});import{sql as k0}from"kysely";async function n0(_){await k0`
|
|
599
599
|
CREATE TABLE github_connect_flows (
|
|
600
600
|
id text PRIMARY KEY,
|
|
601
601
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -605,7 +605,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
605
605
|
);
|
|
606
606
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
607
607
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
608
|
-
`.execute(_)}async function
|
|
608
|
+
`.execute(_)}async function v0(_){await _.schema.dropTable("github_connect_flows").execute()}var Pu={};C(Pu,{up:()=>p0,down:()=>g0});async function p0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function g0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Qu={};C(Qu,{up:()=>q0,down:()=>i0});import{sql as V_}from"kysely";async function q0(_){await V_`
|
|
609
609
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
610
610
|
DECLARE
|
|
611
611
|
metadata_json jsonb;
|
|
@@ -656,24 +656,24 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
656
656
|
AFTER INSERT OR UPDATE OF metadata ON connections
|
|
657
657
|
FOR EACH ROW EXECUTE FUNCTION adopt_legacy_repository();
|
|
658
658
|
UPDATE connections SET metadata = metadata WHERE slug = 'mcp-github';
|
|
659
|
-
`.execute(_),await
|
|
659
|
+
`.execute(_),await V_`
|
|
660
660
|
UPDATE org_repo_sync s SET repository_id = r.id
|
|
661
661
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
662
662
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
663
663
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
664
|
-
`.execute(_)}async function k0(_){await y_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await y_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Uu={};C(Uu,{up:()=>n0,down:()=>v0});import{sql as V}from"kysely";async function n0(_){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 v0(_){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 Ju={};C(Ju,{up:()=>p0,down:()=>g0});import{sql as mT}from"kysely";async function p0(_){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(mT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(mT`CURRENT_TIMESTAMP`)).execute()}async function g0(_){await _.schema.dropTable("organization_settings").execute()}var Qu={};C(Qu,{up:()=>q0,down:()=>i0});async function q0(_){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 i0(_){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 Xu={};C(Xu,{up:()=>c0,down:()=>h0});async function c0(_){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 h0(_){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 Zu={};C(Zu,{up:()=>t0,down:()=>o0});async function t0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function o0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Wu={};C(Wu,{up:()=>r0,down:()=>l0});import{sql as a0}from"kysely";async function r0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",a0`text`).execute()}async function l0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var ju={};C(ju,{up:()=>e0,down:()=>d0});async function e0(_){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 d0(_){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 Lu={};C(Lu,{up:()=>b0,down:()=>s0});import{sql as P_}from"kysely";async function b0(_){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 s0(_){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 Fu={};C(Fu,{up:()=>x$,down:()=>u$});import{sql as _$}from"kysely";async function x$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function u$(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(_$`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Yu={};C(Yu,{up:()=>C$,down:()=>K$});import{sql as V_}from"kysely";async function C$(_){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(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("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(V_`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 V_`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 K$(_){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 Du={};C(Du,{up:()=>N$,down:()=>m$});async function N$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function m$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Hu={};C(Hu,{up:()=>T$,down:()=>z$});import{sql as w_}from"kysely";async function T$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await w_`
|
|
664
|
+
`.execute(_)}async function i0(_){await V_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await V_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Xu={};C(Xu,{up:()=>c0,down:()=>h0});import{sql as V}from"kysely";async function c0(_){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 h0(_){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 Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as $T}from"kysely";async function t0(_){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($T`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo($T`CURRENT_TIMESTAMP`)).execute()}async function o0(_){await _.schema.dropTable("organization_settings").execute()}var Wu={};C(Wu,{up:()=>a0,down:()=>r0});async function a0(_){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 r0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var ju={};C(ju,{up:()=>l0,down:()=>e0});async function l0(_){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 e0(_){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 Lu={};C(Lu,{up:()=>d0,down:()=>b0});async function d0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function b0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Fu={};C(Fu,{up:()=>_$,down:()=>x$});import{sql as s0}from"kysely";async function _$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",s0`text`).execute()}async function x$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Yu={};C(Yu,{up:()=>u$,down:()=>C$});async function u$(_){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 C$(_){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 Du={};C(Du,{up:()=>K$,down:()=>N$});import{sql as J_}from"kysely";async function K$(_){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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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(J_`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 N$(_){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 Hu={};C(Hu,{up:()=>T$,down:()=>z$});import{sql as m$}from"kysely";async function T$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function z$(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(m$`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 Mu={};C(Mu,{up:()=>E$,down:()=>$$});import{sql as w_}from"kysely";async function E$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await w_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function $$(_){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 Ru={};C(Ru,{up:()=>U$,down:()=>J$});async function U$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function J$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Bu={};C(Bu,{up:()=>P$,down:()=>Q$});import{sql as k_}from"kysely";async function P$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await k_`
|
|
665
665
|
UPDATE gateways
|
|
666
666
|
SET tool_selection_mode = CASE
|
|
667
667
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
668
668
|
ELSE 'inclusion'
|
|
669
669
|
END
|
|
670
|
-
`.execute(_),await
|
|
670
|
+
`.execute(_),await k_`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 Q$(_){await k_`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 k_`
|
|
671
671
|
UPDATE gateways
|
|
672
672
|
SET tool_selection_strategy = CASE
|
|
673
673
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
674
674
|
ELSE NULL
|
|
675
675
|
END
|
|
676
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var
|
|
676
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Gu={};C(Gu,{up:()=>X$,down:()=>Z$});async function X$(_){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 Z$(_){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 Ou={};C(Ou,{up:()=>W$,down:()=>j$});async function W$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function j$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Su={};C(Su,{up:()=>L$,down:()=>F$});async function L$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function F$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var fu={};C(fu,{up:()=>Y$,down:()=>D$});async function Y$(_){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 D$(_){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 Au={};C(Au,{up:()=>M$,down:()=>R$});import{sql as H$}from"kysely";async function M$(_){await H$`
|
|
677
677
|
DELETE FROM downstream_tokens
|
|
678
678
|
WHERE id NOT IN (
|
|
679
679
|
SELECT id FROM (
|
|
@@ -683,7 +683,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
683
683
|
) ranked
|
|
684
684
|
WHERE rn = 1
|
|
685
685
|
)
|
|
686
|
-
`.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
|
|
686
|
+
`.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 R$(_){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 Iu={};C(Iu,{up:()=>B$,down:()=>G$});async function B$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function G$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var yu={};C(yu,{up:()=>O$,down:()=>S$});import{sql as UT}from"kysely";async function O$(_){await UT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function S$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await UT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Vu={};C(Vu,{up:()=>f$,down:()=>A$});async function f$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function A$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var wu={};C(wu,{up:()=>I$,down:()=>y$});import{sql as n_}from"kysely";async function I$(_){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(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`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(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`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 y$(_){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 ku={};C(ku,{up:()=>V$,down:()=>w$});async function V$(_){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 w$(_){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 nu={};C(nu,{up:()=>k$,down:()=>n$});async function k$(_){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 n$(_){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 vu={};C(vu,{up:()=>v$,down:()=>p$});import{sql as M}from"kysely";async function v$(_){await M`
|
|
687
687
|
INSERT INTO connections (
|
|
688
688
|
id,
|
|
689
689
|
organization_id,
|
|
@@ -730,7 +730,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
730
730
|
created_at,
|
|
731
731
|
updated_at
|
|
732
732
|
FROM virtual_mcps
|
|
733
|
-
`.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
|
|
733
|
+
`.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 p$(_){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`
|
|
734
734
|
INSERT INTO virtual_mcps (
|
|
735
735
|
id, organization_id, title, description, icon, status,
|
|
736
736
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -740,7 +740,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
740
740
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
741
741
|
FROM connections
|
|
742
742
|
WHERE connection_type = 'VIRTUAL'
|
|
743
|
-
`.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
|
|
743
|
+
`.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 pu={};C(pu,{up:()=>g$,down:()=>q$});async function g$(_){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 q$(_){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 gu={};C(gu,{up:()=>i$,down:()=>c$});import{sql as w}from"kysely";async function i$(_){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`
|
|
744
744
|
INSERT INTO connection_aggregations_new (
|
|
745
745
|
id, parent_connection_id, child_connection_id,
|
|
746
746
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -749,7 +749,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
749
749
|
id, parent_connection_id, child_connection_id,
|
|
750
750
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
751
751
|
FROM connection_aggregations
|
|
752
|
-
`.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
|
|
752
|
+
`.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 c$(_){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`
|
|
753
753
|
INSERT INTO connection_aggregations_new (
|
|
754
754
|
id, parent_connection_id, child_connection_id,
|
|
755
755
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -758,7 +758,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
758
758
|
id, parent_connection_id, child_connection_id,
|
|
759
759
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
760
760
|
FROM connection_aggregations
|
|
761
|
-
`.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
|
|
761
|
+
`.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 iu={};C(iu,{up:()=>h$,down:()=>t$});import{sql as qu}from"kysely";async function h$(_){await qu`
|
|
762
762
|
UPDATE connections
|
|
763
763
|
SET connection_url = connection_url || '/management',
|
|
764
764
|
tools = NULL,
|
|
@@ -766,42 +766,42 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
766
766
|
WHERE connection_url LIKE '%/mcp'
|
|
767
767
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
768
768
|
AND app_name = '@deco/management-mcp'
|
|
769
|
-
`.execute(_),await
|
|
769
|
+
`.execute(_),await qu`
|
|
770
770
|
UPDATE connections
|
|
771
771
|
SET tools = NULL,
|
|
772
772
|
updated_at = CURRENT_TIMESTAMP
|
|
773
773
|
WHERE app_name = '@deco/management-mcp'
|
|
774
774
|
AND tools IS NOT NULL
|
|
775
|
-
`.execute(_)}async function
|
|
775
|
+
`.execute(_)}async function t$(_){await qu`
|
|
776
776
|
UPDATE connections
|
|
777
777
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
778
778
|
updated_at = CURRENT_TIMESTAMP
|
|
779
779
|
WHERE connection_url LIKE '%/mcp/management'
|
|
780
780
|
AND app_name = '@deco/management-mcp'
|
|
781
|
-
`.execute(_)}var
|
|
781
|
+
`.execute(_)}var hu={};C(hu,{up:()=>o$,down:()=>a$});import{sql as cu}from"kysely";async function o$(_){await cu`
|
|
782
782
|
UPDATE connections
|
|
783
783
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
784
784
|
tools = NULL,
|
|
785
785
|
updated_at = CURRENT_TIMESTAMP
|
|
786
786
|
WHERE connection_url LIKE '%/mcp/management'
|
|
787
787
|
AND app_name = '@deco/management-mcp'
|
|
788
|
-
`.execute(_),await
|
|
788
|
+
`.execute(_),await cu`
|
|
789
789
|
UPDATE connections
|
|
790
790
|
SET tools = NULL,
|
|
791
791
|
updated_at = CURRENT_TIMESTAMP
|
|
792
792
|
WHERE connection_url LIKE '%/mcp/self'
|
|
793
793
|
AND app_name = '@deco/management-mcp'
|
|
794
794
|
AND tools IS NOT NULL
|
|
795
|
-
`.execute(_)}async function
|
|
795
|
+
`.execute(_)}async function a$(_){await cu`
|
|
796
796
|
UPDATE connections
|
|
797
797
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
798
798
|
updated_at = CURRENT_TIMESTAMP
|
|
799
799
|
WHERE connection_url LIKE '%/mcp/self'
|
|
800
800
|
AND app_name = '@deco/management-mcp'
|
|
801
|
-
`.execute(_)}var
|
|
801
|
+
`.execute(_)}var tu={};C(tu,{up:()=>r$,down:()=>l$});async function r$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function l$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var ou={};C(ou,{up:()=>e$,down:()=>d$});import{sql as JT}from"kysely";async function e$(_){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(JT`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(JT`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 d$(_){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 au={};C(au,{up:()=>b$,down:()=>s$});import{sql as P_}from"kysely";async function b$(_){await P_`
|
|
802
802
|
ALTER TABLE connection_aggregations
|
|
803
803
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
804
|
-
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function
|
|
804
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function s$(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await P_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await P_`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(P_`CURRENT_TIMESTAMP`)).execute(),await P_`
|
|
805
805
|
INSERT INTO connection_aggregations_new (
|
|
806
806
|
id, parent_connection_id, child_connection_id,
|
|
807
807
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -810,42 +810,42 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
810
810
|
id, parent_connection_id, child_connection_id,
|
|
811
811
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
812
812
|
FROM connection_aggregations
|
|
813
|
-
`.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
|
|
813
|
+
`.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 ru={};C(ru,{up:()=>KU,down:()=>NU});import{webcrypto as QT}from"crypto";var PT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var _U=128,h,e;function xU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*_U),QT.getRandomValues(h),e=0;else if(e+_>h.length)QT.getRandomValues(h),e=0;e+=_}function d(_=21){xU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=PT[h[u]&63];return x}var uU="org-admin",CU="Organization Admin";async function KU(_){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:uU,name:CU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function NU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var lu={};C(lu,{up:()=>mU,down:()=>TU});async function mU(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function TU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var eu={};C(eu,{up:()=>zU,down:()=>EU});async function zU(_){}async function EU(_){}var du={};C(du,{up:()=>$U,down:()=>UU});async function $U(_){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 UU(_){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 bu={};C(bu,{up:()=>JU,down:()=>PU});import{sql as XT}from"kysely";async function JU(_){await XT`
|
|
814
814
|
UPDATE connections
|
|
815
815
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
816
816
|
tools = NULL,
|
|
817
817
|
updated_at = CURRENT_TIMESTAMP
|
|
818
818
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
819
819
|
AND app_name = 'deco-registry'
|
|
820
|
-
`.execute(_)}async function
|
|
820
|
+
`.execute(_)}async function PU(_){await XT`
|
|
821
821
|
UPDATE connections
|
|
822
822
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
823
823
|
updated_at = CURRENT_TIMESTAMP
|
|
824
824
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
825
825
|
AND app_name = 'deco-registry'
|
|
826
|
-
`.execute(_)}var
|
|
826
|
+
`.execute(_)}var su={};C(su,{up:()=>XU,down:()=>ZU});import{sql as QU}from"kysely";async function XU(_){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(QU`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 ZU(_){await _.schema.dropTable("ai_provider_keys").execute()}var _C={};C(_C,{up:()=>jU,down:()=>LU});import{sql as WU}from"kysely";async function jU(_){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(WU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function LU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var xC={};C(xC,{up:()=>FU,down:()=>YU});import{sql as p}from"kysely";async function FU(_){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 YU(_){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 uC={};C(uC,{up:()=>DU,down:()=>HU});async function DU(_){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 HU(_){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 CC={};C(CC,{up:()=>MU,down:()=>RU});async function MU(_){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 RU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var KC={};C(KC,{up:()=>BU,down:()=>GU});import{sql as ZT}from"kysely";async function BU(_){await ZT`
|
|
827
827
|
UPDATE connections
|
|
828
828
|
SET title = 'CMS MCP',
|
|
829
829
|
tools = NULL,
|
|
830
830
|
updated_at = CURRENT_TIMESTAMP
|
|
831
831
|
WHERE app_name = '@deco/management-mcp'
|
|
832
|
-
`.execute(_)}async function
|
|
832
|
+
`.execute(_)}async function GU(_){await ZT`
|
|
833
833
|
UPDATE connections
|
|
834
834
|
SET title = 'Mesh MCP',
|
|
835
835
|
updated_at = CURRENT_TIMESTAMP
|
|
836
836
|
WHERE app_name = '@deco/management-mcp'
|
|
837
|
-
`.execute(_)}var
|
|
837
|
+
`.execute(_)}var NC={};C(NC,{up:()=>OU,down:()=>SU});import{sql as WT}from"kysely";async function OU(_){await WT`
|
|
838
838
|
UPDATE connections
|
|
839
839
|
SET title = 'Deco CMS',
|
|
840
840
|
tools = NULL,
|
|
841
841
|
updated_at = CURRENT_TIMESTAMP
|
|
842
842
|
WHERE app_name = '@deco/management-mcp'
|
|
843
|
-
`.execute(_)}async function
|
|
843
|
+
`.execute(_)}async function SU(_){await WT`
|
|
844
844
|
UPDATE connections
|
|
845
845
|
SET title = 'CMS MCP',
|
|
846
846
|
updated_at = CURRENT_TIMESTAMP
|
|
847
847
|
WHERE app_name = '@deco/management-mcp'
|
|
848
|
-
`.execute(_)}var
|
|
848
|
+
`.execute(_)}var mC={};C(mC,{up:()=>fU,down:()=>AU});async function fU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function AU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var TC={};C(TC,{up:()=>IU,down:()=>yU});async function IU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function yU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var EC={};C(EC,{up:()=>VU,down:()=>wU});import{sql as zC}from"kysely";async function VU(_){await zC`
|
|
849
849
|
UPDATE organization_settings
|
|
850
850
|
SET enabled_plugins = (
|
|
851
851
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -854,7 +854,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
854
854
|
)
|
|
855
855
|
WHERE enabled_plugins IS NOT NULL
|
|
856
856
|
AND enabled_plugins LIKE '%object-storage%'
|
|
857
|
-
`.execute(_),await
|
|
857
|
+
`.execute(_),await zC`
|
|
858
858
|
UPDATE projects
|
|
859
859
|
SET enabled_plugins = (
|
|
860
860
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -863,45 +863,45 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
863
863
|
)
|
|
864
864
|
WHERE enabled_plugins IS NOT NULL
|
|
865
865
|
AND enabled_plugins LIKE '%object-storage%'
|
|
866
|
-
`.execute(_),await
|
|
866
|
+
`.execute(_),await zC`
|
|
867
867
|
DELETE FROM project_plugin_configs
|
|
868
868
|
WHERE plugin_id = 'object-storage'
|
|
869
|
-
`.execute(_)}async function
|
|
869
|
+
`.execute(_)}async function wU(_){}var $C={};C($C,{up:()=>kU,down:()=>nU});import{sql as jT}from"kysely";async function kU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await jT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function nU(_){await jT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var JC={};C(JC,{up:()=>vU,down:()=>pU});import{sql as UC}from"kysely";async function vU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await UC`
|
|
870
870
|
ALTER TABLE connections
|
|
871
871
|
ADD CONSTRAINT chk_connections_subtype
|
|
872
872
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
873
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
873
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await UC`
|
|
874
874
|
UPDATE connections
|
|
875
875
|
SET subtype = 'agent'
|
|
876
876
|
WHERE connection_type = 'VIRTUAL'
|
|
877
|
-
`.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,
|
|
877
|
+
`.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,J=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:J,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 pU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await UC`
|
|
878
878
|
ALTER TABLE connections
|
|
879
879
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
880
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
880
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var PC={};C(PC,{up:()=>qU,down:()=>iU});import{sql as gU}from"kysely";async function qU(_){await gU`
|
|
881
881
|
DELETE FROM connections
|
|
882
882
|
WHERE connection_type = 'VIRTUAL'
|
|
883
883
|
AND subtype = 'project'
|
|
884
884
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
885
|
-
`.execute(_)}async function
|
|
885
|
+
`.execute(_)}async function iU(_){}var QC={};C(QC,{up:()=>hU,down:()=>tU});import{sql as cU}from"kysely";async function hU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await cU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function tU(_){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 ZC={};C(ZC,{up:()=>oU,down:()=>aU});import{sql as XC}from"kysely";async function oU(_){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(XC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(XC`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(XC`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 aU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var WC={};C(WC,{up:()=>rU,down:()=>lU});async function rU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function lU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var jC={};C(jC,{up:()=>eU,down:()=>dU});async function eU(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function dU(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var FC={};C(FC,{up:()=>sU,down:()=>_J});import{sql as LT}from"kysely";function LC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function bU(_){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 LC(N)}catch{return LC(_.connection_url)}if(_.title)return LC(_.title);return _.id}async function sU(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await LT`
|
|
886
886
|
SELECT id, app_name, connection_url, title FROM connections
|
|
887
|
-
`.execute(_);for(let u of x.rows){let N=
|
|
887
|
+
`.execute(_);for(let u of x.rows){let N=bU(u);await LT`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 _J(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var YC={};C(YC,{up:()=>xJ,down:()=>uJ});import{sql as Q_}from"kysely";async function xJ(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await Q_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Q_`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 uJ(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await Q_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await Q_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await Q_`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 DC={};C(DC,{up:()=>CJ,down:()=>KJ});async function CJ(_){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 KJ(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var HC={};C(HC,{up:()=>NJ,down:()=>mJ});import{sql as v_}from"kysely";async function NJ(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await v_`
|
|
888
888
|
UPDATE threads
|
|
889
889
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
890
890
|
WHERE agent_ids IS NOT NULL
|
|
891
891
|
AND agent_ids != '[]'
|
|
892
892
|
AND agent_ids != ''
|
|
893
893
|
AND (agent_ids::jsonb ->> 0) IS NOT NULL
|
|
894
|
-
`.execute(_),await
|
|
894
|
+
`.execute(_),await v_`
|
|
895
895
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
896
896
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
897
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
897
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function mJ(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await v_`
|
|
898
898
|
UPDATE threads
|
|
899
899
|
SET agent_ids = CASE
|
|
900
900
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
901
901
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
902
902
|
ELSE '[]'
|
|
903
903
|
END
|
|
904
|
-
`.execute(_),await
|
|
904
|
+
`.execute(_),await v_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var MC={};C(MC,{up:()=>TJ,down:()=>zJ});async function TJ(_){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 zJ(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var RC={};C(RC,{up:()=>EJ,down:()=>$J});async function EJ(_){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 $J(_){await _.schema.dropTable("kv").execute()}var BC={};C(BC,{up:()=>UJ,down:()=>JJ});async function UJ(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function JJ(_){await _.schema.dropIndex("idx_member_user_org").execute()}var GC={};C(GC,{up:()=>PJ,down:()=>QJ});async function PJ(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function QJ(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var OC={};C(OC,{up:()=>XJ,down:()=>ZJ});import{sql as S}from"kysely";async function XJ(_){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 ZJ(_){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 SC={};C(SC,{up:()=>WJ,down:()=>jJ});import{sql as b}from"kysely";async function WJ(_){await b`
|
|
905
905
|
ALTER TABLE event_subscriptions
|
|
906
906
|
ALTER COLUMN enabled DROP DEFAULT
|
|
907
907
|
`.execute(_),await b`
|
|
@@ -911,7 +911,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
911
911
|
`.execute(_),await b`
|
|
912
912
|
ALTER TABLE event_subscriptions
|
|
913
913
|
ALTER COLUMN enabled SET DEFAULT true
|
|
914
|
-
`.execute(_)}async function
|
|
914
|
+
`.execute(_)}async function jJ(_){await b`
|
|
915
915
|
ALTER TABLE event_subscriptions
|
|
916
916
|
ALTER COLUMN enabled DROP DEFAULT
|
|
917
917
|
`.execute(_),await b`
|
|
@@ -921,7 +921,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
921
921
|
`.execute(_),await b`
|
|
922
922
|
ALTER TABLE event_subscriptions
|
|
923
923
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
924
|
-
`.execute(_)}var
|
|
924
|
+
`.execute(_)}var fC={};C(fC,{up:()=>LJ,down:()=>FJ});import{sql as FT}from"kysely";async function LJ(_){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(FT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(FT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function FJ(_){await _.schema.dropTable("brand_context").execute()}var AC={};C(AC,{up:()=>YJ,down:()=>DJ});import{sql as YT}from"kysely";async function YJ(_){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(YT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(YT`now()`)).execute()}async function DJ(_){await _.schema.dropTable("organization_domains").execute()}var IC={};C(IC,{up:()=>BJ,down:()=>GJ});import{sql as DT}from"kysely";var p_=new Set(["primary","secondary","accent","background","foreground"]),HJ={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function MJ(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>p_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(p_.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(p_.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(p_.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 RJ(_){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=HJ[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 BJ(_){let x=await DT`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 J=MJ($);if(T=J.structured,N=!0,Object.keys(J.extra).length>0)E.extraColors=J.extra,m=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=RJ($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await DT`
|
|
925
925
|
UPDATE brand_context
|
|
926
926
|
SET
|
|
927
927
|
colors = ${T},
|
|
@@ -929,29 +929,29 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
929
929
|
metadata = ${$},
|
|
930
930
|
updated_at = NOW()
|
|
931
931
|
WHERE id = ${u.id}
|
|
932
|
-
`.execute(_)}}}async function
|
|
932
|
+
`.execute(_)}}}async function GJ(_){}var yC={};C(yC,{up:()=>SJ,down:()=>fJ});import{sql as OJ}from"kysely";async function SJ(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(OJ`'{}'::jsonb`)).execute()}async function fJ(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var VC={};C(VC,{up:()=>AJ,down:()=>IJ});async function AJ(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function IJ(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var wC={};C(wC,{up:()=>yJ,down:()=>VJ});async function yJ(_){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 VJ(_){await _.schema.dropTable("sandbox_runner_state").execute()}var kC={};C(kC,{up:()=>wJ,down:()=>kJ});async function wJ(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function kJ(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var nC={};C(nC,{up:()=>nJ,down:()=>vJ});async function nJ(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function vJ(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var vC={};C(vC,{up:()=>pJ,down:()=>gJ});async function pJ(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function gJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var pC={};C(pC,{up:()=>iJ,down:()=>cJ});import{sql as HT}from"kysely";var qJ=["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 iJ(_){let x=await HT`
|
|
933
933
|
SELECT id, permission FROM "organizationRole"
|
|
934
|
-
`.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,...
|
|
934
|
+
`.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,...qJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await HT`
|
|
935
935
|
UPDATE "organizationRole"
|
|
936
936
|
SET permission = ${z}
|
|
937
937
|
WHERE id = ${u.id}
|
|
938
|
-
`.execute(_)}}async function
|
|
938
|
+
`.execute(_)}}async function cJ(_){}var gC={};C(gC,{up:()=>hJ,down:()=>tJ});async function hJ(_){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 tJ(_){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 qC={};C(qC,{up:()=>oJ,down:()=>aJ});async function oJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function aJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var iC={};C(iC,{up:()=>rJ,down:()=>lJ});import{sql as X_}from"kysely";async function rJ(_){await X_`
|
|
939
939
|
UPDATE automations
|
|
940
940
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
941
941
|
WHERE virtual_mcp_id IS NULL
|
|
942
|
-
`.execute(_),await
|
|
942
|
+
`.execute(_),await X_`
|
|
943
943
|
ALTER TABLE automations
|
|
944
944
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
945
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
945
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function lJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await X_`
|
|
946
946
|
UPDATE automations
|
|
947
947
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
948
|
-
`.execute(_),await
|
|
948
|
+
`.execute(_),await X_`
|
|
949
949
|
ALTER TABLE automations
|
|
950
950
|
ALTER COLUMN agent SET NOT NULL
|
|
951
|
-
`.execute(_),await
|
|
951
|
+
`.execute(_),await X_`
|
|
952
952
|
ALTER TABLE automations
|
|
953
953
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
954
|
-
`.execute(_)}var
|
|
954
|
+
`.execute(_)}var hC={};C(hC,{up:()=>sJ,reshapeSimpleMode:()=>MT,inferAutomationTier:()=>RT,down:()=>_P,__testing:()=>bJ});var eJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},dJ=["fast","smart","thinking","image","web_research"];function cC(_){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 dJ.some((N)=>(N in u))}function MT(_){if(cC(_))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 eJ;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 RT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function BT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var bJ={isAlreadyReshapedSimpleMode:cC,isAlreadyReshapedAutomationModels:BT};async function sJ(_){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(cC(K))continue;let m=MT(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(BT(K))continue;let m=RT(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 _P(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var tC={};C(tC,{up:()=>xP,down:()=>uP});import{sql as n}from"kysely";async function xP(_){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`
|
|
955
955
|
ALTER TABLE automations
|
|
956
956
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
957
957
|
`.execute(_),await n`
|
|
@@ -973,27 +973,27 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
973
973
|
AND tool_input IS NOT NULL
|
|
974
974
|
)
|
|
975
975
|
)
|
|
976
|
-
`.execute(_)}async function
|
|
976
|
+
`.execute(_)}async function uP(_){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`
|
|
977
977
|
ALTER TABLE automations
|
|
978
978
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
979
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var
|
|
979
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var oC={};C(oC,{up:()=>KP,down:()=>NP});import{sql as GT}from"kysely";var CP=new Set(["host","docker","agent-sandbox"]);async function KP(_){let x=await GT`
|
|
980
980
|
SELECT id, metadata FROM "connections"
|
|
981
981
|
WHERE connection_type = 'VIRTUAL'
|
|
982
982
|
AND metadata IS NOT NULL
|
|
983
983
|
AND metadata LIKE '%vmMap%'
|
|
984
|
-
`.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
|
|
984
|
+
`.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 J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){m=!0;continue}let y=X.runnerKind;if(y!==void 0&&!CP.has(y)){m=!0;continue}J[j]=X}if(Object.keys(J).length>0)T[E]=J;else m=!0}if(!m)continue;N.vmMap=T;let z=JSON.stringify(N);await GT`
|
|
985
985
|
UPDATE "connections"
|
|
986
986
|
SET metadata = ${z}
|
|
987
987
|
WHERE id = ${u.id}
|
|
988
|
-
`.execute(_)}}async function
|
|
988
|
+
`.execute(_)}}async function NP(_){}var aC={};C(aC,{up:()=>mP,down:()=>TP});import{sql as Z_}from"kysely";async function mP(_){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_`
|
|
989
989
|
CREATE INDEX async_research_jobs_active_idx
|
|
990
990
|
ON async_research_jobs (status, last_polled_at)
|
|
991
991
|
WHERE status IN ('pending', 'polling')
|
|
992
|
-
`.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await
|
|
992
|
+
`.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await Z_`
|
|
993
993
|
ALTER TABLE async_research_jobs
|
|
994
994
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
995
995
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
996
|
-
`.execute(_)}async function
|
|
996
|
+
`.execute(_)}async function TP(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var rC={};C(rC,{up:()=>zP,down:()=>EP});async function zP(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function EP(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var lC={};C(lC,{up:()=>$P,down:()=>UP});import{sql as s}from"kysely";async function $P(_){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`
|
|
997
997
|
ALTER TABLE secrets
|
|
998
998
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
999
999
|
`.execute(_),await s`
|
|
@@ -1010,10 +1010,10 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1010
1010
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
1011
1011
|
ON secrets (organization_id, lower(name))
|
|
1012
1012
|
WHERE scope = 'organization'
|
|
1013
|
-
`.execute(_)}async function
|
|
1013
|
+
`.execute(_)}async function UP(_){await _.schema.dropTable("secrets").execute()}var eC={};C(eC,{up:()=>JP,down:()=>PP});async function JP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function PP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var dC={};C(dC,{up:()=>XP,down:()=>ZP});import{sql as QP}from"kysely";async function XP(_){await QP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function ZP(_){}var bC={};C(bC,{up:()=>WP,down:()=>jP});import{sql as g_}from"kysely";async function WP(_){await g_`
|
|
1014
1014
|
ALTER TABLE sandbox_runner_state
|
|
1015
1015
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
1016
|
-
`.execute(_),await
|
|
1016
|
+
`.execute(_),await g_`
|
|
1017
1017
|
DO $$ BEGIN
|
|
1018
1018
|
UPDATE virtualmcps v
|
|
1019
1019
|
SET metadata = jsonb_set(
|
|
@@ -1048,10 +1048,10 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1048
1048
|
EXCEPTION WHEN undefined_table THEN
|
|
1049
1049
|
NULL;
|
|
1050
1050
|
END; $$
|
|
1051
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
1051
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function jP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await g_`
|
|
1052
1052
|
ALTER TABLE sandbox_runner_state
|
|
1053
1053
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
1054
|
-
`.execute(_),await
|
|
1054
|
+
`.execute(_),await g_`
|
|
1055
1055
|
DO $$ BEGIN
|
|
1056
1056
|
UPDATE virtualmcps v
|
|
1057
1057
|
SET metadata = jsonb_set(
|
|
@@ -1086,7 +1086,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1086
1086
|
EXCEPTION WHEN undefined_table THEN
|
|
1087
1087
|
NULL;
|
|
1088
1088
|
END; $$
|
|
1089
|
-
`.execute(_)}var
|
|
1089
|
+
`.execute(_)}var sC={};C(sC,{up:()=>LP,down:()=>FP});import{sql as OT}from"kysely";async function LP(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await OT`
|
|
1090
1090
|
DO $$ BEGIN
|
|
1091
1091
|
UPDATE virtualmcps v
|
|
1092
1092
|
SET metadata = jsonb_set(
|
|
@@ -1125,7 +1125,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1125
1125
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
1126
1126
|
NULL;
|
|
1127
1127
|
END; $$
|
|
1128
|
-
`.execute(_)}async function
|
|
1128
|
+
`.execute(_)}async function FP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await OT`
|
|
1129
1129
|
DO $$ BEGIN
|
|
1130
1130
|
UPDATE virtualmcps v
|
|
1131
1131
|
SET metadata = jsonb_set(
|
|
@@ -1158,7 +1158,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1158
1158
|
EXCEPTION WHEN undefined_table THEN
|
|
1159
1159
|
NULL;
|
|
1160
1160
|
END; $$
|
|
1161
|
-
`.execute(_)}var
|
|
1161
|
+
`.execute(_)}var _K={};C(_K,{up:()=>YP,down:()=>DP});import{sql as ST}from"kysely";async function YP(_){await ST`
|
|
1162
1162
|
UPDATE connections c
|
|
1163
1163
|
SET metadata = (
|
|
1164
1164
|
jsonb_set(
|
|
@@ -1202,7 +1202,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1202
1202
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
1203
1203
|
WHERE entry ? 'vmId'
|
|
1204
1204
|
);
|
|
1205
|
-
`.execute(_),await
|
|
1205
|
+
`.execute(_),await ST`
|
|
1206
1206
|
UPDATE connections c
|
|
1207
1207
|
SET metadata = (
|
|
1208
1208
|
jsonb_set(
|
|
@@ -1256,14 +1256,14 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1256
1256
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1257
1257
|
WHERE inner_entry ? 'runnerKind'
|
|
1258
1258
|
);
|
|
1259
|
-
`.execute(_)}async function
|
|
1259
|
+
`.execute(_)}async function DP(_){}var xK={};C(xK,{up:()=>MP,down:()=>RP});import{sql as HP}from"kysely";async function MP(_){await HP`
|
|
1260
1260
|
DELETE FROM ai_provider_keys
|
|
1261
1261
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
1262
|
-
`.execute(_)}async function
|
|
1262
|
+
`.execute(_)}async function RP(_){}var uK={};C(uK,{up:()=>BP,down:()=>GP});import{sql as q_}from"kysely";async function BP(_){await q_`
|
|
1263
1263
|
UPDATE sandbox_runner_state
|
|
1264
1264
|
SET sandbox_provider_kind = 'desktop'
|
|
1265
1265
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1266
|
-
`.execute(_),await
|
|
1266
|
+
`.execute(_),await q_`
|
|
1267
1267
|
UPDATE connections c
|
|
1268
1268
|
SET metadata = (
|
|
1269
1269
|
jsonb_set(
|
|
@@ -1306,7 +1306,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1306
1306
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1307
1307
|
WHERE kind_key = 'remote-user'
|
|
1308
1308
|
);
|
|
1309
|
-
`.execute(_),await
|
|
1309
|
+
`.execute(_),await q_`
|
|
1310
1310
|
UPDATE connections c
|
|
1311
1311
|
SET metadata = (
|
|
1312
1312
|
jsonb_set(
|
|
@@ -1353,17 +1353,17 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1353
1353
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1354
1354
|
WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
|
|
1355
1355
|
);
|
|
1356
|
-
`.execute(_),await
|
|
1356
|
+
`.execute(_),await q_`
|
|
1357
1357
|
UPDATE threads
|
|
1358
1358
|
SET sandbox_provider_kind = 'desktop'
|
|
1359
1359
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1360
|
-
`.execute(_)}async function
|
|
1360
|
+
`.execute(_)}async function GP(_){}var CK={};C(CK,{up:()=>OP,down:()=>SP});import{sql as W_}from"kysely";async function OP(_){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 SP(_){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 KK={};C(KK,{up:()=>fP,down:()=>AP});import{sql as fT}from"kysely";async function fP(_){await fT`
|
|
1361
1361
|
ALTER TABLE organization_domains
|
|
1362
1362
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
1363
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function
|
|
1363
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function AP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await fT`
|
|
1364
1364
|
ALTER TABLE organization_domains
|
|
1365
1365
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
1366
|
-
`.execute(_)}var
|
|
1366
|
+
`.execute(_)}var NK={};C(NK,{up:()=>IP,down:()=>yP});import{sql as i_}from"kysely";async function IP(_){await i_`
|
|
1367
1367
|
UPDATE sandbox_runner_state
|
|
1368
1368
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
1369
1369
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -1373,7 +1373,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1373
1373
|
ELSE sandbox_provider_kind
|
|
1374
1374
|
END
|
|
1375
1375
|
WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
|
|
1376
|
-
`.execute(_),await
|
|
1376
|
+
`.execute(_),await i_`
|
|
1377
1377
|
UPDATE connections c
|
|
1378
1378
|
SET metadata = (
|
|
1379
1379
|
(c.metadata::jsonb - 'vmMap')
|
|
@@ -1382,7 +1382,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1382
1382
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1383
1383
|
AND c.metadata IS NOT NULL
|
|
1384
1384
|
AND c.metadata::jsonb ? 'vmMap'
|
|
1385
|
-
`.execute(_),await
|
|
1385
|
+
`.execute(_),await i_`
|
|
1386
1386
|
UPDATE connections c
|
|
1387
1387
|
SET metadata = (
|
|
1388
1388
|
jsonb_set(
|
|
@@ -1443,7 +1443,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1443
1443
|
WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
|
|
1444
1444
|
OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
|
|
1445
1445
|
);
|
|
1446
|
-
`.execute(_),await
|
|
1446
|
+
`.execute(_),await i_`
|
|
1447
1447
|
UPDATE connections c
|
|
1448
1448
|
SET metadata = REPLACE(
|
|
1449
1449
|
REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
|
|
@@ -1452,19 +1452,19 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1452
1452
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1453
1453
|
AND c.metadata IS NOT NULL
|
|
1454
1454
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
1455
|
-
`.execute(_)}async function
|
|
1455
|
+
`.execute(_)}async function yP(_){}var mK={};C(mK,{up:()=>wP,down:()=>kP});import{sql as AT}from"kysely";var VP=["GLOBAL_SEARCH"];async function wP(_){let x=await AT`
|
|
1456
1456
|
SELECT id, permission FROM "organizationRole"
|
|
1457
|
-
`.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,...
|
|
1457
|
+
`.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,...VP]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await AT`
|
|
1458
1458
|
UPDATE "organizationRole"
|
|
1459
1459
|
SET permission = ${z}
|
|
1460
1460
|
WHERE id = ${u.id}
|
|
1461
|
-
`.execute(_)}}async function
|
|
1461
|
+
`.execute(_)}}async function kP(_){}var zK={};C(zK,{up:()=>nP,down:()=>vP});import{sql as TK}from"kysely";async function nP(_){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(TK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(TK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await TK`
|
|
1462
1462
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
1463
1463
|
ON org_file_configs (organization_id, lower(name))
|
|
1464
|
-
`.execute(_)}async function
|
|
1464
|
+
`.execute(_)}async function vP(_){await _.schema.dropTable("org_file_configs").execute()}var EK={};C(EK,{up:()=>pP,down:()=>gP});import{sql as v}from"kysely";async function pP(_){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`
|
|
1465
1465
|
ALTER TABLE automations
|
|
1466
1466
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
1467
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function
|
|
1467
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function gP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await v`
|
|
1468
1468
|
ALTER TABLE automations
|
|
1469
1469
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
1470
1470
|
`.execute(_),await v`
|
|
@@ -1486,25 +1486,25 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1486
1486
|
AND tool_input IS NOT NULL
|
|
1487
1487
|
)
|
|
1488
1488
|
)
|
|
1489
|
-
`.execute(_)}var
|
|
1489
|
+
`.execute(_)}var $K={};C($K,{up:()=>qP,down:()=>iP});async function qP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function iP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var JK={};C(JK,{up:()=>cP,down:()=>hP});import{sql as UK}from"kysely";var c_="local-docker";async function cP(_){await UK`delete from sandbox_runner_state where sandbox_provider_kind = ${c_}`.execute(_);let x=await UK`
|
|
1490
1490
|
SELECT id, metadata FROM "connections"
|
|
1491
1491
|
WHERE connection_type = 'VIRTUAL'
|
|
1492
1492
|
AND metadata IS NOT NULL
|
|
1493
|
-
AND metadata LIKE ${"%"+
|
|
1494
|
-
`.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
|
|
1493
|
+
AND metadata LIKE ${"%"+c_+"%"}
|
|
1494
|
+
`.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 J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){m=!0;continue}if(c_ in X){m=!0;let y={...X};if(delete y[c_],Object.keys(y).length>0)J[j]=y}else J[j]=X}if(Object.keys(J).length>0)T[E]=J;else m=!0}if(!m)continue;N.sandboxMap=T;let z=JSON.stringify(N);await UK`
|
|
1495
1495
|
UPDATE "connections"
|
|
1496
1496
|
SET metadata = ${z}
|
|
1497
1497
|
WHERE id = ${u.id}
|
|
1498
|
-
`.execute(_)}}async function
|
|
1498
|
+
`.execute(_)}}async function hP(_){}var PK={};C(PK,{up:()=>tP,down:()=>oP});import{sql as h_}from"kysely";async function tP(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await h_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await h_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await h_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await h_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function oP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var QK={};C(QK,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function rP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var XK={};C(XK,{up:()=>lP,down:()=>eP});async function lP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function eP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var ZK={};C(ZK,{up:()=>dP,down:()=>bP});async function dP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function bP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var WK={};C(WK,{up:()=>sP,down:()=>_Q});async function sP(_){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 _Q(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var jK={};C(jK,{up:()=>xQ,down:()=>uQ});async function xQ(_){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 uQ(_){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 FK={};C(FK,{up:()=>KQ,down:()=>NQ});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function LK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function t_(_){if(!__(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function CQ(_,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 J={};for(let[j,X]of Object.entries($)){if(j===x){if(N=!0,!(u in $))J[u]=LK(X,x,u);else if(!t_($[u])&&t_(X))J[u]=LK(X,x,u);continue}let y=LK(X,x,u);if(y!==X)N=!0;if(j===u&&j in J&&t_(J[j])&&!t_(y))continue;J[j]=y}z[E]=J}K[m]=z}return{sandboxMap:K,changed:N}}async function IT(_,x,u){let N=await k`
|
|
1499
1499
|
SELECT id, metadata FROM connections
|
|
1500
1500
|
WHERE connection_type = 'VIRTUAL'
|
|
1501
1501
|
AND metadata IS NOT NULL
|
|
1502
1502
|
AND metadata LIKE ${"%"+x+"%"}
|
|
1503
|
-
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=
|
|
1503
|
+
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=CQ(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
|
|
1504
1504
|
UPDATE connections
|
|
1505
1505
|
SET metadata = ${JSON.stringify(m)}
|
|
1506
1506
|
WHERE id = ${K.id}
|
|
1507
|
-
`.execute(_)}}async function
|
|
1507
|
+
`.execute(_)}}async function KQ(_){await k`
|
|
1508
1508
|
UPDATE threads
|
|
1509
1509
|
SET sandbox_provider_kind = ${A}
|
|
1510
1510
|
WHERE sandbox_provider_kind = ${f}
|
|
@@ -1533,7 +1533,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1533
1533
|
UPDATE sandbox_runner_state
|
|
1534
1534
|
SET sandbox_provider_kind = ${A}
|
|
1535
1535
|
WHERE sandbox_provider_kind = ${f}
|
|
1536
|
-
`.execute(_),await
|
|
1536
|
+
`.execute(_),await IT(_,f,A)}async function NQ(_){await k`
|
|
1537
1537
|
UPDATE threads
|
|
1538
1538
|
SET sandbox_provider_kind = ${f}
|
|
1539
1539
|
WHERE sandbox_provider_kind = ${A}
|
|
@@ -1562,7 +1562,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1562
1562
|
UPDATE sandbox_runner_state
|
|
1563
1563
|
SET sandbox_provider_kind = ${f}
|
|
1564
1564
|
WHERE sandbox_provider_kind = ${A}
|
|
1565
|
-
`.execute(_),await
|
|
1565
|
+
`.execute(_),await IT(_,A,f)}var YK={};C(YK,{up:()=>mQ,down:()=>TQ});import{sql as g}from"kysely";async function mQ(_){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`
|
|
1566
1566
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1567
1567
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1568
1568
|
WHERE deleted_at IS NULL
|
|
@@ -1570,7 +1570,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1570
1570
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1571
1571
|
ON org_fs_entry (organization_id, volume, size)
|
|
1572
1572
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1573
|
-
`.execute(_)}async function
|
|
1573
|
+
`.execute(_)}async function TQ(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var DK={};C(DK,{up:()=>zQ,down:()=>EQ});async function zQ(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function EQ(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var HK={};C(HK,{up:()=>$Q,down:()=>UQ});import{sql as yT}from"kysely";async function $Q(_){await yT`
|
|
1574
1574
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1575
1575
|
SELECT
|
|
1576
1576
|
'org_orgfs_public_skills',
|
|
@@ -1584,13 +1584,13 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1584
1584
|
END,
|
|
1585
1585
|
now()
|
|
1586
1586
|
ON CONFLICT (id) DO NOTHING
|
|
1587
|
-
`.execute(_)}async function
|
|
1587
|
+
`.execute(_)}async function UQ(_){await yT`
|
|
1588
1588
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1589
|
-
`.execute(_)}var
|
|
1589
|
+
`.execute(_)}var MK={};C(MK,{up:()=>JQ,down:()=>PQ});async function JQ(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function PQ(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var RK={};C(RK,{up:()=>QQ,down:()=>XQ});import{sql as VT}from"kysely";async function QQ(_){await VT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function XQ(_){await VT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var BK={};C(BK,{up:()=>WQ,down:()=>jQ});import{sql as ZQ}from"kysely";async function WQ(_){await ZQ`
|
|
1590
1590
|
UPDATE downstream_tokens
|
|
1591
1591
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1592
1592
|
WHERE "expiresAt" IS NULL
|
|
1593
|
-
`.execute(_)}async function
|
|
1593
|
+
`.execute(_)}async function jQ(_){}var GK={};C(GK,{up:()=>LQ,down:()=>FQ});async function LQ(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function FQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var OK={};C(OK,{up:()=>YQ,down:()=>DQ});async function YQ(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function DQ(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var SK={};C(SK,{up:()=>HQ,down:()=>MQ});async function HQ(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function MQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var fK={};C(fK,{up:()=>RQ,down:()=>BQ});async function RQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function BQ(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var AK={};C(AK,{up:()=>GQ,down:()=>OQ});async function GQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function OQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var IK={};C(IK,{up:()=>SQ,down:()=>fQ});import{sql as wT}from"kysely";async function SQ(_){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(wT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(wT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function fQ(_){await _.schema.dropTable("org_sites").execute()}var yK={};C(yK,{up:()=>AQ,down:()=>IQ});async function AQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function IQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var VK={};C(VK,{up:()=>yQ,down:()=>VQ});import{sql as R}from"kysely";async function yQ(_){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`
|
|
1594
1594
|
UPDATE organization_domains
|
|
1595
1595
|
SET
|
|
1596
1596
|
id = gen_random_uuid()::text,
|
|
@@ -1599,18 +1599,18 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1599
1599
|
verification_method = 'email',
|
|
1600
1600
|
verified_at = created_at
|
|
1601
1601
|
WHERE id IS NULL
|
|
1602
|
-
`.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
|
|
1602
|
+
`.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 VQ(_){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`
|
|
1603
1603
|
UPDATE organization_domains
|
|
1604
1604
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
1605
|
-
`.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
|
|
1605
|
+
`.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 wK={};C(wK,{up:()=>wQ,down:()=>kQ});import{sql as o_}from"kysely";async function wQ(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(o_`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(o_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).execute(),await o_`
|
|
1606
1606
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1607
1607
|
ON organization_join_requests (organization_id, user_id)
|
|
1608
1608
|
WHERE status = 'pending'
|
|
1609
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function
|
|
1609
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function kQ(_){await _.schema.dropTable("organization_join_requests").execute()}var kK={};C(kK,{up:()=>nQ,down:()=>vQ});async function nQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function vQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var nK={};C(nK,{up:()=>pQ,down:()=>gQ});async function pQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function gQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var gK={};C(gK,{up:()=>cQ,splitWebResearchTier:()=>pK,down:()=>hQ,__testing:()=>iQ});function qQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function vK(_){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 pK(_){if(!_||vK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(qQ(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var iQ={splitWebResearchTier:pK,isAlreadySplit:vK};async function cQ(_){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(vK(N))continue;let K=pK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function hQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var qK={};C(qK,{up:()=>tQ,down:()=>oQ});import{sql as j_}from"kysely";async function tQ(_){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_`
|
|
1610
1610
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1611
1611
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1612
1612
|
WHERE revoked_at IS NULL
|
|
1613
|
-
`.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(
|
|
1613
|
+
`.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 oQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var iK={};C(iK,{up:()=>aQ,down:()=>rQ});async function aQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function rQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var cK={};C(cK,{up:()=>lQ,down:()=>eQ});import{sql as t}from"kysely";async function lQ(_){await t`
|
|
1614
1614
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1615
1615
|
RETURNS jsonb AS $fn$
|
|
1616
1616
|
BEGIN
|
|
@@ -1669,7 +1669,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1669
1669
|
BEFORE INSERT ON connection_aggregations
|
|
1670
1670
|
FOR EACH ROW
|
|
1671
1671
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1672
|
-
`.execute(_)}async function
|
|
1672
|
+
`.execute(_)}async function eQ(_){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 tK={};C(tK,{up:()=>dQ,down:()=>bQ});import{sql as hK}from"kysely";async function dQ(_){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(hK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(hK`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(hK`false`)).execute()}async function bQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var oK={};C(oK,{up:()=>sQ,down:()=>_X});async function sQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function _X(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var aK={};C(aK,{up:()=>xX,down:()=>uX});async function xX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function uX(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var rK={};C(rK,{up:()=>CX,down:()=>KX});async function CX(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function KX(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var lK={};C(lK,{up:()=>mX,down:()=>TX});import{sql as NX}from"kysely";async function mX(_){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(NX`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 TX(_){await _.schema.dropTable("task_board_item_threads").execute()}var eK={};C(eK,{up:()=>zX,down:()=>EX});async function zX(_){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 EX(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var dK={};C(dK,{up:()=>UX,down:()=>JX});import{sql as $X}from"kysely";async function UX(_){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($X`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 JX(_){await _.schema.dropTable("task_board_item_prs").execute()}var bK={};C(bK,{up:()=>QX,down:()=>XX});import{sql as PX}from"kysely";async function QX(_){await PX`
|
|
1673
1673
|
DELETE FROM member
|
|
1674
1674
|
WHERE id IN (
|
|
1675
1675
|
SELECT id FROM (
|
|
@@ -1688,38 +1688,38 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1688
1688
|
) ranked
|
|
1689
1689
|
WHERE ranked.rn > 1
|
|
1690
1690
|
)
|
|
1691
|
-
`.execute(_)}async function
|
|
1691
|
+
`.execute(_)}async function XX(_){}var sK={};C(sK,{up:()=>ZX,down:()=>WX});async function ZX(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function WX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var _N={};C(_N,{up:()=>jX,down:()=>LX});async function jX(_){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 LX(_){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 xN={};C(xN,{up:()=>YX,down:()=>DX});import{sql as FX}from"kysely";async function YX(_){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(FX`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 DX(_){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 uN={};C(uN,{up:()=>MX,down:()=>RX});import{sql as HX}from"kysely";async function MX(_){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(HX`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 RX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var CN={};C(CN,{up:()=>BX,down:()=>GX});import{sql as a_}from"kysely";async function BX(_){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(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",a_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",a_`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 GX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var KN={};C(KN,{up:()=>OX,down:()=>SX});import{sql as r_}from"kysely";async function OX(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await r_`
|
|
1692
1692
|
insert into organization_billing (organization_id, legacy)
|
|
1693
1693
|
select id, true from organization
|
|
1694
1694
|
on conflict (organization_id) do nothing
|
|
1695
|
-
`.execute(_)}async function
|
|
1695
|
+
`.execute(_)}async function SX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var NN={};C(NN,{up:()=>fX,down:()=>AX});import{sql as kT}from"kysely";async function fX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(kT`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(kT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function AX(_){await _.schema.dropTable("seat_change_log").execute()}var mN={};C(mN,{up:()=>IX,down:()=>yX});async function IX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function yX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var TN={};C(TN,{up:()=>VX,down:()=>wX});import{sql as nT}from"kysely";async function VX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await nT`
|
|
1696
1696
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1697
1697
|
on organization_billing (stripe_subscription_id)
|
|
1698
1698
|
where stripe_subscription_id is not null
|
|
1699
|
-
`.execute(_)}async function
|
|
1699
|
+
`.execute(_)}async function wX(_){await nT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var zN={};C(zN,{up:()=>kX,down:()=>nX});async function kX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function nX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var EN={};C(EN,{up:()=>vX,down:()=>pX});import{sql as vT}from"kysely";async function vX(_){await vT`
|
|
1700
1700
|
create index idx_org_billing_benefits_pending
|
|
1701
1701
|
on organization_billing (updated_at)
|
|
1702
1702
|
where benefits_reference_id is not null
|
|
1703
|
-
`.execute(_)}async function
|
|
1703
|
+
`.execute(_)}async function pX(_){await vT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var $N={};C($N,{up:()=>gX,down:()=>qX});import{sql as pT}from"kysely";async function gX(_){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(pT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(pT`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 qX(_){await _.schema.dropTable("user_model_preferences").execute()}var UN={};C(UN,{up:()=>iX,down:()=>cX});async function iX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function cX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var JN={};C(JN,{up:()=>hX,down:()=>tX});async function hX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function tX(_){}var PN={};C(PN,{up:()=>oX,down:()=>aX});import{sql as gT}from"kysely";async function oX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await gT`
|
|
1704
1704
|
UPDATE organization_settings
|
|
1705
1705
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1706
1706
|
WHERE reports_only IS NOT NULL
|
|
1707
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1707
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function aX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await gT`
|
|
1708
1708
|
UPDATE organization_settings
|
|
1709
1709
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1710
1710
|
WHERE flags ? 'reports_only'
|
|
1711
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1711
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var QN={};C(QN,{up:()=>lX,down:()=>eX});import{sql as rX}from"kysely";async function lX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await rX`
|
|
1712
1712
|
update task_board_items
|
|
1713
1713
|
set sort_order = -extract(epoch from created_at)
|
|
1714
|
-
`.execute(_)}async function
|
|
1714
|
+
`.execute(_)}async function eX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var XN={};C(XN,{up:()=>dX,down:()=>bX,ACTIONS:()=>qT});import{sql as l_}from"kysely";var qT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function dX(_){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(l_`now()`)).addCheckConstraint("chk_task_board_activity_action",l_`action IN (${l_.join(qT.map((x)=>l_.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 bX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var WN={};C(WN,{up:()=>sX,down:()=>_Z,ACTIONS:()=>ZN});import{sql as L_}from"kysely";var ZN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function sX(_){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 iT(_,ZN)}async function _Z(_){await iT(_,ZN.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 iT(_,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 LN={};C(LN,{up:()=>uZ,down:()=>CZ});import{sql as cT}from"kysely";function jN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function xZ(_){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 jN(N)}catch{return jN(_.connection_url)}if(_.title)return jN(_.title);return _.id}async function uZ(_){let x=await cT`
|
|
1715
1715
|
SELECT id, app_name, connection_url, title, slug
|
|
1716
1716
|
FROM connections
|
|
1717
1717
|
WHERE connection_type != 'VIRTUAL'
|
|
1718
|
-
`.execute(_),u=0;for(let N of x.rows){let K=
|
|
1718
|
+
`.execute(_),u=0;for(let N of x.rows){let K=xZ(N);if(K===N.slug)continue;await cT`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 CZ(){}var FN={};C(FN,{up:()=>NZ,down:()=>mZ});import{sql as KZ}from"kysely";async function NZ(_){await KZ`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 mZ(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var DN={};C(DN,{up:()=>zZ,down:()=>EZ,ACTIONS:()=>YN});import{sql as e_}from"kysely";var YN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],TZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function zZ(_){await hT(_,YN)}async function EZ(_){await hT(_,YN.filter((x)=>!TZ.has(x)))}async function hT(_,x){await e_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await e_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${e_.join(x.map((u)=>e_.lit(u)))}))`.execute(_)}var HN={};C(HN,{up:()=>UZ,down:()=>JZ});import{sql as $Z}from"kysely";async function UZ(_){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($Z`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 JZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var RN={};C(RN,{up:()=>QZ,down:()=>XZ,ACTIONS:()=>MN});import{sql as d_}from"kysely";var MN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],PZ=new Set(["merge_conflict_resolution"]);async function QZ(_){await tT(_,MN)}async function XZ(_){await tT(_,MN.filter((x)=>!PZ.has(x)))}async function tT(_,x){await d_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await d_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${d_.join(x.map((u)=>d_.lit(u)))}))`.execute(_)}var BN={};C(BN,{up:()=>ZZ,down:()=>WZ});import{sql as F_}from"kysely";async function ZZ(_){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 WZ(_){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_`
|
|
1719
1719
|
create index idx_org_billing_benefits_pending
|
|
1720
1720
|
on organization_billing (updated_at)
|
|
1721
1721
|
where benefits_reference_id is not null
|
|
1722
|
-
`.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(
|
|
1722
|
+
`.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 GN={};C(GN,{up:()=>jZ,down:()=>LZ});import{sql as b_}from"kysely";async function jZ(_){await b_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await b_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function LZ(_){await b_`
|
|
1723
1723
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1724
1724
|
RETURNS trigger AS $fn$
|
|
1725
1725
|
BEGIN
|
|
@@ -1740,40 +1740,40 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1740
1740
|
RETURN NEW;
|
|
1741
1741
|
END;
|
|
1742
1742
|
$fn$ LANGUAGE plpgsql;
|
|
1743
|
-
`.execute(_),await
|
|
1743
|
+
`.execute(_),await b_`
|
|
1744
1744
|
CREATE TRIGGER trg_repo_github_child_single_parent
|
|
1745
1745
|
BEFORE INSERT ON connection_aggregations
|
|
1746
1746
|
FOR EACH ROW
|
|
1747
1747
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1748
|
-
`.execute(_)}var
|
|
1748
|
+
`.execute(_)}var ON={};C(ON,{up:()=>FZ,down:()=>YZ});import{sql as oT}from"kysely";async function FZ(_){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(oT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(oT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function YZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var SN={};C(SN,{up:()=>DZ,down:()=>HZ});import{sql as aT}from"kysely";async function DZ(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(aT`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(aT`now()`)).execute()}async function HZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var AN={};C(AN,{up:()=>MZ,down:()=>RZ});import{sql as fN}from"kysely";async function MZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(fN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await fN`
|
|
1749
1749
|
create index idx_task_quota_claims_org_period_live
|
|
1750
1750
|
on task_quota_claims (organization_id, period_key)
|
|
1751
1751
|
where state <> 'released'
|
|
1752
|
-
`.execute(_)}async function
|
|
1752
|
+
`.execute(_)}async function RZ(_){await fN`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 IN={};C(IN,{up:()=>BZ,down:()=>GZ});async function BZ(_){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 GZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var yN={};C(yN,{up:()=>OZ,down:()=>SZ});async function OZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function SZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var VN={};C(VN,{up:()=>fZ,down:()=>AZ});import{sql as rT}from"kysely";async function fZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(rT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(rT`monthly_task_executions > 0`)).execute()}async function AZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var wN={};C(wN,{up:()=>yZ,down:()=>VZ});import{sql as IZ}from"kysely";async function yZ(_){await IZ`
|
|
1753
1753
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1754
1754
|
ON task_board_items (updated_at, id)
|
|
1755
1755
|
WHERE status = 'in_review'
|
|
1756
1756
|
AND assignee_id = 'super-agent'
|
|
1757
1757
|
AND dismissed_at IS NULL
|
|
1758
|
-
`.execute(_)}async function
|
|
1758
|
+
`.execute(_)}async function VZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var kN={};C(kN,{up:()=>wZ,down:()=>kZ});import{sql as lT}from"kysely";async function wZ(_){await lT`
|
|
1759
1759
|
ALTER TABLE task_board_items
|
|
1760
1760
|
ADD COLUMN last_swept_at timestamptz
|
|
1761
|
-
`.execute(_)}async function
|
|
1761
|
+
`.execute(_)}async function kZ(_){await lT`
|
|
1762
1762
|
ALTER TABLE task_board_items
|
|
1763
1763
|
DROP COLUMN last_swept_at
|
|
1764
|
-
`.execute(_)}var
|
|
1764
|
+
`.execute(_)}var nN={};C(nN,{up:()=>nZ,down:()=>vZ});import{sql as s_}from"kysely";async function nZ(_){await s_`
|
|
1765
1765
|
ALTER TABLE task_board_items
|
|
1766
1766
|
ADD COLUMN retry_at timestamptz,
|
|
1767
1767
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
1768
|
-
`.execute(_),await
|
|
1768
|
+
`.execute(_),await s_`
|
|
1769
1769
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1770
1770
|
ON task_board_items (retry_at)
|
|
1771
1771
|
WHERE retry_at IS NOT NULL
|
|
1772
|
-
`.execute(_)}async function
|
|
1772
|
+
`.execute(_)}async function vZ(_){await s_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await s_`
|
|
1773
1773
|
ALTER TABLE task_board_items
|
|
1774
1774
|
DROP COLUMN retry_at,
|
|
1775
1775
|
DROP COLUMN retry_attempts
|
|
1776
|
-
`.execute(_)}var
|
|
1776
|
+
`.execute(_)}var pN={};C(pN,{up:()=>pZ,down:()=>gZ});import{sql as vN}from"kysely";async function pZ(_){await vN`
|
|
1777
1777
|
CREATE TABLE org_repo_sync (
|
|
1778
1778
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1779
1779
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1791,11 +1791,11 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1791
1791
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1792
1792
|
UNIQUE (organization_id, volume)
|
|
1793
1793
|
)
|
|
1794
|
-
`.execute(_),await
|
|
1794
|
+
`.execute(_),await vN`
|
|
1795
1795
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1796
1796
|
ON org_repo_sync (organization_id)
|
|
1797
1797
|
WHERE enabled
|
|
1798
|
-
`.execute(_)}async function
|
|
1798
|
+
`.execute(_)}async function gZ(_){await vN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var qN={};C(qN,{up:()=>iZ,down:()=>cZ,ACTIONS:()=>gN});import{sql as _x}from"kysely";var gN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],qZ=new Set(["merge_failed"]);async function iZ(_){await eT(_,gN)}async function cZ(_){await eT(_,gN.filter((x)=>!qZ.has(x)))}async function eT(_,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 iN={};C(iN,{up:()=>hZ,down:()=>tZ});async function hZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function tZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var cN={};C(cN,{up:()=>oZ,down:()=>aZ});import{sql as x_}from"kysely";async function oZ(_){await x_`
|
|
1799
1799
|
CREATE TABLE org_jira_integrations (
|
|
1800
1800
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1801
1801
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1834,7 +1834,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1834
1834
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1835
1835
|
UNIQUE (organization_id, jira_comment_id)
|
|
1836
1836
|
)
|
|
1837
|
-
`.execute(_)}async function
|
|
1837
|
+
`.execute(_)}async function aZ(_){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 hN={};C(hN,{up:()=>lZ,down:()=>eZ});import{sql as rZ}from"kysely";async function lZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await rZ`
|
|
1838
1838
|
update task_board_items as t
|
|
1839
1839
|
set key_seq = numbered.seq
|
|
1840
1840
|
from (
|
|
@@ -1847,25 +1847,25 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1847
1847
|
from task_board_items
|
|
1848
1848
|
) as numbered
|
|
1849
1849
|
where t.id = numbered.id
|
|
1850
|
-
`.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
|
|
1850
|
+
`.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 eZ(_){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 tN={};C(tN,{up:()=>dZ,down:()=>bZ});import{sql as dT}from"kysely";async function dZ(_){await dT`
|
|
1851
1851
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1852
1852
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1853
1853
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1854
|
-
`.execute(_)}async function
|
|
1854
|
+
`.execute(_)}async function bZ(_){await dT`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var aN={};C(aN,{up:()=>sZ,down:()=>_6});import{sql as oN}from"kysely";async function sZ(_){await oN`
|
|
1855
1855
|
ALTER TABLE thread_message_parts
|
|
1856
1856
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1857
|
-
`.execute(_),await
|
|
1857
|
+
`.execute(_),await oN`
|
|
1858
1858
|
ALTER TABLE thread_message_parts
|
|
1859
1859
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1860
|
-
`.execute(_)}async function
|
|
1860
|
+
`.execute(_)}async function _6(_){await oN`
|
|
1861
1861
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1862
|
-
`.execute(_)}var
|
|
1862
|
+
`.execute(_)}var rN={};C(rN,{up:()=>x6,down:()=>u6});async function x6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function u6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var lN={};C(lN,{up:()=>K6,down:()=>N6});import{sql as C6}from"kysely";async function K6(_){await C6`
|
|
1863
1863
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1864
1864
|
ON task_board_items (updated_at)
|
|
1865
1865
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1866
|
-
`.execute(_)}async function
|
|
1866
|
+
`.execute(_)}async function N6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var eN={};C(eN,{up:()=>m6,down:()=>T6,TYPES:()=>bT});import{sql as q}from"kysely";var bT=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function m6(_){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(bT.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
|
|
1867
1867
|
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
|
|
1868
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function
|
|
1868
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function T6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var dN={};C(dN,{up:()=>z6,down:()=>E6});import{sql as sT}from"kysely";async function z6(_){await sT`
|
|
1869
1869
|
UPDATE org_jira_integrations
|
|
1870
1870
|
SET status_mapping = (
|
|
1871
1871
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1880,7 +1880,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1880
1880
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1881
1881
|
WHERE jsonb_typeof(value) = 'array'
|
|
1882
1882
|
)
|
|
1883
|
-
`.execute(_)}async function
|
|
1883
|
+
`.execute(_)}async function E6(_){await sT`
|
|
1884
1884
|
UPDATE org_jira_integrations
|
|
1885
1885
|
SET status_mapping = (
|
|
1886
1886
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1895,7 +1895,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1895
1895
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1896
1896
|
WHERE jsonb_typeof(value) = 'array'
|
|
1897
1897
|
)
|
|
1898
|
-
`.execute(_)}var
|
|
1898
|
+
`.execute(_)}var sN={};C(sN,{up:()=>U6,down:()=>J6,TYPES:()=>bN});import{sql as xx}from"kysely";var bN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],$6=new Set(["mentioned"]);async function U6(_){await _z(_,bN)}async function J6(_){await _z(_,bN.filter((x)=>!$6.has(x)))}async function _z(_,x){await xx`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await xx`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var xm={};C(xm,{up:()=>X6,down:()=>Z6,ACTIONS:()=>_m});import{sql as i}from"kysely";var P6=["bug","feature","chore","spike","security"],_m=["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"],Q6=new Set(["type_changed"]);async function X6(_){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(P6.map((x)=>i.lit(x)))}))`.execute(_),await xz(_,_m)}async function Z6(_){await xz(_,_m.filter((x)=>!Q6.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 xz(_,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 um={};C(um,{up:()=>W6,down:()=>j6});import{sql as W}from"kysely";var Cz=["bug","feature","chore","spike","security"],uz="chore";async function W6(_){await W`UPDATE task_board_items SET type = ${W.lit(uz)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(uz)}`.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(Cz.map((x)=>W.lit(x)))}))`.execute(_)}async function j6(_){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(Cz.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 Cm={};C(Cm,{up:()=>L6,down:()=>F6});import{sql as u_}from"kysely";async function L6(_){await u_`
|
|
1899
1899
|
CREATE TABLE task_board_sprints (
|
|
1900
1900
|
id text PRIMARY KEY,
|
|
1901
1901
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1920,34 +1920,34 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1920
1920
|
CREATE INDEX idx_task_board_items_sprint
|
|
1921
1921
|
ON task_board_items (organization_id, sprint_id)
|
|
1922
1922
|
WHERE sprint_id IS NOT NULL
|
|
1923
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function
|
|
1923
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function F6(_){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 Km={};C(Km,{up:()=>D6,down:()=>H6});import{sql as Y6}from"kysely";async function D6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function H6(_){await Y6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var Nm={};C(Nm,{up:()=>R6,down:()=>B6});import{sql as M6}from"kysely";async function R6(_){await M6`
|
|
1924
1924
|
UPDATE org_jira_integrations
|
|
1925
1925
|
SET last_synced_at = NULL,
|
|
1926
1926
|
last_sync_error = NULL
|
|
1927
1927
|
WHERE last_synced_at IS NOT NULL
|
|
1928
|
-
`.execute(_)}async function
|
|
1928
|
+
`.execute(_)}async function B6(){}var mm={};C(mm,{up:()=>O6,down:()=>S6});import{sql as G6}from"kysely";async function O6(_){await G6`
|
|
1929
1929
|
UPDATE org_jira_integrations
|
|
1930
1930
|
SET last_synced_at = NULL,
|
|
1931
1931
|
last_sync_error = NULL
|
|
1932
1932
|
WHERE last_synced_at IS NOT NULL
|
|
1933
|
-
`.execute(_)}async function
|
|
1933
|
+
`.execute(_)}async function S6(){}var zm={};C(zm,{up:()=>f6,down:()=>A6});import{sql as Tm}from"kysely";async function f6(_){await Tm`
|
|
1934
1934
|
ALTER TABLE org_jira_integrations
|
|
1935
1935
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1936
|
-
`.execute(_),await
|
|
1936
|
+
`.execute(_),await Tm`
|
|
1937
1937
|
UPDATE org_jira_integrations
|
|
1938
1938
|
SET rescan_pending = true
|
|
1939
1939
|
WHERE last_synced_at IS NULL
|
|
1940
|
-
`.execute(_)}async function
|
|
1940
|
+
`.execute(_)}async function A6(_){await Tm`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var Em={};C(Em,{up:()=>I6,down:()=>y6});async function I6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function y6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var $m={};C($m,{up:()=>V6,down:()=>w6});import{sql as Kz}from"kysely";async function V6(_){await Kz`
|
|
1941
1941
|
ALTER TABLE invitation
|
|
1942
1942
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1943
|
-
`.execute(_)}async function
|
|
1943
|
+
`.execute(_)}async function w6(_){await Kz`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Jm={};C(Jm,{up:()=>k6,down:()=>n6});import{sql as Um}from"kysely";async function k6(_){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(Um`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Um`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 Um`
|
|
1944
1944
|
INSERT INTO task_board_column_automations
|
|
1945
1945
|
(id, organization_id, column_key, prompt)
|
|
1946
1946
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1947
1947
|
FROM org_jira_integrations
|
|
1948
1948
|
WHERE auto_delegate = true
|
|
1949
1949
|
ON CONFLICT DO NOTHING
|
|
1950
|
-
`.execute(_)}async function
|
|
1950
|
+
`.execute(_)}async function n6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Pm={};C(Pm,{up:()=>v6,down:()=>p6});import{sql as Y_}from"kysely";async function v6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
|
|
1951
1951
|
UPDATE task_board_items i
|
|
1952
1952
|
SET review_cycle_started_at = (
|
|
1953
1953
|
SELECT max(a.occurred_at)
|
|
@@ -1957,35 +1957,35 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
1957
1957
|
AND a.data ->> 'to' = 'in_review'
|
|
1958
1958
|
)
|
|
1959
1959
|
WHERE i.status = 'in_review'
|
|
1960
|
-
`.execute(_),await
|
|
1960
|
+
`.execute(_),await Y_`
|
|
1961
1961
|
CREATE INDEX idx_task_board_items_review_cycle
|
|
1962
1962
|
ON task_board_items (updated_at, id)
|
|
1963
1963
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1964
1964
|
AND assignee_id = 'super-agent'
|
|
1965
1965
|
AND dismissed_at IS NULL
|
|
1966
|
-
`.execute(_),await
|
|
1966
|
+
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function p6(_){await Y_`
|
|
1967
1967
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1968
1968
|
ON task_board_items (updated_at, id)
|
|
1969
1969
|
WHERE status = 'in_review'
|
|
1970
1970
|
AND assignee_id = 'super-agent'
|
|
1971
1971
|
AND dismissed_at IS NULL
|
|
1972
|
-
`.execute(_),await
|
|
1972
|
+
`.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 Qm={};C(Qm,{up:()=>g6,down:()=>q6});import{sql as Nz}from"kysely";async function g6(_){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(Nz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Nz`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 q6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Zm={};C(Zm,{up:()=>c6,down:()=>h6,ACTIONS:()=>Xm});import{sql as ux}from"kysely";var Xm=["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"],i6=new Set(["review_verdict_requested"]);async function c6(_){await mz(_,Xm)}async function h6(_){await mz(_,Xm.filter((x)=>!i6.has(x)))}async function mz(_,x){await ux`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await ux`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${ux.join(x.map((u)=>ux.lit(u)))}))`.execute(_)}var Wm={};C(Wm,{up:()=>t6,down:()=>o6});import{sql as Cx}from"kysely";async function t6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Cx`
|
|
1973
1973
|
ALTER TABLE task_board_items
|
|
1974
1974
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1975
1975
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
1976
|
-
`.execute(_),await
|
|
1976
|
+
`.execute(_),await Cx`
|
|
1977
1977
|
ALTER TABLE task_board_items
|
|
1978
1978
|
ADD CONSTRAINT task_board_items_board_column_fkey
|
|
1979
1979
|
FOREIGN KEY (board_column_org, status)
|
|
1980
1980
|
REFERENCES task_board_columns (organization_id, key)
|
|
1981
1981
|
ON DELETE RESTRICT
|
|
1982
|
-
`.execute(_)}async function
|
|
1982
|
+
`.execute(_)}async function o6(_){await Cx`
|
|
1983
1983
|
ALTER TABLE task_board_items
|
|
1984
1984
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
1985
|
-
`.execute(_),await
|
|
1985
|
+
`.execute(_),await Cx`
|
|
1986
1986
|
ALTER TABLE task_board_items
|
|
1987
1987
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
1988
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
1988
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var jm={};C(jm,{up:()=>a6,down:()=>r6});async function a6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function r6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Fm={};C(Fm,{up:()=>e6,down:()=>d6,ACTIONS:()=>Lm});import{sql as Kx}from"kysely";var Lm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],l6=new Set(["sprint_changed"]);async function e6(_){await Tz(_,Lm)}async function d6(_){await Tz(_,Lm.filter((x)=>!l6.has(x)))}async function Tz(_,x){await Kx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Kx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Kx.join(x.map((u)=>Kx.lit(u)))}))`.execute(_)}var Ym={};C(Ym,{up:()=>s6,down:()=>_W});import{sql as b6}from"kysely";async function s6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(b6`'[]'::jsonb`)).execute()}async function _W(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Dm={};C(Dm,{up:()=>xW,down:()=>uW});import{sql as zz}from"kysely";async function xW(_){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(zz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(zz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function uW(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Hm={};C(Hm,{up:()=>KW,down:()=>NW});import{sql as CW}from"kysely";async function KW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await CW`
|
|
1989
1989
|
UPDATE task_board_items i
|
|
1990
1990
|
SET external_url = t.url,
|
|
1991
1991
|
description = CASE
|
|
@@ -2004,11 +2004,11 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2004
2004
|
ON g.organization_id = l.organization_id
|
|
2005
2005
|
) t
|
|
2006
2006
|
WHERE t.item_id = i.id
|
|
2007
|
-
`.execute(_)}async function
|
|
2007
|
+
`.execute(_)}async function NW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Mm={};C(Mm,{up:()=>TW,down:()=>zW,ACTIONS:()=>Ez});import{sql as Q}from"kysely";var mW=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Ez=["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 TW(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await Q`DROP TABLE IF EXISTS task_board_columns`.execute(_),await Q`
|
|
2008
2008
|
UPDATE task_board_items
|
|
2009
2009
|
SET status = 'triage'
|
|
2010
|
-
WHERE status NOT IN (${Q.join(
|
|
2011
|
-
`.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await
|
|
2010
|
+
WHERE status NOT IN (${Q.join(mW.map((x)=>Q.lit(x)))})
|
|
2011
|
+
`.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await EW(_,Ez),await Q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await Q`
|
|
2012
2012
|
ALTER TABLE task_board_item_jira_links
|
|
2013
2013
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
2014
2014
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -2020,7 +2020,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2020
2020
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
2021
2021
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
2022
2022
|
DROP COLUMN IF EXISTS rescan_pending
|
|
2023
|
-
`.execute(_)}async function
|
|
2023
|
+
`.execute(_)}async function zW(){}async function EW(_,x){await Q`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Q`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Q.join(x.map((u)=>Q.lit(u)))}))`.execute(_)}var Rm={};C(Rm,{up:()=>$W,down:()=>UW});import{sql as C_}from"kysely";async function $W(_){await C_`
|
|
2024
2024
|
ALTER TABLE task_board_items
|
|
2025
2025
|
ADD COLUMN IF NOT EXISTS source text
|
|
2026
2026
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
@@ -2041,24 +2041,24 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2041
2041
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2042
2042
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
2043
2043
|
)
|
|
2044
|
-
`.execute(_)}async function
|
|
2044
|
+
`.execute(_)}async function UW(_){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 Bm={};C(Bm,{up:()=>JW,down:()=>PW});import{sql as D_}from"kysely";async function JW(_){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_`
|
|
2045
2045
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
2046
2046
|
ON organization_notices (organization_id)
|
|
2047
2047
|
WHERE resolved_at IS NULL
|
|
2048
|
-
`.execute(_),await
|
|
2048
|
+
`.execute(_),await D_`
|
|
2049
2049
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
2050
2050
|
ON organization_notices (organization_id, created_at DESC)
|
|
2051
|
-
`.execute(_)}async function
|
|
2051
|
+
`.execute(_)}async function PW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Om={};C(Om,{up:()=>HW,down:()=>MW});import{sql as Gm}from"kysely";import{sql as C5}from"kysely";var $z=50000000,QW=1e5;function XW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>QW)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 ZW=/\u0000/g,WW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,jW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,LW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,FW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function YW(_){return _.replace(ZW,"").replace(WW,"\uFFFD").replace(jW,"$1***@").replace(LW,"$1***").replace(FW,"[base64 data omitted]")}function DW(_){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 Uz(_){if(XW(_,$z)>$z)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return YW(u);if(DW(u))return{type:"text",text:"[image omitted]"};return u})}var Jz=20;async function HW(_){let x=await Gm`
|
|
2052
2052
|
SELECT id FROM thread_message_parts
|
|
2053
2053
|
WHERE pg_column_size(payload) > 8192
|
|
2054
2054
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
2055
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
2055
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=Jz){let N=x.rows.slice(u,u+Jz).map((m)=>m.id),K=await Gm`
|
|
2056
2056
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
|
|
2057
|
-
`.execute(_);for(let m of K.rows){let T=
|
|
2057
|
+
`.execute(_);for(let m of K.rows){let T=Uz(m.payload);if(T===JSON.stringify(m.payload))continue;await Gm`
|
|
2058
2058
|
UPDATE thread_message_parts
|
|
2059
2059
|
SET payload = ${T}::jsonb
|
|
2060
2060
|
WHERE id = ${m.id}
|
|
2061
|
-
`.execute(_)}}}async function
|
|
2061
|
+
`.execute(_)}}}async function MW(){}var Sm={};C(Sm,{up:()=>RW,down:()=>BW});async function RW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function BW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var fm={};C(fm,{up:()=>GW,down:()=>OW});import{sql as U}from"kysely";async function GW(_){await U`
|
|
2062
2062
|
CREATE TABLE git_provider_accounts (
|
|
2063
2063
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
2064
2064
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2076,7 +2076,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2076
2076
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
2077
2077
|
UNIQUE (organization_id, host, external_account_id)
|
|
2078
2078
|
)
|
|
2079
|
-
`.execute(_),await
|
|
2079
|
+
`.execute(_),await U`
|
|
2080
2080
|
CREATE TABLE git_provider_account_credentials (
|
|
2081
2081
|
account_id text PRIMARY KEY REFERENCES git_provider_accounts(id) ON DELETE CASCADE,
|
|
2082
2082
|
access_token text NOT NULL,
|
|
@@ -2089,7 +2089,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2089
2089
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2090
2090
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
2091
2091
|
)
|
|
2092
|
-
`.execute(_),await
|
|
2092
|
+
`.execute(_),await U`
|
|
2093
2093
|
CREATE TABLE git_provider_oauth_states (
|
|
2094
2094
|
id text PRIMARY KEY,
|
|
2095
2095
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2100,10 +2100,10 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2100
2100
|
expires_at timestamptz NOT NULL,
|
|
2101
2101
|
created_at timestamptz NOT NULL DEFAULT now()
|
|
2102
2102
|
)
|
|
2103
|
-
`.execute(_),await
|
|
2103
|
+
`.execute(_),await U`
|
|
2104
2104
|
CREATE INDEX idx_git_provider_oauth_states_expires_at
|
|
2105
2105
|
ON git_provider_oauth_states (expires_at)
|
|
2106
|
-
`.execute(_),await
|
|
2106
|
+
`.execute(_),await U`
|
|
2107
2107
|
CREATE TABLE repositories (
|
|
2108
2108
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
2109
2109
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2120,27 +2120,27 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2120
2120
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2121
2121
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
2122
2122
|
)
|
|
2123
|
-
`.execute(_),await
|
|
2123
|
+
`.execute(_),await U`
|
|
2124
2124
|
CREATE UNIQUE INDEX uq_repositories_org_host_path
|
|
2125
2125
|
ON repositories (organization_id, host, lower(path))
|
|
2126
|
-
`.execute(_),await
|
|
2126
|
+
`.execute(_),await U`
|
|
2127
2127
|
CREATE INDEX idx_repositories_account ON repositories (account_id)
|
|
2128
|
-
`.execute(_),await
|
|
2128
|
+
`.execute(_),await U`
|
|
2129
2129
|
ALTER TABLE task_board_items
|
|
2130
2130
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2131
|
-
`.execute(_),await
|
|
2131
|
+
`.execute(_),await U`
|
|
2132
2132
|
ALTER TABLE task_board_item_prs
|
|
2133
2133
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2134
|
-
`.execute(_),await
|
|
2134
|
+
`.execute(_),await U`
|
|
2135
2135
|
ALTER TABLE org_repo_sync
|
|
2136
2136
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2137
|
-
`.execute(_),await
|
|
2137
|
+
`.execute(_),await U`
|
|
2138
2138
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id DROP NOT NULL
|
|
2139
|
-
`.execute(_),await
|
|
2139
|
+
`.execute(_),await U`
|
|
2140
2140
|
ALTER TABLE org_repo_sync
|
|
2141
2141
|
ADD CONSTRAINT org_repo_sync_source_present
|
|
2142
2142
|
CHECK (connection_id IS NOT NULL OR repository_id IS NOT NULL)
|
|
2143
|
-
`.execute(_),await
|
|
2143
|
+
`.execute(_),await U`
|
|
2144
2144
|
CREATE OR REPLACE FUNCTION git_provider_try_jsonb(t text)
|
|
2145
2145
|
RETURNS jsonb AS $fn$
|
|
2146
2146
|
BEGIN
|
|
@@ -2149,7 +2149,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2149
2149
|
RETURN NULL;
|
|
2150
2150
|
END;
|
|
2151
2151
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
2152
|
-
`.execute(_),await
|
|
2152
|
+
`.execute(_),await U`
|
|
2153
2153
|
INSERT INTO git_provider_accounts (
|
|
2154
2154
|
organization_id, type, host, auth_kind, external_account_id, login,
|
|
2155
2155
|
installation_id, credential_connection_id, created_by
|
|
@@ -2183,7 +2183,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2183
2183
|
AND coalesce(s.owner, '') <> ''
|
|
2184
2184
|
ORDER BY c.organization_id, s.installation_id, c.created_at ASC
|
|
2185
2185
|
ON CONFLICT (organization_id, host, external_account_id) DO NOTHING
|
|
2186
|
-
`.execute(_),await
|
|
2186
|
+
`.execute(_),await U`
|
|
2187
2187
|
INSERT INTO repositories (
|
|
2188
2188
|
organization_id, account_id, provider, host, path, external_id, web_url,
|
|
2189
2189
|
legacy_connection_id, created_by
|
|
@@ -2220,7 +2220,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2220
2220
|
ORDER BY c.organization_id, lower(s.owner || '/' || s.repo),
|
|
2221
2221
|
coalesce(s.org_shared = 'true', false) DESC, c.created_at ASC
|
|
2222
2222
|
ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
|
|
2223
|
-
`.execute(_),await
|
|
2223
|
+
`.execute(_),await U`
|
|
2224
2224
|
UPDATE repositories r
|
|
2225
2225
|
SET external_id = s.repository_id
|
|
2226
2226
|
FROM connections c
|
|
@@ -2235,7 +2235,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2235
2235
|
AND c.organization_id = r.organization_id
|
|
2236
2236
|
AND coalesce(s.repository_id, '') <> ''
|
|
2237
2237
|
AND lower(s.owner || '/' || s.repo) = lower(r.path)
|
|
2238
|
-
`.execute(_),await
|
|
2238
|
+
`.execute(_),await U`
|
|
2239
2239
|
INSERT INTO repositories (
|
|
2240
2240
|
organization_id, account_id, provider, host, path, web_url, created_by
|
|
2241
2241
|
)
|
|
@@ -2259,7 +2259,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2259
2259
|
AND g.name NOT LIKE '%/%'
|
|
2260
2260
|
ORDER BY c.organization_id, lower(g.owner || '/' || g.name), c.created_at ASC
|
|
2261
2261
|
ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
|
|
2262
|
-
`.execute(_),await
|
|
2262
|
+
`.execute(_),await U`
|
|
2263
2263
|
INSERT INTO repositories (
|
|
2264
2264
|
organization_id, account_id, provider, host, path, web_url
|
|
2265
2265
|
)
|
|
@@ -2277,7 +2277,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2277
2277
|
WHERE EXISTS (SELECT 1 FROM organization o WHERE o.id = x.organization_id)
|
|
2278
2278
|
ORDER BY x.organization_id, lower(x.path)
|
|
2279
2279
|
ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
|
|
2280
|
-
`.execute(_),await
|
|
2280
|
+
`.execute(_),await U`
|
|
2281
2281
|
UPDATE task_board_items t
|
|
2282
2282
|
SET repository_id = r.id
|
|
2283
2283
|
FROM repositories r
|
|
@@ -2286,7 +2286,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2286
2286
|
AND r.organization_id = t.organization_id
|
|
2287
2287
|
AND r.host = 'github.com'
|
|
2288
2288
|
AND lower(r.path) = lower(t.repo)
|
|
2289
|
-
`.execute(_),await
|
|
2289
|
+
`.execute(_),await U`
|
|
2290
2290
|
UPDATE task_board_item_prs p
|
|
2291
2291
|
SET repository_id = r.id
|
|
2292
2292
|
FROM repositories r
|
|
@@ -2294,7 +2294,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2294
2294
|
AND r.organization_id = p.organization_id
|
|
2295
2295
|
AND r.host = 'github.com'
|
|
2296
2296
|
AND lower(r.path) = lower(p.repo_owner || '/' || p.repo_name)
|
|
2297
|
-
`.execute(_),await
|
|
2297
|
+
`.execute(_),await U`
|
|
2298
2298
|
UPDATE org_repo_sync s
|
|
2299
2299
|
SET repository_id = r.id
|
|
2300
2300
|
FROM repositories r
|
|
@@ -2302,11 +2302,11 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2302
2302
|
AND r.organization_id = s.organization_id
|
|
2303
2303
|
AND r.host = 'github.com'
|
|
2304
2304
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
|
|
2305
|
-
`.execute(_),await
|
|
2305
|
+
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function OW(_){await U`
|
|
2306
2306
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
2307
|
-
`.execute(_),await
|
|
2307
|
+
`.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
|
|
2308
2308
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
2309
|
-
`.execute(_),await
|
|
2309
|
+
`.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 Am={};C(Am,{up:()=>fW,down:()=>AW});import{sql as I}from"kysely";var SW=I`
|
|
2310
2310
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
2311
2311
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
2312
2312
|
BEGIN
|
|
@@ -2315,7 +2315,7 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2315
2315
|
RETURN NULL;
|
|
2316
2316
|
END;
|
|
2317
2317
|
$$
|
|
2318
|
-
`;async function
|
|
2318
|
+
`;async function fW(_){await SW.execute(_),await I`
|
|
2319
2319
|
ALTER TABLE connections
|
|
2320
2320
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2321
2321
|
`.execute(_),await I`
|
|
@@ -2377,21 +2377,21 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2377
2377
|
AND r.host = 'github.com'
|
|
2378
2378
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
2379
2379
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
2380
|
-
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function
|
|
2380
|
+
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function AW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
|
|
2381
2381
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
2382
|
-
`.execute(_)}var BW={"001-initial-schema":Uu,"002-organization-settings":Ju,"003-connection-schema-align":Qu,"004-remove-models-binding":Xu,"005-connection-configuration":Zu,"006-add-views-to-settings":Wu,"007-monitoring-logs":ju,"008-event-bus":Lu,"009-drop-audit-logs":Fu,"010-gateways":Yu,"011-gateway-icon":Du,"012-gateway-tool-selection-mode":Hu,"013-monitoring-user-agent-gateway":Mu,"014-gateway-resources-prompts":Ru,"015-monitoring-properties":Bu,"016-downstream-token-client-info":Gu,"017-downstream-token-remove-userid":Ou,"018-drop-gateway-tool-selection-strategy":Su,"019-remove-gateway-is-default":fu,"020-enabled-plugins":Au,"021-threads":Iu,"022-rename-gateway-to-virtual-mcp":yu,"023-optimize-thread-indexes":Vu,"024-consolidate-virtual-mcp":wu,"025-add-monitoring-virtual-mcp-id":ku,"026-restrict-child-connection-delete":nu,"027-update-management-mcp-url":pu,"028-update-management-mcp-to-self":qu,"029-add-updated-by-to-connections":iu,"030-member-tags":cu,"031-add-dependency-mode":hu,"032-projects":tu,"033-thread-status":ou,"034-monitoring-dashboards":au,"035-project-connections":ru,"036-update-registry-url":lu,"037-ai-provider-keys":eu,"038-oauth-pkce-states":du,"039-automations":bu,"040-replace-next-run-at-with-last-run-at":su,"041-ai-provider-keys-unique-constraint":_C,"042-rename-mesh-mcp-to-cms-mcp":xC,"043-rename-cms-mcp-to-deco-cms":uC,"044-drop-connections-tools-column":CC,"045-thread-context-start-message":KC,"046-remove-object-storage-plugin":mC,"047-add-next-run-at":TC,"048-merge-projects-agents":EC,"049-remove-org-admin-projects":$C,"050-durable-agent-runs":PC,"051-org-sso":JC,"052-thread-agent-ids":QC,"053-registry-config":XC,"054-connection-slug":WC,"055-spaces":jC,"056-automation-project-scope":LC,"057-thread-virtual-mcp-id":FC,"058-trigger-callback-tokens":YC,"059-kv":DC,"060-member-index":HC,"061-downstream-token-connection-index":MC,"062-private-registry":RC,"063-event-subscriptions-enabled-boolean":BC,"064-brand-context":GC,"065-organization-domains":OC,"066-brand-context-structured":SC,"067-threads-metadata":fC,"068-threads-branch":AC,"069-sandbox-runner-state":IC,"070-model-categories":yC,"071-default-home-agents":VC,"072-ai-provider-key-preset-id":wC,"073-backfill-basic-usage-roles":kC,"074-sandbox-runner-state-handle-nonunique":nC,"075-thread-inflight-async-jobs":vC,"076-automations-drop-agent-json":pC,"077-tier-only-model-selection":qC,"078-automation-tool-call-kind":iC,"079-strip-legacy-freestyle-vm-map-entries":cC,"080-async-research-jobs":hC,"081-async-research-jobs-result-content":tC,"082-secrets":oC,"083-thread-run-locally":aC,"084-drop-host-sandbox-rows":rC,"085-rename-runner-kind":lC,"086-thread-pins-and-vm-map-rekey":eC,"087-fix-vm-map-rekey":dC,"088-purge-cli-activate-keys":bC,"089-rename-remote-user-to-desktop":sC,"090-automation-webhook-triggers":_K,"091-organization-domains-allow-multi":xK,"092-sandbox-naming-uniformization":uK,"093-backfill-global-search-basic-usage":CK,"094-org-file-configs":NK,"095-remove-automation-tool-call-kind":mK,"096-org-file-configs-public-url-base":TK,"097-drop-local-docker-sandbox-state":EK,"098-thread-message-parts":$K,"099-run-fence":PK,"100-link-transport":UK,"101-cancel-requested-at":JK,"102-observational-agent":QK,"103-revert-observational-agent":XK,"104-agent-sandbox-provider-kind":WK,"105-org-fs":jK,"106-automation-tools":LK,"107-org-fs-public-org":FK,"108-automation-max-agent-steps":YK,"109-thread-message-parts-per-message-seq":DK,"110-backfill-ghs-token-expiry":HK,"111-org-fs-thread-id":MK,"112-org-file-configs-credential-type":RK,"113-thread-failure-reason":BK,"114-run-acked-seq":GK,"115-thread-projected-seq":OK,"116-org-sites":SK,"117-org-file-configs-site-slug":fK,"118-organization-domains-multi-verify":AK,"119-organization-join-requests":IK,"120-org-fs-read-public":yK,"121-org-fs-share-password":VK,"122-split-web-research-tier":nK,"123-connection-credential-vault":vK,"124-drop-thread-projected-seq":pK,"125-github-child-single-parent":gK,"126-task-board":iK,"127-task-board-due-date":cK,"128-reports-only":hK,"129-task-board-assigned-by":tK,"130-task-board-thread-id":oK,"131-task-board-thread-link-cascade":aK,"132-task-board-item-prs":rK,"133-dedupe-duplicate-members":lK,"134-drop-task-board-enabled":eK,"135-task-board-item-fk-cascade":dK,"136-task-board-import-idempotency":bK,"137-agent-sandbox-runner-state":sK,"138-agent-sandbox-sessions":_N,"139-organization-billing":xN,"140-seat-change-log":uN,"141-benefits-sync-pending":CN,"142-stripe-event-watermark":KN,"143-armed-report-url":NN,"144-benefits-pending-index":mN,"145-user-model-preferences":TN,"146-organization-main-agent":zN,"147-drop-agent-sandbox-tables":EN,"148-org-flags":$N,"149-task-board-item-sort-order":PN,"150-task-board-activity":UN,"151-task-board-tags":QN,"152-repair-connection-slug":ZN,"153-task-board-latest-assistant-part-index":WN,"154-task-board-qa-activity":LN,"155-task-board-review-claims":FN,"156-task-board-conflict-activity":DN,"157-drop-seat-billing":HN,"158-drop-github-child-single-parent":MN,"159-task-board-comments":RN,"160-task-quota-billing":BN,"161-task-quota-claim-state":ON,"162-claude-subscriptions":SN,"163-task-board-item-dismissed":fN,"164-per-org-task-quota":AN,"165-task-board-pending-review-index":IN,"166-task-board-last-swept-at":yN,"167-task-board-run-retry":VN,"168-org-repo-sync":kN,"169-task-board-merge-failed-activity":vN,"170-task-board-item-repo":pN,"171-jira-integration":gN,"172-task-board-item-key-seq":qN,"173-thread-github-repo-connection-index":iN,"174-thread-message-parts-persisted-at":hN,"175-task-board-sprints":tN,"176-task-board-done-sweep-index":oN,"177-notifications":aN,"178-jira-status-mapping-array":rN,"179-notification-mentioned":eN,"180-task-board-item-type":bN,"181-task-board-item-type-required":sN,"182-task-board-sprints-entities":_m,"183-drop-jira-jql-filter":xm,"184-jira-rescan-after-scope-change":um,"185-jira-rescan-existing-cards":Cm,"186-jira-rescan-pending-flag":Nm,"187-task-board-comment-thread":mm,"188-invitation-auto-accept":Tm,"189-task-board-column-automations":Em,"190-task-board-review-cycle-started-at":$m,"191-task-board-columns":Pm,"192-task-board-verdict-nudge-activity":Jm,"193-task-board-status-column-fk":Qm,"194-jira-link-sprint":Xm,"195-task-board-sprint-activity":Wm,"196-task-board-column-tracker-statuses":jm,"197-task-board-prompts":Lm,"198-task-board-external-url":Fm,"199-drop-jira-mirror-and-org-columns":Ym,"200-jira-run-trigger":Dm,"201-organization-notices":Hm,"202-redact-base64-thread-parts":Rm,"203-task-board-preview-routes":Bm,"204-git-provider-accounts-and-repositories":Gm,"205-repository-references":Om,"206-repository-consumers":Pu,"207-task-board-prs-repo-idx":$u,"208-github-connect-flows":Eu,"209-github-installation-authorization":zu,"210-github-repository-authorization":_u,"211-user-fs-org":sx,"212-coding-agent-mcp-excluded":xu,"213-bitbucket-git-provider":uu,"214-connections-sanitized-id-idx":lx,"215-commerce-discovery-repository":ex,"216-github-cli-auth":bx,"217-experiments":Cu,"218-thread-message-parts-error-idx":Ku,"219-task-board-duplicate-reported-activity":mu,"220-jira-automation-continue-pr":Tu,"221-remove-private-registry":Px,"222-org-git-credentials":Ux,"223-drop-org-main-agent-id":rx,"224-repository-sandbox-image":Jx,"225-thread-analytics-indexes":Xx,"226-deco-score-names":Wx,"227-task-board-finding-resolved-activity":Lx,"228-org-voice-config":$x,"229-jira-automation-from":Fx,"230-project-sidebar":Yx,"231-jira-chat-agent":Dx,"232-task-board-prompt-skills":Mx,"233-remove-jira-chat-agent":Bx,"234-task-board-comment-audience":Gx,"235-prune-empty-thread-dirs":Ox,"236-task-board-sprints":fx,"237-org-sites-project-link":Ax,"238-task-board-default-lanes":Ix,"239-task-board-retire-old-lanes":yx,"240-task-board-restore-todo":Vx,"241-automation-board-column-transition":wx,"242-connection-url-slug":kx,"243-experiment-task-board-item":nx,"244-connection-url-slug-rollout-backfill":vx,"245-automation-system-key":px,"246-automation-pr-ready-trigger":gx,"247-automation-jira-transition":qx,"248-drop-retired-rule-tables":ix,"249-task-board-item-project":cx,"250-github-copilot-subscriptions":hx,"251-org-shared-plans":tx,"252-automation-linked-chat-trigger":ox,"253-automation-pr-builtin-triggers":ax,"254-codex-subscriptions":Ex},Kx=BW;import{getMigrations as N9}from"better-auth/db";import{sso as m9}from"@better-auth/sso";import{organization as T9}from"@decocms/better-auth/plugins";import{admin as z9,apiKey as E9,jwt as $9,magicLink as P9,mcp as U9,openAPI as J9}from"better-auth/plugins";import{emailOTP as Q9}from"better-auth/plugins/email-otp";import{Kysely as dW,PostgresDialect as jz}from"kysely";import{Pool as Lz}from"pg";import{homedir as GW}from"os";var OW=new Set(["all","worker","api"]);function SW(_){let x=(_??"").trim();return OW.has(x)?x:"all"}var fW=new Set(["production","development","test"]);function AW(_){let x=(_??"").trim();return fW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function fm(_,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 fm(_,x,N)??u}function IW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),m=K>0?N.slice(0,K).trim():"",T=K>0?N.slice(K+1).trim():"";if(!m||!T){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[m]=T}return x}function yW(_,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 Sm(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function VW(_){return _===void 0||_===""||_==="true"||_==="1"}function D_(_,x){return _||x}function Ez(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${GW()}/deco`,u=AW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:D_(_.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:D_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),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:fm("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((m)=>m.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:IW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:yW("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:Sm(_.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:Sm(_.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:VW(_.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:fm("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:SW(D_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:Sm(_.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,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:D_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:D_(_.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 wW=null;function K_(){return wW??=Object.freeze(Ez(process.env))}import{createContextKey as qW,metrics as iW,propagation as X8,ROOT_CONTEXT as Z8,SpanStatusCode as W8,trace as cW}from"@opentelemetry/api";import{logs as hW,SeverityNumber as Am}from"@opentelemetry/api-logs";import{OTLPLogExporter as F8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as tW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as H8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as R8}from"@opentelemetry/instrumentation-runtime-node";import{context as E5,propagation as $5,SpanKind as P5,SpanStatusCode as U5}from"@opentelemetry/api";var Q5=globalThis.fetch;import{ExportResultCode as B5}from"@opentelemetry/core";import{ExportResultCode as Nx}from"@opentelemetry/core";import{mkdir as kW,rename as nW,writeFile as vW}from"fs/promises";import{join as mx}from"path";class Tx{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:Nx.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:Nx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Nx.FAILED}});return Promise.resolve({code:Nx.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?mx(this.basePath,x,...N):mx(this.basePath,...N);if(!this.knownDirs.has(K))await kW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=mx(K,`.${m}.tmp`),z=mx(K,m),E=_.join(`
|
|
2382
|
+
`.execute(_)}var IW={"001-initial-schema":Xu,"002-organization-settings":Zu,"003-connection-schema-align":Wu,"004-remove-models-binding":ju,"005-connection-configuration":Lu,"006-add-views-to-settings":Fu,"007-monitoring-logs":Yu,"008-event-bus":Du,"009-drop-audit-logs":Hu,"010-gateways":Mu,"011-gateway-icon":Ru,"012-gateway-tool-selection-mode":Bu,"013-monitoring-user-agent-gateway":Gu,"014-gateway-resources-prompts":Ou,"015-monitoring-properties":Su,"016-downstream-token-client-info":fu,"017-downstream-token-remove-userid":Au,"018-drop-gateway-tool-selection-strategy":Iu,"019-remove-gateway-is-default":yu,"020-enabled-plugins":Vu,"021-threads":wu,"022-rename-gateway-to-virtual-mcp":ku,"023-optimize-thread-indexes":nu,"024-consolidate-virtual-mcp":vu,"025-add-monitoring-virtual-mcp-id":pu,"026-restrict-child-connection-delete":gu,"027-update-management-mcp-url":iu,"028-update-management-mcp-to-self":hu,"029-add-updated-by-to-connections":tu,"030-member-tags":ou,"031-add-dependency-mode":au,"032-projects":ru,"033-thread-status":lu,"034-monitoring-dashboards":eu,"035-project-connections":du,"036-update-registry-url":bu,"037-ai-provider-keys":su,"038-oauth-pkce-states":_C,"039-automations":xC,"040-replace-next-run-at-with-last-run-at":uC,"041-ai-provider-keys-unique-constraint":CC,"042-rename-mesh-mcp-to-cms-mcp":KC,"043-rename-cms-mcp-to-deco-cms":NC,"044-drop-connections-tools-column":mC,"045-thread-context-start-message":TC,"046-remove-object-storage-plugin":EC,"047-add-next-run-at":$C,"048-merge-projects-agents":JC,"049-remove-org-admin-projects":PC,"050-durable-agent-runs":QC,"051-org-sso":ZC,"052-thread-agent-ids":WC,"053-registry-config":jC,"054-connection-slug":FC,"055-spaces":YC,"056-automation-project-scope":DC,"057-thread-virtual-mcp-id":HC,"058-trigger-callback-tokens":MC,"059-kv":RC,"060-member-index":BC,"061-downstream-token-connection-index":GC,"062-private-registry":OC,"063-event-subscriptions-enabled-boolean":SC,"064-brand-context":fC,"065-organization-domains":AC,"066-brand-context-structured":IC,"067-threads-metadata":yC,"068-threads-branch":VC,"069-sandbox-runner-state":wC,"070-model-categories":kC,"071-default-home-agents":nC,"072-ai-provider-key-preset-id":vC,"073-backfill-basic-usage-roles":pC,"074-sandbox-runner-state-handle-nonunique":gC,"075-thread-inflight-async-jobs":qC,"076-automations-drop-agent-json":iC,"077-tier-only-model-selection":hC,"078-automation-tool-call-kind":tC,"079-strip-legacy-freestyle-vm-map-entries":oC,"080-async-research-jobs":aC,"081-async-research-jobs-result-content":rC,"082-secrets":lC,"083-thread-run-locally":eC,"084-drop-host-sandbox-rows":dC,"085-rename-runner-kind":bC,"086-thread-pins-and-vm-map-rekey":sC,"087-fix-vm-map-rekey":_K,"088-purge-cli-activate-keys":xK,"089-rename-remote-user-to-desktop":uK,"090-automation-webhook-triggers":CK,"091-organization-domains-allow-multi":KK,"092-sandbox-naming-uniformization":NK,"093-backfill-global-search-basic-usage":mK,"094-org-file-configs":zK,"095-remove-automation-tool-call-kind":EK,"096-org-file-configs-public-url-base":$K,"097-drop-local-docker-sandbox-state":JK,"098-thread-message-parts":PK,"099-run-fence":QK,"100-link-transport":XK,"101-cancel-requested-at":ZK,"102-observational-agent":WK,"103-revert-observational-agent":jK,"104-agent-sandbox-provider-kind":FK,"105-org-fs":YK,"106-automation-tools":DK,"107-org-fs-public-org":HK,"108-automation-max-agent-steps":MK,"109-thread-message-parts-per-message-seq":RK,"110-backfill-ghs-token-expiry":BK,"111-org-fs-thread-id":GK,"112-org-file-configs-credential-type":OK,"113-thread-failure-reason":SK,"114-run-acked-seq":fK,"115-thread-projected-seq":AK,"116-org-sites":IK,"117-org-file-configs-site-slug":yK,"118-organization-domains-multi-verify":VK,"119-organization-join-requests":wK,"120-org-fs-read-public":kK,"121-org-fs-share-password":nK,"122-split-web-research-tier":gK,"123-connection-credential-vault":qK,"124-drop-thread-projected-seq":iK,"125-github-child-single-parent":cK,"126-task-board":tK,"127-task-board-due-date":oK,"128-reports-only":aK,"129-task-board-assigned-by":rK,"130-task-board-thread-id":lK,"131-task-board-thread-link-cascade":eK,"132-task-board-item-prs":dK,"133-dedupe-duplicate-members":bK,"134-drop-task-board-enabled":sK,"135-task-board-item-fk-cascade":_N,"136-task-board-import-idempotency":xN,"137-agent-sandbox-runner-state":uN,"138-agent-sandbox-sessions":CN,"139-organization-billing":KN,"140-seat-change-log":NN,"141-benefits-sync-pending":mN,"142-stripe-event-watermark":TN,"143-armed-report-url":zN,"144-benefits-pending-index":EN,"145-user-model-preferences":$N,"146-organization-main-agent":UN,"147-drop-agent-sandbox-tables":JN,"148-org-flags":PN,"149-task-board-item-sort-order":QN,"150-task-board-activity":XN,"151-task-board-tags":WN,"152-repair-connection-slug":LN,"153-task-board-latest-assistant-part-index":FN,"154-task-board-qa-activity":DN,"155-task-board-review-claims":HN,"156-task-board-conflict-activity":RN,"157-drop-seat-billing":BN,"158-drop-github-child-single-parent":GN,"159-task-board-comments":ON,"160-task-quota-billing":SN,"161-task-quota-claim-state":AN,"162-claude-subscriptions":IN,"163-task-board-item-dismissed":yN,"164-per-org-task-quota":VN,"165-task-board-pending-review-index":wN,"166-task-board-last-swept-at":kN,"167-task-board-run-retry":nN,"168-org-repo-sync":pN,"169-task-board-merge-failed-activity":qN,"170-task-board-item-repo":iN,"171-jira-integration":cN,"172-task-board-item-key-seq":hN,"173-thread-github-repo-connection-index":tN,"174-thread-message-parts-persisted-at":aN,"175-task-board-sprints":rN,"176-task-board-done-sweep-index":lN,"177-notifications":eN,"178-jira-status-mapping-array":dN,"179-notification-mentioned":sN,"180-task-board-item-type":xm,"181-task-board-item-type-required":um,"182-task-board-sprints-entities":Cm,"183-drop-jira-jql-filter":Km,"184-jira-rescan-after-scope-change":Nm,"185-jira-rescan-existing-cards":mm,"186-jira-rescan-pending-flag":zm,"187-task-board-comment-thread":Em,"188-invitation-auto-accept":$m,"189-task-board-column-automations":Jm,"190-task-board-review-cycle-started-at":Pm,"191-task-board-columns":Qm,"192-task-board-verdict-nudge-activity":Zm,"193-task-board-status-column-fk":Wm,"194-jira-link-sprint":jm,"195-task-board-sprint-activity":Fm,"196-task-board-column-tracker-statuses":Ym,"197-task-board-prompts":Dm,"198-task-board-external-url":Hm,"199-drop-jira-mirror-and-org-columns":Mm,"200-jira-run-trigger":Rm,"201-organization-notices":Bm,"202-redact-base64-thread-parts":Om,"203-task-board-preview-routes":Sm,"204-git-provider-accounts-and-repositories":fm,"205-repository-references":Am,"206-repository-consumers":Qu,"207-task-board-prs-repo-idx":Pu,"208-github-connect-flows":Ju,"209-github-installation-authorization":Uu,"210-github-repository-authorization":Cu,"211-user-fs-org":uu,"212-coding-agent-mcp-excluded":Ku,"213-bitbucket-git-provider":Nu,"214-connections-sanitized-id-idx":bx,"215-commerce-discovery-repository":sx,"216-github-cli-auth":xu,"217-experiments":mu,"218-thread-message-parts-error-idx":Tu,"219-task-board-duplicate-reported-activity":Eu,"220-jira-automation-continue-pr":$u,"221-remove-private-registry":Qx,"222-org-git-credentials":Xx,"223-drop-org-main-agent-id":dx,"224-repository-sandbox-image":Zx,"225-thread-analytics-indexes":jx,"226-deco-score-names":Fx,"227-task-board-finding-resolved-activity":Dx,"228-org-voice-config":Px,"229-jira-automation-from":Hx,"230-project-sidebar":Mx,"231-jira-chat-agent":Rx,"232-task-board-prompt-skills":Gx,"233-remove-jira-chat-agent":Sx,"234-task-board-comment-audience":fx,"235-prune-empty-thread-dirs":Ax,"236-task-board-sprints":yx,"237-org-sites-project-link":Vx,"238-task-board-default-lanes":wx,"239-task-board-retire-old-lanes":kx,"240-task-board-restore-todo":nx,"241-automation-board-column-transition":vx,"242-connection-url-slug":px,"243-experiment-task-board-item":gx,"244-connection-url-slug-rollout-backfill":qx,"245-automation-system-key":ix,"246-automation-pr-ready-trigger":cx,"247-automation-jira-transition":hx,"248-drop-retired-rule-tables":tx,"249-task-board-item-project":ox,"250-github-copilot-subscriptions":ax,"251-org-shared-plans":rx,"252-automation-linked-chat-trigger":lx,"253-automation-pr-builtin-triggers":ex,"254-codex-subscriptions":$x,"255-order-monitor":Jx},Nx=IW;import{getMigrations as U9}from"better-auth/db";import{sso as J9}from"@better-auth/sso";import{organization as P9}from"@decocms/better-auth/plugins";import{admin as Q9,apiKey as X9,jwt as Z9,magicLink as W9,mcp as j9,openAPI as L9}from"better-auth/plugins";import{emailOTP as F9}from"better-auth/plugins/email-otp";import{Kysely as C9,PostgresDialect as Dz}from"kysely";import{Pool as Hz}from"pg";import{homedir as yW}from"os";var VW=new Set(["all","worker","api"]);function wW(_){let x=(_??"").trim();return VW.has(x)?x:"all"}var kW=new Set(["production","development","test"]);function nW(_){let x=(_??"").trim();return kW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function ym(_,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 ym(_,x,N)??u}function vW(_){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 pW(_,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 Im(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function gW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Pz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${yW()}/deco`,u=nW(_.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),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:ym("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:vW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:pW("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:Im(_.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:Im(_.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:gW(_.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:ym("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:wW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:Im(_.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 qW=null;function K_(){return qW??=Object.freeze(Pz(process.env))}import{createContextKey as aW,metrics as rW,propagation as D8,ROOT_CONTEXT as H8,SpanStatusCode as M8,trace as lW}from"@opentelemetry/api";import{logs as eW,SeverityNumber as Vm}from"@opentelemetry/api-logs";import{OTLPLogExporter as G8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as dW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as f8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as I8}from"@opentelemetry/instrumentation-runtime-node";import{context as Z5,propagation as W5,SpanKind as j5,SpanStatusCode as L5}from"@opentelemetry/api";var Y5=globalThis.fetch;import{ExportResultCode as y5}from"@opentelemetry/core";import{ExportResultCode as mx}from"@opentelemetry/core";import{mkdir as iW,rename as cW,writeFile as hW}from"fs/promises";import{join as Tx}from"path";class zx{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:mx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:mx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:mx.FAILED}});return Promise.resolve({code:mx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Tx(this.basePath,x,...N):Tx(this.basePath,...N);if(!this.knownDirs.has(K))await iW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=Tx(K,`.${m}.tmp`),z=Tx(K,m),E=_.join(`
|
|
2383
2383
|
`)+`
|
|
2384
|
-
`;await
|
|
2384
|
+
`;await hW(T,E,{mode:384}),await cW(T,z)}}import{ExportResultCode as v5}from"@opentelemetry/core";import{AggregationTemporality as g5,DataPointType as q5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as a5}from"@opentelemetry/core";var d5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as q8,LoggerProvider as i8}from"@opentelemetry/sdk-logs";import{detectResources as h8,envDetector as t8,hostDetector as o8,osDetector as a8,processDetector as r8,resourceFromAttributes as l8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as d8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as _8}from"@opentelemetry/api-logs";import{NodeSDK as _3}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as u3,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as N8}from"@opentelemetry/api";var bW="__d",sW=aW("Current request"),_9=1;var Xz=(_)=>{let u=new URL(_.url).searchParams.get(bW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Zz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(sW);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Xz(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 Wz{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 K3=new dW({preventServerStart:!0}),N3=new Zz(new Wz(_9));var Qz=lW.getTracer("studio","1.0.0"),M_=rW.getMeter("studio","1.0.0"),x9=eW.getLogger("studio","1.0.0"),wm=(_,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(" ");x9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},km={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{wm(Vm.ERROR,"ERROR",_),km.error(..._)};console.warn=(..._)=>{wm(Vm.WARN,"WARN",_),km.warn(..._)};console.debug=(..._)=>{wm(Vm.DEBUG,"DEBUG",_),km.debug(..._)};var nm,jz=0,vm=500;function u9(){if(nm)return;let _=performance.now()+vm;nm=setInterval(()=>{let x=performance.now();jz=Math.max(0,x-_),_=x+vm},vm),nm.unref?.()}function Lz(){return u9(),jz}var K9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Fz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Yz=400,N9=100,m9=(_)=>({"db.status":_.level==="error"?"error":"success"}),T9=(_)=>(x)=>{let u=m9(x);if(x.queryDurationMillis>Yz){let N=Lz(),K=N>Yz/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:Ex()}})}if(K9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function z9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=Ex(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Fz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>N9)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 Fz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Mz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Rz(){try{return K_().databasePgSsl}catch{return!1}}function Ex(){try{return K_().databasePoolMax}catch{return 10}}function E9(_){let x=z9(new Hz({connectionString:_,max:Ex(),ssl:Rz(),...Mz})),u=new Dz({pool:x});return{type:"postgres",db:new C9({dialect:u,log:T9(x)}),pool:x}}function B_(){return K_().databaseUrl}function Bz(_){let x=_||B_();return new Dz({pool:new Hz({connectionString:x,max:Ex(),ssl:Rz(),...Mz})})}function $9(_){let x=_||B_();return E9(x)}async function Gz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function pm(){if(!R_)R_=$9(B_());return R_}async function Oz(_){let u={database:Bz(_||B_()),plugins:[P9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),Q9(),X9(),Z9(),L9(),j9({loginPage:"/login"}),J9(),W9({sendMagicLink:async()=>{}}),F9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await U9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function gm(_,x){return(await o`
|
|
2385
2385
|
SELECT table_name FROM information_schema.tables
|
|
2386
2386
|
WHERE table_schema='public' AND table_name=${x}
|
|
2387
|
-
`.execute(_)).rows.length>0}async function
|
|
2387
|
+
`.execute(_)).rows.length>0}async function Y9(_){if(await gm(_,"plugin_migrations"))return;await o`
|
|
2388
2388
|
CREATE TABLE plugin_migrations (
|
|
2389
2389
|
plugin_id TEXT NOT NULL,
|
|
2390
2390
|
name TEXT NOT NULL,
|
|
2391
2391
|
timestamp TEXT NOT NULL,
|
|
2392
2392
|
PRIMARY KEY (plugin_id, name)
|
|
2393
2393
|
)
|
|
2394
|
-
`.execute(_)}async function
|
|
2394
|
+
`.execute(_)}async function D9(_){if(!await gm(_,"kysely_migration"))return;let x=await o`
|
|
2395
2395
|
SELECT name, timestamp FROM kysely_migration
|
|
2396
2396
|
WHERE name LIKE '%/%'
|
|
2397
2397
|
`.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`
|
|
@@ -2402,6 +2402,6 @@ var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null
|
|
|
2402
2402
|
WHERE plugin_id = ${T} AND name = ${z}
|
|
2403
2403
|
`.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${T}/${z}, keeping in old table`);continue}}await o`
|
|
2404
2404
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
2405
|
-
`.execute(_)}}async function
|
|
2405
|
+
`.execute(_)}}async function H9(_){if(!await gm(_,"kysely_migration"))return{};let{rows:x}=await o`
|
|
2406
2406
|
SELECT name FROM kysely_migration
|
|
2407
|
-
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(
|
|
2407
|
+
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Nx,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 M9(_){await Y9(_),await D9(_);let x=new Sz({db:_,provider:{getMigrations:async()=>({...await H9(_),...Nx})}}),{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 R9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Oz();let m=u??pm(),T=async()=>{if(!x&&!u)await Gz(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await M9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function w3(){let _=pm(),x=new Sz({db:_.db,provider:{getMigrations:()=>Promise.resolve(Nx)}}),{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 R9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{M9 as runKyselyMigrations,R9 as migrateToLatest,w3 as migrateDown};
|