decocms 4.499.4 → 4.500.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{ActiveShapeUtils-CdFbjrR7.js → ActiveShapeUtils-CHPU_j8T.js} +1 -1
- package/dist/client/assets/{AlertCircle-D64F5QZT.js → AlertCircle-CgfWDsMW.js} +1 -1
- package/dist/client/assets/{AreaChart-CYq0YnIM.js → AreaChart-CZuIkHuk.js} +1 -1
- package/dist/client/assets/{ArrowLeft-EtQNZvkL.js → ArrowLeft-BkyozCr0.js} +1 -1
- package/dist/client/assets/{ArrowUp-BmL0BCqN.js → ArrowUp-C0O7U47F.js} +1 -1
- package/dist/client/assets/{BarChart-BUo0UZBI.js → BarChart-D_Vp8_nk.js} +1 -1
- package/dist/client/assets/{Building02-BYNzIC0_.js → Building02-C5UvSZSt.js} +1 -1
- package/dist/client/assets/{CategoricalChart-gICvYmdu.js → CategoricalChart-CYT1jRTo.js} +1 -1
- package/dist/client/assets/{CheckCircle-CH2lIoTv.js → CheckCircle-B1cLRmIj.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-CKkMIQxq.js → ChevronSelectorVertical-bEeSv3mr.js} +1 -1
- package/dist/client/assets/{ChevronUp-DAOjkMPN.js → ChevronUp-D_qU7VrJ.js} +1 -1
- package/dist/client/assets/{Copy01-m_uwkeCD.js → Copy01-CT_cEqll.js} +1 -1
- package/dist/client/assets/{CreditCard01-KdIaDPg-.js → CreditCard01-DFGzM4td.js} +1 -1
- package/dist/client/assets/{DotsVertical-KRHoqp1L.js → DotsVertical-CGu7Zbqo.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-DIkwMkDv.js → ErrorBarContext-BOQmu79L.js} +1 -1
- package/dist/client/assets/{Globe04-CHfMY--P.js → Globe04-DtoCZsmb.js} +1 -1
- package/dist/client/assets/{Image01-B9K7stDA.js → Image01-CyU1b2Nz.js} +1 -1
- package/dist/client/assets/{Key01-c7pIbph9.js → Key01-CV4MPPMx.js} +1 -1
- package/dist/client/assets/{Link01-DTA9h0Tu.js → Link01-BL0KHGWk.js} +1 -1
- package/dist/client/assets/{LinkBroken01-mDg_NFsQ.js → LinkBroken01-CImL6HGl.js} +1 -1
- package/dist/client/assets/{Monitor01-tGDWsmdz.js → Monitor01-jDiltU3l.js} +1 -1
- package/dist/client/assets/{Play-BLgdJi2k.js → Play-HeD-LWQ6.js} +1 -1
- package/dist/client/assets/{Plus-pPXfDuHo.js → Plus-BzLmRH_e.js} +1 -1
- package/dist/client/assets/{SearchMd-DeQ9Yg2y.js → SearchMd-X-m-ot0f.js} +1 -1
- package/dist/client/assets/{Sector-BRuBdQGv.js → Sector-Dk1WFIe-.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-B29gM6zx.js → ShoppingBag01-C30WMfg1.js} +1 -1
- package/dist/client/assets/{Sun-D1zmKedp.js → Sun-D5cuTnns.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-DqVKqG_v.js → SwitchHorizontal01-iT36Ixqz.js} +1 -1
- package/dist/client/assets/{Tool01-lGWsEi__.js → Tool01-BLdqmAM-.js} +1 -1
- package/dist/client/assets/{Trash01-DiDmAdCb.js → Trash01-DkcAHDGj.js} +1 -1
- package/dist/client/assets/{Upload01-DMts0djm.js → Upload01-CJxfk4_B.js} +1 -1
- package/dist/client/assets/{User01-_d4aL8so.js → User01-CuJbE_Yd.js} +1 -1
- package/dist/client/assets/{UserSquare-DEMY8dZu.js → UserSquare-BlSFjBrQ.js} +1 -1
- package/dist/client/assets/{Users01-BXstoO15.js → Users01-CgCEjxiR.js} +1 -1
- package/dist/client/assets/{XAxis-D8Y5Kl9D.js → XAxis-B6hTknR7.js} +1 -1
- package/dist/client/assets/{XClose-2vYA1mGz.js → XClose-BcQlXPoY.js} +1 -1
- package/dist/client/assets/{ZoomOut-Dncux2m4.js → ZoomOut-C_NtAfgt.js} +1 -1
- package/dist/client/assets/{access-gate-D8G3JOM8.js → access-gate-0Qu33vtT.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-B5koNYc3.js → add-connection-dialog-CmVGiYmi.js} +1 -1
- package/dist/client/assets/{agent-analytics-DLUHcg3e.js → agent-analytics-DbQCZ1PQ.js} +1 -1
- package/dist/client/assets/agent-app-BExNHlBs.js +1 -0
- package/dist/client/assets/{agent-assets-B1bgJ5fo.js → agent-assets-B-t0qw5_.js} +1 -1
- package/dist/client/assets/{agent-automation-Bv-uIzMa.js → agent-automation-AdWBGK9-.js} +1 -1
- package/dist/client/assets/{agent-automations-DF7i-4sf.js → agent-automations-x2lM3jDX.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-lkHg-cNh.js → agent-connect-sources-DygiFIri.js} +1 -1
- package/dist/client/assets/agent-deck-GAA8uH06.js +1 -0
- package/dist/client/assets/{agent-e2e-B14Xfx41.js → agent-e2e-CDURPj47.js} +1 -1
- package/dist/client/assets/{agent-experiments-DZm0rMa9.js → agent-experiments-BIa2lB5Q.js} +1 -1
- package/dist/client/assets/{agent-file-DqhHVftY.js → agent-file-BKXQWZUy.js} +1 -1
- package/dist/client/assets/{agent-hosting-DW8hkmOy.js → agent-hosting-BYQZVYMZ.js} +1 -1
- package/dist/client/assets/{agent-icon-DsEoh1uc.js → agent-icon-CsQzAnP1.js} +1 -1
- package/dist/client/assets/agent-library-CJXihsv5.js +1 -0
- package/dist/client/assets/agent-library-file-Cnv04MVV.js +1 -0
- package/dist/client/assets/{agent-monitor-AJmZ909K.js → agent-monitor-CCT32NKJ.js} +1 -1
- package/dist/client/assets/{agent-overview-C_GU16D4.js → agent-overview-dfgPX_7d.js} +1 -1
- package/dist/client/assets/agent-settings-BTMD0j_l.js +1 -0
- package/dist/client/assets/{agent-site-editor-DEB1cxAk.js → agent-site-editor-CG3fYjTa.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-Crxw0pRq.js +2 -0
- package/dist/client/assets/{agent-site-editor-content-Dz7QiUBS.js → agent-site-editor-content-5eCWHoNS.js} +3 -3
- package/dist/client/assets/{agent-site-editor-preview-Bmq9D0yU.js → agent-site-editor-preview-uwuaRHqi.js} +3 -3
- package/dist/client/assets/agent-view-DVbx7Not.js +1 -0
- package/dist/client/assets/{agent-view-guard-CXRvnSDZ.js → agent-view-guard-e44iAytb.js} +1 -1
- package/dist/client/assets/{agents-list-CsftxeY4.js → agents-list-C2x26zj4.js} +1 -1
- package/dist/client/assets/ai-providers-DwXqL2iz.js +6 -0
- package/dist/client/assets/{alert-Dy4dU1R7.js → alert-DYD14Lxr.js} +1 -1
- package/dist/client/assets/{alert-dialog-BURK0-VV.js → alert-dialog-D2yDyccd.js} +1 -1
- package/dist/client/assets/{analytics-sections-DEh2Id4y.js → analytics-sections-CYXgA9AC.js} +1 -1
- package/dist/client/assets/api-keys-B_VU2t2_.js +1 -0
- package/dist/client/assets/{api-keys-CjTAbVY8.js → api-keys-BtQl5Awe.js} +1 -1
- package/dist/client/assets/app-editor-fWZMbht-.js +1 -0
- package/dist/client/assets/{asset-utils-CAN25Z2R.js → asset-utils-cuI-wo7N.js} +1 -1
- package/dist/client/assets/{auth-4ol_FgC8.js → auth-CsAAW7Ar.js} +1 -1
- package/dist/client/assets/{auth-catchall-DxIzjexT.js → auth-catchall-CDMks_Rc.js} +1 -1
- package/dist/client/assets/{auth-entry-Duu0pw9M.js → auth-entry-Cwn8f6E3.js} +1 -1
- package/dist/client/assets/{auth-split-layout-DTCIfCq3.js → auth-split-layout-DFsDNY_O.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-DhKApzWO.js → authenticate-and-persist-oauth-HfpfV8ZS.js} +1 -1
- package/dist/client/assets/{automation-list-row-Cdl0VdqB.js → automation-list-row-Bgtl2dei.js} +1 -1
- package/dist/client/assets/{automation-runs-DYfkPQkf.js → automation-runs-CBT3E_fm.js} +1 -1
- package/dist/client/assets/{automations-C09hGDxa.js → automations-BSD8vInf.js} +1 -1
- package/dist/client/assets/{autosend-CZXcTLSS.js → autosend-8ZqTuUx9.js} +1 -1
- package/dist/client/assets/{avatar-NvpT5YGL.js → avatar-Da-P84-z.js} +1 -1
- package/dist/client/assets/{badge-BeAl2FZH.js → badge-CJ5q8uJu.js} +1 -1
- package/dist/client/assets/{block-document-DZ5eZnd4.js → block-document-Drzpg_bb.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-DZFHbEt5.js → blocks-preview-workspace-context-CJnlWxc-.js} +1 -1
- package/dist/client/assets/{blog-schema-CW5b1zW6.js → blog-schema-WI1e8zgj.js} +1 -1
- package/dist/client/assets/{board-analytics-Dxe4o8ip.js → board-analytics-Cla3ZHOc.js} +1 -1
- package/dist/client/assets/{buckets-CHH4zUVE.js → buckets-BO0Sw74J.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-DtDq3oLF.js → build-improve-prompt-doc-BWoapP6S.js} +1 -1
- package/dist/client/assets/{calendar-BTm6tG9I.js → calendar-DKYy6uOJ.js} +1 -1
- package/dist/client/assets/{capability-load-error-_NmD-cOl.js → capability-load-error-DGJphxbe.js} +1 -1
- package/dist/client/assets/{category-editor-DYUGLxsQ.js → category-editor-C6uMv0OA.js} +1 -1
- package/dist/client/assets/{chart-Ca9eR_5Y.js → chart-CUhY88so.js} +1 -1
- package/dist/client/assets/chat-context-y8u3K9Tq.js +39 -0
- package/dist/client/assets/{chat-draft-CoTQGBD-.js → chat-draft-RqSOe2VX.js} +1 -1
- package/dist/client/assets/{checkbox-B5y_PGOi.js → checkbox-cuQOxwwj.js} +1 -1
- package/dist/client/assets/{choose-editor-DIX9TXPq.js → choose-editor-DVY0m-0N.js} +1 -1
- package/dist/client/assets/{claim-phase-copy-BFw44X02.js → claim-phase-copy-kSJ81npa.js} +1 -1
- package/dist/client/assets/{cli-auth-success-C6re7iuj.js → cli-auth-success-BNNiQ0ff.js} +1 -1
- package/dist/client/assets/{client-icons-CPh76puz.js → client-icons-k3K_Wm7m.js} +1 -1
- package/dist/client/assets/{collapsible-B1qwBokh.js → collapsible-DEfXG6Ht.js} +1 -1
- package/dist/client/assets/{collection-detail-wRbiZfyr.js → collection-detail-CUR7b1nw.js} +1 -1
- package/dist/client/assets/{collection-display-button-BUb3CJ9K.js → collection-display-button-Bii74DZw.js} +1 -1
- package/dist/client/assets/{collection-search-CxS-WOiV.js → collection-search-C-3HPALa.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-DieyB_hA.js → collection-table-wrapper-BI9XAUwm.js} +1 -1
- package/dist/client/assets/{collection-tabs-KA7T80MC.js → collection-tabs-BNpEfqyd.js} +1 -1
- package/dist/client/assets/{column-rules-CI9Lb7JH.js → column-rules-B7pcw_Gh.js} +1 -1
- package/dist/client/assets/{combobox-Dtc7uzBz.js → combobox-ylZ1_mxm.js} +1 -1
- package/dist/client/assets/{command-Bv9q3oXB.js → command-d2fvY4gQ.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-yLUv_IVZ.js → companion-mcps-section--NCFPgCd.js} +1 -1
- package/dist/client/assets/{config-HoNqSkEt.js → config-BDYRd6Wk.js} +1 -1
- package/dist/client/assets/{connect-x3ItRenb.js → connect-CKDAuMYC.js} +1 -1
- package/dist/client/assets/{connect-layout-CaGlUaZ7.js → connect-layout-Ca1Vr3vz.js} +1 -1
- package/dist/client/assets/{connection-C1oBRXZ9.js → connection-DGqqVA7M.js} +1 -1
- package/dist/client/assets/{connection-card-ChCwtZgM.js → connection-card-gIhz0wdg.js} +1 -1
- package/dist/client/assets/{connection-detail-D2UPCyZx.js → connection-detail-B9omyXwb.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-Co-FH2GL.js → connection-form-helpers-A2MriNrX.js} +1 -1
- package/dist/client/assets/{connections-dkoZ4UmD.js → connections-Dh4JuodF.js} +1 -1
- package/dist/client/assets/{context-L3sdAYq1.js → context-BnF04rBC.js} +1 -1
- package/dist/client/assets/{context-menu-ci_wm1iD.js → context-menu-BD-010iM.js} +1 -1
- package/dist/client/assets/{core.esm-DBwtvJuA.js → core.esm-BH3HyyF2.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-5xMTV1HD.js → create-organization-dialog-DjZlmVnS.js} +1 -1
- package/dist/client/assets/{daily-pulse-Daf5yGVF.js → daily-pulse-BXDtpJQU.js} +1 -1
- package/dist/client/assets/{device-hint-BrWR2ybl.js → device-hint-CN2khPPs.js} +1 -1
- package/dist/client/assets/{discover-DQJMsLOC.js → discover-C-mYnXQB.js} +1 -1
- package/dist/client/assets/{domain-settings-BDkTtrtZ.js → domain-settings-BEwECWE8.js} +1 -1
- package/dist/client/assets/{drawer-DgE1Osed.js → drawer-DybzZn1x.js} +1 -1
- package/dist/client/assets/{editor-Cy4QovB4.js → editor-CBqQFFb9.js} +1 -1
- package/dist/client/assets/{empty-state-DYMOp3h6.js → empty-state-B4qRMioD.js} +1 -1
- package/dist/client/assets/{empty-state-CUrIt7uA.js → empty-state-b6tRqzU8.js} +1 -1
- package/dist/client/assets/{extract-connection-data-CILHH2Xu.js → extract-connection-data-CIO9f-TD.js} +1 -1
- package/dist/client/assets/{feature-gate-YfudQg0F.js → feature-gate-ChDRcm7b.js} +1 -1
- package/dist/client/assets/{feature-paywall-DRC24-WT.js → feature-paywall-BN5FphJ8.js} +1 -1
- package/dist/client/assets/{file-explorer-Dn5VXdTz.js → file-explorer-DCd1-8-d.js} +1 -1
- package/dist/client/assets/{file-preview-BOfVvGBK.js → file-preview-CNp5DdHM.js} +1 -1
- package/dist/client/assets/{file-share-button-Ds1jkcUw.js → file-share-button-DOQq6Wrq.js} +1 -1
- package/dist/client/assets/{file-type-icon-DGZn7b1q.js → file-type-icon-ClWl2ykw.js} +1 -1
- package/dist/client/assets/flat-project-DPnFbnmE.js +1 -0
- package/dist/client/assets/{folder-icon-NJlrSxZ7.js → folder-icon-BO5Hlc-b.js} +1 -1
- package/dist/client/assets/{form-5FKfuXwS.js → form-Dm1N7Fdz.js} +1 -1
- package/dist/client/assets/{general-BdG9aUE5.js → general-CszMiv7n.js} +1 -1
- package/dist/client/assets/{home-Rt2zQeR1.js → home-DT4jq_ad.js} +1 -1
- package/dist/client/assets/{icon-button-BIVgkjge.js → icon-button-UzqZkmgc.js} +1 -1
- package/dist/client/assets/{index-DQzSsgCm.js → index-B4rQ5Ej9.js} +1 -1
- package/dist/client/assets/{index-urrD3slz.js → index-BA22z-aT.js} +1 -1
- package/dist/client/assets/{index-807EZ9UE.js → index-BkaImz4P.js} +1 -1
- package/dist/client/assets/{index-BFhkoNSH.js → index-CeuDCj_w.js} +1 -1
- package/dist/client/assets/{index-CPTOUBV5.js → index-ChAMt2d-.js} +1 -1
- package/dist/client/assets/{index-CVUxtkJO.js → index-ClN0hPjk.js} +1 -1
- package/dist/client/assets/{index-Cgvxdf_Q.js → index-D984WV3U.js} +39 -39
- package/dist/client/assets/{index-DCV1G4Vi.js → index-DXSiv_GM.js} +3 -3
- package/dist/client/assets/{index-KYovqQVt.js → index-DiGKvbHH.js} +1 -1
- package/dist/client/assets/{index-DsrMcmtK.js → index-Dq9ehfIf.js} +1 -1
- package/dist/client/assets/{index-D2YD4wQb.js → index-QP5dyfS7.js} +1 -1
- package/dist/client/assets/{index-CnJlMbWp.js → index-ba_EB2Zw.js} +1 -1
- package/dist/client/assets/{index-redirect-Bn1MaA0x.js → index-redirect-8HspsPDC.js} +1 -1
- package/dist/client/assets/{index-DPnYGLNH.js → index-z9lysifj.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-DwnyW_tg.js → infiniteQueryObserver-Bmwf-SCt.js} +1 -1
- package/dist/client/assets/{infra-billing-C7Gt7pP6.js → infra-billing-DlP3vLBN.js} +1 -1
- package/dist/client/assets/{input-D1FQHGyA.js → input-CG0PFhS0.js} +1 -1
- package/dist/client/assets/input-C_t2NUbp.js +17 -0
- package/dist/client/assets/{integration-icon-B9BPa6xZ.js → integration-icon-B4EO_1fi.js} +1 -1
- package/dist/client/assets/{jira-icon-BPd8rXDD.js → jira-icon-DAy3a9S9.js} +1 -1
- package/dist/client/assets/{label-8JLWVV6w.js → label-BszVxI8j.js} +1 -1
- package/dist/client/assets/{layout-CteePcNB.js → layout-BsHSUbxL.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-BU9G_qyx.js → legacy-agents-deep-DCBghYlF.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect--KMXMJZX.js → legacy-main-redirect-C_9Fyd8e.js} +1 -1
- package/dist/client/assets/library-C2ZRDo2P.js +1 -0
- package/dist/client/assets/{library-tab-BFAr00ch.js → library-tab-CZxlOQVR.js} +1 -1
- package/dist/client/assets/{login-DI6I_2QT.js → login-CoP-xpgM.js} +1 -1
- package/dist/client/assets/{markdown-uBKSlcRL.js → markdown-C8b2SRJt.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-CErXUSq-.js → mcp-app-renderer-qrtR9Z1h.js} +1 -1
- package/dist/client/assets/{mcp-oauth-AlD-TzSE.js → mcp-oauth--_7bIOac.js} +1 -1
- package/dist/client/assets/{mcp-oauth-sRx18rfQ.js → mcp-oauth-BIr9y8Ow.js} +1 -1
- package/dist/client/assets/{members-CPBPwKZ1.js → members-DX1jVu8f.js} +1 -1
- package/dist/client/assets/{memory-CJihkZvO.js → memory-DGqh7MMN.js} +1 -1
- package/dist/client/assets/{mini-report-page-DFzjTxjy.js → mini-report-page-DeT726Qz.js} +1 -1
- package/dist/client/assets/{mock-board-biK2PfSA.js → mock-board-DiXeO9l9.js} +1 -1
- package/dist/client/assets/{monaco-editor-BsWCzYXO.js → monaco-editor-BmtkWb9u.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-IO7yauKf.js → monitoring-stats-row-CROD4XJo.js} +1 -1
- package/dist/client/assets/{multi-select-BNjoAfeC.js → multi-select-COcK2vp_.js} +1 -1
- package/dist/client/assets/{mustache-rvHVzPnO.js → mustache-B3B0mlPh.js} +1 -1
- package/dist/client/assets/{new-project-dialog-BNMMgasu.js → new-project-dialog-CQomS8HX.js} +1 -1
- package/dist/client/assets/{oauth-callback-BeTiKSrh.js → oauth-callback-BAjl2hrI.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-DDLk0zHp.js → oauth-callback-ai-provider-Dfitdf7t.js} +1 -1
- package/dist/client/assets/{onboarding-BjDnSa2-.js → onboarding-DuW4ryZs.js} +1 -1
- package/dist/client/assets/{openai-conversation-B69u3s77.js → openai-conversation-klLH_0HC.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-bgF9KdQy.js → optimistic-project-sidebar-views-CaTvAXwY.js} +1 -1
- package/dist/client/assets/{organization-choice-udNpLdVM.js → organization-choice-DtdFVbBZ.js} +1 -1
- package/dist/client/assets/{orgs-BXO2vhOY.js → orgs-BBq2qsW_.js} +1 -1
- package/dist/client/assets/{page-seo-form-zD7DmA6N.js → page-seo-form-BJN0O5_N.js} +1 -1
- package/dist/client/assets/{pair-DIssvTMn.js → pair-D3dg1naQ.js} +1 -1
- package/dist/client/assets/{plan-ladder-CAWIPKc5.js → plan-ladder-DUQWM1mB.js} +1 -1
- package/dist/client/assets/{popover-13pjOuZU.js → popover-9tPVAoH5.js} +1 -1
- package/dist/client/assets/{post-calendar-rAhG8kBe.js → post-calendar-D9oVrQhS.js} +1 -1
- package/dist/client/assets/{post-editor-B6gbS3Ci.js → post-editor-C2tsxtV4.js} +1 -1
- package/dist/client/assets/{preview-content-DLC7444f.js → preview-content-BIpDQXJu.js} +1 -1
- package/dist/client/assets/{preview-dialog-CjNOBFAp.js → preview-dialog-CH8GibCu.js} +1 -1
- package/dist/client/assets/{preview-panel-ClNcZ7Jq.js → preview-panel-CCFjojUE.js} +1 -1
- package/dist/client/assets/{product-picker-dialog-9jWzS0xD.js → product-picker-dialog-BoGvkEwe.js} +1 -1
- package/dist/client/assets/{profile-szk-J5OE.js → profile-BKpvrH_P.js} +1 -1
- package/dist/client/assets/{project-app-view-BScfdH5R.js → project-app-view-0HH2t56F.js} +1 -1
- package/dist/client/assets/{project-feed-D8bVgmrv.js → project-feed-d2kKPzOq.js} +1 -1
- package/dist/client/assets/{project-icon-BEB7bo0T.js → project-icon-DeUPWsC_.js} +1 -1
- package/dist/client/assets/project-reports-7r3buXCO.js +1 -0
- package/dist/client/assets/project-tasks-Dp-gjCz7.js +1 -0
- package/dist/client/assets/{projects-zc5zuYNt.js → projects-dI6btB5J.js} +1 -1
- package/dist/client/assets/{projects-empty-state-GodmIrGy.js → projects-empty-state-DAa4wzAP.js} +1 -1
- package/dist/client/assets/{prompts-C1AIYXZy.js → prompts-D3LKfm14.js} +1 -1
- package/dist/client/assets/record-editor-BDN9ztWf.js +1 -0
- package/dist/client/assets/redirect-editor-DBLjC8Z9.js +1 -0
- package/dist/client/assets/{reports-Cd8g8CNj.js → reports-B5aLNQGc.js} +1 -1
- package/dist/client/assets/reports-CvKnRIKX.js +1 -0
- package/dist/client/assets/{reports-onboarding-8b6ysmBv.js → reports-onboarding-D7Nsv0TX.js} +1 -1
- package/dist/client/assets/{reports-tab-BI41LuK6.js → reports-tab-bgB5WodW.js} +2 -2
- package/dist/client/assets/{repositories-SY3BCP97.js → repositories-Du_yi0rf.js} +1 -1
- package/dist/client/assets/{repository-binding-OIkiiBn_.js → repository-binding-CrIQbyJh.js} +1 -1
- package/dist/client/assets/{repository-import-picker-BD05Qbz9.js → repository-import-picker-n3EYoF9U.js} +1 -1
- package/dist/client/assets/{repository-picker-DHYERC22.js → repository-picker-CjDs0ici.js} +1 -1
- package/dist/client/assets/{require-capability-HLF-G2Gn.js → require-capability-BDLtPaM5.js} +1 -1
- package/dist/client/assets/{required-auth-layout-COVLs567.js → required-auth-layout-CTKRCLps.js} +1 -1
- package/dist/client/assets/{reset-password-D3tROrku.js → reset-password-XiFYESJ5.js} +1 -1
- package/dist/client/assets/{resizable-CYK8YYKx.js → resizable-C3INc4c7.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-DRYlqyoT.js → resolve-tab-icon-DuWtsFCw.js} +1 -1
- package/dist/client/assets/{review-settings-DpOwh6kJ.js → review-settings-BCvIwiTZ.js} +1 -1
- package/dist/client/assets/{rich-text-link-control-yKpCLxk-.js → rich-text-link-control-B2KML_yp.js} +1 -1
- package/dist/client/assets/roles-B5KIhtIL.js +1 -0
- package/dist/client/assets/{route-Dr_7m0Tv.js → route-BwivpFZQ.js} +1 -1
- package/dist/client/assets/route-Fylk_TVt.js +1 -0
- package/dist/client/assets/route-nHlGvnBX.js +1 -0
- package/dist/client/assets/{runnable-block-editor-B77rsBAp.js → runnable-block-editor-v2diysES.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-cevNxEEE.js → sandbox-lifecycle-context-CtphXAh2.js} +1 -1
- package/dist/client/assets/schema-BMqZTcjW.js +1 -0
- package/dist/client/assets/{scroll-area-BerbxwSa.js → scroll-area-B9YHNZjL.js} +1 -1
- package/dist/client/assets/{search-input-Eqbgvt1Z.js → search-input-BJ-xb_6w.js} +1 -1
- package/dist/client/assets/{search-toggle-DjnCmeKu.js → search-toggle-DviE2KK7.js} +1 -1
- package/dist/client/assets/{secret-picker-D_IInK4O.js → secret-picker-MDfAhcKZ.js} +1 -1
- package/dist/client/assets/{secrets-ChTLi-FR.js → secrets-BWXZ9ADR.js} +1 -1
- package/dist/client/assets/{sections-editor-BcCRV-fD.js → sections-editor-DRPdyBr7.js} +1 -1
- package/dist/client/assets/{select-CTpu637-.js → select-Cmhyur65.js} +1 -1
- package/dist/client/assets/{select-model-BwS3mp6E.js → select-model-DlhjRyXh.js} +1 -1
- package/dist/client/assets/{seo-editor-CL5enOUs.js → seo-editor-Cslo5GyR.js} +1 -1
- package/dist/client/assets/{separator-BHuQN-Ab.js → separator-XBrskDk1.js} +1 -1
- package/dist/client/assets/{settings-tab-CHZtgFBe.js → settings-tab-Bhjq-v1u.js} +1 -1
- package/dist/client/assets/{sheet-C6FCafA6.js → sheet-bMLuzpcl.js} +1 -1
- package/dist/client/assets/{shell-layout-CGyXmROi.js → shell-layout-CX2kb4As.js} +1 -1
- package/dist/client/assets/{skills-F5Uw4Pv1.js → skills-smEsZOyf.js} +1 -1
- package/dist/client/assets/{slider-d3xYNxIE.js → slider-xDThp8gG.js} +1 -1
- package/dist/client/assets/{sortable.esm-C6z3vfiq.js → sortable.esm-C4yl7HRk.js} +1 -1
- package/dist/client/assets/{sso-CmIeF-7l.js → sso-D5XcZRGg.js} +1 -1
- package/dist/client/assets/{suggestion-TsE32nPi.js → suggestion-B9eDgKDC.js} +1 -1
- package/dist/client/assets/{switch-TCI26U0b.js → switch-D6SJRikA.js} +1 -1
- package/dist/client/assets/{symbol-Bmeb5mrx.js → symbol-8pL_EbyE.js} +1 -1
- package/dist/client/assets/{synced-repos-CFRe6JC2.js → synced-repos-CvOi5sDr.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-gi6BIarB.js → tab-icon-glyph-B5Fq5S50.js} +1 -1
- package/dist/client/assets/{table-pVUW2rwH.js → table-BVuWDAYC.js} +1 -1
- package/dist/client/assets/{tabs-BE3vAj8m.js → tabs-CJiVz1UY.js} +1 -1
- package/dist/client/assets/{task-board-90M9g_fi.js → task-board-BypYXBtD.js} +1 -1
- package/dist/client/assets/{task-route-CS8UQngR.js → task-route-CxLDxVTy.js} +1 -1
- package/dist/client/assets/{task-status-C9ibacuz.js → task-status-DR_ZGtmT.js} +1 -1
- package/dist/client/assets/taskboard-analytics-B5tiovFi.js +1 -0
- package/dist/client/assets/tasks-C5eWHl6J.js +1 -0
- package/dist/client/assets/{tasks-BqDBNIqA.js → tasks-pRlF9aKa.js} +1 -1
- package/dist/client/assets/{textarea-BpAK_nVQ.js → textarea-C3QvYVs6.js} +1 -1
- package/dist/client/assets/{thread-analytics-DIkW4P-1.js → thread-analytics-CVYD56Lv.js} +1 -1
- package/dist/client/assets/{thread-button-EBdfzXFx.js → thread-button-Dnwv5gXz.js} +1 -1
- package/dist/client/assets/{thread-intent-CRpeRnx2.js → thread-intent-BouO_OhM.js} +1 -1
- package/dist/client/assets/{thread-route-zMAwqLeS.js → thread-route-CzzxiajL.js} +1 -1
- package/dist/client/assets/{thread-route-Ck1dYsiI.js → thread-route-Dp3ppEkH.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-CT23RfVg.js → thread-sheet-body-Z8jKG5ht.js} +1 -1
- package/dist/client/assets/{time-range-picker-dZaUQ5ot.js → time-range-picker-DE7fkhif.js} +1 -1
- package/dist/client/assets/{toggle-group-Cmucm9d_.js → toggle-group-BxPPN08u.js} +1 -1
- package/dist/client/assets/{tool-namespace-W6oSGBwY.js → tool-namespace-C5Z8tVC2.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-D_zSUxYE.js → toolbar-icon-button-539CZpjb.js} +1 -1
- package/dist/client/assets/{tooltip-CiYSgLFK.js → tooltip-CfH7_UR9.js} +1 -1
- package/dist/client/assets/{tooltipContext-Daig5_qo.js → tooltipContext-Dt4926A5.js} +1 -1
- package/dist/client/assets/{track-BNVgjI-e.js → track-D8kXLyAV.js} +1 -1
- package/dist/client/assets/{types-DzWYDlOK.js → types-PjheW3sm.js} +1 -1
- package/dist/client/assets/{url-slug-BtTWMETT.js → url-slug-D7hdnLPq.js} +1 -1
- package/dist/client/assets/{usage-stats-BZiqC0Eq.js → usage-stats-BcmMK-YO.js} +1 -1
- package/dist/client/assets/{use-ai-providers-D_-p2XHZ.js → use-ai-providers-CeHzBmwD.js} +1 -1
- package/dist/client/assets/{use-automations-AknZaEXT.js → use-automations-DLk4Zq7Y.js} +1 -1
- package/dist/client/assets/{use-autosave-DOY-TitN.js → use-autosave-5IDmaWA6.js} +1 -1
- package/dist/client/assets/{use-chat-layout-state-BGJ7hecp.js → use-chat-layout-state-C4y1ngrz.js} +1 -1
- package/dist/client/assets/{use-chat-navigation-Dn06-EpQ.js → use-chat-navigation-pwxRnoh5.js} +1 -1
- package/dist/client/assets/{use-clock-tick-vjL0x3S6.js → use-clock-tick-DcGl_y28.js} +1 -1
- package/dist/client/assets/{use-connect-companion-Cfgp9MjD.js → use-connect-companion-DmQTaaXP.js} +1 -1
- package/dist/client/assets/{use-connection-BReUf0ym.js → use-connection-B96BwbcD.js} +1 -1
- package/dist/client/assets/{use-copy-BA_1zlIX.js → use-copy-COXbZ1Gm.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-mFuwkPSo.js → use-create-virtual-mcp-BuymUE2O.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-BtKmaD89.js → use-date-fns-locale-D2o3Y11s.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-BgCQLSRj.js → use-debounced-autosave-Yq56G4iL.js} +1 -1
- package/dist/client/assets/{use-debounced-value-DppivyxK.js → use-debounced-value-BZK5uiHm.js} +1 -1
- package/dist/client/assets/{use-deco-credits-C6g5nuGf.js → use-deco-credits-COvQvXnV.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-BAyb-mQF.js → use-decopilot-events-BDPMNEXz.js} +1 -1
- package/dist/client/assets/{use-delete-connection-xCFE_9as.js → use-delete-connection-DT6vWhGX.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-k8c5st8B.js → use-deployment-admin-CoVHfZYT.js} +1 -1
- package/dist/client/assets/{use-ensure-project-folder-C-CBLCjO.js → use-ensure-project-folder-peTgVhMP.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-DpZxJT8R.js → use-fast-preview-draft-url-BDHxUOYh.js} +1 -1
- package/dist/client/assets/{use-file-configs-D-lKeneW.js → use-file-configs-DoW1VYTz.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-BKpwTLbY.js → use-infinite-scroll-1WuTfkvL.js} +1 -1
- package/dist/client/assets/{use-join-requests-BFtAo-Nh.js → use-join-requests-uEHIq-wW.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-DeC1fHi6.js → use-main-panel-tabs-eZgXms3O.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-I_Qut9IE.js → use-mcp-auth-status-GSONXJ6Y.js} +1 -1
- package/dist/client/assets/{use-mcp-client-BnJ4CmVv.js → use-mcp-client-D8-rDWEf.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-pprT3y3c.js → use-mcp-prompts-9xOCFCVM.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-nBYl_9Cj.js → use-mcp-tools-BYNW1IvH.js} +1 -1
- package/dist/client/assets/{use-members-CjMEwjKK.js → use-members-DuiAoVt0.js} +1 -1
- package/dist/client/assets/{use-mobile-CaE2VxXh.js → use-mobile-Cz-N6vVG.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-C9CNI3wT.js → use-navigate-to-agent-CWPsHr0w.js} +1 -1
- package/dist/client/assets/use-new-blocks-editor-B5DYqQrS.js +1 -0
- package/dist/client/assets/{use-open-billing-url-C77XyoLh.js → use-open-billing-url-CHALVI7F.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-CA-MyDFx.js → use-org-auth-client-DQ6vSNUo.js} +1 -1
- package/dist/client/assets/{use-org-fs-BvswiWhM.js → use-org-fs-UdNnQzcG.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-BZsUkIPj.js → use-org-repo-syncs-CE9Yx0AE.js} +1 -1
- package/dist/client/assets/{use-org-sso-uVC0Aeyi.js → use-org-sso-BRZ2xqKg.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DHpuUweO.js → use-organization-roles-5fHLGM-_.js} +1 -1
- package/dist/client/assets/{use-organization-settings-CcdWKIZG.js → use-organization-settings-BEUCQxuY.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-BwaxzeCI.js → use-panel-navigate-B348HV-V.js} +1 -1
- package/dist/client/assets/{use-project-scope-DIXfNogh.js → use-project-scope-CJSvss5q.js} +1 -1
- package/dist/client/assets/{use-releases-By4PMCal.js → use-releases-DRDEblSZ.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-Bh5K_gdR.js → use-reports-diagnostic-BQoNp5Lt.js} +1 -1
- package/dist/client/assets/{use-sandbox-events-BuzKGb6t.js → use-sandbox-events-afI4fSp9.js} +1 -1
- package/dist/client/assets/{use-secrets-Be9wdGLq.js → use-secrets-6NdpjMzr.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-Dah5aW9A.js → use-section-preview-base-Du6Z-MWu.js} +1 -1
- package/dist/client/assets/{use-tags-CPiAfrfw.js → use-tags-Dkeb0fZQ.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-BzVxQLaZ.js → use-task-board-analytics-BsZ5fOsz.js} +1 -1
- package/dist/client/assets/{use-task-board-events-AoW8CB16.js → use-task-board-events-BZPWVwkQ.js} +1 -1
- package/dist/client/assets/{use-task-board-item-prs-Cm1nLJbF.js → use-task-board-item-prs-6pzJEXZH.js} +1 -1
- package/dist/client/assets/{use-task-board-items-YxLDtbf_.js → use-task-board-items-DDExwWH5.js} +1 -1
- package/dist/client/assets/{use-task-metadata-B9JzZCwZ.js → use-task-metadata-QX8Xm3F2.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-DKolGKrG.js → use-thread-analytics-4YJ0wSzW.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-BeW_ZEj9.js → use-thread-outputs-BaagK6yF.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-BgN51nwo.js +1 -0
- package/dist/client/assets/{useQueries-C5yFykqS.js → useQueries-BeM3koNG.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DnCmqaG2.js +1 -0
- package/dist/client/assets/{users-BPaHw_X_.js → users-DA2VVqSS.js} +1 -1
- package/dist/client/assets/{utils-D8EfxtqS.js → utils-DGIwcQET.js} +1 -1
- package/dist/client/assets/{variant-calendar-Bo3CCQPM.js → variant-calendar-B2z-zkHQ.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-B8Xy0hwV.js → variant-matcher-override-WuIO8MOW.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-CHGut8Gu.js → view-mode-toggle-DA847UFd.js} +1 -1
- package/dist/client/assets/{virtual-mcp-DgndW5tn.js → virtual-mcp-ySkvJvwZ.js} +1 -1
- package/dist/client/assets/{watch-sse-pool-DNUoCrky.js → watch-sse-pool-jwr9yBFo.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/migrate.js +240 -240
- package/dist/server/server.js +623 -622
- package/package.json +1 -1
- package/dist/client/assets/agent-app-DzLJcblb.js +0 -1
- package/dist/client/assets/agent-deck-BZEp8fRL.js +0 -1
- package/dist/client/assets/agent-library-Pk0IAtu0.js +0 -1
- package/dist/client/assets/agent-library-file-Dv8aM-7k.js +0 -1
- package/dist/client/assets/agent-settings-OLjHIWXV.js +0 -1
- package/dist/client/assets/agent-site-editor-code-CsFcTfpY.js +0 -2
- package/dist/client/assets/agent-view-zjcLXSYx.js +0 -1
- package/dist/client/assets/ai-providers-BBzQl4jb.js +0 -6
- package/dist/client/assets/api-keys-B2p99l9x.js +0 -1
- package/dist/client/assets/app-editor-CmySzZMn.js +0 -1
- package/dist/client/assets/chat-context-DPuof8Lx.js +0 -39
- package/dist/client/assets/flat-project-DohBB_k-.js +0 -1
- package/dist/client/assets/input-BvEtvuLy.js +0 -17
- package/dist/client/assets/library-Bk-wI1G3.js +0 -1
- package/dist/client/assets/project-reports-CYk0gIHi.js +0 -1
- package/dist/client/assets/project-tasks-T7wij8vs.js +0 -1
- package/dist/client/assets/record-editor-D8HTL-dd.js +0 -1
- package/dist/client/assets/redirect-editor-C5Fcvp6l.js +0 -1
- package/dist/client/assets/reports-BZvTaNDE.js +0 -1
- package/dist/client/assets/roles-H-ySJM8T.js +0 -1
- package/dist/client/assets/route-0IOE_iwR.js +0 -1
- package/dist/client/assets/route-DYvSeMz7.js +0 -1
- package/dist/client/assets/schema-CLUxJ2Aq.js +0 -1
- package/dist/client/assets/taskboard-analytics-D8c5pILu.js +0 -1
- package/dist/client/assets/tasks-B9K3xklH.js +0 -1
- package/dist/client/assets/use-new-blocks-editor-Dhap32-H.js +0 -1
- package/dist/client/assets/useInfiniteQuery-CXvSW1zP.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CFJbE4jf.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var Bz=Object.defineProperty;var Gz=(_)=>_;function Oz(_,x){this[_]=Gz.bind(null,x)}var C=(_,x)=>{for(var u in x)Bz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Oz.bind(x,u)})};import{Migrator as Rz,sql as o}from"kysely";var Ex={};C(Ex,{up:()=>Sz,down:()=>fz});async function Sz(_){await _.schema.createTable("codex_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey().references("user.id").onDelete("cascade")).addColumn("encrypted_auth","text",(x)=>x.notNull()).addColumn("auth_hash","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function fz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var $x={};C($x,{up:()=>Az,down:()=>Iz});import{sql as vm}from"kysely";async function Az(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",vm`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",vm`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function Iz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Px={};C(Px,{up:()=>yz,down:()=>Vz});import{sql as a}from"kysely";async function yz(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await a`ALTER TABLE organization_settings
|
|
3
3
|
DROP COLUMN IF EXISTS registry_config,
|
|
4
4
|
DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
|
|
5
5
|
BEGIN RETURN value::jsonb;
|
|
@@ -14,24 +14,24 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
14
14
|
)`.execute(_),await a`DELETE FROM connections
|
|
15
15
|
WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
|
|
16
16
|
OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
|
|
17
|
-
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function
|
|
17
|
+
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function Vz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Ux={};C(Ux,{up:()=>wz,down:()=>kz});import{sql as pm}from"kysely";async function wz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await pm`
|
|
18
18
|
select organization_id, metadata
|
|
19
19
|
from connections
|
|
20
20
|
where connection_type = 'VIRTUAL'
|
|
21
21
|
and metadata like '%submoduleCredentials%'
|
|
22
22
|
order by updated_at asc
|
|
23
|
-
`.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let
|
|
23
|
+
`.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(m))continue;for(let T of m){let z=T?.host,E=T?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,m]of u){let T=JSON.stringify([...m].map(([z,E])=>({host:z,secretId:E})));await pm`
|
|
24
24
|
insert into organization_settings
|
|
25
25
|
("organizationId", submodule_credentials, "createdAt", "updatedAt")
|
|
26
|
-
values (${K}, ${
|
|
26
|
+
values (${K}, ${T}, ${N}, ${N})
|
|
27
27
|
on conflict ("organizationId") do update
|
|
28
28
|
set submodule_credentials = excluded.submodule_credentials,
|
|
29
29
|
"updatedAt" = excluded."updatedAt"
|
|
30
|
-
`.execute(_)}}async function
|
|
30
|
+
`.execute(_)}}async function kz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Jx={};C(Jx,{up:()=>nz,down:()=>vz});async function nz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function vz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Xx={};C(Xx,{up:()=>pz,down:()=>gz});import{sql as Qx}from"kysely";async function pz(_){await Qx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Qx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Qx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function gz(_){await _.schema.dropIndex("idx_threads_active_status").execute(),await _.schema.dropIndex("idx_threads_updated_at").execute(),await _.schema.dropIndex("idx_tmp_finish_persisted_at").execute()}var Wx={};C(Wx,{up:()=>cz,down:()=>hz});import{sql as G}from"kysely";var qz={title:{old:["Store Report","Commerce Discovery"],new:"Deco Score"},description:{old:["Your store's report and diagnostics","Commerce report and diagnostics","Commerce Discovery report and commerce diagnostics."],new:"Your store's Deco Score"}},iz={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},Zx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function gm(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function qm(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,qz],[G`'commerce-discovery_' || organization_id`,iz]])for(let T of["title","description"]){let{from:z,to:E}=gm(m[T],x);await G`
|
|
31
31
|
UPDATE connections
|
|
32
|
-
SET ${G.ref(
|
|
32
|
+
SET ${G.ref(T)} = ${E}
|
|
33
33
|
WHERE id = ${K}
|
|
34
|
-
AND ${G.ref(
|
|
34
|
+
AND ${G.ref(T)} = ANY(${G.val(z)}::text[])
|
|
35
35
|
`.execute(_)}await G`
|
|
36
36
|
CREATE OR REPLACE FUNCTION deco_score_try_jsonb(t text)
|
|
37
37
|
RETURNS jsonb AS $fn$
|
|
@@ -41,7 +41,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
41
41
|
RETURN NULL;
|
|
42
42
|
END;
|
|
43
43
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
44
|
-
`.execute(_);let{from:u,to:N}=
|
|
44
|
+
`.execute(_);let{from:u,to:N}=gm(Zx.label,x);await G`
|
|
45
45
|
WITH agents AS (
|
|
46
46
|
SELECT id, deco_score_try_jsonb(metadata) AS m
|
|
47
47
|
FROM connections
|
|
@@ -56,7 +56,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
56
56
|
(
|
|
57
57
|
SELECT jsonb_agg(
|
|
58
58
|
CASE
|
|
59
|
-
WHEN v ->> 'toolName' = ${
|
|
59
|
+
WHEN v ->> 'toolName' = ${Zx.toolName}
|
|
60
60
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
61
61
|
THEN v || jsonb_build_object('label', ${N}::text)
|
|
62
62
|
ELSE v
|
|
@@ -72,7 +72,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
72
72
|
AND EXISTS (
|
|
73
73
|
SELECT 1
|
|
74
74
|
FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
|
|
75
|
-
WHERE v ->> 'toolName' = ${
|
|
75
|
+
WHERE v ->> 'toolName' = ${Zx.toolName}
|
|
76
76
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
77
77
|
)
|
|
78
78
|
)
|
|
@@ -80,7 +80,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
80
80
|
SET metadata = r.m::text
|
|
81
81
|
FROM relabeled r
|
|
82
82
|
WHERE c.id = r.id
|
|
83
|
-
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function
|
|
83
|
+
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function cz(_){await qm(_,"up")}async function hz(_){await qm(_,"down")}var Lx={};C(Lx,{up:()=>oz,down:()=>az,ACTIONS:()=>jx});import{sql as m_}from"kysely";var jx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],tz=jx.filter((_)=>_!=="finding_resolved");async function oz(_){await im(_,jx)}async function az(_){await m_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await im(_,tz)}async function im(_,x){await m_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await m_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var Fx={};C(Fx,{up:()=>rz,down:()=>lz});import{sql as B_}from"kysely";async function rz(_){await B_`
|
|
84
84
|
ALTER TABLE org_jira_column_automations
|
|
85
85
|
ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
|
|
86
86
|
CONSTRAINT chk_org_jira_column_automations_from_kind
|
|
@@ -91,7 +91,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
91
91
|
ALTER TABLE org_jira_column_automations
|
|
92
92
|
DROP CONSTRAINT org_jira_column_automations_pkey,
|
|
93
93
|
ADD PRIMARY KEY (organization_id, jira_status, from_key)
|
|
94
|
-
`.execute(_)}async function
|
|
94
|
+
`.execute(_)}async function lz(_){await B_`
|
|
95
95
|
DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
|
|
96
96
|
`.execute(_),await B_`
|
|
97
97
|
ALTER TABLE org_jira_column_automations
|
|
@@ -100,18 +100,18 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
100
100
|
DROP COLUMN from_key,
|
|
101
101
|
DROP COLUMN from_statuses,
|
|
102
102
|
DROP COLUMN from_kind
|
|
103
|
-
`.execute(_)}var
|
|
103
|
+
`.execute(_)}var Yx={};C(Yx,{up:()=>ez,down:()=>dz});import{sql as cm}from"kysely";async function ez(_){await _.schema.createTable("org_project_folders").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("folders","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(cm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("user_sidebar_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("preferences","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(cm`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_sidebar_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_sidebar_preferences_organization_id_idx").on("user_sidebar_preferences").column("organization_id").execute()}async function dz(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Dx={};C(Dx,{up:()=>sz,down:()=>bz});async function sz(){}async function bz(){}var Mx={};C(Mx,{up:()=>_E,down:()=>xE});import{sql as Hx}from"kysely";async function _E(_){await Hx`
|
|
104
104
|
ALTER TABLE task_board_prompts
|
|
105
105
|
ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
|
|
106
|
-
`.execute(_)}async function
|
|
106
|
+
`.execute(_)}async function xE(_){await Hx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Hx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Bx={};C(Bx,{up:()=>uE,down:()=>CE});import{sql as Rx}from"kysely";async function uE(_){await Rx`
|
|
107
107
|
DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
|
|
108
|
-
`.execute(_),await
|
|
108
|
+
`.execute(_),await Rx`
|
|
109
109
|
DELETE FROM connection_aggregations
|
|
110
110
|
WHERE parent_connection_id LIKE 'studio-jira\\_%'
|
|
111
|
-
`.execute(_),await
|
|
111
|
+
`.execute(_),await Rx`
|
|
112
112
|
DELETE FROM connections
|
|
113
113
|
WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
|
|
114
|
-
`.execute(_)}async function
|
|
114
|
+
`.execute(_)}async function CE(){}var Gx={};C(Gx,{up:()=>KE,down:()=>NE});import{sql as hm}from"kysely";async function KE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(hm`audience in ('human', 'internal')`)).execute(),await hm`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function NE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Ox={};C(Ox,{up:()=>TE,down:()=>zE});import{sql as mE}from"kysely";async function TE(_){await mE`
|
|
115
115
|
UPDATE org_fs_entry AS d
|
|
116
116
|
SET deleted_at = now(),
|
|
117
117
|
updated_at = now(),
|
|
@@ -130,7 +130,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
130
130
|
AND c.parent = d.path
|
|
131
131
|
AND c.deleted_at IS NULL
|
|
132
132
|
)
|
|
133
|
-
`.execute(_)}async function
|
|
133
|
+
`.execute(_)}async function zE(){}var fx={};C(fx,{up:()=>$E,down:()=>PE,ACTIONS:()=>Sx});import{sql as F}from"kysely";var Sx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],EE=Sx.filter((_)=>_!=="sprint_changed");async function $E(_){await F`
|
|
134
134
|
CREATE TABLE task_board_sprints (
|
|
135
135
|
id text PRIMARY KEY,
|
|
136
136
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -156,64 +156,64 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
156
156
|
CREATE INDEX idx_task_board_items_sprint
|
|
157
157
|
ON task_board_items (organization_id, sprint_id)
|
|
158
158
|
WHERE sprint_id IS NOT NULL
|
|
159
|
-
`.execute(_),await
|
|
159
|
+
`.execute(_),await tm(_,Sx)}async function PE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await tm(_,EE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function tm(_,x){await F`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await F`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${F.join(x.map((u)=>F.lit(u)))}))`.execute(_)}var Ax={};C(Ax,{up:()=>JE,planOrgSiteProjectLinks:()=>rm,down:()=>QE,applyOrgSiteProjectLinks:()=>lm});import{sql as J}from"kysely";var UE="migration-237",om=1000;async function am(_){return(await J`
|
|
160
160
|
SELECT conname FROM pg_constraint
|
|
161
161
|
WHERE conrelid = 'org_sites'::regclass
|
|
162
162
|
AND confrelid = 'organization'::regclass
|
|
163
163
|
AND contype = 'f'
|
|
164
|
-
`.execute(_)).rows[0]?.conname??null}async function
|
|
164
|
+
`.execute(_)).rows[0]?.conname??null}async function rm(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
|
|
165
165
|
SELECT slug, organization_id FROM org_sites
|
|
166
166
|
WHERE organization_id IS NOT NULL
|
|
167
167
|
ORDER BY organization_id, slug
|
|
168
|
-
`.execute(_);if(u.rows.length===0)return x;let N=await
|
|
168
|
+
`.execute(_);if(u.rows.length===0)return x;let N=await J`
|
|
169
169
|
SELECT id, organization_id, metadata FROM connections
|
|
170
170
|
WHERE connection_type = 'VIRTUAL'
|
|
171
171
|
AND organization_id IN (
|
|
172
172
|
SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
|
|
173
173
|
)
|
|
174
174
|
ORDER BY organization_id, id
|
|
175
|
-
`.execute(_),K=new Map;for(let
|
|
175
|
+
`.execute(_),K=new Map;for(let m of N.rows){if(!m.metadata)continue;let T;try{let $=JSON.parse(m.metadata);if($&&typeof $==="object")T=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof T!=="string"||!T)continue;let z=`${m.organization_id}\x00${T}`,E=K.get(z)??[];E.push(m.id),K.set(z,E)}for(let{slug:m,organization_id:T}of u.rows){let z=K.get(`${T}\x00${m}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:m,projectIds:z});else x.links.push({slug:m,projectId:z[0]})}return x}async function lm(_,x){let u=0;for(let N=0;N<x.length;N+=om){let K=J.join(x.slice(N,N+om).map((T)=>J`(${T.slug}::text, ${T.projectId}::text)`)),m=await J`
|
|
176
176
|
UPDATE org_sites o
|
|
177
177
|
SET project_id = v.pid,
|
|
178
178
|
linked_at = now(),
|
|
179
|
-
updated_by = ${
|
|
179
|
+
updated_by = ${UE},
|
|
180
180
|
updated_at = now()
|
|
181
181
|
FROM (VALUES ${K}) AS v(slug, pid)
|
|
182
182
|
WHERE o.slug = v.slug
|
|
183
183
|
AND o.project_id IS NULL
|
|
184
184
|
AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
|
|
185
|
-
`.execute(_);u+=Number(
|
|
185
|
+
`.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function JE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await rm(_);await J`
|
|
186
186
|
ALTER TABLE org_sites
|
|
187
187
|
ADD COLUMN project_id text NULL
|
|
188
188
|
REFERENCES connections(id) ON DELETE SET NULL,
|
|
189
189
|
ADD COLUMN linked_at timestamptz NULL
|
|
190
|
-
`.execute(_),await
|
|
190
|
+
`.execute(_),await J`
|
|
191
191
|
CREATE UNIQUE INDEX org_sites_project_id_uq
|
|
192
192
|
ON org_sites (project_id) WHERE project_id IS NOT NULL
|
|
193
|
-
`.execute(_);let u=await
|
|
193
|
+
`.execute(_);let u=await am(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
|
|
194
194
|
ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
|
|
195
|
-
`.execute(_),await
|
|
195
|
+
`.execute(_),await J`
|
|
196
196
|
ALTER TABLE org_sites
|
|
197
197
|
ADD CONSTRAINT org_sites_organization_id_fkey
|
|
198
198
|
FOREIGN KEY (organization_id) REFERENCES organization(id)
|
|
199
199
|
ON DELETE SET NULL NOT VALID
|
|
200
|
-
`.execute(_),await
|
|
200
|
+
`.execute(_),await J`
|
|
201
201
|
ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
|
|
202
|
-
`.execute(_);let N=await
|
|
202
|
+
`.execute(_);let N=await lm(_,x.links),K=await J`
|
|
203
203
|
UPDATE org_sites SET linked_at = created_at
|
|
204
204
|
WHERE organization_id IS NOT NULL AND linked_at IS NULL
|
|
205
|
-
`.execute(_);await
|
|
205
|
+
`.execute(_);await J`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:m,projectIds:T}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${m}": ${T.join(", ")}`)}async function QE(_){if((await J`
|
|
206
206
|
SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
|
|
207
|
-
`.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await
|
|
207
|
+
`.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await am(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
|
|
208
208
|
ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
|
|
209
|
-
`.execute(_),await
|
|
209
|
+
`.execute(_),await J`
|
|
210
210
|
ALTER TABLE org_sites
|
|
211
211
|
ADD CONSTRAINT org_sites_organization_id_fkey
|
|
212
212
|
FOREIGN KEY (organization_id) REFERENCES organization(id)
|
|
213
213
|
ON DELETE CASCADE
|
|
214
|
-
`.execute(_),await
|
|
214
|
+
`.execute(_),await J`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await J`
|
|
215
215
|
ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
|
|
216
|
-
`.execute(_)}var
|
|
216
|
+
`.execute(_)}var Ix={};C(Ix,{up:()=>XE,moveRules:()=>Y,down:()=>ZE});import{sql as c}from"kysely";async function XE(_){await Y(_,"task_board_prompts","tbp_","in_progress","in_review"),await Y(_,"task_board_prompts","tbp_","todo","in_progress"),await Y(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await Y(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
|
|
217
217
|
DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
|
|
218
218
|
`.execute(_),await Y(_,"task_board_column_automations","tbca_","todo","in_progress"),await Y(_,"task_board_column_automations","tbca_","approved","ready_for_deployment"),await Y(_,"task_board_column_automations","tbca_","merged","post_deploy_validation"),await c`
|
|
219
219
|
WITH moved AS (
|
|
@@ -241,7 +241,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
241
241
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
242
242
|
now()
|
|
243
243
|
FROM moved
|
|
244
|
-
`.execute(_)}async function
|
|
244
|
+
`.execute(_)}async function ZE(){}async function Y(_,x,u,N,K){await c`
|
|
245
245
|
DELETE FROM ${c.table(x)} AS src
|
|
246
246
|
WHERE src.column_key = ${N}
|
|
247
247
|
AND EXISTS (
|
|
@@ -255,7 +255,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
255
255
|
id = ${u} || organization_id || '_' || ${K},
|
|
256
256
|
updated_at = now()
|
|
257
257
|
WHERE column_key = ${N}
|
|
258
|
-
`.execute(_)}var
|
|
258
|
+
`.execute(_)}var yx={};C(yx,{up:()=>jE,down:()=>LE});import{sql as WE}from"kysely";async function jE(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await Y(_,x,u,"todo","in_progress"),await Y(_,x,u,"approved","ready_for_deployment"),await Y(_,x,u,"merged","post_deploy_validation")}await WE`
|
|
259
259
|
WITH moved AS (
|
|
260
260
|
UPDATE task_board_items AS i
|
|
261
261
|
SET status = CASE prev.status
|
|
@@ -279,7 +279,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
279
279
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
280
280
|
now()
|
|
281
281
|
FROM moved
|
|
282
|
-
`.execute(_)}async function
|
|
282
|
+
`.execute(_)}async function LE(){}var Vx={};C(Vx,{up:()=>YE,down:()=>DE});import{sql as FE}from"kysely";async function YE(_){await FE`
|
|
283
283
|
WITH restored AS (
|
|
284
284
|
UPDATE task_board_items AS i
|
|
285
285
|
SET status = 'todo', updated_at = now()
|
|
@@ -306,7 +306,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
306
306
|
jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
|
|
307
307
|
now()
|
|
308
308
|
FROM restored
|
|
309
|
-
`.execute(_)}async function
|
|
309
|
+
`.execute(_)}async function DE(){}var wx={};C(wx,{up:()=>HE,down:()=>ME});import{sql as L}from"kysely";async function HE(_){await L`
|
|
310
310
|
ALTER TABLE automation_triggers
|
|
311
311
|
ADD COLUMN column_key text,
|
|
312
312
|
ADD COLUMN from_kind text,
|
|
@@ -332,7 +332,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
332
332
|
CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
|
|
333
333
|
ON task_board_activity (occurred_at)
|
|
334
334
|
WHERE action = 'status_changed'
|
|
335
|
-
`.execute(_)}async function
|
|
335
|
+
`.execute(_)}async function ME(_){await L`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await L`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await L`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
|
|
336
336
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
337
337
|
CHECK (type IN ('cron', 'event', 'webhook'))
|
|
338
338
|
`.execute(_),await L`
|
|
@@ -340,11 +340,11 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
340
340
|
DROP COLUMN IF EXISTS column_key,
|
|
341
341
|
DROP COLUMN IF EXISTS from_kind,
|
|
342
342
|
DROP COLUMN IF EXISTS from_statuses
|
|
343
|
-
`.execute(_)}var
|
|
343
|
+
`.execute(_)}var kx={};C(kx,{up:()=>OE,down:()=>SE,backfillUrlSlugs:()=>G_});import{sql as D}from"kysely";var dm=64,RE=new Set(["new","edit","settings","apps","projects","connections"]);function BE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function GE(_,x){let u=BE(_??"").slice(0,dm).replace(/-+$/,"");return u.length>=2&&!RE.has(u)?u:x}function em(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,dm-u.length).replace(/-+$/,"")}${u}`}async function G_(_){let{rows:x}=await D`
|
|
344
344
|
SELECT id, organization_id, title, connection_type, url_slug
|
|
345
345
|
FROM connections
|
|
346
346
|
ORDER BY organization_id, created_at, id
|
|
347
|
-
`.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(
|
|
347
|
+
`.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(T)=>{let z=N.get(T);if(!z)N.set(T,z=new Set);return z};for(let T of x)if(T.url_slug)K(T.organization_id).add(T.url_slug);for(let T of u)K(T.organization_id).add(T.slug);let m=[];for(let T of x){if(T.url_slug)continue;let z=K(T.organization_id),E=GE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(em(E,$)))$++;let U=em(E,$);z.add(U),m.push({id:T.id,slug:U})}for(let T=0;T<m.length;T+=1000){let z=m.slice(T,T+1000);await D`
|
|
348
348
|
UPDATE connections c
|
|
349
349
|
SET url_slug = v.slug
|
|
350
350
|
FROM unnest(
|
|
@@ -352,7 +352,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
352
352
|
${D.val(z.map((E)=>E.slug))}::text[]
|
|
353
353
|
) AS v(id, slug)
|
|
354
354
|
WHERE c.id = v.id AND c.url_slug IS NULL
|
|
355
|
-
`.execute(_)}}async function
|
|
355
|
+
`.execute(_)}}async function OE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
|
|
356
356
|
CREATE TABLE connection_slug_aliases (
|
|
357
357
|
organization_id text NOT NULL,
|
|
358
358
|
slug text NOT NULL,
|
|
@@ -366,22 +366,22 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
366
366
|
`.execute(_),await G_(_),await D`
|
|
367
367
|
CREATE UNIQUE INDEX idx_connections_org_url_slug
|
|
368
368
|
ON connections (organization_id, url_slug)
|
|
369
|
-
`.execute(_)}async function
|
|
369
|
+
`.execute(_)}async function SE(_){await D`DROP TABLE connection_slug_aliases`.execute(_),await D`DROP INDEX idx_connections_org_url_slug`.execute(_),await D`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var nx={};C(nx,{up:()=>fE,down:()=>AE});async function fE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function AE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var vx={};C(vx,{up:()=>IE,down:()=>yE});async function IE(_){await G_(_)}async function yE(){}var px={};C(px,{up:()=>VE,down:()=>wE});import{sql as O_}from"kysely";async function VE(_){await O_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await O_`
|
|
370
370
|
CREATE UNIQUE INDEX idx_automations_org_system_key
|
|
371
371
|
ON automations (organization_id, system_key)
|
|
372
372
|
WHERE system_key IS NOT NULL
|
|
373
|
-
`.execute(_)}async function
|
|
373
|
+
`.execute(_)}async function wE(_){await O_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await O_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var gx={};C(gx,{up:()=>kE,down:()=>nE});import{sql as T_}from"kysely";async function kE(_){await T_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await T_`
|
|
374
374
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
375
375
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
|
|
376
376
|
'board_pr_ready'))
|
|
377
|
-
`.execute(_)}async function
|
|
377
|
+
`.execute(_)}async function nE(_){await T_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await T_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await T_`
|
|
378
378
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
379
379
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
|
|
380
|
-
`.execute(_)}var
|
|
380
|
+
`.execute(_)}var qx={};C(qx,{up:()=>vE,down:()=>qE});import{sql as H}from"kysely";async function vE(_){let{rows:x}=await H`
|
|
381
381
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
382
382
|
WHERE conname = 'chk_trigger_type'
|
|
383
383
|
AND conrelid = 'automation_triggers'::regclass
|
|
384
|
-
`.execute(_),u=new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((K)=>K[1]));if(!u.has("jira_transition")){u.add("jira_transition");let K=H.join([...u].map((
|
|
384
|
+
`.execute(_),u=new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((K)=>K[1]));if(!u.has("jira_transition")){u.add("jira_transition");let K=H.join([...u].map((m)=>H.lit(m)));await H`
|
|
385
385
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
386
386
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${K}))
|
|
387
387
|
`.execute(_)}await H`
|
|
@@ -397,28 +397,28 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
397
397
|
r.from_key, r.prompt, i.created_by
|
|
398
398
|
FROM org_jira_column_automations r
|
|
399
399
|
JOIN org_jira_integrations i ON i.organization_id = r.organization_id
|
|
400
|
-
`.execute(_);for(let K of N){let{rows:
|
|
400
|
+
`.execute(_);for(let K of N){let{rows:m}=await H`
|
|
401
401
|
SELECT 'auto_jira_' || md5(${K.organization_id} || chr(10) ||
|
|
402
402
|
${K.jira_status} || chr(10) || ${K.from_key}) AS id
|
|
403
|
-
`.execute(_),m
|
|
403
|
+
`.execute(_),T=m[0].id;await H`
|
|
404
404
|
INSERT INTO automations
|
|
405
405
|
(id, organization_id, name, active, created_by, messages, models,
|
|
406
406
|
virtual_mcp_id)
|
|
407
|
-
VALUES (${
|
|
408
|
-
${K.created_by}, ${JSON.stringify(
|
|
407
|
+
VALUES (${T}, ${K.organization_id}, ${pE(K)}, true,
|
|
408
|
+
${K.created_by}, ${JSON.stringify(gE(K.prompt))},
|
|
409
409
|
'{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
|
|
410
410
|
ON CONFLICT (id) DO NOTHING
|
|
411
411
|
`.execute(_),await H`
|
|
412
412
|
INSERT INTO automation_triggers
|
|
413
413
|
(id, automation_id, type, column_key, from_kind, from_statuses)
|
|
414
|
-
VALUES (${`trg_${
|
|
414
|
+
VALUES (${`trg_${T}`}, ${T}, 'jira_transition', ${K.jira_status},
|
|
415
415
|
${K.from_kind}, ${K.from_statuses})
|
|
416
416
|
ON CONFLICT (id) DO NOTHING
|
|
417
|
-
`.execute(_)}}function
|
|
418
|
-
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function
|
|
417
|
+
`.execute(_)}}function pE(_){let x=_.from_kind==="earlier"?" (from an earlier column)":_.from_kind==="later"?" (from a later column)":_.from_kind==="statuses"?` (from ${_.from_statuses.join(", ")})`:"";return`Jira: ${_.jira_status}${x}`}function gE(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
|
|
418
|
+
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function qE(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
|
|
419
419
|
ALTER TABLE automation_triggers
|
|
420
420
|
DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
|
|
421
|
-
`.execute(_)}var
|
|
421
|
+
`.execute(_)}var ix={};C(ix,{up:()=>iE,down:()=>cE});import{sql as z_}from"kysely";async function iE(_){await z_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await z_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function cE(_){await z_`
|
|
422
422
|
CREATE TABLE IF NOT EXISTS task_board_column_automations (
|
|
423
423
|
id text PRIMARY KEY,
|
|
424
424
|
organization_id text NOT NULL,
|
|
@@ -445,7 +445,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
445
445
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
446
446
|
PRIMARY KEY (organization_id, jira_status, from_key)
|
|
447
447
|
)
|
|
448
|
-
`.execute(_)}var
|
|
448
|
+
`.execute(_)}var cx={};C(cx,{up:()=>hE,down:()=>tE});import{sql as S_}from"kysely";async function hE(_){await S_`
|
|
449
449
|
ALTER TABLE task_board_items
|
|
450
450
|
ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
|
|
451
451
|
REFERENCES connections(id) ON DELETE SET NULL
|
|
@@ -453,22 +453,22 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
453
453
|
CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
|
|
454
454
|
ON task_board_items (virtual_mcp_id)
|
|
455
455
|
WHERE virtual_mcp_id IS NOT NULL
|
|
456
|
-
`.execute(_)}async function
|
|
456
|
+
`.execute(_)}async function tE(_){await S_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await S_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var hx={};C(hx,{up:()=>oE,down:()=>aE});async function oE(_){await _.schema.createTable("github_copilot_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function aE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var tx={};C(tx,{up:()=>rE,down:()=>lE});async function rE(_){await _.schema.createTable("org_shared_plans").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("created_at","timestamptz",(x)=>x.notNull()).addPrimaryKeyConstraint("org_shared_plans_pkey",["organization_id","provider_id","user_id"]).execute()}async function lE(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var ox={};C(ox,{up:()=>eE,down:()=>dE});import{sql as r}from"kysely";var f_=["linked_chat_run"];async function sm(_){let{rows:x}=await r`
|
|
457
457
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
458
458
|
WHERE conname = 'chk_trigger_type'
|
|
459
459
|
AND conrelid = 'automation_triggers'::regclass
|
|
460
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
460
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function bm(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
|
|
461
461
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
462
462
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
463
|
-
`.execute(_)}async function
|
|
463
|
+
`.execute(_)}async function eE(_){let x=await sm(_);if(f_.every((u)=>x.has(u)))return;for(let u of f_)x.add(u);await bm(_,x)}async function dE(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(f_)})`.execute(_);let x=await sm(_);for(let u of f_)x.delete(u);await bm(_,x)}var ax={};C(ax,{up:()=>sE,down:()=>bE});import{sql as l}from"kysely";var A_=["board_pr_merged","chat_pr_opened"];async function _T(_){let{rows:x}=await l`
|
|
464
464
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
465
465
|
WHERE conname = 'chk_trigger_type'
|
|
466
466
|
AND conrelid = 'automation_triggers'::regclass
|
|
467
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
467
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function xT(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
|
|
468
468
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
469
469
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
470
|
-
`.execute(_)}async function
|
|
471
|
-
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function
|
|
470
|
+
`.execute(_)}async function sE(_){let x=await _T(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await xT(_,x)}async function bE(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(A_)})`.execute(_);let x=await _T(_);for(let u of A_)x.delete(u);await xT(_,x)}var rx={};C(rx,{up:()=>x0,down:()=>u0});import{sql as _0}from"kysely";async function x0(_){await _0`ALTER TABLE organization_settings
|
|
471
|
+
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function u0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var lx={};C(lx,{up:()=>C0,down:()=>K0});import{sql as uT}from"kysely";async function C0(_){await uT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function K0(_){await uT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var ex={};C(ex,{up:()=>N0,down:()=>m0});import{sql as O}from"kysely";async function N0(_){await O`
|
|
472
472
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
473
473
|
RETURNS jsonb AS $fn$
|
|
474
474
|
BEGIN
|
|
@@ -542,7 +542,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
542
542
|
|| '/' ||
|
|
543
543
|
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
|
|
544
544
|
) = lower(p.path)
|
|
545
|
-
`.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function
|
|
545
|
+
`.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function m0(_){await O`
|
|
546
546
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
547
547
|
RETURNS jsonb AS $fn$
|
|
548
548
|
BEGIN
|
|
@@ -569,17 +569,17 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
569
569
|
)::text
|
|
570
570
|
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
571
571
|
AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
|
|
572
|
-
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var
|
|
572
|
+
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var sx={};C(sx,{up:()=>T0,down:()=>z0});import{sql as dx}from"kysely";async function T0(_){await dx`ALTER TABLE git_provider_accounts
|
|
573
573
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
574
574
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
575
575
|
CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
|
|
576
576
|
ADD CONSTRAINT git_provider_accounts_cli_check
|
|
577
577
|
CHECK (auth_kind <> 'github_cli' OR
|
|
578
|
-
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function
|
|
578
|
+
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function z0(_){await dx`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await dx`ALTER TABLE git_provider_accounts
|
|
579
579
|
DROP CONSTRAINT git_provider_accounts_cli_check,
|
|
580
580
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
581
581
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
582
|
-
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var bx={};C(bx,{up:()=>
|
|
582
|
+
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var bx={};C(bx,{up:()=>E0,down:()=>$0});import{sql as CT}from"kysely";async function E0(_){await CT`
|
|
583
583
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
584
584
|
SELECT
|
|
585
585
|
'org_user_fs',
|
|
@@ -593,9 +593,9 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
593
593
|
END,
|
|
594
594
|
now()
|
|
595
595
|
ON CONFLICT (id) DO NOTHING
|
|
596
|
-
`.execute(_)}async function
|
|
596
|
+
`.execute(_)}async function $0(_){await CT`
|
|
597
597
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
598
|
-
`.execute(_)}var
|
|
598
|
+
`.execute(_)}var _u={};C(_u,{up:()=>P0,down:()=>U0});async function P0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function U0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var xu={};C(xu,{up:()=>J0,down:()=>Q0});async function J0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function Q0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var uu={};C(uu,{up:()=>Z0,down:()=>W0});import{sql as E_}from"kysely";var X0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function KT(_,x){for(let{table:u,column:N}of X0){let K=`${u}_${N}_check`,m=x.map((T)=>`'${T}'`).join(", ");await E_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await E_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${m}))`).execute(_)}}async function Z0(_){await KT(_,["github","gitlab","bitbucket"])}async function W0(_){await E_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await KT(_,["github","gitlab"])}var Cu={};C(Cu,{up:()=>j0,down:()=>L0});import{sql as I_}from"kysely";async function j0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(I_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(I_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(I_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(I_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function L0(_){await _.schema.dropTable("experiments").execute()}var Ku={};C(Ku,{up:()=>Y0,down:()=>D0});import{sql as F0}from"kysely";async function Y0(_){await F0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function D0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var mu={};C(mu,{up:()=>M0,down:()=>R0,ACTIONS:()=>Nu});import{sql as $_}from"kysely";var Nu=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],H0=Nu.filter((_)=>_!=="duplicate_reported");async function M0(_){await NT(_,Nu)}async function R0(_){await $_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await NT(_,H0)}async function NT(_,x){await $_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await $_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${$_.join(x.map((u)=>$_.lit(u)))}))`.execute(_)}var Tu={};C(Tu,{up:()=>B0,down:()=>G0});async function B0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function G0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var zu={};C(zu,{up:()=>O0,down:()=>S0});async function O0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function S0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Eu={};C(Eu,{up:()=>A0,down:()=>I0});import{sql as f0}from"kysely";async function A0(_){await f0`
|
|
599
599
|
CREATE TABLE github_connect_flows (
|
|
600
600
|
id text PRIMARY KEY,
|
|
601
601
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -605,7 +605,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
605
605
|
);
|
|
606
606
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
607
607
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
608
|
-
`.execute(_)}async function
|
|
608
|
+
`.execute(_)}async function I0(_){await _.schema.dropTable("github_connect_flows").execute()}var $u={};C($u,{up:()=>y0,down:()=>V0});async function y0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function V0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Pu={};C(Pu,{up:()=>w0,down:()=>k0});import{sql as y_}from"kysely";async function w0(_){await y_`
|
|
609
609
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
610
610
|
DECLARE
|
|
611
611
|
metadata_json jsonb;
|
|
@@ -661,19 +661,19 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
661
661
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
662
662
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
663
663
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
664
|
-
`.execute(_)}async function y0(_){await y_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await y_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Uu={};C(Uu,{up:()=>V0,down:()=>w0});import{sql as V}from"kysely";async function V0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function w0(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var Ju={};C(Ju,{up:()=>k0,down:()=>n0});import{sql as Nm}from"kysely";async function k0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).execute()}async function n0(_){await _.schema.dropTable("organization_settings").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0});async function v0(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function p0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Qu={};C(Qu,{up:()=>g0,down:()=>q0});async function g0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function q0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Xu={};C(Xu,{up:()=>i0,down:()=>c0});async function i0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function c0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as h0}from"kysely";async function t0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",h0`text`).execute()}async function o0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Wu={};C(Wu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function r0(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var ju={};C(ju,{up:()=>l0,down:()=>e0});import{sql as U_}from"kysely";async function l0(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function e0(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var Lu={};C(Lu,{up:()=>b0,down:()=>s0});import{sql as d0}from"kysely";async function b0(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function s0(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(d0`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Fu={};C(Fu,{up:()=>_$,down:()=>x$});import{sql as V_}from"kysely";async function _$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await V_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function x$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var Yu={};C(Yu,{up:()=>u$,down:()=>C$});async function u$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function C$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Du={};C(Du,{up:()=>K$,down:()=>N$});import{sql as w_}from"kysely";async function K$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await w_`
|
|
664
|
+
`.execute(_)}async function k0(_){await y_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await y_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Uu={};C(Uu,{up:()=>n0,down:()=>v0});import{sql as V}from"kysely";async function n0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function v0(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var Ju={};C(Ju,{up:()=>p0,down:()=>g0});import{sql as mT}from"kysely";async function p0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(mT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(mT`CURRENT_TIMESTAMP`)).execute()}async function g0(_){await _.schema.dropTable("organization_settings").execute()}var Qu={};C(Qu,{up:()=>q0,down:()=>i0});async function q0(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function i0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Xu={};C(Xu,{up:()=>c0,down:()=>h0});async function c0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function h0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Zu={};C(Zu,{up:()=>t0,down:()=>o0});async function t0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function o0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Wu={};C(Wu,{up:()=>r0,down:()=>l0});import{sql as a0}from"kysely";async function r0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",a0`text`).execute()}async function l0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var ju={};C(ju,{up:()=>e0,down:()=>d0});async function e0(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function d0(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var Lu={};C(Lu,{up:()=>s0,down:()=>b0});import{sql as P_}from"kysely";async function s0(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function b0(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var Fu={};C(Fu,{up:()=>x$,down:()=>u$});import{sql as _$}from"kysely";async function x$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function u$(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(_$`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Yu={};C(Yu,{up:()=>C$,down:()=>K$});import{sql as V_}from"kysely";async function C$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await V_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function K$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var Du={};C(Du,{up:()=>N$,down:()=>m$});async function N$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function m$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Hu={};C(Hu,{up:()=>T$,down:()=>z$});import{sql as w_}from"kysely";async function T$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await w_`
|
|
665
665
|
UPDATE gateways
|
|
666
666
|
SET tool_selection_mode = CASE
|
|
667
667
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
668
668
|
ELSE 'inclusion'
|
|
669
669
|
END
|
|
670
|
-
`.execute(_),await w_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function
|
|
670
|
+
`.execute(_),await w_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function z$(_){await w_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await w_`
|
|
671
671
|
UPDATE gateways
|
|
672
672
|
SET tool_selection_strategy = CASE
|
|
673
673
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
674
674
|
ELSE NULL
|
|
675
675
|
END
|
|
676
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var
|
|
676
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Mu={};C(Mu,{up:()=>E$,down:()=>$$});async function E$(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function $$(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var Ru={};C(Ru,{up:()=>P$,down:()=>U$});async function P$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function U$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Bu={};C(Bu,{up:()=>J$,down:()=>Q$});async function J$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function Q$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Gu={};C(Gu,{up:()=>X$,down:()=>Z$});async function X$(_){await _.schema.alterTable("downstream_tokens").addColumn("clientId","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("clientSecret","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("tokenEndpoint","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}async function Z$(_){await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("tokenEndpoint").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientSecret").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientId").execute()}var Ou={};C(Ou,{up:()=>j$,down:()=>L$});import{sql as W$}from"kysely";async function j$(_){await W$`
|
|
677
677
|
DELETE FROM downstream_tokens
|
|
678
678
|
WHERE id NOT IN (
|
|
679
679
|
SELECT id FROM (
|
|
@@ -683,7 +683,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
683
683
|
) ranked
|
|
684
684
|
WHERE rn = 1
|
|
685
685
|
)
|
|
686
|
-
`.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function
|
|
686
|
+
`.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function L$(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var Su={};C(Su,{up:()=>F$,down:()=>Y$});async function F$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function Y$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var fu={};C(fu,{up:()=>D$,down:()=>H$});import{sql as TT}from"kysely";async function D$(_){await TT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function H$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await TT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Au={};C(Au,{up:()=>M$,down:()=>R$});async function M$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function R$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Iu={};C(Iu,{up:()=>B$,down:()=>G$});import{sql as k_}from"kysely";async function B$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function G$(_){await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropTable("thread_messages").execute(),await _.schema.dropTable("threads").execute()}var yu={};C(yu,{up:()=>O$,down:()=>S$});async function O$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function S$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var Vu={};C(Vu,{up:()=>f$,down:()=>A$});async function f$(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function A$(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var wu={};C(wu,{up:()=>I$,down:()=>y$});import{sql as M}from"kysely";async function I$(_){await M`
|
|
687
687
|
INSERT INTO connections (
|
|
688
688
|
id,
|
|
689
689
|
organization_id,
|
|
@@ -730,7 +730,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
730
730
|
created_at,
|
|
731
731
|
updated_at
|
|
732
732
|
FROM virtual_mcps
|
|
733
|
-
`.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function
|
|
733
|
+
`.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function y$(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await M`
|
|
734
734
|
INSERT INTO virtual_mcps (
|
|
735
735
|
id, organization_id, title, description, icon, status,
|
|
736
736
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -740,7 +740,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
740
740
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
741
741
|
FROM connections
|
|
742
742
|
WHERE connection_type = 'VIRTUAL'
|
|
743
|
-
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var
|
|
743
|
+
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var ku={};C(ku,{up:()=>V$,down:()=>w$});async function V$(_){await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_id").on("monitoring_logs").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function w$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var nu={};C(nu,{up:()=>k$,down:()=>n$});import{sql as w}from"kysely";async function k$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
|
|
744
744
|
INSERT INTO connection_aggregations_new (
|
|
745
745
|
id, parent_connection_id, child_connection_id,
|
|
746
746
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -749,7 +749,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
749
749
|
id, parent_connection_id, child_connection_id,
|
|
750
750
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
751
751
|
FROM connection_aggregations
|
|
752
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function
|
|
752
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function n$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
|
|
753
753
|
INSERT INTO connection_aggregations_new (
|
|
754
754
|
id, parent_connection_id, child_connection_id,
|
|
755
755
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -758,7 +758,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
758
758
|
id, parent_connection_id, child_connection_id,
|
|
759
759
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
760
760
|
FROM connection_aggregations
|
|
761
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var
|
|
761
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var pu={};C(pu,{up:()=>v$,down:()=>p$});import{sql as vu}from"kysely";async function v$(_){await vu`
|
|
762
762
|
UPDATE connections
|
|
763
763
|
SET connection_url = connection_url || '/management',
|
|
764
764
|
tools = NULL,
|
|
@@ -766,42 +766,42 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
766
766
|
WHERE connection_url LIKE '%/mcp'
|
|
767
767
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
768
768
|
AND app_name = '@deco/management-mcp'
|
|
769
|
-
`.execute(_),await
|
|
769
|
+
`.execute(_),await vu`
|
|
770
770
|
UPDATE connections
|
|
771
771
|
SET tools = NULL,
|
|
772
772
|
updated_at = CURRENT_TIMESTAMP
|
|
773
773
|
WHERE app_name = '@deco/management-mcp'
|
|
774
774
|
AND tools IS NOT NULL
|
|
775
|
-
`.execute(_)}async function
|
|
775
|
+
`.execute(_)}async function p$(_){await vu`
|
|
776
776
|
UPDATE connections
|
|
777
777
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
778
778
|
updated_at = CURRENT_TIMESTAMP
|
|
779
779
|
WHERE connection_url LIKE '%/mcp/management'
|
|
780
780
|
AND app_name = '@deco/management-mcp'
|
|
781
|
-
`.execute(_)}var
|
|
781
|
+
`.execute(_)}var qu={};C(qu,{up:()=>g$,down:()=>q$});import{sql as gu}from"kysely";async function g$(_){await gu`
|
|
782
782
|
UPDATE connections
|
|
783
783
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
784
784
|
tools = NULL,
|
|
785
785
|
updated_at = CURRENT_TIMESTAMP
|
|
786
786
|
WHERE connection_url LIKE '%/mcp/management'
|
|
787
787
|
AND app_name = '@deco/management-mcp'
|
|
788
|
-
`.execute(_),await
|
|
788
|
+
`.execute(_),await gu`
|
|
789
789
|
UPDATE connections
|
|
790
790
|
SET tools = NULL,
|
|
791
791
|
updated_at = CURRENT_TIMESTAMP
|
|
792
792
|
WHERE connection_url LIKE '%/mcp/self'
|
|
793
793
|
AND app_name = '@deco/management-mcp'
|
|
794
794
|
AND tools IS NOT NULL
|
|
795
|
-
`.execute(_)}async function
|
|
795
|
+
`.execute(_)}async function q$(_){await gu`
|
|
796
796
|
UPDATE connections
|
|
797
797
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
798
798
|
updated_at = CURRENT_TIMESTAMP
|
|
799
799
|
WHERE connection_url LIKE '%/mcp/self'
|
|
800
800
|
AND app_name = '@deco/management-mcp'
|
|
801
|
-
`.execute(_)}var
|
|
801
|
+
`.execute(_)}var iu={};C(iu,{up:()=>i$,down:()=>c$});async function i$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function c$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var cu={};C(cu,{up:()=>h$,down:()=>t$});import{sql as zT}from"kysely";async function h$(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(zT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(zT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function t$(_){await _.schema.dropIndex("idx_member_tags_unique").execute(),await _.schema.dropIndex("idx_member_tags_tag").execute(),await _.schema.dropIndex("idx_member_tags_member").execute(),await _.schema.dropIndex("idx_organization_tags_unique_name").execute(),await _.schema.dropIndex("idx_organization_tags_org").execute(),await _.schema.dropTable("member_tags").execute(),await _.schema.dropTable("organization_tags").execute()}var hu={};C(hu,{up:()=>o$,down:()=>a$});import{sql as U_}from"kysely";async function o$(_){await U_`
|
|
802
802
|
ALTER TABLE connection_aggregations
|
|
803
803
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
804
|
-
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function
|
|
804
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function a$(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await U_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await U_`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await U_`
|
|
805
805
|
INSERT INTO connection_aggregations_new (
|
|
806
806
|
id, parent_connection_id, child_connection_id,
|
|
807
807
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -810,42 +810,42 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
810
810
|
id, parent_connection_id, child_connection_id,
|
|
811
811
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
812
812
|
FROM connection_aggregations
|
|
813
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var
|
|
813
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var tu={};C(tu,{up:()=>s$,down:()=>b$});import{webcrypto as $T}from"crypto";var ET="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var r$=128,h,e;function l$(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*r$),$T.getRandomValues(h),e=0;else if(e+_>h.length)$T.getRandomValues(h),e=0;e+=_}function d(_=21){l$(_|=0);let x="";for(let u=e-_;u<e;u++)x+=ET[h[u]&63];return x}var e$="org-admin",d$="Organization Admin";async function s$(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),K=`proj_${d()}`,m=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:e$,name:d$,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function b$(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var ou={};C(ou,{up:()=>_P,down:()=>xP});async function _P(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function xP(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var au={};C(au,{up:()=>uP,down:()=>CP});async function uP(_){}async function CP(_){}var ru={};C(ru,{up:()=>KP,down:()=>NP});async function KP(_){await _.schema.createTable("project_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("project_id","text",(x)=>x.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await _.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function NP(_){await _.schema.dropIndex("project_connections_project_id_idx").execute(),await _.schema.dropIndex("project_connections_project_conn_unique").execute(),await _.schema.dropTable("project_connections").execute()}var lu={};C(lu,{up:()=>mP,down:()=>TP});import{sql as PT}from"kysely";async function mP(_){await PT`
|
|
814
814
|
UPDATE connections
|
|
815
815
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
816
816
|
tools = NULL,
|
|
817
817
|
updated_at = CURRENT_TIMESTAMP
|
|
818
818
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
819
819
|
AND app_name = 'deco-registry'
|
|
820
|
-
`.execute(_)}async function
|
|
820
|
+
`.execute(_)}async function TP(_){await PT`
|
|
821
821
|
UPDATE connections
|
|
822
822
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
823
823
|
updated_at = CURRENT_TIMESTAMP
|
|
824
824
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
825
825
|
AND app_name = 'deco-registry'
|
|
826
|
-
`.execute(_)}var
|
|
826
|
+
`.execute(_)}var eu={};C(eu,{up:()=>EP,down:()=>$P});import{sql as zP}from"kysely";async function EP(_){await _.schema.createTable("ai_provider_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("label","text",(x)=>x.notNull()).addColumn("encrypted_api_key","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(zP`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await _.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function $P(_){await _.schema.dropTable("ai_provider_keys").execute()}var du={};C(du,{up:()=>UP,down:()=>JP});import{sql as PP}from"kysely";async function UP(_){await _.schema.createTable("oauth_pkce_states").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull()).addColumn("code_verifier","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(PP`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function JP(_){await _.schema.dropTable("oauth_pkce_states").execute()}var su={};C(su,{up:()=>QP,down:()=>XP});import{sql as p}from"kysely";async function QP(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function XP(_){await _.schema.dropIndex("idx_threads_trigger_status").execute(),await _.schema.alterTable("threads").dropColumn("trigger_id").execute(),await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.dropIndex("idx_automation_triggers_event").execute(),await _.schema.dropIndex("idx_automation_triggers_automation").execute(),await _.schema.dropTable("automation_triggers").execute(),await _.schema.dropIndex("idx_automations_active").execute(),await _.schema.dropIndex("idx_automations_org").execute(),await _.schema.dropTable("automations").execute()}var bu={};C(bu,{up:()=>ZP,down:()=>WP});async function ZP(_){await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("last_run_at","text").execute()}async function WP(_){await _.schema.alterTable("automation_triggers").dropColumn("last_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute()}var _C={};C(_C,{up:()=>jP,down:()=>LP});async function jP(_){await _.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await _.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function LP(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var xC={};C(xC,{up:()=>FP,down:()=>YP});import{sql as UT}from"kysely";async function FP(_){await UT`
|
|
827
827
|
UPDATE connections
|
|
828
828
|
SET title = 'CMS MCP',
|
|
829
829
|
tools = NULL,
|
|
830
830
|
updated_at = CURRENT_TIMESTAMP
|
|
831
831
|
WHERE app_name = '@deco/management-mcp'
|
|
832
|
-
`.execute(_)}async function
|
|
832
|
+
`.execute(_)}async function YP(_){await UT`
|
|
833
833
|
UPDATE connections
|
|
834
834
|
SET title = 'Mesh MCP',
|
|
835
835
|
updated_at = CURRENT_TIMESTAMP
|
|
836
836
|
WHERE app_name = '@deco/management-mcp'
|
|
837
|
-
`.execute(_)}var
|
|
837
|
+
`.execute(_)}var uC={};C(uC,{up:()=>DP,down:()=>HP});import{sql as JT}from"kysely";async function DP(_){await JT`
|
|
838
838
|
UPDATE connections
|
|
839
839
|
SET title = 'Deco CMS',
|
|
840
840
|
tools = NULL,
|
|
841
841
|
updated_at = CURRENT_TIMESTAMP
|
|
842
842
|
WHERE app_name = '@deco/management-mcp'
|
|
843
|
-
`.execute(_)}async function
|
|
843
|
+
`.execute(_)}async function HP(_){await JT`
|
|
844
844
|
UPDATE connections
|
|
845
845
|
SET title = 'CMS MCP',
|
|
846
846
|
updated_at = CURRENT_TIMESTAMP
|
|
847
847
|
WHERE app_name = '@deco/management-mcp'
|
|
848
|
-
`.execute(_)}var
|
|
848
|
+
`.execute(_)}var CC={};C(CC,{up:()=>MP,down:()=>RP});async function MP(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function RP(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var KC={};C(KC,{up:()=>BP,down:()=>GP});async function BP(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function GP(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var mC={};C(mC,{up:()=>OP,down:()=>SP});import{sql as NC}from"kysely";async function OP(_){await NC`
|
|
849
849
|
UPDATE organization_settings
|
|
850
850
|
SET enabled_plugins = (
|
|
851
851
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -854,7 +854,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
854
854
|
)
|
|
855
855
|
WHERE enabled_plugins IS NOT NULL
|
|
856
856
|
AND enabled_plugins LIKE '%object-storage%'
|
|
857
|
-
`.execute(_),await
|
|
857
|
+
`.execute(_),await NC`
|
|
858
858
|
UPDATE projects
|
|
859
859
|
SET enabled_plugins = (
|
|
860
860
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -863,28 +863,28 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
863
863
|
)
|
|
864
864
|
WHERE enabled_plugins IS NOT NULL
|
|
865
865
|
AND enabled_plugins LIKE '%object-storage%'
|
|
866
|
-
`.execute(_),await
|
|
866
|
+
`.execute(_),await NC`
|
|
867
867
|
DELETE FROM project_plugin_configs
|
|
868
868
|
WHERE plugin_id = 'object-storage'
|
|
869
|
-
`.execute(_)}async function
|
|
869
|
+
`.execute(_)}async function SP(_){}var TC={};C(TC,{up:()=>fP,down:()=>AP});import{sql as QT}from"kysely";async function fP(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await QT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function AP(_){await QT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var EC={};C(EC,{up:()=>IP,down:()=>yP});import{sql as zC}from"kysely";async function IP(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await zC`
|
|
870
870
|
ALTER TABLE connections
|
|
871
871
|
ADD CONSTRAINT chk_connections_subtype
|
|
872
872
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
873
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
873
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await zC`
|
|
874
874
|
UPDATE connections
|
|
875
875
|
SET subtype = 'agent'
|
|
876
876
|
WHERE connection_type = 'VIRTUAL'
|
|
877
|
-
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,
|
|
877
|
+
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,U=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),j=N.get(z.organization_id);if(!j)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:j,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let m=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${d()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let T=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${d()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function yP(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await zC`
|
|
878
878
|
ALTER TABLE connections
|
|
879
879
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
880
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
880
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var $C={};C($C,{up:()=>wP,down:()=>kP});import{sql as VP}from"kysely";async function wP(_){await VP`
|
|
881
881
|
DELETE FROM connections
|
|
882
882
|
WHERE connection_type = 'VIRTUAL'
|
|
883
883
|
AND subtype = 'project'
|
|
884
884
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
885
|
-
`.execute(_)}async function
|
|
885
|
+
`.execute(_)}async function kP(_){}var PC={};C(PC,{up:()=>vP,down:()=>pP});import{sql as nP}from"kysely";async function vP(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await nP`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function pP(_){await _.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var JC={};C(JC,{up:()=>gP,down:()=>qP});import{sql as UC}from"kysely";async function gP(_){await _.schema.createTable("org_sso_config").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(x)=>x.notNull()).addColumn("client_id","text",(x)=>x.notNull()).addColumn("client_secret","text",(x)=>x.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(x)=>x.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(x)=>x.notNull()).addColumn("enforced","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await _.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await _.schema.createTable("org_sso_sessions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(x)=>x.notNull()).addColumn("expires_at","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function qP(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var QC={};C(QC,{up:()=>iP,down:()=>cP});async function iP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function cP(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var XC={};C(XC,{up:()=>hP,down:()=>tP});async function hP(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function tP(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var WC={};C(WC,{up:()=>aP,down:()=>rP});import{sql as XT}from"kysely";function ZC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function oP(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return ZC(N)}catch{return ZC(_.connection_url)}if(_.title)return ZC(_.title);return _.id}async function aP(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await XT`
|
|
886
886
|
SELECT id, app_name, connection_url, title FROM connections
|
|
887
|
-
`.execute(_);for(let u of x.rows){let N=
|
|
887
|
+
`.execute(_);for(let u of x.rows){let N=oP(u);await XT`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function rP(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var jC={};C(jC,{up:()=>lP,down:()=>eP});import{sql as J_}from"kysely";async function lP(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await J_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await J_`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function eP(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await J_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await J_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await J_`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var LC={};C(LC,{up:()=>dP,down:()=>sP});async function dP(_){await _.schema.alterTable("automations").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("idx_automations_virtual_mcp").on("automations").columns(["virtual_mcp_id"]).execute()}async function sP(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var FC={};C(FC,{up:()=>bP,down:()=>_U});import{sql as n_}from"kysely";async function bP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await n_`
|
|
888
888
|
UPDATE threads
|
|
889
889
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
890
890
|
WHERE agent_ids IS NOT NULL
|
|
@@ -894,55 +894,55 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
894
894
|
`.execute(_),await n_`
|
|
895
895
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
896
896
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
897
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
897
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function _U(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await n_`
|
|
898
898
|
UPDATE threads
|
|
899
899
|
SET agent_ids = CASE
|
|
900
900
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
901
901
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
902
902
|
ELSE '[]'
|
|
903
903
|
END
|
|
904
|
-
`.execute(_),await n_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var
|
|
904
|
+
`.execute(_),await n_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var YC={};C(YC,{up:()=>xU,down:()=>uU});async function xU(_){await _.schema.createTable("trigger_callback_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).execute(),await _.schema.createIndex("idx_trigger_callback_tokens_connection_org").on("trigger_callback_tokens").columns(["connection_id","organization_id"]).unique().execute()}async function uU(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var DC={};C(DC,{up:()=>CU,down:()=>KU});async function CU(_){await _.schema.createTable("kv").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("value","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("kv_pkey",["organization_id","key"]).execute()}async function KU(_){await _.schema.dropTable("kv").execute()}var HC={};C(HC,{up:()=>NU,down:()=>mU});async function NU(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function mU(_){await _.schema.dropIndex("idx_member_user_org").execute()}var MC={};C(MC,{up:()=>TU,down:()=>zU});async function TU(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function zU(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var RC={};C(RC,{up:()=>EU,down:()=>$U});import{sql as S}from"kysely";async function EU(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await S`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await S`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function $U(_){await _.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await _.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await _.schema.dropTable("private_registry_publish_request").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await _.schema.dropTable("private_registry_item").ifExists().execute()}var BC={};C(BC,{up:()=>PU,down:()=>UU});import{sql as s}from"kysely";async function PU(_){await s`
|
|
905
905
|
ALTER TABLE event_subscriptions
|
|
906
906
|
ALTER COLUMN enabled DROP DEFAULT
|
|
907
|
-
`.execute(_),await
|
|
907
|
+
`.execute(_),await s`
|
|
908
908
|
ALTER TABLE event_subscriptions
|
|
909
909
|
ALTER COLUMN enabled TYPE boolean
|
|
910
910
|
USING enabled::boolean
|
|
911
|
-
`.execute(_),await
|
|
911
|
+
`.execute(_),await s`
|
|
912
912
|
ALTER TABLE event_subscriptions
|
|
913
913
|
ALTER COLUMN enabled SET DEFAULT true
|
|
914
|
-
`.execute(_)}async function
|
|
914
|
+
`.execute(_)}async function UU(_){await s`
|
|
915
915
|
ALTER TABLE event_subscriptions
|
|
916
916
|
ALTER COLUMN enabled DROP DEFAULT
|
|
917
|
-
`.execute(_),await
|
|
917
|
+
`.execute(_),await s`
|
|
918
918
|
ALTER TABLE event_subscriptions
|
|
919
919
|
ALTER COLUMN enabled TYPE integer
|
|
920
920
|
USING enabled::integer
|
|
921
|
-
`.execute(_),await
|
|
921
|
+
`.execute(_),await s`
|
|
922
922
|
ALTER TABLE event_subscriptions
|
|
923
923
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
924
|
-
`.execute(_)}var
|
|
924
|
+
`.execute(_)}var GC={};C(GC,{up:()=>JU,down:()=>QU});import{sql as ZT}from"kysely";async function JU(_){await _.schema.createTable("brand_context").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("domain","text",(x)=>x.notNull()).addColumn("overview","text",(x)=>x.notNull()).addColumn("logo","text").addColumn("favicon","text").addColumn("og_image","text").addColumn("fonts","text").addColumn("colors","text").addColumn("images","text").addColumn("metadata","text").addColumn("archived_at","timestamptz").addColumn("is_default","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(ZT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(ZT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function QU(_){await _.schema.dropTable("brand_context").execute()}var OC={};C(OC,{up:()=>XU,down:()=>ZU});import{sql as WT}from"kysely";async function XU(_){await _.schema.createTable("organization_domains").addColumn("organization_id","text",(x)=>x.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(x)=>x.notNull().unique()).addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(WT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(WT`now()`)).execute()}async function ZU(_){await _.schema.dropTable("organization_domains").execute()}var SC={};C(SC,{up:()=>FU,down:()=>YU});import{sql as jT}from"kysely";var v_=new Set(["primary","secondary","accent","background","foreground"]),WU={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function jU(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>v_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(v_.has(m))K[m]=T;else x[m]=T}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,m]of Object.entries(u)){if(typeof m!=="string")continue;if(v_.has(K.toLowerCase()))N[K.toLowerCase()]=m;else x[K]=m}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,m=K.label?.toLowerCase?.(),T=K.value;if(!m||!T)continue;if(v_.has(m))u[m]=T;else x[m]=T}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function LU(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let K=N,m=K.name??K.family??void 0,T=K.role?.toLowerCase?.()??"";if(!m)continue;let z=WU[T];if(z&&!x[z])x[z]=m;else u.push(m)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function FU(_){let x=await jT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,m=!1,T=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=jU($);if(T=U.structured,N=!0,Object.keys(U.extra).length>0)E.extraColors=U.extra,m=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=LU($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await jT`
|
|
925
925
|
UPDATE brand_context
|
|
926
926
|
SET
|
|
927
|
-
colors = ${
|
|
927
|
+
colors = ${T},
|
|
928
928
|
fonts = ${z},
|
|
929
929
|
metadata = ${$},
|
|
930
930
|
updated_at = NOW()
|
|
931
931
|
WHERE id = ${u.id}
|
|
932
|
-
`.execute(_)}}}async function
|
|
932
|
+
`.execute(_)}}}async function YU(_){}var fC={};C(fC,{up:()=>HU,down:()=>MU});import{sql as DU}from"kysely";async function HU(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(DU`'{}'::jsonb`)).execute()}async function MU(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var AC={};C(AC,{up:()=>RU,down:()=>BU});async function RU(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function BU(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var IC={};C(IC,{up:()=>GU,down:()=>OU});async function GU(_){await _.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(x)=>x.notNull()).addColumn("project_ref","text",(x)=>x.notNull()).addColumn("runner_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function OU(_){await _.schema.dropTable("sandbox_runner_state").execute()}var yC={};C(yC,{up:()=>SU,down:()=>fU});async function SU(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function fU(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var VC={};C(VC,{up:()=>AU,down:()=>IU});async function AU(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function IU(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var wC={};C(wC,{up:()=>yU,down:()=>VU});async function yU(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function VU(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var kC={};C(kC,{up:()=>kU,down:()=>nU});import{sql as LT}from"kysely";var wU=["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 kU(_){let x=await LT`
|
|
933
933
|
SELECT id, permission FROM "organizationRole"
|
|
934
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let
|
|
934
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...wU]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await LT`
|
|
935
935
|
UPDATE "organizationRole"
|
|
936
936
|
SET permission = ${z}
|
|
937
937
|
WHERE id = ${u.id}
|
|
938
|
-
`.execute(_)}}async function
|
|
938
|
+
`.execute(_)}}async function nU(_){}var nC={};C(nC,{up:()=>vU,down:()=>pU});async function vU(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").execute()}async function pU(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var vC={};C(vC,{up:()=>gU,down:()=>qU});async function gU(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function qU(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var pC={};C(pC,{up:()=>iU,down:()=>cU});import{sql as Q_}from"kysely";async function iU(_){await Q_`
|
|
939
939
|
UPDATE automations
|
|
940
940
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
941
941
|
WHERE virtual_mcp_id IS NULL
|
|
942
942
|
`.execute(_),await Q_`
|
|
943
943
|
ALTER TABLE automations
|
|
944
944
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
945
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
945
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function cU(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
|
|
946
946
|
UPDATE automations
|
|
947
947
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
948
948
|
`.execute(_),await Q_`
|
|
@@ -951,7 +951,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
951
951
|
`.execute(_),await Q_`
|
|
952
952
|
ALTER TABLE automations
|
|
953
953
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
954
|
-
`.execute(_)}var
|
|
954
|
+
`.execute(_)}var qC={};C(qC,{up:()=>aU,reshapeSimpleMode:()=>FT,inferAutomationTier:()=>YT,down:()=>rU,__testing:()=>oU});var hU={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},tU=["fast","smart","thinking","image","web_research"];function gC(_){if(!_||typeof _!=="object")return!1;let x=_;if(!("tiers"in x))return!1;let u=x.tiers;if(!u||typeof u!=="object")return!1;return tU.some((N)=>(N in u))}function FT(_){if(gC(_))return _;let x=_,u=x?.enabled===!0,N=(K)=>K&&K.keyId&&K.modelId?{keyId:K.keyId,modelId:K.modelId,title:K.title}:null;if(!u)return hU;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function YT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function DT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var oU={isAlreadyReshapedSimpleMode:gC,isAlreadyReshapedAutomationModels:DT};async function aU(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let K=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(gC(K))continue;let m=FT(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(m)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(DT(K))continue;let m=YT(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:m})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${m}"`)}}async function rU(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var iC={};C(iC,{up:()=>lU,down:()=>eU});import{sql as n}from"kysely";async function lU(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await n`
|
|
955
955
|
ALTER TABLE automations
|
|
956
956
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
957
957
|
`.execute(_),await n`
|
|
@@ -973,19 +973,19 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
973
973
|
AND tool_input IS NOT NULL
|
|
974
974
|
)
|
|
975
975
|
)
|
|
976
|
-
`.execute(_)}async function
|
|
976
|
+
`.execute(_)}async function eU(_){await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await n`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await n`
|
|
977
977
|
ALTER TABLE automations
|
|
978
978
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
979
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var
|
|
979
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var cC={};C(cC,{up:()=>sU,down:()=>bU});import{sql as HT}from"kysely";var dU=new Set(["host","docker","agent-sandbox"]);async function sU(_){let x=await HT`
|
|
980
980
|
SELECT id, metadata FROM "connections"
|
|
981
981
|
WHERE connection_type = 'VIRTUAL'
|
|
982
982
|
AND metadata IS NOT NULL
|
|
983
983
|
AND metadata LIKE '%vmMap%'
|
|
984
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let
|
|
984
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){m=!0;continue}let y=X.runnerKind;if(y!==void 0&&!dU.has(y)){m=!0;continue}U[j]=X}if(Object.keys(U).length>0)T[E]=U;else m=!0}if(!m)continue;N.vmMap=T;let z=JSON.stringify(N);await HT`
|
|
985
985
|
UPDATE "connections"
|
|
986
986
|
SET metadata = ${z}
|
|
987
987
|
WHERE id = ${u.id}
|
|
988
|
-
`.execute(_)}}async function
|
|
988
|
+
`.execute(_)}}async function bU(_){}var hC={};C(hC,{up:()=>_J,down:()=>xJ});import{sql as X_}from"kysely";async function _J(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(X_`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(X_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(X_`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await X_`
|
|
989
989
|
CREATE INDEX async_research_jobs_active_idx
|
|
990
990
|
ON async_research_jobs (status, last_polled_at)
|
|
991
991
|
WHERE status IN ('pending', 'polling')
|
|
@@ -993,24 +993,24 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
993
993
|
ALTER TABLE async_research_jobs
|
|
994
994
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
995
995
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
996
|
-
`.execute(_)}async function
|
|
996
|
+
`.execute(_)}async function xJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var tC={};C(tC,{up:()=>uJ,down:()=>CJ});async function uJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function CJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var oC={};C(oC,{up:()=>KJ,down:()=>NJ});import{sql as b}from"kysely";async function KJ(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(b`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(b`CURRENT_TIMESTAMP`)).execute(),await b`
|
|
997
997
|
ALTER TABLE secrets
|
|
998
998
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
999
|
-
`.execute(_),await
|
|
999
|
+
`.execute(_),await b`
|
|
1000
1000
|
ALTER TABLE secrets
|
|
1001
1001
|
ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
|
|
1002
1002
|
(scope = 'user' AND user_id IS NOT NULL)
|
|
1003
1003
|
OR (scope = 'organization' AND user_id IS NULL)
|
|
1004
1004
|
)
|
|
1005
|
-
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await
|
|
1005
|
+
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await b`
|
|
1006
1006
|
CREATE UNIQUE INDEX idx_secrets_user_name
|
|
1007
1007
|
ON secrets (organization_id, user_id, lower(name))
|
|
1008
1008
|
WHERE scope = 'user'
|
|
1009
|
-
`.execute(_),await
|
|
1009
|
+
`.execute(_),await b`
|
|
1010
1010
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
1011
1011
|
ON secrets (organization_id, lower(name))
|
|
1012
1012
|
WHERE scope = 'organization'
|
|
1013
|
-
`.execute(_)}async function
|
|
1013
|
+
`.execute(_)}async function NJ(_){await _.schema.dropTable("secrets").execute()}var aC={};C(aC,{up:()=>mJ,down:()=>TJ});async function mJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function TJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var rC={};C(rC,{up:()=>EJ,down:()=>$J});import{sql as zJ}from"kysely";async function EJ(_){await zJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function $J(_){}var lC={};C(lC,{up:()=>PJ,down:()=>UJ});import{sql as p_}from"kysely";async function PJ(_){await p_`
|
|
1014
1014
|
ALTER TABLE sandbox_runner_state
|
|
1015
1015
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
1016
1016
|
`.execute(_),await p_`
|
|
@@ -1048,7 +1048,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1048
1048
|
EXCEPTION WHEN undefined_table THEN
|
|
1049
1049
|
NULL;
|
|
1050
1050
|
END; $$
|
|
1051
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
1051
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function UJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await p_`
|
|
1052
1052
|
ALTER TABLE sandbox_runner_state
|
|
1053
1053
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
1054
1054
|
`.execute(_),await p_`
|
|
@@ -1086,7 +1086,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1086
1086
|
EXCEPTION WHEN undefined_table THEN
|
|
1087
1087
|
NULL;
|
|
1088
1088
|
END; $$
|
|
1089
|
-
`.execute(_)}var
|
|
1089
|
+
`.execute(_)}var eC={};C(eC,{up:()=>JJ,down:()=>QJ});import{sql as MT}from"kysely";async function JJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await MT`
|
|
1090
1090
|
DO $$ BEGIN
|
|
1091
1091
|
UPDATE virtualmcps v
|
|
1092
1092
|
SET metadata = jsonb_set(
|
|
@@ -1125,7 +1125,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1125
1125
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
1126
1126
|
NULL;
|
|
1127
1127
|
END; $$
|
|
1128
|
-
`.execute(_)}async function
|
|
1128
|
+
`.execute(_)}async function QJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await MT`
|
|
1129
1129
|
DO $$ BEGIN
|
|
1130
1130
|
UPDATE virtualmcps v
|
|
1131
1131
|
SET metadata = jsonb_set(
|
|
@@ -1158,7 +1158,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1158
1158
|
EXCEPTION WHEN undefined_table THEN
|
|
1159
1159
|
NULL;
|
|
1160
1160
|
END; $$
|
|
1161
|
-
`.execute(_)}var
|
|
1161
|
+
`.execute(_)}var dC={};C(dC,{up:()=>XJ,down:()=>ZJ});import{sql as RT}from"kysely";async function XJ(_){await RT`
|
|
1162
1162
|
UPDATE connections c
|
|
1163
1163
|
SET metadata = (
|
|
1164
1164
|
jsonb_set(
|
|
@@ -1202,7 +1202,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1202
1202
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
1203
1203
|
WHERE entry ? 'vmId'
|
|
1204
1204
|
);
|
|
1205
|
-
`.execute(_),await
|
|
1205
|
+
`.execute(_),await RT`
|
|
1206
1206
|
UPDATE connections c
|
|
1207
1207
|
SET metadata = (
|
|
1208
1208
|
jsonb_set(
|
|
@@ -1256,10 +1256,10 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1256
1256
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1257
1257
|
WHERE inner_entry ? 'runnerKind'
|
|
1258
1258
|
);
|
|
1259
|
-
`.execute(_)}async function
|
|
1259
|
+
`.execute(_)}async function ZJ(_){}var sC={};C(sC,{up:()=>jJ,down:()=>LJ});import{sql as WJ}from"kysely";async function jJ(_){await WJ`
|
|
1260
1260
|
DELETE FROM ai_provider_keys
|
|
1261
1261
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
1262
|
-
`.execute(_)}async function
|
|
1262
|
+
`.execute(_)}async function LJ(_){}var bC={};C(bC,{up:()=>FJ,down:()=>YJ});import{sql as g_}from"kysely";async function FJ(_){await g_`
|
|
1263
1263
|
UPDATE sandbox_runner_state
|
|
1264
1264
|
SET sandbox_provider_kind = 'desktop'
|
|
1265
1265
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
@@ -1357,13 +1357,13 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1357
1357
|
UPDATE threads
|
|
1358
1358
|
SET sandbox_provider_kind = 'desktop'
|
|
1359
1359
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1360
|
-
`.execute(_)}async function
|
|
1360
|
+
`.execute(_)}async function YJ(_){}var _K={};C(_K,{up:()=>DJ,down:()=>HJ});import{sql as Z_}from"kysely";async function DJ(_){await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function HJ(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await Z_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var xK={};C(xK,{up:()=>MJ,down:()=>RJ});import{sql as BT}from"kysely";async function MJ(_){await BT`
|
|
1361
1361
|
ALTER TABLE organization_domains
|
|
1362
1362
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
1363
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function
|
|
1363
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function RJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await BT`
|
|
1364
1364
|
ALTER TABLE organization_domains
|
|
1365
1365
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
1366
|
-
`.execute(_)}var
|
|
1366
|
+
`.execute(_)}var uK={};C(uK,{up:()=>BJ,down:()=>GJ});import{sql as q_}from"kysely";async function BJ(_){await q_`
|
|
1367
1367
|
UPDATE sandbox_runner_state
|
|
1368
1368
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
1369
1369
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -1452,19 +1452,19 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1452
1452
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1453
1453
|
AND c.metadata IS NOT NULL
|
|
1454
1454
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
1455
|
-
`.execute(_)}async function
|
|
1455
|
+
`.execute(_)}async function GJ(_){}var CK={};C(CK,{up:()=>SJ,down:()=>fJ});import{sql as GT}from"kysely";var OJ=["GLOBAL_SEARCH"];async function SJ(_){let x=await GT`
|
|
1456
1456
|
SELECT id, permission FROM "organizationRole"
|
|
1457
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let
|
|
1457
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...OJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await GT`
|
|
1458
1458
|
UPDATE "organizationRole"
|
|
1459
1459
|
SET permission = ${z}
|
|
1460
1460
|
WHERE id = ${u.id}
|
|
1461
|
-
`.execute(_)}}async function
|
|
1461
|
+
`.execute(_)}}async function fJ(_){}var NK={};C(NK,{up:()=>AJ,down:()=>IJ});import{sql as KK}from"kysely";async function AJ(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(KK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(KK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await KK`
|
|
1462
1462
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
1463
1463
|
ON org_file_configs (organization_id, lower(name))
|
|
1464
|
-
`.execute(_)}async function
|
|
1464
|
+
`.execute(_)}async function IJ(_){await _.schema.dropTable("org_file_configs").execute()}var mK={};C(mK,{up:()=>yJ,down:()=>VJ});import{sql as v}from"kysely";async function yJ(_){await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await v`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await v`
|
|
1465
1465
|
ALTER TABLE automations
|
|
1466
1466
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
1467
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function
|
|
1467
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function VJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await v`
|
|
1468
1468
|
ALTER TABLE automations
|
|
1469
1469
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
1470
1470
|
`.execute(_),await v`
|
|
@@ -1486,25 +1486,25 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1486
1486
|
AND tool_input IS NOT NULL
|
|
1487
1487
|
)
|
|
1488
1488
|
)
|
|
1489
|
-
`.execute(_)}var TK={};C(TK,{up:()=>
|
|
1489
|
+
`.execute(_)}var TK={};C(TK,{up:()=>wJ,down:()=>kJ});async function wJ(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function kJ(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var EK={};C(EK,{up:()=>nJ,down:()=>vJ});import{sql as zK}from"kysely";var i_="local-docker";async function nJ(_){await zK`delete from sandbox_runner_state where sandbox_provider_kind = ${i_}`.execute(_);let x=await zK`
|
|
1490
1490
|
SELECT id, metadata FROM "connections"
|
|
1491
1491
|
WHERE connection_type = 'VIRTUAL'
|
|
1492
1492
|
AND metadata IS NOT NULL
|
|
1493
1493
|
AND metadata LIKE ${"%"+i_+"%"}
|
|
1494
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let
|
|
1494
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){m=!0;continue}if(i_ in X){m=!0;let y={...X};if(delete y[i_],Object.keys(y).length>0)U[j]=y}else U[j]=X}if(Object.keys(U).length>0)T[E]=U;else m=!0}if(!m)continue;N.sandboxMap=T;let z=JSON.stringify(N);await zK`
|
|
1495
1495
|
UPDATE "connections"
|
|
1496
1496
|
SET metadata = ${z}
|
|
1497
1497
|
WHERE id = ${u.id}
|
|
1498
|
-
`.execute(_)}}async function
|
|
1498
|
+
`.execute(_)}}async function vJ(_){}var $K={};C($K,{up:()=>pJ,down:()=>gJ});import{sql as c_}from"kysely";async function pJ(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await c_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await c_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await c_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await c_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function gJ(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var PK={};C(PK,{up:()=>qJ,down:()=>iJ});async function qJ(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function iJ(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var UK={};C(UK,{up:()=>cJ,down:()=>hJ});async function cJ(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function hJ(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var JK={};C(JK,{up:()=>tJ,down:()=>oJ});async function tJ(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function oJ(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var QK={};C(QK,{up:()=>aJ,down:()=>rJ});async function aJ(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function rJ(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var XK={};C(XK,{up:()=>lJ,down:()=>eJ});async function lJ(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function eJ(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var WK={};C(WK,{up:()=>sJ,down:()=>bJ});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function ZK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function h_(_){if(!__(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function dJ(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[m,T]of Object.entries(_)){if(!__(T)){K[m]=T;continue}let z={};for(let[E,$]of Object.entries(T)){if(!__($)){z[E]=$;continue}let U={};for(let[j,X]of Object.entries($)){if(j===x){if(N=!0,!(u in $))U[u]=ZK(X,x,u);else if(!h_($[u])&&h_(X))U[u]=ZK(X,x,u);continue}let y=ZK(X,x,u);if(y!==X)N=!0;if(j===u&&j in U&&h_(U[j])&&!h_(y))continue;U[j]=y}z[E]=U}K[m]=z}return{sandboxMap:K,changed:N}}async function OT(_,x,u){let N=await k`
|
|
1499
1499
|
SELECT id, metadata FROM connections
|
|
1500
1500
|
WHERE connection_type = 'VIRTUAL'
|
|
1501
1501
|
AND metadata IS NOT NULL
|
|
1502
1502
|
AND metadata LIKE ${"%"+x+"%"}
|
|
1503
|
-
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let
|
|
1503
|
+
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=dJ(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
|
|
1504
1504
|
UPDATE connections
|
|
1505
|
-
SET metadata = ${JSON.stringify(
|
|
1505
|
+
SET metadata = ${JSON.stringify(m)}
|
|
1506
1506
|
WHERE id = ${K.id}
|
|
1507
|
-
`.execute(_)}}async function
|
|
1507
|
+
`.execute(_)}}async function sJ(_){await k`
|
|
1508
1508
|
UPDATE threads
|
|
1509
1509
|
SET sandbox_provider_kind = ${A}
|
|
1510
1510
|
WHERE sandbox_provider_kind = ${f}
|
|
@@ -1533,7 +1533,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1533
1533
|
UPDATE sandbox_runner_state
|
|
1534
1534
|
SET sandbox_provider_kind = ${A}
|
|
1535
1535
|
WHERE sandbox_provider_kind = ${f}
|
|
1536
|
-
`.execute(_),await
|
|
1536
|
+
`.execute(_),await OT(_,f,A)}async function bJ(_){await k`
|
|
1537
1537
|
UPDATE threads
|
|
1538
1538
|
SET sandbox_provider_kind = ${f}
|
|
1539
1539
|
WHERE sandbox_provider_kind = ${A}
|
|
@@ -1562,7 +1562,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1562
1562
|
UPDATE sandbox_runner_state
|
|
1563
1563
|
SET sandbox_provider_kind = ${f}
|
|
1564
1564
|
WHERE sandbox_provider_kind = ${A}
|
|
1565
|
-
`.execute(_),await
|
|
1565
|
+
`.execute(_),await OT(_,A,f)}var jK={};C(jK,{up:()=>_Q,down:()=>xQ});import{sql as g}from"kysely";async function _Q(_){await g`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(g`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(g`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await g`
|
|
1566
1566
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1567
1567
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1568
1568
|
WHERE deleted_at IS NULL
|
|
@@ -1570,7 +1570,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1570
1570
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1571
1571
|
ON org_fs_entry (organization_id, volume, size)
|
|
1572
1572
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1573
|
-
`.execute(_)}async function
|
|
1573
|
+
`.execute(_)}async function xQ(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var LK={};C(LK,{up:()=>uQ,down:()=>CQ});async function uQ(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function CQ(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var FK={};C(FK,{up:()=>KQ,down:()=>NQ});import{sql as ST}from"kysely";async function KQ(_){await ST`
|
|
1574
1574
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1575
1575
|
SELECT
|
|
1576
1576
|
'org_orgfs_public_skills',
|
|
@@ -1584,13 +1584,13 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1584
1584
|
END,
|
|
1585
1585
|
now()
|
|
1586
1586
|
ON CONFLICT (id) DO NOTHING
|
|
1587
|
-
`.execute(_)}async function
|
|
1587
|
+
`.execute(_)}async function NQ(_){await ST`
|
|
1588
1588
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1589
|
-
`.execute(_)}var
|
|
1589
|
+
`.execute(_)}var YK={};C(YK,{up:()=>mQ,down:()=>TQ});async function mQ(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function TQ(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var DK={};C(DK,{up:()=>zQ,down:()=>EQ});import{sql as fT}from"kysely";async function zQ(_){await fT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function EQ(_){await fT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var HK={};C(HK,{up:()=>PQ,down:()=>UQ});import{sql as $Q}from"kysely";async function PQ(_){await $Q`
|
|
1590
1590
|
UPDATE downstream_tokens
|
|
1591
1591
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1592
1592
|
WHERE "expiresAt" IS NULL
|
|
1593
|
-
`.execute(_)}async function
|
|
1593
|
+
`.execute(_)}async function UQ(_){}var MK={};C(MK,{up:()=>JQ,down:()=>QQ});async function JQ(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function QQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var RK={};C(RK,{up:()=>XQ,down:()=>ZQ});async function XQ(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function ZQ(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var BK={};C(BK,{up:()=>WQ,down:()=>jQ});async function WQ(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function jQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var GK={};C(GK,{up:()=>LQ,down:()=>FQ});async function LQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function FQ(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var OK={};C(OK,{up:()=>YQ,down:()=>DQ});async function YQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function DQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var SK={};C(SK,{up:()=>HQ,down:()=>MQ});import{sql as AT}from"kysely";async function HQ(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(AT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(AT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function MQ(_){await _.schema.dropTable("org_sites").execute()}var fK={};C(fK,{up:()=>RQ,down:()=>BQ});async function RQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function BQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var AK={};C(AK,{up:()=>GQ,down:()=>OQ});import{sql as R}from"kysely";async function GQ(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await R`
|
|
1594
1594
|
UPDATE organization_domains
|
|
1595
1595
|
SET
|
|
1596
1596
|
id = gen_random_uuid()::text,
|
|
@@ -1599,18 +1599,18 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1599
1599
|
verification_method = 'email',
|
|
1600
1600
|
verified_at = created_at
|
|
1601
1601
|
WHERE id IS NULL
|
|
1602
|
-
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function
|
|
1602
|
+
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function OQ(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await R`
|
|
1603
1603
|
UPDATE organization_domains
|
|
1604
1604
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
1605
|
-
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var
|
|
1605
|
+
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var IK={};C(IK,{up:()=>SQ,down:()=>fQ});import{sql as t_}from"kysely";async function SQ(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(t_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(t_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t_`now()`)).execute(),await t_`
|
|
1606
1606
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1607
1607
|
ON organization_join_requests (organization_id, user_id)
|
|
1608
1608
|
WHERE status = 'pending'
|
|
1609
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function
|
|
1609
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function fQ(_){await _.schema.dropTable("organization_join_requests").execute()}var yK={};C(yK,{up:()=>AQ,down:()=>IQ});async function AQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function IQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var VK={};C(VK,{up:()=>yQ,down:()=>VQ});async function yQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function VQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var nK={};C(nK,{up:()=>nQ,splitWebResearchTier:()=>kK,down:()=>vQ,__testing:()=>kQ});function wQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function wK(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function kK(_){if(!_||wK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(wQ(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var kQ={splitWebResearchTier:kK,isAlreadySplit:wK};async function nQ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(wK(N))continue;let K=kK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function vQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var vK={};C(vK,{up:()=>pQ,down:()=>gQ});import{sql as W_}from"kysely";async function pQ(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await W_`
|
|
1610
1610
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1611
1611
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1612
1612
|
WHERE revoked_at IS NULL
|
|
1613
|
-
`.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function
|
|
1613
|
+
`.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function gQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var pK={};C(pK,{up:()=>qQ,down:()=>iQ});async function qQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function iQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var gK={};C(gK,{up:()=>cQ,down:()=>hQ});import{sql as t}from"kysely";async function cQ(_){await t`
|
|
1614
1614
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1615
1615
|
RETURNS jsonb AS $fn$
|
|
1616
1616
|
BEGIN
|
|
@@ -1669,7 +1669,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1669
1669
|
BEFORE INSERT ON connection_aggregations
|
|
1670
1670
|
FOR EACH ROW
|
|
1671
1671
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1672
|
-
`.execute(_)}async function
|
|
1672
|
+
`.execute(_)}async function hQ(_){await t`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await t`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await t`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var iK={};C(iK,{up:()=>tQ,down:()=>oQ});import{sql as qK}from"kysely";async function tQ(_){await _.schema.createTable("task_board_items").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("status","text",(x)=>x.notNull().defaultTo("triage")).addColumn("priority","text",(x)=>x.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(qK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qK`now()`)).execute(),await _.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(qK`false`)).execute()}async function oQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var cK={};C(cK,{up:()=>aQ,down:()=>rQ});async function aQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function rQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var hK={};C(hK,{up:()=>lQ,down:()=>eQ});async function lQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function eQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var tK={};C(tK,{up:()=>dQ,down:()=>sQ});async function dQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function sQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var oK={};C(oK,{up:()=>_X,down:()=>xX});import{sql as bQ}from"kysely";async function _X(_){await _.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(bQ`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await _.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await _.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function xX(_){await _.schema.dropTable("task_board_item_threads").execute()}var aK={};C(aK,{up:()=>uX,down:()=>CX});async function uX(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(x)=>x.onDelete("cascade")).execute()}async function CX(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var rK={};C(rK,{up:()=>NX,down:()=>mX});import{sql as KX}from"kysely";async function NX(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(KX`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await _.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function mX(_){await _.schema.dropTable("task_board_item_prs").execute()}var lK={};C(lK,{up:()=>zX,down:()=>EX});import{sql as TX}from"kysely";async function zX(_){await TX`
|
|
1673
1673
|
DELETE FROM member
|
|
1674
1674
|
WHERE id IN (
|
|
1675
1675
|
SELECT id FROM (
|
|
@@ -1688,38 +1688,38 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1688
1688
|
) ranked
|
|
1689
1689
|
WHERE ranked.rn > 1
|
|
1690
1690
|
)
|
|
1691
|
-
`.execute(_)}async function
|
|
1691
|
+
`.execute(_)}async function EX(_){}var eK={};C(eK,{up:()=>$X,down:()=>PX});async function $X(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function PX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var dK={};C(dK,{up:()=>UX,down:()=>JX});async function UX(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function JX(_){await _.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var sK={};C(sK,{up:()=>XX,down:()=>ZX});import{sql as QX}from"kysely";async function XX(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(QX`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await _.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await _.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function ZX(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var bK={};C(bK,{up:()=>jX,down:()=>LX});import{sql as WX}from"kysely";async function jX(_){await _.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(x)=>x.notNull()).addColumn("sandbox_provider_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(WX`now()`)).addPrimaryKeyConstraint("agent_sandbox_runner_state_pkey",["project_ref","sandbox_provider_kind"]).execute(),await _.schema.createIndex("agent_sandbox_runner_state_handle_idx").on("agent_sandbox_runner_state").column("handle").execute()}async function LX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var _N={};C(_N,{up:()=>FX,down:()=>YX});import{sql as o_}from"kysely";async function FX(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",o_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",o_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function YX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var xN={};C(xN,{up:()=>DX,down:()=>HX});import{sql as a_}from"kysely";async function DX(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await a_`
|
|
1692
1692
|
insert into organization_billing (organization_id, legacy)
|
|
1693
1693
|
select id, true from organization
|
|
1694
1694
|
on conflict (organization_id) do nothing
|
|
1695
|
-
`.execute(_)}async function
|
|
1695
|
+
`.execute(_)}async function HX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var uN={};C(uN,{up:()=>MX,down:()=>RX});import{sql as IT}from"kysely";async function MX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(IT`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(IT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function RX(_){await _.schema.dropTable("seat_change_log").execute()}var CN={};C(CN,{up:()=>BX,down:()=>GX});async function BX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function GX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var KN={};C(KN,{up:()=>OX,down:()=>SX});import{sql as yT}from"kysely";async function OX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await yT`
|
|
1696
1696
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1697
1697
|
on organization_billing (stripe_subscription_id)
|
|
1698
1698
|
where stripe_subscription_id is not null
|
|
1699
|
-
`.execute(_)}async function
|
|
1699
|
+
`.execute(_)}async function SX(_){await yT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var NN={};C(NN,{up:()=>fX,down:()=>AX});async function fX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function AX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var mN={};C(mN,{up:()=>IX,down:()=>yX});import{sql as VT}from"kysely";async function IX(_){await VT`
|
|
1700
1700
|
create index idx_org_billing_benefits_pending
|
|
1701
1701
|
on organization_billing (updated_at)
|
|
1702
1702
|
where benefits_reference_id is not null
|
|
1703
|
-
`.execute(_)}async function
|
|
1703
|
+
`.execute(_)}async function yX(_){await VT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var TN={};C(TN,{up:()=>VX,down:()=>wX});import{sql as wT}from"kysely";async function VX(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(wT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(wT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function wX(_){await _.schema.dropTable("user_model_preferences").execute()}var zN={};C(zN,{up:()=>kX,down:()=>nX});async function kX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function nX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var EN={};C(EN,{up:()=>vX,down:()=>pX});async function vX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function pX(_){}var $N={};C($N,{up:()=>gX,down:()=>qX});import{sql as kT}from"kysely";async function gX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await kT`
|
|
1704
1704
|
UPDATE organization_settings
|
|
1705
1705
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1706
1706
|
WHERE reports_only IS NOT NULL
|
|
1707
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1707
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function qX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await kT`
|
|
1708
1708
|
UPDATE organization_settings
|
|
1709
1709
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1710
1710
|
WHERE flags ? 'reports_only'
|
|
1711
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1711
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var PN={};C(PN,{up:()=>cX,down:()=>hX});import{sql as iX}from"kysely";async function cX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await iX`
|
|
1712
1712
|
update task_board_items
|
|
1713
1713
|
set sort_order = -extract(epoch from created_at)
|
|
1714
|
-
`.execute(_)}async function
|
|
1714
|
+
`.execute(_)}async function hX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var UN={};C(UN,{up:()=>tX,down:()=>oX,ACTIONS:()=>nT});import{sql as r_}from"kysely";var nT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function tX(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addCheckConstraint("chk_task_board_activity_action",r_`action IN (${r_.join(nT.map((x)=>r_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function oX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var QN={};C(QN,{up:()=>aX,down:()=>rX,ACTIONS:()=>JN});import{sql as j_}from"kysely";var JN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function aX(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await vT(_,JN)}async function rX(_){await vT(_,JN.filter((x)=>x!=="tags_changed")),await _.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await _.schema.dropTable("task_board_item_tags").execute(),await _.schema.alterTable("organization_tags").dropColumn("color").execute()}async function vT(_,x){await j_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await j_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${j_.join(x.map((u)=>j_.lit(u)))}))`.execute(_)}var ZN={};C(ZN,{up:()=>eX,down:()=>dX});import{sql as pT}from"kysely";function XN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function lX(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return XN(N)}catch{return XN(_.connection_url)}if(_.title)return XN(_.title);return _.id}async function eX(_){let x=await pT`
|
|
1715
1715
|
SELECT id, app_name, connection_url, title, slug
|
|
1716
1716
|
FROM connections
|
|
1717
1717
|
WHERE connection_type != 'VIRTUAL'
|
|
1718
|
-
`.execute(_),u=0;for(let N of x.rows){let K=
|
|
1718
|
+
`.execute(_),u=0;for(let N of x.rows){let K=lX(N);if(K===N.slug)continue;await pT`UPDATE connections SET slug = ${K} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function dX(){}var WN={};C(WN,{up:()=>bX,down:()=>_Z});import{sql as sX}from"kysely";async function bX(_){await sX`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(_)}async function _Z(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var LN={};C(LN,{up:()=>uZ,down:()=>CZ,ACTIONS:()=>jN});import{sql as l_}from"kysely";var jN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],xZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function uZ(_){await gT(_,jN)}async function CZ(_){await gT(_,jN.filter((x)=>!xZ.has(x)))}async function gT(_,x){await l_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await l_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${l_.join(x.map((u)=>l_.lit(u)))}))`.execute(_)}var FN={};C(FN,{up:()=>NZ,down:()=>mZ});import{sql as KZ}from"kysely";async function NZ(_){await _.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(x)=>x.notNull()).addColumn("cycle_at","timestamptz",(x)=>x.notNull()).addColumn("token","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(KZ`now()`)).addPrimaryKeyConstraint("task_board_review_claims_pkey",["task_board_item_id","reviewer","cycle_at"]).execute(),await _.schema.createIndex("idx_task_board_review_claims_token").on("task_board_review_claims").columns(["task_board_item_id","token"]).execute()}async function mZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var DN={};C(DN,{up:()=>zZ,down:()=>EZ,ACTIONS:()=>YN});import{sql as e_}from"kysely";var YN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],TZ=new Set(["merge_conflict_resolution"]);async function zZ(_){await qT(_,YN)}async function EZ(_){await qT(_,YN.filter((x)=>!TZ.has(x)))}async function qT(_,x){await e_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await e_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${e_.join(x.map((u)=>e_.lit(u)))}))`.execute(_)}var HN={};C(HN,{up:()=>$Z,down:()=>PZ});import{sql as L_}from"kysely";async function $Z(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await L_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function PZ(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await L_`
|
|
1719
1719
|
create index idx_org_billing_benefits_pending
|
|
1720
1720
|
on organization_billing (updated_at)
|
|
1721
1721
|
where benefits_reference_id is not null
|
|
1722
|
-
`.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(L_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).execute()}var
|
|
1722
|
+
`.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(L_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).execute()}var MN={};C(MN,{up:()=>UZ,down:()=>JZ});import{sql as d_}from"kysely";async function UZ(_){await d_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await d_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function JZ(_){await d_`
|
|
1723
1723
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1724
1724
|
RETURNS trigger AS $fn$
|
|
1725
1725
|
BEGIN
|
|
@@ -1745,35 +1745,35 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1745
1745
|
BEFORE INSERT ON connection_aggregations
|
|
1746
1746
|
FOR EACH ROW
|
|
1747
1747
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1748
|
-
`.execute(_)}var
|
|
1748
|
+
`.execute(_)}var RN={};C(RN,{up:()=>QZ,down:()=>XZ});import{sql as iT}from"kysely";async function QZ(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function XZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var BN={};C(BN,{up:()=>ZZ,down:()=>WZ});import{sql as cT}from"kysely";async function ZZ(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(cT`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(cT`now()`)).execute()}async function WZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var ON={};C(ON,{up:()=>jZ,down:()=>LZ});import{sql as GN}from"kysely";async function jZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(GN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await GN`
|
|
1749
1749
|
create index idx_task_quota_claims_org_period_live
|
|
1750
1750
|
on task_quota_claims (organization_id, period_key)
|
|
1751
1751
|
where state <> 'released'
|
|
1752
|
-
`.execute(_)}async function
|
|
1752
|
+
`.execute(_)}async function LZ(_){await GN`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var SN={};C(SN,{up:()=>FZ,down:()=>YZ});async function FZ(_){await _.schema.createTable("claude_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function YZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var fN={};C(fN,{up:()=>DZ,down:()=>HZ});async function DZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function HZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var AN={};C(AN,{up:()=>MZ,down:()=>RZ});import{sql as hT}from"kysely";async function MZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(hT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(hT`monthly_task_executions > 0`)).execute()}async function RZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var IN={};C(IN,{up:()=>GZ,down:()=>OZ});import{sql as BZ}from"kysely";async function GZ(_){await BZ`
|
|
1753
1753
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1754
1754
|
ON task_board_items (updated_at, id)
|
|
1755
1755
|
WHERE status = 'in_review'
|
|
1756
1756
|
AND assignee_id = 'super-agent'
|
|
1757
1757
|
AND dismissed_at IS NULL
|
|
1758
|
-
`.execute(_)}async function
|
|
1758
|
+
`.execute(_)}async function OZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var yN={};C(yN,{up:()=>SZ,down:()=>fZ});import{sql as tT}from"kysely";async function SZ(_){await tT`
|
|
1759
1759
|
ALTER TABLE task_board_items
|
|
1760
1760
|
ADD COLUMN last_swept_at timestamptz
|
|
1761
|
-
`.execute(_)}async function
|
|
1761
|
+
`.execute(_)}async function fZ(_){await tT`
|
|
1762
1762
|
ALTER TABLE task_board_items
|
|
1763
1763
|
DROP COLUMN last_swept_at
|
|
1764
|
-
`.execute(_)}var
|
|
1764
|
+
`.execute(_)}var VN={};C(VN,{up:()=>AZ,down:()=>IZ});import{sql as s_}from"kysely";async function AZ(_){await s_`
|
|
1765
1765
|
ALTER TABLE task_board_items
|
|
1766
1766
|
ADD COLUMN retry_at timestamptz,
|
|
1767
1767
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
1768
|
-
`.execute(_),await
|
|
1768
|
+
`.execute(_),await s_`
|
|
1769
1769
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1770
1770
|
ON task_board_items (retry_at)
|
|
1771
1771
|
WHERE retry_at IS NOT NULL
|
|
1772
|
-
`.execute(_)}async function
|
|
1772
|
+
`.execute(_)}async function IZ(_){await s_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await s_`
|
|
1773
1773
|
ALTER TABLE task_board_items
|
|
1774
1774
|
DROP COLUMN retry_at,
|
|
1775
1775
|
DROP COLUMN retry_attempts
|
|
1776
|
-
`.execute(_)}var
|
|
1776
|
+
`.execute(_)}var kN={};C(kN,{up:()=>yZ,down:()=>VZ});import{sql as wN}from"kysely";async function yZ(_){await wN`
|
|
1777
1777
|
CREATE TABLE org_repo_sync (
|
|
1778
1778
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1779
1779
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1791,11 +1791,11 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1791
1791
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1792
1792
|
UNIQUE (organization_id, volume)
|
|
1793
1793
|
)
|
|
1794
|
-
`.execute(_),await
|
|
1794
|
+
`.execute(_),await wN`
|
|
1795
1795
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1796
1796
|
ON org_repo_sync (organization_id)
|
|
1797
1797
|
WHERE enabled
|
|
1798
|
-
`.execute(_)}async function
|
|
1798
|
+
`.execute(_)}async function VZ(_){await wN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var vN={};C(vN,{up:()=>kZ,down:()=>nZ,ACTIONS:()=>nN});import{sql as b_}from"kysely";var nN=["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"],wZ=new Set(["merge_failed"]);async function kZ(_){await oT(_,nN)}async function nZ(_){await oT(_,nN.filter((x)=>!wZ.has(x)))}async function oT(_,x){await b_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await b_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${b_.join(x.map((u)=>b_.lit(u)))}))`.execute(_)}var pN={};C(pN,{up:()=>vZ,down:()=>pZ});async function vZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function pZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var gN={};C(gN,{up:()=>gZ,down:()=>qZ});import{sql as x_}from"kysely";async function gZ(_){await x_`
|
|
1799
1799
|
CREATE TABLE org_jira_integrations (
|
|
1800
1800
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1801
1801
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1834,7 +1834,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1834
1834
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1835
1835
|
UNIQUE (organization_id, jira_comment_id)
|
|
1836
1836
|
)
|
|
1837
|
-
`.execute(_)}async function
|
|
1837
|
+
`.execute(_)}async function qZ(_){await x_`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var qN={};C(qN,{up:()=>cZ,down:()=>hZ});import{sql as iZ}from"kysely";async function cZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await iZ`
|
|
1838
1838
|
update task_board_items as t
|
|
1839
1839
|
set key_seq = numbered.seq
|
|
1840
1840
|
from (
|
|
@@ -1847,25 +1847,25 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1847
1847
|
from task_board_items
|
|
1848
1848
|
) as numbered
|
|
1849
1849
|
where t.id = numbered.id
|
|
1850
|
-
`.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function
|
|
1850
|
+
`.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function hZ(_){await _.schema.dropIndex("task_board_items_org_key_seq_unique").on("task_board_items").execute(),await _.schema.alterTable("task_board_items").dropColumn("key_seq").execute()}var iN={};C(iN,{up:()=>tZ,down:()=>oZ});import{sql as aT}from"kysely";async function tZ(_){await aT`
|
|
1851
1851
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1852
1852
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1853
1853
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1854
|
-
`.execute(_)}async function
|
|
1854
|
+
`.execute(_)}async function oZ(_){await aT`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var hN={};C(hN,{up:()=>aZ,down:()=>rZ});import{sql as cN}from"kysely";async function aZ(_){await cN`
|
|
1855
1855
|
ALTER TABLE thread_message_parts
|
|
1856
1856
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1857
|
-
`.execute(_),await
|
|
1857
|
+
`.execute(_),await cN`
|
|
1858
1858
|
ALTER TABLE thread_message_parts
|
|
1859
1859
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1860
|
-
`.execute(_)}async function
|
|
1860
|
+
`.execute(_)}async function rZ(_){await cN`
|
|
1861
1861
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1862
|
-
`.execute(_)}var
|
|
1862
|
+
`.execute(_)}var tN={};C(tN,{up:()=>lZ,down:()=>eZ});async function lZ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function eZ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var oN={};C(oN,{up:()=>sZ,down:()=>bZ});import{sql as dZ}from"kysely";async function sZ(_){await dZ`
|
|
1863
1863
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1864
1864
|
ON task_board_items (updated_at)
|
|
1865
1865
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1866
|
-
`.execute(_)}async function
|
|
1866
|
+
`.execute(_)}async function bZ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var aN={};C(aN,{up:()=>_6,down:()=>x6,TYPES:()=>rT});import{sql as q}from"kysely";var rT=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function _6(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addCheckConstraint("notifications_type_check",q`type IN (${q.join(rT.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
|
|
1867
1867
|
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
|
|
1868
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function
|
|
1868
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function x6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var rN={};C(rN,{up:()=>u6,down:()=>C6});import{sql as lT}from"kysely";async function u6(_){await lT`
|
|
1869
1869
|
UPDATE org_jira_integrations
|
|
1870
1870
|
SET status_mapping = (
|
|
1871
1871
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1880,7 +1880,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1880
1880
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1881
1881
|
WHERE jsonb_typeof(value) = 'array'
|
|
1882
1882
|
)
|
|
1883
|
-
`.execute(_)}async function
|
|
1883
|
+
`.execute(_)}async function C6(_){await lT`
|
|
1884
1884
|
UPDATE org_jira_integrations
|
|
1885
1885
|
SET status_mapping = (
|
|
1886
1886
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1895,7 +1895,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1895
1895
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1896
1896
|
WHERE jsonb_typeof(value) = 'array'
|
|
1897
1897
|
)
|
|
1898
|
-
`.execute(_)}var
|
|
1898
|
+
`.execute(_)}var eN={};C(eN,{up:()=>N6,down:()=>m6,TYPES:()=>lN});import{sql as _x}from"kysely";var lN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],K6=new Set(["mentioned"]);async function N6(_){await eT(_,lN)}async function m6(_){await eT(_,lN.filter((x)=>!K6.has(x)))}async function eT(_,x){await _x`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await _x`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${_x.join(x.map((u)=>_x.lit(u)))}))`.execute(_)}var sN={};C(sN,{up:()=>E6,down:()=>$6,ACTIONS:()=>dN});import{sql as i}from"kysely";var T6=["bug","feature","chore","spike","security"],dN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed","type_changed"],z6=new Set(["type_changed"]);async function E6(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await i`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${i.join(T6.map((x)=>i.lit(x)))}))`.execute(_),await dT(_,dN)}async function $6(_){await dT(_,dN.filter((x)=>!z6.has(x))),await i`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function dT(_,x){await i`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await i`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${i.join(x.map((u)=>i.lit(u)))}))`.execute(_)}var bN={};C(bN,{up:()=>P6,down:()=>U6});import{sql as W}from"kysely";var bT=["bug","feature","chore","spike","security"],sT="chore";async function P6(_){await W`UPDATE task_board_items SET type = ${W.lit(sT)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(sT)}`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${W.join(bT.map((x)=>W.lit(x)))}))`.execute(_)}async function U6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(bT.map((x)=>W.lit(x)))}))`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var _m={};C(_m,{up:()=>J6,down:()=>Q6});import{sql as u_}from"kysely";async function J6(_){await u_`
|
|
1899
1899
|
CREATE TABLE task_board_sprints (
|
|
1900
1900
|
id text PRIMARY KEY,
|
|
1901
1901
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1920,34 +1920,34 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1920
1920
|
CREATE INDEX idx_task_board_items_sprint
|
|
1921
1921
|
ON task_board_items (organization_id, sprint_id)
|
|
1922
1922
|
WHERE sprint_id IS NOT NULL
|
|
1923
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function
|
|
1923
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function Q6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await u_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await u_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var xm={};C(xm,{up:()=>Z6,down:()=>W6});import{sql as X6}from"kysely";async function Z6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function W6(_){await X6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var um={};C(um,{up:()=>L6,down:()=>F6});import{sql as j6}from"kysely";async function L6(_){await j6`
|
|
1924
1924
|
UPDATE org_jira_integrations
|
|
1925
1925
|
SET last_synced_at = NULL,
|
|
1926
1926
|
last_sync_error = NULL
|
|
1927
1927
|
WHERE last_synced_at IS NOT NULL
|
|
1928
|
-
`.execute(_)}async function
|
|
1928
|
+
`.execute(_)}async function F6(){}var Cm={};C(Cm,{up:()=>D6,down:()=>H6});import{sql as Y6}from"kysely";async function D6(_){await Y6`
|
|
1929
1929
|
UPDATE org_jira_integrations
|
|
1930
1930
|
SET last_synced_at = NULL,
|
|
1931
1931
|
last_sync_error = NULL
|
|
1932
1932
|
WHERE last_synced_at IS NOT NULL
|
|
1933
|
-
`.execute(_)}async function
|
|
1933
|
+
`.execute(_)}async function H6(){}var Nm={};C(Nm,{up:()=>M6,down:()=>R6});import{sql as Km}from"kysely";async function M6(_){await Km`
|
|
1934
1934
|
ALTER TABLE org_jira_integrations
|
|
1935
1935
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1936
|
-
`.execute(_),await
|
|
1936
|
+
`.execute(_),await Km`
|
|
1937
1937
|
UPDATE org_jira_integrations
|
|
1938
1938
|
SET rescan_pending = true
|
|
1939
1939
|
WHERE last_synced_at IS NULL
|
|
1940
|
-
`.execute(_)}async function
|
|
1940
|
+
`.execute(_)}async function R6(_){await Km`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var mm={};C(mm,{up:()=>B6,down:()=>G6});async function B6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function G6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Tm={};C(Tm,{up:()=>O6,down:()=>S6});import{sql as _z}from"kysely";async function O6(_){await _z`
|
|
1941
1941
|
ALTER TABLE invitation
|
|
1942
1942
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1943
|
-
`.execute(_)}async function
|
|
1943
|
+
`.execute(_)}async function S6(_){await _z`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Em={};C(Em,{up:()=>f6,down:()=>A6});import{sql as zm}from"kysely";async function f6(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(zm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(zm`now()`)).execute(),await _.schema.createIndex("task_board_column_automations_org_column_uniq").ifNotExists().on("task_board_column_automations").columns(["organization_id","column_key"]).unique().execute(),await zm`
|
|
1944
1944
|
INSERT INTO task_board_column_automations
|
|
1945
1945
|
(id, organization_id, column_key, prompt)
|
|
1946
1946
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1947
1947
|
FROM org_jira_integrations
|
|
1948
1948
|
WHERE auto_delegate = true
|
|
1949
1949
|
ON CONFLICT DO NOTHING
|
|
1950
|
-
`.execute(_)}async function
|
|
1950
|
+
`.execute(_)}async function A6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var $m={};C($m,{up:()=>I6,down:()=>y6});import{sql as F_}from"kysely";async function I6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await F_`
|
|
1951
1951
|
UPDATE task_board_items i
|
|
1952
1952
|
SET review_cycle_started_at = (
|
|
1953
1953
|
SELECT max(a.occurred_at)
|
|
@@ -1963,13 +1963,13 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1963
1963
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1964
1964
|
AND assignee_id = 'super-agent'
|
|
1965
1965
|
AND dismissed_at IS NULL
|
|
1966
|
-
`.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function
|
|
1966
|
+
`.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function y6(_){await F_`
|
|
1967
1967
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1968
1968
|
ON task_board_items (updated_at, id)
|
|
1969
1969
|
WHERE status = 'in_review'
|
|
1970
1970
|
AND assignee_id = 'super-agent'
|
|
1971
1971
|
AND dismissed_at IS NULL
|
|
1972
|
-
`.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var
|
|
1972
|
+
`.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var Pm={};C(Pm,{up:()=>V6,down:()=>w6});import{sql as xz}from"kysely";async function V6(_){await _.schema.createTable("task_board_columns").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("title","text",(x)=>x.notNull()).addColumn("position","integer",(x)=>x.notNull()).addColumn("role","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(xz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(xz`now()`)).execute(),await _.schema.createIndex("task_board_columns_org_key_uniq").ifNotExists().on("task_board_columns").columns(["organization_id","key"]).unique().execute(),await _.schema.createIndex("task_board_columns_org_position_idx").ifNotExists().on("task_board_columns").columns(["organization_id","position"]).execute()}async function w6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Jm={};C(Jm,{up:()=>n6,down:()=>v6,ACTIONS:()=>Um});import{sql as xx}from"kysely";var Um=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],k6=new Set(["review_verdict_requested"]);async function n6(_){await uz(_,Um)}async function v6(_){await uz(_,Um.filter((x)=>!k6.has(x)))}async function uz(_,x){await xx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await xx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var Qm={};C(Qm,{up:()=>p6,down:()=>g6});import{sql as ux}from"kysely";async function p6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await ux`
|
|
1973
1973
|
ALTER TABLE task_board_items
|
|
1974
1974
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1975
1975
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
@@ -1979,13 +1979,13 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
1979
1979
|
FOREIGN KEY (board_column_org, status)
|
|
1980
1980
|
REFERENCES task_board_columns (organization_id, key)
|
|
1981
1981
|
ON DELETE RESTRICT
|
|
1982
|
-
`.execute(_)}async function
|
|
1982
|
+
`.execute(_)}async function g6(_){await ux`
|
|
1983
1983
|
ALTER TABLE task_board_items
|
|
1984
1984
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
1985
1985
|
`.execute(_),await ux`
|
|
1986
1986
|
ALTER TABLE task_board_items
|
|
1987
1987
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
1988
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
1988
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var Xm={};C(Xm,{up:()=>q6,down:()=>i6});async function q6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function i6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Wm={};C(Wm,{up:()=>h6,down:()=>t6,ACTIONS:()=>Zm});import{sql as Cx}from"kysely";var Zm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],c6=new Set(["sprint_changed"]);async function h6(_){await Cz(_,Zm)}async function t6(_){await Cz(_,Zm.filter((x)=>!c6.has(x)))}async function Cz(_,x){await Cx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Cx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Cx.join(x.map((u)=>Cx.lit(u)))}))`.execute(_)}var jm={};C(jm,{up:()=>a6,down:()=>r6});import{sql as o6}from"kysely";async function a6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(o6`'[]'::jsonb`)).execute()}async function r6(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Lm={};C(Lm,{up:()=>l6,down:()=>e6});import{sql as Kz}from"kysely";async function l6(_){await _.schema.createTable("task_board_prompts").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text").addColumn("prompt","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Kz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Kz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function e6(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Fm={};C(Fm,{up:()=>s6,down:()=>b6});import{sql as d6}from"kysely";async function s6(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await d6`
|
|
1989
1989
|
UPDATE task_board_items i
|
|
1990
1990
|
SET external_url = t.url,
|
|
1991
1991
|
description = CASE
|
|
@@ -2004,11 +2004,11 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2004
2004
|
ON g.organization_id = l.organization_id
|
|
2005
2005
|
) t
|
|
2006
2006
|
WHERE t.item_id = i.id
|
|
2007
|
-
`.execute(_)}async function
|
|
2007
|
+
`.execute(_)}async function b6(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Ym={};C(Ym,{up:()=>xW,down:()=>uW,ACTIONS:()=>Nz});import{sql as Q}from"kysely";var _W=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Nz=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"];async function xW(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await Q`DROP TABLE IF EXISTS task_board_columns`.execute(_),await Q`
|
|
2008
2008
|
UPDATE task_board_items
|
|
2009
2009
|
SET status = 'triage'
|
|
2010
|
-
WHERE status NOT IN (${Q.join(
|
|
2011
|
-
`.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await
|
|
2010
|
+
WHERE status NOT IN (${Q.join(_W.map((x)=>Q.lit(x)))})
|
|
2011
|
+
`.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await CW(_,Nz),await Q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await Q`
|
|
2012
2012
|
ALTER TABLE task_board_item_jira_links
|
|
2013
2013
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
2014
2014
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -2020,7 +2020,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2020
2020
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
2021
2021
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
2022
2022
|
DROP COLUMN IF EXISTS rescan_pending
|
|
2023
|
-
`.execute(_)}async function
|
|
2023
|
+
`.execute(_)}async function uW(){}async function CW(_,x){await Q`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Q`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Q.join(x.map((u)=>Q.lit(u)))}))`.execute(_)}var Dm={};C(Dm,{up:()=>KW,down:()=>NW});import{sql as C_}from"kysely";async function KW(_){await C_`
|
|
2024
2024
|
ALTER TABLE task_board_items
|
|
2025
2025
|
ADD COLUMN IF NOT EXISTS source text
|
|
2026
2026
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
@@ -2041,24 +2041,24 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2041
2041
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2042
2042
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
2043
2043
|
)
|
|
2044
|
-
`.execute(_)}async function
|
|
2044
|
+
`.execute(_)}async function NW(_){await C_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await C_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await C_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var Hm={};C(Hm,{up:()=>mW,down:()=>TW});import{sql as Y_}from"kysely";async function mW(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(Y_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).execute(),await Y_`
|
|
2045
2045
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
2046
2046
|
ON organization_notices (organization_id)
|
|
2047
2047
|
WHERE resolved_at IS NULL
|
|
2048
2048
|
`.execute(_),await Y_`
|
|
2049
2049
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
2050
2050
|
ON organization_notices (organization_id, created_at DESC)
|
|
2051
|
-
`.execute(_)}async function
|
|
2051
|
+
`.execute(_)}async function TW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Rm={};C(Rm,{up:()=>WW,down:()=>jW});import{sql as Mm}from"kysely";import{sql as ej}from"kysely";var mz=50000000,zW=1e5;function EW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>zW)return 1/0;let m=K.pop();if(typeof m==="string")u+=m.length;else if(Array.isArray(m))for(let T of m)K.push(T);else if(m!==null&&typeof m==="object")for(let T of Object.values(m))K.push(T)}return u}var $W=/\u0000/g,PW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,UW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,JW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,QW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function XW(_){return _.replace($W,"").replace(PW,"\uFFFD").replace(UW,"$1***@").replace(JW,"$1***").replace(QW,"[base64 data omitted]")}function ZW(_){if(typeof _!=="object"||_===null)return!1;let x=_;if(x.type!=="image")return!1;if(typeof x.data==="string")return!0;let u=x.source;return typeof u==="object"&&u!==null&&typeof u.data==="string"}function Tz(_){if(EW(_,mz)>mz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return XW(u);if(ZW(u))return{type:"text",text:"[image omitted]"};return u})}var zz=20;async function WW(_){let x=await Mm`
|
|
2052
2052
|
SELECT id FROM thread_message_parts
|
|
2053
2053
|
WHERE pg_column_size(payload) > 8192
|
|
2054
2054
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
2055
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
2055
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=zz){let N=x.rows.slice(u,u+zz).map((m)=>m.id),K=await Mm`
|
|
2056
2056
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
|
|
2057
|
-
`.execute(_);for(let
|
|
2057
|
+
`.execute(_);for(let m of K.rows){let T=Tz(m.payload);if(T===JSON.stringify(m.payload))continue;await Mm`
|
|
2058
2058
|
UPDATE thread_message_parts
|
|
2059
|
-
SET payload = ${
|
|
2060
|
-
WHERE id = ${
|
|
2061
|
-
`.execute(_)}}}async function
|
|
2059
|
+
SET payload = ${T}::jsonb
|
|
2060
|
+
WHERE id = ${m.id}
|
|
2061
|
+
`.execute(_)}}}async function jW(){}var Bm={};C(Bm,{up:()=>LW,down:()=>FW});async function LW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function FW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var Gm={};C(Gm,{up:()=>YW,down:()=>DW});import{sql as P}from"kysely";async function YW(_){await P`
|
|
2062
2062
|
CREATE TABLE git_provider_accounts (
|
|
2063
2063
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
2064
2064
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2076,7 +2076,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2076
2076
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
2077
2077
|
UNIQUE (organization_id, host, external_account_id)
|
|
2078
2078
|
)
|
|
2079
|
-
`.execute(_),await
|
|
2079
|
+
`.execute(_),await P`
|
|
2080
2080
|
CREATE TABLE git_provider_account_credentials (
|
|
2081
2081
|
account_id text PRIMARY KEY REFERENCES git_provider_accounts(id) ON DELETE CASCADE,
|
|
2082
2082
|
access_token text NOT NULL,
|
|
@@ -2089,7 +2089,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2089
2089
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2090
2090
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
2091
2091
|
)
|
|
2092
|
-
`.execute(_),await
|
|
2092
|
+
`.execute(_),await P`
|
|
2093
2093
|
CREATE TABLE git_provider_oauth_states (
|
|
2094
2094
|
id text PRIMARY KEY,
|
|
2095
2095
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2100,10 +2100,10 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2100
2100
|
expires_at timestamptz NOT NULL,
|
|
2101
2101
|
created_at timestamptz NOT NULL DEFAULT now()
|
|
2102
2102
|
)
|
|
2103
|
-
`.execute(_),await
|
|
2103
|
+
`.execute(_),await P`
|
|
2104
2104
|
CREATE INDEX idx_git_provider_oauth_states_expires_at
|
|
2105
2105
|
ON git_provider_oauth_states (expires_at)
|
|
2106
|
-
`.execute(_),await
|
|
2106
|
+
`.execute(_),await P`
|
|
2107
2107
|
CREATE TABLE repositories (
|
|
2108
2108
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
2109
2109
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2120,27 +2120,27 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2120
2120
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2121
2121
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
2122
2122
|
)
|
|
2123
|
-
`.execute(_),await
|
|
2123
|
+
`.execute(_),await P`
|
|
2124
2124
|
CREATE UNIQUE INDEX uq_repositories_org_host_path
|
|
2125
2125
|
ON repositories (organization_id, host, lower(path))
|
|
2126
|
-
`.execute(_),await
|
|
2126
|
+
`.execute(_),await P`
|
|
2127
2127
|
CREATE INDEX idx_repositories_account ON repositories (account_id)
|
|
2128
|
-
`.execute(_),await
|
|
2128
|
+
`.execute(_),await P`
|
|
2129
2129
|
ALTER TABLE task_board_items
|
|
2130
2130
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2131
|
-
`.execute(_),await
|
|
2131
|
+
`.execute(_),await P`
|
|
2132
2132
|
ALTER TABLE task_board_item_prs
|
|
2133
2133
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2134
|
-
`.execute(_),await
|
|
2134
|
+
`.execute(_),await P`
|
|
2135
2135
|
ALTER TABLE org_repo_sync
|
|
2136
2136
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2137
|
-
`.execute(_),await
|
|
2137
|
+
`.execute(_),await P`
|
|
2138
2138
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id DROP NOT NULL
|
|
2139
|
-
`.execute(_),await
|
|
2139
|
+
`.execute(_),await P`
|
|
2140
2140
|
ALTER TABLE org_repo_sync
|
|
2141
2141
|
ADD CONSTRAINT org_repo_sync_source_present
|
|
2142
2142
|
CHECK (connection_id IS NOT NULL OR repository_id IS NOT NULL)
|
|
2143
|
-
`.execute(_),await
|
|
2143
|
+
`.execute(_),await P`
|
|
2144
2144
|
CREATE OR REPLACE FUNCTION git_provider_try_jsonb(t text)
|
|
2145
2145
|
RETURNS jsonb AS $fn$
|
|
2146
2146
|
BEGIN
|
|
@@ -2149,7 +2149,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2149
2149
|
RETURN NULL;
|
|
2150
2150
|
END;
|
|
2151
2151
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
2152
|
-
`.execute(_),await
|
|
2152
|
+
`.execute(_),await P`
|
|
2153
2153
|
INSERT INTO git_provider_accounts (
|
|
2154
2154
|
organization_id, type, host, auth_kind, external_account_id, login,
|
|
2155
2155
|
installation_id, credential_connection_id, created_by
|
|
@@ -2183,7 +2183,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2183
2183
|
AND coalesce(s.owner, '') <> ''
|
|
2184
2184
|
ORDER BY c.organization_id, s.installation_id, c.created_at ASC
|
|
2185
2185
|
ON CONFLICT (organization_id, host, external_account_id) DO NOTHING
|
|
2186
|
-
`.execute(_),await
|
|
2186
|
+
`.execute(_),await P`
|
|
2187
2187
|
INSERT INTO repositories (
|
|
2188
2188
|
organization_id, account_id, provider, host, path, external_id, web_url,
|
|
2189
2189
|
legacy_connection_id, created_by
|
|
@@ -2220,7 +2220,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2220
2220
|
ORDER BY c.organization_id, lower(s.owner || '/' || s.repo),
|
|
2221
2221
|
coalesce(s.org_shared = 'true', false) DESC, c.created_at ASC
|
|
2222
2222
|
ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
|
|
2223
|
-
`.execute(_),await
|
|
2223
|
+
`.execute(_),await P`
|
|
2224
2224
|
UPDATE repositories r
|
|
2225
2225
|
SET external_id = s.repository_id
|
|
2226
2226
|
FROM connections c
|
|
@@ -2235,7 +2235,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2235
2235
|
AND c.organization_id = r.organization_id
|
|
2236
2236
|
AND coalesce(s.repository_id, '') <> ''
|
|
2237
2237
|
AND lower(s.owner || '/' || s.repo) = lower(r.path)
|
|
2238
|
-
`.execute(_),await
|
|
2238
|
+
`.execute(_),await P`
|
|
2239
2239
|
INSERT INTO repositories (
|
|
2240
2240
|
organization_id, account_id, provider, host, path, web_url, created_by
|
|
2241
2241
|
)
|
|
@@ -2259,7 +2259,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2259
2259
|
AND g.name NOT LIKE '%/%'
|
|
2260
2260
|
ORDER BY c.organization_id, lower(g.owner || '/' || g.name), c.created_at ASC
|
|
2261
2261
|
ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
|
|
2262
|
-
`.execute(_),await
|
|
2262
|
+
`.execute(_),await P`
|
|
2263
2263
|
INSERT INTO repositories (
|
|
2264
2264
|
organization_id, account_id, provider, host, path, web_url
|
|
2265
2265
|
)
|
|
@@ -2277,7 +2277,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2277
2277
|
WHERE EXISTS (SELECT 1 FROM organization o WHERE o.id = x.organization_id)
|
|
2278
2278
|
ORDER BY x.organization_id, lower(x.path)
|
|
2279
2279
|
ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
|
|
2280
|
-
`.execute(_),await
|
|
2280
|
+
`.execute(_),await P`
|
|
2281
2281
|
UPDATE task_board_items t
|
|
2282
2282
|
SET repository_id = r.id
|
|
2283
2283
|
FROM repositories r
|
|
@@ -2286,7 +2286,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2286
2286
|
AND r.organization_id = t.organization_id
|
|
2287
2287
|
AND r.host = 'github.com'
|
|
2288
2288
|
AND lower(r.path) = lower(t.repo)
|
|
2289
|
-
`.execute(_),await
|
|
2289
|
+
`.execute(_),await P`
|
|
2290
2290
|
UPDATE task_board_item_prs p
|
|
2291
2291
|
SET repository_id = r.id
|
|
2292
2292
|
FROM repositories r
|
|
@@ -2294,7 +2294,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2294
2294
|
AND r.organization_id = p.organization_id
|
|
2295
2295
|
AND r.host = 'github.com'
|
|
2296
2296
|
AND lower(r.path) = lower(p.repo_owner || '/' || p.repo_name)
|
|
2297
|
-
`.execute(_),await
|
|
2297
|
+
`.execute(_),await P`
|
|
2298
2298
|
UPDATE org_repo_sync s
|
|
2299
2299
|
SET repository_id = r.id
|
|
2300
2300
|
FROM repositories r
|
|
@@ -2302,11 +2302,11 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2302
2302
|
AND r.organization_id = s.organization_id
|
|
2303
2303
|
AND r.host = 'github.com'
|
|
2304
2304
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
|
|
2305
|
-
`.execute(_),await
|
|
2305
|
+
`.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function DW(_){await P`
|
|
2306
2306
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
2307
|
-
`.execute(_),await
|
|
2307
|
+
`.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
|
|
2308
2308
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
2309
|
-
`.execute(_),await
|
|
2309
|
+
`.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var Om={};C(Om,{up:()=>MW,down:()=>RW});import{sql as I}from"kysely";var HW=I`
|
|
2310
2310
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
2311
2311
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
2312
2312
|
BEGIN
|
|
@@ -2315,7 +2315,7 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2315
2315
|
RETURN NULL;
|
|
2316
2316
|
END;
|
|
2317
2317
|
$$
|
|
2318
|
-
`;async function
|
|
2318
|
+
`;async function MW(_){await HW.execute(_),await I`
|
|
2319
2319
|
ALTER TABLE connections
|
|
2320
2320
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2321
2321
|
`.execute(_),await I`
|
|
@@ -2377,31 +2377,31 @@ var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null
|
|
|
2377
2377
|
AND r.host = 'github.com'
|
|
2378
2378
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
2379
2379
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
2380
|
-
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function
|
|
2380
|
+
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function RW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
|
|
2381
2381
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
2382
|
-
`.execute(_)}var HW={"001-initial-schema":Uu,"002-organization-settings":Ju,"003-connection-schema-align":Pu,"004-remove-models-binding":Qu,"005-connection-configuration":Xu,"006-add-views-to-settings":Zu,"007-monitoring-logs":Wu,"008-event-bus":ju,"009-drop-audit-logs":Lu,"010-gateways":Fu,"011-gateway-icon":Yu,"012-gateway-tool-selection-mode":Du,"013-monitoring-user-agent-gateway":Hu,"014-gateway-resources-prompts":Mu,"015-monitoring-properties":Ru,"016-downstream-token-client-info":Bu,"017-downstream-token-remove-userid":Gu,"018-drop-gateway-tool-selection-strategy":Ou,"019-remove-gateway-is-default":Su,"020-enabled-plugins":fu,"021-threads":Au,"022-rename-gateway-to-virtual-mcp":Iu,"023-optimize-thread-indexes":yu,"024-consolidate-virtual-mcp":Vu,"025-add-monitoring-virtual-mcp-id":wu,"026-restrict-child-connection-delete":ku,"027-update-management-mcp-url":vu,"028-update-management-mcp-to-self":gu,"029-add-updated-by-to-connections":qu,"030-member-tags":iu,"031-add-dependency-mode":cu,"032-projects":hu,"033-thread-status":tu,"034-monitoring-dashboards":ou,"035-project-connections":au,"036-update-registry-url":ru,"037-ai-provider-keys":lu,"038-oauth-pkce-states":eu,"039-automations":du,"040-replace-next-run-at-with-last-run-at":bu,"041-ai-provider-keys-unique-constraint":su,"042-rename-mesh-mcp-to-cms-mcp":_C,"043-rename-cms-mcp-to-deco-cms":xC,"044-drop-connections-tools-column":uC,"045-thread-context-start-message":CC,"046-remove-object-storage-plugin":NC,"047-add-next-run-at":TC,"048-merge-projects-agents":zC,"049-remove-org-admin-projects":EC,"050-durable-agent-runs":$C,"051-org-sso":JC,"052-thread-agent-ids":PC,"053-registry-config":QC,"054-connection-slug":ZC,"055-spaces":WC,"056-automation-project-scope":jC,"057-thread-virtual-mcp-id":LC,"058-trigger-callback-tokens":FC,"059-kv":YC,"060-member-index":DC,"061-downstream-token-connection-index":HC,"062-private-registry":MC,"063-event-subscriptions-enabled-boolean":RC,"064-brand-context":BC,"065-organization-domains":GC,"066-brand-context-structured":OC,"067-threads-metadata":SC,"068-threads-branch":fC,"069-sandbox-runner-state":AC,"070-model-categories":IC,"071-default-home-agents":yC,"072-ai-provider-key-preset-id":VC,"073-backfill-basic-usage-roles":wC,"074-sandbox-runner-state-handle-nonunique":kC,"075-thread-inflight-async-jobs":nC,"076-automations-drop-agent-json":vC,"077-tier-only-model-selection":gC,"078-automation-tool-call-kind":qC,"079-strip-legacy-freestyle-vm-map-entries":iC,"080-async-research-jobs":cC,"081-async-research-jobs-result-content":hC,"082-secrets":tC,"083-thread-run-locally":oC,"084-drop-host-sandbox-rows":aC,"085-rename-runner-kind":rC,"086-thread-pins-and-vm-map-rekey":lC,"087-fix-vm-map-rekey":eC,"088-purge-cli-activate-keys":dC,"089-rename-remote-user-to-desktop":bC,"090-automation-webhook-triggers":sC,"091-organization-domains-allow-multi":_K,"092-sandbox-naming-uniformization":xK,"093-backfill-global-search-basic-usage":uK,"094-org-file-configs":KK,"095-remove-automation-tool-call-kind":NK,"096-org-file-configs-public-url-base":TK,"097-drop-local-docker-sandbox-state":zK,"098-thread-message-parts":EK,"099-run-fence":$K,"100-link-transport":UK,"101-cancel-requested-at":JK,"102-observational-agent":PK,"103-revert-observational-agent":QK,"104-agent-sandbox-provider-kind":ZK,"105-org-fs":WK,"106-automation-tools":jK,"107-org-fs-public-org":LK,"108-automation-max-agent-steps":FK,"109-thread-message-parts-per-message-seq":YK,"110-backfill-ghs-token-expiry":DK,"111-org-fs-thread-id":HK,"112-org-file-configs-credential-type":MK,"113-thread-failure-reason":RK,"114-run-acked-seq":BK,"115-thread-projected-seq":GK,"116-org-sites":OK,"117-org-file-configs-site-slug":SK,"118-organization-domains-multi-verify":fK,"119-organization-join-requests":AK,"120-org-fs-read-public":IK,"121-org-fs-share-password":yK,"122-split-web-research-tier":kK,"123-connection-credential-vault":nK,"124-drop-thread-projected-seq":vK,"125-github-child-single-parent":pK,"126-task-board":qK,"127-task-board-due-date":iK,"128-reports-only":cK,"129-task-board-assigned-by":hK,"130-task-board-thread-id":tK,"131-task-board-thread-link-cascade":oK,"132-task-board-item-prs":aK,"133-dedupe-duplicate-members":rK,"134-drop-task-board-enabled":lK,"135-task-board-item-fk-cascade":eK,"136-task-board-import-idempotency":dK,"137-agent-sandbox-runner-state":bK,"138-agent-sandbox-sessions":sK,"139-organization-billing":_N,"140-seat-change-log":xN,"141-benefits-sync-pending":uN,"142-stripe-event-watermark":CN,"143-armed-report-url":KN,"144-benefits-pending-index":NN,"145-user-model-preferences":TN,"146-organization-main-agent":mN,"147-drop-agent-sandbox-tables":zN,"148-org-flags":EN,"149-task-board-item-sort-order":$N,"150-task-board-activity":UN,"151-task-board-tags":PN,"152-repair-connection-slug":XN,"153-task-board-latest-assistant-part-index":ZN,"154-task-board-qa-activity":jN,"155-task-board-review-claims":LN,"156-task-board-conflict-activity":YN,"157-drop-seat-billing":DN,"158-drop-github-child-single-parent":HN,"159-task-board-comments":MN,"160-task-quota-billing":RN,"161-task-quota-claim-state":GN,"162-claude-subscriptions":ON,"163-task-board-item-dismissed":SN,"164-per-org-task-quota":fN,"165-task-board-pending-review-index":AN,"166-task-board-last-swept-at":IN,"167-task-board-run-retry":yN,"168-org-repo-sync":wN,"169-task-board-merge-failed-activity":nN,"170-task-board-item-repo":vN,"171-jira-integration":pN,"172-task-board-item-key-seq":gN,"173-thread-github-repo-connection-index":qN,"174-thread-message-parts-persisted-at":cN,"175-task-board-sprints":hN,"176-task-board-done-sweep-index":tN,"177-notifications":oN,"178-jira-status-mapping-array":aN,"179-notification-mentioned":lN,"180-task-board-item-type":dN,"181-task-board-item-type-required":bN,"182-task-board-sprints-entities":sN,"183-drop-jira-jql-filter":_T,"184-jira-rescan-after-scope-change":xT,"185-jira-rescan-existing-cards":uT,"186-jira-rescan-pending-flag":KT,"187-task-board-comment-thread":NT,"188-invitation-auto-accept":TT,"189-task-board-column-automations":zT,"190-task-board-review-cycle-started-at":ET,"191-task-board-columns":$T,"192-task-board-verdict-nudge-activity":JT,"193-task-board-status-column-fk":PT,"194-jira-link-sprint":QT,"195-task-board-sprint-activity":ZT,"196-task-board-column-tracker-statuses":WT,"197-task-board-prompts":jT,"198-task-board-external-url":LT,"199-drop-jira-mirror-and-org-columns":FT,"200-jira-run-trigger":YT,"201-organization-notices":DT,"202-redact-base64-thread-parts":MT,"203-task-board-preview-routes":RT,"204-git-provider-accounts-and-repositories":BT,"205-repository-references":GT,"206-repository-consumers":$u,"207-task-board-prs-repo-idx":Eu,"208-github-connect-flows":zu,"209-github-installation-authorization":mu,"210-github-repository-authorization":sx,"211-user-fs-org":bx,"212-coding-agent-mcp-excluded":_u,"213-bitbucket-git-provider":xu,"214-connections-sanitized-id-idx":rx,"215-commerce-discovery-repository":lx,"216-github-cli-auth":dx,"217-experiments":uu,"218-thread-message-parts-error-idx":Cu,"219-task-board-duplicate-reported-activity":Nu,"220-jira-automation-continue-pr":Tu,"221-remove-private-registry":$x,"222-org-git-credentials":Ux,"223-drop-org-main-agent-id":ax,"224-repository-sandbox-image":Jx,"225-thread-analytics-indexes":Qx,"226-deco-score-names":Zx,"227-task-board-finding-resolved-activity":jx,"228-org-voice-config":Ex,"229-jira-automation-from":Lx,"230-project-sidebar":Fx,"231-jira-chat-agent":Yx,"232-task-board-prompt-skills":Hx,"233-remove-jira-chat-agent":Rx,"234-task-board-comment-audience":Bx,"235-prune-empty-thread-dirs":Gx,"236-task-board-sprints":Sx,"237-org-sites-project-link":fx,"238-task-board-default-lanes":Ax,"239-task-board-retire-old-lanes":Ix,"240-task-board-restore-todo":yx,"241-automation-board-column-transition":Vx,"242-connection-url-slug":wx,"243-experiment-task-board-item":kx,"244-connection-url-slug-rollout-backfill":nx,"245-automation-system-key":vx,"246-automation-pr-ready-trigger":px,"247-automation-jira-transition":gx,"248-drop-retired-rule-tables":qx,"249-task-board-item-project":ix,"250-github-copilot-subscriptions":cx,"251-org-shared-plans":hx,"252-automation-linked-chat-trigger":tx,"253-automation-pr-builtin-triggers":ox},Kx=HW;import{getMigrations as u9}from"better-auth/db";import{sso as C9}from"@better-auth/sso";import{organization as K9}from"@decocms/better-auth/plugins";import{admin as N9,apiKey as T9,jwt as m9,magicLink as z9,mcp as E9,openAPI as $9}from"better-auth/plugins";import{emailOTP as U9}from"better-auth/plugins/email-otp";import{Kysely as rW,PostgresDialect as Wz}from"kysely";import{Pool as jz}from"pg";import{homedir as MW}from"os";var RW=new Set(["all","worker","api"]);function BW(_){let x=(_??"").trim();return RW.has(x)?x:"all"}var GW=new Set(["production","development","test"]);function OW(_){let x=(_??"").trim();return GW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function ST(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return ST(_,x,N)??u}function SW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),T=K>0?N.slice(0,K).trim():"",m=K>0?N.slice(K+1).trim():"";if(!T||!m){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=m}return x}function fW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function OT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function AW(_){return _===void 0||_===""||_==="true"||_==="1"}function D_(_,x){return _||x}function zz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${MW()}/deco`,u=OW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:D_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:D_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((T)=>T.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((T)=>T.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:ST("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((T)=>T.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:SW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:fW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:OT(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:OT(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:AW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:ST("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:BW(D_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:OT(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:D_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:D_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var IW=null;function K_(){return IW??=Object.freeze(zz(process.env))}import{createContextKey as vW,metrics as pW,propagation as J8,ROOT_CONTEXT as P8,SpanStatusCode as Q8,trace as gW}from"@opentelemetry/api";import{logs as qW,SeverityNumber as fT}from"@opentelemetry/api-logs";import{OTLPLogExporter as W8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as iW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as F8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as D8}from"@opentelemetry/instrumentation-runtime-node";import{context as T5,propagation as m5,SpanKind as z5,SpanStatusCode as E5}from"@opentelemetry/api";var U5=globalThis.fetch;import{ExportResultCode as H5}from"@opentelemetry/core";import{ExportResultCode as Nx}from"@opentelemetry/core";import{mkdir as yW,rename as VW,writeFile as wW}from"fs/promises";import{join as Tx}from"path";class mx{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:Nx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Nx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Nx.FAILED}});return Promise.resolve({code:Nx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let T=x.get(K.partition);if(!T)T=[],x.set(K.partition,T);T.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,T])=>this.writeNDJSON(T,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let m of u)if(m.status==="fulfilled")K.add(m.value);let T=_.filter((m)=>!K.has(m.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Tx(this.basePath,x,...N):Tx(this.basePath,...N);if(!this.knownDirs.has(K))await yW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let T=`${crypto.randomUUID()}.ndjson`,m=Tx(K,`.${T}.tmp`),z=Tx(K,T),E=_.join(`
|
|
2382
|
+
`.execute(_)}var BW={"001-initial-schema":Uu,"002-organization-settings":Ju,"003-connection-schema-align":Qu,"004-remove-models-binding":Xu,"005-connection-configuration":Zu,"006-add-views-to-settings":Wu,"007-monitoring-logs":ju,"008-event-bus":Lu,"009-drop-audit-logs":Fu,"010-gateways":Yu,"011-gateway-icon":Du,"012-gateway-tool-selection-mode":Hu,"013-monitoring-user-agent-gateway":Mu,"014-gateway-resources-prompts":Ru,"015-monitoring-properties":Bu,"016-downstream-token-client-info":Gu,"017-downstream-token-remove-userid":Ou,"018-drop-gateway-tool-selection-strategy":Su,"019-remove-gateway-is-default":fu,"020-enabled-plugins":Au,"021-threads":Iu,"022-rename-gateway-to-virtual-mcp":yu,"023-optimize-thread-indexes":Vu,"024-consolidate-virtual-mcp":wu,"025-add-monitoring-virtual-mcp-id":ku,"026-restrict-child-connection-delete":nu,"027-update-management-mcp-url":pu,"028-update-management-mcp-to-self":qu,"029-add-updated-by-to-connections":iu,"030-member-tags":cu,"031-add-dependency-mode":hu,"032-projects":tu,"033-thread-status":ou,"034-monitoring-dashboards":au,"035-project-connections":ru,"036-update-registry-url":lu,"037-ai-provider-keys":eu,"038-oauth-pkce-states":du,"039-automations":su,"040-replace-next-run-at-with-last-run-at":bu,"041-ai-provider-keys-unique-constraint":_C,"042-rename-mesh-mcp-to-cms-mcp":xC,"043-rename-cms-mcp-to-deco-cms":uC,"044-drop-connections-tools-column":CC,"045-thread-context-start-message":KC,"046-remove-object-storage-plugin":mC,"047-add-next-run-at":TC,"048-merge-projects-agents":EC,"049-remove-org-admin-projects":$C,"050-durable-agent-runs":PC,"051-org-sso":JC,"052-thread-agent-ids":QC,"053-registry-config":XC,"054-connection-slug":WC,"055-spaces":jC,"056-automation-project-scope":LC,"057-thread-virtual-mcp-id":FC,"058-trigger-callback-tokens":YC,"059-kv":DC,"060-member-index":HC,"061-downstream-token-connection-index":MC,"062-private-registry":RC,"063-event-subscriptions-enabled-boolean":BC,"064-brand-context":GC,"065-organization-domains":OC,"066-brand-context-structured":SC,"067-threads-metadata":fC,"068-threads-branch":AC,"069-sandbox-runner-state":IC,"070-model-categories":yC,"071-default-home-agents":VC,"072-ai-provider-key-preset-id":wC,"073-backfill-basic-usage-roles":kC,"074-sandbox-runner-state-handle-nonunique":nC,"075-thread-inflight-async-jobs":vC,"076-automations-drop-agent-json":pC,"077-tier-only-model-selection":qC,"078-automation-tool-call-kind":iC,"079-strip-legacy-freestyle-vm-map-entries":cC,"080-async-research-jobs":hC,"081-async-research-jobs-result-content":tC,"082-secrets":oC,"083-thread-run-locally":aC,"084-drop-host-sandbox-rows":rC,"085-rename-runner-kind":lC,"086-thread-pins-and-vm-map-rekey":eC,"087-fix-vm-map-rekey":dC,"088-purge-cli-activate-keys":sC,"089-rename-remote-user-to-desktop":bC,"090-automation-webhook-triggers":_K,"091-organization-domains-allow-multi":xK,"092-sandbox-naming-uniformization":uK,"093-backfill-global-search-basic-usage":CK,"094-org-file-configs":NK,"095-remove-automation-tool-call-kind":mK,"096-org-file-configs-public-url-base":TK,"097-drop-local-docker-sandbox-state":EK,"098-thread-message-parts":$K,"099-run-fence":PK,"100-link-transport":UK,"101-cancel-requested-at":JK,"102-observational-agent":QK,"103-revert-observational-agent":XK,"104-agent-sandbox-provider-kind":WK,"105-org-fs":jK,"106-automation-tools":LK,"107-org-fs-public-org":FK,"108-automation-max-agent-steps":YK,"109-thread-message-parts-per-message-seq":DK,"110-backfill-ghs-token-expiry":HK,"111-org-fs-thread-id":MK,"112-org-file-configs-credential-type":RK,"113-thread-failure-reason":BK,"114-run-acked-seq":GK,"115-thread-projected-seq":OK,"116-org-sites":SK,"117-org-file-configs-site-slug":fK,"118-organization-domains-multi-verify":AK,"119-organization-join-requests":IK,"120-org-fs-read-public":yK,"121-org-fs-share-password":VK,"122-split-web-research-tier":nK,"123-connection-credential-vault":vK,"124-drop-thread-projected-seq":pK,"125-github-child-single-parent":gK,"126-task-board":iK,"127-task-board-due-date":cK,"128-reports-only":hK,"129-task-board-assigned-by":tK,"130-task-board-thread-id":oK,"131-task-board-thread-link-cascade":aK,"132-task-board-item-prs":rK,"133-dedupe-duplicate-members":lK,"134-drop-task-board-enabled":eK,"135-task-board-item-fk-cascade":dK,"136-task-board-import-idempotency":sK,"137-agent-sandbox-runner-state":bK,"138-agent-sandbox-sessions":_N,"139-organization-billing":xN,"140-seat-change-log":uN,"141-benefits-sync-pending":CN,"142-stripe-event-watermark":KN,"143-armed-report-url":NN,"144-benefits-pending-index":mN,"145-user-model-preferences":TN,"146-organization-main-agent":zN,"147-drop-agent-sandbox-tables":EN,"148-org-flags":$N,"149-task-board-item-sort-order":PN,"150-task-board-activity":UN,"151-task-board-tags":QN,"152-repair-connection-slug":ZN,"153-task-board-latest-assistant-part-index":WN,"154-task-board-qa-activity":LN,"155-task-board-review-claims":FN,"156-task-board-conflict-activity":DN,"157-drop-seat-billing":HN,"158-drop-github-child-single-parent":MN,"159-task-board-comments":RN,"160-task-quota-billing":BN,"161-task-quota-claim-state":ON,"162-claude-subscriptions":SN,"163-task-board-item-dismissed":fN,"164-per-org-task-quota":AN,"165-task-board-pending-review-index":IN,"166-task-board-last-swept-at":yN,"167-task-board-run-retry":VN,"168-org-repo-sync":kN,"169-task-board-merge-failed-activity":vN,"170-task-board-item-repo":pN,"171-jira-integration":gN,"172-task-board-item-key-seq":qN,"173-thread-github-repo-connection-index":iN,"174-thread-message-parts-persisted-at":hN,"175-task-board-sprints":tN,"176-task-board-done-sweep-index":oN,"177-notifications":aN,"178-jira-status-mapping-array":rN,"179-notification-mentioned":eN,"180-task-board-item-type":sN,"181-task-board-item-type-required":bN,"182-task-board-sprints-entities":_m,"183-drop-jira-jql-filter":xm,"184-jira-rescan-after-scope-change":um,"185-jira-rescan-existing-cards":Cm,"186-jira-rescan-pending-flag":Nm,"187-task-board-comment-thread":mm,"188-invitation-auto-accept":Tm,"189-task-board-column-automations":Em,"190-task-board-review-cycle-started-at":$m,"191-task-board-columns":Pm,"192-task-board-verdict-nudge-activity":Jm,"193-task-board-status-column-fk":Qm,"194-jira-link-sprint":Xm,"195-task-board-sprint-activity":Wm,"196-task-board-column-tracker-statuses":jm,"197-task-board-prompts":Lm,"198-task-board-external-url":Fm,"199-drop-jira-mirror-and-org-columns":Ym,"200-jira-run-trigger":Dm,"201-organization-notices":Hm,"202-redact-base64-thread-parts":Rm,"203-task-board-preview-routes":Bm,"204-git-provider-accounts-and-repositories":Gm,"205-repository-references":Om,"206-repository-consumers":Pu,"207-task-board-prs-repo-idx":$u,"208-github-connect-flows":Eu,"209-github-installation-authorization":zu,"210-github-repository-authorization":_u,"211-user-fs-org":bx,"212-coding-agent-mcp-excluded":xu,"213-bitbucket-git-provider":uu,"214-connections-sanitized-id-idx":lx,"215-commerce-discovery-repository":ex,"216-github-cli-auth":sx,"217-experiments":Cu,"218-thread-message-parts-error-idx":Ku,"219-task-board-duplicate-reported-activity":mu,"220-jira-automation-continue-pr":Tu,"221-remove-private-registry":Px,"222-org-git-credentials":Ux,"223-drop-org-main-agent-id":rx,"224-repository-sandbox-image":Jx,"225-thread-analytics-indexes":Xx,"226-deco-score-names":Wx,"227-task-board-finding-resolved-activity":Lx,"228-org-voice-config":$x,"229-jira-automation-from":Fx,"230-project-sidebar":Yx,"231-jira-chat-agent":Dx,"232-task-board-prompt-skills":Mx,"233-remove-jira-chat-agent":Bx,"234-task-board-comment-audience":Gx,"235-prune-empty-thread-dirs":Ox,"236-task-board-sprints":fx,"237-org-sites-project-link":Ax,"238-task-board-default-lanes":Ix,"239-task-board-retire-old-lanes":yx,"240-task-board-restore-todo":Vx,"241-automation-board-column-transition":wx,"242-connection-url-slug":kx,"243-experiment-task-board-item":nx,"244-connection-url-slug-rollout-backfill":vx,"245-automation-system-key":px,"246-automation-pr-ready-trigger":gx,"247-automation-jira-transition":qx,"248-drop-retired-rule-tables":ix,"249-task-board-item-project":cx,"250-github-copilot-subscriptions":hx,"251-org-shared-plans":tx,"252-automation-linked-chat-trigger":ox,"253-automation-pr-builtin-triggers":ax,"254-codex-subscriptions":Ex},Kx=BW;import{getMigrations as N9}from"better-auth/db";import{sso as m9}from"@better-auth/sso";import{organization as T9}from"@decocms/better-auth/plugins";import{admin as z9,apiKey as E9,jwt as $9,magicLink as P9,mcp as U9,openAPI as J9}from"better-auth/plugins";import{emailOTP as Q9}from"better-auth/plugins/email-otp";import{Kysely as dW,PostgresDialect as jz}from"kysely";import{Pool as Lz}from"pg";import{homedir as GW}from"os";var OW=new Set(["all","worker","api"]);function SW(_){let x=(_??"").trim();return OW.has(x)?x:"all"}var fW=new Set(["production","development","test"]);function AW(_){let x=(_??"").trim();return fW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function fm(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return fm(_,x,N)??u}function IW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),m=K>0?N.slice(0,K).trim():"",T=K>0?N.slice(K+1).trim():"";if(!m||!T){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[m]=T}return x}function yW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function Sm(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function VW(_){return _===void 0||_===""||_==="true"||_==="1"}function D_(_,x){return _||x}function Ez(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${GW()}/deco`,u=AW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:D_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:D_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((m)=>m.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((m)=>m.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:fm("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((m)=>m.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:IW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:yW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:Sm(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:Sm(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:VW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:fm("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:SW(D_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:Sm(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:D_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:D_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var wW=null;function K_(){return wW??=Object.freeze(Ez(process.env))}import{createContextKey as qW,metrics as iW,propagation as X8,ROOT_CONTEXT as Z8,SpanStatusCode as W8,trace as cW}from"@opentelemetry/api";import{logs as hW,SeverityNumber as Am}from"@opentelemetry/api-logs";import{OTLPLogExporter as F8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as tW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as H8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as R8}from"@opentelemetry/instrumentation-runtime-node";import{context as E5,propagation as $5,SpanKind as P5,SpanStatusCode as U5}from"@opentelemetry/api";var Q5=globalThis.fetch;import{ExportResultCode as B5}from"@opentelemetry/core";import{ExportResultCode as Nx}from"@opentelemetry/core";import{mkdir as kW,rename as nW,writeFile as vW}from"fs/promises";import{join as mx}from"path";class Tx{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:Nx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Nx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Nx.FAILED}});return Promise.resolve({code:Nx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?mx(this.basePath,x,...N):mx(this.basePath,...N);if(!this.knownDirs.has(K))await kW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=mx(K,`.${m}.tmp`),z=mx(K,m),E=_.join(`
|
|
2383
2383
|
`)+`
|
|
2384
|
-
`;await
|
|
2384
|
+
`;await vW(T,E,{mode:384}),await nW(T,z)}}import{ExportResultCode as A5}from"@opentelemetry/core";import{AggregationTemporality as y5,DataPointType as V5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as g5}from"@opentelemetry/core";var h5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as V8,LoggerProvider as w8}from"@opentelemetry/sdk-logs";import{detectResources as n8,envDetector as v8,hostDetector as p8,osDetector as g8,processDetector as q8,resourceFromAttributes as i8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as h8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as a5}from"@opentelemetry/api-logs";import{NodeSDK as a8}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as l8,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as s5}from"@opentelemetry/api";var oW="__d",aW=qW("Current request"),rW=1;var Pz=(_)=>{let u=new URL(_.url).searchParams.get(oW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Uz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(aW);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Pz(T);if(z)return{decision:N_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,m);if(E.decision===N_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:N_.NOT_RECORD}}toString(){return"DebugSampler"}}class Jz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:N_.RECORD_AND_SAMPLED};return{decision:N_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var d8=new tW({preventServerStart:!0}),s8=new Uz(new Jz(rW));var $z=cW.getTracer("studio","1.0.0"),H_=iW.getMeter("studio","1.0.0"),lW=hW.getLogger("studio","1.0.0"),Im=(_,x,u)=>{let N={},K=u,m=u[u.length-1];if(m!==null&&typeof m==="object"&&!Array.isArray(m)&&!(m instanceof Error)&&Object.getPrototypeOf(m)===Object.prototype)N=m,K=u.slice(0,-1);let T=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");lW.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},ym={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{Im(Am.ERROR,"ERROR",_),ym.error(..._)};console.warn=(..._)=>{Im(Am.WARN,"WARN",_),ym.warn(..._)};console.debug=(..._)=>{Im(Am.DEBUG,"DEBUG",_),ym.debug(..._)};var Vm,Qz=0,wm=500;function eW(){if(Vm)return;let _=performance.now()+wm;Vm=setInterval(()=>{let x=performance.now();Qz=Math.max(0,x-_),_=x+wm},wm),Vm.unref?.()}function Xz(){return eW(),Qz}var sW=()=>H_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Zz=()=>H_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Wz=400,bW=100,_9=(_)=>({"db.status":_.level==="error"?"error":"success"}),x9=(_)=>(x)=>{let u=_9(x);if(x.queryDurationMillis>Wz){let N=Xz(),K=N>Wz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:zx()}})}if(sW().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function u9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=zx(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Zz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>bW)if(m)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:T,total:_.totalCount,max:K});return z},(z)=>{throw Zz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Fz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Yz(){try{return K_().databasePgSsl}catch{return!1}}function zx(){try{return K_().databasePoolMax}catch{return 10}}function C9(_){let x=u9(new Lz({connectionString:_,max:zx(),ssl:Yz(),...Fz})),u=new jz({pool:x});return{type:"postgres",db:new dW({dialect:u,log:x9(x)}),pool:x}}function R_(){return K_().databaseUrl}function Dz(_){let x=_||R_();return new jz({pool:new Lz({connectionString:x,max:zx(),ssl:Yz(),...Fz})})}function K9(_){let x=_||R_();return C9(x)}async function Hz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===M_)M_=null}var M_=null;function km(){if(!M_)M_=K9(R_());return M_}async function Mz(_){let u={database:Dz(_||R_()),plugins:[T9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),z9(),E9(),$9(),J9(),U9({loginPage:"/login"}),m9(),P9({sendMagicLink:async()=>{}}),Q9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await N9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function nm(_,x){return(await o`
|
|
2385
2385
|
SELECT table_name FROM information_schema.tables
|
|
2386
2386
|
WHERE table_schema='public' AND table_name=${x}
|
|
2387
|
-
`.execute(_)).rows.length>0}async function
|
|
2387
|
+
`.execute(_)).rows.length>0}async function X9(_){if(await nm(_,"plugin_migrations"))return;await o`
|
|
2388
2388
|
CREATE TABLE plugin_migrations (
|
|
2389
2389
|
plugin_id TEXT NOT NULL,
|
|
2390
2390
|
name TEXT NOT NULL,
|
|
2391
2391
|
timestamp TEXT NOT NULL,
|
|
2392
2392
|
PRIMARY KEY (plugin_id, name)
|
|
2393
2393
|
)
|
|
2394
|
-
`.execute(_)}async function
|
|
2394
|
+
`.execute(_)}async function Z9(_){if(!await nm(_,"kysely_migration"))return;let x=await o`
|
|
2395
2395
|
SELECT name, timestamp FROM kysely_migration
|
|
2396
2396
|
WHERE name LIKE '%/%'
|
|
2397
|
-
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let K=u;if(u.includes("~plugins/"))K=u.substring(u.indexOf("~plugins/")+9);let
|
|
2397
|
+
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let K=u;if(u.includes("~plugins/"))K=u.substring(u.indexOf("~plugins/")+9);let m=K.indexOf("/");if(m===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let T=K.substring(0,m),z=K.substring(m+1);try{await o`
|
|
2398
2398
|
INSERT INTO plugin_migrations (plugin_id, name, timestamp)
|
|
2399
|
-
VALUES (${
|
|
2399
|
+
VALUES (${T}, ${z}, ${N})
|
|
2400
2400
|
`.execute(_)}catch{let E=await o`
|
|
2401
2401
|
SELECT COUNT(*) as cnt FROM plugin_migrations
|
|
2402
|
-
WHERE plugin_id = ${
|
|
2403
|
-
`.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${
|
|
2402
|
+
WHERE plugin_id = ${T} AND name = ${z}
|
|
2403
|
+
`.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${T}/${z}, keeping in old table`);continue}}await o`
|
|
2404
2404
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
2405
|
-
`.execute(_)}}async function
|
|
2405
|
+
`.execute(_)}}async function W9(_){if(!await nm(_,"kysely_migration"))return{};let{rows:x}=await o`
|
|
2406
2406
|
SELECT name FROM kysely_migration
|
|
2407
|
-
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Kx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function
|
|
2407
|
+
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Kx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function j9(_){await X9(_),await Z9(_);let x=new Rz({db:_,provider:{getMigrations:async()=>({...await W9(_),...Kx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((m)=>{if(m.status==="Success")K++;else if(m.status==="Error")console.error(`Failed to execute migration "${m.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function L9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Mz();let m=u??km(),T=async()=>{if(!x&&!u)await Hz(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await j9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function O3(){let _=km(),x=new Rz({db:_.db,provider:{getMigrations:()=>Promise.resolve(Kx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await L9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{j9 as runKyselyMigrations,L9 as migrateToLatest,O3 as migrateDown};
|