decocms 4.358.8 → 4.358.9
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/{AlertCircle-BDGgDdnU.js → AlertCircle-DM1wOTV-.js} +1 -1
- package/dist/client/assets/{AreaChart-iCDv15_j.js → AreaChart-C5Hnj1Lj.js} +1 -1
- package/dist/client/assets/{ArrowLeft-DcYZMYcp.js → ArrowLeft-9dpHwu9-.js} +1 -1
- package/dist/client/assets/{ArrowRight-C-JKgzzW.js → ArrowRight-B-LgiGJk.js} +1 -1
- package/dist/client/assets/{ArrowUp-Xs8btF3m.js → ArrowUp-OudgxKkt.js} +1 -1
- package/dist/client/assets/{Check-Bum7-gpx.js → Check-B_YxhG30.js} +1 -1
- package/dist/client/assets/{CheckCircle-CGCTggu0.js → CheckCircle-dm6kQxSf.js} +1 -1
- package/dist/client/assets/{ChevronRight-C307yAT0.js → ChevronRight-CHv3VYgp.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-KvgVrvOl.js → ChevronSelectorVertical-DE7kv4Kd.js} +1 -1
- package/dist/client/assets/{ChevronUp-CZ5ILA-E.js → ChevronUp-t8t4fwnR.js} +1 -1
- package/dist/client/assets/{Copy01-AMwHi9CR.js → Copy01-Cka2uFEv.js} +1 -1
- package/dist/client/assets/{CreditCard01-9F1qqx5d.js → CreditCard01-BRxvnKr_.js} +1 -1
- package/dist/client/assets/{DotsVertical-BCEQFCLt.js → DotsVertical-BrftgIDe.js} +1 -1
- package/dist/client/assets/{Download01-DmH-thwp.js → Download01-ytOYmKSZ.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-HqNwclqo.js → ErrorBarContext-xi0yNR5E.js} +1 -1
- package/dist/client/assets/{Eye-C9BK0WpO.js → Eye-Cze9SkdO.js} +1 -1
- package/dist/client/assets/{GitBranch01-8UQB0WNt.js → GitBranch01-Dv92hLUV.js} +1 -1
- package/dist/client/assets/{Globe01-66hYLRXC.js → Globe01-CFZdQViA.js} +1 -1
- package/dist/client/assets/{HardDrive-B1Me-FOx.js → HardDrive-B6O4Lzvt.js} +1 -1
- package/dist/client/assets/{Image01-DVxIiG0a.js → Image01-DPhR8WEz.js} +1 -1
- package/dist/client/assets/{Key01-eG7JQJD3.js → Key01-CnMMlNjM.js} +1 -1
- package/dist/client/assets/{Link01-D-2P1k10.js → Link01-BT9hUC6n.js} +1 -1
- package/dist/client/assets/{LinkExternal01-CMl1UKVD.js → LinkExternal01-Dd9_oVMY.js} +1 -1
- package/dist/client/assets/{Monitor01-Dx2IHfNm.js → Monitor01-lCN_Uznr.js} +1 -1
- package/dist/client/assets/{Package-fd_l_BiE.js → Package-Pjoambo8.js} +1 -1
- package/dist/client/assets/{Palette-CFejZrzA.js → Palette-CPWVOo_O.js} +1 -1
- package/dist/client/assets/{Play-DWGn9jzY.js → Play-DUteIsFY.js} +1 -1
- package/dist/client/assets/{Plus-BB9moQlk.js → Plus-DsoHS1s-.js} +1 -1
- package/dist/client/assets/{SearchLg-Dx_5UJpu.js → SearchLg-DVGtsQMZ.js} +1 -1
- package/dist/client/assets/{SearchMd-DRTW6Eci.js → SearchMd-DBtIEQFG.js} +1 -1
- package/dist/client/assets/{Sector-BLukRuC0.js → Sector-B56duS3-.js} +1 -1
- package/dist/client/assets/{Settings02-CxNahSF6.js → Settings02-nB2LBjem.js} +1 -1
- package/dist/client/assets/{Share07-D21XeGjn.js → Share07-DxFaah4G.js} +1 -1
- package/dist/client/assets/{Shield01-CTgru1Go.js → Shield01-YkTEmRCE.js} +1 -1
- package/dist/client/assets/{Stars01-CEq_MKrs.js → Stars01-XqGB97Zv.js} +1 -1
- package/dist/client/assets/{Sun-BnzNJ9ph.js → Sun-Cf4BP4WB.js} +1 -1
- package/dist/client/assets/{Tool01-CuyN3PCD.js → Tool01-BfzgVlWE.js} +1 -1
- package/dist/client/assets/{Tool02-BASbnym5.js → Tool02-DJ6ebzoK.js} +1 -1
- package/dist/client/assets/{Trash01-BhSt7amx.js → Trash01-CdmAHj_X.js} +1 -1
- package/dist/client/assets/{TrendUp01-DO4mZNHN.js → TrendUp01-CbspxXI2.js} +1 -1
- package/dist/client/assets/{Upload01-BlXZHJIt.js → Upload01-Bhk_UoPj.js} +1 -1
- package/dist/client/assets/{User01-BHYLCtnk.js → User01-BkT796JC.js} +1 -1
- package/dist/client/assets/{UserSquare-B7oSdaaK.js → UserSquare-BSLxGup_.js} +1 -1
- package/dist/client/assets/{Users01-QsT1MVSH.js → Users01-Dyo9ZzPj.js} +1 -1
- package/dist/client/assets/{Users03-BwXNg2js.js → Users03-BX6ICswR.js} +1 -1
- package/dist/client/assets/{XCircle-C2-e12le.js → XCircle-CJuCeBSM.js} +1 -1
- package/dist/client/assets/{XClose-Dt5lNjhR.js → XClose-C3LO4RAn.js} +1 -1
- package/dist/client/assets/{Zap-D1eUhlLV.js → Zap-DNjSZhAl.js} +1 -1
- package/dist/client/assets/{ZoomOut-6XJtTBIm.js → ZoomOut-vW_y2VPH.js} +1 -1
- package/dist/client/assets/{access-gate-C9n3qFMJ.js → access-gate-CsjPwmbX.js} +1 -1
- package/dist/client/assets/{agent-icon-CvRN2kIe.js → agent-icon-7Ul-3CFr.js} +1 -1
- package/dist/client/assets/{agents-list-7P-FBRl3.js → agents-list-C3jwjn4u.js} +1 -1
- package/dist/client/assets/{ai-providers-C7AEeTUw.js → ai-providers-C8FU-ETD.js} +1 -1
- package/dist/client/assets/{alert-Hw0kjni-.js → alert-1SFaWtG7.js} +1 -1
- package/dist/client/assets/{alert-dialog-B99tFCPN.js → alert-dialog-KXEmr_A6.js} +1 -1
- package/dist/client/assets/{analytics-tab-B7tes2Gc.js → analytics-tab-B2s4PZqh.js} +1 -1
- package/dist/client/assets/{api-keys-Dfjx7xoL.js → api-keys-BtqlUWaN.js} +1 -1
- package/dist/client/assets/api-keys-DMaVxeam.js +1 -0
- package/dist/client/assets/{app-editor-Dc7_2kRP.js → app-editor-DfKghIRC.js} +1 -1
- package/dist/client/assets/{auth-catchall-Dv36CPjo.js → auth-catchall-DE1giVB4.js} +1 -1
- package/dist/client/assets/{auth-entry-Dzg61dx3.js → auth-entry-lo3TAtpl.js} +1 -1
- package/dist/client/assets/{auth-CA9YH-f3.js → auth-jEXOVJdJ.js} +1 -1
- package/dist/client/assets/{auth-split-layout-CP-gPGo1.js → auth-split-layout-BgmqQbTN.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-BvkyzpZN.js → authenticate-and-persist-oauth-C9jOdAvp.js} +1 -1
- package/dist/client/assets/{automation-list-row-DNckdHdK.js → automation-list-row-DvZQrXCp.js} +1 -1
- package/dist/client/assets/{automation-runs-Cam7zjTB.js → automation-runs-aPXD_uTZ.js} +1 -1
- package/dist/client/assets/{automations-CWYrhHD5.js → automations-CskLVFMr.js} +1 -1
- package/dist/client/assets/{autosend-DonDFhf5.js → autosend-mKs95JqV.js} +1 -1
- package/dist/client/assets/{avatar-eSpZRnCw.js → avatar-BPVI4atE.js} +1 -1
- package/dist/client/assets/{badge-XewurO2c.js → badge-CLI8BJXF.js} +1 -1
- package/dist/client/assets/{block-document-DXkP4s-G.js → block-document-rK9gmLgc.js} +1 -1
- package/dist/client/assets/{breadcrumb-BOorO6tz.js → breadcrumb-DzQvHKGE.js} +1 -1
- package/dist/client/assets/{buckets-BwnIpmT9.js → buckets-bSO6V5oa.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-BOGUZvpe.js → bulk-category-panel-DlgEKp--.js} +1 -1
- package/dist/client/assets/{capability-load-error-C2MVQTkh.js → capability-load-error-Ewp013Fw.js} +1 -1
- package/dist/client/assets/{cards-JFqjIjqN.js → cards-CTM_z6JU.js} +1 -1
- package/dist/client/assets/{category-editor-D5y2bsYp.js → category-editor-55W8BV7D.js} +1 -1
- package/dist/client/assets/{cdn-tab-BKnxL2B5.js → cdn-tab-DtO_62LW.js} +1 -1
- package/dist/client/assets/{chart-mE2TkzW3.js → chart-CfRLS9xT.js} +1 -1
- package/dist/client/assets/{chat-context-BoK19tyJ.js → chat-context-Cnf8ag8e.js} +1 -1
- package/dist/client/assets/{checkbox-rGQPVLlM.js → checkbox-DT8c2BIN.js} +1 -1
- package/dist/client/assets/{choose-editor-CVBix5FG.js → choose-editor-CwFAKCCH.js} +1 -1
- package/dist/client/assets/{cli-auth-success-BEN_pMrR.js → cli-auth-success-CQci1-No.js} +1 -1
- package/dist/client/assets/{client-icons-D58J4srx.js → client-icons-DcCbGBcw.js} +1 -1
- package/dist/client/assets/{collection-detail-B9CbvuqZ.js → collection-detail-DfaKMGP2.js} +1 -1
- package/dist/client/assets/{collection-display-button-BeuXG52n.js → collection-display-button-ESAZgPL0.js} +1 -1
- package/dist/client/assets/{collection-search-DmicjHft.js → collection-search-B2UtpzT2.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-DgYJhm5y.js → collection-table-wrapper-BASvvH9a.js} +1 -1
- package/dist/client/assets/{collection-tabs-C6YGoh8i.js → collection-tabs-b6io6wfY.js} +1 -1
- package/dist/client/assets/{command-C3gabQe3.js → command-CALmXOXE.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-Bnqmsl3-.js → commerce-onboarding-JQkLXz3m.js} +1 -1
- package/dist/client/assets/{connect-Q5DfFzFD.js → connect-BZsIEi1o.js} +1 -1
- package/dist/client/assets/{connect-layout-DWE0huJK.js → connect-layout-ByjvsYEz.js} +1 -1
- package/dist/client/assets/{connection-Bncsv4WN.js → connection-B7GAvn4a.js} +1 -1
- package/dist/client/assets/{connection-card-u8mXK_Ll.js → connection-card-BIzeMrZG.js} +1 -1
- package/dist/client/assets/{connection-detail-CwFWu0EH.js → connection-detail-RTSEdP1X.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-j2xch7QZ.js → connection-form-helpers-DDJ72RqH.js} +1 -1
- package/dist/client/assets/{connections-BhiGlSzc.js → connections-DKevs0dE.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-Bg1s74p9.js → create-organization-dialog-YKR8Vlp2.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-CdA-XfpC.js → decopilot-sse-pool-CciVCe4h.js} +1 -1
- package/dist/client/assets/{dialog-Cb73HT1O.js → dialog-DBF7H4cU.js} +1 -1
- package/dist/client/assets/{domain-settings-C8SUp69p.js → domain-settings-BWFxKHvI.js} +1 -1
- package/dist/client/assets/{drawer-CrnZ4v7V.js → drawer-49fZ3NcG.js} +1 -1
- package/dist/client/assets/{dropdown-menu-D5sP40Bh.js → dropdown-menu-C2_-PA0d.js} +1 -1
- package/dist/client/assets/{e2e-tab-D7wjbQ-q.js → e2e-tab-BGkU9tzm.js} +1 -1
- package/dist/client/assets/{editor-M0xQdBHV.js → editor-huY6kt2_.js} +1 -1
- package/dist/client/assets/{empty-state-CGgojVAN.js → empty-state-Cm5_JlLy.js} +1 -1
- package/dist/client/assets/{empty-state-Bq5_azuW.js → empty-state-D1sYtfoS.js} +1 -1
- package/dist/client/assets/{extract-connection-data-CtGZSOXf.js → extract-connection-data-Bc1gK_oh.js} +1 -1
- package/dist/client/assets/{file-explorer-CTNRxawe.js → file-explorer-DLXlCaB9.js} +1 -1
- package/dist/client/assets/{file-type-icon-oPj2x3Y3.js → file-type-icon-CGvcwfte.js} +1 -1
- package/dist/client/assets/{folder-icon-DA126rB1.js → folder-icon-D_jwJiQ0.js} +1 -1
- package/dist/client/assets/{form-CNnCCWV8.js → form-D5aJ2R1e.js} +1 -1
- package/dist/client/assets/{general-DzDT6Vv2.js → general-BXYUpmQg.js} +1 -1
- package/dist/client/assets/{github-icon-DuVGJXID.js → github-icon-CqsUvwtZ.js} +1 -1
- package/dist/client/assets/{hooks-CtKQL1uv.js → hooks-DpCU1UBz.js} +1 -1
- package/dist/client/assets/{index-DLFnfvCI.js → index-BB4x_gPK.js} +1 -1
- package/dist/client/assets/{index-DmMXAqxC.js → index-BbDu2xq3.js} +2 -2
- package/dist/client/assets/{index-DdHi1L3X.js → index-Bl9g0J7w.js} +1 -1
- package/dist/client/assets/{index-CLhec1d0.js → index-CmmEYCmQ.js} +1 -1
- package/dist/client/assets/{index-DMb7eqOB.js → index-DClNZMTN.js} +6 -6
- package/dist/client/assets/{index-BV8Tpaci.js → index-DFIU7OfS.js} +1 -1
- package/dist/client/assets/{index-DnBcUKLj.js → index-DLPAbVTv.js} +1 -1
- package/dist/client/assets/{index-DCVrdvYW.js → index-DTHoNV5y.js} +1 -1
- package/dist/client/assets/{index-C6UY0_k7.js → index-DYCMd9af.js} +1 -1
- package/dist/client/assets/{index-DmJNeh4D.js → index-Dp8VyMSk.js} +1 -1
- package/dist/client/assets/{index-B7H8NK5d.js → index-E9nvagxo.js} +1 -1
- package/dist/client/assets/{index-CqNk88Pi.js → index-F19mJ8_N.js} +1 -1
- package/dist/client/assets/{index-redirect-BKtKAVbY.js → index-redirect-41OhTjna.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-Dz5h94ot.js → infiniteQueryObserver-BQw5N_tk.js} +1 -1
- package/dist/client/assets/{infra-billing-CN-tK9zM.js → infra-billing-BRWmwXxq.js} +1 -1
- package/dist/client/assets/{input-CgZSXYN4.js → input-2a-tqySq.js} +1 -1
- package/dist/client/assets/{integration-icon-BGwxObnE.js → integration-icon-BY9o6bXu.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-CBjqBdax.js → invite-member-dialog-BjBLqi6k.js} +1 -1
- package/dist/client/assets/{label-C_Rf5I6_.js → label-Bw3LAQ_7.js} +1 -1
- package/dist/client/assets/{layout-O0yDVNRV.js → layout-UTo5bLEd.js} +1 -1
- package/dist/client/assets/{login-dKW57zF9.js → login-BMF-G7K6.js} +1 -1
- package/dist/client/assets/{markdown-BKkWa5ul.js → markdown-DUDS1ORg.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-BV6YR8SP.js → mcp-app-renderer-D7KTrdiy.js} +1 -1
- package/dist/client/assets/{mcp-oauth-CoSFRw9a.js → mcp-oauth-DjBAF6Mn.js} +1 -1
- package/dist/client/assets/{members-C_HRSlhu.js → members-EfhqjbXN.js} +1 -1
- package/dist/client/assets/{monaco-editor-BtpiUfB5.js → monaco-editor-CQBFoghF.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-Bdfr5UQN.js → monitoring-stats-row-ddTONEb4.js} +1 -1
- package/dist/client/assets/{multi-select-DJ-Hbkxa.js → multi-select-Ctpcz_8m.js} +1 -1
- package/dist/client/assets/{oauth-callback-s1eKXd1l.js → oauth-callback-K9qYFmrD.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-BTo8Dyys.js → oauth-callback-ai-provider-CtAl4uAr.js} +1 -1
- package/dist/client/assets/{onboarding-Bnp9L2J4.js → onboarding-xfLGSHPu.js} +1 -1
- package/dist/client/assets/{org-layout-CVOWyCRt.js → org-layout-XNRDbDzA.js} +1 -1
- package/dist/client/assets/{organization-choice-CsoNwB5T.js → organization-choice-Crsdzh3H.js} +1 -1
- package/dist/client/assets/{orgs-C_WFB3ks.js → orgs-xS8UVNgJ.js} +1 -1
- package/dist/client/assets/{page-seo-form-D3PfSoRb.js → page-seo-form-zl8f_p5D.js} +1 -1
- package/dist/client/assets/{popover-Da7smhdB.js → popover-VJSdSyV6.js} +1 -1
- package/dist/client/assets/{post-calendar-BafS84ox.js → post-calendar-BhIz7N7-.js} +1 -1
- package/dist/client/assets/{post-editor-A7Y4rsBW.js → post-editor-DbAORW9R.js} +1 -1
- package/dist/client/assets/{primitives-B6oOpGSj.js → primitives-CYgZUNfX.js} +1 -1
- package/dist/client/assets/{profile-BmlhR-8h.js → profile-eYQPOj60.js} +1 -1
- package/dist/client/assets/{project-app-view-BEgtCKq4.js → project-app-view-voAX5XmM.js} +1 -1
- package/dist/client/assets/{project-icon-D745WVE6.js → project-icon-CmWzfvVM.js} +1 -1
- package/dist/client/assets/{prompts-RnqO9xa8.js → prompts-BpFmw-L7.js} +1 -1
- package/dist/client/assets/record-editor-zneDMAxr.js +1 -0
- package/dist/client/assets/redirect-editor-C7D2vad7.js +1 -0
- package/dist/client/assets/registry-BWLPQoOd.js +2 -0
- package/dist/client/assets/{registry-layout-D8JQlcrg.js → registry-layout-CdVDyJvL.js} +1 -1
- package/dist/client/assets/{reports-BRPdFcRT.js → reports-BslOEc6P.js} +1 -1
- package/dist/client/assets/{repositories-BOf2hJSY.js → repositories-tRDlN6-J.js} +1 -1
- package/dist/client/assets/{repository-import-picker-2oY7vjq9.js → repository-import-picker-CSbM9sb0.js} +1 -1
- package/dist/client/assets/{repository-picker--o_9En2b.js → repository-picker-BNZ7b3Oi.js} +1 -1
- package/dist/client/assets/{require-capability-rulhqizd.js → require-capability-CmB8qaJ4.js} +1 -1
- package/dist/client/assets/{required-auth-layout-QwpJ5qZ8.js → required-auth-layout-BhMyFWdP.js} +1 -1
- package/dist/client/assets/{reset-password-CAwnTD8T.js → reset-password-D0uP8U49.js} +1 -1
- package/dist/client/assets/{review-settings-C-5ihZ_2.js → review-settings-CnMZFUWw.js} +1 -1
- package/dist/client/assets/{roles-DviSZSJQ.js → roles-CC20KgEl.js} +1 -1
- package/dist/client/assets/{schema-CSGmlZMm.js → schema-BCMlOSyV.js} +1 -1
- package/dist/client/assets/{scroll-area-BhnxS9kb.js → scroll-area-C4BXuFg6.js} +1 -1
- package/dist/client/assets/{search-input-BCcfzUeH.js → search-input-Dg-G_3ZW.js} +1 -1
- package/dist/client/assets/{secrets-CMYZfMLJ.js → secrets-Tw7wlLs8.js} +1 -1
- package/dist/client/assets/{sections-editor-C7DU0S-p.js → sections-editor-DN1UJdxb.js} +1 -1
- package/dist/client/assets/{select-DQCnroeo.js → select-FSMMPzsI.js} +1 -1
- package/dist/client/assets/{select-model-B6qnse1n.js → select-model-BnRpD5qa.js} +1 -1
- package/dist/client/assets/{self-tool-result-XF_UID6C.js → self-tool-result-D79dnlsl.js} +1 -1
- package/dist/client/assets/{seo-editor-IqwFAmtD.js → seo-editor-DgD5pi5-.js} +1 -1
- package/dist/client/assets/settings-layout-BM_T9cjW.js +1 -0
- package/dist/client/assets/{settings-sidebar-zCLDCwg0.js → settings-sidebar-VshDUdHD.js} +1 -1
- package/dist/client/assets/{shell-controls-C61EWaK-.js → shell-controls-CeFoLZda.js} +1 -1
- package/dist/client/assets/{shell-layout-km320KvY.js → shell-layout-CjwLOLgP.js} +1 -1
- package/dist/client/assets/{skill-preview-3aJvIC4k.js → skill-preview-BV5FFdjf.js} +1 -1
- package/dist/client/assets/{skills--2BPNJVe.js → skills-_3m8uTz-.js} +1 -1
- package/dist/client/assets/{sso-BsKl-6Al.js → sso--7F-_CVe.js} +1 -1
- package/dist/client/assets/{store-BaCcJ63F.js → store-R-M6rYbT.js} +1 -1
- package/dist/client/assets/store-registry-CikLmiwt.js +2 -0
- package/dist/client/assets/{switch-QikprZ0C.js → switch-skcieNrk.js} +1 -1
- package/dist/client/assets/{synced-repos-vqYxShY1.js → synced-repos-C_Jq3kxm.js} +1 -1
- package/dist/client/assets/{table-DZ15ysLv.js → table-B5Vs3GY1.js} +1 -1
- package/dist/client/assets/{tabs-Cq_qXG8d.js → tabs-BES7zN53.js} +1 -1
- package/dist/client/assets/{task-board-CpzOUqzD.js → task-board-ztfxGGkb.js} +1 -1
- package/dist/client/assets/{task-route-C97W4nQK.js → task-route-BnxI9DH0.js} +1 -1
- package/dist/client/assets/{tasks-Cj4SpjUW.js → tasks-D47DMyGg.js} +1 -1
- package/dist/client/assets/{textarea-DYMqdBZW.js → textarea-CLacFrbn.js} +1 -1
- package/dist/client/assets/{thread-intent-tfoIKTGL.js → thread-intent-CMg782e5.js} +1 -1
- package/dist/client/assets/{thread-route-C9DY5m1F.js → thread-route-YcEgAyO3.js} +1 -1
- package/dist/client/assets/{toggle-group-C7s16zsy.js → toggle-group-D-1pHmtF.js} +1 -1
- package/dist/client/assets/{toolbar-DsbPhHR2.js → toolbar-CQH-_Amz.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-4cTuMznu.js → toolbar-icon-button-DstnJ2VV.js} +1 -1
- package/dist/client/assets/{track-Dp42ADCp.js → track-DSESTI7a.js} +1 -1
- package/dist/client/assets/{types-C1-e4QHU.js → types-DejsVxb8.js} +1 -1
- package/dist/client/assets/{use-ai-providers-D0MFnnnJ.js → use-ai-providers-B7KRAXK1.js} +1 -1
- package/dist/client/assets/{use-automations-Bxct96j5.js → use-automations-BdYWhhm1.js} +1 -1
- package/dist/client/assets/{use-autosave-Cf6m0nb3.js → use-autosave-CL8XjGub.js} +1 -1
- package/dist/client/assets/{use-connection-BL1yhZNp.js → use-connection-C2nO_AVv.js} +1 -1
- package/dist/client/assets/{use-copy-BpfelOsR.js → use-copy-BBc3d83z.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-DEgqlG_P.js → use-create-virtual-mcp-C6aRNtOe.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-Cz3dTPVf.js → use-date-fns-locale-wkJRogd2.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-17VyC1_9.js → use-debounced-autosave-Li8rNiA_.js} +1 -1
- package/dist/client/assets/{use-debounced-value-3lIFyc-B.js → use-debounced-value-DSll33a0.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-CfnA_2wd.js → use-decopilot-events-BRjyeJJo.js} +1 -1
- package/dist/client/assets/{use-delete-connection-CC4DEP5M.js → use-delete-connection-GnyECS3l.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-fCU-735J.js → use-deployment-admin-D2Td-HJz.js} +1 -1
- package/dist/client/assets/{use-destination-route-B73D_eIZ.js → use-destination-route-UJWTmz4J.js} +1 -1
- package/dist/client/assets/{use-file-configs-DbiVAtd9.js → use-file-configs-Cw4K3Ikl.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-CGrWQV9m.js → use-infinite-scroll-ClPXgDIl.js} +1 -1
- package/dist/client/assets/{use-join-requests-IU_EaGLg.js → use-join-requests-CHTNpd-L.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-23LCqBdd.js → use-mcp-auth-status-CW1JSYmQ.js} +1 -1
- package/dist/client/assets/{use-mcp-client-Dc7ilQkt.js → use-mcp-client-BPlXnENu.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-DIloFBQg.js → use-mcp-prompts-D5jv-rPf.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-yVPLqbTC.js → use-mcp-tools-Dfar9HaU.js} +1 -1
- package/dist/client/assets/{use-members-B-wX7jR_.js → use-members-BeBhwrLZ.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-DC_OOIzX.js → use-navigate-to-agent-874sGcUI.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-CReY2uqU.js → use-org-auth-client-CbGygSUB.js} +1 -1
- package/dist/client/assets/{use-org-notice-DyChybv5.js → use-org-notice-Dw__a7L-.js} +1 -1
- package/dist/client/assets/{use-org-sso-Dg6nqD1f.js → use-org-sso-BHwfvM7l.js} +1 -1
- package/dist/client/assets/{use-organization-roles-C55Ep3O6.js → use-organization-roles-wkqRpeS-.js} +1 -1
- package/dist/client/assets/{use-organization-settings-CwqtDA4J.js → use-organization-settings-B59Uxf99.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-DEpXw5wF.js → use-panel-navigate-BSB806-r.js} +1 -1
- package/dist/client/assets/{use-registry-connections-B2DiSYUv.js → use-registry-connections-C3vf-j5B.js} +1 -1
- package/dist/client/assets/{use-secrets-CXHV-_4u.js → use-secrets-DFq1lqOb.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-D6hQ90tl.js → use-section-preview-base-BIWaaxNi.js} +1 -1
- package/dist/client/assets/{use-status-sounds-BElO3PMV.js → use-status-sounds-cvKo7fIi.js} +1 -1
- package/dist/client/assets/{use-tags-DZUN-1Ut.js → use-tags-WgYTilH4.js} +1 -1
- package/dist/client/assets/{use-view-mode-B3NLddU0.js → use-view-mode-CcItG9tS.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-CQsLZfmK.js → use-virtual-mcp-DaOGpnoF.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-DHse_DiU.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-DnuTSRTu.js +1 -0
- package/dist/client/assets/{users-Bug3AdLE.js → users-0Elt2Qa1.js} +1 -1
- package/dist/client/assets/{variant-calendar-C3HqmQB-.js → variant-calendar-CAmxdOVL.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-8QAhZAUM.js → view-mode-toggle-fkLwhK4U.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +568 -568
- package/dist/server/migrate.js +168 -168
- package/dist/server/server.js +363 -363
- package/package.json +1 -1
- package/dist/client/assets/api-keys-CNyKDa-z.js +0 -1
- package/dist/client/assets/record-editor-B29B1sLg.js +0 -1
- package/dist/client/assets/redirect-editor-VT1SstB-.js +0 -1
- package/dist/client/assets/registry-C5al6BLo.js +0 -2
- package/dist/client/assets/settings-layout-CU40hjbA.js +0 -1
- package/dist/client/assets/store-registry-DQqHtnqc.js +0 -2
- package/dist/client/assets/useInfiniteQuery-DvifJ2DA.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DL3cGDzg.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null,x)}var m=(_,x)=>{for(var u in x)oN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:rN.bind(x,u)})};import{Migrator as cN,sql as a}from"kysely";var t_={};m(t_,{up:()=>eN,down:()=>lN});import{sql as FT}from"kysely";async function eN(_){await FT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function lN(_){await FT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var v_={};m(v_,{up:()=>dN,down:()=>sN});import{sql as RT}from"kysely";async function dN(_){await RT`
|
|
3
3
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
4
4
|
SELECT
|
|
5
5
|
'org_user_fs',
|
|
@@ -13,9 +13,9 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
13
13
|
END,
|
|
14
14
|
now()
|
|
15
15
|
ON CONFLICT (id) DO NOTHING
|
|
16
|
-
`.execute(_)}async function
|
|
16
|
+
`.execute(_)}async function sN(_){await RT`
|
|
17
17
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
18
|
-
`.execute(_)}var
|
|
18
|
+
`.execute(_)}var q_={};m(q_,{up:()=>bN,down:()=>_K});async function bN(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function _K(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var g_={};m(g_,{up:()=>xK,down:()=>uK});async function xK(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function uK(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var c_={};m(c_,{up:()=>CK,down:()=>TK});import{sql as r}from"kysely";var mK=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function YT(_,x){for(let{table:u,column:T}of mK){let C=`${u}_${T}_check`,N=x.map((E)=>`'${E}'`).join(", ");await r.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await r.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${T} IN (${N}))`).execute(_)}}async function CK(_){await YT(_,["github","gitlab","bitbucket"])}async function TK(_){await r`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await r`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await r`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await YT(_,["github","gitlab"])}var h_={};m(h_,{up:()=>NK,down:()=>KK});async function NK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function KK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var o_={};m(o_,{up:()=>zK,down:()=>PK});import{sql as EK}from"kysely";async function zK(_){await EK`
|
|
19
19
|
CREATE TABLE github_connect_flows (
|
|
20
20
|
id text PRIMARY KEY,
|
|
21
21
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -25,7 +25,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
25
25
|
);
|
|
26
26
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
27
27
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
28
|
-
`.execute(_)}async function
|
|
28
|
+
`.execute(_)}async function PK(_){await _.schema.dropTable("github_connect_flows").execute()}var a_={};m(a_,{up:()=>$K,down:()=>UK});async function $K(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function UK(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var r_={};m(r_,{up:()=>JK,down:()=>XK});import{sql as P_}from"kysely";async function JK(_){await P_`
|
|
29
29
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
30
30
|
DECLARE
|
|
31
31
|
metadata_json jsonb;
|
|
@@ -81,19 +81,19 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
81
81
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
82
82
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
83
83
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
84
|
-
`.execute(_)}async function PN(_){await P_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await P_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var r_={};m(r_,{up:()=>$N,down:()=>UN});import{sql as M}from"kysely";async function $N(_){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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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(M`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(M`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(M`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(M`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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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 UN(_){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 e_={};m(e_,{up:()=>JN,down:()=>XN});import{sql as RT}from"kysely";async function JN(_){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(RT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(RT`CURRENT_TIMESTAMP`)).execute()}async function XN(_){await _.schema.dropTable("organization_settings").execute()}var l_={};m(l_,{up:()=>jN,down:()=>QN});async function jN(_){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 QN(_){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 d_={};m(d_,{up:()=>WN,down:()=>ZN});async function WN(_){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 ZN(_){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 s_={};m(s_,{up:()=>LN,down:()=>DN});async function LN(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function DN(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var b_={};m(b_,{up:()=>RN,down:()=>YN});import{sql as FN}from"kysely";async function RN(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",FN`text`).execute()}async function YN(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var _x={};m(_x,{up:()=>HN,down:()=>MN});async function HN(_){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 MN(_){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 xx={};m(xx,{up:()=>BN,down:()=>GN});import{sql as e}from"kysely";async function BN(_){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(e`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(e`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(e`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(e`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(e`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 GN(_){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 ux={};m(ux,{up:()=>fN,down:()=>ON});import{sql as yN}from"kysely";async function fN(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function ON(_){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(yN`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var mx={};m(mx,{up:()=>nN,down:()=>AN});import{sql as $_}from"kysely";async function nN(_){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($_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo($_`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($_`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 $_`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 AN(_){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 Cx={};m(Cx,{up:()=>SN,down:()=>IN});async function SN(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function IN(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Tx={};m(Tx,{up:()=>wN,down:()=>VN});import{sql as U_}from"kysely";async function wN(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await U_`
|
|
84
|
+
`.execute(_)}async function XK(_){await P_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await P_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var e_={};m(e_,{up:()=>QK,down:()=>jK});import{sql as M}from"kysely";async function QK(_){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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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(M`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(M`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(M`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(M`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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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 jK(_){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 l_={};m(l_,{up:()=>WK,down:()=>ZK});import{sql as HT}from"kysely";async function WK(_){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(HT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(HT`CURRENT_TIMESTAMP`)).execute()}async function ZK(_){await _.schema.dropTable("organization_settings").execute()}var d_={};m(d_,{up:()=>LK,down:()=>DK});async function LK(_){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 DK(_){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 s_={};m(s_,{up:()=>FK,down:()=>RK});async function FK(_){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 RK(_){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 b_={};m(b_,{up:()=>YK,down:()=>HK});async function YK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function HK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var _x={};m(_x,{up:()=>nK,down:()=>BK});import{sql as MK}from"kysely";async function nK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",MK`text`).execute()}async function BK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var xx={};m(xx,{up:()=>GK,down:()=>yK});async function GK(_){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 yK(_){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 ux={};m(ux,{up:()=>fK,down:()=>OK});import{sql as e}from"kysely";async function fK(_){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(e`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(e`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(e`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(e`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(e`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 OK(_){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 mx={};m(mx,{up:()=>SK,down:()=>IK});import{sql as AK}from"kysely";async function SK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function IK(_){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(AK`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 Cx={};m(Cx,{up:()=>wK,down:()=>VK});import{sql as $_}from"kysely";async function wK(_){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($_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo($_`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($_`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 $_`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 VK(_){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 Tx={};m(Tx,{up:()=>kK,down:()=>pK});async function kK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function pK(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Nx={};m(Nx,{up:()=>iK,down:()=>tK});import{sql as U_}from"kysely";async function iK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await U_`
|
|
85
85
|
UPDATE gateways
|
|
86
86
|
SET tool_selection_mode = CASE
|
|
87
87
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
88
88
|
ELSE 'inclusion'
|
|
89
89
|
END
|
|
90
|
-
`.execute(_),await U_`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
|
|
90
|
+
`.execute(_),await U_`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 tK(_){await U_`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 U_`
|
|
91
91
|
UPDATE gateways
|
|
92
92
|
SET tool_selection_strategy = CASE
|
|
93
93
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
94
94
|
ELSE NULL
|
|
95
95
|
END
|
|
96
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Kx={};m(Kx,{up:()=>
|
|
96
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Kx={};m(Kx,{up:()=>vK,down:()=>qK});async function vK(_){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 qK(_){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 Ex={};m(Ex,{up:()=>gK,down:()=>cK});async function gK(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function cK(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var zx={};m(zx,{up:()=>hK,down:()=>oK});async function hK(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function oK(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Px={};m(Px,{up:()=>aK,down:()=>rK});async function aK(_){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 rK(_){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 $x={};m($x,{up:()=>lK,down:()=>dK});import{sql as eK}from"kysely";async function lK(_){await eK`
|
|
97
97
|
DELETE FROM downstream_tokens
|
|
98
98
|
WHERE id NOT IN (
|
|
99
99
|
SELECT id FROM (
|
|
@@ -103,7 +103,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
103
103
|
) ranked
|
|
104
104
|
WHERE rn = 1
|
|
105
105
|
)
|
|
106
|
-
`.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
|
|
106
|
+
`.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 dK(_){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 Ux={};m(Ux,{up:()=>sK,down:()=>bK});async function sK(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function bK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Jx={};m(Jx,{up:()=>_E,down:()=>xE});import{sql as MT}from"kysely";async function _E(_){await MT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function xE(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await MT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Xx={};m(Xx,{up:()=>uE,down:()=>mE});async function uE(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function mE(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Qx={};m(Qx,{up:()=>CE,down:()=>TE});import{sql as J_}from"kysely";async function CE(_){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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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 TE(_){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 jx={};m(jx,{up:()=>NE,down:()=>KE});async function NE(_){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 KE(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var Wx={};m(Wx,{up:()=>EE,down:()=>zE});async function EE(_){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 zE(_){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 Zx={};m(Zx,{up:()=>PE,down:()=>$E});import{sql as W}from"kysely";async function PE(_){await W`
|
|
107
107
|
INSERT INTO connections (
|
|
108
108
|
id,
|
|
109
109
|
organization_id,
|
|
@@ -150,7 +150,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
150
150
|
created_at,
|
|
151
151
|
updated_at
|
|
152
152
|
FROM virtual_mcps
|
|
153
|
-
`.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 W`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await W`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 W`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await W`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
|
|
153
|
+
`.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 W`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await W`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 W`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await W`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 $E(_){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(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 W`
|
|
154
154
|
INSERT INTO virtual_mcps (
|
|
155
155
|
id, organization_id, title, description, icon, status,
|
|
156
156
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -160,7 +160,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
160
160
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
161
161
|
FROM connections
|
|
162
162
|
WHERE connection_type = 'VIRTUAL'
|
|
163
|
-
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await W`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var
|
|
163
|
+
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await W`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var Lx={};m(Lx,{up:()=>UE,down:()=>JE});async function UE(_){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 JE(_){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 Dx={};m(Dx,{up:()=>XE,down:()=>QE});import{sql as n}from"kysely";async function XE(_){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(n`CURRENT_TIMESTAMP`)).execute(),await n`
|
|
164
164
|
INSERT INTO connection_aggregations_new (
|
|
165
165
|
id, parent_connection_id, child_connection_id,
|
|
166
166
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -169,7 +169,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
169
169
|
id, parent_connection_id, child_connection_id,
|
|
170
170
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
171
171
|
FROM connection_aggregations
|
|
172
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await
|
|
172
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await n`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await n`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await n`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 QE(_){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(n`CURRENT_TIMESTAMP`)).execute(),await n`
|
|
173
173
|
INSERT INTO connection_aggregations_new (
|
|
174
174
|
id, parent_connection_id, child_connection_id,
|
|
175
175
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -178,7 +178,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
178
178
|
id, parent_connection_id, child_connection_id,
|
|
179
179
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
180
180
|
FROM connection_aggregations
|
|
181
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await
|
|
181
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await n`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await n`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await n`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 Rx={};m(Rx,{up:()=>jE,down:()=>WE});import{sql as Fx}from"kysely";async function jE(_){await Fx`
|
|
182
182
|
UPDATE connections
|
|
183
183
|
SET connection_url = connection_url || '/management',
|
|
184
184
|
tools = NULL,
|
|
@@ -186,42 +186,42 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
186
186
|
WHERE connection_url LIKE '%/mcp'
|
|
187
187
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
188
188
|
AND app_name = '@deco/management-mcp'
|
|
189
|
-
`.execute(_),await
|
|
189
|
+
`.execute(_),await Fx`
|
|
190
190
|
UPDATE connections
|
|
191
191
|
SET tools = NULL,
|
|
192
192
|
updated_at = CURRENT_TIMESTAMP
|
|
193
193
|
WHERE app_name = '@deco/management-mcp'
|
|
194
194
|
AND tools IS NOT NULL
|
|
195
|
-
`.execute(_)}async function
|
|
195
|
+
`.execute(_)}async function WE(_){await Fx`
|
|
196
196
|
UPDATE connections
|
|
197
197
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
198
198
|
updated_at = CURRENT_TIMESTAMP
|
|
199
199
|
WHERE connection_url LIKE '%/mcp/management'
|
|
200
200
|
AND app_name = '@deco/management-mcp'
|
|
201
|
-
`.execute(_)}var
|
|
201
|
+
`.execute(_)}var Hx={};m(Hx,{up:()=>ZE,down:()=>LE});import{sql as Yx}from"kysely";async function ZE(_){await Yx`
|
|
202
202
|
UPDATE connections
|
|
203
203
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
204
204
|
tools = NULL,
|
|
205
205
|
updated_at = CURRENT_TIMESTAMP
|
|
206
206
|
WHERE connection_url LIKE '%/mcp/management'
|
|
207
207
|
AND app_name = '@deco/management-mcp'
|
|
208
|
-
`.execute(_),await
|
|
208
|
+
`.execute(_),await Yx`
|
|
209
209
|
UPDATE connections
|
|
210
210
|
SET tools = NULL,
|
|
211
211
|
updated_at = CURRENT_TIMESTAMP
|
|
212
212
|
WHERE connection_url LIKE '%/mcp/self'
|
|
213
213
|
AND app_name = '@deco/management-mcp'
|
|
214
214
|
AND tools IS NOT NULL
|
|
215
|
-
`.execute(_)}async function
|
|
215
|
+
`.execute(_)}async function LE(_){await Yx`
|
|
216
216
|
UPDATE connections
|
|
217
217
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
218
218
|
updated_at = CURRENT_TIMESTAMP
|
|
219
219
|
WHERE connection_url LIKE '%/mcp/self'
|
|
220
220
|
AND app_name = '@deco/management-mcp'
|
|
221
|
-
`.execute(_)}var
|
|
221
|
+
`.execute(_)}var Mx={};m(Mx,{up:()=>DE,down:()=>FE});async function DE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function FE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var nx={};m(nx,{up:()=>RE,down:()=>YE});import{sql as nT}from"kysely";async function RE(_){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(nT`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(nT`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 YE(_){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 Bx={};m(Bx,{up:()=>HE,down:()=>ME});import{sql as l}from"kysely";async function HE(_){await l`
|
|
222
222
|
ALTER TABLE connection_aggregations
|
|
223
223
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
224
|
-
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function
|
|
224
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function ME(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await l`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await l`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(l`CURRENT_TIMESTAMP`)).execute(),await l`
|
|
225
225
|
INSERT INTO connection_aggregations_new (
|
|
226
226
|
id, parent_connection_id, child_connection_id,
|
|
227
227
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -230,42 +230,42 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
230
230
|
id, parent_connection_id, child_connection_id,
|
|
231
231
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
232
232
|
FROM connection_aggregations
|
|
233
|
-
`.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 Gx={};m(Gx,{up:()=>
|
|
233
|
+
`.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 Gx={};m(Gx,{up:()=>fE,down:()=>OE});import{webcrypto as GT}from"crypto";var BT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var nE=128,w,k;function BE(_){if(!w||w.length<_)w=Buffer.allocUnsafe(_*nE),GT.getRandomValues(w),k=0;else if(k+_>w.length)GT.getRandomValues(w),k=0;k+=_}function p(_=21){BE(_|=0);let x="";for(let u=k-_;u<k;u++)x+=BT[w[u]&63];return x}var GE="org-admin",yE="Organization Admin";async function fE(_){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 T=new Date().toISOString(),C=`proj_${p()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:GE,name:yE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function OE(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var yx={};m(yx,{up:()=>AE,down:()=>SE});async function AE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function SE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var fx={};m(fx,{up:()=>IE,down:()=>wE});async function IE(_){}async function wE(_){}var Ox={};m(Ox,{up:()=>VE,down:()=>kE});async function VE(_){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 kE(_){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 Ax={};m(Ax,{up:()=>pE,down:()=>iE});import{sql as yT}from"kysely";async function pE(_){await yT`
|
|
234
234
|
UPDATE connections
|
|
235
235
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
236
236
|
tools = NULL,
|
|
237
237
|
updated_at = CURRENT_TIMESTAMP
|
|
238
238
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
239
239
|
AND app_name = 'deco-registry'
|
|
240
|
-
`.execute(_)}async function
|
|
240
|
+
`.execute(_)}async function iE(_){await yT`
|
|
241
241
|
UPDATE connections
|
|
242
242
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
243
243
|
updated_at = CURRENT_TIMESTAMP
|
|
244
244
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
245
245
|
AND app_name = 'deco-registry'
|
|
246
|
-
`.execute(_)}var
|
|
246
|
+
`.execute(_)}var Sx={};m(Sx,{up:()=>vE,down:()=>qE});import{sql as tE}from"kysely";async function vE(_){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(tE`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 qE(_){await _.schema.dropTable("ai_provider_keys").execute()}var Ix={};m(Ix,{up:()=>cE,down:()=>hE});import{sql as gE}from"kysely";async function cE(_){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(gE`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function hE(_){await _.schema.dropTable("oauth_pkce_states").execute()}var wx={};m(wx,{up:()=>oE,down:()=>aE});import{sql as O}from"kysely";async function oE(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(O`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(O`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(O`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(O`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(O`CURRENT_TIMESTAMP`)).execute(),await O`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await O`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await O`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 aE(_){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 Vx={};m(Vx,{up:()=>rE,down:()=>eE});async function rE(_){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 eE(_){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 kx={};m(kx,{up:()=>lE,down:()=>dE});async function lE(_){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 dE(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var px={};m(px,{up:()=>sE,down:()=>bE});import{sql as fT}from"kysely";async function sE(_){await fT`
|
|
247
247
|
UPDATE connections
|
|
248
248
|
SET title = 'CMS MCP',
|
|
249
249
|
tools = NULL,
|
|
250
250
|
updated_at = CURRENT_TIMESTAMP
|
|
251
251
|
WHERE app_name = '@deco/management-mcp'
|
|
252
|
-
`.execute(_)}async function
|
|
252
|
+
`.execute(_)}async function bE(_){await fT`
|
|
253
253
|
UPDATE connections
|
|
254
254
|
SET title = 'Mesh MCP',
|
|
255
255
|
updated_at = CURRENT_TIMESTAMP
|
|
256
256
|
WHERE app_name = '@deco/management-mcp'
|
|
257
|
-
`.execute(_)}var
|
|
257
|
+
`.execute(_)}var ix={};m(ix,{up:()=>_z,down:()=>xz});import{sql as OT}from"kysely";async function _z(_){await OT`
|
|
258
258
|
UPDATE connections
|
|
259
259
|
SET title = 'Deco CMS',
|
|
260
260
|
tools = NULL,
|
|
261
261
|
updated_at = CURRENT_TIMESTAMP
|
|
262
262
|
WHERE app_name = '@deco/management-mcp'
|
|
263
|
-
`.execute(_)}async function
|
|
263
|
+
`.execute(_)}async function xz(_){await OT`
|
|
264
264
|
UPDATE connections
|
|
265
265
|
SET title = 'CMS MCP',
|
|
266
266
|
updated_at = CURRENT_TIMESTAMP
|
|
267
267
|
WHERE app_name = '@deco/management-mcp'
|
|
268
|
-
`.execute(_)}var
|
|
268
|
+
`.execute(_)}var tx={};m(tx,{up:()=>uz,down:()=>mz});async function uz(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function mz(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var vx={};m(vx,{up:()=>Cz,down:()=>Tz});async function Cz(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function Tz(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var gx={};m(gx,{up:()=>Nz,down:()=>Kz});import{sql as qx}from"kysely";async function Nz(_){await qx`
|
|
269
269
|
UPDATE organization_settings
|
|
270
270
|
SET enabled_plugins = (
|
|
271
271
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -274,7 +274,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
274
274
|
)
|
|
275
275
|
WHERE enabled_plugins IS NOT NULL
|
|
276
276
|
AND enabled_plugins LIKE '%object-storage%'
|
|
277
|
-
`.execute(_),await
|
|
277
|
+
`.execute(_),await qx`
|
|
278
278
|
UPDATE projects
|
|
279
279
|
SET enabled_plugins = (
|
|
280
280
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -283,28 +283,28 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
283
283
|
)
|
|
284
284
|
WHERE enabled_plugins IS NOT NULL
|
|
285
285
|
AND enabled_plugins LIKE '%object-storage%'
|
|
286
|
-
`.execute(_),await
|
|
286
|
+
`.execute(_),await qx`
|
|
287
287
|
DELETE FROM project_plugin_configs
|
|
288
288
|
WHERE plugin_id = 'object-storage'
|
|
289
|
-
`.execute(_)}async function
|
|
289
|
+
`.execute(_)}async function Kz(_){}var cx={};m(cx,{up:()=>Ez,down:()=>zz});import{sql as AT}from"kysely";async function Ez(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await AT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function zz(_){await AT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var ox={};m(ox,{up:()=>Pz,down:()=>$z});import{sql as hx}from"kysely";async function Pz(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await hx`
|
|
290
290
|
ALTER TABLE connections
|
|
291
291
|
ADD CONSTRAINT chk_connections_subtype
|
|
292
292
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
293
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
293
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await hx`
|
|
294
294
|
UPDATE connections
|
|
295
295
|
SET subtype = 'agent'
|
|
296
296
|
WHERE connection_type = 'VIRTUAL'
|
|
297
|
-
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(
|
|
297
|
+
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(K)=>K.primaryKey()).addColumn("virtual_mcp_id","text",(K)=>K.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(K)=>K.notNull()).addColumn("connection_id","text",(K)=>K.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),T=new Map;for(let K of u)T.set(K.organizationId,K.userId);let C=new Map;for(let K of x){let z=`vir_${p()}`;C.set(K.id,z);let $=K.ui?JSON.parse(K.ui):null,U=JSON.stringify({enabled_plugins:K.enabled_plugins?JSON.parse(K.enabled_plugins):null,ui:$,migrated_from_project:K.id,migrated_project_slug:K.slug}),j=T.get(K.organization_id);if(!j)continue;await _.insertInto("connections").values({id:z,organization_id:K.organization_id,created_by:j,updated_by:null,title:K.name,description:K.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${z}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:K.created_at,updated_at:K.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let K of N){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${p()}`,parent_connection_id:z,child_connection_id:K.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:K.created_at}).onConflict(($)=>$.doNothing()).execute()}let E=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let K of E){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${p()}`,virtual_mcp_id:z,plugin_id:K.plugin_id,connection_id:K.connection_id,settings:K.settings,created_at:K.created_at,updated_at:K.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function $z(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await hx`
|
|
298
298
|
ALTER TABLE connections
|
|
299
299
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
300
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
300
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var ax={};m(ax,{up:()=>Jz,down:()=>Xz});import{sql as Uz}from"kysely";async function Jz(_){await Uz`
|
|
301
301
|
DELETE FROM connections
|
|
302
302
|
WHERE connection_type = 'VIRTUAL'
|
|
303
303
|
AND subtype = 'project'
|
|
304
304
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
305
|
-
`.execute(_)}async function
|
|
305
|
+
`.execute(_)}async function Xz(_){}var rx={};m(rx,{up:()=>jz,down:()=>Wz});import{sql as Qz}from"kysely";async function jz(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await Qz`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function Wz(_){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 lx={};m(lx,{up:()=>Zz,down:()=>Lz});import{sql as ex}from"kysely";async function Zz(_){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(ex`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(ex`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(ex`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 Lz(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var dx={};m(dx,{up:()=>Dz,down:()=>Fz});async function Dz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function Fz(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var sx={};m(sx,{up:()=>Rz,down:()=>Yz});async function Rz(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function Yz(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var _u={};m(_u,{up:()=>Mz,down:()=>nz});import{sql as ST}from"kysely";function bx(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Hz(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return bx(T)}catch{return bx(_.connection_url)}if(_.title)return bx(_.title);return _.id}async function Mz(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await ST`
|
|
306
306
|
SELECT id, app_name, connection_url, title FROM connections
|
|
307
|
-
`.execute(_);for(let u of x.rows){let T=
|
|
307
|
+
`.execute(_);for(let u of x.rows){let T=Hz(u);await ST`UPDATE connections SET slug = ${T} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function nz(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var xu={};m(xu,{up:()=>Bz,down:()=>Gz});import{sql as d}from"kysely";async function Bz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await d`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await d`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 Gz(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await d`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await d`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await d`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 uu={};m(uu,{up:()=>yz,down:()=>fz});async function yz(_){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 fz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var mu={};m(mu,{up:()=>Oz,down:()=>Az});import{sql as X_}from"kysely";async function Oz(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await X_`
|
|
308
308
|
UPDATE threads
|
|
309
309
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
310
310
|
WHERE agent_ids IS NOT NULL
|
|
@@ -314,55 +314,55 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
314
314
|
`.execute(_),await X_`
|
|
315
315
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
316
316
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
317
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
317
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function Az(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await X_`
|
|
318
318
|
UPDATE threads
|
|
319
319
|
SET agent_ids = CASE
|
|
320
320
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
321
321
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
322
322
|
ELSE '[]'
|
|
323
323
|
END
|
|
324
|
-
`.execute(_),await X_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var
|
|
324
|
+
`.execute(_),await X_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Cu={};m(Cu,{up:()=>Sz,down:()=>Iz});async function Sz(_){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 Iz(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Tu={};m(Tu,{up:()=>wz,down:()=>Vz});async function wz(_){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 Vz(_){await _.schema.dropTable("kv").execute()}var Nu={};m(Nu,{up:()=>kz,down:()=>pz});async function kz(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function pz(_){await _.schema.dropIndex("idx_member_user_org").execute()}var Ku={};m(Ku,{up:()=>iz,down:()=>tz});async function iz(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function tz(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var Eu={};m(Eu,{up:()=>vz,down:()=>qz});import{sql as D}from"kysely";async function vz(_){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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 D`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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 D`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(D`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(D`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(D`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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 qz(_){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 zu={};m(zu,{up:()=>gz,down:()=>cz});import{sql as i}from"kysely";async function gz(_){await i`
|
|
325
325
|
ALTER TABLE event_subscriptions
|
|
326
326
|
ALTER COLUMN enabled DROP DEFAULT
|
|
327
|
-
`.execute(_),await
|
|
327
|
+
`.execute(_),await i`
|
|
328
328
|
ALTER TABLE event_subscriptions
|
|
329
329
|
ALTER COLUMN enabled TYPE boolean
|
|
330
330
|
USING enabled::boolean
|
|
331
|
-
`.execute(_),await
|
|
331
|
+
`.execute(_),await i`
|
|
332
332
|
ALTER TABLE event_subscriptions
|
|
333
333
|
ALTER COLUMN enabled SET DEFAULT true
|
|
334
|
-
`.execute(_)}async function
|
|
334
|
+
`.execute(_)}async function cz(_){await i`
|
|
335
335
|
ALTER TABLE event_subscriptions
|
|
336
336
|
ALTER COLUMN enabled DROP DEFAULT
|
|
337
|
-
`.execute(_),await
|
|
337
|
+
`.execute(_),await i`
|
|
338
338
|
ALTER TABLE event_subscriptions
|
|
339
339
|
ALTER COLUMN enabled TYPE integer
|
|
340
340
|
USING enabled::integer
|
|
341
|
-
`.execute(_),await
|
|
341
|
+
`.execute(_),await i`
|
|
342
342
|
ALTER TABLE event_subscriptions
|
|
343
343
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
344
|
-
`.execute(_)}var
|
|
344
|
+
`.execute(_)}var Pu={};m(Pu,{up:()=>hz,down:()=>oz});import{sql as IT}from"kysely";async function hz(_){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(IT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(IT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function oz(_){await _.schema.dropTable("brand_context").execute()}var $u={};m($u,{up:()=>az,down:()=>rz});import{sql as wT}from"kysely";async function az(_){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(wT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(wT`now()`)).execute()}async function rz(_){await _.schema.dropTable("organization_domains").execute()}var Uu={};m(Uu,{up:()=>sz,down:()=>bz});import{sql as VT}from"kysely";var Q_=new Set(["primary","secondary","accent","background","foreground"]),ez={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function lz(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>Q_.has(C))){let C={};for(let[N,E]of Object.entries(u)){if(typeof E!=="string")continue;if(Q_.has(N))C[N]=E;else x[N]=E}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let T={};for(let[C,N]of Object.entries(u)){if(typeof N!=="string")continue;if(Q_.has(C.toLowerCase()))T[C.toLowerCase()]=N;else x[C]=N}return{structured:Object.keys(T).length>0?JSON.stringify(T):null,extra:x}}if(Array.isArray(_)){let u={};for(let T of _){let C=T,N=C.label?.toLowerCase?.(),E=C.value;if(!N||!E)continue;if(Q_.has(N))u[N]=E;else x[N]=E}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function dz(_){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 T of _){let C=T,N=C.name??C.family??void 0,E=C.role?.toLowerCase?.()??"";if(!N)continue;let K=ez[E];if(K&&!x[K])x[K]=N;else u.push(N)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function sz(_){let x=await VT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let T=!1,C=!1,N=!1,E=u.colors,K=u.fonts,z={};try{z=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=lz($);if(E=U.structured,T=!0,Object.keys(U.extra).length>0)z.extraColors=U.extra,N=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))K=dz($),C=!0}catch{}if(T||C||N){let $=N?JSON.stringify(z):u.metadata;await VT`
|
|
345
345
|
UPDATE brand_context
|
|
346
346
|
SET
|
|
347
347
|
colors = ${E},
|
|
348
|
-
fonts = ${
|
|
348
|
+
fonts = ${K},
|
|
349
349
|
metadata = ${$},
|
|
350
350
|
updated_at = NOW()
|
|
351
351
|
WHERE id = ${u.id}
|
|
352
|
-
`.execute(_)}}}async function
|
|
352
|
+
`.execute(_)}}}async function bz(_){}var Ju={};m(Ju,{up:()=>x0,down:()=>u0});import{sql as _0}from"kysely";async function x0(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(_0`'{}'::jsonb`)).execute()}async function u0(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var Xu={};m(Xu,{up:()=>m0,down:()=>C0});async function m0(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function C0(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Qu={};m(Qu,{up:()=>T0,down:()=>N0});async function T0(_){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 N0(_){await _.schema.dropTable("sandbox_runner_state").execute()}var ju={};m(ju,{up:()=>K0,down:()=>E0});async function K0(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function E0(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Wu={};m(Wu,{up:()=>z0,down:()=>P0});async function z0(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function P0(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Zu={};m(Zu,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function U0(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Lu={};m(Lu,{up:()=>X0,down:()=>Q0});import{sql as kT}from"kysely";var J0=["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 X0(_){let x=await kT`
|
|
353
353
|
SELECT id, permission FROM "organizationRole"
|
|
354
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let
|
|
354
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...J0]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await kT`
|
|
355
355
|
UPDATE "organizationRole"
|
|
356
|
-
SET permission = ${
|
|
356
|
+
SET permission = ${K}
|
|
357
357
|
WHERE id = ${u.id}
|
|
358
|
-
`.execute(_)}}async function
|
|
358
|
+
`.execute(_)}}async function Q0(_){}var Du={};m(Du,{up:()=>j0,down:()=>W0});async function j0(_){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 W0(_){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 Fu={};m(Fu,{up:()=>Z0,down:()=>L0});async function Z0(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function L0(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var Ru={};m(Ru,{up:()=>D0,down:()=>F0});import{sql as s}from"kysely";async function D0(_){await s`
|
|
359
359
|
UPDATE automations
|
|
360
360
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
361
361
|
WHERE virtual_mcp_id IS NULL
|
|
362
362
|
`.execute(_),await s`
|
|
363
363
|
ALTER TABLE automations
|
|
364
364
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
365
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
365
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function F0(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await s`
|
|
366
366
|
UPDATE automations
|
|
367
367
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
368
368
|
`.execute(_),await s`
|
|
@@ -371,18 +371,18 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
371
371
|
`.execute(_),await s`
|
|
372
372
|
ALTER TABLE automations
|
|
373
373
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
374
|
-
`.execute(_)}var
|
|
374
|
+
`.execute(_)}var Hu={};m(Hu,{up:()=>M0,reshapeSimpleMode:()=>pT,inferAutomationTier:()=>iT,down:()=>n0,__testing:()=>H0});var R0={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},Y0=["fast","smart","thinking","image","web_research"];function Yu(_){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 Y0.some((T)=>(T in u))}function pT(_){if(Yu(_))return _;let x=_,u=x?.enabled===!0,T=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return R0;return{tiers:{fast:T(x?.chat?.fast),smart:T(x?.chat?.smart),thinking:T(x?.chat?.thinking),image:T(x?.image),web_research:T(x?.webResearch)}}}function iT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function tT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var H0={isAlreadyReshapedSimpleMode:Yu,isAlreadyReshapedAutomationModels:tT};async function M0(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let T of x){let C=T.simple_mode?typeof T.simple_mode==="string"?JSON.parse(T.simple_mode):T.simple_mode:null;if(Yu(C))continue;let N=pT(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(N)}).where("organizationId","=",T.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let T of u){let C;try{C=typeof T.models==="string"?JSON.parse(T.models):T.models}catch{C={}}if(tT(C))continue;let N=iT(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:N})}).where("id","=",T.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${T.id} previously used an image-only model; mapped to "${N}"`)}}async function n0(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Mu={};m(Mu,{up:()=>B0,down:()=>G0});import{sql as y}from"kysely";async function B0(_){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 y`
|
|
375
375
|
ALTER TABLE automations
|
|
376
376
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
377
|
-
`.execute(_),await
|
|
377
|
+
`.execute(_),await y`
|
|
378
378
|
ALTER TABLE automations
|
|
379
379
|
ADD CONSTRAINT chk_automation_kind
|
|
380
380
|
CHECK (kind IN ('agent', 'tool_call'))
|
|
381
|
-
`.execute(_),await
|
|
381
|
+
`.execute(_),await y`
|
|
382
382
|
ALTER TABLE automations
|
|
383
383
|
ADD CONSTRAINT chk_automation_agent_fields
|
|
384
384
|
CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
|
|
385
|
-
`.execute(_),await
|
|
385
|
+
`.execute(_),await y`
|
|
386
386
|
ALTER TABLE automations
|
|
387
387
|
ADD CONSTRAINT chk_automation_tool_call_fields
|
|
388
388
|
CHECK (
|
|
@@ -393,19 +393,19 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
393
393
|
AND tool_input IS NOT NULL
|
|
394
394
|
)
|
|
395
395
|
)
|
|
396
|
-
`.execute(_)}async function
|
|
396
|
+
`.execute(_)}async function G0(_){await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await y`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await y`
|
|
397
397
|
ALTER TABLE automations
|
|
398
398
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
399
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var
|
|
399
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var nu={};m(nu,{up:()=>f0,down:()=>O0});import{sql as vT}from"kysely";var y0=new Set(["host","docker","agent-sandbox"]);async function f0(_){let x=await vT`
|
|
400
400
|
SELECT id, metadata FROM "connections"
|
|
401
401
|
WHERE connection_type = 'VIRTUAL'
|
|
402
402
|
AND metadata IS NOT NULL
|
|
403
403
|
AND metadata LIKE '%vmMap%'
|
|
404
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.vmMap;if(!C||typeof C!=="object")continue;let
|
|
404
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.vmMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}let H=X.runnerKind;if(H!==void 0&&!y0.has(H)){N=!0;continue}U[j]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.vmMap=E;let K=JSON.stringify(T);await vT`
|
|
405
405
|
UPDATE "connections"
|
|
406
|
-
SET metadata = ${
|
|
406
|
+
SET metadata = ${K}
|
|
407
407
|
WHERE id = ${u.id}
|
|
408
|
-
`.execute(_)}}async function
|
|
408
|
+
`.execute(_)}}async function O0(_){}var Bu={};m(Bu,{up:()=>A0,down:()=>S0});import{sql as b}from"kysely";async function A0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(b`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(b`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(b`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 b`
|
|
409
409
|
CREATE INDEX async_research_jobs_active_idx
|
|
410
410
|
ON async_research_jobs (status, last_polled_at)
|
|
411
411
|
WHERE status IN ('pending', 'polling')
|
|
@@ -413,7 +413,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
413
413
|
ALTER TABLE async_research_jobs
|
|
414
414
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
415
415
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
416
|
-
`.execute(_)}async function
|
|
416
|
+
`.execute(_)}async function S0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var Gu={};m(Gu,{up:()=>I0,down:()=>w0});async function I0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function w0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var yu={};m(yu,{up:()=>V0,down:()=>k0});import{sql as t}from"kysely";async function V0(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(t`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t`CURRENT_TIMESTAMP`)).execute(),await t`
|
|
417
417
|
ALTER TABLE secrets
|
|
418
418
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
419
419
|
`.execute(_),await t`
|
|
@@ -430,10 +430,10 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
430
430
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
431
431
|
ON secrets (organization_id, lower(name))
|
|
432
432
|
WHERE scope = 'organization'
|
|
433
|
-
`.execute(_)}async function
|
|
433
|
+
`.execute(_)}async function k0(_){await _.schema.dropTable("secrets").execute()}var fu={};m(fu,{up:()=>p0,down:()=>i0});async function p0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function i0(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var Ou={};m(Ou,{up:()=>v0,down:()=>q0});import{sql as t0}from"kysely";async function v0(_){await t0`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function q0(_){}var Au={};m(Au,{up:()=>g0,down:()=>c0});import{sql as j_}from"kysely";async function g0(_){await j_`
|
|
434
434
|
ALTER TABLE sandbox_runner_state
|
|
435
435
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
436
|
-
`.execute(_),await
|
|
436
|
+
`.execute(_),await j_`
|
|
437
437
|
DO $$ BEGIN
|
|
438
438
|
UPDATE virtualmcps v
|
|
439
439
|
SET metadata = jsonb_set(
|
|
@@ -468,10 +468,10 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
468
468
|
EXCEPTION WHEN undefined_table THEN
|
|
469
469
|
NULL;
|
|
470
470
|
END; $$
|
|
471
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
471
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function c0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await j_`
|
|
472
472
|
ALTER TABLE sandbox_runner_state
|
|
473
473
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
474
|
-
`.execute(_),await
|
|
474
|
+
`.execute(_),await j_`
|
|
475
475
|
DO $$ BEGIN
|
|
476
476
|
UPDATE virtualmcps v
|
|
477
477
|
SET metadata = jsonb_set(
|
|
@@ -506,7 +506,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
506
506
|
EXCEPTION WHEN undefined_table THEN
|
|
507
507
|
NULL;
|
|
508
508
|
END; $$
|
|
509
|
-
`.execute(_)}var
|
|
509
|
+
`.execute(_)}var Su={};m(Su,{up:()=>h0,down:()=>o0});import{sql as qT}from"kysely";async function h0(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await qT`
|
|
510
510
|
DO $$ BEGIN
|
|
511
511
|
UPDATE virtualmcps v
|
|
512
512
|
SET metadata = jsonb_set(
|
|
@@ -545,7 +545,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
545
545
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
546
546
|
NULL;
|
|
547
547
|
END; $$
|
|
548
|
-
`.execute(_)}async function
|
|
548
|
+
`.execute(_)}async function o0(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await qT`
|
|
549
549
|
DO $$ BEGIN
|
|
550
550
|
UPDATE virtualmcps v
|
|
551
551
|
SET metadata = jsonb_set(
|
|
@@ -578,7 +578,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
578
578
|
EXCEPTION WHEN undefined_table THEN
|
|
579
579
|
NULL;
|
|
580
580
|
END; $$
|
|
581
|
-
`.execute(_)}var
|
|
581
|
+
`.execute(_)}var Iu={};m(Iu,{up:()=>a0,down:()=>r0});import{sql as gT}from"kysely";async function a0(_){await gT`
|
|
582
582
|
UPDATE connections c
|
|
583
583
|
SET metadata = (
|
|
584
584
|
jsonb_set(
|
|
@@ -622,7 +622,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
622
622
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
623
623
|
WHERE entry ? 'vmId'
|
|
624
624
|
);
|
|
625
|
-
`.execute(_),await
|
|
625
|
+
`.execute(_),await gT`
|
|
626
626
|
UPDATE connections c
|
|
627
627
|
SET metadata = (
|
|
628
628
|
jsonb_set(
|
|
@@ -676,10 +676,10 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
676
676
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
677
677
|
WHERE inner_entry ? 'runnerKind'
|
|
678
678
|
);
|
|
679
|
-
`.execute(_)}async function
|
|
679
|
+
`.execute(_)}async function r0(_){}var wu={};m(wu,{up:()=>l0,down:()=>d0});import{sql as e0}from"kysely";async function l0(_){await e0`
|
|
680
680
|
DELETE FROM ai_provider_keys
|
|
681
681
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
682
|
-
`.execute(_)}async function
|
|
682
|
+
`.execute(_)}async function d0(_){}var Vu={};m(Vu,{up:()=>s0,down:()=>b0});import{sql as W_}from"kysely";async function s0(_){await W_`
|
|
683
683
|
UPDATE sandbox_runner_state
|
|
684
684
|
SET sandbox_provider_kind = 'desktop'
|
|
685
685
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
@@ -777,13 +777,13 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
777
777
|
UPDATE threads
|
|
778
778
|
SET sandbox_provider_kind = 'desktop'
|
|
779
779
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
780
|
-
`.execute(_)}async function
|
|
780
|
+
`.execute(_)}async function b0(_){}var ku={};m(ku,{up:()=>_P,down:()=>xP});import{sql as __}from"kysely";async function _P(_){await __`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await __`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 xP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await __`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await __`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await __`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var pu={};m(pu,{up:()=>uP,down:()=>mP});import{sql as cT}from"kysely";async function uP(_){await cT`
|
|
781
781
|
ALTER TABLE organization_domains
|
|
782
782
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
783
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function
|
|
783
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function mP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await cT`
|
|
784
784
|
ALTER TABLE organization_domains
|
|
785
785
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
786
|
-
`.execute(_)}var
|
|
786
|
+
`.execute(_)}var iu={};m(iu,{up:()=>CP,down:()=>TP});import{sql as Z_}from"kysely";async function CP(_){await Z_`
|
|
787
787
|
UPDATE sandbox_runner_state
|
|
788
788
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
789
789
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -872,30 +872,30 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
872
872
|
WHERE c.connection_type = 'VIRTUAL'
|
|
873
873
|
AND c.metadata IS NOT NULL
|
|
874
874
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
875
|
-
`.execute(_)}async function
|
|
875
|
+
`.execute(_)}async function TP(_){}var tu={};m(tu,{up:()=>KP,down:()=>EP});import{sql as hT}from"kysely";var NP=["GLOBAL_SEARCH"];async function KP(_){let x=await hT`
|
|
876
876
|
SELECT id, permission FROM "organizationRole"
|
|
877
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let
|
|
877
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...NP]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await hT`
|
|
878
878
|
UPDATE "organizationRole"
|
|
879
|
-
SET permission = ${
|
|
879
|
+
SET permission = ${K}
|
|
880
880
|
WHERE id = ${u.id}
|
|
881
|
-
`.execute(_)}}async function
|
|
881
|
+
`.execute(_)}}async function EP(_){}var qu={};m(qu,{up:()=>zP,down:()=>PP});import{sql as vu}from"kysely";async function zP(_){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(vu`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(vu`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await vu`
|
|
882
882
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
883
883
|
ON org_file_configs (organization_id, lower(name))
|
|
884
|
-
`.execute(_)}async function
|
|
884
|
+
`.execute(_)}async function PP(_){await _.schema.dropTable("org_file_configs").execute()}var gu={};m(gu,{up:()=>$P,down:()=>UP});import{sql as f}from"kysely";async function $P(_){await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await f`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await f`
|
|
885
885
|
ALTER TABLE automations
|
|
886
886
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
887
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function
|
|
887
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function UP(_){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 f`
|
|
888
888
|
ALTER TABLE automations
|
|
889
889
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
890
|
-
`.execute(_),await
|
|
890
|
+
`.execute(_),await f`
|
|
891
891
|
ALTER TABLE automations
|
|
892
892
|
ADD CONSTRAINT chk_automation_kind
|
|
893
893
|
CHECK (kind IN ('agent', 'tool_call'))
|
|
894
|
-
`.execute(_),await
|
|
894
|
+
`.execute(_),await f`
|
|
895
895
|
ALTER TABLE automations
|
|
896
896
|
ADD CONSTRAINT chk_automation_agent_fields
|
|
897
897
|
CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
|
|
898
|
-
`.execute(_),await
|
|
898
|
+
`.execute(_),await f`
|
|
899
899
|
ALTER TABLE automations
|
|
900
900
|
ADD CONSTRAINT chk_automation_tool_call_fields
|
|
901
901
|
CHECK (
|
|
@@ -906,29 +906,29 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
906
906
|
AND tool_input IS NOT NULL
|
|
907
907
|
)
|
|
908
908
|
)
|
|
909
|
-
`.execute(_)}var
|
|
909
|
+
`.execute(_)}var cu={};m(cu,{up:()=>JP,down:()=>XP});async function JP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function XP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var ou={};m(ou,{up:()=>QP,down:()=>jP});import{sql as hu}from"kysely";var L_="local-docker";async function QP(_){await hu`delete from sandbox_runner_state where sandbox_provider_kind = ${L_}`.execute(_);let x=await hu`
|
|
910
910
|
SELECT id, metadata FROM "connections"
|
|
911
911
|
WHERE connection_type = 'VIRTUAL'
|
|
912
912
|
AND metadata IS NOT NULL
|
|
913
913
|
AND metadata LIKE ${"%"+L_+"%"}
|
|
914
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.sandboxMap;if(!C||typeof C!=="object")continue;let
|
|
914
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}if(L_ in X){N=!0;let H={...X};if(delete H[L_],Object.keys(H).length>0)U[j]=H}else U[j]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.sandboxMap=E;let K=JSON.stringify(T);await hu`
|
|
915
915
|
UPDATE "connections"
|
|
916
|
-
SET metadata = ${
|
|
916
|
+
SET metadata = ${K}
|
|
917
917
|
WHERE id = ${u.id}
|
|
918
|
-
`.execute(_)}}async function
|
|
918
|
+
`.execute(_)}}async function jP(_){}var au={};m(au,{up:()=>WP,down:()=>ZP});import{sql as D_}from"kysely";async function WP(_){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 D_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await D_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await D_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await D_`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 ZP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var ru={};m(ru,{up:()=>LP,down:()=>DP});async function LP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function DP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var eu={};m(eu,{up:()=>FP,down:()=>RP});async function FP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function RP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var lu={};m(lu,{up:()=>YP,down:()=>HP});async function YP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function HP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var du={};m(du,{up:()=>MP,down:()=>nP});async function MP(_){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 nP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var su={};m(su,{up:()=>BP,down:()=>GP});async function BP(_){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 GP(_){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 _m={};m(_m,{up:()=>fP,down:()=>OP});import{sql as B}from"kysely";var F="cluster",R="agent-sandbox";function v(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function bu(_,x,u){if(!v(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function F_(_){if(!v(_))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!==R&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!v(_.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 yP(_,x,u){if(!v(_))return null;let T=!1,C={};for(let[N,E]of Object.entries(_)){if(!v(E)){C[N]=E;continue}let K={};for(let[z,$]of Object.entries(E)){if(!v($)){K[z]=$;continue}let U={};for(let[j,X]of Object.entries($)){if(j===x){if(T=!0,!(u in $))U[u]=bu(X,x,u);else if(!F_($[u])&&F_(X))U[u]=bu(X,x,u);continue}let H=bu(X,x,u);if(H!==X)T=!0;if(j===u&&j in U&&F_(U[j])&&!F_(H))continue;U[j]=H}K[z]=U}C[N]=K}return{sandboxMap:C,changed:T}}async function oT(_,x,u){let T=await B`
|
|
919
919
|
SELECT id, metadata FROM connections
|
|
920
920
|
WHERE connection_type = 'VIRTUAL'
|
|
921
921
|
AND metadata IS NOT NULL
|
|
922
922
|
AND metadata LIKE ${"%"+x+"%"}
|
|
923
|
-
`.execute(_);for(let C of T.rows){if(!C.metadata)continue;let
|
|
923
|
+
`.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=yP(N.sandboxMap,x,u);if(!E?.changed)continue;N.sandboxMap=E.sandboxMap,await B`
|
|
924
924
|
UPDATE connections
|
|
925
|
-
SET metadata = ${JSON.stringify(
|
|
925
|
+
SET metadata = ${JSON.stringify(N)}
|
|
926
926
|
WHERE id = ${C.id}
|
|
927
|
-
`.execute(_)}}async function
|
|
927
|
+
`.execute(_)}}async function fP(_){await B`
|
|
928
928
|
UPDATE threads
|
|
929
929
|
SET sandbox_provider_kind = ${R}
|
|
930
930
|
WHERE sandbox_provider_kind = ${F}
|
|
931
|
-
`.execute(_),await
|
|
931
|
+
`.execute(_),await B`
|
|
932
932
|
UPDATE sandbox_runner_state canonical
|
|
933
933
|
SET handle = legacy.handle,
|
|
934
934
|
state = legacy.state,
|
|
@@ -939,7 +939,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
939
939
|
AND canonical.user_id = legacy.user_id
|
|
940
940
|
AND canonical.project_ref = legacy.project_ref
|
|
941
941
|
AND legacy.updated_at > canonical.updated_at
|
|
942
|
-
`.execute(_),await
|
|
942
|
+
`.execute(_),await B`
|
|
943
943
|
DELETE FROM sandbox_runner_state legacy
|
|
944
944
|
WHERE legacy.sandbox_provider_kind = ${F}
|
|
945
945
|
AND EXISTS (
|
|
@@ -949,15 +949,15 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
949
949
|
AND canonical.project_ref = legacy.project_ref
|
|
950
950
|
AND canonical.sandbox_provider_kind = ${R}
|
|
951
951
|
)
|
|
952
|
-
`.execute(_),await
|
|
952
|
+
`.execute(_),await B`
|
|
953
953
|
UPDATE sandbox_runner_state
|
|
954
954
|
SET sandbox_provider_kind = ${R}
|
|
955
955
|
WHERE sandbox_provider_kind = ${F}
|
|
956
|
-
`.execute(_),await
|
|
956
|
+
`.execute(_),await oT(_,F,R)}async function OP(_){await B`
|
|
957
957
|
UPDATE threads
|
|
958
958
|
SET sandbox_provider_kind = ${F}
|
|
959
959
|
WHERE sandbox_provider_kind = ${R}
|
|
960
|
-
`.execute(_),await
|
|
960
|
+
`.execute(_),await B`
|
|
961
961
|
UPDATE sandbox_runner_state legacy
|
|
962
962
|
SET handle = canonical.handle,
|
|
963
963
|
state = canonical.state,
|
|
@@ -968,7 +968,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
968
968
|
AND legacy.user_id = canonical.user_id
|
|
969
969
|
AND legacy.project_ref = canonical.project_ref
|
|
970
970
|
AND canonical.updated_at > legacy.updated_at
|
|
971
|
-
`.execute(_),await
|
|
971
|
+
`.execute(_),await B`
|
|
972
972
|
DELETE FROM sandbox_runner_state canonical
|
|
973
973
|
WHERE canonical.sandbox_provider_kind = ${R}
|
|
974
974
|
AND EXISTS (
|
|
@@ -978,11 +978,11 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
978
978
|
AND legacy.project_ref = canonical.project_ref
|
|
979
979
|
AND legacy.sandbox_provider_kind = ${F}
|
|
980
980
|
)
|
|
981
|
-
`.execute(_),await
|
|
981
|
+
`.execute(_),await B`
|
|
982
982
|
UPDATE sandbox_runner_state
|
|
983
983
|
SET sandbox_provider_kind = ${F}
|
|
984
984
|
WHERE sandbox_provider_kind = ${R}
|
|
985
|
-
`.execute(_),await
|
|
985
|
+
`.execute(_),await oT(_,R,F)}var xm={};m(xm,{up:()=>AP,down:()=>SP});import{sql as A}from"kysely";async function AP(_){await A`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(A`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(A`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(A`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(A`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 A`
|
|
986
986
|
CREATE INDEX idx_org_fs_entry_parent
|
|
987
987
|
ON org_fs_entry (organization_id, volume, parent)
|
|
988
988
|
WHERE deleted_at IS NULL
|
|
@@ -990,7 +990,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
990
990
|
CREATE INDEX idx_org_fs_entry_usage
|
|
991
991
|
ON org_fs_entry (organization_id, volume, size)
|
|
992
992
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
993
|
-
`.execute(_)}async function
|
|
993
|
+
`.execute(_)}async function SP(_){await _.schema.dropTable("org_fs_entry").execute(),await A`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var um={};m(um,{up:()=>IP,down:()=>wP});async function IP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function wP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var mm={};m(mm,{up:()=>VP,down:()=>kP});import{sql as aT}from"kysely";async function VP(_){await aT`
|
|
994
994
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
995
995
|
SELECT
|
|
996
996
|
'org_orgfs_public_skills',
|
|
@@ -1004,13 +1004,13 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1004
1004
|
END,
|
|
1005
1005
|
now()
|
|
1006
1006
|
ON CONFLICT (id) DO NOTHING
|
|
1007
|
-
`.execute(_)}async function
|
|
1007
|
+
`.execute(_)}async function kP(_){await aT`
|
|
1008
1008
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1009
|
-
`.execute(_)}var
|
|
1009
|
+
`.execute(_)}var Cm={};m(Cm,{up:()=>pP,down:()=>iP});async function pP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function iP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Tm={};m(Tm,{up:()=>tP,down:()=>vP});import{sql as rT}from"kysely";async function tP(_){await rT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function vP(_){await rT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Nm={};m(Nm,{up:()=>gP,down:()=>cP});import{sql as qP}from"kysely";async function gP(_){await qP`
|
|
1010
1010
|
UPDATE downstream_tokens
|
|
1011
1011
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1012
1012
|
WHERE "expiresAt" IS NULL
|
|
1013
|
-
`.execute(_)}async function
|
|
1013
|
+
`.execute(_)}async function cP(_){}var Km={};m(Km,{up:()=>hP,down:()=>oP});async function hP(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function oP(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var Em={};m(Em,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function rP(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var zm={};m(zm,{up:()=>eP,down:()=>lP});async function eP(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function lP(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Pm={};m(Pm,{up:()=>dP,down:()=>sP});async function dP(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function sP(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var $m={};m($m,{up:()=>bP,down:()=>_$});async function bP(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function _$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Um={};m(Um,{up:()=>x$,down:()=>u$});import{sql as eT}from"kysely";async function x$(_){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(eT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(eT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function u$(_){await _.schema.dropTable("org_sites").execute()}var Jm={};m(Jm,{up:()=>m$,down:()=>C$});async function m$(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function C$(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Xm={};m(Xm,{up:()=>T$,down:()=>N$});import{sql as Z}from"kysely";async function T$(_){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 Z`
|
|
1014
1014
|
UPDATE organization_domains
|
|
1015
1015
|
SET
|
|
1016
1016
|
id = gen_random_uuid()::text,
|
|
@@ -1019,18 +1019,18 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1019
1019
|
verification_method = 'email',
|
|
1020
1020
|
verified_at = created_at
|
|
1021
1021
|
WHERE id IS NULL
|
|
1022
|
-
`.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await Z`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await Z`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
|
|
1022
|
+
`.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await Z`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await Z`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 N$(_){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 Z`
|
|
1023
1023
|
UPDATE organization_domains
|
|
1024
1024
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
1025
|
-
`.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`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
|
|
1025
|
+
`.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`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 Qm={};m(Qm,{up:()=>K$,down:()=>E$});import{sql as R_}from"kysely";async function K$(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(R_`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(R_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).execute(),await R_`
|
|
1026
1026
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1027
1027
|
ON organization_join_requests (organization_id, user_id)
|
|
1028
1028
|
WHERE status = 'pending'
|
|
1029
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function
|
|
1029
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function E$(_){await _.schema.dropTable("organization_join_requests").execute()}var jm={};m(jm,{up:()=>z$,down:()=>P$});async function z$(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function P$(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Wm={};m(Wm,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function U$(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Dm={};m(Dm,{up:()=>Q$,splitWebResearchTier:()=>Lm,down:()=>j$,__testing:()=>X$});function J$(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Zm(_){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 Lm(_){if(!_||Zm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,N=null,E=null;if(u)if(J$(u.modelId))E=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:E}}}var X$={splitWebResearchTier:Lm,isAlreadySplit:Zm};async function Q$(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let T=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(Zm(T))continue;let C=Lm(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function j$(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Fm={};m(Fm,{up:()=>W$,down:()=>Z$});import{sql as x_}from"kysely";async function W$(_){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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(x_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await x_`
|
|
1030
1030
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1031
1031
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1032
1032
|
WHERE revoked_at IS NULL
|
|
1033
|
-
`.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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(x_`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
|
|
1033
|
+
`.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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(x_`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 Z$(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var Rm={};m(Rm,{up:()=>L$,down:()=>D$});async function L$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function D$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var Ym={};m(Ym,{up:()=>F$,down:()=>R$});import{sql as V}from"kysely";async function F$(_){await V`
|
|
1034
1034
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1035
1035
|
RETURNS jsonb AS $fn$
|
|
1036
1036
|
BEGIN
|
|
@@ -1089,7 +1089,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1089
1089
|
BEFORE INSERT ON connection_aggregations
|
|
1090
1090
|
FOR EACH ROW
|
|
1091
1091
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1092
|
-
`.execute(_)}async function
|
|
1092
|
+
`.execute(_)}async function R$(_){await V`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await V`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await V`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Mm={};m(Mm,{up:()=>Y$,down:()=>H$});import{sql as Hm}from"kysely";async function Y$(_){await _.schema.createTable("task_board_items").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("status","text",(x)=>x.notNull().defaultTo("triage")).addColumn("priority","text",(x)=>x.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Hm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Hm`now()`)).execute(),await _.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(Hm`false`)).execute()}async function H$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var nm={};m(nm,{up:()=>M$,down:()=>n$});async function M$(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function n$(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var Bm={};m(Bm,{up:()=>B$,down:()=>G$});async function B$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function G$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var Gm={};m(Gm,{up:()=>y$,down:()=>f$});async function y$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function f$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var ym={};m(ym,{up:()=>A$,down:()=>S$});import{sql as O$}from"kysely";async function A$(_){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(O$`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 S$(_){await _.schema.dropTable("task_board_item_threads").execute()}var fm={};m(fm,{up:()=>I$,down:()=>w$});async function I$(_){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 w$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var Om={};m(Om,{up:()=>k$,down:()=>p$});import{sql as V$}from"kysely";async function k$(_){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(V$`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 p$(_){await _.schema.dropTable("task_board_item_prs").execute()}var Am={};m(Am,{up:()=>t$,down:()=>v$});import{sql as i$}from"kysely";async function t$(_){await i$`
|
|
1093
1093
|
DELETE FROM member
|
|
1094
1094
|
WHERE id IN (
|
|
1095
1095
|
SELECT id FROM (
|
|
@@ -1108,38 +1108,38 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1108
1108
|
) ranked
|
|
1109
1109
|
WHERE ranked.rn > 1
|
|
1110
1110
|
)
|
|
1111
|
-
`.execute(_)}async function
|
|
1111
|
+
`.execute(_)}async function v$(_){}var Sm={};m(Sm,{up:()=>q$,down:()=>g$});async function q$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function g$(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var Im={};m(Im,{up:()=>c$,down:()=>h$});async function c$(_){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 h$(_){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 wm={};m(wm,{up:()=>a$,down:()=>r$});import{sql as o$}from"kysely";async function a$(_){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(o$`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 r$(_){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 Vm={};m(Vm,{up:()=>l$,down:()=>d$});import{sql as e$}from"kysely";async function l$(_){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(e$`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 d$(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var km={};m(km,{up:()=>s$,down:()=>b$});import{sql as Y_}from"kysely";async function s$(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",Y_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",Y_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function b$(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var pm={};m(pm,{up:()=>_U,down:()=>xU});import{sql as H_}from"kysely";async function _U(_){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(H_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(H_`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(H_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await H_`
|
|
1112
1112
|
insert into organization_billing (organization_id, legacy)
|
|
1113
1113
|
select id, true from organization
|
|
1114
1114
|
on conflict (organization_id) do nothing
|
|
1115
|
-
`.execute(_)}async function
|
|
1115
|
+
`.execute(_)}async function xU(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var im={};m(im,{up:()=>uU,down:()=>mU});import{sql as lT}from"kysely";async function uU(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(lT`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(lT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function mU(_){await _.schema.dropTable("seat_change_log").execute()}var tm={};m(tm,{up:()=>CU,down:()=>TU});async function CU(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function TU(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var vm={};m(vm,{up:()=>NU,down:()=>KU});import{sql as dT}from"kysely";async function NU(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await dT`
|
|
1116
1116
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1117
1117
|
on organization_billing (stripe_subscription_id)
|
|
1118
1118
|
where stripe_subscription_id is not null
|
|
1119
|
-
`.execute(_)}async function
|
|
1119
|
+
`.execute(_)}async function KU(_){await dT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var qm={};m(qm,{up:()=>EU,down:()=>zU});async function EU(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function zU(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var gm={};m(gm,{up:()=>PU,down:()=>$U});import{sql as sT}from"kysely";async function PU(_){await sT`
|
|
1120
1120
|
create index idx_org_billing_benefits_pending
|
|
1121
1121
|
on organization_billing (updated_at)
|
|
1122
1122
|
where benefits_reference_id is not null
|
|
1123
|
-
`.execute(_)}async function
|
|
1123
|
+
`.execute(_)}async function $U(_){await sT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var cm={};m(cm,{up:()=>UU,down:()=>JU});import{sql as bT}from"kysely";async function UU(_){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(bT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(bT`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 JU(_){await _.schema.dropTable("user_model_preferences").execute()}var hm={};m(hm,{up:()=>XU,down:()=>QU});async function XU(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function QU(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var om={};m(om,{up:()=>jU,down:()=>WU});async function jU(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function WU(_){}var am={};m(am,{up:()=>ZU,down:()=>LU});import{sql as _N}from"kysely";async function ZU(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await _N`
|
|
1124
1124
|
UPDATE organization_settings
|
|
1125
1125
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1126
1126
|
WHERE reports_only IS NOT NULL
|
|
1127
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1127
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function LU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await _N`
|
|
1128
1128
|
UPDATE organization_settings
|
|
1129
1129
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1130
1130
|
WHERE flags ? 'reports_only'
|
|
1131
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1131
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var rm={};m(rm,{up:()=>FU,down:()=>RU});import{sql as DU}from"kysely";async function FU(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await DU`
|
|
1132
1132
|
update task_board_items
|
|
1133
1133
|
set sort_order = -extract(epoch from created_at)
|
|
1134
|
-
`.execute(_)}async function
|
|
1134
|
+
`.execute(_)}async function RU(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var em={};m(em,{up:()=>YU,down:()=>HU,ACTIONS:()=>xN});import{sql as M_}from"kysely";var xN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function YU(_){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(M_`now()`)).addCheckConstraint("chk_task_board_activity_action",M_`action IN (${M_.join(xN.map((x)=>M_.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 HU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var dm={};m(dm,{up:()=>MU,down:()=>nU,ACTIONS:()=>lm});import{sql as u_}from"kysely";var lm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function MU(_){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(u_`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 uN(_,lm)}async function nU(_){await uN(_,lm.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 uN(_,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 bm={};m(bm,{up:()=>GU,down:()=>yU});import{sql as mN}from"kysely";function sm(_){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),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return sm(T)}catch{return sm(_.connection_url)}if(_.title)return sm(_.title);return _.id}async function GU(_){let x=await mN`
|
|
1135
1135
|
SELECT id, app_name, connection_url, title, slug
|
|
1136
1136
|
FROM connections
|
|
1137
1137
|
WHERE connection_type != 'VIRTUAL'
|
|
1138
|
-
`.execute(_),u=0;for(let T of x.rows){let C=
|
|
1138
|
+
`.execute(_),u=0;for(let T of x.rows){let C=BU(T);if(C===T.slug)continue;await mN`UPDATE connections SET slug = ${C} WHERE id = ${T.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function yU(){}var _C={};m(_C,{up:()=>OU,down:()=>AU});import{sql as fU}from"kysely";async function OU(_){await fU`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 AU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var uC={};m(uC,{up:()=>IU,down:()=>wU,ACTIONS:()=>xC});import{sql as n_}from"kysely";var xC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],SU=new Set(["review_requested","review_approved","review_changes_requested"]);async function IU(_){await CN(_,xC)}async function wU(_){await CN(_,xC.filter((x)=>!SU.has(x)))}async function CN(_,x){await n_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await n_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${n_.join(x.map((u)=>n_.lit(u)))}))`.execute(_)}var mC={};m(mC,{up:()=>kU,down:()=>pU});import{sql as VU}from"kysely";async function kU(_){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(VU`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 pU(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var TC={};m(TC,{up:()=>tU,down:()=>vU,ACTIONS:()=>CC});import{sql as B_}from"kysely";var CC=["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"],iU=new Set(["merge_conflict_resolution"]);async function tU(_){await TN(_,CC)}async function vU(_){await TN(_,CC.filter((x)=>!iU.has(x)))}async function TN(_,x){await B_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await B_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${B_.join(x.map((u)=>B_.lit(u)))}))`.execute(_)}var NC={};m(NC,{up:()=>qU,down:()=>gU});import{sql as m_}from"kysely";async function qU(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await m_`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 gU(_){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 m_`
|
|
1139
1139
|
create index idx_org_billing_benefits_pending
|
|
1140
1140
|
on organization_billing (updated_at)
|
|
1141
1141
|
where benefits_reference_id is not null
|
|
1142
|
-
`.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(m_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(m_`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(m_`now()`)).execute()}var KC={};m(KC,{up:()=>
|
|
1142
|
+
`.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(m_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(m_`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(m_`now()`)).execute()}var KC={};m(KC,{up:()=>cU,down:()=>hU});import{sql as G_}from"kysely";async function cU(_){await G_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await G_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function hU(_){await G_`
|
|
1143
1143
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1144
1144
|
RETURNS trigger AS $fn$
|
|
1145
1145
|
BEGIN
|
|
@@ -1160,40 +1160,40 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1160
1160
|
RETURN NEW;
|
|
1161
1161
|
END;
|
|
1162
1162
|
$fn$ LANGUAGE plpgsql;
|
|
1163
|
-
`.execute(_),await
|
|
1163
|
+
`.execute(_),await G_`
|
|
1164
1164
|
CREATE TRIGGER trg_repo_github_child_single_parent
|
|
1165
1165
|
BEFORE INSERT ON connection_aggregations
|
|
1166
1166
|
FOR EACH ROW
|
|
1167
1167
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1168
|
-
`.execute(_)}var
|
|
1168
|
+
`.execute(_)}var EC={};m(EC,{up:()=>oU,down:()=>aU});import{sql as NN}from"kysely";async function oU(_){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(NN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(NN`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function aU(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var zC={};m(zC,{up:()=>rU,down:()=>eU});import{sql as KN}from"kysely";async function rU(_){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(KN`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(KN`now()`)).execute()}async function eU(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var $C={};m($C,{up:()=>lU,down:()=>dU});import{sql as PC}from"kysely";async function lU(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(PC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await PC`
|
|
1169
1169
|
create index idx_task_quota_claims_org_period_live
|
|
1170
1170
|
on task_quota_claims (organization_id, period_key)
|
|
1171
1171
|
where state <> 'released'
|
|
1172
|
-
`.execute(_)}async function
|
|
1172
|
+
`.execute(_)}async function dU(_){await PC`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 UC={};m(UC,{up:()=>sU,down:()=>bU});async function sU(_){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 bU(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var JC={};m(JC,{up:()=>_J,down:()=>xJ});async function _J(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function xJ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var XC={};m(XC,{up:()=>uJ,down:()=>mJ});import{sql as EN}from"kysely";async function uJ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(EN`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(EN`monthly_task_executions > 0`)).execute()}async function mJ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var QC={};m(QC,{up:()=>TJ,down:()=>NJ});import{sql as CJ}from"kysely";async function TJ(_){await CJ`
|
|
1173
1173
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1174
1174
|
ON task_board_items (updated_at, id)
|
|
1175
1175
|
WHERE status = 'in_review'
|
|
1176
1176
|
AND assignee_id = 'super-agent'
|
|
1177
1177
|
AND dismissed_at IS NULL
|
|
1178
|
-
`.execute(_)}async function
|
|
1178
|
+
`.execute(_)}async function NJ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var jC={};m(jC,{up:()=>KJ,down:()=>EJ});import{sql as zN}from"kysely";async function KJ(_){await zN`
|
|
1179
1179
|
ALTER TABLE task_board_items
|
|
1180
1180
|
ADD COLUMN last_swept_at timestamptz
|
|
1181
|
-
`.execute(_)}async function
|
|
1181
|
+
`.execute(_)}async function EJ(_){await zN`
|
|
1182
1182
|
ALTER TABLE task_board_items
|
|
1183
1183
|
DROP COLUMN last_swept_at
|
|
1184
|
-
`.execute(_)}var
|
|
1184
|
+
`.execute(_)}var WC={};m(WC,{up:()=>zJ,down:()=>PJ});import{sql as y_}from"kysely";async function zJ(_){await y_`
|
|
1185
1185
|
ALTER TABLE task_board_items
|
|
1186
1186
|
ADD COLUMN retry_at timestamptz,
|
|
1187
1187
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
1188
|
-
`.execute(_),await
|
|
1188
|
+
`.execute(_),await y_`
|
|
1189
1189
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1190
1190
|
ON task_board_items (retry_at)
|
|
1191
1191
|
WHERE retry_at IS NOT NULL
|
|
1192
|
-
`.execute(_)}async function
|
|
1192
|
+
`.execute(_)}async function PJ(_){await y_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await y_`
|
|
1193
1193
|
ALTER TABLE task_board_items
|
|
1194
1194
|
DROP COLUMN retry_at,
|
|
1195
1195
|
DROP COLUMN retry_attempts
|
|
1196
|
-
`.execute(_)}var
|
|
1196
|
+
`.execute(_)}var LC={};m(LC,{up:()=>$J,down:()=>UJ});import{sql as ZC}from"kysely";async function $J(_){await ZC`
|
|
1197
1197
|
CREATE TABLE org_repo_sync (
|
|
1198
1198
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1199
1199
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1211,11 +1211,11 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1211
1211
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1212
1212
|
UNIQUE (organization_id, volume)
|
|
1213
1213
|
)
|
|
1214
|
-
`.execute(_),await
|
|
1214
|
+
`.execute(_),await ZC`
|
|
1215
1215
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1216
1216
|
ON org_repo_sync (organization_id)
|
|
1217
1217
|
WHERE enabled
|
|
1218
|
-
`.execute(_)}async function
|
|
1218
|
+
`.execute(_)}async function UJ(_){await ZC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var FC={};m(FC,{up:()=>XJ,down:()=>QJ,ACTIONS:()=>DC});import{sql as f_}from"kysely";var DC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],JJ=new Set(["merge_failed"]);async function XJ(_){await PN(_,DC)}async function QJ(_){await PN(_,DC.filter((x)=>!JJ.has(x)))}async function PN(_,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 RC={};m(RC,{up:()=>jJ,down:()=>WJ});async function jJ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function WJ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var YC={};m(YC,{up:()=>ZJ,down:()=>LJ});import{sql as q}from"kysely";async function ZJ(_){await q`
|
|
1219
1219
|
CREATE TABLE org_jira_integrations (
|
|
1220
1220
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1221
1221
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1254,7 +1254,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1254
1254
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1255
1255
|
UNIQUE (organization_id, jira_comment_id)
|
|
1256
1256
|
)
|
|
1257
|
-
`.execute(_)}async function
|
|
1257
|
+
`.execute(_)}async function LJ(_){await q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await q`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await q`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var HC={};m(HC,{up:()=>FJ,down:()=>RJ});import{sql as DJ}from"kysely";async function FJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await DJ`
|
|
1258
1258
|
update task_board_items as t
|
|
1259
1259
|
set key_seq = numbered.seq
|
|
1260
1260
|
from (
|
|
@@ -1267,25 +1267,25 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1267
1267
|
from task_board_items
|
|
1268
1268
|
) as numbered
|
|
1269
1269
|
where t.id = numbered.id
|
|
1270
|
-
`.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
|
|
1270
|
+
`.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function RJ(_){await _.schema.dropIndex("task_board_items_org_key_seq_unique").on("task_board_items").execute(),await _.schema.alterTable("task_board_items").dropColumn("key_seq").execute()}var MC={};m(MC,{up:()=>YJ,down:()=>HJ});import{sql as $N}from"kysely";async function YJ(_){await $N`
|
|
1271
1271
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1272
1272
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1273
1273
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1274
|
-
`.execute(_)}async function
|
|
1274
|
+
`.execute(_)}async function HJ(_){await $N`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var BC={};m(BC,{up:()=>MJ,down:()=>nJ});import{sql as nC}from"kysely";async function MJ(_){await nC`
|
|
1275
1275
|
ALTER TABLE thread_message_parts
|
|
1276
1276
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1277
|
-
`.execute(_),await
|
|
1277
|
+
`.execute(_),await nC`
|
|
1278
1278
|
ALTER TABLE thread_message_parts
|
|
1279
1279
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1280
|
-
`.execute(_)}async function
|
|
1280
|
+
`.execute(_)}async function nJ(_){await nC`
|
|
1281
1281
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1282
|
-
`.execute(_)}var GC={};m(GC,{up:()=>
|
|
1282
|
+
`.execute(_)}var GC={};m(GC,{up:()=>BJ,down:()=>GJ});async function BJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function GJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var yC={};m(yC,{up:()=>fJ,down:()=>OJ});import{sql as yJ}from"kysely";async function fJ(_){await yJ`
|
|
1283
1283
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1284
1284
|
ON task_board_items (updated_at)
|
|
1285
1285
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1286
|
-
`.execute(_)}async function
|
|
1286
|
+
`.execute(_)}async function OJ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var fC={};m(fC,{up:()=>AJ,down:()=>SJ,TYPES:()=>UN});import{sql as S}from"kysely";var UN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function AJ(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(S`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(S`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(S`now()`)).addCheckConstraint("notifications_type_check",S`type IN (${S.join(UN.map((x)=>S.lit(x)))})`).execute(),await S`CREATE INDEX notifications_user_unread ON notifications
|
|
1287
1287
|
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await S`CREATE INDEX notifications_digest ON notifications
|
|
1288
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function
|
|
1288
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function SJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var OC={};m(OC,{up:()=>IJ,down:()=>wJ});import{sql as JN}from"kysely";async function IJ(_){await JN`
|
|
1289
1289
|
UPDATE org_jira_integrations
|
|
1290
1290
|
SET status_mapping = (
|
|
1291
1291
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1300,7 +1300,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1300
1300
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1301
1301
|
WHERE jsonb_typeof(value) = 'array'
|
|
1302
1302
|
)
|
|
1303
|
-
`.execute(_)}async function
|
|
1303
|
+
`.execute(_)}async function wJ(_){await JN`
|
|
1304
1304
|
UPDATE org_jira_integrations
|
|
1305
1305
|
SET status_mapping = (
|
|
1306
1306
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1315,7 +1315,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1315
1315
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1316
1316
|
WHERE jsonb_typeof(value) = 'array'
|
|
1317
1317
|
)
|
|
1318
|
-
`.execute(_)}var
|
|
1318
|
+
`.execute(_)}var SC={};m(SC,{up:()=>kJ,down:()=>pJ,TYPES:()=>AC});import{sql as O_}from"kysely";var AC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],VJ=new Set(["mentioned"]);async function kJ(_){await XN(_,AC)}async function pJ(_){await XN(_,AC.filter((x)=>!VJ.has(x)))}async function XN(_,x){await O_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await O_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${O_.join(x.map((u)=>O_.lit(u)))}))`.execute(_)}var wC={};m(wC,{up:()=>vJ,down:()=>qJ,ACTIONS:()=>IC});import{sql as I}from"kysely";var iJ=["bug","feature","chore","spike","security"],IC=["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"],tJ=new Set(["type_changed"]);async function vJ(_){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(iJ.map((x)=>I.lit(x)))}))`.execute(_),await QN(_,IC)}async function qJ(_){await QN(_,IC.filter((x)=>!tJ.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 QN(_,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 VC={};m(VC,{up:()=>gJ,down:()=>cJ});import{sql as Q}from"kysely";var WN=["bug","feature","chore","spike","security"],jN="chore";async function gJ(_){await Q`UPDATE task_board_items SET type = ${Q.lit(jN)} WHERE type IS NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${Q.lit(jN)}`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${Q.join(WN.map((x)=>Q.lit(x)))}))`.execute(_)}async function cJ(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${Q.join(WN.map((x)=>Q.lit(x)))}))`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var kC={};m(kC,{up:()=>hJ,down:()=>oJ});import{sql as g}from"kysely";async function hJ(_){await g`
|
|
1319
1319
|
CREATE TABLE task_board_sprints (
|
|
1320
1320
|
id text PRIMARY KEY,
|
|
1321
1321
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1340,34 +1340,34 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1340
1340
|
CREATE INDEX idx_task_board_items_sprint
|
|
1341
1341
|
ON task_board_items (organization_id, sprint_id)
|
|
1342
1342
|
WHERE sprint_id IS NOT NULL
|
|
1343
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function
|
|
1343
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function oJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await g`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await g`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var pC={};m(pC,{up:()=>rJ,down:()=>eJ});import{sql as aJ}from"kysely";async function rJ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function eJ(_){await aJ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var iC={};m(iC,{up:()=>dJ,down:()=>sJ});import{sql as lJ}from"kysely";async function dJ(_){await lJ`
|
|
1344
1344
|
UPDATE org_jira_integrations
|
|
1345
1345
|
SET last_synced_at = NULL,
|
|
1346
1346
|
last_sync_error = NULL
|
|
1347
1347
|
WHERE last_synced_at IS NOT NULL
|
|
1348
|
-
`.execute(_)}async function
|
|
1348
|
+
`.execute(_)}async function sJ(){}var tC={};m(tC,{up:()=>_X,down:()=>xX});import{sql as bJ}from"kysely";async function _X(_){await bJ`
|
|
1349
1349
|
UPDATE org_jira_integrations
|
|
1350
1350
|
SET last_synced_at = NULL,
|
|
1351
1351
|
last_sync_error = NULL
|
|
1352
1352
|
WHERE last_synced_at IS NOT NULL
|
|
1353
|
-
`.execute(_)}async function
|
|
1353
|
+
`.execute(_)}async function xX(){}var qC={};m(qC,{up:()=>uX,down:()=>mX});import{sql as vC}from"kysely";async function uX(_){await vC`
|
|
1354
1354
|
ALTER TABLE org_jira_integrations
|
|
1355
1355
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1356
|
-
`.execute(_),await
|
|
1356
|
+
`.execute(_),await vC`
|
|
1357
1357
|
UPDATE org_jira_integrations
|
|
1358
1358
|
SET rescan_pending = true
|
|
1359
1359
|
WHERE last_synced_at IS NULL
|
|
1360
|
-
`.execute(_)}async function
|
|
1360
|
+
`.execute(_)}async function mX(_){await vC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var gC={};m(gC,{up:()=>CX,down:()=>TX});async function CX(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function TX(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var cC={};m(cC,{up:()=>NX,down:()=>KX});import{sql as ZN}from"kysely";async function NX(_){await ZN`
|
|
1361
1361
|
ALTER TABLE invitation
|
|
1362
1362
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1363
|
-
`.execute(_)}async function
|
|
1363
|
+
`.execute(_)}async function KX(_){await ZN`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var oC={};m(oC,{up:()=>EX,down:()=>zX});import{sql as hC}from"kysely";async function EX(_){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(hC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(hC`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 hC`
|
|
1364
1364
|
INSERT INTO task_board_column_automations
|
|
1365
1365
|
(id, organization_id, column_key, prompt)
|
|
1366
1366
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1367
1367
|
FROM org_jira_integrations
|
|
1368
1368
|
WHERE auto_delegate = true
|
|
1369
1369
|
ON CONFLICT DO NOTHING
|
|
1370
|
-
`.execute(_)}async function
|
|
1370
|
+
`.execute(_)}async function zX(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var aC={};m(aC,{up:()=>PX,down:()=>$X});import{sql as C_}from"kysely";async function PX(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await C_`
|
|
1371
1371
|
UPDATE task_board_items i
|
|
1372
1372
|
SET review_cycle_started_at = (
|
|
1373
1373
|
SELECT max(a.occurred_at)
|
|
@@ -1383,13 +1383,13 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1383
1383
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1384
1384
|
AND assignee_id = 'super-agent'
|
|
1385
1385
|
AND dismissed_at IS NULL
|
|
1386
|
-
`.execute(_),await C_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function
|
|
1386
|
+
`.execute(_),await C_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function $X(_){await C_`
|
|
1387
1387
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1388
1388
|
ON task_board_items (updated_at, id)
|
|
1389
1389
|
WHERE status = 'in_review'
|
|
1390
1390
|
AND assignee_id = 'super-agent'
|
|
1391
1391
|
AND dismissed_at IS NULL
|
|
1392
|
-
`.execute(_),await C_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var
|
|
1392
|
+
`.execute(_),await C_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var rC={};m(rC,{up:()=>UX,down:()=>JX});import{sql as LN}from"kysely";async function UX(_){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(LN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(LN`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 JX(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var lC={};m(lC,{up:()=>QX,down:()=>jX,ACTIONS:()=>eC});import{sql as A_}from"kysely";var eC=["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"],XX=new Set(["review_verdict_requested"]);async function QX(_){await DN(_,eC)}async function jX(_){await DN(_,eC.filter((x)=>!XX.has(x)))}async function DN(_,x){await A_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await A_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${A_.join(x.map((u)=>A_.lit(u)))}))`.execute(_)}var dC={};m(dC,{up:()=>WX,down:()=>ZX});import{sql as S_}from"kysely";async function WX(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await S_`
|
|
1393
1393
|
ALTER TABLE task_board_items
|
|
1394
1394
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1395
1395
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
@@ -1399,13 +1399,13 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1399
1399
|
FOREIGN KEY (board_column_org, status)
|
|
1400
1400
|
REFERENCES task_board_columns (organization_id, key)
|
|
1401
1401
|
ON DELETE RESTRICT
|
|
1402
|
-
`.execute(_)}async function
|
|
1402
|
+
`.execute(_)}async function ZX(_){await S_`
|
|
1403
1403
|
ALTER TABLE task_board_items
|
|
1404
1404
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
1405
1405
|
`.execute(_),await S_`
|
|
1406
1406
|
ALTER TABLE task_board_items
|
|
1407
1407
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
1408
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
1408
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var sC={};m(sC,{up:()=>LX,down:()=>DX});async function LX(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function DX(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var _T={};m(_T,{up:()=>RX,down:()=>YX,ACTIONS:()=>bC});import{sql as I_}from"kysely";var bC=["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"],FX=new Set(["sprint_changed"]);async function RX(_){await FN(_,bC)}async function YX(_){await FN(_,bC.filter((x)=>!FX.has(x)))}async function FN(_,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 xT={};m(xT,{up:()=>MX,down:()=>nX});import{sql as HX}from"kysely";async function MX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(HX`'[]'::jsonb`)).execute()}async function nX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var uT={};m(uT,{up:()=>BX,down:()=>GX});import{sql as RN}from"kysely";async function BX(_){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(RN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(RN`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function GX(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var mT={};m(mT,{up:()=>fX,down:()=>OX});import{sql as yX}from"kysely";async function fX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await yX`
|
|
1409
1409
|
UPDATE task_board_items i
|
|
1410
1410
|
SET external_url = t.url,
|
|
1411
1411
|
description = CASE
|
|
@@ -1424,11 +1424,11 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1424
1424
|
ON g.organization_id = l.organization_id
|
|
1425
1425
|
) t
|
|
1426
1426
|
WHERE t.item_id = i.id
|
|
1427
|
-
`.execute(_)}async function
|
|
1427
|
+
`.execute(_)}async function OX(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var CT={};m(CT,{up:()=>SX,down:()=>IX,ACTIONS:()=>YN});import{sql as J}from"kysely";var AX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],YN=["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 SX(_){await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await J`DROP TABLE IF EXISTS task_board_columns`.execute(_),await J`
|
|
1428
1428
|
UPDATE task_board_items
|
|
1429
1429
|
SET status = 'triage'
|
|
1430
|
-
WHERE status NOT IN (${J.join(
|
|
1431
|
-
`.execute(_),await J`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await J`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await
|
|
1430
|
+
WHERE status NOT IN (${J.join(AX.map((x)=>J.lit(x)))})
|
|
1431
|
+
`.execute(_),await J`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await J`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await wX(_,YN),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
|
|
1432
1432
|
ALTER TABLE task_board_item_jira_links
|
|
1433
1433
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
1434
1434
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -1440,7 +1440,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1440
1440
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
1441
1441
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
1442
1442
|
DROP COLUMN IF EXISTS rescan_pending
|
|
1443
|
-
`.execute(_)}async function
|
|
1443
|
+
`.execute(_)}async function IX(){}async function wX(_,x){await J`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await J`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${J.join(x.map((u)=>J.lit(u)))}))`.execute(_)}var TT={};m(TT,{up:()=>VX,down:()=>kX});import{sql as c}from"kysely";async function VX(_){await c`
|
|
1444
1444
|
ALTER TABLE task_board_items
|
|
1445
1445
|
ADD COLUMN IF NOT EXISTS source text
|
|
1446
1446
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
@@ -1461,24 +1461,24 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1461
1461
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1462
1462
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
1463
1463
|
)
|
|
1464
|
-
`.execute(_)}async function
|
|
1464
|
+
`.execute(_)}async function kX(_){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 NT={};m(NT,{up:()=>pX,down:()=>iX});import{sql as T_}from"kysely";async function pX(_){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(T_`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(T_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(T_`now()`)).execute(),await T_`
|
|
1465
1465
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
1466
1466
|
ON organization_notices (organization_id)
|
|
1467
1467
|
WHERE resolved_at IS NULL
|
|
1468
1468
|
`.execute(_),await T_`
|
|
1469
1469
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
1470
1470
|
ON organization_notices (organization_id, created_at DESC)
|
|
1471
|
-
`.execute(_)}async function
|
|
1471
|
+
`.execute(_)}async function iX(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var ET={};m(ET,{up:()=>eX,down:()=>lX});import{sql as KT}from"kysely";import{sql as hW}from"kysely";var HN=50000000,tX=1e5;function vX(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>tX)return 1/0;let N=C.pop();if(typeof N==="string")u+=N.length;else if(Array.isArray(N))for(let E of N)C.push(E);else if(N!==null&&typeof N==="object")for(let E of Object.values(N))C.push(E)}return u}var qX=/\u0000/g,gX=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,cX=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,hX=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,oX=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function aX(_){return _.replace(qX,"").replace(gX,"\uFFFD").replace(cX,"$1***@").replace(hX,"$1***").replace(oX,"[base64 data omitted]")}function rX(_){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 MN(_){if(vX(_,HN)>HN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return aX(u);if(rX(u))return{type:"text",text:"[image omitted]"};return u})}var nN=20;async function eX(_){let x=await KT`
|
|
1472
1472
|
SELECT id FROM thread_message_parts
|
|
1473
1473
|
WHERE pg_column_size(payload) > 8192
|
|
1474
1474
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
1475
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
1475
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=nN){let T=x.rows.slice(u,u+nN).map((N)=>N.id),C=await KT`
|
|
1476
1476
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${T})
|
|
1477
|
-
`.execute(_);for(let
|
|
1477
|
+
`.execute(_);for(let N of C.rows){let E=MN(N.payload);if(E===JSON.stringify(N.payload))continue;await KT`
|
|
1478
1478
|
UPDATE thread_message_parts
|
|
1479
1479
|
SET payload = ${E}::jsonb
|
|
1480
|
-
WHERE id = ${
|
|
1481
|
-
`.execute(_)}}}async function
|
|
1480
|
+
WHERE id = ${N.id}
|
|
1481
|
+
`.execute(_)}}}async function lX(){}var zT={};m(zT,{up:()=>dX,down:()=>sX});async function dX(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function sX(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var PT={};m(PT,{up:()=>bX,down:()=>_Q});import{sql as P}from"kysely";async function bX(_){await P`
|
|
1482
1482
|
CREATE TABLE git_provider_accounts (
|
|
1483
1483
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1484
1484
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1722,11 +1722,11 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1722
1722
|
AND r.organization_id = s.organization_id
|
|
1723
1723
|
AND r.host = 'github.com'
|
|
1724
1724
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
|
|
1725
|
-
`.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function
|
|
1725
|
+
`.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function _Q(_){await P`
|
|
1726
1726
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
1727
1727
|
`.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
|
|
1728
1728
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
1729
|
-
`.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var
|
|
1729
|
+
`.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var $T={};m($T,{up:()=>uQ,down:()=>mQ});import{sql as Y}from"kysely";var xQ=Y`
|
|
1730
1730
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
1731
1731
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
1732
1732
|
BEGIN
|
|
@@ -1735,7 +1735,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1735
1735
|
RETURN NULL;
|
|
1736
1736
|
END;
|
|
1737
1737
|
$$
|
|
1738
|
-
`;async function
|
|
1738
|
+
`;async function uQ(_){await xQ.execute(_),await Y`
|
|
1739
1739
|
ALTER TABLE connections
|
|
1740
1740
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
1741
1741
|
`.execute(_),await Y`
|
|
@@ -1797,29 +1797,29 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
|
|
|
1797
1797
|
AND r.host = 'github.com'
|
|
1798
1798
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
1799
1799
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
1800
|
-
`.execute(_),await Y`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function
|
|
1800
|
+
`.execute(_),await Y`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function mQ(_){await Y`DROP TABLE IF EXISTS thread_repositories`.execute(_),await Y`
|
|
1801
1801
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
1802
|
-
`.execute(_)}var _6={"001-initial-schema":r_,"002-organization-settings":e_,"003-connection-schema-align":l_,"004-remove-models-binding":d_,"005-connection-configuration":s_,"006-add-views-to-settings":b_,"007-monitoring-logs":_x,"008-event-bus":xx,"009-drop-audit-logs":ux,"010-gateways":mx,"011-gateway-icon":Cx,"012-gateway-tool-selection-mode":Tx,"013-monitoring-user-agent-gateway":Kx,"014-gateway-resources-prompts":Nx,"015-monitoring-properties":Ex,"016-downstream-token-client-info":zx,"017-downstream-token-remove-userid":Px,"018-drop-gateway-tool-selection-strategy":$x,"019-remove-gateway-is-default":Ux,"020-enabled-plugins":Jx,"021-threads":Xx,"022-rename-gateway-to-virtual-mcp":jx,"023-optimize-thread-indexes":Qx,"024-consolidate-virtual-mcp":Wx,"025-add-monitoring-virtual-mcp-id":Zx,"026-restrict-child-connection-delete":Lx,"027-update-management-mcp-url":Fx,"028-update-management-mcp-to-self":Yx,"029-add-updated-by-to-connections":Hx,"030-member-tags":Mx,"031-add-dependency-mode":Bx,"032-projects":Gx,"033-thread-status":yx,"034-monitoring-dashboards":fx,"035-project-connections":Ox,"036-update-registry-url":nx,"037-ai-provider-keys":Ax,"038-oauth-pkce-states":Sx,"039-automations":Ix,"040-replace-next-run-at-with-last-run-at":wx,"041-ai-provider-keys-unique-constraint":Vx,"042-rename-mesh-mcp-to-cms-mcp":kx,"043-rename-cms-mcp-to-deco-cms":px,"044-drop-connections-tools-column":vx,"045-thread-context-start-message":tx,"046-remove-object-storage-plugin":qx,"047-add-next-run-at":gx,"048-merge-projects-agents":hx,"049-remove-org-admin-projects":ox,"050-durable-agent-runs":ax,"051-org-sso":ex,"052-thread-agent-ids":lx,"053-registry-config":dx,"054-connection-slug":bx,"055-spaces":_u,"056-automation-project-scope":xu,"057-thread-virtual-mcp-id":uu,"058-trigger-callback-tokens":mu,"059-kv":Cu,"060-member-index":Tu,"061-downstream-token-connection-index":Ku,"062-private-registry":Nu,"063-event-subscriptions-enabled-boolean":Eu,"064-brand-context":zu,"065-organization-domains":Pu,"066-brand-context-structured":$u,"067-threads-metadata":Uu,"068-threads-branch":Ju,"069-sandbox-runner-state":Xu,"070-model-categories":ju,"071-default-home-agents":Qu,"072-ai-provider-key-preset-id":Wu,"073-backfill-basic-usage-roles":Zu,"074-sandbox-runner-state-handle-nonunique":Lu,"075-thread-inflight-async-jobs":Du,"076-automations-drop-agent-json":Fu,"077-tier-only-model-selection":Yu,"078-automation-tool-call-kind":Hu,"079-strip-legacy-freestyle-vm-map-entries":Mu,"080-async-research-jobs":Bu,"081-async-research-jobs-result-content":Gu,"082-secrets":yu,"083-thread-run-locally":fu,"084-drop-host-sandbox-rows":Ou,"085-rename-runner-kind":nu,"086-thread-pins-and-vm-map-rekey":Au,"087-fix-vm-map-rekey":Su,"088-purge-cli-activate-keys":Iu,"089-rename-remote-user-to-desktop":wu,"090-automation-webhook-triggers":Vu,"091-organization-domains-allow-multi":ku,"092-sandbox-naming-uniformization":pu,"093-backfill-global-search-basic-usage":vu,"094-org-file-configs":iu,"095-remove-automation-tool-call-kind":qu,"096-org-file-configs-public-url-base":gu,"097-drop-local-docker-sandbox-state":hu,"098-thread-message-parts":ou,"099-run-fence":au,"100-link-transport":ru,"101-cancel-requested-at":eu,"102-observational-agent":lu,"103-revert-observational-agent":du,"104-agent-sandbox-provider-kind":bu,"105-org-fs":_m,"106-automation-tools":xm,"107-org-fs-public-org":um,"108-automation-max-agent-steps":mm,"109-thread-message-parts-per-message-seq":Cm,"110-backfill-ghs-token-expiry":Tm,"111-org-fs-thread-id":Km,"112-org-file-configs-credential-type":Nm,"113-thread-failure-reason":Em,"114-run-acked-seq":zm,"115-thread-projected-seq":Pm,"116-org-sites":$m,"117-org-file-configs-site-slug":Um,"118-organization-domains-multi-verify":Jm,"119-organization-join-requests":Xm,"120-org-fs-read-public":jm,"121-org-fs-share-password":Qm,"122-split-web-research-tier":Lm,"123-connection-credential-vault":Dm,"124-drop-thread-projected-seq":Fm,"125-github-child-single-parent":Rm,"126-task-board":Hm,"127-task-board-due-date":Mm,"128-reports-only":Bm,"129-task-board-assigned-by":Gm,"130-task-board-thread-id":ym,"131-task-board-thread-link-cascade":fm,"132-task-board-item-prs":Om,"133-dedupe-duplicate-members":nm,"134-drop-task-board-enabled":Am,"135-task-board-item-fk-cascade":Sm,"136-task-board-import-idempotency":Im,"137-agent-sandbox-runner-state":wm,"138-agent-sandbox-sessions":Vm,"139-organization-billing":km,"140-seat-change-log":pm,"141-benefits-sync-pending":vm,"142-stripe-event-watermark":tm,"143-armed-report-url":im,"144-benefits-pending-index":qm,"145-user-model-preferences":gm,"146-organization-main-agent":cm,"147-drop-agent-sandbox-tables":hm,"148-org-flags":om,"149-task-board-item-sort-order":am,"150-task-board-activity":rm,"151-task-board-tags":lm,"152-repair-connection-slug":sm,"153-task-board-latest-assistant-part-index":bm,"154-task-board-qa-activity":xC,"155-task-board-review-claims":uC,"156-task-board-conflict-activity":CC,"157-drop-seat-billing":TC,"158-drop-github-child-single-parent":KC,"159-task-board-comments":NC,"160-task-quota-billing":EC,"161-task-quota-claim-state":PC,"162-claude-subscriptions":$C,"163-task-board-item-dismissed":UC,"164-per-org-task-quota":JC,"165-task-board-pending-review-index":XC,"166-task-board-last-swept-at":jC,"167-task-board-run-retry":QC,"168-org-repo-sync":ZC,"169-task-board-merge-failed-activity":DC,"170-task-board-item-repo":FC,"171-jira-integration":RC,"172-task-board-item-key-seq":YC,"173-thread-github-repo-connection-index":HC,"174-thread-message-parts-persisted-at":BC,"175-task-board-sprints":GC,"176-task-board-done-sweep-index":yC,"177-notifications":fC,"178-jira-status-mapping-array":OC,"179-notification-mentioned":AC,"180-task-board-item-type":IC,"181-task-board-item-type-required":wC,"182-task-board-sprints-entities":VC,"183-drop-jira-jql-filter":kC,"184-jira-rescan-after-scope-change":pC,"185-jira-rescan-existing-cards":vC,"186-jira-rescan-pending-flag":iC,"187-task-board-comment-thread":qC,"188-invitation-auto-accept":gC,"189-task-board-column-automations":hC,"190-task-board-review-cycle-started-at":oC,"191-task-board-columns":aC,"192-task-board-verdict-nudge-activity":eC,"193-task-board-status-column-fk":lC,"194-jira-link-sprint":dC,"195-task-board-sprint-activity":bC,"196-task-board-column-tracker-statuses":_T,"197-task-board-prompts":xT,"198-task-board-external-url":uT,"199-drop-jira-mirror-and-org-columns":mT,"200-jira-run-trigger":CT,"201-organization-notices":TT,"202-redact-base64-thread-parts":NT,"203-task-board-preview-routes":ET,"204-git-provider-accounts-and-repositories":zT,"205-repository-references":PT,"206-repository-consumers":a_,"207-task-board-prs-repo-idx":o_,"208-github-connect-flows":h_,"209-github-installation-authorization":c_,"210-github-repository-authorization":i_,"211-user-fs-org":t_,"212-coding-agent-mcp-excluded":q_,"213-bitbucket-git-provider":g_},$T=_6;import{getMigrations as n6}from"better-auth/db";import{sso as A6}from"@better-auth/sso";import{organization as S6}from"@decocms/better-auth/plugins";import{admin as I6,apiKey as w6,jwt as V6,magicLink as k6,mcp as p6,openAPI as v6}from"better-auth/plugins";import{emailOTP as t6}from"better-auth/plugins/email-otp";import{Kysely as H6,PostgresDialect as wK}from"kysely";import{Pool as VK}from"pg";import{homedir as x6}from"os";var u6=new Set(["all","worker","api"]);function m6(_){let x=(_??"").trim();return u6.has(x)?x:"all"}var C6=new Set(["production","development","test"]);function T6(_){let x=(_??"").trim();return C6.has(x)?x:"development"}function L(_){return _==="true"||_==="1"}function JT(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function y(_,x,u,T){return JT(_,x,T)??u}function K6(_,x,u,T){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&C>T)throw Error(`${_} must be at most ${T}`);return C}function UT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function MK(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function N6(_){return _===void 0||_===""||_==="true"||_==="1"}function K_(_,x){return _||x}function BK(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${x6()}/deco`,T=_.localMode,C=_.nodeEnv||T6(x.NODE_ENV),K=x.NATS_URL||"nats://localhost:4222";return{settings:{nodeEnv:C,port:y("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:K_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:L(x.DATABASE_PG_SSL),databasePoolMax:y("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:y("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:K_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:L(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:L(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((N)=>N.trim().toLowerCase()).filter(Boolean),clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:JT("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:L(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:K6("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:L(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:y("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:y("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:y("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:L(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:L(x.HOSTING_CONTROL_PLANE_GA),monitorGa:L(x.MONITOR_GA),mcpCacheEnabled:UT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:L(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:y("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:y("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:UT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:y("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:N6(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:JT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:m6(K_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:L(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:L(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:UT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:L(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:y("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:K_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:K_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:MK(x.DATABASE_URL),externalNatsUrl:MK(K),skipMigrations:_.skipMigrations}}var w_=null;function h(){if(!w_)E6();return w_}function E6(){if(w_)return;let _={...process.env},x=BK({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);w_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as X6,metrics as j6,propagation as C4,ROOT_CONTEXT as T4,SpanStatusCode as K4,trace as Q6}from"@opentelemetry/api";import{logs as W6,SeverityNumber as XT}from"@opentelemetry/api-logs";import{OTLPLogExporter as z4}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as Z6}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as U4}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as X4}from"@opentelemetry/instrumentation-runtime-node";import{context as sW,propagation as bW,SpanKind as _Z,SpanStatusCode as xZ}from"@opentelemetry/api";var mZ=globalThis.fetch;import{ExportResultCode as jZ}from"@opentelemetry/core";import{ExportResultCode as V_}from"@opentelemetry/core";import{mkdir as z6,rename as P6,writeFile as $6}from"fs/promises";import{join as k_}from"path";class p_{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:V_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:V_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:V_.FAILED}});return Promise.resolve({code:V_.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let C of _){let K=x.get(C.partition);if(!K)K=[],x.set(C.partition,K);K.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,K])=>this.writeNDJSON(K,C).then(()=>C))),T=u.find((C)=>C.status==="rejected");if(T){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let K=_.filter((E)=>!C.has(E.partition));this.bufferItems=K.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?k_(this.basePath,x,...T):k_(this.basePath,...T);if(!this.knownDirs.has(C))await z6(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let K=`${crypto.randomUUID()}.ndjson`,E=k_(C,`.${K}.tmp`),N=k_(C,K),z=_.join(`
|
|
1802
|
+
`.execute(_)}var CQ={"001-initial-schema":e_,"002-organization-settings":l_,"003-connection-schema-align":d_,"004-remove-models-binding":s_,"005-connection-configuration":b_,"006-add-views-to-settings":_x,"007-monitoring-logs":xx,"008-event-bus":ux,"009-drop-audit-logs":mx,"010-gateways":Cx,"011-gateway-icon":Tx,"012-gateway-tool-selection-mode":Nx,"013-monitoring-user-agent-gateway":Kx,"014-gateway-resources-prompts":Ex,"015-monitoring-properties":zx,"016-downstream-token-client-info":Px,"017-downstream-token-remove-userid":$x,"018-drop-gateway-tool-selection-strategy":Ux,"019-remove-gateway-is-default":Jx,"020-enabled-plugins":Xx,"021-threads":Qx,"022-rename-gateway-to-virtual-mcp":jx,"023-optimize-thread-indexes":Wx,"024-consolidate-virtual-mcp":Zx,"025-add-monitoring-virtual-mcp-id":Lx,"026-restrict-child-connection-delete":Dx,"027-update-management-mcp-url":Rx,"028-update-management-mcp-to-self":Hx,"029-add-updated-by-to-connections":Mx,"030-member-tags":nx,"031-add-dependency-mode":Bx,"032-projects":Gx,"033-thread-status":yx,"034-monitoring-dashboards":fx,"035-project-connections":Ox,"036-update-registry-url":Ax,"037-ai-provider-keys":Sx,"038-oauth-pkce-states":Ix,"039-automations":wx,"040-replace-next-run-at-with-last-run-at":Vx,"041-ai-provider-keys-unique-constraint":kx,"042-rename-mesh-mcp-to-cms-mcp":px,"043-rename-cms-mcp-to-deco-cms":ix,"044-drop-connections-tools-column":tx,"045-thread-context-start-message":vx,"046-remove-object-storage-plugin":gx,"047-add-next-run-at":cx,"048-merge-projects-agents":ox,"049-remove-org-admin-projects":ax,"050-durable-agent-runs":rx,"051-org-sso":lx,"052-thread-agent-ids":dx,"053-registry-config":sx,"054-connection-slug":_u,"055-spaces":xu,"056-automation-project-scope":uu,"057-thread-virtual-mcp-id":mu,"058-trigger-callback-tokens":Cu,"059-kv":Tu,"060-member-index":Nu,"061-downstream-token-connection-index":Ku,"062-private-registry":Eu,"063-event-subscriptions-enabled-boolean":zu,"064-brand-context":Pu,"065-organization-domains":$u,"066-brand-context-structured":Uu,"067-threads-metadata":Ju,"068-threads-branch":Xu,"069-sandbox-runner-state":Qu,"070-model-categories":ju,"071-default-home-agents":Wu,"072-ai-provider-key-preset-id":Zu,"073-backfill-basic-usage-roles":Lu,"074-sandbox-runner-state-handle-nonunique":Du,"075-thread-inflight-async-jobs":Fu,"076-automations-drop-agent-json":Ru,"077-tier-only-model-selection":Hu,"078-automation-tool-call-kind":Mu,"079-strip-legacy-freestyle-vm-map-entries":nu,"080-async-research-jobs":Bu,"081-async-research-jobs-result-content":Gu,"082-secrets":yu,"083-thread-run-locally":fu,"084-drop-host-sandbox-rows":Ou,"085-rename-runner-kind":Au,"086-thread-pins-and-vm-map-rekey":Su,"087-fix-vm-map-rekey":Iu,"088-purge-cli-activate-keys":wu,"089-rename-remote-user-to-desktop":Vu,"090-automation-webhook-triggers":ku,"091-organization-domains-allow-multi":pu,"092-sandbox-naming-uniformization":iu,"093-backfill-global-search-basic-usage":tu,"094-org-file-configs":qu,"095-remove-automation-tool-call-kind":gu,"096-org-file-configs-public-url-base":cu,"097-drop-local-docker-sandbox-state":ou,"098-thread-message-parts":au,"099-run-fence":ru,"100-link-transport":eu,"101-cancel-requested-at":lu,"102-observational-agent":du,"103-revert-observational-agent":su,"104-agent-sandbox-provider-kind":_m,"105-org-fs":xm,"106-automation-tools":um,"107-org-fs-public-org":mm,"108-automation-max-agent-steps":Cm,"109-thread-message-parts-per-message-seq":Tm,"110-backfill-ghs-token-expiry":Nm,"111-org-fs-thread-id":Km,"112-org-file-configs-credential-type":Em,"113-thread-failure-reason":zm,"114-run-acked-seq":Pm,"115-thread-projected-seq":$m,"116-org-sites":Um,"117-org-file-configs-site-slug":Jm,"118-organization-domains-multi-verify":Xm,"119-organization-join-requests":Qm,"120-org-fs-read-public":jm,"121-org-fs-share-password":Wm,"122-split-web-research-tier":Dm,"123-connection-credential-vault":Fm,"124-drop-thread-projected-seq":Rm,"125-github-child-single-parent":Ym,"126-task-board":Mm,"127-task-board-due-date":nm,"128-reports-only":Bm,"129-task-board-assigned-by":Gm,"130-task-board-thread-id":ym,"131-task-board-thread-link-cascade":fm,"132-task-board-item-prs":Om,"133-dedupe-duplicate-members":Am,"134-drop-task-board-enabled":Sm,"135-task-board-item-fk-cascade":Im,"136-task-board-import-idempotency":wm,"137-agent-sandbox-runner-state":Vm,"138-agent-sandbox-sessions":km,"139-organization-billing":pm,"140-seat-change-log":im,"141-benefits-sync-pending":tm,"142-stripe-event-watermark":vm,"143-armed-report-url":qm,"144-benefits-pending-index":gm,"145-user-model-preferences":cm,"146-organization-main-agent":hm,"147-drop-agent-sandbox-tables":om,"148-org-flags":am,"149-task-board-item-sort-order":rm,"150-task-board-activity":em,"151-task-board-tags":dm,"152-repair-connection-slug":bm,"153-task-board-latest-assistant-part-index":_C,"154-task-board-qa-activity":uC,"155-task-board-review-claims":mC,"156-task-board-conflict-activity":TC,"157-drop-seat-billing":NC,"158-drop-github-child-single-parent":KC,"159-task-board-comments":EC,"160-task-quota-billing":zC,"161-task-quota-claim-state":$C,"162-claude-subscriptions":UC,"163-task-board-item-dismissed":JC,"164-per-org-task-quota":XC,"165-task-board-pending-review-index":QC,"166-task-board-last-swept-at":jC,"167-task-board-run-retry":WC,"168-org-repo-sync":LC,"169-task-board-merge-failed-activity":FC,"170-task-board-item-repo":RC,"171-jira-integration":YC,"172-task-board-item-key-seq":HC,"173-thread-github-repo-connection-index":MC,"174-thread-message-parts-persisted-at":BC,"175-task-board-sprints":GC,"176-task-board-done-sweep-index":yC,"177-notifications":fC,"178-jira-status-mapping-array":OC,"179-notification-mentioned":SC,"180-task-board-item-type":wC,"181-task-board-item-type-required":VC,"182-task-board-sprints-entities":kC,"183-drop-jira-jql-filter":pC,"184-jira-rescan-after-scope-change":iC,"185-jira-rescan-existing-cards":tC,"186-jira-rescan-pending-flag":qC,"187-task-board-comment-thread":gC,"188-invitation-auto-accept":cC,"189-task-board-column-automations":oC,"190-task-board-review-cycle-started-at":aC,"191-task-board-columns":rC,"192-task-board-verdict-nudge-activity":lC,"193-task-board-status-column-fk":dC,"194-jira-link-sprint":sC,"195-task-board-sprint-activity":_T,"196-task-board-column-tracker-statuses":xT,"197-task-board-prompts":uT,"198-task-board-external-url":mT,"199-drop-jira-mirror-and-org-columns":CT,"200-jira-run-trigger":TT,"201-organization-notices":NT,"202-redact-base64-thread-parts":ET,"203-task-board-preview-routes":zT,"204-git-provider-accounts-and-repositories":PT,"205-repository-references":$T,"206-repository-consumers":r_,"207-task-board-prs-repo-idx":a_,"208-github-connect-flows":o_,"209-github-installation-authorization":h_,"210-github-repository-authorization":q_,"211-user-fs-org":v_,"212-coding-agent-mcp-excluded":g_,"213-bitbucket-git-provider":c_,"214-connections-sanitized-id-idx":t_},UT=CQ;import{getMigrations as wQ}from"better-auth/db";import{sso as VQ}from"@better-auth/sso";import{organization as kQ}from"@decocms/better-auth/plugins";import{admin as pQ,apiKey as iQ,jwt as tQ,magicLink as vQ,mcp as qQ,openAPI as gQ}from"better-auth/plugins";import{emailOTP as cQ}from"better-auth/plugins/email-otp";import{Kysely as GQ,PostgresDialect as kN}from"kysely";import{Pool as pN}from"pg";import{homedir as TQ}from"os";var NQ=new Set(["all","worker","api"]);function KQ(_){let x=(_??"").trim();return NQ.has(x)?x:"all"}var EQ=new Set(["production","development","test"]);function zQ(_){let x=(_??"").trim();return EQ.has(x)?x:"development"}function L(_){return _==="true"||_==="1"}function XT(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function G(_,x,u,T){return XT(_,x,T)??u}function PQ(_,x,u,T){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&C>T)throw Error(`${_} must be at most ${T}`);return C}function JT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function BN(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function $Q(_){return _===void 0||_===""||_==="true"||_==="1"}function N_(_,x){return _||x}function GN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${TQ()}/deco`,T=_.localMode,C=_.nodeEnv||zQ(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222";return{settings:{nodeEnv:C,port:G("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:N_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:L(x.DATABASE_PG_SSL),databasePoolMax:G("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:G("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:N_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:L(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:L(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((K)=>K.trim().toLowerCase()).filter(Boolean),clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:XT("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:L(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:PQ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:L(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:G("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:G("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:G("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:L(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:L(x.HOSTING_CONTROL_PLANE_GA),monitorGa:L(x.MONITOR_GA),mcpCacheEnabled:JT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:L(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:G("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:G("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:JT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:G("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:$Q(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:XT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:KQ(N_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:L(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:L(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:JT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:L(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:G("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:N_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:N_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:BN(x.DATABASE_URL),externalNatsUrl:BN(N),skipMigrations:_.skipMigrations}}var w_=null;function h(){if(!w_)UQ();return w_}function UQ(){if(w_)return;let _={...process.env},x=GN({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);w_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as ZQ,metrics as LQ,propagation as P4,ROOT_CONTEXT as $4,SpanStatusCode as U4,trace as DQ}from"@opentelemetry/api";import{logs as FQ,SeverityNumber as QT}from"@opentelemetry/api-logs";import{OTLPLogExporter as Q4}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as RQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Z4}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as D4}from"@opentelemetry/instrumentation-runtime-node";import{context as CZ,propagation as TZ,SpanKind as NZ,SpanStatusCode as KZ}from"@opentelemetry/api";var zZ=globalThis.fetch;import{ExportResultCode as FZ}from"@opentelemetry/core";import{ExportResultCode as V_}from"@opentelemetry/core";import{mkdir as JQ,rename as XQ,writeFile as QQ}from"fs/promises";import{join as k_}from"path";class p_{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:V_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:V_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:V_.FAILED}});return Promise.resolve({code:V_.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),T=u.find((C)=>C.status==="rejected");if(T){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let N=_.filter((E)=>!C.has(E.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?k_(this.basePath,x,...T):k_(this.basePath,...T);if(!this.knownDirs.has(C))await JQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=k_(C,`.${N}.tmp`),K=k_(C,N),z=_.join(`
|
|
1803
1803
|
`)+`
|
|
1804
|
-
`;await
|
|
1804
|
+
`;await QQ(E,z,{mode:384}),await XQ(E,K)}}import{ExportResultCode as nZ}from"@opentelemetry/core";import{AggregationTemporality as GZ,DataPointType as yZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as wZ}from"@opentelemetry/core";var iZ=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as y4,LoggerProvider as f4}from"@opentelemetry/sdk-logs";import{detectResources as A4,envDetector as S4,hostDetector as I4,osDetector as w4,processDetector as V4,resourceFromAttributes as k4}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as i4}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as qZ}from"@opentelemetry/api-logs";import{NodeSDK as q4}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as c4,SamplingDecision as o}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as aZ}from"@opentelemetry/api";var YQ="__d",HQ=ZQ("Current request"),MQ=1;var fN=(_)=>{let u=new URL(_.url).searchParams.get(YQ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class ON{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,N){let E=_.getValue(HQ);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,N);return{decision:o.RECORD_AND_SAMPLED}}let K=fN(E);if(K)return{decision:o.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,N);if(z.decision===o.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:o.NOT_RECORD}}toString(){return"DebugSampler"}}class AN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:o.RECORD_AND_SAMPLED};return{decision:o.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var o4=new RQ({preventServerStart:!0}),a4=new ON(new AN(MQ));var yN=DQ.getTracer("studio","1.0.0"),K_=LQ.getMeter("studio","1.0.0"),nQ=FQ.getLogger("studio","1.0.0"),jT=(_,x,u)=>{let T={},C=u,N=u[u.length-1];if(N!==null&&typeof N==="object"&&!Array.isArray(N)&&!(N instanceof Error)&&Object.getPrototypeOf(N)===Object.prototype)T=N,C=u.slice(0,-1);let E=C.map((K)=>{if(K instanceof Error)return`${K.name}: ${K.message}`;if(typeof K==="object")try{return JSON.stringify(K)}catch{return"[Object]"}return String(K)}).join(" ");nQ.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},WT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{jT(QT.ERROR,"ERROR",_),WT.error(..._)};console.warn=(..._)=>{jT(QT.WARN,"WARN",_),WT.warn(..._)};console.debug=(..._)=>{jT(QT.DEBUG,"DEBUG",_),WT.debug(..._)};var ZT,SN=0,LT=500;function BQ(){if(ZT)return;let _=performance.now()+LT;ZT=setInterval(()=>{let x=performance.now();SN=Math.max(0,x-_),_=x+LT},LT),ZT.unref?.()}function IN(){return BQ(),SN}var yQ=()=>K_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),wN=()=>K_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),VN=400,fQ=100,OQ=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>VN){let T=IN(),C=T>VN/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(T),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:i_()}})}if(yQ().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function AQ(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=i_(),N=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-T;if(wN().record(z,{"db.pool.outcome":N?"contended":"available"}),z>fQ)if(N)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:z,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:z,idleAtStart:E,total:_.totalCount,max:C});return K},(K)=>{throw wN().record(performance.now()-T,{"db.pool.outcome":"error"}),K})},_}var iN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function tN(){try{return h().databasePgSsl}catch{return!1}}function i_(){try{return h().databasePoolMax}catch{return 10}}function SQ(_){let x=AQ(new pN({connectionString:_,max:i_(),ssl:tN(),...iN})),u=new kN({pool:x});return{type:"postgres",db:new GQ({dialect:u,log:OQ(x)}),pool:x}}function z_(){return h().databaseUrl}function vN(_){let x=_||z_();return new kN({pool:new pN({connectionString:x,max:i_(),ssl:tN(),...iN})})}function IQ(_){let x=_||z_();return SQ(x)}async function qN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===E_)E_=null}var E_=null;function DT(){if(!E_)E_=IQ(z_());return E_}async function gN(_){let u={database:vN(_||z_()),plugins:[kQ({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),pQ(),iQ(),tQ(),gQ(),qQ({loginPage:"/login"}),VQ(),vQ({sendMagicLink:async()=>{}}),cQ({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:N}=await wQ(u);if(!T.length&&!C.length)return"up to date";return await N(),`${C.length+T.length} table(s) migrated`}async function hN(_,x){return(await a`
|
|
1805
1805
|
SELECT table_name FROM information_schema.tables
|
|
1806
1806
|
WHERE table_schema='public' AND table_name=${x}
|
|
1807
|
-
`.execute(_)).rows.length>0}async function
|
|
1807
|
+
`.execute(_)).rows.length>0}async function hQ(_){if(await hN(_,"plugin_migrations"))return;await a`
|
|
1808
1808
|
CREATE TABLE plugin_migrations (
|
|
1809
1809
|
plugin_id TEXT NOT NULL,
|
|
1810
1810
|
name TEXT NOT NULL,
|
|
1811
1811
|
timestamp TEXT NOT NULL,
|
|
1812
1812
|
PRIMARY KEY (plugin_id, name)
|
|
1813
1813
|
)
|
|
1814
|
-
`.execute(_)}async function
|
|
1814
|
+
`.execute(_)}async function oQ(_){if(!await hN(_,"kysely_migration"))return;let x=await a`
|
|
1815
1815
|
SELECT name, timestamp FROM kysely_migration
|
|
1816
1816
|
WHERE name LIKE '%/%'
|
|
1817
|
-
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:T}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let
|
|
1817
|
+
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:T}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let N=C.indexOf("/");if(N===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let E=C.substring(0,N),K=C.substring(N+1);try{await a`
|
|
1818
1818
|
INSERT INTO plugin_migrations (plugin_id, name, timestamp)
|
|
1819
|
-
VALUES (${E}, ${
|
|
1819
|
+
VALUES (${E}, ${K}, ${T})
|
|
1820
1820
|
`.execute(_)}catch{let z=await a`
|
|
1821
1821
|
SELECT COUNT(*) as cnt FROM plugin_migrations
|
|
1822
|
-
WHERE plugin_id = ${E} AND name = ${
|
|
1823
|
-
`.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${
|
|
1822
|
+
WHERE plugin_id = ${E} AND name = ${K}
|
|
1823
|
+
`.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${K}, keeping in old table`);continue}}await a`
|
|
1824
1824
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
1825
|
-
`.execute(_)}}async function
|
|
1825
|
+
`.execute(_)}}async function aQ(_){await hQ(_),await oQ(_);let x=new cN({db:_,provider:{getMigrations:()=>Promise.resolve(UT)}}),{error:u,results:T}=await x.migrateToLatest(),C=0;if(T?.forEach((N)=>{if(N.status==="Success")C++;else if(N.status==="Error")console.error(`Failed to execute migration "${N.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function rQ(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await gN();let N=u??DT(),E=async()=>{if(!x&&!u)await qN(N).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await aQ(N.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function YL(){let _=DT(),x=new cN({db:_.db,provider:{getMigrations:()=>Promise.resolve(UT)}}),{error:u,results:T}=await x.migrateDown();if(T?.forEach((C)=>{if(C.status==="Success")console.log(`\u2705 Migration "${C.migrationName}" rolled back successfully`);else if(C.status==="Error")console.error(`\u274C Failed to rollback migration "${C.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await rQ(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{aQ as runKyselyMigrations,rQ as migrateToLatest,YL as migrateDown};
|