decocms 4.235.0 → 4.235.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-DhpRwzB9.js → AlertCircle-DGAAcGLZ.js} +1 -1
- package/dist/client/assets/{AreaChart-B5ojN-ie.js → AreaChart-ClmbQ9o8.js} +1 -1
- package/dist/client/assets/{ArrowLeft-jgVBnqT7.js → ArrowLeft-D0Hxwldu.js} +1 -1
- package/dist/client/assets/{ArrowUp-k_8hNJuH.js → ArrowUp-Cwh2JKAG.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-BWbL1ENY.js → ArrowUpRight-yTwz4fJX.js} +1 -1
- package/dist/client/assets/{Check-PDGbmWh6.js → Check-DPU3qMnE.js} +1 -1
- package/dist/client/assets/{CheckCircle-CkJ93h3j.js → CheckCircle-CFuoxQ3V.js} +1 -1
- package/dist/client/assets/{ChevronDown-g4EzcrUF.js → ChevronDown-CDxQXKQ3.js} +1 -1
- package/dist/client/assets/{ChevronRight-LNBJ1bVx.js → ChevronRight-COngcxVg.js} +1 -1
- package/dist/client/assets/{ChevronUp-Bqj2Nevd.js → ChevronUp-CtuzvfYH.js} +1 -1
- package/dist/client/assets/{Copy01-BrBG1mb-.js → Copy01-BHo0zxys.js} +1 -1
- package/dist/client/assets/{CpuChip01-BdR1TzCJ.js → CpuChip01-DNz1e-1j.js} +1 -1
- package/dist/client/assets/{CreditCard01-DfLCyNya.js → CreditCard01-i5vjt-xs.js} +1 -1
- package/dist/client/assets/{DotsVertical-DVwJIFyk.js → DotsVertical-1xoSHkTS.js} +1 -1
- package/dist/client/assets/{Eye-2Za14PvL.js → Eye-C8A5iNxC.js} +1 -1
- package/dist/client/assets/{FilterLines-Bao3t7wx.js → FilterLines-BrDQp9tC.js} +1 -1
- package/dist/client/assets/{Globe01-oLxgSWg9.js → Globe01-BS-FT6Ib.js} +1 -1
- package/dist/client/assets/{Globe04-Cfn05vj_.js → Globe04-DlYQuIAI.js} +1 -1
- package/dist/client/assets/{HardDrive-B7mKfgkk.js → HardDrive-C3sjYzJ6.js} +1 -1
- package/dist/client/assets/{Key01-CpvMyyf1.js → Key01-DHIIS9xh.js} +1 -1
- package/dist/client/assets/{LayoutLeft-CPbsS0H9.js → LayoutLeft-5wZy3XpT.js} +1 -1
- package/dist/client/assets/{LinkExternal01-WEAeStl5.js → LinkExternal01-CiybGNcX.js} +1 -1
- package/dist/client/assets/{LogOut01-B9nk2zV1.js → LogOut01-BlGxBhWt.js} +1 -1
- package/dist/client/assets/{Monitor01-dHf4o4Lm.js → Monitor01-D1nF-d8k.js} +1 -1
- package/dist/client/assets/{Palette-5luFUbkn.js → Palette-DFLAtyvP.js} +1 -1
- package/dist/client/assets/{Play-u8RKUOgE.js → Play-Bzk7NHAb.js} +1 -1
- package/dist/client/assets/{Plus-BXyI5W5V.js → Plus-6DwZVNck.js} +1 -1
- package/dist/client/assets/{SearchLg-C-HSASaD.js → SearchLg-BTDenRrr.js} +1 -1
- package/dist/client/assets/{SearchMd-D0w4Qck0.js → SearchMd-C0jQ-JtA.js} +1 -1
- package/dist/client/assets/{Settings02-BfvgzwsC.js → Settings02-CQ_YBSRl.js} +1 -1
- package/dist/client/assets/{Share07-AmafGmXq.js → Share07-DNvGaa3z.js} +1 -1
- package/dist/client/assets/{Shield01-Q9cD5PhS.js → Shield01-KFQwMbLw.js} +1 -1
- package/dist/client/assets/{Star01-HQ5zaxBt.js → Star01-Ch5vL_HW.js} +1 -1
- package/dist/client/assets/{Stars01-DPTd-IIJ.js → Stars01-BKbWDlg0.js} +1 -1
- package/dist/client/assets/{Stars02-BsV8lJrt.js → Stars02-CbmHZcdR.js} +1 -1
- package/dist/client/assets/{Sun-B9KCp7DY.js → Sun-BCmV-V0x.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-CQ1ESORY.js → SwitchHorizontal01-BOUECs-i.js} +1 -1
- package/dist/client/assets/{Tool01-UIX8wv2D.js → Tool01-CCUCyiYP.js} +1 -1
- package/dist/client/assets/{Tool02-D1_-NCDI.js → Tool02-Oxl9VdAU.js} +1 -1
- package/dist/client/assets/{Trash01-CM1y68V4.js → Trash01-DILZ0JhX.js} +1 -1
- package/dist/client/assets/{TrendUp01-DCHfnHwK.js → TrendUp01-CEoUzwtG.js} +1 -1
- package/dist/client/assets/{Upload01-DMRrFtU2.js → Upload01-BLBKPEde.js} +1 -1
- package/dist/client/assets/{User01-B9SplPDx.js → User01-BaAZRdlX.js} +1 -1
- package/dist/client/assets/{Users01-BzBrg0ZX.js → Users01-CEPZZM2j.js} +1 -1
- package/dist/client/assets/{Users03-ClXJnKMN.js → Users03-Q6wyEfBv.js} +1 -1
- package/dist/client/assets/{X-QRTj5BrM.js → X-DK7Yc4rj.js} +1 -1
- package/dist/client/assets/{XCircle-DHrUxowR.js → XCircle-D0sQ0htd.js} +1 -1
- package/dist/client/assets/{XClose-B627c_Vw.js → XClose-B-pbjqWB.js} +1 -1
- package/dist/client/assets/{YAxis-D2jKoD7e.js → YAxis-D6L35ubX.js} +1 -1
- package/dist/client/assets/{Zap-DSqrbWsY.js → Zap-IbdA8s62.js} +1 -1
- package/dist/client/assets/{ZapSquare-CiZoSPa1.js → ZapSquare-MtMoEV-0.js} +1 -1
- package/dist/client/assets/{access-gate-CnpvAtvi.js → access-gate-mP3K4dtD.js} +1 -1
- package/dist/client/assets/{agent-icon-DkyeFSsr.js → agent-icon-DOQVKT6p.js} +1 -1
- package/dist/client/assets/{agents-list-CIvdSNE1.js → agents-list-DXkhW32K.js} +1 -1
- package/dist/client/assets/{ai-providers-oU33l0fi.js → ai-providers-CRPMDGfx.js} +1 -1
- package/dist/client/assets/{alert-dialog-CbWOuX8R.js → alert-dialog-BYY9H9Nk.js} +1 -1
- package/dist/client/assets/{alert-CnQZKblO.js → alert-eVIvUB7b.js} +1 -1
- package/dist/client/assets/{api-keys-CwEdeP-F.js → api-keys-D8jFuqIr.js} +1 -1
- package/dist/client/assets/{app-editor-IISvFL2K.js → app-editor-D4GlPJPX.js} +1 -1
- package/dist/client/assets/{auth-BSnkvOr9.js → auth-CWeGXrYi.js} +1 -1
- package/dist/client/assets/{auth-catchall-D2b6HTzL.js → auth-catchall-Cl3Hk5ob.js} +1 -1
- package/dist/client/assets/{auth-entry-AukggBM6.js → auth-entry-DI3EIfDq.js} +1 -1
- package/dist/client/assets/{auth-split-layout-4cU-YsVY.js → auth-split-layout-CQY87aqR.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-BEZ_C5HG.js → authenticate-and-persist-oauth-BD3Cnx1S.js} +1 -1
- package/dist/client/assets/{automation-list-row-7HrVeNZG.js → automation-list-row-grG9E0cT.js} +1 -1
- package/dist/client/assets/{automation-runs-DxoBVAKN.js → automation-runs-B1gXrPtV.js} +1 -1
- package/dist/client/assets/{automations-B47QolDt.js → automations-BSXlKUZ7.js} +1 -1
- package/dist/client/assets/{avatar-P3_v_NAz.js → avatar-mUaEOQlV.js} +1 -1
- package/dist/client/assets/{badge-C1JzjZR_.js → badge-6exbNvpG.js} +1 -1
- package/dist/client/assets/{billing-CWhhqZ_Y.js → billing-WTKKxLnp.js} +1 -1
- package/dist/client/assets/{block-document-DrwN_9l7.js → block-document-yqo7RejX.js} +1 -1
- package/dist/client/assets/{brand-context-CvOIRyXz.js → brand-context-Ba8sbKQL.js} +1 -1
- package/dist/client/assets/{buckets-DOMiVucp.js → buckets-DPOoXayH.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-Dir5ualU.js → bulk-category-panel-B9nJsUUX.js} +1 -1
- package/dist/client/assets/{capability-load-error-DN762eMk.js → capability-load-error-CUqgRtuP.js} +1 -1
- package/dist/client/assets/{card-p1m4joJM.js → card-kXnPozrB.js} +1 -1
- package/dist/client/assets/{cards-DBg4V9b2.js → cards-DxddXBLZ.js} +1 -1
- package/dist/client/assets/{category-editor-BikDoU2k.js → category-editor-CdKQGfVW.js} +1 -1
- package/dist/client/assets/{chart-B0IqnL8c.js → chart-Dgl2zwzl.js} +1 -1
- package/dist/client/assets/{chat-context-CRUy13w1.js → chat-context-C9k-78D3.js} +1 -1
- package/dist/client/assets/{checkbox-CchUxqgJ.js → checkbox-BilaxzMu.js} +1 -1
- package/dist/client/assets/{cli-auth-success-DQjLe6R2.js → cli-auth-success-BfomjFuK.js} +1 -1
- package/dist/client/assets/{collection-detail-CivLP1mz.js → collection-detail-DWpz0XT2.js} +1 -1
- package/dist/client/assets/{collection-display-button-IHdp-B_0.js → collection-display-button-Cau5fqAu.js} +1 -1
- package/dist/client/assets/{collection-search-Cl71gN_N.js → collection-search-BEpqplo7.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-a2DvIzca.js → collection-table-wrapper-C271Mcfk.js} +1 -1
- package/dist/client/assets/{collection-tabs-Cop7MY_6.js → collection-tabs-D1kLes9H.js} +1 -1
- package/dist/client/assets/{command-C4F2Utv8.js → command-DpOhUC3T.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-DG_2ajnF.js → commerce-onboarding-Dc5WwRVq.js} +1 -1
- package/dist/client/assets/{connect-C28GSrix.js → connect-DD8XkESu.js} +1 -1
- package/dist/client/assets/{connection-Bx6eex29.js → connection-Rkt1p1Wf.js} +1 -1
- package/dist/client/assets/{connection-card-XId4-jpr.js → connection-card-BalSii-K.js} +1 -1
- package/dist/client/assets/{connection-detail-Ccia4nx9.js → connection-detail-DCyN7500.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-D-hjRB-2.js → connection-form-helpers-pC83_Xtx.js} +1 -1
- package/dist/client/assets/{connections-k4E6tqXD.js → connections-D-KYh_Hx.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-D7pbe6RU.js → decopilot-sse-pool-D5jZam0C.js} +1 -1
- package/dist/client/assets/{dialog-CIGzdMua.js → dialog-BzyNiq-4.js} +1 -1
- package/dist/client/assets/{domain-settings-B_WKuX5d.js → domain-settings-CXdA6FVv.js} +1 -1
- package/dist/client/assets/{drawer-BdIRcxnD.js → drawer-CqtHM-Oi.js} +1 -1
- package/dist/client/assets/{dropdown-menu-C6ogoVKR.js → dropdown-menu-BVIWxDOY.js} +1 -1
- package/dist/client/assets/{empty-state-BGGeFl0Z.js → empty-state-sxPwsEab.js} +1 -1
- package/dist/client/assets/{extract-connection-data-D4fmQsKZ.js → extract-connection-data-CT6fsBnt.js} +1 -1
- package/dist/client/assets/{file-explorer-D4nowlAn.js → file-explorer-Cui5Cmyb.js} +1 -1
- package/dist/client/assets/{file-type-icon-gwL2K8IC.js → file-type-icon-CP9GwE6U.js} +1 -1
- package/dist/client/assets/{form-DyoMgY6-.js → form-BH-w8XbU.js} +1 -1
- package/dist/client/assets/{general-Bd02t0wx.js → general-C4K9s46y.js} +1 -1
- package/dist/client/assets/{github-repo-picker-C68FkYjA.js → github-repo-picker-CaVDp-D-.js} +1 -1
- package/dist/client/assets/{hooks-BwSvLXx7.js → hooks-DniYwdWR.js} +1 -1
- package/dist/client/assets/{index-CT865qHQ.js → index-CFivSjFl.js} +1 -1
- package/dist/client/assets/{index-yLSGmj4T.js → index-CLnzejRk.js} +3 -3
- package/dist/client/assets/{index-C8BiJ7E3.js → index-D04qPrkM.js} +1 -1
- package/dist/client/assets/{index-BlstV6rA.js → index-D85YxWVt.js} +1 -1
- package/dist/client/assets/{index-CURzwHjl.js → index-DTG_Da9F.js} +1 -1
- package/dist/client/assets/{index-ChSTgWsl.js → index-Dat0Lg3u.js} +1 -1
- package/dist/client/assets/{index-CybpydvN.js → index-DkKUo6_9.js} +1 -1
- package/dist/client/assets/{index-MX-v2N7n.js → index-JSAYJGb3.js} +58 -58
- package/dist/client/assets/{index-DqSSr3Qv.js → index-LzFaRWy7.js} +1 -1
- package/dist/client/assets/{index-tgHkjyXk.js → index-MxGz5g6_.js} +1 -1
- package/dist/client/assets/{index-redirect-D_ViGQrD.js → index-redirect-DiNm6Bgr.js} +1 -1
- package/dist/client/assets/{infra-billing-BvRWRRxZ.js → infra-billing-DsCjx3XR.js} +1 -1
- package/dist/client/assets/{input-CIyJ4HN7.js → input-D7JdppQ6.js} +1 -1
- package/dist/client/assets/{integration-icon-DvJFOfr8.js → integration-icon-DA5NwAGO.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-D5zopJqm.js → invite-member-dialog-BAWFLKWv.js} +1 -1
- package/dist/client/assets/{label-4Nq2Fh-z.js → label-CljJw0E9.js} +1 -1
- package/dist/client/assets/{layout-C__WxHXB.js → layout-CXLoTAJS.js} +1 -1
- package/dist/client/assets/{login-FhUyb9NB.js → login-DyaorMAV.js} +1 -1
- package/dist/client/assets/{mcp-oauth-CqM5PhIn.js → mcp-oauth-E_3ivFBH.js} +1 -1
- package/dist/client/assets/{members-DANjwLjo.js → members-CAUBDoLO.js} +1 -1
- package/dist/client/assets/{monaco-editor-tAwhDQSl.js → monaco-editor-BsqrLOSF.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-CjsEvjlw.js → monitoring-stats-row-C-UeXyKc.js} +1 -1
- package/dist/client/assets/{multi-select-7dpY6EuU.js → multi-select-DItKDdIU.js} +1 -1
- package/dist/client/assets/{oauth-callback-DVUZwoBU.js → oauth-callback-A1Y5Z6kX.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-CWQf7_X9.js → oauth-callback-ai-provider-CYPr2yxh.js} +1 -1
- package/dist/client/assets/{onboarding-D76UKn1V.js → onboarding-GNmbyrIW.js} +1 -1
- package/dist/client/assets/{org-layout-CfqzQQGz.js → org-layout-fTKBVIa5.js} +1 -1
- package/dist/client/assets/{organization-choice-CE3dJ-wv.js → organization-choice-DR35zVz7.js} +1 -1
- package/dist/client/assets/{orgs-DETtrlb_.js → orgs-PNh0ZJ8y.js} +1 -1
- package/dist/client/assets/{page-seo-form-Z-LtRcTB.js → page-seo-form-DBAdfWJI.js} +1 -1
- package/dist/client/assets/{popover-By1YHGf3.js → popover-BGGAmqKx.js} +1 -1
- package/dist/client/assets/{post-editor-ksEzaq1h.js → post-editor-C0vrBYnI.js} +1 -1
- package/dist/client/assets/{primitives-X1lr8Oh6.js → primitives-BpmHZzbW.js} +1 -1
- package/dist/client/assets/{profile-hxqCEY9Q.js → profile-8YwZBxRE.js} +1 -1
- package/dist/client/assets/{project-app-view-T8E4Y_ci.js → project-app-view-B3W8Y-EJ.js} +1 -1
- package/dist/client/assets/record-editor-V0XLSvxL.js +1 -0
- package/dist/client/assets/{redirect-editor-BqcdBvsi.js → redirect-editor-BwodB4ap.js} +1 -1
- package/dist/client/assets/registry-BqPsswcq.js +2 -0
- package/dist/client/assets/{registry-layout-DNw3pFDb.js → registry-layout-m3-A9r74.js} +1 -1
- package/dist/client/assets/{reports-2XvYUKs9.js → reports-BJsp3U-R.js} +1 -1
- package/dist/client/assets/{require-capability-DdJ1k03e.js → require-capability-DIH5KDzH.js} +1 -1
- package/dist/client/assets/{required-auth-layout-CdBIJ3iu.js → required-auth-layout-D4CcVALs.js} +1 -1
- package/dist/client/assets/{reset-password-3AmEO8vU.js → reset-password-B6upfFU9.js} +1 -1
- package/dist/client/assets/{roles-xjHrNvFM.js → roles-steAnBs6.js} +1 -1
- package/dist/client/assets/{search-input-BH_nXaUM.js → search-input-DeZeR9zl.js} +1 -1
- package/dist/client/assets/{secrets-DfSsS1f1.js → secrets-C61J86iL.js} +1 -1
- package/dist/client/assets/{sections-editor-CoJxpDrg.js → sections-editor-DgbTUFWu.js} +2 -2
- package/dist/client/assets/{select-DHFcz3Sq.js → select-BvRNmkq9.js} +1 -1
- package/dist/client/assets/{select-model-DF9gN0Rp.js → select-model-BF3HOG7S.js} +1 -1
- package/dist/client/assets/{self-tool-result-DMfy5_-d.js → self-tool-result-Ds25KE80.js} +1 -1
- package/dist/client/assets/{seo-editor-WfZNNdI4.js → seo-editor-jwNMLnES.js} +1 -1
- package/dist/client/assets/{settings-layout-Mkdt-j5C.js → settings-layout-C3w2ZIsm.js} +1 -1
- package/dist/client/assets/{settings-section-CACVOiOT.js → settings-section-nLz7CoIo.js} +1 -1
- package/dist/client/assets/{shell-controls-DI6mduOL.js → shell-controls-D9HbHtOA.js} +1 -1
- package/dist/client/assets/{shell-layout-LpGLVty1.js → shell-layout-CNyirzt4.js} +1 -1
- package/dist/client/assets/{sidebar-B6N4L01u.js → sidebar-DQMWJt8C.js} +1 -1
- package/dist/client/assets/{skeleton-Ckv-naLE.js → skeleton-DlzNnWnq.js} +1 -1
- package/dist/client/assets/{spinner-BUjc9l5O.js → spinner-mlLl2Yhb.js} +1 -1
- package/dist/client/assets/{sso-BpXPikXs.js → sso-CKyexu0f.js} +1 -1
- package/dist/client/assets/{store-a3HnIYA8.js → store-CMa3ZvnT.js} +1 -1
- package/dist/client/assets/store-registry-CxQgbT3d.js +2 -0
- package/dist/client/assets/{studio-tools-CddBHJsY.js → studio-tools-DYunNTVT.js} +1 -1
- package/dist/client/assets/{switch-D90h4UrV.js → switch-DllmwtAE.js} +1 -1
- package/dist/client/assets/{synced-repos-DdB2pmjC.js → synced-repos-Bcbbm1JD.js} +1 -1
- package/dist/client/assets/{tab-id-BQb38pkN.js → tab-id-VKwsOjyO.js} +1 -1
- package/dist/client/assets/{table-C4tfl8m7.js → table-DYC_dE7J.js} +1 -1
- package/dist/client/assets/{tabs-CJVJjlim.js → tabs-BwSFBg23.js} +1 -1
- package/dist/client/assets/{textarea-C9GZg-bi.js → textarea-Dx0EhN5R.js} +1 -1
- package/dist/client/assets/{toggle-group-u0hcQltI.js → toggle-group-BJ2MX2jZ.js} +1 -1
- package/dist/client/assets/{toolbar-DwtY6dmy.js → toolbar-Da6kAU33.js} +1 -1
- package/dist/client/assets/{tooltip-BF5M3Sw2.js → tooltip-_nC8eSks.js} +1 -1
- package/dist/client/assets/{track-HO2G2wp9.js → track-CCIlLGGM.js} +1 -1
- package/dist/client/assets/{types-CbCLAyu9.js → types-Dx38yOmJ.js} +1 -1
- package/dist/client/assets/{use-ai-providers-CuHLenRK.js → use-ai-providers-YBBO0lHq.js} +1 -1
- package/dist/client/assets/{use-api-keys-C2n2ey0Q.js → use-api-keys-DAJj6mw9.js} +1 -1
- package/dist/client/assets/{use-automations-CU74oY-F.js → use-automations-BRQXFojl.js} +1 -1
- package/dist/client/assets/{use-autosave-hszmfI4Q.js → use-autosave-Di1dZfEk.js} +1 -1
- package/dist/client/assets/{use-capability-Bb6HCxyG.js → use-capability-BIM5TzeC.js} +1 -1
- package/dist/client/assets/{use-clock-tick-BNEO1MWa.js → use-clock-tick-D_l68xHi.js} +1 -1
- package/dist/client/assets/{use-commerce-diagnostic-BzP-Z_tk.js → use-commerce-diagnostic-cxqhjUEk.js} +1 -1
- package/dist/client/assets/{use-connection-Dn--uyQL.js → use-connection-D79Ko2YW.js} +1 -1
- package/dist/client/assets/{use-copy-DMIWbs_j.js → use-copy-j1yYhEBA.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-qDCG_d03.js → use-create-virtual-mcp-DCfCSi3P.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-B1e8NX0d.js → use-debounced-autosave-CFZAq7wH.js} +1 -1
- package/dist/client/assets/{use-debounced-value-Bp6jpgAg.js → use-debounced-value-4fW4NxvN.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-BA2h4RqG.js → use-decopilot-events-C3ZHhi9x.js} +1 -1
- package/dist/client/assets/{use-delete-connection-BTOnBH9h.js → use-delete-connection-XWft_Ur5.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-B0EXtv3H.js → use-deployment-admin-BMMCVB4Y.js} +1 -1
- package/dist/client/assets/{use-file-configs-98b8RF9Q.js → use-file-configs-bt-ZQ0pB.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-98l94dUz.js → use-infinite-scroll-CO4D7meb.js} +1 -1
- package/dist/client/assets/{use-infra-billing-ilZ0woTn.js → use-infra-billing-BaqYyWao.js} +1 -1
- package/dist/client/assets/{use-join-requests-uqrl8ORv.js → use-join-requests-YLBKq4g1.js} +1 -1
- package/dist/client/assets/{use-mcp-client-h32VLkS1.js → use-mcp-client-CNT1Qud6.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-CCVvEjIG.js → use-mcp-tools-CsCG-27L.js} +1 -1
- package/dist/client/assets/{use-members-COoeaIvM.js → use-members-BTRTarql.js} +1 -1
- package/dist/client/assets/{use-mobile-VqZ3x1Sb.js → use-mobile-Bsue7ajb.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-BlvVaM8C.js → use-navigate-to-agent-DmiU71lN.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-20iJ00Ex.js → use-open-billing-url-BZuQOGMs.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-B8PvaTui.js → use-org-auth-client-CmcL4tH_.js} +1 -1
- package/dist/client/assets/{use-org-sso-nCIucebw.js → use-org-sso-0Pu1hp_v.js} +1 -1
- package/dist/client/assets/{use-organization-roles-OPv0k4P9.js → use-organization-roles-BZk652Tb.js} +1 -1
- package/dist/client/assets/{use-organization-settings-CzXI6T7w.js → use-organization-settings-BeFMfzSB.js} +1 -1
- package/dist/client/assets/{use-registry-connections-B6lkSEPQ.js → use-registry-connections-CE8CfvMT.js} +1 -1
- package/dist/client/assets/{use-secrets-DWy415cX.js → use-secrets-YLY3B942.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-rp31gOdp.js → use-section-preview-base-i6gDSKks.js} +1 -1
- package/dist/client/assets/{use-status-sounds-BOdvrcda.js → use-status-sounds-BzFASdFs.js} +1 -1
- package/dist/client/assets/{use-tags-OGm2htvT.js → use-tags-CHYjh64q.js} +1 -1
- package/dist/client/assets/{use-view-mode-CUmhZVK4.js → use-view-mode-DplbIfum.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-DvoAIhmm.js → use-virtual-mcp-CdqFXUnV.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-CJbTyn50.js +1 -0
- package/dist/client/assets/{useRouterState-CZy-Bj98.js → useRouterState-NGSniuYR.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CpGvxdoQ.js +1 -0
- package/dist/client/assets/{users-Bm9-U9sy.js → users-DnH35Xcv.js} +1 -1
- package/dist/client/assets/{variant-calendar-C7XBwEkj.js → variant-calendar-D8gETCc-.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-BGXsxqVL.js → view-mode-toggle-50DXH6Qp.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +532 -532
- package/dist/server/migrate-dbos.js +2 -2
- package/dist/server/migrate.js +55 -55
- package/dist/server/server.js +323 -323
- package/package.json +1 -1
- package/dist/client/assets/record-editor-VbBiDztU.js +0 -1
- package/dist/client/assets/registry-B7GTrmpz.js +0 -2
- package/dist/client/assets/store-registry-Ce3OY7Mq.js +0 -2
- package/dist/client/assets/useInfiniteQuery-STmushV7.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CsXaFXTJ.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null,n)}var u=(t,n)=>{for(var _ in n)fm(t,_,{get:n[_],enumerable:!0,configurable:!0,set:Pm.bind(n,_)})};import{Migrator as Km,sql as O}from"kysely";var Wt={};u(Wt,{up:()=>wm,down:()=>Um});import{sql as D}from"kysely";async function wm(t){await t.schema.createTable("connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organizationId","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(n)=>n.notNull()).addColumn("connectionUrl","text",(n)=>n.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(n)=>n.notNull().defaultTo("active")).addColumn("createdAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("api_keys").addColumn("id","text",(n)=>n.primaryKey()).addColumn("userId","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("hashedKey","text",(n)=>n.notNull().unique()).addColumn("permissions","text",(n)=>n.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("audit_logs").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(n)=>n.references("user.id").onDelete("set null")).addColumn("connectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("toolName","text",(n)=>n.notNull()).addColumn("allowed","integer",(n)=>n.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await t.schema.createTable("oauth_clients").addColumn("id","text",(n)=>n.primaryKey()).addColumn("clientId","text",(n)=>n.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(n)=>n.notNull()).addColumn("redirectUris","text",(n)=>n.notNull()).addColumn("grantTypes","text",(n)=>n.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("oauth_authorization_codes").addColumn("code","text",(n)=>n.primaryKey()).addColumn("clientId","text",(n)=>n.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(n)=>n.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(n)=>n.notNull()).addColumn("createdAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(n)=>n.primaryKey()).addColumn("clientId","text",(n)=>n.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("downstream_tokens").addColumn("id","text",(n)=>n.primaryKey()).addColumn("connectionId","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(n)=>n.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(n)=>n.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await t.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await t.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await t.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function Um(t){await t.schema.dropTable("downstream_tokens").execute(),await t.schema.dropTable("oauth_refresh_tokens").execute(),await t.schema.dropTable("oauth_authorization_codes").execute(),await t.schema.dropTable("oauth_clients").execute(),await t.schema.dropTable("audit_logs").execute(),await t.schema.dropTable("api_keys").execute(),await t.schema.dropTable("connections").execute()}var Rt={};u(Rt,{up:()=>Jm,down:()=>jm});import{sql as Tx}from"kysely";async function Jm(t){await t.schema.createTable("organization_settings").addColumn("organizationId","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(n)=>n.notNull().defaultTo(Tx`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(Tx`CURRENT_TIMESTAMP`)).execute()}async function jm(t){await t.schema.dropTable("organization_settings").execute()}var at={};u(at,{up:()=>$m,down:()=>Dm});async function $m(t){await t.schema.alterTable("connections").renameColumn("name","title").execute(),await t.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await t.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await t.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await t.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await t.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await t.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await t.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await t.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await t.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await t.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await t.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function Dm(t){await t.schema.alterTable("connections").renameColumn("title","name").execute(),await t.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await t.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await t.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await t.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await t.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await t.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await t.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await t.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await t.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await t.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await t.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Xt={};u(Xt,{up:()=>Lm,down:()=>Wm});async function Lm(t){await t.schema.createTable("organization_settings_new").addColumn("organizationId","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(n)=>n.notNull()).addColumn("updatedAt","text",(n)=>n.notNull()).execute(),await t.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((n)=>n.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await t.schema.dropTable("organization_settings").execute(),await t.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function Wm(t){await t.schema.createTable("organization_settings_new").addColumn("organizationId","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(n)=>n.notNull()).addColumn("updatedAt","text",(n)=>n.notNull()).execute(),await t.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((n)=>n.selectFrom("organization_settings").select(["organizationId",n.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await t.schema.dropTable("organization_settings").execute(),await t.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Qt={};u(Qt,{up:()=>Rm,down:()=>am});async function Rm(t){await t.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await t.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function am(t){await t.schema.alterTable("connections").dropColumn("configuration_state").execute(),await t.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Zt={};u(Zt,{up:()=>Qm,down:()=>Zm});import{sql as Xm}from"kysely";async function Qm(t){await t.schema.alterTable("organization_settings").addColumn("sidebar_items",Xm`text`).execute()}async function Zm(t){await t.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Ft={};u(Ft,{up:()=>Fm,down:()=>Mm});async function Fm(t){await t.schema.createTable("monitoring_logs").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(n)=>n.notNull()).addColumn("tool_name","text",(n)=>n.notNull()).addColumn("input","text",(n)=>n.notNull()).addColumn("output","text",(n)=>n.notNull()).addColumn("is_error","integer",(n)=>n.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(n)=>n.notNull()).addColumn("timestamp","text",(n)=>n.notNull()).addColumn("user_id","text").addColumn("request_id","text",(n)=>n.notNull()).execute(),await t.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await t.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await t.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function Mm(t){await t.schema.dropIndex("monitoring_logs_is_error").execute(),await t.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await t.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await t.schema.dropTable("monitoring_logs").execute()}var Mt={};u(Mt,{up:()=>Ym,down:()=>Hm});import{sql as I}from"kysely";async function Ym(t){await t.schema.createTable("events").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(n)=>n.notNull()).addColumn("source","text",(n)=>n.notNull()).addColumn("specversion","text",(n)=>n.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(n)=>n.notNull()).addColumn("datacontenttype","text",(n)=>n.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("attempts","integer",(n)=>n.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("event_subscriptions").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(n)=>n.notNull()).addColumn("filter","text").addColumn("enabled","integer",(n)=>n.notNull().defaultTo(1)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("event_deliveries").addColumn("id","text",(n)=>n.primaryKey()).addColumn("event_id","text",(n)=>n.notNull()).addColumn("subscription_id","text",(n)=>n.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("attempts","integer",(n)=>n.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await t.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await t.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await t.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await t.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await t.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await t.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await t.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await t.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function Hm(t){await t.schema.dropIndex("idx_deliveries_retry").execute(),await t.schema.dropIndex("idx_deliveries_subscription_status").execute(),await t.schema.dropIndex("idx_deliveries_event").execute(),await t.schema.dropIndex("idx_subscriptions_unique").execute(),await t.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await t.schema.dropIndex("idx_subscriptions_type").execute(),await t.schema.dropIndex("idx_subscriptions_connection").execute(),await t.schema.dropIndex("idx_events_retry").execute(),await t.schema.dropIndex("idx_events_type").execute(),await t.schema.dropIndex("idx_events_source").execute(),await t.schema.dropIndex("idx_events_org_status").execute(),await t.schema.dropTable("event_deliveries").execute(),await t.schema.dropTable("event_subscriptions").execute(),await t.schema.dropTable("events").execute()}var Yt={};u(Yt,{up:()=>Bm,down:()=>Gm});import{sql as pm}from"kysely";async function Bm(t){await t.schema.dropTable("audit_logs").ifExists().execute()}async function Gm(t){await t.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(n)=>n.references("user.id").onDelete("set null")).addColumn("connectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("toolName","text",(n)=>n.notNull()).addColumn("allowed","integer",(n)=>n.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(n)=>n.notNull().defaultTo(pm`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await t.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await t.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await t.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Ht={};u(Ht,{up:()=>Am,down:()=>Sm});import{sql as d}from"kysely";async function Am(t){await t.schema.createTable("gateways").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(n)=>n.notNull().defaultTo("active")).addColumn("is_default","integer",(n)=>n.notNull().defaultTo(0)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await t.schema.createTable("gateway_connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("gateway_id","text",(n)=>n.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await d`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(t),await t.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function Sm(t){await t.schema.dropIndex("idx_gateway_connections_unique").execute(),await t.schema.dropIndex("idx_gateway_connections_connection").execute(),await t.schema.dropIndex("idx_gateway_connections_gateway").execute(),await t.schema.dropIndex("idx_gateways_default_per_org").execute(),await t.schema.dropIndex("idx_gateways_org_status").execute(),await t.schema.dropIndex("idx_gateways_org").execute(),await t.schema.dropTable("gateway_connections").execute(),await t.schema.dropTable("gateways").execute()}var pt={};u(pt,{up:()=>Om,down:()=>Im});async function Om(t){await t.schema.alterTable("gateways").addColumn("icon","text").execute()}async function Im(t){await t.schema.alterTable("gateways").dropColumn("icon").execute()}var Bt={};u(Bt,{up:()=>om,down:()=>em});import{sql as b}from"kysely";async function om(t){await t.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(n)=>n.notNull().defaultTo("inclusion")).execute(),await b`
|
|
2
|
+
var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null,n)}var u=(t,n)=>{for(var _ in n)fm(t,_,{get:n[_],enumerable:!0,configurable:!0,set:Pm.bind(n,_)})};import{Migrator as Em,sql as O}from"kysely";var Wt={};u(Wt,{up:()=>wm,down:()=>Um});import{sql as D}from"kysely";async function wm(t){await t.schema.createTable("connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organizationId","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(n)=>n.notNull()).addColumn("connectionUrl","text",(n)=>n.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(n)=>n.notNull().defaultTo("active")).addColumn("createdAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("api_keys").addColumn("id","text",(n)=>n.primaryKey()).addColumn("userId","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("hashedKey","text",(n)=>n.notNull().unique()).addColumn("permissions","text",(n)=>n.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("audit_logs").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(n)=>n.references("user.id").onDelete("set null")).addColumn("connectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("toolName","text",(n)=>n.notNull()).addColumn("allowed","integer",(n)=>n.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await t.schema.createTable("oauth_clients").addColumn("id","text",(n)=>n.primaryKey()).addColumn("clientId","text",(n)=>n.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(n)=>n.notNull()).addColumn("redirectUris","text",(n)=>n.notNull()).addColumn("grantTypes","text",(n)=>n.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("oauth_authorization_codes").addColumn("code","text",(n)=>n.primaryKey()).addColumn("clientId","text",(n)=>n.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(n)=>n.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(n)=>n.notNull()).addColumn("createdAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(n)=>n.primaryKey()).addColumn("clientId","text",(n)=>n.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("downstream_tokens").addColumn("id","text",(n)=>n.primaryKey()).addColumn("connectionId","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(n)=>n.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(n)=>n.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await t.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await t.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await t.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function Um(t){await t.schema.dropTable("downstream_tokens").execute(),await t.schema.dropTable("oauth_refresh_tokens").execute(),await t.schema.dropTable("oauth_authorization_codes").execute(),await t.schema.dropTable("oauth_clients").execute(),await t.schema.dropTable("audit_logs").execute(),await t.schema.dropTable("api_keys").execute(),await t.schema.dropTable("connections").execute()}var at={};u(at,{up:()=>Jm,down:()=>jm});import{sql as Tx}from"kysely";async function Jm(t){await t.schema.createTable("organization_settings").addColumn("organizationId","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(n)=>n.notNull().defaultTo(Tx`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(Tx`CURRENT_TIMESTAMP`)).execute()}async function jm(t){await t.schema.dropTable("organization_settings").execute()}var Rt={};u(Rt,{up:()=>$m,down:()=>Dm});async function $m(t){await t.schema.alterTable("connections").renameColumn("name","title").execute(),await t.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await t.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await t.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await t.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await t.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await t.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await t.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await t.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await t.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await t.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await t.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function Dm(t){await t.schema.alterTable("connections").renameColumn("title","name").execute(),await t.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await t.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await t.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await t.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await t.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await t.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await t.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await t.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await t.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await t.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await t.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Xt={};u(Xt,{up:()=>Lm,down:()=>Wm});async function Lm(t){await t.schema.createTable("organization_settings_new").addColumn("organizationId","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(n)=>n.notNull()).addColumn("updatedAt","text",(n)=>n.notNull()).execute(),await t.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((n)=>n.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await t.schema.dropTable("organization_settings").execute(),await t.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function Wm(t){await t.schema.createTable("organization_settings_new").addColumn("organizationId","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(n)=>n.notNull()).addColumn("updatedAt","text",(n)=>n.notNull()).execute(),await t.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((n)=>n.selectFrom("organization_settings").select(["organizationId",n.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await t.schema.dropTable("organization_settings").execute(),await t.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Qt={};u(Qt,{up:()=>am,down:()=>Rm});async function am(t){await t.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await t.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function Rm(t){await t.schema.alterTable("connections").dropColumn("configuration_state").execute(),await t.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Zt={};u(Zt,{up:()=>Qm,down:()=>Zm});import{sql as Xm}from"kysely";async function Qm(t){await t.schema.alterTable("organization_settings").addColumn("sidebar_items",Xm`text`).execute()}async function Zm(t){await t.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Ft={};u(Ft,{up:()=>Fm,down:()=>Mm});async function Fm(t){await t.schema.createTable("monitoring_logs").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(n)=>n.notNull()).addColumn("tool_name","text",(n)=>n.notNull()).addColumn("input","text",(n)=>n.notNull()).addColumn("output","text",(n)=>n.notNull()).addColumn("is_error","integer",(n)=>n.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(n)=>n.notNull()).addColumn("timestamp","text",(n)=>n.notNull()).addColumn("user_id","text").addColumn("request_id","text",(n)=>n.notNull()).execute(),await t.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await t.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await t.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function Mm(t){await t.schema.dropIndex("monitoring_logs_is_error").execute(),await t.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await t.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await t.schema.dropTable("monitoring_logs").execute()}var Mt={};u(Mt,{up:()=>Ym,down:()=>Hm});import{sql as I}from"kysely";async function Ym(t){await t.schema.createTable("events").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(n)=>n.notNull()).addColumn("source","text",(n)=>n.notNull()).addColumn("specversion","text",(n)=>n.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(n)=>n.notNull()).addColumn("datacontenttype","text",(n)=>n.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("attempts","integer",(n)=>n.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("event_subscriptions").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(n)=>n.notNull()).addColumn("filter","text").addColumn("enabled","integer",(n)=>n.notNull().defaultTo(1)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("event_deliveries").addColumn("id","text",(n)=>n.primaryKey()).addColumn("event_id","text",(n)=>n.notNull()).addColumn("subscription_id","text",(n)=>n.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("attempts","integer",(n)=>n.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await t.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await t.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await t.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await t.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await t.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await t.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await t.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await t.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function Hm(t){await t.schema.dropIndex("idx_deliveries_retry").execute(),await t.schema.dropIndex("idx_deliveries_subscription_status").execute(),await t.schema.dropIndex("idx_deliveries_event").execute(),await t.schema.dropIndex("idx_subscriptions_unique").execute(),await t.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await t.schema.dropIndex("idx_subscriptions_type").execute(),await t.schema.dropIndex("idx_subscriptions_connection").execute(),await t.schema.dropIndex("idx_events_retry").execute(),await t.schema.dropIndex("idx_events_type").execute(),await t.schema.dropIndex("idx_events_source").execute(),await t.schema.dropIndex("idx_events_org_status").execute(),await t.schema.dropTable("event_deliveries").execute(),await t.schema.dropTable("event_subscriptions").execute(),await t.schema.dropTable("events").execute()}var Yt={};u(Yt,{up:()=>Bm,down:()=>Gm});import{sql as pm}from"kysely";async function Bm(t){await t.schema.dropTable("audit_logs").ifExists().execute()}async function Gm(t){await t.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(n)=>n.references("user.id").onDelete("set null")).addColumn("connectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("toolName","text",(n)=>n.notNull()).addColumn("allowed","integer",(n)=>n.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(n)=>n.notNull().defaultTo(pm`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await t.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await t.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await t.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Ht={};u(Ht,{up:()=>Am,down:()=>Sm});import{sql as d}from"kysely";async function Am(t){await t.schema.createTable("gateways").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(n)=>n.notNull().defaultTo("active")).addColumn("is_default","integer",(n)=>n.notNull().defaultTo(0)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await t.schema.createTable("gateway_connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("gateway_id","text",(n)=>n.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await d`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(t),await t.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function Sm(t){await t.schema.dropIndex("idx_gateway_connections_unique").execute(),await t.schema.dropIndex("idx_gateway_connections_connection").execute(),await t.schema.dropIndex("idx_gateway_connections_gateway").execute(),await t.schema.dropIndex("idx_gateways_default_per_org").execute(),await t.schema.dropIndex("idx_gateways_org_status").execute(),await t.schema.dropIndex("idx_gateways_org").execute(),await t.schema.dropTable("gateway_connections").execute(),await t.schema.dropTable("gateways").execute()}var pt={};u(pt,{up:()=>Om,down:()=>Im});async function Om(t){await t.schema.alterTable("gateways").addColumn("icon","text").execute()}async function Im(t){await t.schema.alterTable("gateways").dropColumn("icon").execute()}var Bt={};u(Bt,{up:()=>om,down:()=>em});import{sql as b}from"kysely";async function om(t){await t.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(n)=>n.notNull().defaultTo("inclusion")).execute(),await b`
|
|
3
3
|
UPDATE gateways
|
|
4
4
|
SET tool_selection_mode = CASE
|
|
5
5
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
@@ -21,7 +21,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
21
21
|
) ranked
|
|
22
22
|
WHERE rn = 1
|
|
23
23
|
)
|
|
24
|
-
`.execute(t),await t.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await t.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await t.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function dm(t){await t.schema.dropIndex("idx_downstream_tokens_connection").execute(),await t.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await t.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var ot={};u(ot,{up:()=>bm,down:()=>ti});async function bm(t){await t.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function ti(t){await t.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(n)=>n.notNull().defaultTo("passthrough")).execute()}var et={};u(et,{up:()=>ni,down:()=>_i});import{sql as Cx}from"kysely";async function ni(t){await Cx`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(t),await t.schema.alterTable("gateways").dropColumn("is_default").execute()}async function _i(t){await t.schema.alterTable("gateways").addColumn("is_default","integer",(n)=>n.notNull().defaultTo(0)).execute(),await Cx`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(t)}var kt={};u(kt,{up:()=>ui,down:()=>xi});async function ui(t){await t.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function xi(t){await t.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var ct={};u(ct,{up:()=>mi,down:()=>ii});import{sql as tt}from"kysely";async function mi(t){await t.schema.createTable("threads").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("hidden","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(tt`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(tt`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await t.schema.createTable("thread_messages").addColumn("id","text",(n)=>n.primaryKey()).addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(n)=>n.notNull()).addColumn("role","text",(n)=>n.notNull()).addColumn("created_at","text",(n)=>n.notNull().defaultTo(tt`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(tt`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await t.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await t.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await t.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function ii(t){await t.schema.dropIndex("idx_thread_messages_thread_created").execute(),await t.schema.dropIndex("idx_thread_messages_thread").execute(),await t.schema.dropIndex("idx_threads_org_updated").execute(),await t.schema.dropIndex("idx_threads_created_by").execute(),await t.schema.dropIndex("idx_threads_org").execute(),await t.schema.dropTable("thread_messages").execute(),await t.schema.dropTable("threads").execute()}var Vt={};u(Vt,{up:()=>Ti,down:()=>Ci});async function Ti(t){await t.schema.dropIndex("idx_gateway_connections_unique").execute(),await t.schema.dropIndex("idx_gateway_connections_connection").execute(),await t.schema.dropIndex("idx_gateway_connections_gateway").execute(),await t.schema.dropIndex("idx_gateways_org_status").execute(),await t.schema.dropIndex("idx_gateways_org").execute(),await t.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await t.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await t.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await t.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await t.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await t.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await t.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function Ci(t){await t.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await t.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await t.schema.dropIndex("idx_virtual_mcps_org").execute(),await t.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await t.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await t.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await t.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await t.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await t.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var ht={};u(ht,{up:()=>yi,down:()=>Ni});async function yi(t){await t.schema.dropIndex("idx_threads_org").execute(),await t.schema.dropIndex("idx_thread_messages_thread").execute(),await t.schema.dropIndex("idx_threads_org_updated").execute(),await t.schema.dropIndex("idx_threads_created_by").execute(),await t.schema.dropIndex("idx_thread_messages_thread_created").execute(),await t.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await t.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await t.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function Ni(t){await t.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await t.schema.dropIndex("idx_threads_created_by_updated").execute(),await t.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await t.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await t.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await t.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await t.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var gt={};u(gt,{up:()=>
|
|
24
|
+
`.execute(t),await t.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await t.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await t.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function dm(t){await t.schema.dropIndex("idx_downstream_tokens_connection").execute(),await t.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await t.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var ot={};u(ot,{up:()=>bm,down:()=>ti});async function bm(t){await t.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function ti(t){await t.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(n)=>n.notNull().defaultTo("passthrough")).execute()}var et={};u(et,{up:()=>ni,down:()=>_i});import{sql as Cx}from"kysely";async function ni(t){await Cx`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(t),await t.schema.alterTable("gateways").dropColumn("is_default").execute()}async function _i(t){await t.schema.alterTable("gateways").addColumn("is_default","integer",(n)=>n.notNull().defaultTo(0)).execute(),await Cx`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(t)}var kt={};u(kt,{up:()=>ui,down:()=>xi});async function ui(t){await t.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function xi(t){await t.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var ct={};u(ct,{up:()=>mi,down:()=>ii});import{sql as tt}from"kysely";async function mi(t){await t.schema.createTable("threads").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("hidden","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(tt`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(tt`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await t.schema.createTable("thread_messages").addColumn("id","text",(n)=>n.primaryKey()).addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(n)=>n.notNull()).addColumn("role","text",(n)=>n.notNull()).addColumn("created_at","text",(n)=>n.notNull().defaultTo(tt`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(tt`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await t.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await t.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await t.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function ii(t){await t.schema.dropIndex("idx_thread_messages_thread_created").execute(),await t.schema.dropIndex("idx_thread_messages_thread").execute(),await t.schema.dropIndex("idx_threads_org_updated").execute(),await t.schema.dropIndex("idx_threads_created_by").execute(),await t.schema.dropIndex("idx_threads_org").execute(),await t.schema.dropTable("thread_messages").execute(),await t.schema.dropTable("threads").execute()}var Vt={};u(Vt,{up:()=>Ti,down:()=>Ci});async function Ti(t){await t.schema.dropIndex("idx_gateway_connections_unique").execute(),await t.schema.dropIndex("idx_gateway_connections_connection").execute(),await t.schema.dropIndex("idx_gateway_connections_gateway").execute(),await t.schema.dropIndex("idx_gateways_org_status").execute(),await t.schema.dropIndex("idx_gateways_org").execute(),await t.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await t.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await t.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await t.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await t.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await t.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await t.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function Ci(t){await t.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await t.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await t.schema.dropIndex("idx_virtual_mcps_org").execute(),await t.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await t.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await t.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await t.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await t.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await t.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var ht={};u(ht,{up:()=>yi,down:()=>Ni});async function yi(t){await t.schema.dropIndex("idx_threads_org").execute(),await t.schema.dropIndex("idx_thread_messages_thread").execute(),await t.schema.dropIndex("idx_threads_org_updated").execute(),await t.schema.dropIndex("idx_threads_created_by").execute(),await t.schema.dropIndex("idx_thread_messages_thread_created").execute(),await t.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await t.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await t.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function Ni(t){await t.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await t.schema.dropIndex("idx_threads_created_by_updated").execute(),await t.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await t.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await t.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await t.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await t.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var gt={};u(gt,{up:()=>Ei,down:()=>Ki});import{sql as z}from"kysely";async function Ei(t){await z`
|
|
25
25
|
INSERT INTO connections (
|
|
26
26
|
id,
|
|
27
27
|
organization_id,
|
|
@@ -68,7 +68,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
68
68
|
created_at,
|
|
69
69
|
updated_at
|
|
70
70
|
FROM virtual_mcps
|
|
71
|
-
`.execute(t),await t.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let n=await z`SELECT current_database()`.execute(t).then(()=>!0).catch(()=>!1);if(n)await z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(t),await z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(t),await z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(t),await z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(t);if(await t.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await t.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),n)await z`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(t),await z`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(t);await t.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await t.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await t.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await t.schema.dropIndex("idx_virtual_mcps_org").execute(),await t.schema.dropTable("virtual_mcps").execute(),await t.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function
|
|
71
|
+
`.execute(t),await t.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let n=await z`SELECT current_database()`.execute(t).then(()=>!0).catch(()=>!1);if(n)await z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(t),await z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(t),await z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(t),await z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(t);if(await t.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await t.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),n)await z`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(t),await z`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(t);await t.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await t.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await t.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await t.schema.dropIndex("idx_virtual_mcps_org").execute(),await t.schema.dropTable("virtual_mcps").execute(),await t.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function Ki(t){await t.schema.createTable("virtual_mcps").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(n)=>n.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(n)=>n.notNull().defaultTo("active")).addColumn("created_at","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await z`
|
|
72
72
|
INSERT INTO virtual_mcps (
|
|
73
73
|
id, organization_id, title, description, icon, status,
|
|
74
74
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -136,7 +136,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
136
136
|
updated_at = CURRENT_TIMESTAMP
|
|
137
137
|
WHERE connection_url LIKE '%/mcp/self'
|
|
138
138
|
AND app_name = '@deco/management-mcp'
|
|
139
|
-
`.execute(t)}var bt={};u(bt,{up:()=>Di,down:()=>Li});async function Di(t){await t.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function Li(t){await t.schema.alterTable("connections").dropColumn("updated_by").execute()}var tn={};u(tn,{up:()=>Wi,down:()=>
|
|
139
|
+
`.execute(t)}var bt={};u(bt,{up:()=>Di,down:()=>Li});async function Di(t){await t.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function Li(t){await t.schema.alterTable("connections").dropColumn("updated_by").execute()}var tn={};u(tn,{up:()=>Wi,down:()=>ai});import{sql as yx}from"kysely";async function Wi(t){await t.schema.createTable("organization_tags").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("created_at","text",(n)=>n.notNull().defaultTo(yx`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("member_tags").addColumn("id","text",(n)=>n.primaryKey()).addColumn("member_id","text",(n)=>n.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(n)=>n.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(n)=>n.notNull().defaultTo(yx`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await t.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await t.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await t.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function ai(t){await t.schema.dropIndex("idx_member_tags_unique").execute(),await t.schema.dropIndex("idx_member_tags_tag").execute(),await t.schema.dropIndex("idx_member_tags_member").execute(),await t.schema.dropIndex("idx_organization_tags_unique_name").execute(),await t.schema.dropIndex("idx_organization_tags_org").execute(),await t.schema.dropTable("member_tags").execute(),await t.schema.dropTable("organization_tags").execute()}var nn={};u(nn,{up:()=>Ri,down:()=>Xi});import{sql as o}from"kysely";async function Ri(t){await o`
|
|
140
140
|
ALTER TABLE connection_aggregations
|
|
141
141
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
142
142
|
`.execute(t),await t.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function Xi(t){if(await t.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await o`SELECT current_database()`.execute(t).then(()=>!0).catch(()=>!1))await o`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(t);else await t.schema.dropIndex("idx_conn_agg_unique").execute(),await t.schema.dropIndex("idx_conn_agg_child").execute(),await t.schema.dropIndex("idx_conn_agg_parent").execute(),await t.schema.createTable("connection_aggregations_new").addColumn("id","text",(_)=>_.primaryKey()).addColumn("parent_connection_id","text",(_)=>_.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(_)=>_.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(_)=>_.notNull().defaultTo(o`CURRENT_TIMESTAMP`)).execute(),await o`
|
|
@@ -148,20 +148,20 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
148
148
|
id, parent_connection_id, child_connection_id,
|
|
149
149
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
150
150
|
FROM connection_aggregations
|
|
151
|
-
`.execute(t),await t.schema.dropTable("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await t.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var _n={};u(_n,{up:()=>Yi,down:()=>Hi});import{webcrypto as
|
|
151
|
+
`.execute(t),await t.schema.dropTable("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await t.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var _n={};u(_n,{up:()=>Yi,down:()=>Hi});import{webcrypto as Ex}from"crypto";var Nx="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Qi=128,F,Y;function Zi(t){if(!F||F.length<t)F=Buffer.allocUnsafe(t*Qi),Ex.getRandomValues(F),Y=0;else if(Y+t>F.length)Ex.getRandomValues(F),Y=0;Y+=t}function H(t=21){Zi(t|=0);let n="";for(let _=Y-t;_<Y;_++)n+=Nx[F[_]&63];return n}var Fi="org-admin",Mi="Organization Admin";async function Yi(t){await t.schema.createTable("projects").addColumn("id","text",(_)=>_.primaryKey()).addColumn("organization_id","text",(_)=>_.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(_)=>_.notNull()).addColumn("name","text",(_)=>_.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(_)=>_.notNull()).addColumn("updated_at","text",(_)=>_.notNull()).execute(),await t.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await t.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await t.schema.createTable("project_plugin_configs").addColumn("id","text",(_)=>_.primaryKey()).addColumn("project_id","text",(_)=>_.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(_)=>_.notNull()).addColumn("connection_id","text",(_)=>_.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(_)=>_.notNull()).addColumn("updated_at","text",(_)=>_.notNull()).execute(),await t.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let n=await t.selectFrom("organization").select(["id"]).execute();for(let _ of n){let m=new Date().toISOString(),x=`proj_${H()}`,i=await t.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",_.id).executeTakeFirst();await t.insertInto("projects").values({id:x,organization_id:_.id,slug:Fi,name:Mi,description:null,enabled_plugins:i?.enabled_plugins??null,ui:null,created_at:m,updated_at:m}).execute()}}async function Hi(t){await t.schema.dropTable("project_plugin_configs").execute(),await t.schema.dropTable("projects").execute()}var un={};u(un,{up:()=>pi,down:()=>Bi});async function pi(t){await t.schema.alterTable("threads").addColumn("status","text",(n)=>n.notNull().defaultTo("completed")).execute()}async function Bi(t){await t.schema.alterTable("threads").dropColumn("status").execute()}var xn={};u(xn,{up:()=>Gi,down:()=>Ai});async function Gi(t){}async function Ai(t){}var mn={};u(mn,{up:()=>Si,down:()=>Oi});async function Si(t){await t.schema.createTable("project_connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("project_id","text",(n)=>n.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(n)=>n.notNull()).execute(),await t.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await t.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function Oi(t){await t.schema.dropIndex("project_connections_project_id_idx").execute(),await t.schema.dropIndex("project_connections_project_conn_unique").execute(),await t.schema.dropTable("project_connections").execute()}var Tn={};u(Tn,{up:()=>Ii,down:()=>oi});import{sql as Kx}from"kysely";async function Ii(t){await Kx`
|
|
152
152
|
UPDATE connections
|
|
153
153
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
154
154
|
tools = NULL,
|
|
155
155
|
updated_at = CURRENT_TIMESTAMP
|
|
156
156
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
157
157
|
AND app_name = 'deco-registry'
|
|
158
|
-
`.execute(t)}async function oi(t){await
|
|
158
|
+
`.execute(t)}async function oi(t){await Kx`
|
|
159
159
|
UPDATE connections
|
|
160
160
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
161
161
|
updated_at = CURRENT_TIMESTAMP
|
|
162
162
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
163
163
|
AND app_name = 'deco-registry'
|
|
164
|
-
`.execute(t)}var Cn={};u(Cn,{up:()=>ki,down:()=>ci});import{sql as ei}from"kysely";async function ki(t){await t.schema.createTable("ai_provider_keys").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(n)=>n.notNull()).addColumn("label","text",(n)=>n.notNull()).addColumn("encrypted_api_key","text",(n)=>n.notNull()).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(ei`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await t.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function ci(t){await t.schema.dropTable("ai_provider_keys").execute()}var yn={};u(yn,{up:()=>hi,down:()=>gi});import{sql as Vi}from"kysely";async function hi(t){await t.schema.createTable("oauth_pkce_states").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("user_id","text",(n)=>n.notNull()).addColumn("code_verifier","text",(n)=>n.notNull()).addColumn("expires_at","timestamptz",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Vi`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function gi(t){await t.schema.dropTable("oauth_pkce_states").execute()}var Nn={};u(Nn,{up:()=>qi,down:()=>vi});import{sql as Q}from"kysely";async function qi(t){await t.schema.createTable("automations").addColumn("id","text",(n)=>n.primaryKey().defaultTo(Q`gen_random_uuid()`)).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("name","text",(n)=>n.notNull()).addColumn("active","boolean",(n)=>n.notNull().defaultTo(!0)).addColumn("created_by","text",(n)=>n.notNull()).addColumn("agent","text",(n)=>n.notNull()).addColumn("messages","text",(n)=>n.notNull()).addColumn("models","text",(n)=>n.notNull()).addColumn("temperature","real",(n)=>n.notNull().defaultTo(0.5)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await t.schema.createTable("automation_triggers").addColumn("id","text",(n)=>n.primaryKey().defaultTo(Q`gen_random_uuid()`)).addColumn("automation_id","text",(n)=>n.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(n)=>n.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",(n)=>n.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await Q`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(t),await Q`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(t),await Q`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(t),await t.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await t.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await t.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await t.schema.alterTable("threads").addColumn("trigger_id","text",(n)=>n.references("automation_triggers.id").onDelete("set null")).execute(),await t.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function vi(t){await t.schema.dropIndex("idx_threads_trigger_status").execute(),await t.schema.alterTable("threads").dropColumn("trigger_id").execute(),await t.schema.dropIndex("idx_automation_triggers_cron").execute(),await t.schema.dropIndex("idx_automation_triggers_event").execute(),await t.schema.dropIndex("idx_automation_triggers_automation").execute(),await t.schema.dropTable("automation_triggers").execute(),await t.schema.dropIndex("idx_automations_active").execute(),await t.schema.dropIndex("idx_automations_org").execute(),await t.schema.dropTable("automations").execute()}var
|
|
164
|
+
`.execute(t)}var Cn={};u(Cn,{up:()=>ki,down:()=>ci});import{sql as ei}from"kysely";async function ki(t){await t.schema.createTable("ai_provider_keys").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(n)=>n.notNull()).addColumn("label","text",(n)=>n.notNull()).addColumn("encrypted_api_key","text",(n)=>n.notNull()).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(ei`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await t.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function ci(t){await t.schema.dropTable("ai_provider_keys").execute()}var yn={};u(yn,{up:()=>hi,down:()=>gi});import{sql as Vi}from"kysely";async function hi(t){await t.schema.createTable("oauth_pkce_states").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("user_id","text",(n)=>n.notNull()).addColumn("code_verifier","text",(n)=>n.notNull()).addColumn("expires_at","timestamptz",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Vi`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function gi(t){await t.schema.dropTable("oauth_pkce_states").execute()}var Nn={};u(Nn,{up:()=>qi,down:()=>vi});import{sql as Q}from"kysely";async function qi(t){await t.schema.createTable("automations").addColumn("id","text",(n)=>n.primaryKey().defaultTo(Q`gen_random_uuid()`)).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("name","text",(n)=>n.notNull()).addColumn("active","boolean",(n)=>n.notNull().defaultTo(!0)).addColumn("created_by","text",(n)=>n.notNull()).addColumn("agent","text",(n)=>n.notNull()).addColumn("messages","text",(n)=>n.notNull()).addColumn("models","text",(n)=>n.notNull()).addColumn("temperature","real",(n)=>n.notNull().defaultTo(0.5)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await t.schema.createTable("automation_triggers").addColumn("id","text",(n)=>n.primaryKey().defaultTo(Q`gen_random_uuid()`)).addColumn("automation_id","text",(n)=>n.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(n)=>n.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",(n)=>n.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await Q`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(t),await Q`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(t),await Q`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(t),await t.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await t.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await t.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await t.schema.alterTable("threads").addColumn("trigger_id","text",(n)=>n.references("automation_triggers.id").onDelete("set null")).execute(),await t.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function vi(t){await t.schema.dropIndex("idx_threads_trigger_status").execute(),await t.schema.alterTable("threads").dropColumn("trigger_id").execute(),await t.schema.dropIndex("idx_automation_triggers_cron").execute(),await t.schema.dropIndex("idx_automation_triggers_event").execute(),await t.schema.dropIndex("idx_automation_triggers_automation").execute(),await t.schema.dropTable("automation_triggers").execute(),await t.schema.dropIndex("idx_automations_active").execute(),await t.schema.dropIndex("idx_automations_org").execute(),await t.schema.dropTable("automations").execute()}var En={};u(En,{up:()=>ri,down:()=>si});async function ri(t){await t.schema.dropIndex("idx_automation_triggers_cron").execute(),await t.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute(),await t.schema.alterTable("automation_triggers").addColumn("last_run_at","text").execute()}async function si(t){await t.schema.alterTable("automation_triggers").dropColumn("last_run_at").execute(),await t.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await t.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute()}var Kn={};u(Kn,{up:()=>li,down:()=>di});async function li(t){await t.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await t.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function di(t){await t.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await t.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var fn={};u(fn,{up:()=>bi,down:()=>tT});import{sql as fx}from"kysely";async function bi(t){await fx`
|
|
165
165
|
UPDATE connections
|
|
166
166
|
SET title = 'CMS MCP',
|
|
167
167
|
tools = NULL,
|
|
@@ -204,7 +204,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
204
204
|
`.execute(t),await Un`
|
|
205
205
|
DELETE FROM project_plugin_configs
|
|
206
206
|
WHERE plugin_id = 'object-storage'
|
|
207
|
-
`.execute(t)}async function CT(t){}var jn={};u(jn,{up:()=>yT,down:()=>NT});import{sql as Px}from"kysely";async function yT(t){await t.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await Px`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(t)}async function NT(t){await Px`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(t),await t.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var Dn={};u(Dn,{up:()=>
|
|
207
|
+
`.execute(t)}async function CT(t){}var jn={};u(jn,{up:()=>yT,down:()=>NT});import{sql as Px}from"kysely";async function yT(t){await t.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await Px`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(t)}async function NT(t){await Px`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(t),await t.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var Dn={};u(Dn,{up:()=>ET,down:()=>KT});import{sql as $n}from"kysely";async function ET(t){await t.schema.alterTable("connections").addColumn("subtype","text").execute(),await $n`
|
|
208
208
|
ALTER TABLE connections
|
|
209
209
|
ADD CONSTRAINT chk_connections_subtype
|
|
210
210
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
@@ -212,7 +212,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
212
212
|
UPDATE connections
|
|
213
213
|
SET subtype = 'agent'
|
|
214
214
|
WHERE connection_type = 'VIRTUAL'
|
|
215
|
-
`.execute(t),await t.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(T)=>T.primaryKey()).addColumn("virtual_mcp_id","text",(T)=>T.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(T)=>T.notNull()).addColumn("connection_id","text",(T)=>T.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(T)=>T.notNull()).addColumn("updated_at","text",(T)=>T.notNull()).execute(),await t.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await t.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let n=await t.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),_=await t.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),m=new Map;for(let T of _)m.set(T.organizationId,T.userId);let x=new Map;for(let T of n){let y=`vir_${H()}`;x.set(T.id,y);let N=T.ui?JSON.parse(T.ui):null,
|
|
215
|
+
`.execute(t),await t.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(T)=>T.primaryKey()).addColumn("virtual_mcp_id","text",(T)=>T.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(T)=>T.notNull()).addColumn("connection_id","text",(T)=>T.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(T)=>T.notNull()).addColumn("updated_at","text",(T)=>T.notNull()).execute(),await t.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await t.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let n=await t.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),_=await t.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),m=new Map;for(let T of _)m.set(T.organizationId,T.userId);let x=new Map;for(let T of n){let y=`vir_${H()}`;x.set(T.id,y);let N=T.ui?JSON.parse(T.ui):null,E=JSON.stringify({enabled_plugins:T.enabled_plugins?JSON.parse(T.enabled_plugins):null,ui:N,migrated_from_project:T.id,migrated_project_slug:T.slug}),f=m.get(T.organization_id);if(!f)continue;await t.insertInto("connections").values({id:y,organization_id:T.organization_id,created_by:f,updated_by:null,title:T.name,description:T.description,icon:N?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${y}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:E,bindings:null,status:"active",subtype:"project",created_at:T.created_at,updated_at:T.updated_at}).execute()}let i=await t.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let T of i){let y=x.get(T.project_id);if(!y)continue;await t.insertInto("connection_aggregations").values({id:`agg_${H()}`,parent_connection_id:y,child_connection_id:T.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:T.created_at}).onConflict((N)=>N.doNothing()).execute()}let C=await t.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let T of C){let y=x.get(T.project_id);if(!y)continue;await t.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${H()}`,virtual_mcp_id:y,plugin_id:T.plugin_id,connection_id:T.connection_id,settings:T.settings,created_at:T.created_at,updated_at:T.updated_at}).execute()}await t.schema.dropTable("project_plugin_configs").execute(),await t.schema.dropTable("project_connections").execute(),await t.schema.dropTable("projects").execute()}async function KT(t){await t.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await t.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await $n`
|
|
216
216
|
ALTER TABLE connections
|
|
217
217
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
218
218
|
`.execute(t),await t.schema.alterTable("connections").dropColumn("subtype").execute()}var Ln={};u(Ln,{up:()=>zT,down:()=>PT});import{sql as fT}from"kysely";async function zT(t){await fT`
|
|
@@ -220,9 +220,9 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
220
220
|
WHERE connection_type = 'VIRTUAL'
|
|
221
221
|
AND subtype = 'project'
|
|
222
222
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
223
|
-
`.execute(t)}async function PT(t){}var Wn={};u(Wn,{up:()=>UT,down:()=>JT});import{sql as wT}from"kysely";async function UT(t){await t.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await wT`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(t)}async function JT(t){await t.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await t.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var
|
|
223
|
+
`.execute(t)}async function PT(t){}var Wn={};u(Wn,{up:()=>UT,down:()=>JT});import{sql as wT}from"kysely";async function UT(t){await t.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await wT`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(t)}async function JT(t){await t.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await t.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var Rn={};u(Rn,{up:()=>jT,down:()=>$T});import{sql as an}from"kysely";async function jT(t){await t.schema.createTable("org_sso_config").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(n)=>n.notNull()).addColumn("client_id","text",(n)=>n.notNull()).addColumn("client_secret","text",(n)=>n.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(n)=>n.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(n)=>n.notNull()).addColumn("enforced","integer",(n)=>n.notNull().defaultTo(0)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(an`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(an`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await t.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await t.schema.createTable("org_sso_sessions").addColumn("id","text",(n)=>n.primaryKey()).addColumn("user_id","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(n)=>n.notNull()).addColumn("expires_at","text",(n)=>n.notNull()).addColumn("created_at","text",(n)=>n.notNull().defaultTo(an`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function $T(t){await t.schema.dropTable("org_sso_sessions").execute(),await t.schema.dropTable("org_sso_config").execute()}var Xn={};u(Xn,{up:()=>DT,down:()=>LT});async function DT(t){await t.schema.alterTable("threads").addColumn("agent_ids","text",(n)=>n.defaultTo("[]")).execute()}async function LT(t){await t.schema.alterTable("threads").dropColumn("agent_ids").execute()}var Qn={};u(Qn,{up:()=>WT,down:()=>aT});async function WT(t){await t.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function aT(t){await t.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var Fn={};u(Fn,{up:()=>XT,down:()=>QT});import{sql as wx}from"kysely";function Zn(t){return t.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function RT(t){if(t.app_name)return t.app_name;if(t.connection_url)try{let n=new URL(t.connection_url),m=((n.port?`${n.hostname}-${n.port}`:n.hostname)+n.pathname).replace(/\/+$/,"");return Zn(m)}catch{return Zn(t.connection_url)}if(t.title)return Zn(t.title);return t.id}async function XT(t){await t.schema.alterTable("connections").addColumn("slug","text").execute();let n=await wx`
|
|
224
224
|
SELECT id, app_name, connection_url, title FROM connections
|
|
225
|
-
`.execute(t);for(let _ of n.rows){let m=
|
|
225
|
+
`.execute(t);for(let _ of n.rows){let m=RT(_);await wx`UPDATE connections SET slug = ${m} WHERE id = ${_.id}`.execute(t)}await t.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function QT(t){await t.schema.dropIndex("idx_connections_org_slug").execute(),await t.schema.alterTable("connections").dropColumn("slug").execute()}var Mn={};u(Mn,{up:()=>ZT,down:()=>FT});import{sql as e}from"kysely";async function ZT(t){await t.schema.alterTable("connections").addColumn("pinned","boolean",(n)=>n.notNull().defaultTo(!1)).execute(),await e`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(t),await t.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await e`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(t),await t.schema.alterTable("connections").dropColumn("subtype").execute(),await t.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function FT(t){await t.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await t.schema.alterTable("connections").addColumn("subtype","text").execute(),await e`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(t),await e`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(t),await e`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(t),await t.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await t.schema.alterTable("connections").dropColumn("pinned").execute()}var Yn={};u(Yn,{up:()=>MT,down:()=>YT});async function MT(t){await t.schema.alterTable("automations").addColumn("virtual_mcp_id","text").execute(),await t.schema.createIndex("idx_automations_virtual_mcp").on("automations").columns(["virtual_mcp_id"]).execute()}async function YT(t){await t.schema.dropIndex("idx_automations_virtual_mcp").execute(),await t.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var Hn={};u(Hn,{up:()=>HT,down:()=>pT});import{sql as nt}from"kysely";async function HT(t){await t.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(n)=>n.notNull().defaultTo("")).execute(),await nt`
|
|
226
226
|
UPDATE threads
|
|
227
227
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
228
228
|
WHERE agent_ids IS NOT NULL
|
|
@@ -259,7 +259,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
259
259
|
`.execute(t),await p`
|
|
260
260
|
ALTER TABLE event_subscriptions
|
|
261
261
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
262
|
-
`.execute(t)}var In={};u(In,{up:()=>gT,down:()=>qT});import{sql as Ux}from"kysely";async function gT(t){await t.schema.createTable("brand_context").addColumn("id","text",(n)=>n.primaryKey().notNull()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("domain","text",(n)=>n.notNull()).addColumn("overview","text",(n)=>n.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",(n)=>n.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Ux`now()`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(Ux`now()`)).execute(),await t.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function qT(t){await t.schema.dropTable("brand_context").execute()}var on={};u(on,{up:()=>vT,down:()=>rT});import{sql as Jx}from"kysely";async function vT(t){await t.schema.createTable("organization_domains").addColumn("organization_id","text",(n)=>n.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(n)=>n.notNull().unique()).addColumn("auto_join_enabled","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Jx`now()`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(Jx`now()`)).execute()}async function rT(t){await t.schema.dropTable("organization_domains").execute()}var en={};u(en,{up:()=>bT,down:()=>tC});import{sql as jx}from"kysely";var _t=new Set(["primary","secondary","accent","background","foreground"]),sT={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function lT(t){let n={};if(!t)return{structured:null,extra:n};if(!Array.isArray(t)&&typeof t==="object"){let _=t;if(Object.keys(_).some((x)=>_t.has(x))){let x={};for(let[i,C]of Object.entries(_)){if(typeof C!=="string")continue;if(_t.has(i))x[i]=C;else n[i]=C}return{structured:Object.keys(x).length>0?JSON.stringify(x):null,extra:n}}let m={};for(let[x,i]of Object.entries(_)){if(typeof i!=="string")continue;if(_t.has(x.toLowerCase()))m[x.toLowerCase()]=i;else n[x]=i}return{structured:Object.keys(m).length>0?JSON.stringify(m):null,extra:n}}if(Array.isArray(t)){let _={};for(let m of t){let x=m,i=x.label?.toLowerCase?.(),C=x.value;if(!i||!C)continue;if(_t.has(i))_[i]=C;else n[i]=C}return{structured:Object.keys(_).length>0?JSON.stringify(_):null,extra:n}}return{structured:null,extra:n}}function dT(t){if(!t)return null;if(!Array.isArray(t)&&typeof t==="object"){let n=t;if(typeof n.heading==="string"||typeof n.body==="string"||typeof n.code==="string")return JSON.stringify(n);return null}if(Array.isArray(t)){let n={},_=[];for(let m of t){let x=m,i=x.name??x.family??void 0,C=x.role?.toLowerCase?.()??"";if(!i)continue;let T=sT[C];if(T&&!n[T])n[T]=i;else _.push(i)}if(!n.body&&_[0])n.body=_[0];return Object.keys(n).length>0?JSON.stringify(n):null}return null}async function bT(t){let n=await jx`SELECT id, colors, fonts, metadata FROM brand_context`.execute(t);for(let _ of n.rows){let m=!1,x=!1,i=!1,C=_.colors,T=_.fonts,y={};try{y=_.metadata?JSON.parse(_.metadata):{}}catch{}if(_.colors)try{let N=JSON.parse(_.colors);if(Array.isArray(N)){let
|
|
262
|
+
`.execute(t)}var In={};u(In,{up:()=>gT,down:()=>qT});import{sql as Ux}from"kysely";async function gT(t){await t.schema.createTable("brand_context").addColumn("id","text",(n)=>n.primaryKey().notNull()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("domain","text",(n)=>n.notNull()).addColumn("overview","text",(n)=>n.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",(n)=>n.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Ux`now()`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(Ux`now()`)).execute(),await t.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function qT(t){await t.schema.dropTable("brand_context").execute()}var on={};u(on,{up:()=>vT,down:()=>rT});import{sql as Jx}from"kysely";async function vT(t){await t.schema.createTable("organization_domains").addColumn("organization_id","text",(n)=>n.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(n)=>n.notNull().unique()).addColumn("auto_join_enabled","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Jx`now()`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(Jx`now()`)).execute()}async function rT(t){await t.schema.dropTable("organization_domains").execute()}var en={};u(en,{up:()=>bT,down:()=>tC});import{sql as jx}from"kysely";var _t=new Set(["primary","secondary","accent","background","foreground"]),sT={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function lT(t){let n={};if(!t)return{structured:null,extra:n};if(!Array.isArray(t)&&typeof t==="object"){let _=t;if(Object.keys(_).some((x)=>_t.has(x))){let x={};for(let[i,C]of Object.entries(_)){if(typeof C!=="string")continue;if(_t.has(i))x[i]=C;else n[i]=C}return{structured:Object.keys(x).length>0?JSON.stringify(x):null,extra:n}}let m={};for(let[x,i]of Object.entries(_)){if(typeof i!=="string")continue;if(_t.has(x.toLowerCase()))m[x.toLowerCase()]=i;else n[x]=i}return{structured:Object.keys(m).length>0?JSON.stringify(m):null,extra:n}}if(Array.isArray(t)){let _={};for(let m of t){let x=m,i=x.label?.toLowerCase?.(),C=x.value;if(!i||!C)continue;if(_t.has(i))_[i]=C;else n[i]=C}return{structured:Object.keys(_).length>0?JSON.stringify(_):null,extra:n}}return{structured:null,extra:n}}function dT(t){if(!t)return null;if(!Array.isArray(t)&&typeof t==="object"){let n=t;if(typeof n.heading==="string"||typeof n.body==="string"||typeof n.code==="string")return JSON.stringify(n);return null}if(Array.isArray(t)){let n={},_=[];for(let m of t){let x=m,i=x.name??x.family??void 0,C=x.role?.toLowerCase?.()??"";if(!i)continue;let T=sT[C];if(T&&!n[T])n[T]=i;else _.push(i)}if(!n.body&&_[0])n.body=_[0];return Object.keys(n).length>0?JSON.stringify(n):null}return null}async function bT(t){let n=await jx`SELECT id, colors, fonts, metadata FROM brand_context`.execute(t);for(let _ of n.rows){let m=!1,x=!1,i=!1,C=_.colors,T=_.fonts,y={};try{y=_.metadata?JSON.parse(_.metadata):{}}catch{}if(_.colors)try{let N=JSON.parse(_.colors);if(Array.isArray(N)){let E=lT(N);if(C=E.structured,m=!0,Object.keys(E.extra).length>0)y.extraColors=E.extra,i=!0}}catch{}if(_.fonts)try{let N=JSON.parse(_.fonts);if(Array.isArray(N))T=dT(N),x=!0}catch{}if(m||x||i){let N=i?JSON.stringify(y):_.metadata;await jx`
|
|
263
263
|
UPDATE brand_context
|
|
264
264
|
SET
|
|
265
265
|
colors = ${C},
|
|
@@ -267,7 +267,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
267
267
|
metadata = ${N},
|
|
268
268
|
updated_at = NOW()
|
|
269
269
|
WHERE id = ${_.id}
|
|
270
|
-
`.execute(t)}}}async function tC(t){}var kn={};u(kn,{up:()=>_C,down:()=>uC});import{sql as nC}from"kysely";async function _C(t){await t.schema.alterTable("threads").addColumn("metadata","jsonb",(n)=>n.notNull().defaultTo(nC`'{}'::jsonb`)).execute()}async function uC(t){await t.schema.alterTable("threads").dropColumn("metadata").execute()}var cn={};u(cn,{up:()=>xC,down:()=>mC});async function xC(t){await t.schema.alterTable("threads").addColumn("branch","text").execute()}async function mC(t){await t.schema.alterTable("threads").dropColumn("branch").execute()}var Vn={};u(Vn,{up:()=>iC,down:()=>TC});async function iC(t){await t.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(n)=>n.notNull()).addColumn("project_ref","text",(n)=>n.notNull()).addColumn("runner_kind","text",(n)=>n.notNull()).addColumn("handle","text",(n)=>n.notNull()).addColumn("state","jsonb",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await t.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function TC(t){await t.schema.dropTable("sandbox_runner_state").execute()}var hn={};u(hn,{up:()=>CC,down:()=>yC});async function CC(t){await t.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function yC(t){await t.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var gn={};u(gn,{up:()=>NC,down:()=>
|
|
270
|
+
`.execute(t)}}}async function tC(t){}var kn={};u(kn,{up:()=>_C,down:()=>uC});import{sql as nC}from"kysely";async function _C(t){await t.schema.alterTable("threads").addColumn("metadata","jsonb",(n)=>n.notNull().defaultTo(nC`'{}'::jsonb`)).execute()}async function uC(t){await t.schema.alterTable("threads").dropColumn("metadata").execute()}var cn={};u(cn,{up:()=>xC,down:()=>mC});async function xC(t){await t.schema.alterTable("threads").addColumn("branch","text").execute()}async function mC(t){await t.schema.alterTable("threads").dropColumn("branch").execute()}var Vn={};u(Vn,{up:()=>iC,down:()=>TC});async function iC(t){await t.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(n)=>n.notNull()).addColumn("project_ref","text",(n)=>n.notNull()).addColumn("runner_kind","text",(n)=>n.notNull()).addColumn("handle","text",(n)=>n.notNull()).addColumn("state","jsonb",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await t.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function TC(t){await t.schema.dropTable("sandbox_runner_state").execute()}var hn={};u(hn,{up:()=>CC,down:()=>yC});async function CC(t){await t.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function yC(t){await t.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var gn={};u(gn,{up:()=>NC,down:()=>EC});async function NC(t){await t.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function EC(t){await t.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var qn={};u(qn,{up:()=>KC,down:()=>fC});async function KC(t){await t.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function fC(t){await t.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var vn={};u(vn,{up:()=>PC,down:()=>wC});import{sql as $x}from"kysely";var zC=["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 PC(t){let n=await $x`
|
|
271
271
|
SELECT id, permission FROM "organizationRole"
|
|
272
272
|
`.execute(t);for(let _ of n.rows){if(!_.permission)continue;let m;try{m=JSON.parse(_.permission)}catch{continue}let x=m.self;if(!Array.isArray(x))continue;if(x.length===1&&x[0]==="*")continue;let i=x,C=Array.from(new Set([...i,...zC]));if(C.length===i.length)continue;m.self=C;let T=JSON.stringify(m);await $x`
|
|
273
273
|
UPDATE "organizationRole"
|
|
@@ -289,18 +289,18 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
289
289
|
`.execute(t),await k`
|
|
290
290
|
ALTER TABLE automations
|
|
291
291
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
292
|
-
`.execute(t)}var bn={};u(bn,{up:()=>XC,reshapeSimpleMode:()=>Dx,inferAutomationTier:()=>Lx,down:()=>QC,__testing:()=>
|
|
292
|
+
`.execute(t)}var bn={};u(bn,{up:()=>XC,reshapeSimpleMode:()=>Dx,inferAutomationTier:()=>Lx,down:()=>QC,__testing:()=>RC});var WC={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},aC=["fast","smart","thinking","image","web_research"];function dn(t){if(!t||typeof t!=="object")return!1;let n=t;if(!("tiers"in n))return!1;let _=n.tiers;if(!_||typeof _!=="object")return!1;return aC.some((m)=>(m in _))}function Dx(t){if(dn(t))return t;let n=t,_=n?.enabled===!0,m=(x)=>x&&x.keyId&&x.modelId?{keyId:x.keyId,modelId:x.modelId,title:x.title}:null;if(!_)return WC;return{tiers:{fast:m(n?.chat?.fast),smart:m(n?.chat?.smart),thinking:m(n?.chat?.thinking),image:m(n?.image),web_research:m(n?.webResearch)}}}function Lx(t){if(t.tier==="fast"||t.tier==="smart"||t.tier==="thinking")return t.tier;if(t.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Wx(t){if(!(t.tier==="fast"||t.tier==="smart"||t.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((m)=>t[m]===void 0)}var RC={isAlreadyReshapedSimpleMode:dn,isAlreadyReshapedAutomationModels:Wx};async function XC(t){let n=await t.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let m of n){let x=m.simple_mode?typeof m.simple_mode==="string"?JSON.parse(m.simple_mode):m.simple_mode:null;if(dn(x))continue;let i=Dx(x);await t.updateTable("organization_settings").set({simple_mode:JSON.stringify(i)}).where("organizationId","=",m.organizationId).execute()}let _=await t.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let m of _){let x;try{x=typeof m.models==="string"?JSON.parse(m.models):m.models}catch{x={}}if(Wx(x))continue;let i=Lx(x);if(await t.updateTable("automations").set({models:JSON.stringify({tier:i})}).where("id","=",m.id).execute(),x.thinking?.capabilities?.image)console.log(`[migration 077] automation ${m.id} previously used an image-only model; mapped to "${i}"`)}}async function QC(t){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var t_={};u(t_,{up:()=>ZC,down:()=>FC});import{sql as a}from"kysely";async function ZC(t){await t.schema.alterTable("automations").addColumn("kind","text",(n)=>n.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await a`
|
|
293
293
|
ALTER TABLE automations
|
|
294
294
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
295
|
-
`.execute(t),await
|
|
295
|
+
`.execute(t),await a`
|
|
296
296
|
ALTER TABLE automations
|
|
297
297
|
ADD CONSTRAINT chk_automation_kind
|
|
298
298
|
CHECK (kind IN ('agent', 'tool_call'))
|
|
299
|
-
`.execute(t),await
|
|
299
|
+
`.execute(t),await a`
|
|
300
300
|
ALTER TABLE automations
|
|
301
301
|
ADD CONSTRAINT chk_automation_agent_fields
|
|
302
302
|
CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
|
|
303
|
-
`.execute(t),await
|
|
303
|
+
`.execute(t),await a`
|
|
304
304
|
ALTER TABLE automations
|
|
305
305
|
ADD CONSTRAINT chk_automation_tool_call_fields
|
|
306
306
|
CHECK (
|
|
@@ -311,15 +311,15 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
311
311
|
AND tool_input IS NOT NULL
|
|
312
312
|
)
|
|
313
313
|
)
|
|
314
|
-
`.execute(t)}async function FC(t){await
|
|
314
|
+
`.execute(t)}async function FC(t){await a`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(t),await a`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(t),await a`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(t),await a`DELETE FROM automations WHERE kind = 'tool_call'`.execute(t),await a`
|
|
315
315
|
ALTER TABLE automations
|
|
316
316
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
317
|
-
`.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var n_={};u(n_,{up:()=>YC,down:()=>HC});import{sql as
|
|
317
|
+
`.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var n_={};u(n_,{up:()=>YC,down:()=>HC});import{sql as ax}from"kysely";var MC=new Set(["host","docker","agent-sandbox"]);async function YC(t){let n=await ax`
|
|
318
318
|
SELECT id, metadata FROM "connections"
|
|
319
319
|
WHERE connection_type = 'VIRTUAL'
|
|
320
320
|
AND metadata IS NOT NULL
|
|
321
321
|
AND metadata LIKE '%vmMap%'
|
|
322
|
-
`.execute(t);for(let _ of n.rows){if(!_.metadata)continue;let m;try{m=JSON.parse(_.metadata)}catch{continue}let x=m.vmMap;if(!x||typeof x!=="object")continue;let i=!1,C={};for(let[y,N]of Object.entries(x)){if(!N||typeof N!=="object"){i=!0;continue}let
|
|
322
|
+
`.execute(t);for(let _ of n.rows){if(!_.metadata)continue;let m;try{m=JSON.parse(_.metadata)}catch{continue}let x=m.vmMap;if(!x||typeof x!=="object")continue;let i=!1,C={};for(let[y,N]of Object.entries(x)){if(!N||typeof N!=="object"){i=!0;continue}let E={};for(let[f,K]of Object.entries(N)){if(!K||typeof K!=="object"){i=!0;continue}let $=K.runnerKind;if($!==void 0&&!MC.has($)){i=!0;continue}E[f]=K}if(Object.keys(E).length>0)C[y]=E;else i=!0}if(!i)continue;m.vmMap=C;let T=JSON.stringify(m);await ax`
|
|
323
323
|
UPDATE "connections"
|
|
324
324
|
SET metadata = ${T}
|
|
325
325
|
WHERE id = ${_.id}
|
|
@@ -424,7 +424,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
424
424
|
EXCEPTION WHEN undefined_table THEN
|
|
425
425
|
NULL;
|
|
426
426
|
END; $$
|
|
427
|
-
`.execute(t)}var C_={};u(C_,{up:()=>gC,down:()=>qC});import{sql as
|
|
427
|
+
`.execute(t)}var C_={};u(C_,{up:()=>gC,down:()=>qC});import{sql as Rx}from"kysely";async function gC(t){await t.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await t.schema.alterTable("threads").addColumn("harness_id","text").execute(),await Rx`
|
|
428
428
|
DO $$ BEGIN
|
|
429
429
|
UPDATE virtualmcps v
|
|
430
430
|
SET metadata = jsonb_set(
|
|
@@ -463,7 +463,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
463
463
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
464
464
|
NULL;
|
|
465
465
|
END; $$
|
|
466
|
-
`.execute(t)}async function qC(t){await t.schema.alterTable("threads").dropColumn("harness_id").execute(),await t.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await
|
|
466
|
+
`.execute(t)}async function qC(t){await t.schema.alterTable("threads").dropColumn("harness_id").execute(),await t.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await Rx`
|
|
467
467
|
DO $$ BEGIN
|
|
468
468
|
UPDATE virtualmcps v
|
|
469
469
|
SET metadata = jsonb_set(
|
|
@@ -597,7 +597,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
597
597
|
`.execute(t)}async function rC(t){}var N_={};u(N_,{up:()=>lC,down:()=>dC});import{sql as sC}from"kysely";async function lC(t){await sC`
|
|
598
598
|
DELETE FROM ai_provider_keys
|
|
599
599
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
600
|
-
`.execute(t)}async function dC(t){}var
|
|
600
|
+
`.execute(t)}async function dC(t){}var E_={};u(E_,{up:()=>bC,down:()=>ty});import{sql as xt}from"kysely";async function bC(t){await xt`
|
|
601
601
|
UPDATE sandbox_runner_state
|
|
602
602
|
SET sandbox_provider_kind = 'desktop'
|
|
603
603
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
@@ -695,7 +695,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
695
695
|
UPDATE threads
|
|
696
696
|
SET sandbox_provider_kind = 'desktop'
|
|
697
697
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
698
|
-
`.execute(t)}async function ty(t){}var
|
|
698
|
+
`.execute(t)}async function ty(t){}var K_={};u(K_,{up:()=>ny,down:()=>_y});import{sql as V}from"kysely";async function ny(t){await V`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(t),await V`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(t),await t.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function _y(t){await t.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await V`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(t),await V`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(t),await V`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(t)}var f_={};u(f_,{up:()=>uy,down:()=>xy});import{sql as Qx}from"kysely";async function uy(t){await Qx`
|
|
699
699
|
ALTER TABLE organization_domains
|
|
700
700
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
701
701
|
`.execute(t),await t.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function xy(t){await t.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await Qx`
|
|
@@ -796,24 +796,24 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
796
796
|
UPDATE "organizationRole"
|
|
797
797
|
SET permission = ${T}
|
|
798
798
|
WHERE id = ${_.id}
|
|
799
|
-
`.execute(t)}}async function yy(t){}var U_={};u(U_,{up:()=>Ny,down:()=>
|
|
799
|
+
`.execute(t)}}async function yy(t){}var U_={};u(U_,{up:()=>Ny,down:()=>Ey});import{sql as w_}from"kysely";async function Ny(t){await t.schema.createTable("org_file_configs").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("description","text").addColumn("bucket","text",(n)=>n.notNull()).addColumn("region","text",(n)=>n.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(n)=>n.notNull()).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await w_`
|
|
800
800
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
801
801
|
ON org_file_configs (organization_id, lower(name))
|
|
802
|
-
`.execute(t)}async function
|
|
802
|
+
`.execute(t)}async function Ey(t){await t.schema.dropTable("org_file_configs").execute()}var J_={};u(J_,{up:()=>Ky,down:()=>fy});import{sql as R}from"kysely";async function Ky(t){await R`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(t),await R`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(t),await R`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(t),await R`DELETE FROM automations WHERE kind = 'tool_call'`.execute(t),await R`
|
|
803
803
|
ALTER TABLE automations
|
|
804
804
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
805
|
-
`.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function fy(t){await t.schema.alterTable("automations").addColumn("kind","text",(n)=>n.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await
|
|
805
|
+
`.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function fy(t){await t.schema.alterTable("automations").addColumn("kind","text",(n)=>n.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await R`
|
|
806
806
|
ALTER TABLE automations
|
|
807
807
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
808
|
-
`.execute(t),await
|
|
808
|
+
`.execute(t),await R`
|
|
809
809
|
ALTER TABLE automations
|
|
810
810
|
ADD CONSTRAINT chk_automation_kind
|
|
811
811
|
CHECK (kind IN ('agent', 'tool_call'))
|
|
812
|
-
`.execute(t),await
|
|
812
|
+
`.execute(t),await R`
|
|
813
813
|
ALTER TABLE automations
|
|
814
814
|
ADD CONSTRAINT chk_automation_agent_fields
|
|
815
815
|
CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
|
|
816
|
-
`.execute(t),await
|
|
816
|
+
`.execute(t),await R`
|
|
817
817
|
ALTER TABLE automations
|
|
818
818
|
ADD CONSTRAINT chk_automation_tool_call_fields
|
|
819
819
|
CHECK (
|
|
@@ -829,11 +829,11 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
829
829
|
WHERE connection_type = 'VIRTUAL'
|
|
830
830
|
AND metadata IS NOT NULL
|
|
831
831
|
AND metadata LIKE ${"%"+it+"%"}
|
|
832
|
-
`.execute(t);for(let _ of n.rows){if(!_.metadata)continue;let m;try{m=JSON.parse(_.metadata)}catch{continue}let x=m.sandboxMap;if(!x||typeof x!=="object")continue;let i=!1,C={};for(let[y,N]of Object.entries(x)){if(!N||typeof N!=="object"){i=!0;continue}let
|
|
832
|
+
`.execute(t);for(let _ of n.rows){if(!_.metadata)continue;let m;try{m=JSON.parse(_.metadata)}catch{continue}let x=m.sandboxMap;if(!x||typeof x!=="object")continue;let i=!1,C={};for(let[y,N]of Object.entries(x)){if(!N||typeof N!=="object"){i=!0;continue}let E={};for(let[f,K]of Object.entries(N)){if(!K||typeof K!=="object"){i=!0;continue}if(it in K){i=!0;let $={...K};if(delete $[it],Object.keys($).length>0)E[f]=$}else E[f]=K}if(Object.keys(E).length>0)C[y]=E;else i=!0}if(!i)continue;m.sandboxMap=C;let T=JSON.stringify(m);await $_`
|
|
833
833
|
UPDATE "connections"
|
|
834
834
|
SET metadata = ${T}
|
|
835
835
|
WHERE id = ${_.id}
|
|
836
|
-
`.execute(t)}}async function Uy(t){}var L_={};u(L_,{up:()=>Jy,down:()=>jy});import{sql as Tt}from"kysely";async function Jy(t){await t.schema.createTable("thread_message_parts").addColumn("id","text",(n)=>n.primaryKey()).addColumn("seq","integer",(n)=>n.notNull()).addColumn("org_id","text",(n)=>n.notNull()).addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(n)=>n.notNull()).addColumn("message_id","text",(n)=>n.notNull()).addColumn("role","text",(n)=>n.notNull()).addColumn("kind","text",(n)=>n.notNull()).addColumn("payload","jsonb",(n)=>n.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(n)=>n.notNull()).execute(),await Tt`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(t),await Tt`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(t),await Tt`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(t),await Tt`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(t),await t.schema.alterTable("threads").addColumn("message_storage_version","integer",(n)=>n.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function jy(t){await t.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await t.schema.dropTable("thread_message_parts").ifExists().execute()}var W_={};u(W_,{up:()=>$y,down:()=>Dy});async function $y(t){await t.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function Dy(t){await t.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var
|
|
836
|
+
`.execute(t)}}async function Uy(t){}var L_={};u(L_,{up:()=>Jy,down:()=>jy});import{sql as Tt}from"kysely";async function Jy(t){await t.schema.createTable("thread_message_parts").addColumn("id","text",(n)=>n.primaryKey()).addColumn("seq","integer",(n)=>n.notNull()).addColumn("org_id","text",(n)=>n.notNull()).addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(n)=>n.notNull()).addColumn("message_id","text",(n)=>n.notNull()).addColumn("role","text",(n)=>n.notNull()).addColumn("kind","text",(n)=>n.notNull()).addColumn("payload","jsonb",(n)=>n.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(n)=>n.notNull()).execute(),await Tt`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(t),await Tt`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(t),await Tt`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(t),await Tt`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(t),await t.schema.alterTable("threads").addColumn("message_storage_version","integer",(n)=>n.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function jy(t){await t.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await t.schema.dropTable("thread_message_parts").ifExists().execute()}var W_={};u(W_,{up:()=>$y,down:()=>Dy});async function $y(t){await t.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function Dy(t){await t.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var a_={};u(a_,{up:()=>Ly,down:()=>Wy});async function Ly(t){await t.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function Wy(t){await t.schema.alterTable("threads").dropColumn("link_transport").execute()}var R_={};u(R_,{up:()=>ay,down:()=>Ry});async function ay(t){await t.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function Ry(t){await t.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var X_={};u(X_,{up:()=>Xy,down:()=>Qy});async function Xy(t){await t.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await t.schema.alterTable("threads").addColumn("is_observation","boolean",(n)=>n.notNull().defaultTo(!1)).execute(),await t.schema.createTable("thread_observations").addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(n)=>n.notNull()).addColumn("last_observed_at","text",(n)=>n.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function Qy(t){await t.schema.dropTable("thread_observations").execute(),await t.schema.alterTable("threads").dropColumn("is_observation").execute(),await t.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var Q_={};u(Q_,{up:()=>Zy,down:()=>Fy});async function Zy(t){await t.schema.dropTable("thread_observations").ifExists().execute(),await t.schema.alterTable("threads").dropColumn("is_observation").execute(),await t.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function Fy(t){await t.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await t.schema.alterTable("threads").addColumn("is_observation","boolean",(n)=>n.notNull().defaultTo(!1)).execute(),await t.schema.createTable("thread_observations").addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(n)=>n.notNull()).addColumn("last_observed_at","text",(n)=>n.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var F_={};u(F_,{up:()=>Yy,down:()=>Hy});import{sql as W}from"kysely";var U="cluster",J="agent-sandbox";function G(t){return t!==null&&typeof t==="object"&&!Array.isArray(t)}function Z_(t,n,_){if(!G(t))return t;if(t.sandboxProviderKind!==n)return t;return{...t,sandboxProviderKind:_}}function Ct(t){if(!G(t))return!1;if(typeof t.sandboxHandle!=="string")return!1;if(t.previewUrl!==null&&typeof t.previewUrl!=="string")return!1;if(t.sandboxApiUrl!==void 0&&t.sandboxApiUrl!==null&&typeof t.sandboxApiUrl!=="string")return!1;if(t.sandboxProviderKind!==void 0&&t.sandboxProviderKind!==U&&t.sandboxProviderKind!==J&&t.sandboxProviderKind!=="user-desktop")return!1;if(t.createdAt!==void 0&&typeof t.createdAt!=="number")return!1;if(t.startedWith!==void 0){if(!G(t.startedWith))return!1;for(let n of["packageManager","port","path"]){let _=t.startedWith[n];if(_!==void 0&&_!==null&&typeof _!=="string")return!1}}return!0}function My(t,n,_){if(!G(t))return null;let m=!1,x={};for(let[i,C]of Object.entries(t)){if(!G(C)){x[i]=C;continue}let T={};for(let[y,N]of Object.entries(C)){if(!G(N)){T[y]=N;continue}let E={};for(let[f,K]of Object.entries(N)){if(f===n){if(m=!0,!(_ in N))E[_]=Z_(K,n,_);else if(!Ct(N[_])&&Ct(K))E[_]=Z_(K,n,_);continue}let $=Z_(K,n,_);if($!==K)m=!0;if(f===_&&f in E&&Ct(E[f])&&!Ct($))continue;E[f]=$}T[y]=E}x[i]=T}return{sandboxMap:x,changed:m}}async function Fx(t,n,_){let m=await W`
|
|
837
837
|
SELECT id, metadata FROM connections
|
|
838
838
|
WHERE connection_type = 'VIRTUAL'
|
|
839
839
|
AND metadata IS NOT NULL
|
|
@@ -944,7 +944,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
944
944
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
945
945
|
ON organization_join_requests (organization_id, user_id)
|
|
946
946
|
WHERE status = 'pending'
|
|
947
|
-
`.execute(t),await t.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function yN(t){await t.schema.dropTable("organization_join_requests").execute()}var h_={};u(h_,{up:()=>NN,down:()=>
|
|
947
|
+
`.execute(t),await t.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function yN(t){await t.schema.dropTable("organization_join_requests").execute()}var h_={};u(h_,{up:()=>NN,down:()=>EN});async function NN(t){await t.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(n)=>n.notNull().defaultTo(!1)).execute()}async function EN(t){await t.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var g_={};u(g_,{up:()=>KN,down:()=>fN});async function KN(t){await t.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function fN(t){await t.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var r_={};u(r_,{up:()=>wN,splitWebResearchTier:()=>v_,down:()=>UN,__testing:()=>PN});function zN(t){return t.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function q_(t){if(!t||typeof t!=="object")return!1;let n=t.tiers;if(!n||typeof n!=="object")return!1;return"web_search"in n||"deep_research"in n}function v_(t){if(!t||q_(t))return t;let n=t.tiers??{},_=n.web_research??null,{web_research:m,...x}=n,i=null,C=null;if(_)if(zN(_.modelId))C=_;else i=_;return{...t,tiers:{...x,web_search:i,deep_research:C}}}var PN={splitWebResearchTier:v_,isAlreadySplit:q_};async function wN(t){let n=await t.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let _ of n){if(!_.simple_mode)continue;let m=typeof _.simple_mode==="string"?JSON.parse(_.simple_mode):_.simple_mode;if(q_(m))continue;let x=v_(m);await t.updateTable("organization_settings").set({simple_mode:JSON.stringify(x)}).where("organizationId","=",_.organizationId).execute()}}async function UN(t){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var s_={};u(s_,{up:()=>JN,down:()=>jN});import{sql as h}from"kysely";async function JN(t){await t.schema.createTable("connection_workload_tokens").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(n)=>n.notNull().unique()).addColumn("token_prefix","text",(n)=>n.notNull()).addColumn("name","text",(n)=>n.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await h`
|
|
948
948
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
949
949
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
950
950
|
WHERE revoked_at IS NULL
|
|
@@ -1007,7 +1007,7 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
1007
1007
|
BEFORE INSERT ON connection_aggregations
|
|
1008
1008
|
FOR EACH ROW
|
|
1009
1009
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1010
|
-
`.execute(t)}async function WN(t){await M`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(t),await M`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(t),await M`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(t)}var tu={};u(tu,{up:()=>
|
|
1010
|
+
`.execute(t)}async function WN(t){await M`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(t),await M`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(t),await M`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(t)}var tu={};u(tu,{up:()=>aN,down:()=>RN});import{sql as b_}from"kysely";async function aN(t){await t.schema.createTable("task_board_items").addColumn("id","text",(n)=>n.primaryKey().notNull()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("status","text",(n)=>n.notNull().defaultTo("triage")).addColumn("priority","text",(n)=>n.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(b_`now()`)).addColumn("updated_by","text",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(b_`now()`)).execute(),await t.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await t.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(n)=>n.notNull().defaultTo(b_`false`)).execute()}async function RN(t){await t.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await t.schema.dropTable("task_board_items").execute()}var nu={};u(nu,{up:()=>XN,down:()=>QN});async function XN(t){await t.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function QN(t){await t.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var _u={};u(_u,{up:()=>ZN,down:()=>FN});async function ZN(t){await t.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function FN(t){await t.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var uu={};u(uu,{up:()=>MN,down:()=>YN});async function MN(t){await t.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function YN(t){await t.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var xu={};u(xu,{up:()=>pN,down:()=>BN});import{sql as HN}from"kysely";async function pN(t){await t.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(n)=>n.notNull()).addColumn("thread_id","text",(n)=>n.notNull()).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(HN`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await t.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await t.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function BN(t){await t.schema.dropTable("task_board_item_threads").execute()}var mu={};u(mu,{up:()=>GN,down:()=>AN});async function GN(t){await t.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(n)=>n.onDelete("cascade")).execute()}async function AN(t){await t.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var iu={};u(iu,{up:()=>ON,down:()=>IN});import{sql as SN}from"kysely";async function ON(t){await t.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(n)=>n.notNull()).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("url","text",(n)=>n.notNull()).addColumn("pr_number","integer",(n)=>n.notNull()).addColumn("repo_owner","text",(n)=>n.notNull()).addColumn("repo_name","text",(n)=>n.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(SN`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await t.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function IN(t){await t.schema.dropTable("task_board_item_prs").execute()}var Tu={};u(Tu,{up:()=>eN,down:()=>kN});import{sql as oN}from"kysely";async function eN(t){await oN`
|
|
1011
1011
|
DELETE FROM member
|
|
1012
1012
|
WHERE id IN (
|
|
1013
1013
|
SELECT id FROM (
|
|
@@ -1026,38 +1026,38 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
1026
1026
|
) ranked
|
|
1027
1027
|
WHERE ranked.rn > 1
|
|
1028
1028
|
)
|
|
1029
|
-
`.execute(t)}async function kN(t){}var Cu={};u(Cu,{up:()=>cN,down:()=>VN});async function cN(t){await t.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function VN(t){await t.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(n)=>n.notNull().defaultTo(!1)).execute()}var yu={};u(yu,{up:()=>hN,down:()=>gN});async function hN(t){await t.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(n)=>n.onDelete("cascade")).execute(),await t.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(n)=>n.onDelete("cascade")).execute()}async function gN(t){await t.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await t.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var Nu={};u(Nu,{up:()=>vN,down:()=>rN});import{sql as qN}from"kysely";async function vN(t){await t.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(qN`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await t.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await t.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function rN(t){await t.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await t.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await t.schema.dropTable("task_board_import_runs").execute()}var
|
|
1029
|
+
`.execute(t)}async function kN(t){}var Cu={};u(Cu,{up:()=>cN,down:()=>VN});async function cN(t){await t.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function VN(t){await t.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(n)=>n.notNull().defaultTo(!1)).execute()}var yu={};u(yu,{up:()=>hN,down:()=>gN});async function hN(t){await t.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(n)=>n.onDelete("cascade")).execute(),await t.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(n)=>n.onDelete("cascade")).execute()}async function gN(t){await t.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await t.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var Nu={};u(Nu,{up:()=>vN,down:()=>rN});import{sql as qN}from"kysely";async function vN(t){await t.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(qN`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await t.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await t.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function rN(t){await t.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await t.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await t.schema.dropTable("task_board_import_runs").execute()}var Eu={};u(Eu,{up:()=>lN,down:()=>dN});import{sql as sN}from"kysely";async function lN(t){await t.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(n)=>n.notNull()).addColumn("sandbox_provider_kind","text",(n)=>n.notNull()).addColumn("handle","text",(n)=>n.notNull()).addColumn("state","jsonb",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(sN`now()`)).addPrimaryKeyConstraint("agent_sandbox_runner_state_pkey",["project_ref","sandbox_provider_kind"]).execute(),await t.schema.createIndex("agent_sandbox_runner_state_handle_idx").on("agent_sandbox_runner_state").column("handle").execute()}async function dN(t){await t.schema.dropTable("agent_sandbox_runner_state").execute()}var Ku={};u(Ku,{up:()=>bN,down:()=>tE});import{sql as Nt}from"kysely";async function bN(t){await t.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(n)=>n.notNull()).addColumn("branch","text",(n)=>n.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(n)=>n.notNull().defaultTo("running")).addColumn("status","text",(n)=>n.notNull().defaultTo("provisioning")).addColumn("generation","integer",(n)=>n.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(n)=>n.notNull()).addColumn("last_started_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Nt`now()`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(Nt`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",Nt`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",Nt`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await t.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await t.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function tE(t){await t.schema.dropTable("agent_sandbox_sessions").execute()}var fu={};u(fu,{up:()=>nE,down:()=>_E});import{sql as Et}from"kysely";async function nE(t){await t.schema.createTable("organization_billing").addColumn("organization_id","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("billing_mode","text",(n)=>n.notNull().defaultTo("self_serve")).addColumn("status","text",(n)=>n.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",(n)=>n.notNull().defaultTo(Et`now()`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(Et`now()`)).execute(),await t.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Et`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await Et`
|
|
1030
1030
|
insert into organization_billing (organization_id, legacy)
|
|
1031
1031
|
select id, true from organization
|
|
1032
1032
|
on conflict (organization_id) do nothing
|
|
1033
|
-
`.execute(t)}async function
|
|
1033
|
+
`.execute(t)}async function _E(t){await t.schema.dropTable("organization_paid_seat").execute(),await t.schema.dropTable("organization_billing").execute()}var zu={};u(zu,{up:()=>uE,down:()=>xE});import{sql as px}from"kysely";async function uE(t){await t.schema.createTable("seat_change_log").addColumn("id","uuid",(n)=>n.primaryKey().defaultTo(px`gen_random_uuid()`)).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(n)=>n.notNull()).addColumn("seat","text",(n)=>n.notNull()).addColumn("changed_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(px`now()`)).execute(),await t.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function xE(t){await t.schema.dropTable("seat_change_log").execute()}var Pu={};u(Pu,{up:()=>mE,down:()=>iE});async function mE(t){await t.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function iE(t){await t.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var wu={};u(wu,{up:()=>TE,down:()=>CE});import{sql as Bx}from"kysely";async function TE(t){await t.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await Bx`
|
|
1034
1034
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1035
1035
|
on organization_billing (stripe_subscription_id)
|
|
1036
1036
|
where stripe_subscription_id is not null
|
|
1037
|
-
`.execute(t)}async function
|
|
1037
|
+
`.execute(t)}async function CE(t){await Bx`drop index organization_billing_stripe_subscription_id_uq`.execute(t),await t.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var Uu={};u(Uu,{up:()=>yE,down:()=>NE});async function yE(t){await t.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function NE(t){await t.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var Ju={};u(Ju,{up:()=>EE,down:()=>KE});import{sql as Gx}from"kysely";async function EE(t){await Gx`
|
|
1038
1038
|
create index idx_org_billing_benefits_pending
|
|
1039
1039
|
on organization_billing (updated_at)
|
|
1040
1040
|
where benefits_reference_id is not null
|
|
1041
|
-
`.execute(t)}async function
|
|
1041
|
+
`.execute(t)}async function KE(t){await Gx`drop index if exists idx_org_billing_benefits_pending`.execute(t)}var ju={};u(ju,{up:()=>fE,down:()=>zE});import{sql as Ax}from"kysely";async function fE(t){await t.schema.createTable("user_model_preferences").addColumn("user_id","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Ax`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(Ax`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await t.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function zE(t){await t.schema.dropTable("user_model_preferences").execute()}var $u={};u($u,{up:()=>PE,down:()=>wE});async function PE(t){await t.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function wE(t){await t.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var Du={};u(Du,{up:()=>UE,down:()=>JE});async function UE(t){await t.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await t.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function JE(t){}var Lu={};u(Lu,{up:()=>jE,down:()=>$E});import{sql as Sx}from"kysely";async function jE(t){await t.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await Sx`
|
|
1042
1042
|
UPDATE organization_settings
|
|
1043
1043
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1044
1044
|
WHERE reports_only IS NOT NULL
|
|
1045
|
-
`.execute(t),await t.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function $
|
|
1045
|
+
`.execute(t),await t.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function $E(t){await t.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await Sx`
|
|
1046
1046
|
UPDATE organization_settings
|
|
1047
1047
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1048
1048
|
WHERE flags ? 'reports_only'
|
|
1049
|
-
`.execute(t),await t.schema.alterTable("organization_settings").dropColumn("flags").execute()}var Wu={};u(Wu,{up:()=>
|
|
1049
|
+
`.execute(t),await t.schema.alterTable("organization_settings").dropColumn("flags").execute()}var Wu={};u(Wu,{up:()=>LE,down:()=>WE});import{sql as DE}from"kysely";async function LE(t){await t.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(n)=>n.notNull().defaultTo(0)).execute(),await DE`
|
|
1050
1050
|
update task_board_items
|
|
1051
1051
|
set sort_order = -extract(epoch from created_at)
|
|
1052
|
-
`.execute(t)}async function
|
|
1052
|
+
`.execute(t)}async function WE(t){await t.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var au={};u(au,{up:()=>aE,down:()=>RE,ACTIONS:()=>Ox});import{sql as Kt}from"kysely";var Ox=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function aE(t){await t.schema.createTable("task_board_activity").addColumn("id","text",(n)=>n.primaryKey()).addColumn("task_board_item_id","text",(n)=>n.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(n)=>n.notNull()).addColumn("actor_id","text",(n)=>n.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(n)=>n.notNull().defaultTo(Kt`now()`)).addCheckConstraint("chk_task_board_activity_action",Kt`action IN (${Kt.join(Ox.map((n)=>Kt.lit(n)))})`).execute(),await t.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function RE(t){await t.schema.dropIndex("idx_task_board_activity_item").execute(),await t.schema.dropTable("task_board_activity").execute()}var Xu={};u(Xu,{up:()=>XE,down:()=>QE,ACTIONS:()=>Ru});import{sql as g}from"kysely";var Ru=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function XE(t){await t.schema.alterTable("organization_tags").addColumn("color","text").execute(),await t.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(n)=>n.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(n)=>n.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(g`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await t.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await Ix(t,Ru)}async function QE(t){await Ix(t,Ru.filter((n)=>n!=="tags_changed")),await t.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await t.schema.dropTable("task_board_item_tags").execute(),await t.schema.alterTable("organization_tags").dropColumn("color").execute()}async function Ix(t,n){await g`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(t),await g`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${g.join(n.map((_)=>g.lit(_)))}))`.execute(t)}var Zu={};u(Zu,{up:()=>FE,down:()=>ME});import{sql as ox}from"kysely";function Qu(t){return t.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function ZE(t){if(t.app_name)return t.app_name;if(t.connection_url)try{let n=new URL(t.connection_url),m=((n.port?`${n.hostname}-${n.port}`:n.hostname)+n.pathname).replace(/\/+$/,"");return Qu(m)}catch{return Qu(t.connection_url)}if(t.title)return Qu(t.title);return t.id}async function FE(t){let n=await ox`
|
|
1053
1053
|
SELECT id, app_name, connection_url, title, slug
|
|
1054
1054
|
FROM connections
|
|
1055
1055
|
WHERE connection_type != 'VIRTUAL'
|
|
1056
|
-
`.execute(t),_=0;for(let m of n.rows){let x=
|
|
1056
|
+
`.execute(t),_=0;for(let m of n.rows){let x=ZE(m);if(x===m.slug)continue;await ox`UPDATE connections SET slug = ${x} WHERE id = ${m.id}`.execute(t),_++}if(_>0)console.log(`[152] repaired ${_} drifted connection slug(s)`)}async function ME(){}var Fu={};u(Fu,{up:()=>HE,down:()=>pE});import{sql as YE}from"kysely";async function HE(t){await YE`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(t)}async function pE(t){await t.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var Yu={};u(Yu,{up:()=>GE,down:()=>AE,ACTIONS:()=>Mu});import{sql as ft}from"kysely";var Mu=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],BE=new Set(["review_requested","review_approved","review_changes_requested"]);async function GE(t){await ex(t,Mu)}async function AE(t){await ex(t,Mu.filter((n)=>!BE.has(n)))}async function ex(t,n){await ft`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(t),await ft`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${ft.join(n.map((_)=>ft.lit(_)))}))`.execute(t)}var Hu={};u(Hu,{up:()=>OE,down:()=>IE});import{sql as SE}from"kysely";async function OE(t){await t.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(n)=>n.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(n)=>n.notNull()).addColumn("cycle_at","timestamptz",(n)=>n.notNull()).addColumn("token","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(SE`now()`)).addPrimaryKeyConstraint("task_board_review_claims_pkey",["task_board_item_id","reviewer","cycle_at"]).execute(),await t.schema.createIndex("idx_task_board_review_claims_token").on("task_board_review_claims").columns(["task_board_item_id","token"]).execute()}async function IE(t){await t.schema.dropIndex("idx_task_board_review_claims_token").execute(),await t.schema.dropTable("task_board_review_claims").execute()}var Bu={};u(Bu,{up:()=>eE,down:()=>kE,ACTIONS:()=>pu});import{sql as zt}from"kysely";var pu=["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"],oE=new Set(["merge_conflict_resolution"]);async function eE(t){await kx(t,pu)}async function kE(t){await kx(t,pu.filter((n)=>!oE.has(n)))}async function kx(t,n){await zt`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(t),await zt`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${zt.join(n.map((_)=>zt.lit(_)))}))`.execute(t)}var Gu={};u(Gu,{up:()=>cE,down:()=>VE});import{sql as q}from"kysely";async function cE(t){await t.schema.dropTable("seat_change_log").ifExists().execute(),await t.schema.dropTable("organization_paid_seat").ifExists().execute(),await q`drop index if exists idx_org_billing_benefits_pending`.execute(t),await t.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await t.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await t.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await t.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await t.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function VE(t){await t.schema.alterTable("organization_billing").addColumn("legacy","boolean",(n)=>n.notNull().defaultTo(!1)).execute(),await t.schema.alterTable("organization_billing").addColumn("billing_mode","text",(n)=>n.notNull().defaultTo("self_serve")).execute(),await t.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await t.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await t.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await q`
|
|
1057
1057
|
create index idx_org_billing_benefits_pending
|
|
1058
1058
|
on organization_billing (updated_at)
|
|
1059
1059
|
where benefits_reference_id is not null
|
|
1060
|
-
`.execute(t),await t.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(q`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await t.schema.createTable("seat_change_log").addColumn("id","uuid",(n)=>n.primaryKey().defaultTo(q`gen_random_uuid()`)).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(n)=>n.notNull()).addColumn("seat","text",(n)=>n.notNull()).addColumn("changed_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(q`now()`)).execute()}var Au={};u(Au,{up:()=>
|
|
1060
|
+
`.execute(t),await t.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(q`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await t.schema.createTable("seat_change_log").addColumn("id","uuid",(n)=>n.primaryKey().defaultTo(q`gen_random_uuid()`)).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(n)=>n.notNull()).addColumn("seat","text",(n)=>n.notNull()).addColumn("changed_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(q`now()`)).execute()}var Au={};u(Au,{up:()=>hE,down:()=>gE});import{sql as Pt}from"kysely";async function hE(t){await Pt`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(t),await Pt`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(t)}async function gE(t){await Pt`
|
|
1061
1061
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1062
1062
|
RETURNS trigger AS $fn$
|
|
1063
1063
|
BEGIN
|
|
@@ -1083,23 +1083,23 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
1083
1083
|
BEFORE INSERT ON connection_aggregations
|
|
1084
1084
|
FOR EACH ROW
|
|
1085
1085
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1086
|
-
`.execute(t)}var Su={};u(Su,{up:()=>
|
|
1086
|
+
`.execute(t)}var Su={};u(Su,{up:()=>qE,down:()=>vE});import{sql as cx}from"kysely";async function qE(t){await t.schema.createTable("task_board_comments").addColumn("id","text",(n)=>n.primaryKey()).addColumn("task_board_item_id","text",(n)=>n.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(n)=>n.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(n)=>n.notNull()).addColumn("body","text",(n)=>n.notNull()).addColumn("resolved","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(cx`now()`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(cx`now()`)).execute(),await t.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function vE(t){await t.schema.dropIndex("idx_task_board_comments_item").execute(),await t.schema.dropTable("task_board_comments").execute()}var Ou={};u(Ou,{up:()=>rE,down:()=>sE});import{sql as Vx}from"kysely";async function rE(t){await t.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(n)=>n.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(n)=>n.notNull()).addColumn("run_count","integer",(n)=>n.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Vx`now()`)).execute(),await t.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await t.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Vx`now()`)).execute()}async function sE(t){await t.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await t.schema.dropTable("task_quota_claims").ifExists().execute()}var ou={};u(ou,{up:()=>lE,down:()=>dE});import{sql as Iu}from"kysely";async function lE(t){await t.schema.alterTable("task_quota_claims").addColumn("state","text",(n)=>n.notNull().defaultTo("held").check(Iu`state in ('held', 'released')`)).execute(),await t.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await Iu`
|
|
1087
1087
|
create index idx_task_quota_claims_org_period_live
|
|
1088
1088
|
on task_quota_claims (organization_id, period_key)
|
|
1089
1089
|
where state <> 'released'
|
|
1090
|
-
`.execute(t)}async function
|
|
1090
|
+
`.execute(t)}async function dE(t){await Iu`drop index if exists idx_task_quota_claims_org_period_live`.execute(t),await t.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await t.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var eu={};u(eu,{up:()=>bE,down:()=>tK});async function bE(t){await t.schema.createTable("claude_subscriptions").addColumn("user_id","text",(n)=>n.primaryKey()).addColumn("encrypted_access_token","text",(n)=>n.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(n)=>n.notNull()).execute()}async function tK(t){await t.schema.dropTable("claude_subscriptions").ifExists().execute()}var ku={};u(ku,{up:()=>nK,down:()=>_K});async function nK(t){await t.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function _K(t){await t.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var cu={};u(cu,{up:()=>uK,down:()=>xK});import{sql as hx}from"kysely";async function uK(t){await t.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(n)=>n.check(hx`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(n)=>n.check(hx`monthly_task_executions > 0`)).execute()}async function xK(t){await t.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var Vu={};u(Vu,{up:()=>iK,down:()=>TK});import{sql as mK}from"kysely";async function iK(t){await mK`
|
|
1091
1091
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1092
1092
|
ON task_board_items (updated_at, id)
|
|
1093
1093
|
WHERE status = 'in_review'
|
|
1094
1094
|
AND assignee_id = 'super-agent'
|
|
1095
1095
|
AND dismissed_at IS NULL
|
|
1096
|
-
`.execute(t)}async function
|
|
1096
|
+
`.execute(t)}async function TK(t){await t.schema.dropIndex("idx_task_board_items_pending_review").execute()}var hu={};u(hu,{up:()=>CK,down:()=>yK});import{sql as gx}from"kysely";async function CK(t){await gx`
|
|
1097
1097
|
ALTER TABLE task_board_items
|
|
1098
1098
|
ADD COLUMN last_swept_at timestamptz
|
|
1099
|
-
`.execute(t)}async function
|
|
1099
|
+
`.execute(t)}async function yK(t){await gx`
|
|
1100
1100
|
ALTER TABLE task_board_items
|
|
1101
1101
|
DROP COLUMN last_swept_at
|
|
1102
|
-
`.execute(t)}var gu={};u(gu,{up:()=>
|
|
1102
|
+
`.execute(t)}var gu={};u(gu,{up:()=>NK,down:()=>EK});import{sql as wt}from"kysely";async function NK(t){await wt`
|
|
1103
1103
|
ALTER TABLE task_board_items
|
|
1104
1104
|
ADD COLUMN retry_at timestamptz,
|
|
1105
1105
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
@@ -1107,11 +1107,11 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
1107
1107
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1108
1108
|
ON task_board_items (retry_at)
|
|
1109
1109
|
WHERE retry_at IS NOT NULL
|
|
1110
|
-
`.execute(t)}async function
|
|
1110
|
+
`.execute(t)}async function EK(t){await wt`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(t),await wt`
|
|
1111
1111
|
ALTER TABLE task_board_items
|
|
1112
1112
|
DROP COLUMN retry_at,
|
|
1113
1113
|
DROP COLUMN retry_attempts
|
|
1114
|
-
`.execute(t)}var vu={};u(vu,{up:()=>
|
|
1114
|
+
`.execute(t)}var vu={};u(vu,{up:()=>KK,down:()=>fK});import{sql as qu}from"kysely";async function KK(t){await qu`
|
|
1115
1115
|
CREATE TABLE org_repo_sync (
|
|
1116
1116
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1117
1117
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1133,19 +1133,19 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
1133
1133
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1134
1134
|
ON org_repo_sync (organization_id)
|
|
1135
1135
|
WHERE enabled
|
|
1136
|
-
`.execute(t)}async function fE(t){await qu`DROP TABLE IF EXISTS org_repo_sync`.execute(t)}var su={};u(su,{up:()=>PE,down:()=>wE,ACTIONS:()=>ru});import{sql as Ut}from"kysely";var ru=["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"],zE=new Set(["merge_failed"]);async function PE(t){await qx(t,ru)}async function wE(t){await qx(t,ru.filter((n)=>!zE.has(n)))}async function qx(t,n){await Ut`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(t),await Ut`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Ut.join(n.map((_)=>Ut.lit(_)))}))`.execute(t)}var lu={};u(lu,{up:()=>UE,down:()=>JE});async function UE(t){await t.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function JE(t){await t.schema.alterTable("task_board_items").dropColumn("repo").execute()}var jE={"001-initial-schema":Wt,"002-organization-settings":Rt,"003-connection-schema-align":at,"004-remove-models-binding":Xt,"005-connection-configuration":Qt,"006-add-views-to-settings":Zt,"007-monitoring-logs":Ft,"008-event-bus":Mt,"009-drop-audit-logs":Yt,"010-gateways":Ht,"011-gateway-icon":pt,"012-gateway-tool-selection-mode":Bt,"013-monitoring-user-agent-gateway":Gt,"014-gateway-resources-prompts":At,"015-monitoring-properties":St,"016-downstream-token-client-info":Ot,"017-downstream-token-remove-userid":It,"018-drop-gateway-tool-selection-strategy":ot,"019-remove-gateway-is-default":et,"020-enabled-plugins":kt,"021-threads":ct,"022-rename-gateway-to-virtual-mcp":Vt,"023-optimize-thread-indexes":ht,"024-consolidate-virtual-mcp":gt,"025-add-monitoring-virtual-mcp-id":qt,"026-restrict-child-connection-delete":vt,"027-update-management-mcp-url":st,"028-update-management-mcp-to-self":dt,"029-add-updated-by-to-connections":bt,"030-member-tags":tn,"031-add-dependency-mode":nn,"032-projects":_n,"033-thread-status":un,"034-monitoring-dashboards":xn,"035-project-connections":mn,"036-update-registry-url":Tn,"037-ai-provider-keys":Cn,"038-oauth-pkce-states":yn,"039-automations":Nn,"040-replace-next-run-at-with-last-run-at":Kn,"041-ai-provider-keys-unique-constraint":En,"042-rename-mesh-mcp-to-cms-mcp":fn,"043-rename-cms-mcp-to-deco-cms":zn,"044-drop-connections-tools-column":Pn,"045-thread-context-start-message":wn,"046-remove-object-storage-plugin":Jn,"047-add-next-run-at":jn,"048-merge-projects-agents":Dn,"049-remove-org-admin-projects":Ln,"050-durable-agent-runs":Wn,"051-org-sso":an,"052-thread-agent-ids":Xn,"053-registry-config":Qn,"054-connection-slug":Fn,"055-spaces":Mn,"056-automation-project-scope":Yn,"057-thread-virtual-mcp-id":Hn,"058-trigger-callback-tokens":pn,"059-kv":Bn,"060-member-index":Gn,"061-downstream-token-connection-index":An,"062-private-registry":Sn,"063-event-subscriptions-enabled-boolean":On,"064-brand-context":In,"065-organization-domains":on,"066-brand-context-structured":en,"067-threads-metadata":kn,"068-threads-branch":cn,"069-sandbox-runner-state":Vn,"070-model-categories":hn,"071-default-home-agents":gn,"072-ai-provider-key-preset-id":qn,"073-backfill-basic-usage-roles":vn,"074-sandbox-runner-state-handle-nonunique":rn,"075-thread-inflight-async-jobs":sn,"076-automations-drop-agent-json":ln,"077-tier-only-model-selection":bn,"078-automation-tool-call-kind":t_,"079-strip-legacy-freestyle-vm-map-entries":n_,"080-async-research-jobs":__,"081-async-research-jobs-result-content":u_,"082-secrets":x_,"083-thread-run-locally":m_,"084-drop-host-sandbox-rows":i_,"085-rename-runner-kind":T_,"086-thread-pins-and-vm-map-rekey":C_,"087-fix-vm-map-rekey":y_,"088-purge-cli-activate-keys":N_,"089-rename-remote-user-to-desktop":K_,"090-automation-webhook-triggers":E_,"091-organization-domains-allow-multi":f_,"092-sandbox-naming-uniformization":z_,"093-backfill-global-search-basic-usage":P_,"094-org-file-configs":U_,"095-remove-automation-tool-call-kind":J_,"096-org-file-configs-public-url-base":j_,"097-drop-local-docker-sandbox-state":D_,"098-thread-message-parts":L_,"099-run-fence":W_,"100-link-transport":R_,"101-cancel-requested-at":a_,"102-observational-agent":X_,"103-revert-observational-agent":Q_,"104-agent-sandbox-provider-kind":F_,"105-org-fs":M_,"106-automation-tools":Y_,"107-org-fs-public-org":H_,"108-automation-max-agent-steps":p_,"109-thread-message-parts-per-message-seq":B_,"110-backfill-ghs-token-expiry":G_,"111-org-fs-thread-id":A_,"112-org-file-configs-credential-type":S_,"113-thread-failure-reason":O_,"114-run-acked-seq":I_,"115-thread-projected-seq":o_,"116-org-sites":e_,"117-org-file-configs-site-slug":k_,"118-organization-domains-multi-verify":c_,"119-organization-join-requests":V_,"120-org-fs-read-public":h_,"121-org-fs-share-password":g_,"122-split-web-research-tier":r_,"123-connection-credential-vault":s_,"124-drop-thread-projected-seq":l_,"125-github-child-single-parent":d_,"126-task-board":tu,"127-task-board-due-date":nu,"128-reports-only":_u,"129-task-board-assigned-by":uu,"130-task-board-thread-id":xu,"131-task-board-thread-link-cascade":mu,"132-task-board-item-prs":iu,"133-dedupe-duplicate-members":Tu,"134-drop-task-board-enabled":Cu,"135-task-board-item-fk-cascade":yu,"136-task-board-import-idempotency":Nu,"137-agent-sandbox-runner-state":Ku,"138-agent-sandbox-sessions":Eu,"139-organization-billing":fu,"140-seat-change-log":zu,"141-benefits-sync-pending":Pu,"142-stripe-event-watermark":wu,"143-armed-report-url":Uu,"144-benefits-pending-index":Ju,"145-user-model-preferences":ju,"146-organization-main-agent":$u,"147-drop-agent-sandbox-tables":Du,"148-org-flags":Lu,"149-task-board-item-sort-order":Wu,"150-task-board-activity":Ru,"151-task-board-tags":Xu,"152-repair-connection-slug":Zu,"153-task-board-latest-assistant-part-index":Fu,"154-task-board-qa-activity":Yu,"155-task-board-review-claims":Hu,"156-task-board-conflict-activity":Bu,"157-drop-seat-billing":Gu,"158-drop-github-child-single-parent":Au,"159-task-board-comments":Su,"160-task-quota-billing":Ou,"161-task-quota-claim-state":ou,"162-claude-subscriptions":eu,"163-task-board-item-dismissed":ku,"164-per-org-task-quota":cu,"165-task-board-pending-review-index":Vu,"166-task-board-last-swept-at":hu,"167-task-board-run-retry":gu,"168-org-repo-sync":vu,"169-task-board-merge-failed-activity":su,"170-task-board-item-repo":lu},du=jE;import{getMigrations as bE}from"better-auth/db";import{sso as tf}from"@better-auth/sso";import{organization as nf}from"@decocms/better-auth/plugins";import{admin as _f,apiKey as uf,jwt as xf,magicLink as mf,mcp as Tf,openAPI as Cf}from"better-auth/plugins";import{emailOTP as yf}from"better-auth/plugins/email-otp";import{Kysely as gE,PostgresDialect as xm}from"kysely";import{Pool as mm}from"pg";import{homedir as $E}from"os";var DE=new Set(["all","worker","api"]);function LE(t){let n=(t??"").trim();return DE.has(n)?n:"all"}var WE=new Set(["production","development","test"]);function RE(t){let n=(t??"").trim();return WE.has(n)?n:"development"}function X(t){return t==="true"||t==="1"}function aE(t){if(t===void 0||t==="")return;return X(t)}function tx(t,n,_){if(n===void 0||n==="")return;let m=Number(n);if(!Number.isSafeInteger(m)||m<=0)throw Error(`${t} must be a positive integer`);if(_!==void 0&&m>_)throw Error(`${t} must be at most ${_}`);return m}function j(t,n,_,m){return tx(t,n,m)??_}function XE(t,n,_,m){if(n===void 0||n==="")return _;let x=Number(n);if(!Number.isSafeInteger(x)||x<0)throw Error(`${t} must be a non-negative integer`);if(m!==void 0&&x>m)throw Error(`${t} must be at most ${m}`);return x}function bu(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function vx(t){if(!t)return null;try{let _=new URL(t).hostname.replace(/^\[|\]$/g,"");if(_==="localhost"||_==="127.0.0.1"||_==="::1")return null;return t}catch{return null}}function QE(t){return t===void 0||t===""||t==="true"||t==="1"}function v(t,n){return t||n}var ZE=new Set(["agent-sandbox","user-desktop"]);function FE(t){let n=(t??"").trim(),_=n.length>0?n:"user-desktop";if(_==="cluster")return"agent-sandbox";if(!ZE.has(_))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return _}function rx(t,n){let _=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${$E()}/deco`,m=t.localMode,x=t.nodeEnv||RE(n.NODE_ENV),i=n.NATS_URL||"nats://localhost:4222",C=aE(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:x,port:j("PORT",t.port||n.PORT,3000,65535),baseUrl:t.baseUrl||n.BASE_URL,publicUrl:v(n.STUDIO_PUBLIC_URL,n.MESH_PUBLIC_URL),dataDir:_,databasePgSsl:X(n.DATABASE_PG_SSL),databasePoolMax:j("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),dbosPoolSize:j("DBOS_POOL_SIZE",n.DBOS_POOL_SIZE,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:v(n.STUDIO_JWT_SECRET,n.MESH_JWT_SECRET),localMode:m,disableRateLimit:X(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((y)=>y.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:tx("CLICKHOUSE_MAX_MEMORY_USAGE",n.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:n.MONITORING_OTLP_ENDPOINT,otelServiceName:n.OTEL_SERVICE_NAME||"studio",natsPublicUrl:n.NATS_PUBLIC_URL,natsTunnelPublicEnabled:C,natsTunnelSessionTtlSeconds:j("NATS_TUNNEL_SESSION_TTL_SECONDS",n.NATS_TUNNEL_SESSION_TTL_SECONDS,900),natsOperatorJwt:n.NATS_OPERATOR_JWT,natsAccountJwt:n.NATS_ACCOUNT_JWT,natsAccountSigningKey:n.NATS_ACCOUNT_SIGNING_KEY,natsCredsPath:n.NATS_CREDS,configPath:n.CONFIG_PATH||"./config.json",aiGatewayEnabled:X(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeOrgPriceId:n.STRIPE_ORG_PRICE_ID,stripeTopupProductId:n.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:XE("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:X(n.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:j("STUDIO_FREE_TASKS",n.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:j("STUDIO_MONTHLY_TASKS",n.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:j("STUDIO_MAX_RUNS_PER_TASK",n.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:X(n.ENABLE_DECO_IMPORT),mcpCacheEnabled:bu(n.MCP_CACHE_ENABLED,x!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:X(n.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:j("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",n.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:j("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",n.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:bu(n.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:j("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",n.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:n.S3_ENDPOINT,s3Bucket:n.S3_BUCKET,s3Region:n.S3_REGION||"auto",s3AccessKeyId:n.S3_ACCESS_KEY_ID,s3SecretAccessKey:n.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:QE(n.S3_FORCE_PATH_STYLE),monitoringS3Bucket:n.MONITORING_S3_BUCKET,monitoringS3Endpoint:n.MONITORING_S3_ENDPOINT,monitoringS3Region:n.MONITORING_S3_REGION,monitoringS3AccessKeyId:n.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:n.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:n.MONITORING_S3_PREFIX,duckdbExtensionDirectory:n.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:n.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:tx("DUCKDB_THREADS",n.DUCKDB_THREADS),isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME||crypto.randomUUID(),dispatchRole:LE(v(n.STUDIO_DISPATCH_ROLE,n.MESH_DISPATCH_ROLE)),sandboxProviderKind:FE(n.STUDIO_SANDBOX_PROVIDER),sandboxStickyHeadRefEnabled:X(n.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:bu(n.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:X(n.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:j("SANDBOX_RELEASE_GRACE_MS",n.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,clickhouseAnalyticsUrl:n.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:n.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:n.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:n.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:v(n.REPORTS_INTERNAL_API_URL,n.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:v(n.REPORTS_INTERNAL_API_KEY,n.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:n.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:n.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:n.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:n.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:n.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:n.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:n.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:vx(n.DATABASE_URL),externalNatsUrl:vx(i),skipMigrations:t.skipMigrations}}var Jt=null;function A(){if(!Jt)ME();return Jt}function ME(){if(Jt)return;let t={...process.env},n=rx({port:t.PORT||"3000",home:t.DATA_DIR||t.DECOCMS_HOME||"",localMode:t.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:t.DECO_NO_TUI==="true",vitePort:t.VITE_PORT,baseUrl:t.BASE_URL},t);Jt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((_)=>_.trim()).filter(Boolean)})}import{createContextKey as AE,metrics as SE,propagation as Iw,ROOT_CONTEXT as ow,SpanStatusCode as ew,trace as OE}from"@opentelemetry/api";import{logs as IE,SeverityNumber as nx}from"@opentelemetry/api-logs";import{OTLPLogExporter as Vw}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as oE}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as qw}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as rw}from"@opentelemetry/instrumentation-runtime-node";import{context as pP,propagation as BP,SpanKind as GP,SpanStatusCode as AP}from"@opentelemetry/api";var OP=globalThis.fetch;import{ExportResultCode as sP}from"@opentelemetry/core";import{ExportResultCode as jt}from"@opentelemetry/core";import{mkdir as YE,rename as HE,writeFile as pE}from"fs/promises";import{join as $t}from"path";class Dt{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(t){this.basePath=t.basePath,this.flushThreshold=t.flushThreshold??1000,this.maxBufferBytes=t.maxBufferBytes??10485760,this.partitionKey=t.partitionKey;let n=t.flushIntervalMs??60000;if(n>0&&n<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((_)=>{console.error("[NDJSONExporter] Timer flush failed:",_)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:jt.FAILED});for(let n of t){let _=JSON.stringify(n),m=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:m,json:_}),this.bufferBytes+=Buffer.byteLength(_,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:jt.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:jt.FAILED}});return Promise.resolve({code:jt.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 n=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=n,n}async doFlush(){if(this.bufferItems.length===0)return;let t=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let n=new Map;for(let x of t){let i=n.get(x.partition);if(!i)i=[],n.set(x.partition,i);i.push(x.json)}let _=await Promise.allSettled(Array.from(n.entries()).map(([x,i])=>this.writeNDJSON(i,x).then(()=>x))),m=_.find((x)=>x.status==="rejected");if(m){let x=new Set;for(let C of _)if(C.status==="fulfilled")x.add(C.value);let i=t.filter((C)=>!x.has(C.partition));this.bufferItems=i.concat(this.bufferItems),this.bufferBytes=0;for(let C of this.bufferItems)this.bufferBytes+=Buffer.byteLength(C.json,"utf8")+1;throw m.reason}}async writeNDJSON(t,n){let _=new Date,m=[String(_.getUTCFullYear()),String(_.getUTCMonth()+1).padStart(2,"0"),String(_.getUTCDate()).padStart(2,"0"),String(_.getUTCHours()).padStart(2,"0")],x=n?$t(this.basePath,n,...m):$t(this.basePath,...m);if(!this.knownDirs.has(x))await YE(x,{recursive:!0,mode:448}),this.knownDirs.add(x);let i=`${crypto.randomUUID()}.ndjson`,C=$t(x,`.${i}.tmp`),T=$t(x,i),y=t.join(`
|
|
1136
|
+
`.execute(t)}async function fK(t){await qu`DROP TABLE IF EXISTS org_repo_sync`.execute(t)}var su={};u(su,{up:()=>PK,down:()=>wK,ACTIONS:()=>ru});import{sql as Ut}from"kysely";var ru=["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"],zK=new Set(["merge_failed"]);async function PK(t){await qx(t,ru)}async function wK(t){await qx(t,ru.filter((n)=>!zK.has(n)))}async function qx(t,n){await Ut`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(t),await Ut`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Ut.join(n.map((_)=>Ut.lit(_)))}))`.execute(t)}var lu={};u(lu,{up:()=>UK,down:()=>JK});async function UK(t){await t.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function JK(t){await t.schema.alterTable("task_board_items").dropColumn("repo").execute()}var jK={"001-initial-schema":Wt,"002-organization-settings":at,"003-connection-schema-align":Rt,"004-remove-models-binding":Xt,"005-connection-configuration":Qt,"006-add-views-to-settings":Zt,"007-monitoring-logs":Ft,"008-event-bus":Mt,"009-drop-audit-logs":Yt,"010-gateways":Ht,"011-gateway-icon":pt,"012-gateway-tool-selection-mode":Bt,"013-monitoring-user-agent-gateway":Gt,"014-gateway-resources-prompts":At,"015-monitoring-properties":St,"016-downstream-token-client-info":Ot,"017-downstream-token-remove-userid":It,"018-drop-gateway-tool-selection-strategy":ot,"019-remove-gateway-is-default":et,"020-enabled-plugins":kt,"021-threads":ct,"022-rename-gateway-to-virtual-mcp":Vt,"023-optimize-thread-indexes":ht,"024-consolidate-virtual-mcp":gt,"025-add-monitoring-virtual-mcp-id":qt,"026-restrict-child-connection-delete":vt,"027-update-management-mcp-url":st,"028-update-management-mcp-to-self":dt,"029-add-updated-by-to-connections":bt,"030-member-tags":tn,"031-add-dependency-mode":nn,"032-projects":_n,"033-thread-status":un,"034-monitoring-dashboards":xn,"035-project-connections":mn,"036-update-registry-url":Tn,"037-ai-provider-keys":Cn,"038-oauth-pkce-states":yn,"039-automations":Nn,"040-replace-next-run-at-with-last-run-at":En,"041-ai-provider-keys-unique-constraint":Kn,"042-rename-mesh-mcp-to-cms-mcp":fn,"043-rename-cms-mcp-to-deco-cms":zn,"044-drop-connections-tools-column":Pn,"045-thread-context-start-message":wn,"046-remove-object-storage-plugin":Jn,"047-add-next-run-at":jn,"048-merge-projects-agents":Dn,"049-remove-org-admin-projects":Ln,"050-durable-agent-runs":Wn,"051-org-sso":Rn,"052-thread-agent-ids":Xn,"053-registry-config":Qn,"054-connection-slug":Fn,"055-spaces":Mn,"056-automation-project-scope":Yn,"057-thread-virtual-mcp-id":Hn,"058-trigger-callback-tokens":pn,"059-kv":Bn,"060-member-index":Gn,"061-downstream-token-connection-index":An,"062-private-registry":Sn,"063-event-subscriptions-enabled-boolean":On,"064-brand-context":In,"065-organization-domains":on,"066-brand-context-structured":en,"067-threads-metadata":kn,"068-threads-branch":cn,"069-sandbox-runner-state":Vn,"070-model-categories":hn,"071-default-home-agents":gn,"072-ai-provider-key-preset-id":qn,"073-backfill-basic-usage-roles":vn,"074-sandbox-runner-state-handle-nonunique":rn,"075-thread-inflight-async-jobs":sn,"076-automations-drop-agent-json":ln,"077-tier-only-model-selection":bn,"078-automation-tool-call-kind":t_,"079-strip-legacy-freestyle-vm-map-entries":n_,"080-async-research-jobs":__,"081-async-research-jobs-result-content":u_,"082-secrets":x_,"083-thread-run-locally":m_,"084-drop-host-sandbox-rows":i_,"085-rename-runner-kind":T_,"086-thread-pins-and-vm-map-rekey":C_,"087-fix-vm-map-rekey":y_,"088-purge-cli-activate-keys":N_,"089-rename-remote-user-to-desktop":E_,"090-automation-webhook-triggers":K_,"091-organization-domains-allow-multi":f_,"092-sandbox-naming-uniformization":z_,"093-backfill-global-search-basic-usage":P_,"094-org-file-configs":U_,"095-remove-automation-tool-call-kind":J_,"096-org-file-configs-public-url-base":j_,"097-drop-local-docker-sandbox-state":D_,"098-thread-message-parts":L_,"099-run-fence":W_,"100-link-transport":a_,"101-cancel-requested-at":R_,"102-observational-agent":X_,"103-revert-observational-agent":Q_,"104-agent-sandbox-provider-kind":F_,"105-org-fs":M_,"106-automation-tools":Y_,"107-org-fs-public-org":H_,"108-automation-max-agent-steps":p_,"109-thread-message-parts-per-message-seq":B_,"110-backfill-ghs-token-expiry":G_,"111-org-fs-thread-id":A_,"112-org-file-configs-credential-type":S_,"113-thread-failure-reason":O_,"114-run-acked-seq":I_,"115-thread-projected-seq":o_,"116-org-sites":e_,"117-org-file-configs-site-slug":k_,"118-organization-domains-multi-verify":c_,"119-organization-join-requests":V_,"120-org-fs-read-public":h_,"121-org-fs-share-password":g_,"122-split-web-research-tier":r_,"123-connection-credential-vault":s_,"124-drop-thread-projected-seq":l_,"125-github-child-single-parent":d_,"126-task-board":tu,"127-task-board-due-date":nu,"128-reports-only":_u,"129-task-board-assigned-by":uu,"130-task-board-thread-id":xu,"131-task-board-thread-link-cascade":mu,"132-task-board-item-prs":iu,"133-dedupe-duplicate-members":Tu,"134-drop-task-board-enabled":Cu,"135-task-board-item-fk-cascade":yu,"136-task-board-import-idempotency":Nu,"137-agent-sandbox-runner-state":Eu,"138-agent-sandbox-sessions":Ku,"139-organization-billing":fu,"140-seat-change-log":zu,"141-benefits-sync-pending":Pu,"142-stripe-event-watermark":wu,"143-armed-report-url":Uu,"144-benefits-pending-index":Ju,"145-user-model-preferences":ju,"146-organization-main-agent":$u,"147-drop-agent-sandbox-tables":Du,"148-org-flags":Lu,"149-task-board-item-sort-order":Wu,"150-task-board-activity":au,"151-task-board-tags":Xu,"152-repair-connection-slug":Zu,"153-task-board-latest-assistant-part-index":Fu,"154-task-board-qa-activity":Yu,"155-task-board-review-claims":Hu,"156-task-board-conflict-activity":Bu,"157-drop-seat-billing":Gu,"158-drop-github-child-single-parent":Au,"159-task-board-comments":Su,"160-task-quota-billing":Ou,"161-task-quota-claim-state":ou,"162-claude-subscriptions":eu,"163-task-board-item-dismissed":ku,"164-per-org-task-quota":cu,"165-task-board-pending-review-index":Vu,"166-task-board-last-swept-at":hu,"167-task-board-run-retry":gu,"168-org-repo-sync":vu,"169-task-board-merge-failed-activity":su,"170-task-board-item-repo":lu},du=jK;import{getMigrations as bK}from"better-auth/db";import{sso as tf}from"@better-auth/sso";import{organization as nf}from"@decocms/better-auth/plugins";import{admin as _f,apiKey as uf,jwt as xf,magicLink as mf,mcp as Tf,openAPI as Cf}from"better-auth/plugins";import{emailOTP as yf}from"better-auth/plugins/email-otp";import{Kysely as gK,PostgresDialect as xm}from"kysely";import{Pool as mm}from"pg";import{homedir as $K}from"os";var DK=new Set(["all","worker","api"]);function LK(t){let n=(t??"").trim();return DK.has(n)?n:"all"}var WK=new Set(["production","development","test"]);function aK(t){let n=(t??"").trim();return WK.has(n)?n:"development"}function X(t){return t==="true"||t==="1"}function RK(t){if(t===void 0||t==="")return;return X(t)}function tx(t,n,_){if(n===void 0||n==="")return;let m=Number(n);if(!Number.isSafeInteger(m)||m<=0)throw Error(`${t} must be a positive integer`);if(_!==void 0&&m>_)throw Error(`${t} must be at most ${_}`);return m}function j(t,n,_,m){return tx(t,n,m)??_}function XK(t,n,_,m){if(n===void 0||n==="")return _;let x=Number(n);if(!Number.isSafeInteger(x)||x<0)throw Error(`${t} must be a non-negative integer`);if(m!==void 0&&x>m)throw Error(`${t} must be at most ${m}`);return x}function bu(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function vx(t){if(!t)return null;try{let _=new URL(t).hostname.replace(/^\[|\]$/g,"");if(_==="localhost"||_==="127.0.0.1"||_==="::1")return null;return t}catch{return null}}function QK(t){return t===void 0||t===""||t==="true"||t==="1"}function v(t,n){return t||n}var ZK=new Set(["agent-sandbox","user-desktop"]);function FK(t){let n=(t??"").trim(),_=n.length>0?n:"user-desktop";if(_==="cluster")return"agent-sandbox";if(!ZK.has(_))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return _}function rx(t,n){let _=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${$K()}/deco`,m=t.localMode,x=t.nodeEnv||aK(n.NODE_ENV),i=n.NATS_URL||"nats://localhost:4222",C=RK(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:x,port:j("PORT",t.port||n.PORT,3000,65535),baseUrl:t.baseUrl||n.BASE_URL,publicUrl:v(n.STUDIO_PUBLIC_URL,n.MESH_PUBLIC_URL),dataDir:_,databasePgSsl:X(n.DATABASE_PG_SSL),databasePoolMax:j("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),dbosPoolSize:j("DBOS_POOL_SIZE",n.DBOS_POOL_SIZE,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:v(n.STUDIO_JWT_SECRET,n.MESH_JWT_SECRET),localMode:m,disableRateLimit:X(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((y)=>y.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:tx("CLICKHOUSE_MAX_MEMORY_USAGE",n.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:n.MONITORING_OTLP_ENDPOINT,otelServiceName:n.OTEL_SERVICE_NAME||"studio",natsPublicUrl:n.NATS_PUBLIC_URL,natsTunnelPublicEnabled:C,natsTunnelSessionTtlSeconds:j("NATS_TUNNEL_SESSION_TTL_SECONDS",n.NATS_TUNNEL_SESSION_TTL_SECONDS,900),natsOperatorJwt:n.NATS_OPERATOR_JWT,natsAccountJwt:n.NATS_ACCOUNT_JWT,natsAccountSigningKey:n.NATS_ACCOUNT_SIGNING_KEY,natsCredsPath:n.NATS_CREDS,configPath:n.CONFIG_PATH||"./config.json",aiGatewayEnabled:X(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeOrgPriceId:n.STRIPE_ORG_PRICE_ID,stripeTopupProductId:n.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:XK("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:X(n.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:j("STUDIO_FREE_TASKS",n.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:j("STUDIO_MONTHLY_TASKS",n.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:j("STUDIO_MAX_RUNS_PER_TASK",n.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:X(n.ENABLE_DECO_IMPORT),mcpCacheEnabled:bu(n.MCP_CACHE_ENABLED,x!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:X(n.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:j("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",n.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:j("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",n.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:bu(n.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:j("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",n.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:n.S3_ENDPOINT,s3Bucket:n.S3_BUCKET,s3Region:n.S3_REGION||"auto",s3AccessKeyId:n.S3_ACCESS_KEY_ID,s3SecretAccessKey:n.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:QK(n.S3_FORCE_PATH_STYLE),monitoringS3Bucket:n.MONITORING_S3_BUCKET,monitoringS3Endpoint:n.MONITORING_S3_ENDPOINT,monitoringS3Region:n.MONITORING_S3_REGION,monitoringS3AccessKeyId:n.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:n.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:n.MONITORING_S3_PREFIX,duckdbExtensionDirectory:n.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:n.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:tx("DUCKDB_THREADS",n.DUCKDB_THREADS),isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME||crypto.randomUUID(),dispatchRole:LK(v(n.STUDIO_DISPATCH_ROLE,n.MESH_DISPATCH_ROLE)),sandboxProviderKind:FK(n.STUDIO_SANDBOX_PROVIDER),sandboxStickyHeadRefEnabled:X(n.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:bu(n.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:X(n.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:j("SANDBOX_RELEASE_GRACE_MS",n.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,clickhouseAnalyticsUrl:n.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:n.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:n.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:n.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:v(n.REPORTS_INTERNAL_API_URL,n.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:v(n.REPORTS_INTERNAL_API_KEY,n.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:n.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:n.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:n.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:n.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:n.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:n.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:n.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:vx(n.DATABASE_URL),externalNatsUrl:vx(i),skipMigrations:t.skipMigrations}}var Jt=null;function A(){if(!Jt)MK();return Jt}function MK(){if(Jt)return;let t={...process.env},n=rx({port:t.PORT||"3000",home:t.DATA_DIR||t.DECOCMS_HOME||"",localMode:t.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:t.DECO_NO_TUI==="true",vitePort:t.VITE_PORT,baseUrl:t.BASE_URL},t);Jt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((_)=>_.trim()).filter(Boolean)})}import{createContextKey as AK,metrics as SK,propagation as Iw,ROOT_CONTEXT as ow,SpanStatusCode as ew,trace as OK}from"@opentelemetry/api";import{logs as IK,SeverityNumber as nx}from"@opentelemetry/api-logs";import{OTLPLogExporter as Vw}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as oK}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as qw}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as rw}from"@opentelemetry/instrumentation-runtime-node";import{context as pP,propagation as BP,SpanKind as GP,SpanStatusCode as AP}from"@opentelemetry/api";var OP=globalThis.fetch;import{ExportResultCode as sP}from"@opentelemetry/core";import{ExportResultCode as jt}from"@opentelemetry/core";import{mkdir as YK,rename as HK,writeFile as pK}from"fs/promises";import{join as $t}from"path";class Dt{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(t){this.basePath=t.basePath,this.flushThreshold=t.flushThreshold??1000,this.maxBufferBytes=t.maxBufferBytes??10485760,this.partitionKey=t.partitionKey;let n=t.flushIntervalMs??60000;if(n>0&&n<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((_)=>{console.error("[NDJSONExporter] Timer flush failed:",_)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:jt.FAILED});for(let n of t){let _=JSON.stringify(n),m=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:m,json:_}),this.bufferBytes+=Buffer.byteLength(_,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:jt.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:jt.FAILED}});return Promise.resolve({code:jt.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 n=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=n,n}async doFlush(){if(this.bufferItems.length===0)return;let t=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let n=new Map;for(let x of t){let i=n.get(x.partition);if(!i)i=[],n.set(x.partition,i);i.push(x.json)}let _=await Promise.allSettled(Array.from(n.entries()).map(([x,i])=>this.writeNDJSON(i,x).then(()=>x))),m=_.find((x)=>x.status==="rejected");if(m){let x=new Set;for(let C of _)if(C.status==="fulfilled")x.add(C.value);let i=t.filter((C)=>!x.has(C.partition));this.bufferItems=i.concat(this.bufferItems),this.bufferBytes=0;for(let C of this.bufferItems)this.bufferBytes+=Buffer.byteLength(C.json,"utf8")+1;throw m.reason}}async writeNDJSON(t,n){let _=new Date,m=[String(_.getUTCFullYear()),String(_.getUTCMonth()+1).padStart(2,"0"),String(_.getUTCDate()).padStart(2,"0"),String(_.getUTCHours()).padStart(2,"0")],x=n?$t(this.basePath,n,...m):$t(this.basePath,...m);if(!this.knownDirs.has(x))await YK(x,{recursive:!0,mode:448}),this.knownDirs.add(x);let i=`${crypto.randomUUID()}.ndjson`,C=$t(x,`.${i}.tmp`),T=$t(x,i),y=t.join(`
|
|
1137
1137
|
`)+`
|
|
1138
|
-
`;await
|
|
1138
|
+
`;await pK(C,y,{mode:384}),await HK(C,T)}}import{ExportResultCode as nw}from"@opentelemetry/core";import{AggregationTemporality as uw,DataPointType as xw}from"@opentelemetry/sdk-metrics";import{ExportResultCode as Nw}from"@opentelemetry/core";var zw=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as xU,LoggerProvider as mU}from"@opentelemetry/sdk-logs";import{detectResources as TU,envDetector as CU,hostDetector as yU,osDetector as NU,processDetector as EU,resourceFromAttributes as KU}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as zU}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as Uw}from"@opentelemetry/api-logs";import{NodeSDK as UU}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as jU,SamplingDecision as S}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as Lw}from"@opentelemetry/api";var eK="__d",kK=AK("Current request"),cK=1;var lx=(t)=>{let _=new URL(t.url).searchParams.get(eK);if(_==="")return crypto.randomUUID();if(!_)_=t.headers.get("x-trace-debug-id");return _};class dx{inner;constructor(t){this.inner=t}shouldSample(t,n,_,m,x,i){let C=t.getValue(kK);if(!C){if(this.inner)return this.inner.shouldSample(t,n,_,m,x,i);return{decision:S.RECORD_AND_SAMPLED}}let T=lx(C);if(T)return{decision:S.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":T}};if(this.inner){let y=this.inner.shouldSample(t,n,_,m,x,i);if(y.decision===S.RECORD_AND_SAMPLED){let N=crypto.randomUUID();y.attributes={...y.attributes??{},"trace.debug.id":N}}return y}return{decision:S.NOT_RECORD}}toString(){return"DebugSampler"}}class bx{ratio;constructor(t){this.ratio=t}shouldSample(){if(Math.random()<this.ratio)return{decision:S.RECORD_AND_SAMPLED};return{decision:S.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var DU=new oK({preventServerStart:!0}),LU=new dx(new bx(cK));var sx=OK.getTracer("studio","1.0.0"),r=SK.getMeter("studio","1.0.0"),VK=IK.getLogger("studio","1.0.0"),_x=(t,n,_)=>{let m={},x=_,i=_[_.length-1];if(i!==null&&typeof i==="object"&&!Array.isArray(i)&&!(i instanceof Error)&&Object.getPrototypeOf(i)===Object.prototype)m=i,x=_.slice(0,-1);let C=x.map((T)=>{if(T instanceof Error)return`${T.name}: ${T.message}`;if(typeof T==="object")try{return JSON.stringify(T)}catch{return"[Object]"}return String(T)}).join(" ");VK.emit({severityNumber:t,severityText:n,body:C,attributes:{"log.source":"console",...m}})},ux={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...t)=>{_x(nx.ERROR,"ERROR",t),ux.error(...t)};console.warn=(...t)=>{_x(nx.WARN,"WARN",t),ux.warn(...t)};console.debug=(...t)=>{_x(nx.DEBUG,"DEBUG",t),ux.debug(...t)};var xx,tm=0,mx=500;function hK(){if(xx)return;let t=performance.now()+mx;xx=setInterval(()=>{let n=performance.now();tm=Math.max(0,n-t),t=n+mx},mx),xx.unref?.()}function nm(){return hK(),tm}var qK=()=>r.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),_m=()=>r.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),um=400,vK=100,rK=(t)=>(n)=>{let _={"db.statement":n.query.sql,"db.status":n.level==="error"?"error":"success"};if(n.queryDurationMillis>um){let m=nm(),x=m>um/2;console.error(x?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:n.queryDurationMillis,eventLoopLagMs:Math.round(m),sql:n.query.sql,pool:{total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:Lt()}})}if(qK().record(n.queryDurationMillis,_),n.level==="error")console.error("Query failed:",{durationMs:n.queryDurationMillis,error:n.error,sql:n.query.sql})};function sK(t){let n=t.connect.bind(t);return t.connect=(_)=>{if(typeof _==="function")return n(_);let m=performance.now(),x=Lt(),i=t.idleCount===0&&t.totalCount>=x,C=t.idleCount;return n().then((T)=>{let y=performance.now()-m;if(_m().record(y,{"db.pool.outcome":i?"contended":"available"}),y>vK)if(i)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:y,total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:x});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:y,idleAtStart:C,total:t.totalCount,max:x});return T},(T)=>{throw _m().record(performance.now()-m,{"db.pool.outcome":"error"}),T})},t}var im={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Tm(){try{return A().databasePgSsl}catch{return!1}}function Lt(){try{return A().databasePoolMax}catch{return 10}}function lK(t){let n=sK(new mm({connectionString:t,max:Lt(),ssl:Tm(),...im})),_=new xm({pool:n});return{type:"postgres",db:new gK({dialect:_,log:rK(n)}),pool:n}}function l(){return A().databaseUrl}function Cm(t){let n=t||l();return new xm({pool:new mm({connectionString:n,max:Lt(),ssl:Tm(),...im})})}function dK(t){let n=t||l();return lK(n)}async function ym(t){if(await t.db.destroy(),!t.pool.ended)await t.pool.end();if(t===s)s=null}var s=null;function ix(){if(!s)s=dK(l());return s}async function Nm(t){let _={database:Cm(t||l()),plugins:[nf({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),_f(),uf(),xf(),Cf(),Tf({loginPage:"/login"}),tf(),mf({sendMagicLink:async()=>{}}),yf({sendVerificationOTP:async()=>{}})]},{toBeAdded:m,toBeCreated:x,runMigrations:i}=await bK(_);if(!m.length&&!x.length)return"up to date";return await i(),`${x.length+m.length} table(s) migrated`}async function Km(t,n){return(await O`
|
|
1139
1139
|
SELECT table_name FROM information_schema.tables
|
|
1140
1140
|
WHERE table_schema='public' AND table_name=${n}
|
|
1141
|
-
`.execute(t)).rows.length>0}async function Nf(t){if(await
|
|
1141
|
+
`.execute(t)).rows.length>0}async function Nf(t){if(await Km(t,"plugin_migrations"))return;await O`
|
|
1142
1142
|
CREATE TABLE plugin_migrations (
|
|
1143
1143
|
plugin_id TEXT NOT NULL,
|
|
1144
1144
|
name TEXT NOT NULL,
|
|
1145
1145
|
timestamp TEXT NOT NULL,
|
|
1146
1146
|
PRIMARY KEY (plugin_id, name)
|
|
1147
1147
|
)
|
|
1148
|
-
`.execute(t)}async function
|
|
1148
|
+
`.execute(t)}async function Ef(t){if(!await Km(t,"kysely_migration"))return;let n=await O`
|
|
1149
1149
|
SELECT name, timestamp FROM kysely_migration
|
|
1150
1150
|
WHERE name LIKE '%/%'
|
|
1151
1151
|
`.execute(t);if(n.rows.length===0)return;for(let{name:_,timestamp:m}of n.rows){let x=_;if(_.includes("~plugins/"))x=_.substring(_.indexOf("~plugins/")+9);let i=x.indexOf("/");if(i===-1){console.warn(`Skipping malformed plugin migration: ${_}`);continue}let C=x.substring(0,i),T=x.substring(i+1);try{await O`
|
|
@@ -1156,4 +1156,4 @@ var fm=Object.defineProperty;var zm=(t)=>t;function Pm(t,n){this[t]=zm.bind(null
|
|
|
1156
1156
|
WHERE plugin_id = ${C} AND name = ${T}
|
|
1157
1157
|
`.execute(t);if(Number(y.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${C}/${T}, keeping in old table`);continue}}await O`
|
|
1158
1158
|
DELETE FROM kysely_migration WHERE name = ${_}
|
|
1159
|
-
`.execute(t)}}async function
|
|
1159
|
+
`.execute(t)}}async function Kf(t){await Nf(t),await Ef(t);let n=new Em({db:t,provider:{getMigrations:()=>Promise.resolve(du)}}),{error:_,results:m}=await n.migrateToLatest(),x=0;if(m?.forEach((i)=>{if(i.status==="Success")x++;else if(i.status==="Error")console.error(`Failed to execute migration "${i.migrationName}"`)}),_)throw console.error("Failed to migrate"),console.error(_),_;return x}async function ff(t){let{keepOpen:n=!1,database:_,skipBetterAuth:m=!1}=t??{},x="skipped";if(!m&&!_)x=await Nm();let i=_??ix(),C=async()=>{if(!n&&!_)await ym(i).catch((T)=>{console.warn("Warning: Error closing database:",T)})};try{let T=await Kf(i.db);return await C(),{betterAuth:x,kysely:T}}catch(T){throw await C(),T}}async function dU(){let t=ix(),n=new Em({db:t.db,provider:{getMigrations:()=>Promise.resolve(du)}}),{error:_,results:m}=await n.migrateDown();if(m?.forEach((x)=>{if(x.status==="Success")console.log(`\u2705 Migration "${x.migrationName}" rolled back successfully`);else if(x.status==="Error")console.error(`\u274C Failed to rollback migration "${x.migrationName}"`)}),_)throw console.error("Failed to rollback migration"),console.error(_),_}if(import.meta.main)(async()=>{try{await ff(),console.log("Migrations completed."),process.exit(0)}catch(t){console.error("Migration failed:",t),process.exit(1)}})();export{Kf as runKyselyMigrations,ff as migrateToLatest,dU as migrateDown};
|