decocms 4.373.1 → 4.373.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-2L7lI8NL.js → AlertCircle-D0XfIdP3.js} +1 -1
- package/dist/client/assets/{AreaChart-BSJ08P7a.js → AreaChart-BahcMnDC.js} +1 -1
- package/dist/client/assets/{ArrowLeft-8rouBEwC.js → ArrowLeft-COesgQ7q.js} +1 -1
- package/dist/client/assets/{ArrowRight-DCA5zjxW.js → ArrowRight-CnMpegh6.js} +1 -1
- package/dist/client/assets/{ArrowUp-BtksDHBQ.js → ArrowUp-17ZWJBkC.js} +1 -1
- package/dist/client/assets/{CartesianChart-BbOaLmfq.js → CartesianChart-DqSaDs52.js} +1 -1
- package/dist/client/assets/{CheckCircle-BmVuh1xp.js → CheckCircle-GwUJIVVh.js} +1 -1
- package/dist/client/assets/{ChevronUp-fg9sod-H.js → ChevronUp-CodzCI7T.js} +1 -1
- package/dist/client/assets/{Copy01-BgwuTJFm.js → Copy01-CrFZhFXo.js} +1 -1
- package/dist/client/assets/{CreditCard01-CIt471eG.js → CreditCard01-DDojC3kk.js} +1 -1
- package/dist/client/assets/{DotsVertical-CE2o6L6N.js → DotsVertical-DMzYFBsd.js} +1 -1
- package/dist/client/assets/{Download01-DNhEQzg0.js → Download01-B93GUT2-.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-DxNax47N.js → ErrorBarContext-BUk8y7Bj.js} +1 -1
- package/dist/client/assets/{Eye-Dq6Vw6FI.js → Eye-Bxxku7SE.js} +1 -1
- package/dist/client/assets/{Globe01-g_y8gAs1.js → Globe01-DjdW3vEO.js} +1 -1
- package/dist/client/assets/{Globe04-GFiRExL0.js → Globe04-1G-_QSZW.js} +1 -1
- package/dist/client/assets/{Image01-QB6twEDu.js → Image01-DPvj49a-.js} +1 -1
- package/dist/client/assets/{Key01-CO_i2QPb.js → Key01-O_Ykzy8v.js} +1 -1
- package/dist/client/assets/{LayoutLeft-BfySK4h8.js → LayoutLeft-Cr5_A1QG.js} +1 -1
- package/dist/client/assets/{Line-Cr57fOtp.js → Line-aFR7lShe.js} +1 -1
- package/dist/client/assets/{Link01-BIFMl_M0.js → Link01-D8T6mRIR.js} +1 -1
- package/dist/client/assets/{LinkExternal01-DQD59o7F.js → LinkExternal01-CWPNoGQ_.js} +1 -1
- package/dist/client/assets/{Monitor01-Ddm2yOG6.js → Monitor01-CQaKbr3c.js} +1 -1
- package/dist/client/assets/{Package-CvzEol5_.js → Package-Cd3aVeK8.js} +1 -1
- package/dist/client/assets/{Palette-DT856bn6.js → Palette-HRmzWYeK.js} +1 -1
- package/dist/client/assets/{Play-wYDcJhBq.js → Play-CaxaoMwA.js} +1 -1
- package/dist/client/assets/{Plus-BSp00qOC.js → Plus-BjOenFFb.js} +1 -1
- package/dist/client/assets/{SearchLg-DFD1t2UL.js → SearchLg-CT-Vntfj.js} +1 -1
- package/dist/client/assets/{SearchMd-Bb5gjLcX.js → SearchMd-C6gkQ2l2.js} +1 -1
- package/dist/client/assets/{Sector-wViCnB96.js → Sector-B-fHBulW.js} +1 -1
- package/dist/client/assets/{Settings02-D9Qv7BDm.js → Settings02-DH86cX_B.js} +1 -1
- package/dist/client/assets/{Share07-CZ7JzYs9.js → Share07-Bw4Wicv2.js} +1 -1
- package/dist/client/assets/{Stars01-D-wYuyik.js → Stars01-B1kYoDFp.js} +1 -1
- package/dist/client/assets/{Sun-DLRcOzSd.js → Sun-kycCorOO.js} +1 -1
- package/dist/client/assets/{Tool01-Dwy1nlT9.js → Tool01-iak9ZtFE.js} +1 -1
- package/dist/client/assets/{Tool02-CvlAGFBM.js → Tool02-CFu103hl.js} +1 -1
- package/dist/client/assets/{Trash01-DtE0n00a.js → Trash01-CpN6r-a0.js} +1 -1
- package/dist/client/assets/{TrendUp01-BCriuXJd.js → TrendUp01-DlYmFZ7k.js} +1 -1
- package/dist/client/assets/{Upload01-Ba-RLxE1.js → Upload01-DkDsqCWe.js} +1 -1
- package/dist/client/assets/{User01-DHd46PZp.js → User01-CmNzW4kH.js} +1 -1
- package/dist/client/assets/{UserSquare-CcF49LHs.js → UserSquare-1_FC93GE.js} +1 -1
- package/dist/client/assets/{Users01-B8gdz27Y.js → Users01-CVhfgklM.js} +1 -1
- package/dist/client/assets/{X-BtMi8Qau.js → X-DTaqHNcB.js} +1 -1
- package/dist/client/assets/{XCircle-BLCHBIhx.js → XCircle-BR8ZZHlj.js} +1 -1
- package/dist/client/assets/{XClose-CvcHLHe2.js → XClose-VLid_ZSM.js} +1 -1
- package/dist/client/assets/{Zap-DZAIluO6.js → Zap-D3d1wpzw.js} +1 -1
- package/dist/client/assets/{ZoomOut-DUFJq3-K.js → ZoomOut-B3S7N50e.js} +1 -1
- package/dist/client/assets/{access-gate-C9Dl5e5c.js → access-gate-DAO7tJ5A.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-DA05asFs.js → add-connection-dialog-CaHZ3eeK.js} +1 -1
- package/dist/client/assets/{agent-analytics-CDo5Hugr.js → agent-analytics-CzbWclRj.js} +1 -1
- package/dist/client/assets/agent-app-DqzssWfL.js +1 -0
- package/dist/client/assets/{agent-assets-6UK-ev9d.js → agent-assets-Dfpjbzyj.js} +1 -1
- package/dist/client/assets/{agent-automation-BC-cMvrG.js → agent-automation-C8r5_lAR.js} +1 -1
- package/dist/client/assets/{agent-automations-CnHTcvU7.js → agent-automations-BSaV8k3Y.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-CJ8artss.js → agent-connect-sources-AkHuiIU0.js} +1 -1
- package/dist/client/assets/agent-deck-BQOqb5JA.js +1 -0
- package/dist/client/assets/{agent-e2e-Cj1Q_JS0.js → agent-e2e-CjCqLXH1.js} +1 -1
- package/dist/client/assets/{agent-experiments-DJ13yAp9.js → agent-experiments-4inK9Pvj.js} +1 -1
- package/dist/client/assets/agent-file-CN4CJx4b.js +1 -0
- package/dist/client/assets/{agent-git-B8LMQ2zl.js → agent-git-BZmL1C91.js} +1 -1
- package/dist/client/assets/{agent-hosting-Bm-WxahY.js → agent-hosting-CP9gImki.js} +1 -1
- package/dist/client/assets/{agent-icon-CTsmTxHg.js → agent-icon-D5Ih-I28.js} +1 -1
- package/dist/client/assets/agent-library-file-CMtJlgeS.js +1 -0
- package/dist/client/assets/{agent-monitor-DgVt0zbx.js → agent-monitor-D7bE1AUL.js} +1 -1
- package/dist/client/assets/{agent-overview-pOglhwpN.js → agent-overview-C5zU0xJO.js} +1 -1
- package/dist/client/assets/agent-settings-G7qQl7Yj.js +1 -0
- package/dist/client/assets/{agent-site-editor-DVT-M9T0.js → agent-site-editor-BRzwUORk.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-BV4iQvoi.js +2 -0
- package/dist/client/assets/{agent-site-editor-content-eM0WchN0.js → agent-site-editor-content-Da0JfE-w.js} +2 -2
- package/dist/client/assets/{agent-site-editor-preview-3VO_kTqr.js → agent-site-editor-preview-DqMQfEJz.js} +3 -3
- package/dist/client/assets/agent-view-BinIwia6.js +1 -0
- package/dist/client/assets/{agent-view-guard-BNYKK-x9.js → agent-view-guard-CmXIeKCe.js} +1 -1
- package/dist/client/assets/{agents-list-BXPjUzIN.js → agents-list-wHHXJTl8.js} +1 -1
- package/dist/client/assets/{ai-providers-BAmCFPvS.js → ai-providers-COexxMGY.js} +1 -1
- package/dist/client/assets/{alert-C8o4-kn8.js → alert-C_EPjsLF.js} +1 -1
- package/dist/client/assets/{alert-dialog-9n2p5SCQ.js → alert-dialog-D6rlFoy0.js} +1 -1
- package/dist/client/assets/api-keys-CN-jy2XH.js +1 -0
- package/dist/client/assets/{api-keys-Cu1KdEtK.js → api-keys-o45lgGkw.js} +1 -1
- package/dist/client/assets/app-editor-BPKOcfIg.js +1 -0
- package/dist/client/assets/{asset-utils-CK3Em4fb.js → asset-utils-BG24FUsq.js} +1 -1
- package/dist/client/assets/{auth-BBW3DF0r.js → auth-B_QE3yd2.js} +1 -1
- package/dist/client/assets/{auth-catchall-Bva2z4Gj.js → auth-catchall-BM8U6OhG.js} +1 -1
- package/dist/client/assets/{auth-entry-BuHqwUIr.js → auth-entry-CdieewWf.js} +1 -1
- package/dist/client/assets/{auth-split-layout-DMgxvbll.js → auth-split-layout-rKTEf0Lh.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-Pk9b2m8R.js → authenticate-and-persist-oauth-Cm242zr2.js} +1 -1
- package/dist/client/assets/{automation-list-row-D-zBLXA-.js → automation-list-row-DDeJYMHS.js} +1 -1
- package/dist/client/assets/{automation-runs-C8Wbje-n.js → automation-runs-BGXJk3-4.js} +1 -1
- package/dist/client/assets/{automations-D69ikqKh.js → automations-BhhOtnrs.js} +1 -1
- package/dist/client/assets/{autosend-CVNOmzPu.js → autosend-DtYV6o0l.js} +1 -1
- package/dist/client/assets/{avatar-BzRNaDEk.js → avatar-Dwn9Bjsb.js} +1 -1
- package/dist/client/assets/{badge-C5M6nZd4.js → badge-BSirYRuD.js} +1 -1
- package/dist/client/assets/{block-document-UPtnFOJG.js → block-document-DjxI0Nln.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-DAFMxzU6.js → blocks-preview-workspace-context-BwjlsTrq.js} +1 -1
- package/dist/client/assets/{breadcrumb-0yy48vm9.js → breadcrumb-BpbnoaV3.js} +1 -1
- package/dist/client/assets/{buckets-CktpbsrB.js → buckets-DdptE4Pj.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-C-SX02eL.js → build-improve-prompt-doc-CIkgt5Ml.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-MrIv4eD2.js → bulk-category-panel-BUvAK76e.js} +1 -1
- package/dist/client/assets/{calendar-QcX36iLy.js → calendar-Bhg3W8Dv.js} +1 -1
- package/dist/client/assets/{capability-load-error-BVb3VEU2.js → capability-load-error-l-yxDu1W.js} +1 -1
- package/dist/client/assets/category-editor-Crlp5xLx.js +1 -0
- package/dist/client/assets/{chart-BVjaATZw.js → chart-B7hxFGKr.js} +1 -1
- package/dist/client/assets/{chat-context-ELO8A2Ar.js → chat-context-CVZ1rNGo.js} +1 -1
- package/dist/client/assets/{chat-draft-tDfZTlxU.js → chat-draft-UIE-uNFd.js} +1 -1
- package/dist/client/assets/{checkbox-iGlb02v9.js → checkbox-VSstjUSb.js} +1 -1
- package/dist/client/assets/{choose-editor-CWLAiGtz.js → choose-editor-DD3-fBUp.js} +1 -1
- package/dist/client/assets/{cli-auth-success-DyNW_Pmq.js → cli-auth-success-LIJhoLzG.js} +1 -1
- package/dist/client/assets/{client-icons-BuRYGGKe.js → client-icons-D8SzN11F.js} +1 -1
- package/dist/client/assets/{collapsible-PyJ2NOzW.js → collapsible-BX137q_-.js} +1 -1
- package/dist/client/assets/{collection-detail-DXmBNKMr.js → collection-detail-Brbyx-hM.js} +1 -1
- package/dist/client/assets/{collection-display-button-Cz5AkuIg.js → collection-display-button-LAyYKy93.js} +1 -1
- package/dist/client/assets/{collection-search-DM8MkJfo.js → collection-search-Dvf73igt.js} +1 -1
- package/dist/client/assets/collection-table-wrapper-_ZnQA9Nx.js +1 -0
- package/dist/client/assets/{collection-tabs-aKKPIP9M.js → collection-tabs-BW0egx-_.js} +1 -1
- package/dist/client/assets/{combobox-CQBdlQef.js → combobox-D6GclaQ-.js} +1 -1
- package/dist/client/assets/{command-CZcxzTcw.js → command-Dsz0XoYc.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-B7qgbnOZ.js → companion-mcps-section-D7ntAaGF.js} +1 -1
- package/dist/client/assets/{connect-D6Wz7x6C.js → connect-ChX83wmI.js} +1 -1
- package/dist/client/assets/{connect-layout-DzSDvFP2.js → connect-layout-SP9zSVi3.js} +1 -1
- package/dist/client/assets/{connection-DStV2sLP.js → connection-2MR1zroe.js} +1 -1
- package/dist/client/assets/{connection-card-CpIJKLp3.js → connection-card-B5yTdNvS.js} +1 -1
- package/dist/client/assets/{connection-detail-junbbrHX.js → connection-detail-DKOxQWbq.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-DM_wSOEJ.js → connection-form-helpers-PrMbwr2L.js} +1 -1
- package/dist/client/assets/{connections-DvjnCZJT.js → connections-lQVX-uGO.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-CvXOAbwA.js → create-organization-dialog-Ccojws8S.js} +1 -1
- package/dist/client/assets/{decofile-api-zRlIvvNL.js → decofile-api-DygXY02K.js} +1 -1
- package/dist/client/assets/{decopilot-BI8eOOPY.js → decopilot-rj_BJ_Z1.js} +1 -1
- package/dist/client/assets/{dialog-AoC07APJ.js → dialog-BKhaq-Xf.js} +1 -1
- package/dist/client/assets/{discover-zo2iAYFW.js → discover-C_imFiZx.js} +1 -1
- package/dist/client/assets/{domain-settings-C6kSznIr.js → domain-settings-CUKpZjNV.js} +1 -1
- package/dist/client/assets/{download-app-dialog-CsiIuf7j.js → download-app-dialog-wNu8nmu1.js} +1 -1
- package/dist/client/assets/{drawer-DGzquxJ8.js → drawer-CCmZWflK.js} +1 -1
- package/dist/client/assets/{editor-oL1B7LVJ.js → editor-DMij_Pa1.js} +1 -1
- package/dist/client/assets/{empty-state-DxJQDjCw.js → empty-state-BDpfsfUL.js} +1 -1
- package/dist/client/assets/{empty-state-Y08kvU5o.js → empty-state-DiRnF-wA.js} +1 -1
- package/dist/client/assets/{extract-connection-data-C7Wh9xkI.js → extract-connection-data-Bdk8iF2q.js} +1 -1
- package/dist/client/assets/{feature-gate-C1d068b1.js → feature-gate-KPNWzkBp.js} +1 -1
- package/dist/client/assets/{feature-paywall-BoABVlUQ.js → feature-paywall-B3_no1lb.js} +1 -1
- package/dist/client/assets/{file-explorer-DG5Gvb-w.js → file-explorer-oIhs2jyB.js} +1 -1
- package/dist/client/assets/{file-preview-iaqpqUYi.js → file-preview-BFDgPeRr.js} +1 -1
- package/dist/client/assets/{file-share-button-D0lT5ixf.js → file-share-button-7xy_ju8b.js} +1 -1
- package/dist/client/assets/{file-type-icon-lZW2ows7.js → file-type-icon-Co9lETmZ.js} +1 -1
- package/dist/client/assets/{folder-icon-DVG7PK8X.js → folder-icon-CPH1Bszw.js} +1 -1
- package/dist/client/assets/{form-CYsJTpNM.js → form-CxKBX2E3.js} +1 -1
- package/dist/client/assets/{gateway-client-CnYYocwu.js → gateway-client-B8HHtBA6.js} +1 -1
- package/dist/client/assets/{general-BiYLEv2o.js → general-BXQ_6idC.js} +1 -1
- package/dist/client/assets/{github-icon-swNUSpAU.js → github-icon-DSeg1rga.js} +1 -1
- package/dist/client/assets/{home-BbjS-573.js → home-FAOklPf6.js} +1 -1
- package/dist/client/assets/{hooks-D0dDgrIf.js → hooks-BFlZlUD7.js} +1 -1
- package/dist/client/assets/{hooks-BlE0QZwR.js → hooks-CFjlhRX0.js} +1 -1
- package/dist/client/assets/{icon-button-7c--Wy5B.js → icon-button-_3vMPXZp.js} +1 -1
- package/dist/client/assets/{index-DItj2r3e.js → index-B3clFfYi.js} +1 -1
- package/dist/client/assets/{index-DyCAAYSx.js → index-BcfYNZk_.js} +1 -1
- package/dist/client/assets/{index-C97O3ClY.js → index-BrLZxE6-.js} +1 -1
- package/dist/client/assets/{index-0-s9o3tr.js → index-BwwpOrcS.js} +1 -1
- package/dist/client/assets/{index-EcuFIS2a.js → index-CC7J7MsT.js} +2 -2
- package/dist/client/assets/{index-CutV0Ygc.js → index-CV2G6XgT.js} +1 -1
- package/dist/client/assets/{index-BUfoj27y.js → index-Ci8CqfCi.js} +1 -1
- package/dist/client/assets/{index-DKXWNSdB.js → index-Coo4IGyG.js} +1 -1
- package/dist/client/assets/{index-BDYXeKzz.js → index-CxsDd08k.js} +1 -1
- package/dist/client/assets/{index-Exw_Yjch.js → index-D2HOssRq.js} +1 -1
- package/dist/client/assets/{index-DllcfiZL.js → index-DZmKVVGY.js} +1 -1
- package/dist/client/assets/{index-DGY2nhhI.js → index-DoCuIH7r.js} +1 -1
- package/dist/client/assets/{index-fN6RkMSD.js → index-WfTG300W.js} +1 -1
- package/dist/client/assets/{index-redirect-Bm4zqVUy.js → index-redirect-BV59ZcWQ.js} +1 -1
- package/dist/client/assets/{index-BchRuDAc.js → index-zFkCX32V.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-3RxH1tr-.js → infiniteQueryObserver-CKT-6XMq.js} +1 -1
- package/dist/client/assets/{infra-billing-CmY2herT.js → infra-billing-RcXbwjta.js} +1 -1
- package/dist/client/assets/{input-Buz_7xoG.js → input-DSV_9cOM.js} +1 -1
- package/dist/client/assets/{input-C5klQNJJ.js → input-QKe7l082.js} +1 -1
- package/dist/client/assets/{input-BrPa4I3Z.js → input-X38P96BY.js} +1 -1
- package/dist/client/assets/{integration-icon-D3FHJbYu.js → integration-icon-BARnXRTY.js} +1 -1
- package/dist/client/assets/{label-BX1BwzZ4.js → label-YKssz_GS.js} +1 -1
- package/dist/client/assets/{last-preview-page-BSVfE6AT.js → last-preview-page-D5EFEwR4.js} +1 -1
- package/dist/client/assets/{layout-030aDjqi.js → layout-UcqeKFE9.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-BblX_qPq.js → legacy-agents-deep-BYo-BuCs.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-BDaODIKZ.js → legacy-main-redirect-NyVTUirL.js} +1 -1
- package/dist/client/assets/{library-CmkU9fCT.js → library-FX2TKWir.js} +1 -1
- package/dist/client/assets/{login-BpUdj6Fq.js → login-gigmbDXu.js} +1 -1
- package/dist/client/assets/{markdown-VKlC4_bJ.js → markdown-tOSThun8.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-wS7imsel.js → mcp-app-renderer-c3JU3ROq.js} +1 -1
- package/dist/client/assets/{mcp-oauth-B7YJNr4N.js → mcp-oauth-Cr_ZflCp.js} +1 -1
- package/dist/client/assets/{members-2ZkimP3H.js → members-Cd4baVfz.js} +1 -1
- package/dist/client/assets/{message-templates-DyGM313y.js → message-templates-Pr7m4Pgn.js} +1 -1
- package/dist/client/assets/{mini-report-page-CYdef8vQ.js → mini-report-page-0G8UQBMn.js} +1 -1
- package/dist/client/assets/{mock-board-Dk2mRFCa.js → mock-board-Dw3AKqte.js} +3 -3
- package/dist/client/assets/{monaco-editor-ChRh_qus.js → monaco-editor-BhkNNN8A.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-DirMMFq2.js → monitoring-stats-row-D3wuHD5K.js} +1 -1
- package/dist/client/assets/{multi-select-CYKeAXVo.js → multi-select-Bw9uE0vh.js} +1 -1
- package/dist/client/assets/{mustache-BpzqsH6c.js → mustache-BMe4E-3i.js} +1 -1
- package/dist/client/assets/{oauth-callback-CLQttSb2.js → oauth-callback-Ckn9o5ws.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-C5AqSldx.js → oauth-callback-ai-provider-B7dYzzRe.js} +1 -1
- package/dist/client/assets/{onboarding-BYeSkDcE.js → onboarding-BtLLloCy.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-hB0JGrCs.js → optimistic-project-sidebar-views-8yO8-q3h.js} +1 -1
- package/dist/client/assets/{org-file-open-context-D26BTBiX.js → org-file-open-context-k2zY7W2A.js} +1 -1
- package/dist/client/assets/{organization-choice-sm9k2ko4.js → organization-choice-oi5kPDHh.js} +1 -1
- package/dist/client/assets/{orgs-BT6gh3Sc.js → orgs-C8VfgzyW.js} +1 -1
- package/dist/client/assets/{page-seo-form-Bhk-2qvu.js → page-seo-form-D-yemID7.js} +1 -1
- package/dist/client/assets/{pair-Bh73YYpe.js → pair-CbUh0olY.js} +1 -1
- package/dist/client/assets/{plan-ladder-B-hb17ya.js → plan-ladder-DR8Snnfh.js} +1 -1
- package/dist/client/assets/{popover-Bff85VlI.js → popover-tYq49O5I.js} +1 -1
- package/dist/client/assets/{post-calendar-BUJnl75O.js → post-calendar-n3g3NXQN.js} +1 -1
- package/dist/client/assets/{post-editor-B8ClYTJb.js → post-editor-BCki1XwL.js} +1 -1
- package/dist/client/assets/{preview-content-C4FuOpTi.js → preview-content-BEe_g5h_.js} +1 -1
- package/dist/client/assets/{preview-dialog-DY1kQ4y_.js → preview-dialog-B88KWjD7.js} +1 -1
- package/dist/client/assets/{primitives-BCCkMTJb.js → primitives-DvNXO9ko.js} +1 -1
- package/dist/client/assets/{profile-T7ySaz_t.js → profile-Dn8W-1_J.js} +1 -1
- package/dist/client/assets/{project-app-view-D4HCSkue.js → project-app-view-CHIgEuQJ.js} +1 -1
- package/dist/client/assets/{project-feed-CRHprIgj.js → project-feed-BeVLcst-.js} +1 -1
- package/dist/client/assets/{project-icon-D_oHwik9.js → project-icon-BuTPt9Ec.js} +1 -1
- package/dist/client/assets/project-reports-EFWj1j4Z.js +1 -0
- package/dist/client/assets/project-tasks-DGYfz1Ev.js +1 -0
- package/dist/client/assets/{prompts-BuPAnA4R.js → prompts-BrLG0HnD.js} +1 -1
- package/dist/client/assets/record-editor-AST5wQoO.js +1 -0
- package/dist/client/assets/{redirect-editor-BrEMZWAU.js → redirect-editor-DQh1NXo4.js} +1 -1
- package/dist/client/assets/registry-FGkay0Wa.js +2 -0
- package/dist/client/assets/{registry-layout-o90YrVKa.js → registry-layout-tLc7-FpU.js} +1 -1
- package/dist/client/assets/{reports-DEVutxJq.js → reports-Bgxd82xF.js} +1 -1
- package/dist/client/assets/reports-CqtPOzss.js +1 -0
- package/dist/client/assets/{reports-onboarding-Dt5mvf07.js → reports-onboarding-BORIliYh.js} +1 -1
- package/dist/client/assets/{reports-tab-C6PZg0b6.js → reports-tab-3yvhtU-e.js} +2 -2
- package/dist/client/assets/{repositories-DBFrDUwl.js → repositories-DnQQ93Vy.js} +1 -1
- package/dist/client/assets/{repository-import-picker-ftg0FRzY.js → repository-import-picker-B1zE1wEx.js} +1 -1
- package/dist/client/assets/repository-picker-DMUsWfjy.js +1 -0
- package/dist/client/assets/{require-capability-gpVnF6U4.js → require-capability-B9l2cjC7.js} +1 -1
- package/dist/client/assets/{required-auth-layout-BhdxJMdb.js → required-auth-layout-qQ6V67AS.js} +1 -1
- package/dist/client/assets/{reset-password-DD2ixVIR.js → reset-password-CzGwWM54.js} +1 -1
- package/dist/client/assets/{resizable-wU1MiASn.js → resizable-c-JEmBrU.js} +1 -1
- package/dist/client/assets/{review-settings-3uLiRV1J.js → review-settings-CBDmCs9f.js} +1 -1
- package/dist/client/assets/{rich-text-link-control-Bn-QsIS6.js → rich-text-link-control-B4QybUls.js} +1 -1
- package/dist/client/assets/{roles-DX_ap2B0.js → roles-9Q5Zr1_l.js} +1 -1
- package/dist/client/assets/{route-Bdqr734y.js → route-Cyp-PzpR.js} +1 -1
- package/dist/client/assets/{route-DGhKwFXa.js → route-D9feMXoH.js} +1 -1
- package/dist/client/assets/{route-Cg6AOuOY.js → route-DrZOVBG5.js} +1 -1
- package/dist/client/assets/{route-page-header-DKm5kHtX.js → route-page-header-BzWw0nja.js} +1 -1
- package/dist/client/assets/{runnable-block-editor-9i5DpxOA.js → runnable-block-editor-nQ69L6jb.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-BHn9YFEW.js → sandbox-lifecycle-context-DLKr6QBG.js} +1 -1
- package/dist/client/assets/{schema-FDf70VFI.js → schema-CStbpjQf.js} +1 -1
- package/dist/client/assets/{scroll-area-DMmJ7JtI.js → scroll-area-BLDUQh9N.js} +1 -1
- package/dist/client/assets/{search-input-BHVk6m6A.js → search-input-MlNEh696.js} +1 -1
- package/dist/client/assets/{search-toggle-CCC7TvwN.js → search-toggle-SUy-5Oe0.js} +1 -1
- package/dist/client/assets/{secrets-BNtrMaDs.js → secrets-CEw0kB_t.js} +1 -1
- package/dist/client/assets/{sections-editor-HtflyYMM.js → sections-editor-l8Cc724N.js} +1 -1
- package/dist/client/assets/{select-DBfOOW9i.js → select-C_C7jdl-.js} +1 -1
- package/dist/client/assets/{select-model-2C5Fdpra.js → select-model-FW_XGeEU.js} +1 -1
- package/dist/client/assets/{seo-editor-CFULobkJ.js → seo-editor-BhZJvD6-.js} +1 -1
- package/dist/client/assets/{separator-8fswVHAH.js → separator-D-DaNCb-.js} +1 -1
- package/dist/client/assets/{settings-tab-s3d5MtS-.js → settings-tab-DhuuexRq.js} +1 -1
- package/dist/client/assets/{sheet-DWSThpSZ.js → sheet-B5ncClVO.js} +1 -1
- package/dist/client/assets/shell-layout-p-WJ7uxl.js +1 -0
- package/dist/client/assets/{sidebar-CoC2_Nad.js → sidebar-BlfpAzXY.js} +1 -1
- package/dist/client/assets/{skill-preview-QgrtYNqp.js → skill-preview-CeIBKDR2.js} +1 -1
- package/dist/client/assets/{skills-BVINvlqv.js → skills-Cpf0zAbB.js} +1 -1
- package/dist/client/assets/{sso-CSqM_F3b.js → sso-CYe8kGWS.js} +1 -1
- package/dist/client/assets/{store-DBNpNTVQ.js → store-DDl3lPqK.js} +1 -1
- package/dist/client/assets/store-registry-DUH5xq3l.js +2 -0
- package/dist/client/assets/{switch-BIfmgDHS.js → switch-C_FmZ5Us.js} +1 -1
- package/dist/client/assets/{synced-repos-CG_pm_Ch.js → synced-repos-DHbM7OOb.js} +1 -1
- package/dist/client/assets/{table-CEVOOGGz.js → table-mH2G1tkg.js} +1 -1
- package/dist/client/assets/{tabs-Dd0IWElc.js → tabs-jjUOgDeE.js} +1 -1
- package/dist/client/assets/{task-board-Dip4Wu9j.js → task-board-BtEMyO1f.js} +1 -1
- package/dist/client/assets/{task-route-SKFoAFiU.js → task-route-BaALoopn.js} +1 -1
- package/dist/client/assets/{task-status-k7EGfTLN.js → task-status-CCMsckzm.js} +1 -1
- package/dist/client/assets/{taskboard-analytics-C3lk9wb7.js → taskboard-analytics-CzQSxt8I.js} +1 -1
- package/dist/client/assets/tasks-CI20rxb_.js +1 -0
- package/dist/client/assets/{tasks-ebQIYdwz.js → tasks-K4e2STZ0.js} +1 -1
- package/dist/client/assets/{textarea-D5v3ol7T.js → textarea-B7wqTmSc.js} +1 -1
- package/dist/client/assets/{thread-button-C3YUAV-G.js → thread-button-B9U3gqvP.js} +1 -1
- package/dist/client/assets/{thread-intent-CTSjhfEo.js → thread-intent-DZx7N_NL.js} +1 -1
- package/dist/client/assets/{thread-route-B57JfaL5.js → thread-route-B3hhxYHj.js} +1 -1
- package/dist/client/assets/{thread-route-CHwqHPf_.js → thread-route-DnE31jZ2.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-Hqh1hVbj.js → thread-sheet-body-D_py0jIP.js} +1 -1
- package/dist/client/assets/{toggle-group-CwAn2mKr.js → toggle-group-C-J6fFSZ.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-ChZE-2zp.js → toolbar-icon-button-DQAUOhdv.js} +1 -1
- package/dist/client/assets/{tooltip-nr5oS_bm.js → tooltip-DSCGYdw1.js} +1 -1
- package/dist/client/assets/{track-BDYWN4z3.js → track-BWEjISsx.js} +1 -1
- package/dist/client/assets/{types-7UQ7SDxU.js → types-BQYrCHfb.js} +1 -1
- package/dist/client/assets/{usage-stats-YafP0g9G.js → usage-stats-CH100JwP.js} +1 -1
- package/dist/client/assets/{use-ai-providers-D-abiIwe.js → use-ai-providers-DPIPADTm.js} +1 -1
- package/dist/client/assets/{use-automations-D_y1YNke.js → use-automations-Cm_whz3Q.js} +1 -1
- package/dist/client/assets/{use-autosave-z8cIzzdm.js → use-autosave-C09DCahC.js} +1 -1
- package/dist/client/assets/{use-connect-companion-jQzCS0Na.js → use-connect-companion-D45RJA2C.js} +1 -1
- package/dist/client/assets/{use-connection-BKZRi94S.js → use-connection-DAR6kA6F.js} +1 -1
- package/dist/client/assets/{use-copy-Cp_DyXH6.js → use-copy-CLZ5Gmjm.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-nvoTomrD.js → use-create-virtual-mcp-DlDbTDWh.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-CNoKSvxx.js → use-date-fns-locale-4a1GuGUG.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-B0HBbqeX.js → use-debounced-autosave-s6ooboiq.js} +1 -1
- package/dist/client/assets/{use-debounced-value-BgYHDTDk.js → use-debounced-value-C7PP6GCc.js} +1 -1
- package/dist/client/assets/{use-deco-credits-CqbkXgA9.js → use-deco-credits-C78gqYYg.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-qaEKsixC.js → use-decopilot-events-DDN9tgML.js} +1 -1
- package/dist/client/assets/{use-delete-connection-CqvqqWgS.js → use-delete-connection-DT4K_5dd.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-DzkF6L4b.js → use-deployment-admin-mukdSbJI.js} +1 -1
- package/dist/client/assets/{use-entitlements-kPr6KRf9.js → use-entitlements-CsT7-WMV.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-BBBDyhsD.js → use-fast-preview-draft-url-BofBOVEy.js} +1 -1
- package/dist/client/assets/{use-file-configs-6ygOocDG.js → use-file-configs-DT6Slpub.js} +1 -1
- package/dist/client/assets/{use-in-settings-BCDqA2EC.js → use-in-settings-BuwNY17C.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-D0T36z_V.js → use-infinite-scroll-BEJH1fno.js} +1 -1
- package/dist/client/assets/{use-join-requests-BBovhUnp.js → use-join-requests-CRlXrVsN.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-BghanH6r.js → use-main-panel-tabs-CHXW72tt.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-h4sAecTI.js → use-mcp-auth-status-BUHt6LYh.js} +1 -1
- package/dist/client/assets/{use-mcp-client-B_gcvvCy.js → use-mcp-client-jmamuSRM.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-DfSKL4Gu.js → use-mcp-prompts-Cb12ACl6.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-DC47roTz.js → use-mcp-tools-U5kwqIN7.js} +1 -1
- package/dist/client/assets/{use-members-C6brpkJ1.js → use-members-CZk_logh.js} +1 -1
- package/dist/client/assets/{use-mobile-BZ15DgEB.js → use-mobile-X_9uHXB5.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-B8SXI0oO.js → use-navigate-to-agent-XZHI0vTx.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-BAg3ZeFq.js → use-open-billing-url-BygdFnSn.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-8fDIgHEZ.js → use-org-auth-client-6spdYft8.js} +1 -1
- package/dist/client/assets/{use-org-fs-Bf6n51Xm.js → use-org-fs-C4AEj3YR.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-CnBqiATM.js → use-org-repo-syncs-D5-YS2q1.js} +1 -1
- package/dist/client/assets/{use-org-sso-QeqdMaIa.js → use-org-sso-CbtWg6df.js} +1 -1
- package/dist/client/assets/{use-organization-roles-tuKknI1K.js → use-organization-roles-B2NYy6qP.js} +1 -1
- package/dist/client/assets/{use-organization-settings-DvtBymY3.js → use-organization-settings-DiOLzOn-.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-IItrbgmN.js → use-panel-navigate-YnjVvVnu.js} +1 -1
- package/dist/client/assets/{use-project-native-view-presence-WwnxvZuP.js → use-project-native-view-presence-S2GuqygD.js} +1 -1
- package/dist/client/assets/{use-project-scope-CCxyXvEU.js → use-project-scope-azWGklpf.js} +1 -1
- package/dist/client/assets/{use-registry-connections-Bd4wJHbx.js → use-registry-connections-Dr6Tl0jy.js} +1 -1
- package/dist/client/assets/{use-releases-DZvNer89.js → use-releases-sRilJRv7.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-BeTEI2FZ.js → use-reports-diagnostic-b56ze7yP.js} +1 -1
- package/dist/client/assets/{use-route-default-main-BhbKsXCz.js → use-route-default-main-DAXdKSA3.js} +1 -1
- package/dist/client/assets/{use-secrets-Bq9yyXHE.js → use-secrets-BD25jCAi.js} +1 -1
- package/dist/client/assets/{use-section-preview-base--XbKHK2U.js → use-section-preview-base-CfKeOl7s.js} +1 -1
- package/dist/client/assets/{use-session-runtime-B5wMaHtP.js → use-session-runtime-D8PgcjtK.js} +1 -1
- package/dist/client/assets/{use-tags-Do2tDPSO.js → use-tags-DMzy8m-k.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-MK_Z2cUq.js → use-task-board-analytics-BXM0SDto.js} +1 -1
- package/dist/client/assets/{use-task-metadata-CQjLXps1.js → use-task-metadata-IzJB5PVG.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-DYukUH5N.js → use-thread-outputs-BhhE_Gkc.js} +1 -1
- package/dist/client/assets/{use-view-mode-BEPkb8x0.js → use-view-mode-CUHkIbeG.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-Ji9vcgUj.js → use-virtual-mcp-Bt7oX0ej.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-zZoTJbYm.js +1 -0
- package/dist/client/assets/{useQueries-D0xhxw7a.js → useQueries-D7ondynP.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BvOl5Id0.js +1 -0
- package/dist/client/assets/{users-DzwkCv2F.js → users-CP4Dfulp.js} +1 -1
- package/dist/client/assets/{utils-y2q6u6PK.js → utils-CcX7wgow.js} +1 -1
- package/dist/client/assets/{variant-calendar-D1R9xk7D.js → variant-calendar-BYxVe-PM.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-qHzE4baz.js → variant-matcher-override-CgX58Kkx.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-Ca0bFull.js → view-mode-toggle-CRnJAx40.js} +1 -1
- package/dist/client/assets/{virtual-mcp-Dji-1ojO.js → virtual-mcp-BWl8nlWy.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +648 -648
- package/dist/server/migrate.js +170 -170
- package/dist/server/server.js +415 -415
- package/package.json +1 -1
- package/dist/client/assets/agent-app-lfl4wDqj.js +0 -1
- package/dist/client/assets/agent-deck-BCZ0G4O2.js +0 -1
- package/dist/client/assets/agent-file-DbKP1r-4.js +0 -1
- package/dist/client/assets/agent-library-file-DvybgEEZ.js +0 -1
- package/dist/client/assets/agent-settings-Bx-Ya3hQ.js +0 -1
- package/dist/client/assets/agent-site-editor-code-DpPWdLwT.js +0 -2
- package/dist/client/assets/agent-view-v-h5B6vN.js +0 -1
- package/dist/client/assets/api-keys-DCurVLgh.js +0 -1
- package/dist/client/assets/app-editor-C3QSidsO.js +0 -1
- package/dist/client/assets/category-editor-DZThBJlF.js +0 -1
- package/dist/client/assets/collection-table-wrapper-cBr_X4Jo.js +0 -1
- package/dist/client/assets/project-reports-CzVFjEoR.js +0 -1
- package/dist/client/assets/project-tasks-c_cBe8VF.js +0 -1
- package/dist/client/assets/record-editor-CHfqyrFA.js +0 -1
- package/dist/client/assets/registry-4kJYrulU.js +0 -2
- package/dist/client/assets/reports-COffkxyo.js +0 -1
- package/dist/client/assets/repository-picker-BKj90hIS.js +0 -1
- package/dist/client/assets/shell-layout-BQnbNNla.js +0 -1
- package/dist/client/assets/store-registry-DLmFNBij.js +0 -2
- package/dist/client/assets/tasks-Sl_c9zFF.js +0 -1
- package/dist/client/assets/useInfiniteQuery-CzQJkRT9.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-D9iG0Y5m.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var bN=Object.defineProperty;var _K=(_)=>_;function xK(_,x){this[_]=_K.bind(null,x)}var m=(_,x)=>{for(var u in x)bN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:xK.bind(x,u)})};import{Migrator as dN,sql as r}from"kysely";var q_={};m(q_,{up:()=>uK,down:()=>mK});import{sql as GT}from"kysely";async function uK(_){await GT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function mK(_){await GT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var g_={};m(g_,{up:()=>CK,down:()=>TK});import{sql as L}from"kysely";async function CK(_){await L`
|
|
3
3
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
4
4
|
RETURNS jsonb AS $fn$
|
|
5
5
|
BEGIN
|
|
@@ -73,7 +73,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
73
73
|
|| '/' ||
|
|
74
74
|
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
|
|
75
75
|
) = lower(p.path)
|
|
76
|
-
`.execute(_),await L`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await L`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function
|
|
76
|
+
`.execute(_),await L`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await L`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function TK(_){await L`
|
|
77
77
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
78
78
|
RETURNS jsonb AS $fn$
|
|
79
79
|
BEGIN
|
|
@@ -100,17 +100,17 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
100
100
|
)::text
|
|
101
101
|
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
102
102
|
AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
|
|
103
|
-
`.execute(_),await L`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var h_={};m(h_,{up:()=>
|
|
103
|
+
`.execute(_),await L`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var h_={};m(h_,{up:()=>NK,down:()=>KK});import{sql as c_}from"kysely";async function NK(_){await c_`ALTER TABLE git_provider_accounts
|
|
104
104
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
105
105
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
106
106
|
CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
|
|
107
107
|
ADD CONSTRAINT git_provider_accounts_cli_check
|
|
108
108
|
CHECK (auth_kind <> 'github_cli' OR
|
|
109
|
-
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function
|
|
109
|
+
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function KK(_){await c_`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await c_`ALTER TABLE git_provider_accounts
|
|
110
110
|
DROP CONSTRAINT git_provider_accounts_cli_check,
|
|
111
111
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
112
112
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
113
|
-
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var o_={};m(o_,{up:()=>
|
|
113
|
+
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var o_={};m(o_,{up:()=>EK,down:()=>zK});import{sql as yT}from"kysely";async function EK(_){await yT`
|
|
114
114
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
115
115
|
SELECT
|
|
116
116
|
'org_user_fs',
|
|
@@ -124,9 +124,9 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
124
124
|
END,
|
|
125
125
|
now()
|
|
126
126
|
ON CONFLICT (id) DO NOTHING
|
|
127
|
-
`.execute(_)}async function
|
|
127
|
+
`.execute(_)}async function zK(_){await yT`
|
|
128
128
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
129
|
-
`.execute(_)}var a_={};m(a_,{up:()=>
|
|
129
|
+
`.execute(_)}var a_={};m(a_,{up:()=>PK,down:()=>$K});async function PK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function $K(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var r_={};m(r_,{up:()=>UK,down:()=>JK});async function UK(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function JK(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var e_={};m(e_,{up:()=>jK,down:()=>QK});import{sql as e}from"kysely";var XK=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function fT(_,x){for(let{table:u,column:T}of XK){let C=`${u}_${T}_check`,N=x.map((E)=>`'${E}'`).join(", ");await e.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await e.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${T} IN (${N}))`).execute(_)}}async function jK(_){await fT(_,["github","gitlab","bitbucket"])}async function QK(_){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 fT(_,["github","gitlab"])}var l_={};m(l_,{up:()=>WK,down:()=>ZK});import{sql as $_}from"kysely";async function WK(_){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($_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo($_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo($_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($_`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 ZK(_){await _.schema.dropTable("experiments").execute()}var d_={};m(d_,{up:()=>LK,down:()=>FK});import{sql as DK}from"kysely";async function LK(_){await DK`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function FK(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var s_={};m(s_,{up:()=>RK,down:()=>YK});async function RK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function YK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var b_={};m(b_,{up:()=>MK,down:()=>nK});import{sql as HK}from"kysely";async function MK(_){await HK`
|
|
130
130
|
CREATE TABLE github_connect_flows (
|
|
131
131
|
id text PRIMARY KEY,
|
|
132
132
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -136,7 +136,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
136
136
|
);
|
|
137
137
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
138
138
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
139
|
-
`.execute(_)}async function
|
|
139
|
+
`.execute(_)}async function nK(_){await _.schema.dropTable("github_connect_flows").execute()}var _x={};m(_x,{up:()=>BK,down:()=>GK});async function BK(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function GK(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var xx={};m(xx,{up:()=>yK,down:()=>fK});import{sql as U_}from"kysely";async function yK(_){await U_`
|
|
140
140
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
141
141
|
DECLARE
|
|
142
142
|
metadata_json jsonb;
|
|
@@ -192,19 +192,19 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
192
192
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
193
193
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
194
194
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
195
|
-
`.execute(_)}async function MK(_){await U_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await U_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var xx={};m(xx,{up:()=>BK,down:()=>yK});import{sql as M}from"kysely";async function BK(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function yK(_){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 ux={};m(ux,{up:()=>GK,down:()=>fK});import{sql as fT}from"kysely";async function GK(_){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(fT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(fT`CURRENT_TIMESTAMP`)).execute()}async function fK(_){await _.schema.dropTable("organization_settings").execute()}var mx={};m(mx,{up:()=>OK,down:()=>SK});async function OK(_){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 SK(_){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 Cx={};m(Cx,{up:()=>AK,down:()=>IK});async function AK(_){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 IK(_){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 Tx={};m(Tx,{up:()=>wK,down:()=>VK});async function wK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function VK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Nx={};m(Nx,{up:()=>pK,down:()=>tK});import{sql as kK}from"kysely";async function pK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",kK`text`).execute()}async function tK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Kx={};m(Kx,{up:()=>iK,down:()=>vK});async function iK(_){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 vK(_){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 Ex={};m(Ex,{up:()=>qK,down:()=>gK});import{sql as l}from"kysely";async function qK(_){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(l`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(l`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(l`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(l`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(l`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 gK(_){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 zx={};m(zx,{up:()=>hK,down:()=>oK});import{sql as cK}from"kysely";async function hK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function oK(_){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(cK`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 Px={};m(Px,{up:()=>aK,down:()=>rK});import{sql as J_}from"kysely";async function aK(_){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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("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(J_`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 J_`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 rK(_){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 $x={};m($x,{up:()=>eK,down:()=>lK});async function eK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function lK(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Ux={};m(Ux,{up:()=>dK,down:()=>sK});import{sql as X_}from"kysely";async function dK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await X_`
|
|
195
|
+
`.execute(_)}async function fK(_){await U_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await U_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var ux={};m(ux,{up:()=>OK,down:()=>SK});import{sql as n}from"kysely";async function OK(_){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(n`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(n`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(n`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(n`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(n`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(n`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(n`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(n`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(n`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(n`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 SK(_){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 mx={};m(mx,{up:()=>AK,down:()=>IK});import{sql as OT}from"kysely";async function AK(_){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(OT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(OT`CURRENT_TIMESTAMP`)).execute()}async function IK(_){await _.schema.dropTable("organization_settings").execute()}var Cx={};m(Cx,{up:()=>wK,down:()=>VK});async function wK(_){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 VK(_){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 Tx={};m(Tx,{up:()=>kK,down:()=>pK});async function kK(_){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 pK(_){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 Nx={};m(Nx,{up:()=>tK,down:()=>iK});async function tK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function iK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Kx={};m(Kx,{up:()=>qK,down:()=>gK});import{sql as vK}from"kysely";async function qK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",vK`text`).execute()}async function gK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Ex={};m(Ex,{up:()=>cK,down:()=>hK});async function cK(_){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 hK(_){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 zx={};m(zx,{up:()=>oK,down:()=>aK});import{sql as l}from"kysely";async function oK(_){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(l`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(l`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(l`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(l`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(l`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 aK(_){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 Px={};m(Px,{up:()=>eK,down:()=>lK});import{sql as rK}from"kysely";async function eK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function lK(_){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(rK`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 $x={};m($x,{up:()=>dK,down:()=>sK});import{sql as J_}from"kysely";async function dK(_){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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("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(J_`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 J_`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 sK(_){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 Ux={};m(Ux,{up:()=>bK,down:()=>_E});async function bK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function _E(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Jx={};m(Jx,{up:()=>xE,down:()=>uE});import{sql as X_}from"kysely";async function xE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await X_`
|
|
196
196
|
UPDATE gateways
|
|
197
197
|
SET tool_selection_mode = CASE
|
|
198
198
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
199
199
|
ELSE 'inclusion'
|
|
200
200
|
END
|
|
201
|
-
`.execute(_),await X_`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
|
|
201
|
+
`.execute(_),await X_`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 uE(_){await X_`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 X_`
|
|
202
202
|
UPDATE gateways
|
|
203
203
|
SET tool_selection_strategy = CASE
|
|
204
204
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
205
205
|
ELSE NULL
|
|
206
206
|
END
|
|
207
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var
|
|
207
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Xx={};m(Xx,{up:()=>mE,down:()=>CE});async function mE(_){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 CE(_){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 jx={};m(jx,{up:()=>TE,down:()=>NE});async function TE(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function NE(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Qx={};m(Qx,{up:()=>KE,down:()=>EE});async function KE(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function EE(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Wx={};m(Wx,{up:()=>zE,down:()=>PE});async function zE(_){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 PE(_){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 Zx={};m(Zx,{up:()=>UE,down:()=>JE});import{sql as $E}from"kysely";async function UE(_){await $E`
|
|
208
208
|
DELETE FROM downstream_tokens
|
|
209
209
|
WHERE id NOT IN (
|
|
210
210
|
SELECT id FROM (
|
|
@@ -214,7 +214,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
214
214
|
) ranked
|
|
215
215
|
WHERE rn = 1
|
|
216
216
|
)
|
|
217
|
-
`.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
|
|
217
|
+
`.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 JE(_){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 Dx={};m(Dx,{up:()=>XE,down:()=>jE});async function XE(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function jE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Lx={};m(Lx,{up:()=>QE,down:()=>WE});import{sql as ST}from"kysely";async function QE(_){await ST`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function WE(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await ST`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Fx={};m(Fx,{up:()=>ZE,down:()=>DE});async function ZE(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function DE(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Rx={};m(Rx,{up:()=>LE,down:()=>FE});import{sql as j_}from"kysely";async function LE(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function FE(_){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 Yx={};m(Yx,{up:()=>RE,down:()=>YE});async function RE(_){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 YE(_){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 Hx={};m(Hx,{up:()=>HE,down:()=>ME});async function HE(_){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 ME(_){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 Mx={};m(Mx,{up:()=>nE,down:()=>BE});import{sql as Z}from"kysely";async function nE(_){await Z`
|
|
218
218
|
INSERT INTO connections (
|
|
219
219
|
id,
|
|
220
220
|
organization_id,
|
|
@@ -261,7 +261,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
261
261
|
created_at,
|
|
262
262
|
updated_at
|
|
263
263
|
FROM virtual_mcps
|
|
264
|
-
`.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 Z`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await Z`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 Z`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await Z`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
|
|
264
|
+
`.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 Z`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await Z`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await Z`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 Z`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await Z`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 BE(_){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(Z`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Z`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await Z`
|
|
265
265
|
INSERT INTO virtual_mcps (
|
|
266
266
|
id, organization_id, title, description, icon, status,
|
|
267
267
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -271,7 +271,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
271
271
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
272
272
|
FROM connections
|
|
273
273
|
WHERE connection_type = 'VIRTUAL'
|
|
274
|
-
`.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 Z`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
|
|
274
|
+
`.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 Z`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 nx={};m(nx,{up:()=>GE,down:()=>yE});async function GE(_){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 yE(_){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 Bx={};m(Bx,{up:()=>fE,down:()=>OE});import{sql as B}from"kysely";async function fE(_){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(B`CURRENT_TIMESTAMP`)).execute(),await B`
|
|
275
275
|
INSERT INTO connection_aggregations_new (
|
|
276
276
|
id, parent_connection_id, child_connection_id,
|
|
277
277
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -280,7 +280,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
280
280
|
id, parent_connection_id, child_connection_id,
|
|
281
281
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
282
282
|
FROM connection_aggregations
|
|
283
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await B`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await B`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await B`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
|
|
283
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await B`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await B`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await B`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 OE(_){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(B`CURRENT_TIMESTAMP`)).execute(),await B`
|
|
284
284
|
INSERT INTO connection_aggregations_new (
|
|
285
285
|
id, parent_connection_id, child_connection_id,
|
|
286
286
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -289,7 +289,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
289
289
|
id, parent_connection_id, child_connection_id,
|
|
290
290
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
291
291
|
FROM connection_aggregations
|
|
292
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await B`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await B`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await B`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 yx={};m(yx,{up:()=>
|
|
292
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await B`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await B`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await B`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 yx={};m(yx,{up:()=>SE,down:()=>AE});import{sql as Gx}from"kysely";async function SE(_){await Gx`
|
|
293
293
|
UPDATE connections
|
|
294
294
|
SET connection_url = connection_url || '/management',
|
|
295
295
|
tools = NULL,
|
|
@@ -297,42 +297,42 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
297
297
|
WHERE connection_url LIKE '%/mcp'
|
|
298
298
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
299
299
|
AND app_name = '@deco/management-mcp'
|
|
300
|
-
`.execute(_),await
|
|
300
|
+
`.execute(_),await Gx`
|
|
301
301
|
UPDATE connections
|
|
302
302
|
SET tools = NULL,
|
|
303
303
|
updated_at = CURRENT_TIMESTAMP
|
|
304
304
|
WHERE app_name = '@deco/management-mcp'
|
|
305
305
|
AND tools IS NOT NULL
|
|
306
|
-
`.execute(_)}async function
|
|
306
|
+
`.execute(_)}async function AE(_){await Gx`
|
|
307
307
|
UPDATE connections
|
|
308
308
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
309
309
|
updated_at = CURRENT_TIMESTAMP
|
|
310
310
|
WHERE connection_url LIKE '%/mcp/management'
|
|
311
311
|
AND app_name = '@deco/management-mcp'
|
|
312
|
-
`.execute(_)}var
|
|
312
|
+
`.execute(_)}var Ox={};m(Ox,{up:()=>IE,down:()=>wE});import{sql as fx}from"kysely";async function IE(_){await fx`
|
|
313
313
|
UPDATE connections
|
|
314
314
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
315
315
|
tools = NULL,
|
|
316
316
|
updated_at = CURRENT_TIMESTAMP
|
|
317
317
|
WHERE connection_url LIKE '%/mcp/management'
|
|
318
318
|
AND app_name = '@deco/management-mcp'
|
|
319
|
-
`.execute(_),await
|
|
319
|
+
`.execute(_),await fx`
|
|
320
320
|
UPDATE connections
|
|
321
321
|
SET tools = NULL,
|
|
322
322
|
updated_at = CURRENT_TIMESTAMP
|
|
323
323
|
WHERE connection_url LIKE '%/mcp/self'
|
|
324
324
|
AND app_name = '@deco/management-mcp'
|
|
325
325
|
AND tools IS NOT NULL
|
|
326
|
-
`.execute(_)}async function
|
|
326
|
+
`.execute(_)}async function wE(_){await fx`
|
|
327
327
|
UPDATE connections
|
|
328
328
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
329
329
|
updated_at = CURRENT_TIMESTAMP
|
|
330
330
|
WHERE connection_url LIKE '%/mcp/self'
|
|
331
331
|
AND app_name = '@deco/management-mcp'
|
|
332
|
-
`.execute(_)}var
|
|
332
|
+
`.execute(_)}var Sx={};m(Sx,{up:()=>VE,down:()=>kE});async function VE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function kE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var Ax={};m(Ax,{up:()=>pE,down:()=>tE});import{sql as AT}from"kysely";async function pE(_){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(AT`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(AT`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 tE(_){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 Ix={};m(Ix,{up:()=>iE,down:()=>vE});import{sql as d}from"kysely";async function iE(_){await d`
|
|
333
333
|
ALTER TABLE connection_aggregations
|
|
334
334
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
335
|
-
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function
|
|
335
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function vE(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await d`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await d`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(d`CURRENT_TIMESTAMP`)).execute(),await d`
|
|
336
336
|
INSERT INTO connection_aggregations_new (
|
|
337
337
|
id, parent_connection_id, child_connection_id,
|
|
338
338
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -341,42 +341,42 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
341
341
|
id, parent_connection_id, child_connection_id,
|
|
342
342
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
343
343
|
FROM connection_aggregations
|
|
344
|
-
`.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
|
|
344
|
+
`.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 wx={};m(wx,{up:()=>oE,down:()=>aE});import{webcrypto as wT}from"crypto";var IT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var qE=128,V,p;function gE(_){if(!V||V.length<_)V=Buffer.allocUnsafe(_*qE),wT.getRandomValues(V),p=0;else if(p+_>V.length)wT.getRandomValues(V),p=0;p+=_}function t(_=21){gE(_|=0);let x="";for(let u=p-_;u<p;u++)x+=IT[V[u]&63];return x}var cE="org-admin",hE="Organization Admin";async function oE(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let T=new Date().toISOString(),C=`proj_${t()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:cE,name:hE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function aE(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var Vx={};m(Vx,{up:()=>rE,down:()=>eE});async function rE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function eE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var kx={};m(kx,{up:()=>lE,down:()=>dE});async function lE(_){}async function dE(_){}var px={};m(px,{up:()=>sE,down:()=>bE});async function sE(_){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 bE(_){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 tx={};m(tx,{up:()=>_z,down:()=>xz});import{sql as VT}from"kysely";async function _z(_){await VT`
|
|
345
345
|
UPDATE connections
|
|
346
346
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
347
347
|
tools = NULL,
|
|
348
348
|
updated_at = CURRENT_TIMESTAMP
|
|
349
349
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
350
350
|
AND app_name = 'deco-registry'
|
|
351
|
-
`.execute(_)}async function
|
|
351
|
+
`.execute(_)}async function xz(_){await VT`
|
|
352
352
|
UPDATE connections
|
|
353
353
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
354
354
|
updated_at = CURRENT_TIMESTAMP
|
|
355
355
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
356
356
|
AND app_name = 'deco-registry'
|
|
357
|
-
`.execute(_)}var
|
|
357
|
+
`.execute(_)}var ix={};m(ix,{up:()=>mz,down:()=>Cz});import{sql as uz}from"kysely";async function mz(_){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(uz`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 Cz(_){await _.schema.dropTable("ai_provider_keys").execute()}var vx={};m(vx,{up:()=>Nz,down:()=>Kz});import{sql as Tz}from"kysely";async function Nz(_){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(Tz`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function Kz(_){await _.schema.dropTable("oauth_pkce_states").execute()}var qx={};m(qx,{up:()=>Ez,down:()=>zz});import{sql as S}from"kysely";async function Ez(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(S`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(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`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(S`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(S`CURRENT_TIMESTAMP`)).execute(),await S`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await S`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await S`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 zz(_){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 gx={};m(gx,{up:()=>Pz,down:()=>$z});async function Pz(_){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 $z(_){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 cx={};m(cx,{up:()=>Uz,down:()=>Jz});async function Uz(_){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 Jz(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var hx={};m(hx,{up:()=>Xz,down:()=>jz});import{sql as kT}from"kysely";async function Xz(_){await kT`
|
|
358
358
|
UPDATE connections
|
|
359
359
|
SET title = 'CMS MCP',
|
|
360
360
|
tools = NULL,
|
|
361
361
|
updated_at = CURRENT_TIMESTAMP
|
|
362
362
|
WHERE app_name = '@deco/management-mcp'
|
|
363
|
-
`.execute(_)}async function
|
|
363
|
+
`.execute(_)}async function jz(_){await kT`
|
|
364
364
|
UPDATE connections
|
|
365
365
|
SET title = 'Mesh MCP',
|
|
366
366
|
updated_at = CURRENT_TIMESTAMP
|
|
367
367
|
WHERE app_name = '@deco/management-mcp'
|
|
368
|
-
`.execute(_)}var
|
|
368
|
+
`.execute(_)}var ox={};m(ox,{up:()=>Qz,down:()=>Wz});import{sql as pT}from"kysely";async function Qz(_){await pT`
|
|
369
369
|
UPDATE connections
|
|
370
370
|
SET title = 'Deco CMS',
|
|
371
371
|
tools = NULL,
|
|
372
372
|
updated_at = CURRENT_TIMESTAMP
|
|
373
373
|
WHERE app_name = '@deco/management-mcp'
|
|
374
|
-
`.execute(_)}async function
|
|
374
|
+
`.execute(_)}async function Wz(_){await pT`
|
|
375
375
|
UPDATE connections
|
|
376
376
|
SET title = 'CMS MCP',
|
|
377
377
|
updated_at = CURRENT_TIMESTAMP
|
|
378
378
|
WHERE app_name = '@deco/management-mcp'
|
|
379
|
-
`.execute(_)}var
|
|
379
|
+
`.execute(_)}var ax={};m(ax,{up:()=>Zz,down:()=>Dz});async function Zz(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function Dz(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var rx={};m(rx,{up:()=>Lz,down:()=>Fz});async function Lz(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function Fz(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var lx={};m(lx,{up:()=>Rz,down:()=>Yz});import{sql as ex}from"kysely";async function Rz(_){await ex`
|
|
380
380
|
UPDATE organization_settings
|
|
381
381
|
SET enabled_plugins = (
|
|
382
382
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -385,7 +385,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
385
385
|
)
|
|
386
386
|
WHERE enabled_plugins IS NOT NULL
|
|
387
387
|
AND enabled_plugins LIKE '%object-storage%'
|
|
388
|
-
`.execute(_),await
|
|
388
|
+
`.execute(_),await ex`
|
|
389
389
|
UPDATE projects
|
|
390
390
|
SET enabled_plugins = (
|
|
391
391
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -394,28 +394,28 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
394
394
|
)
|
|
395
395
|
WHERE enabled_plugins IS NOT NULL
|
|
396
396
|
AND enabled_plugins LIKE '%object-storage%'
|
|
397
|
-
`.execute(_),await
|
|
397
|
+
`.execute(_),await ex`
|
|
398
398
|
DELETE FROM project_plugin_configs
|
|
399
399
|
WHERE plugin_id = 'object-storage'
|
|
400
|
-
`.execute(_)}async function
|
|
400
|
+
`.execute(_)}async function Yz(_){}var dx={};m(dx,{up:()=>Hz,down:()=>Mz});import{sql as tT}from"kysely";async function Hz(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await tT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function Mz(_){await tT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var bx={};m(bx,{up:()=>nz,down:()=>Bz});import{sql as sx}from"kysely";async function nz(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await sx`
|
|
401
401
|
ALTER TABLE connections
|
|
402
402
|
ADD CONSTRAINT chk_connections_subtype
|
|
403
403
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
404
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
404
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await sx`
|
|
405
405
|
UPDATE connections
|
|
406
406
|
SET subtype = 'agent'
|
|
407
407
|
WHERE connection_type = 'VIRTUAL'
|
|
408
|
-
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(K)=>K.primaryKey()).addColumn("virtual_mcp_id","text",(K)=>K.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(K)=>K.notNull()).addColumn("connection_id","text",(K)=>K.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),T=new Map;for(let K of u)T.set(K.organizationId,K.userId);let C=new Map;for(let K of x){let z=`vir_${t()}`;C.set(K.id,z);let $=K.ui?JSON.parse(K.ui):null,U=JSON.stringify({enabled_plugins:K.enabled_plugins?JSON.parse(K.enabled_plugins):null,ui:$,migrated_from_project:K.id,migrated_project_slug:K.slug}),Q=T.get(K.organization_id);if(!Q)continue;await _.insertInto("connections").values({id:z,organization_id:K.organization_id,created_by:Q,updated_by:null,title:K.name,description:K.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${z}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:K.created_at,updated_at:K.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let K of N){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${t()}`,parent_connection_id:z,child_connection_id:K.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:K.created_at}).onConflict(($)=>$.doNothing()).execute()}let E=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let K of E){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${t()}`,virtual_mcp_id:z,plugin_id:K.plugin_id,connection_id:K.connection_id,settings:K.settings,created_at:K.created_at,updated_at:K.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function
|
|
408
|
+
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(K)=>K.primaryKey()).addColumn("virtual_mcp_id","text",(K)=>K.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(K)=>K.notNull()).addColumn("connection_id","text",(K)=>K.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),T=new Map;for(let K of u)T.set(K.organizationId,K.userId);let C=new Map;for(let K of x){let z=`vir_${t()}`;C.set(K.id,z);let $=K.ui?JSON.parse(K.ui):null,U=JSON.stringify({enabled_plugins:K.enabled_plugins?JSON.parse(K.enabled_plugins):null,ui:$,migrated_from_project:K.id,migrated_project_slug:K.slug}),Q=T.get(K.organization_id);if(!Q)continue;await _.insertInto("connections").values({id:z,organization_id:K.organization_id,created_by:Q,updated_by:null,title:K.name,description:K.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${z}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:K.created_at,updated_at:K.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let K of N){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${t()}`,parent_connection_id:z,child_connection_id:K.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:K.created_at}).onConflict(($)=>$.doNothing()).execute()}let E=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let K of E){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${t()}`,virtual_mcp_id:z,plugin_id:K.plugin_id,connection_id:K.connection_id,settings:K.settings,created_at:K.created_at,updated_at:K.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function Bz(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await sx`
|
|
409
409
|
ALTER TABLE connections
|
|
410
410
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
411
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
411
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var _u={};m(_u,{up:()=>yz,down:()=>fz});import{sql as Gz}from"kysely";async function yz(_){await Gz`
|
|
412
412
|
DELETE FROM connections
|
|
413
413
|
WHERE connection_type = 'VIRTUAL'
|
|
414
414
|
AND subtype = 'project'
|
|
415
415
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
416
|
-
`.execute(_)}async function
|
|
416
|
+
`.execute(_)}async function fz(_){}var xu={};m(xu,{up:()=>Sz,down:()=>Az});import{sql as Oz}from"kysely";async function Sz(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await Oz`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function Az(_){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 mu={};m(mu,{up:()=>Iz,down:()=>wz});import{sql as uu}from"kysely";async function Iz(_){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(uu`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(uu`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(uu`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 wz(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var Cu={};m(Cu,{up:()=>Vz,down:()=>kz});async function Vz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function kz(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var Tu={};m(Tu,{up:()=>pz,down:()=>tz});async function pz(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function tz(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var Ku={};m(Ku,{up:()=>vz,down:()=>qz});import{sql as iT}from"kysely";function Nu(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function iz(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return Nu(T)}catch{return Nu(_.connection_url)}if(_.title)return Nu(_.title);return _.id}async function vz(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await iT`
|
|
417
417
|
SELECT id, app_name, connection_url, title FROM connections
|
|
418
|
-
`.execute(_);for(let u of x.rows){let T=
|
|
418
|
+
`.execute(_);for(let u of x.rows){let T=iz(u);await iT`UPDATE connections SET slug = ${T} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function qz(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var Eu={};m(Eu,{up:()=>gz,down:()=>cz});import{sql as s}from"kysely";async function gz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await s`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await s`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 cz(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await s`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await s`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await s`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 zu={};m(zu,{up:()=>hz,down:()=>oz});async function hz(_){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 oz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var Pu={};m(Pu,{up:()=>az,down:()=>rz});import{sql as Q_}from"kysely";async function az(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await Q_`
|
|
419
419
|
UPDATE threads
|
|
420
420
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
421
421
|
WHERE agent_ids IS NOT NULL
|
|
@@ -425,14 +425,14 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
425
425
|
`.execute(_),await Q_`
|
|
426
426
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
427
427
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
428
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
428
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function rz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await Q_`
|
|
429
429
|
UPDATE threads
|
|
430
430
|
SET agent_ids = CASE
|
|
431
431
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
432
432
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
433
433
|
ELSE '[]'
|
|
434
434
|
END
|
|
435
|
-
`.execute(_),await Q_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var
|
|
435
|
+
`.execute(_),await Q_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var $u={};m($u,{up:()=>ez,down:()=>lz});async function ez(_){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 lz(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Uu={};m(Uu,{up:()=>dz,down:()=>sz});async function dz(_){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 sz(_){await _.schema.dropTable("kv").execute()}var Ju={};m(Ju,{up:()=>bz,down:()=>_0});async function bz(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function _0(_){await _.schema.dropIndex("idx_member_user_org").execute()}var Xu={};m(Xu,{up:()=>x0,down:()=>u0});async function x0(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function u0(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var ju={};m(ju,{up:()=>m0,down:()=>C0});import{sql as F}from"kysely";async function m0(_){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(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`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 F`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(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`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 F`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(F`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(F`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(F`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(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`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 C0(_){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 Qu={};m(Qu,{up:()=>T0,down:()=>N0});import{sql as i}from"kysely";async function T0(_){await i`
|
|
436
436
|
ALTER TABLE event_subscriptions
|
|
437
437
|
ALTER COLUMN enabled DROP DEFAULT
|
|
438
438
|
`.execute(_),await i`
|
|
@@ -442,7 +442,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
442
442
|
`.execute(_),await i`
|
|
443
443
|
ALTER TABLE event_subscriptions
|
|
444
444
|
ALTER COLUMN enabled SET DEFAULT true
|
|
445
|
-
`.execute(_)}async function
|
|
445
|
+
`.execute(_)}async function N0(_){await i`
|
|
446
446
|
ALTER TABLE event_subscriptions
|
|
447
447
|
ALTER COLUMN enabled DROP DEFAULT
|
|
448
448
|
`.execute(_),await i`
|
|
@@ -452,7 +452,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
452
452
|
`.execute(_),await i`
|
|
453
453
|
ALTER TABLE event_subscriptions
|
|
454
454
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
455
|
-
`.execute(_)}var
|
|
455
|
+
`.execute(_)}var Wu={};m(Wu,{up:()=>K0,down:()=>E0});import{sql as vT}from"kysely";async function K0(_){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(vT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(vT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function E0(_){await _.schema.dropTable("brand_context").execute()}var Zu={};m(Zu,{up:()=>z0,down:()=>P0});import{sql as qT}from"kysely";async function z0(_){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(qT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qT`now()`)).execute()}async function P0(_){await _.schema.dropTable("organization_domains").execute()}var Du={};m(Du,{up:()=>X0,down:()=>j0});import{sql as gT}from"kysely";var W_=new Set(["primary","secondary","accent","background","foreground"]),$0={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function U0(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>W_.has(C))){let C={};for(let[N,E]of Object.entries(u)){if(typeof E!=="string")continue;if(W_.has(N))C[N]=E;else x[N]=E}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let T={};for(let[C,N]of Object.entries(u)){if(typeof N!=="string")continue;if(W_.has(C.toLowerCase()))T[C.toLowerCase()]=N;else x[C]=N}return{structured:Object.keys(T).length>0?JSON.stringify(T):null,extra:x}}if(Array.isArray(_)){let u={};for(let T of _){let C=T,N=C.label?.toLowerCase?.(),E=C.value;if(!N||!E)continue;if(W_.has(N))u[N]=E;else x[N]=E}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function J0(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let T of _){let C=T,N=C.name??C.family??void 0,E=C.role?.toLowerCase?.()??"";if(!N)continue;let K=$0[E];if(K&&!x[K])x[K]=N;else u.push(N)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function X0(_){let x=await gT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let T=!1,C=!1,N=!1,E=u.colors,K=u.fonts,z={};try{z=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=U0($);if(E=U.structured,T=!0,Object.keys(U.extra).length>0)z.extraColors=U.extra,N=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))K=J0($),C=!0}catch{}if(T||C||N){let $=N?JSON.stringify(z):u.metadata;await gT`
|
|
456
456
|
UPDATE brand_context
|
|
457
457
|
SET
|
|
458
458
|
colors = ${E},
|
|
@@ -460,20 +460,20 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
460
460
|
metadata = ${$},
|
|
461
461
|
updated_at = NOW()
|
|
462
462
|
WHERE id = ${u.id}
|
|
463
|
-
`.execute(_)}}}async function
|
|
463
|
+
`.execute(_)}}}async function j0(_){}var Lu={};m(Lu,{up:()=>W0,down:()=>Z0});import{sql as Q0}from"kysely";async function W0(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(Q0`'{}'::jsonb`)).execute()}async function Z0(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var Fu={};m(Fu,{up:()=>D0,down:()=>L0});async function D0(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function L0(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Ru={};m(Ru,{up:()=>F0,down:()=>R0});async function F0(_){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 R0(_){await _.schema.dropTable("sandbox_runner_state").execute()}var Yu={};m(Yu,{up:()=>Y0,down:()=>H0});async function Y0(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function H0(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Hu={};m(Hu,{up:()=>M0,down:()=>n0});async function M0(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function n0(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Mu={};m(Mu,{up:()=>B0,down:()=>G0});async function B0(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function G0(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var nu={};m(nu,{up:()=>f0,down:()=>O0});import{sql as cT}from"kysely";var y0=["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 f0(_){let x=await cT`
|
|
464
464
|
SELECT id, permission FROM "organizationRole"
|
|
465
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...
|
|
465
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...y0]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await cT`
|
|
466
466
|
UPDATE "organizationRole"
|
|
467
467
|
SET permission = ${K}
|
|
468
468
|
WHERE id = ${u.id}
|
|
469
|
-
`.execute(_)}}async function
|
|
469
|
+
`.execute(_)}}async function O0(_){}var Bu={};m(Bu,{up:()=>S0,down:()=>A0});async function S0(_){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 A0(_){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 Gu={};m(Gu,{up:()=>I0,down:()=>w0});async function I0(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function w0(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var yu={};m(yu,{up:()=>V0,down:()=>k0});import{sql as b}from"kysely";async function V0(_){await b`
|
|
470
470
|
UPDATE automations
|
|
471
471
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
472
472
|
WHERE virtual_mcp_id IS NULL
|
|
473
473
|
`.execute(_),await b`
|
|
474
474
|
ALTER TABLE automations
|
|
475
475
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
476
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
476
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function k0(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await b`
|
|
477
477
|
UPDATE automations
|
|
478
478
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
479
479
|
`.execute(_),await b`
|
|
@@ -482,7 +482,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
482
482
|
`.execute(_),await b`
|
|
483
483
|
ALTER TABLE automations
|
|
484
484
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
485
|
-
`.execute(_)}var
|
|
485
|
+
`.execute(_)}var Ou={};m(Ou,{up:()=>v0,reshapeSimpleMode:()=>hT,inferAutomationTier:()=>oT,down:()=>q0,__testing:()=>i0});var p0={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},t0=["fast","smart","thinking","image","web_research"];function fu(_){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 t0.some((T)=>(T in u))}function hT(_){if(fu(_))return _;let x=_,u=x?.enabled===!0,T=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return p0;return{tiers:{fast:T(x?.chat?.fast),smart:T(x?.chat?.smart),thinking:T(x?.chat?.thinking),image:T(x?.image),web_research:T(x?.webResearch)}}}function oT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function aT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var i0={isAlreadyReshapedSimpleMode:fu,isAlreadyReshapedAutomationModels:aT};async function v0(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let T of x){let C=T.simple_mode?typeof T.simple_mode==="string"?JSON.parse(T.simple_mode):T.simple_mode:null;if(fu(C))continue;let N=hT(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(N)}).where("organizationId","=",T.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let T of u){let C;try{C=typeof T.models==="string"?JSON.parse(T.models):T.models}catch{C={}}if(aT(C))continue;let N=oT(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:N})}).where("id","=",T.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${T.id} previously used an image-only model; mapped to "${N}"`)}}async function q0(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Su={};m(Su,{up:()=>g0,down:()=>c0});import{sql as f}from"kysely";async function g0(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await f`
|
|
486
486
|
ALTER TABLE automations
|
|
487
487
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
488
488
|
`.execute(_),await f`
|
|
@@ -504,19 +504,19 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
504
504
|
AND tool_input IS NOT NULL
|
|
505
505
|
)
|
|
506
506
|
)
|
|
507
|
-
`.execute(_)}async function
|
|
507
|
+
`.execute(_)}async function c0(_){await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await f`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await f`
|
|
508
508
|
ALTER TABLE automations
|
|
509
509
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
510
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var
|
|
510
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var Au={};m(Au,{up:()=>o0,down:()=>a0});import{sql as rT}from"kysely";var h0=new Set(["host","docker","agent-sandbox"]);async function o0(_){let x=await rT`
|
|
511
511
|
SELECT id, metadata FROM "connections"
|
|
512
512
|
WHERE connection_type = 'VIRTUAL'
|
|
513
513
|
AND metadata IS NOT NULL
|
|
514
514
|
AND metadata LIKE '%vmMap%'
|
|
515
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.vmMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}let
|
|
515
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.vmMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}let M=X.runnerKind;if(M!==void 0&&!h0.has(M)){N=!0;continue}U[Q]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.vmMap=E;let K=JSON.stringify(T);await rT`
|
|
516
516
|
UPDATE "connections"
|
|
517
517
|
SET metadata = ${K}
|
|
518
518
|
WHERE id = ${u.id}
|
|
519
|
-
`.execute(_)}}async function
|
|
519
|
+
`.execute(_)}}async function a0(_){}var Iu={};m(Iu,{up:()=>r0,down:()=>e0});import{sql as __}from"kysely";async function r0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(__`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(__`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`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 __`
|
|
520
520
|
CREATE INDEX async_research_jobs_active_idx
|
|
521
521
|
ON async_research_jobs (status, last_polled_at)
|
|
522
522
|
WHERE status IN ('pending', 'polling')
|
|
@@ -524,7 +524,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
524
524
|
ALTER TABLE async_research_jobs
|
|
525
525
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
526
526
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
527
|
-
`.execute(_)}async function
|
|
527
|
+
`.execute(_)}async function e0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var wu={};m(wu,{up:()=>l0,down:()=>d0});async function l0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function d0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var Vu={};m(Vu,{up:()=>s0,down:()=>b0});import{sql as v}from"kysely";async function s0(_){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(v`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(v`CURRENT_TIMESTAMP`)).execute(),await v`
|
|
528
528
|
ALTER TABLE secrets
|
|
529
529
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
530
530
|
`.execute(_),await v`
|
|
@@ -541,7 +541,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
541
541
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
542
542
|
ON secrets (organization_id, lower(name))
|
|
543
543
|
WHERE scope = 'organization'
|
|
544
|
-
`.execute(_)}async function
|
|
544
|
+
`.execute(_)}async function b0(_){await _.schema.dropTable("secrets").execute()}var ku={};m(ku,{up:()=>_P,down:()=>xP});async function _P(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function xP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var pu={};m(pu,{up:()=>mP,down:()=>CP});import{sql as uP}from"kysely";async function mP(_){await uP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function CP(_){}var tu={};m(tu,{up:()=>TP,down:()=>NP});import{sql as Z_}from"kysely";async function TP(_){await Z_`
|
|
545
545
|
ALTER TABLE sandbox_runner_state
|
|
546
546
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
547
547
|
`.execute(_),await Z_`
|
|
@@ -579,7 +579,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
579
579
|
EXCEPTION WHEN undefined_table THEN
|
|
580
580
|
NULL;
|
|
581
581
|
END; $$
|
|
582
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
582
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function NP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await Z_`
|
|
583
583
|
ALTER TABLE sandbox_runner_state
|
|
584
584
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
585
585
|
`.execute(_),await Z_`
|
|
@@ -617,7 +617,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
617
617
|
EXCEPTION WHEN undefined_table THEN
|
|
618
618
|
NULL;
|
|
619
619
|
END; $$
|
|
620
|
-
`.execute(_)}var
|
|
620
|
+
`.execute(_)}var iu={};m(iu,{up:()=>KP,down:()=>EP});import{sql as eT}from"kysely";async function KP(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await eT`
|
|
621
621
|
DO $$ BEGIN
|
|
622
622
|
UPDATE virtualmcps v
|
|
623
623
|
SET metadata = jsonb_set(
|
|
@@ -656,7 +656,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
656
656
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
657
657
|
NULL;
|
|
658
658
|
END; $$
|
|
659
|
-
`.execute(_)}async function
|
|
659
|
+
`.execute(_)}async function EP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await eT`
|
|
660
660
|
DO $$ BEGIN
|
|
661
661
|
UPDATE virtualmcps v
|
|
662
662
|
SET metadata = jsonb_set(
|
|
@@ -689,7 +689,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
689
689
|
EXCEPTION WHEN undefined_table THEN
|
|
690
690
|
NULL;
|
|
691
691
|
END; $$
|
|
692
|
-
`.execute(_)}var
|
|
692
|
+
`.execute(_)}var vu={};m(vu,{up:()=>zP,down:()=>PP});import{sql as lT}from"kysely";async function zP(_){await lT`
|
|
693
693
|
UPDATE connections c
|
|
694
694
|
SET metadata = (
|
|
695
695
|
jsonb_set(
|
|
@@ -733,7 +733,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
733
733
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
734
734
|
WHERE entry ? 'vmId'
|
|
735
735
|
);
|
|
736
|
-
`.execute(_),await
|
|
736
|
+
`.execute(_),await lT`
|
|
737
737
|
UPDATE connections c
|
|
738
738
|
SET metadata = (
|
|
739
739
|
jsonb_set(
|
|
@@ -787,10 +787,10 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
787
787
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
788
788
|
WHERE inner_entry ? 'runnerKind'
|
|
789
789
|
);
|
|
790
|
-
`.execute(_)}async function
|
|
790
|
+
`.execute(_)}async function PP(_){}var qu={};m(qu,{up:()=>UP,down:()=>JP});import{sql as $P}from"kysely";async function UP(_){await $P`
|
|
791
791
|
DELETE FROM ai_provider_keys
|
|
792
792
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
793
|
-
`.execute(_)}async function
|
|
793
|
+
`.execute(_)}async function JP(_){}var gu={};m(gu,{up:()=>XP,down:()=>jP});import{sql as D_}from"kysely";async function XP(_){await D_`
|
|
794
794
|
UPDATE sandbox_runner_state
|
|
795
795
|
SET sandbox_provider_kind = 'desktop'
|
|
796
796
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
@@ -888,13 +888,13 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
888
888
|
UPDATE threads
|
|
889
889
|
SET sandbox_provider_kind = 'desktop'
|
|
890
890
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
891
|
-
`.execute(_)}async function
|
|
891
|
+
`.execute(_)}async function jP(_){}var cu={};m(cu,{up:()=>QP,down:()=>WP});import{sql as x_}from"kysely";async function QP(_){await x_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await x_`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 WP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await x_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await x_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await x_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var hu={};m(hu,{up:()=>ZP,down:()=>DP});import{sql as dT}from"kysely";async function ZP(_){await dT`
|
|
892
892
|
ALTER TABLE organization_domains
|
|
893
893
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
894
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function
|
|
894
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function DP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await dT`
|
|
895
895
|
ALTER TABLE organization_domains
|
|
896
896
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
897
|
-
`.execute(_)}var
|
|
897
|
+
`.execute(_)}var ou={};m(ou,{up:()=>LP,down:()=>FP});import{sql as L_}from"kysely";async function LP(_){await L_`
|
|
898
898
|
UPDATE sandbox_runner_state
|
|
899
899
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
900
900
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -983,19 +983,19 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
983
983
|
WHERE c.connection_type = 'VIRTUAL'
|
|
984
984
|
AND c.metadata IS NOT NULL
|
|
985
985
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
986
|
-
`.execute(_)}async function
|
|
986
|
+
`.execute(_)}async function FP(_){}var au={};m(au,{up:()=>YP,down:()=>HP});import{sql as sT}from"kysely";var RP=["GLOBAL_SEARCH"];async function YP(_){let x=await sT`
|
|
987
987
|
SELECT id, permission FROM "organizationRole"
|
|
988
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...
|
|
988
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...RP]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await sT`
|
|
989
989
|
UPDATE "organizationRole"
|
|
990
990
|
SET permission = ${K}
|
|
991
991
|
WHERE id = ${u.id}
|
|
992
|
-
`.execute(_)}}async function
|
|
992
|
+
`.execute(_)}}async function HP(_){}var eu={};m(eu,{up:()=>MP,down:()=>nP});import{sql as ru}from"kysely";async function MP(_){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(ru`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(ru`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await ru`
|
|
993
993
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
994
994
|
ON org_file_configs (organization_id, lower(name))
|
|
995
|
-
`.execute(_)}async function
|
|
995
|
+
`.execute(_)}async function nP(_){await _.schema.dropTable("org_file_configs").execute()}var lu={};m(lu,{up:()=>BP,down:()=>GP});import{sql as O}from"kysely";async function BP(_){await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await O`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await O`
|
|
996
996
|
ALTER TABLE automations
|
|
997
997
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
998
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function
|
|
998
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function GP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await O`
|
|
999
999
|
ALTER TABLE automations
|
|
1000
1000
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
1001
1001
|
`.execute(_),await O`
|
|
@@ -1017,83 +1017,83 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1017
1017
|
AND tool_input IS NOT NULL
|
|
1018
1018
|
)
|
|
1019
1019
|
)
|
|
1020
|
-
`.execute(_)}var
|
|
1020
|
+
`.execute(_)}var du={};m(du,{up:()=>yP,down:()=>fP});async function yP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function fP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var bu={};m(bu,{up:()=>OP,down:()=>SP});import{sql as su}from"kysely";var F_="local-docker";async function OP(_){await su`delete from sandbox_runner_state where sandbox_provider_kind = ${F_}`.execute(_);let x=await su`
|
|
1021
1021
|
SELECT id, metadata FROM "connections"
|
|
1022
1022
|
WHERE connection_type = 'VIRTUAL'
|
|
1023
1023
|
AND metadata IS NOT NULL
|
|
1024
|
-
AND metadata LIKE ${"%"+
|
|
1025
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}if(
|
|
1024
|
+
AND metadata LIKE ${"%"+F_+"%"}
|
|
1025
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}if(F_ in X){N=!0;let M={...X};if(delete M[F_],Object.keys(M).length>0)U[Q]=M}else U[Q]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.sandboxMap=E;let K=JSON.stringify(T);await su`
|
|
1026
1026
|
UPDATE "connections"
|
|
1027
1027
|
SET metadata = ${K}
|
|
1028
1028
|
WHERE id = ${u.id}
|
|
1029
|
-
`.execute(_)}}async function
|
|
1029
|
+
`.execute(_)}}async function SP(_){}var _m={};m(_m,{up:()=>AP,down:()=>IP});import{sql as R_}from"kysely";async function AP(_){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 R_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await R_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await R_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await R_`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 IP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var xm={};m(xm,{up:()=>wP,down:()=>VP});async function wP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function VP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var um={};m(um,{up:()=>kP,down:()=>pP});async function kP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function pP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var mm={};m(mm,{up:()=>tP,down:()=>iP});async function tP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function iP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var Cm={};m(Cm,{up:()=>vP,down:()=>qP});async function vP(_){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 qP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var Tm={};m(Tm,{up:()=>gP,down:()=>cP});async function gP(_){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 cP(_){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 Km={};m(Km,{up:()=>oP,down:()=>aP});import{sql as G}from"kysely";var R="cluster",Y="agent-sandbox";function q(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function Nm(_,x,u){if(!q(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function Y_(_){if(!q(_))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!==R&&_.sandboxProviderKind!==Y&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!q(_.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 hP(_,x,u){if(!q(_))return null;let T=!1,C={};for(let[N,E]of Object.entries(_)){if(!q(E)){C[N]=E;continue}let K={};for(let[z,$]of Object.entries(E)){if(!q($)){K[z]=$;continue}let U={};for(let[Q,X]of Object.entries($)){if(Q===x){if(T=!0,!(u in $))U[u]=Nm(X,x,u);else if(!Y_($[u])&&Y_(X))U[u]=Nm(X,x,u);continue}let M=Nm(X,x,u);if(M!==X)T=!0;if(Q===u&&Q in U&&Y_(U[Q])&&!Y_(M))continue;U[Q]=M}K[z]=U}C[N]=K}return{sandboxMap:C,changed:T}}async function bT(_,x,u){let T=await G`
|
|
1030
1030
|
SELECT id, metadata FROM connections
|
|
1031
1031
|
WHERE connection_type = 'VIRTUAL'
|
|
1032
1032
|
AND metadata IS NOT NULL
|
|
1033
1033
|
AND metadata LIKE ${"%"+x+"%"}
|
|
1034
|
-
`.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=
|
|
1034
|
+
`.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=hP(N.sandboxMap,x,u);if(!E?.changed)continue;N.sandboxMap=E.sandboxMap,await G`
|
|
1035
1035
|
UPDATE connections
|
|
1036
1036
|
SET metadata = ${JSON.stringify(N)}
|
|
1037
1037
|
WHERE id = ${C.id}
|
|
1038
|
-
`.execute(_)}}async function
|
|
1038
|
+
`.execute(_)}}async function oP(_){await G`
|
|
1039
1039
|
UPDATE threads
|
|
1040
|
-
SET sandbox_provider_kind = ${
|
|
1041
|
-
WHERE sandbox_provider_kind = ${
|
|
1042
|
-
`.execute(_),await
|
|
1040
|
+
SET sandbox_provider_kind = ${Y}
|
|
1041
|
+
WHERE sandbox_provider_kind = ${R}
|
|
1042
|
+
`.execute(_),await G`
|
|
1043
1043
|
UPDATE sandbox_runner_state canonical
|
|
1044
1044
|
SET handle = legacy.handle,
|
|
1045
1045
|
state = legacy.state,
|
|
1046
1046
|
updated_at = legacy.updated_at
|
|
1047
1047
|
FROM sandbox_runner_state legacy
|
|
1048
|
-
WHERE canonical.sandbox_provider_kind = ${
|
|
1049
|
-
AND legacy.sandbox_provider_kind = ${
|
|
1048
|
+
WHERE canonical.sandbox_provider_kind = ${Y}
|
|
1049
|
+
AND legacy.sandbox_provider_kind = ${R}
|
|
1050
1050
|
AND canonical.user_id = legacy.user_id
|
|
1051
1051
|
AND canonical.project_ref = legacy.project_ref
|
|
1052
1052
|
AND legacy.updated_at > canonical.updated_at
|
|
1053
|
-
`.execute(_),await
|
|
1053
|
+
`.execute(_),await G`
|
|
1054
1054
|
DELETE FROM sandbox_runner_state legacy
|
|
1055
|
-
WHERE legacy.sandbox_provider_kind = ${
|
|
1055
|
+
WHERE legacy.sandbox_provider_kind = ${R}
|
|
1056
1056
|
AND EXISTS (
|
|
1057
1057
|
SELECT 1
|
|
1058
1058
|
FROM sandbox_runner_state canonical
|
|
1059
1059
|
WHERE canonical.user_id = legacy.user_id
|
|
1060
1060
|
AND canonical.project_ref = legacy.project_ref
|
|
1061
|
-
AND canonical.sandbox_provider_kind = ${
|
|
1061
|
+
AND canonical.sandbox_provider_kind = ${Y}
|
|
1062
1062
|
)
|
|
1063
|
-
`.execute(_),await
|
|
1063
|
+
`.execute(_),await G`
|
|
1064
1064
|
UPDATE sandbox_runner_state
|
|
1065
|
-
SET sandbox_provider_kind = ${
|
|
1066
|
-
WHERE sandbox_provider_kind = ${F}
|
|
1067
|
-
`.execute(_),await sT(_,F,R)}async function gP(_){await y`
|
|
1068
|
-
UPDATE threads
|
|
1069
|
-
SET sandbox_provider_kind = ${F}
|
|
1065
|
+
SET sandbox_provider_kind = ${Y}
|
|
1070
1066
|
WHERE sandbox_provider_kind = ${R}
|
|
1071
|
-
`.execute(_),await
|
|
1067
|
+
`.execute(_),await bT(_,R,Y)}async function aP(_){await G`
|
|
1068
|
+
UPDATE threads
|
|
1069
|
+
SET sandbox_provider_kind = ${R}
|
|
1070
|
+
WHERE sandbox_provider_kind = ${Y}
|
|
1071
|
+
`.execute(_),await G`
|
|
1072
1072
|
UPDATE sandbox_runner_state legacy
|
|
1073
1073
|
SET handle = canonical.handle,
|
|
1074
1074
|
state = canonical.state,
|
|
1075
1075
|
updated_at = canonical.updated_at
|
|
1076
1076
|
FROM sandbox_runner_state canonical
|
|
1077
|
-
WHERE legacy.sandbox_provider_kind = ${
|
|
1078
|
-
AND canonical.sandbox_provider_kind = ${
|
|
1077
|
+
WHERE legacy.sandbox_provider_kind = ${R}
|
|
1078
|
+
AND canonical.sandbox_provider_kind = ${Y}
|
|
1079
1079
|
AND legacy.user_id = canonical.user_id
|
|
1080
1080
|
AND legacy.project_ref = canonical.project_ref
|
|
1081
1081
|
AND canonical.updated_at > legacy.updated_at
|
|
1082
|
-
`.execute(_),await
|
|
1082
|
+
`.execute(_),await G`
|
|
1083
1083
|
DELETE FROM sandbox_runner_state canonical
|
|
1084
|
-
WHERE canonical.sandbox_provider_kind = ${
|
|
1084
|
+
WHERE canonical.sandbox_provider_kind = ${Y}
|
|
1085
1085
|
AND EXISTS (
|
|
1086
1086
|
SELECT 1
|
|
1087
1087
|
FROM sandbox_runner_state legacy
|
|
1088
1088
|
WHERE legacy.user_id = canonical.user_id
|
|
1089
1089
|
AND legacy.project_ref = canonical.project_ref
|
|
1090
|
-
AND legacy.sandbox_provider_kind = ${
|
|
1090
|
+
AND legacy.sandbox_provider_kind = ${R}
|
|
1091
1091
|
)
|
|
1092
|
-
`.execute(_),await
|
|
1092
|
+
`.execute(_),await G`
|
|
1093
1093
|
UPDATE sandbox_runner_state
|
|
1094
|
-
SET sandbox_provider_kind = ${
|
|
1095
|
-
WHERE sandbox_provider_kind = ${
|
|
1096
|
-
`.execute(_),await
|
|
1094
|
+
SET sandbox_provider_kind = ${R}
|
|
1095
|
+
WHERE sandbox_provider_kind = ${Y}
|
|
1096
|
+
`.execute(_),await bT(_,Y,R)}var Em={};m(Em,{up:()=>rP,down:()=>eP});import{sql as A}from"kysely";async function rP(_){await A`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(A`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(A`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(A`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(A`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await A`
|
|
1097
1097
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1098
1098
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1099
1099
|
WHERE deleted_at IS NULL
|
|
@@ -1101,7 +1101,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1101
1101
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1102
1102
|
ON org_fs_entry (organization_id, volume, size)
|
|
1103
1103
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1104
|
-
`.execute(_)}async function
|
|
1104
|
+
`.execute(_)}async function eP(_){await _.schema.dropTable("org_fs_entry").execute(),await A`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var zm={};m(zm,{up:()=>lP,down:()=>dP});async function lP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function dP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var Pm={};m(Pm,{up:()=>sP,down:()=>bP});import{sql as _N}from"kysely";async function sP(_){await _N`
|
|
1105
1105
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1106
1106
|
SELECT
|
|
1107
1107
|
'org_orgfs_public_skills',
|
|
@@ -1115,13 +1115,13 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1115
1115
|
END,
|
|
1116
1116
|
now()
|
|
1117
1117
|
ON CONFLICT (id) DO NOTHING
|
|
1118
|
-
`.execute(_)}async function
|
|
1118
|
+
`.execute(_)}async function bP(_){await _N`
|
|
1119
1119
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1120
|
-
`.execute(_)}var
|
|
1120
|
+
`.execute(_)}var $m={};m($m,{up:()=>_$,down:()=>x$});async function _$(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function x$(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Um={};m(Um,{up:()=>u$,down:()=>m$});import{sql as xN}from"kysely";async function u$(_){await xN`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function m$(_){await xN`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Jm={};m(Jm,{up:()=>T$,down:()=>N$});import{sql as C$}from"kysely";async function T$(_){await C$`
|
|
1121
1121
|
UPDATE downstream_tokens
|
|
1122
1122
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1123
1123
|
WHERE "expiresAt" IS NULL
|
|
1124
|
-
`.execute(_)}async function
|
|
1124
|
+
`.execute(_)}async function N$(_){}var Xm={};m(Xm,{up:()=>K$,down:()=>E$});async function K$(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function E$(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var jm={};m(jm,{up:()=>z$,down:()=>P$});async function z$(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function P$(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var Qm={};m(Qm,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function U$(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Wm={};m(Wm,{up:()=>J$,down:()=>X$});async function J$(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function X$(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Zm={};m(Zm,{up:()=>j$,down:()=>Q$});async function j$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function Q$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Dm={};m(Dm,{up:()=>W$,down:()=>Z$});import{sql as uN}from"kysely";async function W$(_){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(uN`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(uN`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function Z$(_){await _.schema.dropTable("org_sites").execute()}var Lm={};m(Lm,{up:()=>D$,down:()=>L$});async function D$(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function L$(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Fm={};m(Fm,{up:()=>F$,down:()=>R$});import{sql as D}from"kysely";async function F$(_){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 D`
|
|
1125
1125
|
UPDATE organization_domains
|
|
1126
1126
|
SET
|
|
1127
1127
|
id = gen_random_uuid()::text,
|
|
@@ -1130,18 +1130,18 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1130
1130
|
verification_method = 'email',
|
|
1131
1131
|
verified_at = created_at
|
|
1132
1132
|
WHERE id IS NULL
|
|
1133
|
-
`.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await D`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await D`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
|
|
1133
|
+
`.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await D`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await D`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 R$(_){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 D`
|
|
1134
1134
|
UPDATE organization_domains
|
|
1135
1135
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
1136
|
-
`.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`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
|
|
1136
|
+
`.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`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 Rm={};m(Rm,{up:()=>Y$,down:()=>H$});import{sql as H_}from"kysely";async function Y$(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(H_`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(H_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(H_`now()`)).execute(),await H_`
|
|
1137
1137
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1138
1138
|
ON organization_join_requests (organization_id, user_id)
|
|
1139
1139
|
WHERE status = 'pending'
|
|
1140
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function
|
|
1140
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function H$(_){await _.schema.dropTable("organization_join_requests").execute()}var Ym={};m(Ym,{up:()=>M$,down:()=>n$});async function M$(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function n$(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Hm={};m(Hm,{up:()=>B$,down:()=>G$});async function B$(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function G$(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Bm={};m(Bm,{up:()=>O$,splitWebResearchTier:()=>nm,down:()=>S$,__testing:()=>f$});function y$(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Mm(_){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 nm(_){if(!_||Mm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,N=null,E=null;if(u)if(y$(u.modelId))E=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:E}}}var f$={splitWebResearchTier:nm,isAlreadySplit:Mm};async function O$(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let T=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(Mm(T))continue;let C=nm(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function S$(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Gm={};m(Gm,{up:()=>A$,down:()=>I$});import{sql as u_}from"kysely";async function A$(_){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(u_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(u_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await u_`
|
|
1141
1141
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1142
1142
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1143
1143
|
WHERE revoked_at IS NULL
|
|
1144
|
-
`.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(u_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(u_`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
|
|
1144
|
+
`.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(u_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(u_`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 I$(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var ym={};m(ym,{up:()=>w$,down:()=>V$});async function w$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function V$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var fm={};m(fm,{up:()=>k$,down:()=>p$});import{sql as k}from"kysely";async function k$(_){await k`
|
|
1145
1145
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1146
1146
|
RETURNS jsonb AS $fn$
|
|
1147
1147
|
BEGIN
|
|
@@ -1200,7 +1200,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1200
1200
|
BEFORE INSERT ON connection_aggregations
|
|
1201
1201
|
FOR EACH ROW
|
|
1202
1202
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1203
|
-
`.execute(_)}async function
|
|
1203
|
+
`.execute(_)}async function p$(_){await k`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await k`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await k`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Sm={};m(Sm,{up:()=>t$,down:()=>i$});import{sql as Om}from"kysely";async function t$(_){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(Om`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Om`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(Om`false`)).execute()}async function i$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var Am={};m(Am,{up:()=>v$,down:()=>q$});async function v$(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function q$(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var Im={};m(Im,{up:()=>g$,down:()=>c$});async function g$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function c$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var wm={};m(wm,{up:()=>h$,down:()=>o$});async function h$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function o$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var Vm={};m(Vm,{up:()=>r$,down:()=>e$});import{sql as a$}from"kysely";async function r$(_){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(a$`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 e$(_){await _.schema.dropTable("task_board_item_threads").execute()}var km={};m(km,{up:()=>l$,down:()=>d$});async function l$(_){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 d$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var pm={};m(pm,{up:()=>b$,down:()=>_U});import{sql as s$}from"kysely";async function b$(_){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(s$`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 _U(_){await _.schema.dropTable("task_board_item_prs").execute()}var tm={};m(tm,{up:()=>uU,down:()=>mU});import{sql as xU}from"kysely";async function uU(_){await xU`
|
|
1204
1204
|
DELETE FROM member
|
|
1205
1205
|
WHERE id IN (
|
|
1206
1206
|
SELECT id FROM (
|
|
@@ -1219,38 +1219,38 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1219
1219
|
) ranked
|
|
1220
1220
|
WHERE ranked.rn > 1
|
|
1221
1221
|
)
|
|
1222
|
-
`.execute(_)}async function
|
|
1222
|
+
`.execute(_)}async function mU(_){}var im={};m(im,{up:()=>CU,down:()=>TU});async function CU(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function TU(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var vm={};m(vm,{up:()=>NU,down:()=>KU});async function NU(_){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 KU(_){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 qm={};m(qm,{up:()=>zU,down:()=>PU});import{sql as EU}from"kysely";async function zU(_){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(EU`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 PU(_){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 gm={};m(gm,{up:()=>UU,down:()=>JU});import{sql as $U}from"kysely";async function UU(_){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($U`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 JU(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var cm={};m(cm,{up:()=>XU,down:()=>jU});import{sql as M_}from"kysely";async function XU(_){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(M_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(M_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",M_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",M_`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 jU(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var hm={};m(hm,{up:()=>QU,down:()=>WU});import{sql as n_}from"kysely";async function QU(_){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(n_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(n_`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(n_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await n_`
|
|
1223
1223
|
insert into organization_billing (organization_id, legacy)
|
|
1224
1224
|
select id, true from organization
|
|
1225
1225
|
on conflict (organization_id) do nothing
|
|
1226
|
-
`.execute(_)}async function
|
|
1226
|
+
`.execute(_)}async function WU(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var om={};m(om,{up:()=>ZU,down:()=>DU});import{sql as mN}from"kysely";async function ZU(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(mN`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(mN`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function DU(_){await _.schema.dropTable("seat_change_log").execute()}var am={};m(am,{up:()=>LU,down:()=>FU});async function LU(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function FU(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var rm={};m(rm,{up:()=>RU,down:()=>YU});import{sql as CN}from"kysely";async function RU(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await CN`
|
|
1227
1227
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1228
1228
|
on organization_billing (stripe_subscription_id)
|
|
1229
1229
|
where stripe_subscription_id is not null
|
|
1230
|
-
`.execute(_)}async function
|
|
1230
|
+
`.execute(_)}async function YU(_){await CN`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var em={};m(em,{up:()=>HU,down:()=>MU});async function HU(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function MU(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var lm={};m(lm,{up:()=>nU,down:()=>BU});import{sql as TN}from"kysely";async function nU(_){await TN`
|
|
1231
1231
|
create index idx_org_billing_benefits_pending
|
|
1232
1232
|
on organization_billing (updated_at)
|
|
1233
1233
|
where benefits_reference_id is not null
|
|
1234
|
-
`.execute(_)}async function
|
|
1234
|
+
`.execute(_)}async function BU(_){await TN`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var dm={};m(dm,{up:()=>GU,down:()=>yU});import{sql as NN}from"kysely";async function GU(_){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(NN`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(NN`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 yU(_){await _.schema.dropTable("user_model_preferences").execute()}var sm={};m(sm,{up:()=>fU,down:()=>OU});async function fU(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function OU(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var bm={};m(bm,{up:()=>SU,down:()=>AU});async function SU(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function AU(_){}var _C={};m(_C,{up:()=>IU,down:()=>wU});import{sql as KN}from"kysely";async function IU(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await KN`
|
|
1235
1235
|
UPDATE organization_settings
|
|
1236
1236
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1237
1237
|
WHERE reports_only IS NOT NULL
|
|
1238
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1238
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function wU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await KN`
|
|
1239
1239
|
UPDATE organization_settings
|
|
1240
1240
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1241
1241
|
WHERE flags ? 'reports_only'
|
|
1242
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1242
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var xC={};m(xC,{up:()=>kU,down:()=>pU});import{sql as VU}from"kysely";async function kU(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await VU`
|
|
1243
1243
|
update task_board_items
|
|
1244
1244
|
set sort_order = -extract(epoch from created_at)
|
|
1245
|
-
`.execute(_)}async function
|
|
1245
|
+
`.execute(_)}async function pU(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var uC={};m(uC,{up:()=>tU,down:()=>iU,ACTIONS:()=>EN});import{sql as B_}from"kysely";var EN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function tU(_){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(B_`now()`)).addCheckConstraint("chk_task_board_activity_action",B_`action IN (${B_.join(EN.map((x)=>B_.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 iU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var CC={};m(CC,{up:()=>vU,down:()=>qU,ACTIONS:()=>mC});import{sql as m_}from"kysely";var mC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function vU(_){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(m_`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 zN(_,mC)}async function qU(_){await zN(_,mC.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 zN(_,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 NC={};m(NC,{up:()=>cU,down:()=>hU});import{sql as PN}from"kysely";function TC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function gU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return TC(T)}catch{return TC(_.connection_url)}if(_.title)return TC(_.title);return _.id}async function cU(_){let x=await PN`
|
|
1246
1246
|
SELECT id, app_name, connection_url, title, slug
|
|
1247
1247
|
FROM connections
|
|
1248
1248
|
WHERE connection_type != 'VIRTUAL'
|
|
1249
|
-
`.execute(_),u=0;for(let T of x.rows){let C=
|
|
1249
|
+
`.execute(_),u=0;for(let T of x.rows){let C=gU(T);if(C===T.slug)continue;await PN`UPDATE connections SET slug = ${C} WHERE id = ${T.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function hU(){}var KC={};m(KC,{up:()=>aU,down:()=>rU});import{sql as oU}from"kysely";async function aU(_){await oU`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 rU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var zC={};m(zC,{up:()=>lU,down:()=>dU,ACTIONS:()=>EC});import{sql as G_}from"kysely";var EC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],eU=new Set(["review_requested","review_approved","review_changes_requested"]);async function lU(_){await $N(_,EC)}async function dU(_){await $N(_,EC.filter((x)=>!eU.has(x)))}async function $N(_,x){await G_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await G_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${G_.join(x.map((u)=>G_.lit(u)))}))`.execute(_)}var PC={};m(PC,{up:()=>bU,down:()=>_J});import{sql as sU}from"kysely";async function bU(_){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(sU`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 _J(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var UC={};m(UC,{up:()=>uJ,down:()=>mJ,ACTIONS:()=>$C});import{sql as y_}from"kysely";var $C=["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"],xJ=new Set(["merge_conflict_resolution"]);async function uJ(_){await UN(_,$C)}async function mJ(_){await UN(_,$C.filter((x)=>!xJ.has(x)))}async function UN(_,x){await y_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await y_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${y_.join(x.map((u)=>y_.lit(u)))}))`.execute(_)}var JC={};m(JC,{up:()=>CJ,down:()=>TJ});import{sql as C_}from"kysely";async function CJ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await C_`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 TJ(_){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 C_`
|
|
1250
1250
|
create index idx_org_billing_benefits_pending
|
|
1251
1251
|
on organization_billing (updated_at)
|
|
1252
1252
|
where benefits_reference_id is not null
|
|
1253
|
-
`.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(C_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(C_`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(C_`now()`)).execute()}var
|
|
1253
|
+
`.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(C_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(C_`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(C_`now()`)).execute()}var XC={};m(XC,{up:()=>NJ,down:()=>KJ});import{sql as f_}from"kysely";async function NJ(_){await f_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await f_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function KJ(_){await f_`
|
|
1254
1254
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1255
1255
|
RETURNS trigger AS $fn$
|
|
1256
1256
|
BEGIN
|
|
@@ -1276,23 +1276,23 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1276
1276
|
BEFORE INSERT ON connection_aggregations
|
|
1277
1277
|
FOR EACH ROW
|
|
1278
1278
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1279
|
-
`.execute(_)}var
|
|
1279
|
+
`.execute(_)}var jC={};m(jC,{up:()=>EJ,down:()=>zJ});import{sql as JN}from"kysely";async function EJ(_){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(JN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(JN`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function zJ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var QC={};m(QC,{up:()=>PJ,down:()=>$J});import{sql as XN}from"kysely";async function PJ(_){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(XN`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(XN`now()`)).execute()}async function $J(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var ZC={};m(ZC,{up:()=>UJ,down:()=>JJ});import{sql as WC}from"kysely";async function UJ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(WC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await WC`
|
|
1280
1280
|
create index idx_task_quota_claims_org_period_live
|
|
1281
1281
|
on task_quota_claims (organization_id, period_key)
|
|
1282
1282
|
where state <> 'released'
|
|
1283
|
-
`.execute(_)}async function
|
|
1283
|
+
`.execute(_)}async function JJ(_){await WC`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 DC={};m(DC,{up:()=>XJ,down:()=>jJ});async function XJ(_){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 jJ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var LC={};m(LC,{up:()=>QJ,down:()=>WJ});async function QJ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function WJ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var FC={};m(FC,{up:()=>ZJ,down:()=>DJ});import{sql as jN}from"kysely";async function ZJ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(jN`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(jN`monthly_task_executions > 0`)).execute()}async function DJ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var RC={};m(RC,{up:()=>FJ,down:()=>RJ});import{sql as LJ}from"kysely";async function FJ(_){await LJ`
|
|
1284
1284
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1285
1285
|
ON task_board_items (updated_at, id)
|
|
1286
1286
|
WHERE status = 'in_review'
|
|
1287
1287
|
AND assignee_id = 'super-agent'
|
|
1288
1288
|
AND dismissed_at IS NULL
|
|
1289
|
-
`.execute(_)}async function
|
|
1289
|
+
`.execute(_)}async function RJ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var YC={};m(YC,{up:()=>YJ,down:()=>HJ});import{sql as QN}from"kysely";async function YJ(_){await QN`
|
|
1290
1290
|
ALTER TABLE task_board_items
|
|
1291
1291
|
ADD COLUMN last_swept_at timestamptz
|
|
1292
|
-
`.execute(_)}async function
|
|
1292
|
+
`.execute(_)}async function HJ(_){await QN`
|
|
1293
1293
|
ALTER TABLE task_board_items
|
|
1294
1294
|
DROP COLUMN last_swept_at
|
|
1295
|
-
`.execute(_)}var
|
|
1295
|
+
`.execute(_)}var HC={};m(HC,{up:()=>MJ,down:()=>nJ});import{sql as O_}from"kysely";async function MJ(_){await O_`
|
|
1296
1296
|
ALTER TABLE task_board_items
|
|
1297
1297
|
ADD COLUMN retry_at timestamptz,
|
|
1298
1298
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
@@ -1300,11 +1300,11 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1300
1300
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1301
1301
|
ON task_board_items (retry_at)
|
|
1302
1302
|
WHERE retry_at IS NOT NULL
|
|
1303
|
-
`.execute(_)}async function
|
|
1303
|
+
`.execute(_)}async function nJ(_){await O_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await O_`
|
|
1304
1304
|
ALTER TABLE task_board_items
|
|
1305
1305
|
DROP COLUMN retry_at,
|
|
1306
1306
|
DROP COLUMN retry_attempts
|
|
1307
|
-
`.execute(_)}var
|
|
1307
|
+
`.execute(_)}var nC={};m(nC,{up:()=>BJ,down:()=>GJ});import{sql as MC}from"kysely";async function BJ(_){await MC`
|
|
1308
1308
|
CREATE TABLE org_repo_sync (
|
|
1309
1309
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1310
1310
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1322,11 +1322,11 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1322
1322
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1323
1323
|
UNIQUE (organization_id, volume)
|
|
1324
1324
|
)
|
|
1325
|
-
`.execute(_),await
|
|
1325
|
+
`.execute(_),await MC`
|
|
1326
1326
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1327
1327
|
ON org_repo_sync (organization_id)
|
|
1328
1328
|
WHERE enabled
|
|
1329
|
-
`.execute(_)}async function
|
|
1329
|
+
`.execute(_)}async function GJ(_){await MC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var GC={};m(GC,{up:()=>fJ,down:()=>OJ,ACTIONS:()=>BC});import{sql as S_}from"kysely";var BC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],yJ=new Set(["merge_failed"]);async function fJ(_){await WN(_,BC)}async function OJ(_){await WN(_,BC.filter((x)=>!yJ.has(x)))}async function WN(_,x){await S_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await S_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${S_.join(x.map((u)=>S_.lit(u)))}))`.execute(_)}var yC={};m(yC,{up:()=>SJ,down:()=>AJ});async function SJ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function AJ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var fC={};m(fC,{up:()=>IJ,down:()=>wJ});import{sql as g}from"kysely";async function IJ(_){await g`
|
|
1330
1330
|
CREATE TABLE org_jira_integrations (
|
|
1331
1331
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1332
1332
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1365,7 +1365,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1365
1365
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1366
1366
|
UNIQUE (organization_id, jira_comment_id)
|
|
1367
1367
|
)
|
|
1368
|
-
`.execute(_)}async function
|
|
1368
|
+
`.execute(_)}async function wJ(_){await g`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await g`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await g`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var OC={};m(OC,{up:()=>kJ,down:()=>pJ});import{sql as VJ}from"kysely";async function kJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await VJ`
|
|
1369
1369
|
update task_board_items as t
|
|
1370
1370
|
set key_seq = numbered.seq
|
|
1371
1371
|
from (
|
|
@@ -1378,25 +1378,25 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1378
1378
|
from task_board_items
|
|
1379
1379
|
) as numbered
|
|
1380
1380
|
where t.id = numbered.id
|
|
1381
|
-
`.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
|
|
1381
|
+
`.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 pJ(_){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 SC={};m(SC,{up:()=>tJ,down:()=>iJ});import{sql as ZN}from"kysely";async function tJ(_){await ZN`
|
|
1382
1382
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1383
1383
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1384
1384
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1385
|
-
`.execute(_)}async function
|
|
1385
|
+
`.execute(_)}async function iJ(_){await ZN`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var IC={};m(IC,{up:()=>vJ,down:()=>qJ});import{sql as AC}from"kysely";async function vJ(_){await AC`
|
|
1386
1386
|
ALTER TABLE thread_message_parts
|
|
1387
1387
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1388
|
-
`.execute(_),await
|
|
1388
|
+
`.execute(_),await AC`
|
|
1389
1389
|
ALTER TABLE thread_message_parts
|
|
1390
1390
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1391
|
-
`.execute(_)}async function
|
|
1391
|
+
`.execute(_)}async function qJ(_){await AC`
|
|
1392
1392
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1393
|
-
`.execute(_)}var
|
|
1393
|
+
`.execute(_)}var wC={};m(wC,{up:()=>gJ,down:()=>cJ});async function gJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function cJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var VC={};m(VC,{up:()=>oJ,down:()=>aJ});import{sql as hJ}from"kysely";async function oJ(_){await hJ`
|
|
1394
1394
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1395
1395
|
ON task_board_items (updated_at)
|
|
1396
1396
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1397
|
-
`.execute(_)}async function
|
|
1397
|
+
`.execute(_)}async function aJ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var kC={};m(kC,{up:()=>rJ,down:()=>eJ,TYPES:()=>DN});import{sql as I}from"kysely";var DN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function rJ(_){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(I`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(I`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(I`now()`)).addCheckConstraint("notifications_type_check",I`type IN (${I.join(DN.map((x)=>I.lit(x)))})`).execute(),await I`CREATE INDEX notifications_user_unread ON notifications
|
|
1398
1398
|
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await I`CREATE INDEX notifications_digest ON notifications
|
|
1399
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function
|
|
1399
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function eJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var pC={};m(pC,{up:()=>lJ,down:()=>dJ});import{sql as LN}from"kysely";async function lJ(_){await LN`
|
|
1400
1400
|
UPDATE org_jira_integrations
|
|
1401
1401
|
SET status_mapping = (
|
|
1402
1402
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1411,7 +1411,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1411
1411
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1412
1412
|
WHERE jsonb_typeof(value) = 'array'
|
|
1413
1413
|
)
|
|
1414
|
-
`.execute(_)}async function
|
|
1414
|
+
`.execute(_)}async function dJ(_){await LN`
|
|
1415
1415
|
UPDATE org_jira_integrations
|
|
1416
1416
|
SET status_mapping = (
|
|
1417
1417
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1426,7 +1426,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1426
1426
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1427
1427
|
WHERE jsonb_typeof(value) = 'array'
|
|
1428
1428
|
)
|
|
1429
|
-
`.execute(_)}var
|
|
1429
|
+
`.execute(_)}var iC={};m(iC,{up:()=>bJ,down:()=>_X,TYPES:()=>tC});import{sql as A_}from"kysely";var tC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],sJ=new Set(["mentioned"]);async function bJ(_){await FN(_,tC)}async function _X(_){await FN(_,tC.filter((x)=>!sJ.has(x)))}async function FN(_,x){await A_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await A_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${A_.join(x.map((u)=>A_.lit(u)))}))`.execute(_)}var qC={};m(qC,{up:()=>mX,down:()=>CX,ACTIONS:()=>vC});import{sql as w}from"kysely";var xX=["bug","feature","chore","spike","security"],vC=["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"],uX=new Set(["type_changed"]);async function mX(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await w`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${w.join(xX.map((x)=>w.lit(x)))}))`.execute(_),await RN(_,vC)}async function CX(_){await RN(_,vC.filter((x)=>!uX.has(x))),await w`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function RN(_,x){await w`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await w`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${w.join(x.map((u)=>w.lit(u)))}))`.execute(_)}var gC={};m(gC,{up:()=>TX,down:()=>NX});import{sql as j}from"kysely";var HN=["bug","feature","chore","spike","security"],YN="chore";async function TX(_){await j`UPDATE task_board_items SET type = ${j.lit(YN)} WHERE type IS NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${j.lit(YN)}`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await j`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await j`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${j.join(HN.map((x)=>j.lit(x)))}))`.execute(_)}async function NX(_){await j`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await j`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${j.join(HN.map((x)=>j.lit(x)))}))`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var cC={};m(cC,{up:()=>KX,down:()=>EX});import{sql as c}from"kysely";async function KX(_){await c`
|
|
1430
1430
|
CREATE TABLE task_board_sprints (
|
|
1431
1431
|
id text PRIMARY KEY,
|
|
1432
1432
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1451,34 +1451,34 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1451
1451
|
CREATE INDEX idx_task_board_items_sprint
|
|
1452
1452
|
ON task_board_items (organization_id, sprint_id)
|
|
1453
1453
|
WHERE sprint_id IS NOT NULL
|
|
1454
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function
|
|
1454
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function EX(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await c`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await c`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var hC={};m(hC,{up:()=>PX,down:()=>$X});import{sql as zX}from"kysely";async function PX(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function $X(_){await zX`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var oC={};m(oC,{up:()=>JX,down:()=>XX});import{sql as UX}from"kysely";async function JX(_){await UX`
|
|
1455
1455
|
UPDATE org_jira_integrations
|
|
1456
1456
|
SET last_synced_at = NULL,
|
|
1457
1457
|
last_sync_error = NULL
|
|
1458
1458
|
WHERE last_synced_at IS NOT NULL
|
|
1459
|
-
`.execute(_)}async function
|
|
1459
|
+
`.execute(_)}async function XX(){}var aC={};m(aC,{up:()=>QX,down:()=>WX});import{sql as jX}from"kysely";async function QX(_){await jX`
|
|
1460
1460
|
UPDATE org_jira_integrations
|
|
1461
1461
|
SET last_synced_at = NULL,
|
|
1462
1462
|
last_sync_error = NULL
|
|
1463
1463
|
WHERE last_synced_at IS NOT NULL
|
|
1464
|
-
`.execute(_)}async function
|
|
1464
|
+
`.execute(_)}async function WX(){}var eC={};m(eC,{up:()=>ZX,down:()=>DX});import{sql as rC}from"kysely";async function ZX(_){await rC`
|
|
1465
1465
|
ALTER TABLE org_jira_integrations
|
|
1466
1466
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1467
|
-
`.execute(_),await
|
|
1467
|
+
`.execute(_),await rC`
|
|
1468
1468
|
UPDATE org_jira_integrations
|
|
1469
1469
|
SET rescan_pending = true
|
|
1470
1470
|
WHERE last_synced_at IS NULL
|
|
1471
|
-
`.execute(_)}async function
|
|
1471
|
+
`.execute(_)}async function DX(_){await rC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var lC={};m(lC,{up:()=>LX,down:()=>FX});async function LX(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function FX(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var dC={};m(dC,{up:()=>RX,down:()=>YX});import{sql as MN}from"kysely";async function RX(_){await MN`
|
|
1472
1472
|
ALTER TABLE invitation
|
|
1473
1473
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1474
|
-
`.execute(_)}async function
|
|
1474
|
+
`.execute(_)}async function YX(_){await MN`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var bC={};m(bC,{up:()=>HX,down:()=>MX});import{sql as sC}from"kysely";async function HX(_){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(sC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(sC`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 sC`
|
|
1475
1475
|
INSERT INTO task_board_column_automations
|
|
1476
1476
|
(id, organization_id, column_key, prompt)
|
|
1477
1477
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1478
1478
|
FROM org_jira_integrations
|
|
1479
1479
|
WHERE auto_delegate = true
|
|
1480
1480
|
ON CONFLICT DO NOTHING
|
|
1481
|
-
`.execute(_)}async function
|
|
1481
|
+
`.execute(_)}async function MX(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var _T={};m(_T,{up:()=>nX,down:()=>BX});import{sql as T_}from"kysely";async function nX(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await T_`
|
|
1482
1482
|
UPDATE task_board_items i
|
|
1483
1483
|
SET review_cycle_started_at = (
|
|
1484
1484
|
SELECT max(a.occurred_at)
|
|
@@ -1494,13 +1494,13 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1494
1494
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1495
1495
|
AND assignee_id = 'super-agent'
|
|
1496
1496
|
AND dismissed_at IS NULL
|
|
1497
|
-
`.execute(_),await T_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function
|
|
1497
|
+
`.execute(_),await T_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function BX(_){await T_`
|
|
1498
1498
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1499
1499
|
ON task_board_items (updated_at, id)
|
|
1500
1500
|
WHERE status = 'in_review'
|
|
1501
1501
|
AND assignee_id = 'super-agent'
|
|
1502
1502
|
AND dismissed_at IS NULL
|
|
1503
|
-
`.execute(_),await T_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var
|
|
1503
|
+
`.execute(_),await T_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var xT={};m(xT,{up:()=>GX,down:()=>yX});import{sql as nN}from"kysely";async function GX(_){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(nN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(nN`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 yX(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var mT={};m(mT,{up:()=>OX,down:()=>SX,ACTIONS:()=>uT});import{sql as I_}from"kysely";var uT=["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"],fX=new Set(["review_verdict_requested"]);async function OX(_){await BN(_,uT)}async function SX(_){await BN(_,uT.filter((x)=>!fX.has(x)))}async function BN(_,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 CT={};m(CT,{up:()=>AX,down:()=>IX});import{sql as w_}from"kysely";async function AX(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await w_`
|
|
1504
1504
|
ALTER TABLE task_board_items
|
|
1505
1505
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1506
1506
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
@@ -1510,13 +1510,13 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1510
1510
|
FOREIGN KEY (board_column_org, status)
|
|
1511
1511
|
REFERENCES task_board_columns (organization_id, key)
|
|
1512
1512
|
ON DELETE RESTRICT
|
|
1513
|
-
`.execute(_)}async function
|
|
1513
|
+
`.execute(_)}async function IX(_){await w_`
|
|
1514
1514
|
ALTER TABLE task_board_items
|
|
1515
1515
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
1516
1516
|
`.execute(_),await w_`
|
|
1517
1517
|
ALTER TABLE task_board_items
|
|
1518
1518
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
1519
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
1519
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var TT={};m(TT,{up:()=>wX,down:()=>VX});async function wX(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function VX(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var KT={};m(KT,{up:()=>pX,down:()=>tX,ACTIONS:()=>NT});import{sql as V_}from"kysely";var NT=["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"],kX=new Set(["sprint_changed"]);async function pX(_){await GN(_,NT)}async function tX(_){await GN(_,NT.filter((x)=>!kX.has(x)))}async function GN(_,x){await V_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await V_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${V_.join(x.map((u)=>V_.lit(u)))}))`.execute(_)}var ET={};m(ET,{up:()=>vX,down:()=>qX});import{sql as iX}from"kysely";async function vX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(iX`'[]'::jsonb`)).execute()}async function qX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var zT={};m(zT,{up:()=>gX,down:()=>cX});import{sql as yN}from"kysely";async function gX(_){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(yN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(yN`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function cX(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var PT={};m(PT,{up:()=>oX,down:()=>aX});import{sql as hX}from"kysely";async function oX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await hX`
|
|
1520
1520
|
UPDATE task_board_items i
|
|
1521
1521
|
SET external_url = t.url,
|
|
1522
1522
|
description = CASE
|
|
@@ -1535,11 +1535,11 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1535
1535
|
ON g.organization_id = l.organization_id
|
|
1536
1536
|
) t
|
|
1537
1537
|
WHERE t.item_id = i.id
|
|
1538
|
-
`.execute(_)}async function
|
|
1538
|
+
`.execute(_)}async function aX(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var $T={};m($T,{up:()=>eX,down:()=>lX,ACTIONS:()=>fN});import{sql as J}from"kysely";var rX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],fN=["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 eX(_){await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await J`DROP TABLE IF EXISTS task_board_columns`.execute(_),await J`
|
|
1539
1539
|
UPDATE task_board_items
|
|
1540
1540
|
SET status = 'triage'
|
|
1541
|
-
WHERE status NOT IN (${J.join(
|
|
1542
|
-
`.execute(_),await J`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await J`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await
|
|
1541
|
+
WHERE status NOT IN (${J.join(rX.map((x)=>J.lit(x)))})
|
|
1542
|
+
`.execute(_),await J`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await J`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await dX(_,fN),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
|
|
1543
1543
|
ALTER TABLE task_board_item_jira_links
|
|
1544
1544
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
1545
1545
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -1551,7 +1551,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1551
1551
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
1552
1552
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
1553
1553
|
DROP COLUMN IF EXISTS rescan_pending
|
|
1554
|
-
`.execute(_)}async function
|
|
1554
|
+
`.execute(_)}async function lX(){}async function dX(_,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 UT={};m(UT,{up:()=>sX,down:()=>bX});import{sql as h}from"kysely";async function sX(_){await h`
|
|
1555
1555
|
ALTER TABLE task_board_items
|
|
1556
1556
|
ADD COLUMN IF NOT EXISTS source text
|
|
1557
1557
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
@@ -1572,24 +1572,24 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1572
1572
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1573
1573
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
1574
1574
|
)
|
|
1575
|
-
`.execute(_)}async function
|
|
1575
|
+
`.execute(_)}async function bX(_){await h`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await h`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await h`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var JT={};m(JT,{up:()=>_j,down:()=>xj});import{sql as N_}from"kysely";async function _j(_){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(N_`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(N_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(N_`now()`)).execute(),await N_`
|
|
1576
1576
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
1577
1577
|
ON organization_notices (organization_id)
|
|
1578
1578
|
WHERE resolved_at IS NULL
|
|
1579
1579
|
`.execute(_),await N_`
|
|
1580
1580
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
1581
1581
|
ON organization_notices (organization_id, created_at DESC)
|
|
1582
|
-
`.execute(_)}async function
|
|
1582
|
+
`.execute(_)}async function xj(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var jT={};m(jT,{up:()=>$j,down:()=>Uj});import{sql as XT}from"kysely";import{sql as UZ}from"kysely";var ON=50000000,uj=1e5;function mj(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>uj)return 1/0;let N=C.pop();if(typeof N==="string")u+=N.length;else if(Array.isArray(N))for(let E of N)C.push(E);else if(N!==null&&typeof N==="object")for(let E of Object.values(N))C.push(E)}return u}var Cj=/\u0000/g,Tj=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,Nj=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,Kj=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,Ej=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function zj(_){return _.replace(Cj,"").replace(Tj,"\uFFFD").replace(Nj,"$1***@").replace(Kj,"$1***").replace(Ej,"[base64 data omitted]")}function Pj(_){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 SN(_){if(mj(_,ON)>ON)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return zj(u);if(Pj(u))return{type:"text",text:"[image omitted]"};return u})}var AN=20;async function $j(_){let x=await XT`
|
|
1583
1583
|
SELECT id FROM thread_message_parts
|
|
1584
1584
|
WHERE pg_column_size(payload) > 8192
|
|
1585
1585
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
1586
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
1586
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=AN){let T=x.rows.slice(u,u+AN).map((N)=>N.id),C=await XT`
|
|
1587
1587
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${T})
|
|
1588
|
-
`.execute(_);for(let N of C.rows){let E=
|
|
1588
|
+
`.execute(_);for(let N of C.rows){let E=SN(N.payload);if(E===JSON.stringify(N.payload))continue;await XT`
|
|
1589
1589
|
UPDATE thread_message_parts
|
|
1590
1590
|
SET payload = ${E}::jsonb
|
|
1591
1591
|
WHERE id = ${N.id}
|
|
1592
|
-
`.execute(_)}}}async function
|
|
1592
|
+
`.execute(_)}}}async function Uj(){}var QT={};m(QT,{up:()=>Jj,down:()=>Xj});async function Jj(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function Xj(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var WT={};m(WT,{up:()=>jj,down:()=>Qj});import{sql as P}from"kysely";async function jj(_){await P`
|
|
1593
1593
|
CREATE TABLE git_provider_accounts (
|
|
1594
1594
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1595
1595
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1833,11 +1833,11 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1833
1833
|
AND r.organization_id = s.organization_id
|
|
1834
1834
|
AND r.host = 'github.com'
|
|
1835
1835
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
|
|
1836
|
-
`.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function
|
|
1836
|
+
`.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function Qj(_){await P`
|
|
1837
1837
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
1838
1838
|
`.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
|
|
1839
1839
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
1840
|
-
`.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
|
|
1840
|
+
`.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 ZT={};m(ZT,{up:()=>Zj,down:()=>Dj});import{sql as H}from"kysely";var Wj=H`
|
|
1841
1841
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
1842
1842
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
1843
1843
|
BEGIN
|
|
@@ -1846,13 +1846,13 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1846
1846
|
RETURN NULL;
|
|
1847
1847
|
END;
|
|
1848
1848
|
$$
|
|
1849
|
-
`;async function
|
|
1849
|
+
`;async function Zj(_){await Wj.execute(_),await H`
|
|
1850
1850
|
ALTER TABLE connections
|
|
1851
1851
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
1852
|
-
`.execute(_),await
|
|
1852
|
+
`.execute(_),await H`
|
|
1853
1853
|
CREATE INDEX idx_connections_repository
|
|
1854
1854
|
ON connections (repository_id) WHERE repository_id IS NOT NULL
|
|
1855
|
-
`.execute(_),await
|
|
1855
|
+
`.execute(_),await H`
|
|
1856
1856
|
CREATE TABLE thread_repositories (
|
|
1857
1857
|
thread_id text NOT NULL REFERENCES threads(id) ON DELETE CASCADE,
|
|
1858
1858
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1860,10 +1860,10 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1860
1860
|
added_at timestamptz NOT NULL DEFAULT now(),
|
|
1861
1861
|
PRIMARY KEY (thread_id, repository_id)
|
|
1862
1862
|
)
|
|
1863
|
-
`.execute(_),await
|
|
1863
|
+
`.execute(_),await H`
|
|
1864
1864
|
CREATE INDEX idx_thread_repositories_repo
|
|
1865
1865
|
ON thread_repositories (repository_id)
|
|
1866
|
-
`.execute(_),await
|
|
1866
|
+
`.execute(_),await H`
|
|
1867
1867
|
UPDATE connections c
|
|
1868
1868
|
SET repository_id = r.id
|
|
1869
1869
|
FROM repositories r
|
|
@@ -1875,7 +1875,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1875
1875
|
|| '/' ||
|
|
1876
1876
|
(repo_ref_try_jsonb(c.metadata) #>> '{githubRepo,name}')
|
|
1877
1877
|
)
|
|
1878
|
-
`.execute(_),await
|
|
1878
|
+
`.execute(_),await H`
|
|
1879
1879
|
INSERT INTO repositories (
|
|
1880
1880
|
organization_id, account_id, provider, host, path, web_url
|
|
1881
1881
|
)
|
|
@@ -1896,7 +1896,7 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1896
1896
|
AND e.name NOT LIKE '%/%'
|
|
1897
1897
|
ORDER BY t.organization_id, lower(e.owner || '/' || e.name)
|
|
1898
1898
|
ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
|
|
1899
|
-
`.execute(_),await
|
|
1899
|
+
`.execute(_),await H`
|
|
1900
1900
|
INSERT INTO thread_repositories (thread_id, organization_id, repository_id)
|
|
1901
1901
|
SELECT DISTINCT t.id, t.organization_id, r.id
|
|
1902
1902
|
FROM threads t
|
|
@@ -1908,21 +1908,21 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1908
1908
|
AND r.host = 'github.com'
|
|
1909
1909
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
1910
1910
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
1911
|
-
`.execute(_),await
|
|
1911
|
+
`.execute(_),await H`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function Dj(_){await H`DROP TABLE IF EXISTS thread_repositories`.execute(_),await H`
|
|
1912
1912
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
1913
|
-
`.execute(_)}var Qj={"001-initial-schema":xx,"002-organization-settings":ux,"003-connection-schema-align":mx,"004-remove-models-binding":Cx,"005-connection-configuration":Tx,"006-add-views-to-settings":Nx,"007-monitoring-logs":Kx,"008-event-bus":Ex,"009-drop-audit-logs":zx,"010-gateways":Px,"011-gateway-icon":$x,"012-gateway-tool-selection-mode":Ux,"013-monitoring-user-agent-gateway":Jx,"014-gateway-resources-prompts":Xx,"015-monitoring-properties":jx,"016-downstream-token-client-info":Qx,"017-downstream-token-remove-userid":Wx,"018-drop-gateway-tool-selection-strategy":Zx,"019-remove-gateway-is-default":Dx,"020-enabled-plugins":Lx,"021-threads":nx,"022-rename-gateway-to-virtual-mcp":Fx,"023-optimize-thread-indexes":Rx,"024-consolidate-virtual-mcp":Yx,"025-add-monitoring-virtual-mcp-id":Hx,"026-restrict-child-connection-delete":Mx,"027-update-management-mcp-url":yx,"028-update-management-mcp-to-self":fx,"029-add-updated-by-to-connections":Ox,"030-member-tags":Sx,"031-add-dependency-mode":Ax,"032-projects":Ix,"033-thread-status":wx,"034-monitoring-dashboards":Vx,"035-project-connections":kx,"036-update-registry-url":px,"037-ai-provider-keys":tx,"038-oauth-pkce-states":ix,"039-automations":vx,"040-replace-next-run-at-with-last-run-at":qx,"041-ai-provider-keys-unique-constraint":gx,"042-rename-mesh-mcp-to-cms-mcp":cx,"043-rename-cms-mcp-to-deco-cms":hx,"044-drop-connections-tools-column":ox,"045-thread-context-start-message":ax,"046-remove-object-storage-plugin":ex,"047-add-next-run-at":lx,"048-merge-projects-agents":sx,"049-remove-org-admin-projects":bx,"050-durable-agent-runs":_u,"051-org-sso":uu,"052-thread-agent-ids":mu,"053-registry-config":Cu,"054-connection-slug":Nu,"055-spaces":Ku,"056-automation-project-scope":Eu,"057-thread-virtual-mcp-id":zu,"058-trigger-callback-tokens":Pu,"059-kv":$u,"060-member-index":Uu,"061-downstream-token-connection-index":Ju,"062-private-registry":Xu,"063-event-subscriptions-enabled-boolean":ju,"064-brand-context":Qu,"065-organization-domains":Wu,"066-brand-context-structured":Zu,"067-threads-metadata":Du,"068-threads-branch":Lu,"069-sandbox-runner-state":nu,"070-model-categories":Fu,"071-default-home-agents":Ru,"072-ai-provider-key-preset-id":Yu,"073-backfill-basic-usage-roles":Hu,"074-sandbox-runner-state-handle-nonunique":Mu,"075-thread-inflight-async-jobs":Bu,"076-automations-drop-agent-json":yu,"077-tier-only-model-selection":fu,"078-automation-tool-call-kind":Ou,"079-strip-legacy-freestyle-vm-map-entries":Su,"080-async-research-jobs":Au,"081-async-research-jobs-result-content":Iu,"082-secrets":wu,"083-thread-run-locally":Vu,"084-drop-host-sandbox-rows":ku,"085-rename-runner-kind":pu,"086-thread-pins-and-vm-map-rekey":tu,"087-fix-vm-map-rekey":iu,"088-purge-cli-activate-keys":vu,"089-rename-remote-user-to-desktop":qu,"090-automation-webhook-triggers":gu,"091-organization-domains-allow-multi":cu,"092-sandbox-naming-uniformization":hu,"093-backfill-global-search-basic-usage":ou,"094-org-file-configs":ru,"095-remove-automation-tool-call-kind":eu,"096-org-file-configs-public-url-base":lu,"097-drop-local-docker-sandbox-state":su,"098-thread-message-parts":bu,"099-run-fence":_m,"100-link-transport":xm,"101-cancel-requested-at":um,"102-observational-agent":mm,"103-revert-observational-agent":Cm,"104-agent-sandbox-provider-kind":Nm,"105-org-fs":Km,"106-automation-tools":Em,"107-org-fs-public-org":zm,"108-automation-max-agent-steps":Pm,"109-thread-message-parts-per-message-seq":$m,"110-backfill-ghs-token-expiry":Um,"111-org-fs-thread-id":Jm,"112-org-file-configs-credential-type":Xm,"113-thread-failure-reason":jm,"114-run-acked-seq":Qm,"115-thread-projected-seq":Wm,"116-org-sites":Zm,"117-org-file-configs-site-slug":Dm,"118-organization-domains-multi-verify":Lm,"119-organization-join-requests":nm,"120-org-fs-read-public":Fm,"121-org-fs-share-password":Rm,"122-split-web-research-tier":Mm,"123-connection-credential-vault":Bm,"124-drop-thread-projected-seq":ym,"125-github-child-single-parent":Gm,"126-task-board":Om,"127-task-board-due-date":Sm,"128-reports-only":Am,"129-task-board-assigned-by":Im,"130-task-board-thread-id":wm,"131-task-board-thread-link-cascade":Vm,"132-task-board-item-prs":km,"133-dedupe-duplicate-members":pm,"134-drop-task-board-enabled":tm,"135-task-board-item-fk-cascade":im,"136-task-board-import-idempotency":vm,"137-agent-sandbox-runner-state":qm,"138-agent-sandbox-sessions":gm,"139-organization-billing":cm,"140-seat-change-log":hm,"141-benefits-sync-pending":om,"142-stripe-event-watermark":am,"143-armed-report-url":rm,"144-benefits-pending-index":em,"145-user-model-preferences":lm,"146-organization-main-agent":dm,"147-drop-agent-sandbox-tables":sm,"148-org-flags":bm,"149-task-board-item-sort-order":_C,"150-task-board-activity":xC,"151-task-board-tags":mC,"152-repair-connection-slug":TC,"153-task-board-latest-assistant-part-index":NC,"154-task-board-qa-activity":EC,"155-task-board-review-claims":zC,"156-task-board-conflict-activity":$C,"157-drop-seat-billing":UC,"158-drop-github-child-single-parent":JC,"159-task-board-comments":XC,"160-task-quota-billing":jC,"161-task-quota-claim-state":WC,"162-claude-subscriptions":ZC,"163-task-board-item-dismissed":DC,"164-per-org-task-quota":LC,"165-task-board-pending-review-index":nC,"166-task-board-last-swept-at":FC,"167-task-board-run-retry":RC,"168-org-repo-sync":HC,"169-task-board-merge-failed-activity":BC,"170-task-board-item-repo":yC,"171-jira-integration":GC,"172-task-board-item-key-seq":fC,"173-thread-github-repo-connection-index":OC,"174-thread-message-parts-persisted-at":AC,"175-task-board-sprints":IC,"176-task-board-done-sweep-index":wC,"177-notifications":VC,"178-jira-status-mapping-array":kC,"179-notification-mentioned":tC,"180-task-board-item-type":vC,"181-task-board-item-type-required":qC,"182-task-board-sprints-entities":gC,"183-drop-jira-jql-filter":cC,"184-jira-rescan-after-scope-change":hC,"185-jira-rescan-existing-cards":oC,"186-jira-rescan-pending-flag":rC,"187-task-board-comment-thread":eC,"188-invitation-auto-accept":lC,"189-task-board-column-automations":sC,"190-task-board-review-cycle-started-at":bC,"191-task-board-columns":_T,"192-task-board-verdict-nudge-activity":uT,"193-task-board-status-column-fk":mT,"194-jira-link-sprint":CT,"195-task-board-sprint-activity":NT,"196-task-board-column-tracker-statuses":KT,"197-task-board-prompts":ET,"198-task-board-external-url":zT,"199-drop-jira-mirror-and-org-columns":PT,"200-jira-run-trigger":$T,"201-organization-notices":UT,"202-redact-base64-thread-parts":XT,"203-task-board-preview-routes":jT,"204-git-provider-accounts-and-repositories":QT,"205-repository-references":WT,"206-repository-consumers":_x,"207-task-board-prs-repo-idx":b_,"208-github-connect-flows":s_,"209-github-installation-authorization":d_,"210-github-repository-authorization":a_,"211-user-fs-org":o_,"212-coding-agent-mcp-excluded":r_,"213-bitbucket-git-provider":e_,"214-connections-sanitized-id-idx":q_,"215-commerce-discovery-repository":g_,"216-github-cli-auth":h_,"217-experiments":l_},ZT=Qj;import{getMigrations as rj}from"better-auth/db";import{sso as ej}from"@better-auth/sso";import{organization as lj}from"@decocms/better-auth/plugins";import{admin as dj,apiKey as sj,jwt as bj,magicLink as _Q,mcp as xQ,openAPI as uQ}from"better-auth/plugins";import{emailOTP as mQ}from"better-auth/plugins/email-otp";import{Kysely as vj,PostgresDialect as gN}from"kysely";import{Pool as cN}from"pg";import{homedir as Wj}from"os";var Zj=new Set(["all","worker","api"]);function Dj(_){let x=(_??"").trim();return Zj.has(x)?x:"all"}var Lj=new Set(["production","development","test"]);function nj(_){let x=(_??"").trim();return Lj.has(x)?x:"development"}function W(_){return _==="true"||_==="1"}function LT(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function G(_,x,u,T){return LT(_,x,T)??u}function Fj(_){let x={};for(let u of(_??"").split(",")){let T=u.trim();if(!T)continue;let C=T.indexOf("="),N=C>0?T.slice(0,C).trim():"",E=C>0?T.slice(C+1).trim():"";if(!N||!E){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${T}" \u2014 expected price_xxx=planId`);continue}x[N]=E}return x}function Rj(_,x,u,T){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&C>T)throw Error(`${_} must be at most ${T}`);return C}function DT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function AN(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function Yj(_){return _===void 0||_===""||_==="true"||_==="1"}function K_(_,x){return _||x}function IN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${Wj()}/deco`,T=_.localMode,C=_.nodeEnv||nj(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222",E={nodeEnv:C,port:G("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:K_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:W(x.DATABASE_PG_SSL),databasePoolMax:G("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:G("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:K_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:W(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:W(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((K)=>K.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((K)=>K.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:LT("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:W(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:Fj(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:Rj("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:W(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:G("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:G("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:G("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:W(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:W(x.HOSTING_CONTROL_PLANE_GA),monitorGa:W(x.MONITOR_GA),plansEnabled:W(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:DT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:W(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:G("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:G("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:DT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:G("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:Yj(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:LT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:Dj(K_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:W(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:W(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:DT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:W(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:G("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:K_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:K_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(E.plansEnabled&&!E.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(E.plansEnabled&&!E.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(E.plansEnabled&&!E.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(E.plansEnabled&&Object.keys(E.stripePlanPriceIds).length>0&&!E.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(E.plansEnabled&&Object.keys(E.stripePlanPriceIds).length>1&&!E.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{settings:E,externalDatabaseUrl:AN(x.DATABASE_URL),externalNatsUrl:AN(N),skipMigrations:_.skipMigrations}}var k_=null;function o(){if(!k_)Hj();return k_}function Hj(){if(k_)return;let _={...process.env},x=IN({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);k_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as Oj,metrics as Sj,propagation as M4,ROOT_CONTEXT as B4,SpanStatusCode as y4,trace as Aj}from"@opentelemetry/api";import{logs as Ij,SeverityNumber as nT}from"@opentelemetry/api-logs";import{OTLPLogExporter as O4}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as wj}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as I4}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as V4}from"@opentelemetry/instrumentation-runtime-node";import{context as LZ,propagation as nZ,SpanKind as FZ,SpanStatusCode as RZ}from"@opentelemetry/api";var HZ=globalThis.fetch;import{ExportResultCode as kZ}from"@opentelemetry/core";import{ExportResultCode as p_}from"@opentelemetry/core";import{mkdir as Mj,rename as Bj,writeFile as yj}from"fs/promises";import{join as t_}from"path";class i_{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:p_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:p_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:p_.FAILED}});return Promise.resolve({code:p_.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),T=u.find((C)=>C.status==="rejected");if(T){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let N=_.filter((E)=>!C.has(E.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?t_(this.basePath,x,...T):t_(this.basePath,...T);if(!this.knownDirs.has(C))await Mj(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=t_(C,`.${N}.tmp`),K=t_(C,N),z=_.join(`
|
|
1913
|
+
`.execute(_)}var Lj={"001-initial-schema":ux,"002-organization-settings":mx,"003-connection-schema-align":Cx,"004-remove-models-binding":Tx,"005-connection-configuration":Nx,"006-add-views-to-settings":Kx,"007-monitoring-logs":Ex,"008-event-bus":zx,"009-drop-audit-logs":Px,"010-gateways":$x,"011-gateway-icon":Ux,"012-gateway-tool-selection-mode":Jx,"013-monitoring-user-agent-gateway":Xx,"014-gateway-resources-prompts":jx,"015-monitoring-properties":Qx,"016-downstream-token-client-info":Wx,"017-downstream-token-remove-userid":Zx,"018-drop-gateway-tool-selection-strategy":Dx,"019-remove-gateway-is-default":Lx,"020-enabled-plugins":Fx,"021-threads":Rx,"022-rename-gateway-to-virtual-mcp":Yx,"023-optimize-thread-indexes":Hx,"024-consolidate-virtual-mcp":Mx,"025-add-monitoring-virtual-mcp-id":nx,"026-restrict-child-connection-delete":Bx,"027-update-management-mcp-url":yx,"028-update-management-mcp-to-self":Ox,"029-add-updated-by-to-connections":Sx,"030-member-tags":Ax,"031-add-dependency-mode":Ix,"032-projects":wx,"033-thread-status":Vx,"034-monitoring-dashboards":kx,"035-project-connections":px,"036-update-registry-url":tx,"037-ai-provider-keys":ix,"038-oauth-pkce-states":vx,"039-automations":qx,"040-replace-next-run-at-with-last-run-at":gx,"041-ai-provider-keys-unique-constraint":cx,"042-rename-mesh-mcp-to-cms-mcp":hx,"043-rename-cms-mcp-to-deco-cms":ox,"044-drop-connections-tools-column":ax,"045-thread-context-start-message":rx,"046-remove-object-storage-plugin":lx,"047-add-next-run-at":dx,"048-merge-projects-agents":bx,"049-remove-org-admin-projects":_u,"050-durable-agent-runs":xu,"051-org-sso":mu,"052-thread-agent-ids":Cu,"053-registry-config":Tu,"054-connection-slug":Ku,"055-spaces":Eu,"056-automation-project-scope":zu,"057-thread-virtual-mcp-id":Pu,"058-trigger-callback-tokens":$u,"059-kv":Uu,"060-member-index":Ju,"061-downstream-token-connection-index":Xu,"062-private-registry":ju,"063-event-subscriptions-enabled-boolean":Qu,"064-brand-context":Wu,"065-organization-domains":Zu,"066-brand-context-structured":Du,"067-threads-metadata":Lu,"068-threads-branch":Fu,"069-sandbox-runner-state":Ru,"070-model-categories":Yu,"071-default-home-agents":Hu,"072-ai-provider-key-preset-id":Mu,"073-backfill-basic-usage-roles":nu,"074-sandbox-runner-state-handle-nonunique":Bu,"075-thread-inflight-async-jobs":Gu,"076-automations-drop-agent-json":yu,"077-tier-only-model-selection":Ou,"078-automation-tool-call-kind":Su,"079-strip-legacy-freestyle-vm-map-entries":Au,"080-async-research-jobs":Iu,"081-async-research-jobs-result-content":wu,"082-secrets":Vu,"083-thread-run-locally":ku,"084-drop-host-sandbox-rows":pu,"085-rename-runner-kind":tu,"086-thread-pins-and-vm-map-rekey":iu,"087-fix-vm-map-rekey":vu,"088-purge-cli-activate-keys":qu,"089-rename-remote-user-to-desktop":gu,"090-automation-webhook-triggers":cu,"091-organization-domains-allow-multi":hu,"092-sandbox-naming-uniformization":ou,"093-backfill-global-search-basic-usage":au,"094-org-file-configs":eu,"095-remove-automation-tool-call-kind":lu,"096-org-file-configs-public-url-base":du,"097-drop-local-docker-sandbox-state":bu,"098-thread-message-parts":_m,"099-run-fence":xm,"100-link-transport":um,"101-cancel-requested-at":mm,"102-observational-agent":Cm,"103-revert-observational-agent":Tm,"104-agent-sandbox-provider-kind":Km,"105-org-fs":Em,"106-automation-tools":zm,"107-org-fs-public-org":Pm,"108-automation-max-agent-steps":$m,"109-thread-message-parts-per-message-seq":Um,"110-backfill-ghs-token-expiry":Jm,"111-org-fs-thread-id":Xm,"112-org-file-configs-credential-type":jm,"113-thread-failure-reason":Qm,"114-run-acked-seq":Wm,"115-thread-projected-seq":Zm,"116-org-sites":Dm,"117-org-file-configs-site-slug":Lm,"118-organization-domains-multi-verify":Fm,"119-organization-join-requests":Rm,"120-org-fs-read-public":Ym,"121-org-fs-share-password":Hm,"122-split-web-research-tier":Bm,"123-connection-credential-vault":Gm,"124-drop-thread-projected-seq":ym,"125-github-child-single-parent":fm,"126-task-board":Sm,"127-task-board-due-date":Am,"128-reports-only":Im,"129-task-board-assigned-by":wm,"130-task-board-thread-id":Vm,"131-task-board-thread-link-cascade":km,"132-task-board-item-prs":pm,"133-dedupe-duplicate-members":tm,"134-drop-task-board-enabled":im,"135-task-board-item-fk-cascade":vm,"136-task-board-import-idempotency":qm,"137-agent-sandbox-runner-state":gm,"138-agent-sandbox-sessions":cm,"139-organization-billing":hm,"140-seat-change-log":om,"141-benefits-sync-pending":am,"142-stripe-event-watermark":rm,"143-armed-report-url":em,"144-benefits-pending-index":lm,"145-user-model-preferences":dm,"146-organization-main-agent":sm,"147-drop-agent-sandbox-tables":bm,"148-org-flags":_C,"149-task-board-item-sort-order":xC,"150-task-board-activity":uC,"151-task-board-tags":CC,"152-repair-connection-slug":NC,"153-task-board-latest-assistant-part-index":KC,"154-task-board-qa-activity":zC,"155-task-board-review-claims":PC,"156-task-board-conflict-activity":UC,"157-drop-seat-billing":JC,"158-drop-github-child-single-parent":XC,"159-task-board-comments":jC,"160-task-quota-billing":QC,"161-task-quota-claim-state":ZC,"162-claude-subscriptions":DC,"163-task-board-item-dismissed":LC,"164-per-org-task-quota":FC,"165-task-board-pending-review-index":RC,"166-task-board-last-swept-at":YC,"167-task-board-run-retry":HC,"168-org-repo-sync":nC,"169-task-board-merge-failed-activity":GC,"170-task-board-item-repo":yC,"171-jira-integration":fC,"172-task-board-item-key-seq":OC,"173-thread-github-repo-connection-index":SC,"174-thread-message-parts-persisted-at":IC,"175-task-board-sprints":wC,"176-task-board-done-sweep-index":VC,"177-notifications":kC,"178-jira-status-mapping-array":pC,"179-notification-mentioned":iC,"180-task-board-item-type":qC,"181-task-board-item-type-required":gC,"182-task-board-sprints-entities":cC,"183-drop-jira-jql-filter":hC,"184-jira-rescan-after-scope-change":oC,"185-jira-rescan-existing-cards":aC,"186-jira-rescan-pending-flag":eC,"187-task-board-comment-thread":lC,"188-invitation-auto-accept":dC,"189-task-board-column-automations":bC,"190-task-board-review-cycle-started-at":_T,"191-task-board-columns":xT,"192-task-board-verdict-nudge-activity":mT,"193-task-board-status-column-fk":CT,"194-jira-link-sprint":TT,"195-task-board-sprint-activity":KT,"196-task-board-column-tracker-statuses":ET,"197-task-board-prompts":zT,"198-task-board-external-url":PT,"199-drop-jira-mirror-and-org-columns":$T,"200-jira-run-trigger":UT,"201-organization-notices":JT,"202-redact-base64-thread-parts":jT,"203-task-board-preview-routes":QT,"204-git-provider-accounts-and-repositories":WT,"205-repository-references":ZT,"206-repository-consumers":xx,"207-task-board-prs-repo-idx":_x,"208-github-connect-flows":b_,"209-github-installation-authorization":s_,"210-github-repository-authorization":a_,"211-user-fs-org":o_,"212-coding-agent-mcp-excluded":r_,"213-bitbucket-git-provider":e_,"214-connections-sanitized-id-idx":q_,"215-commerce-discovery-repository":g_,"216-github-cli-auth":h_,"217-experiments":l_,"218-thread-message-parts-error-idx":d_},DT=Lj;import{getMigrations as sj}from"better-auth/db";import{sso as bj}from"@better-auth/sso";import{organization as _Q}from"@decocms/better-auth/plugins";import{admin as xQ,apiKey as uQ,jwt as mQ,magicLink as CQ,mcp as TQ,openAPI as NQ}from"better-auth/plugins";import{emailOTP as KQ}from"better-auth/plugins/email-otp";import{Kysely as hj,PostgresDialect as cN}from"kysely";import{Pool as hN}from"pg";import{homedir as Fj}from"os";var Rj=new Set(["all","worker","api"]);function Yj(_){let x=(_??"").trim();return Rj.has(x)?x:"all"}var Hj=new Set(["production","development","test"]);function Mj(_){let x=(_??"").trim();return Hj.has(x)?x:"development"}function W(_){return _==="true"||_==="1"}function FT(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function y(_,x,u,T){return FT(_,x,T)??u}function nj(_){let x={};for(let u of(_??"").split(",")){let T=u.trim();if(!T)continue;let C=T.indexOf("="),N=C>0?T.slice(0,C).trim():"",E=C>0?T.slice(C+1).trim():"";if(!N||!E){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${T}" \u2014 expected price_xxx=planId`);continue}x[N]=E}return x}function Bj(_,x,u,T){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&C>T)throw Error(`${_} must be at most ${T}`);return C}function LT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function IN(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function Gj(_){return _===void 0||_===""||_==="true"||_==="1"}function K_(_,x){return _||x}function wN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${Fj()}/deco`,T=_.localMode,C=_.nodeEnv||Mj(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222",E={nodeEnv:C,port:y("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:K_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:W(x.DATABASE_PG_SSL),databasePoolMax:y("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:y("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:K_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:W(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:W(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((K)=>K.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((K)=>K.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:FT("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:W(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:nj(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:Bj("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:W(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:y("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:y("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:y("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:W(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:W(x.HOSTING_CONTROL_PLANE_GA),monitorGa:W(x.MONITOR_GA),plansEnabled:W(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:LT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:W(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:y("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:y("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:LT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:y("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:Gj(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:FT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:Yj(K_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:W(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:W(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:LT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:W(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:y("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:K_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:K_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(E.plansEnabled&&!E.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(E.plansEnabled&&!E.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(E.plansEnabled&&!E.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(E.plansEnabled&&Object.keys(E.stripePlanPriceIds).length>0&&!E.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(E.plansEnabled&&Object.keys(E.stripePlanPriceIds).length>1&&!E.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{settings:E,externalDatabaseUrl:IN(x.DATABASE_URL),externalNatsUrl:IN(N),skipMigrations:_.skipMigrations}}var k_=null;function o(){if(!k_)yj();return k_}function yj(){if(k_)return;let _={...process.env},x=wN({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);k_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as wj,metrics as Vj,propagation as O4,ROOT_CONTEXT as S4,SpanStatusCode as A4,trace as kj}from"@opentelemetry/api";import{logs as pj,SeverityNumber as RT}from"@opentelemetry/api-logs";import{OTLPLogExporter as V4}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as tj}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as t4}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as v4}from"@opentelemetry/instrumentation-runtime-node";import{context as MZ,propagation as nZ,SpanKind as BZ,SpanStatusCode as GZ}from"@opentelemetry/api";var fZ=globalThis.fetch;import{ExportResultCode as qZ}from"@opentelemetry/core";import{ExportResultCode as p_}from"@opentelemetry/core";import{mkdir as fj,rename as Oj,writeFile as Sj}from"fs/promises";import{join as t_}from"path";class i_{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:p_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:p_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:p_.FAILED}});return Promise.resolve({code:p_.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),T=u.find((C)=>C.status==="rejected");if(T){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let N=_.filter((E)=>!C.has(E.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?t_(this.basePath,x,...T):t_(this.basePath,...T);if(!this.knownDirs.has(C))await fj(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=t_(C,`.${N}.tmp`),K=t_(C,N),z=_.join(`
|
|
1914
1914
|
`)+`
|
|
1915
|
-
`;await
|
|
1915
|
+
`;await Sj(E,z,{mode:384}),await Oj(E,K)}}import{ExportResultCode as aZ}from"@opentelemetry/core";import{AggregationTemporality as eZ,DataPointType as lZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as u4}from"@opentelemetry/core";var N4=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as l4,LoggerProvider as d4}from"@opentelemetry/sdk-logs";import{detectResources as b4,envDetector as _D,hostDetector as xD,osDetector as uD,processDetector as mD,resourceFromAttributes as CD}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as ND}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as z4}from"@opentelemetry/api-logs";import{NodeSDK as zD}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as $D,SamplingDecision as a}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as X4}from"@opentelemetry/api";var ij="__d",vj=wj("Current request"),qj=1;var kN=(_)=>{let u=new URL(_.url).searchParams.get(ij);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class pN{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,N){let E=_.getValue(vj);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,N);return{decision:a.RECORD_AND_SAMPLED}}let K=kN(E);if(K)return{decision:a.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,N);if(z.decision===a.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:a.NOT_RECORD}}toString(){return"DebugSampler"}}class tN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:a.RECORD_AND_SAMPLED};return{decision:a.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var JD=new tj({preventServerStart:!0}),XD=new pN(new tN(qj));var VN=kj.getTracer("studio","1.0.0"),E_=Vj.getMeter("studio","1.0.0"),gj=pj.getLogger("studio","1.0.0"),YT=(_,x,u)=>{let T={},C=u,N=u[u.length-1];if(N!==null&&typeof N==="object"&&!Array.isArray(N)&&!(N instanceof Error)&&Object.getPrototypeOf(N)===Object.prototype)T=N,C=u.slice(0,-1);let E=C.map((K)=>{if(K instanceof Error)return`${K.name}: ${K.message}`;if(typeof K==="object")try{return JSON.stringify(K)}catch{return"[Object]"}return String(K)}).join(" ");gj.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},HT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{YT(RT.ERROR,"ERROR",_),HT.error(..._)};console.warn=(..._)=>{YT(RT.WARN,"WARN",_),HT.warn(..._)};console.debug=(..._)=>{YT(RT.DEBUG,"DEBUG",_),HT.debug(..._)};var MT,iN=0,nT=500;function cj(){if(MT)return;let _=performance.now()+nT;MT=setInterval(()=>{let x=performance.now();iN=Math.max(0,x-_),_=x+nT},nT),MT.unref?.()}function vN(){return cj(),iN}var oj=()=>E_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),qN=()=>E_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),gN=400,aj=100,rj=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>gN){let T=vN(),C=T>gN/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(T),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:v_()}})}if(oj().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function ej(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=v_(),N=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-T;if(qN().record(z,{"db.pool.outcome":N?"contended":"available"}),z>aj)if(N)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:z,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:z,idleAtStart:E,total:_.totalCount,max:C});return K},(K)=>{throw qN().record(performance.now()-T,{"db.pool.outcome":"error"}),K})},_}var oN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function aN(){try{return o().databasePgSsl}catch{return!1}}function v_(){try{return o().databasePoolMax}catch{return 10}}function lj(_){let x=ej(new hN({connectionString:_,max:v_(),ssl:aN(),...oN})),u=new cN({pool:x});return{type:"postgres",db:new hj({dialect:u,log:rj(x)}),pool:x}}function P_(){return o().databaseUrl}function rN(_){let x=_||P_();return new cN({pool:new hN({connectionString:x,max:v_(),ssl:aN(),...oN})})}function dj(_){let x=_||P_();return lj(x)}async function eN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===z_)z_=null}var z_=null;function BT(){if(!z_)z_=dj(P_());return z_}async function lN(_){let u={database:rN(_||P_()),plugins:[_Q({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),xQ(),uQ(),mQ(),NQ(),TQ({loginPage:"/login"}),bj(),CQ({sendMagicLink:async()=>{}}),KQ({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:N}=await sj(u);if(!T.length&&!C.length)return"up to date";return await N(),`${C.length+T.length} table(s) migrated`}async function sN(_,x){return(await r`
|
|
1916
1916
|
SELECT table_name FROM information_schema.tables
|
|
1917
1917
|
WHERE table_schema='public' AND table_name=${x}
|
|
1918
|
-
`.execute(_)).rows.length>0}async function
|
|
1918
|
+
`.execute(_)).rows.length>0}async function EQ(_){if(await sN(_,"plugin_migrations"))return;await r`
|
|
1919
1919
|
CREATE TABLE plugin_migrations (
|
|
1920
1920
|
plugin_id TEXT NOT NULL,
|
|
1921
1921
|
name TEXT NOT NULL,
|
|
1922
1922
|
timestamp TEXT NOT NULL,
|
|
1923
1923
|
PRIMARY KEY (plugin_id, name)
|
|
1924
1924
|
)
|
|
1925
|
-
`.execute(_)}async function
|
|
1925
|
+
`.execute(_)}async function zQ(_){if(!await sN(_,"kysely_migration"))return;let x=await r`
|
|
1926
1926
|
SELECT name, timestamp FROM kysely_migration
|
|
1927
1927
|
WHERE name LIKE '%/%'
|
|
1928
1928
|
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:T}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let N=C.indexOf("/");if(N===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let E=C.substring(0,N),K=C.substring(N+1);try{await r`
|
|
@@ -1933,4 +1933,4 @@ var sN=Object.defineProperty;var bN=(_)=>_;function _K(_,x){this[_]=bN.bind(null
|
|
|
1933
1933
|
WHERE plugin_id = ${E} AND name = ${K}
|
|
1934
1934
|
`.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${K}, keeping in old table`);continue}}await r`
|
|
1935
1935
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
1936
|
-
`.execute(_)}}async function
|
|
1936
|
+
`.execute(_)}}async function PQ(_){await EQ(_),await zQ(_);let x=new dN({db:_,provider:{getMigrations:()=>Promise.resolve(DT)}}),{error:u,results:T}=await x.migrateToLatest(),C=0;if(T?.forEach((N)=>{if(N.status==="Success")C++;else if(N.status==="Error")console.error(`Failed to execute migration "${N.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function $Q(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await lN();let N=u??BT(),E=async()=>{if(!x&&!u)await eN(N).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await PQ(N.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function cD(){let _=BT(),x=new dN({db:_.db,provider:{getMigrations:()=>Promise.resolve(DT)}}),{error:u,results:T}=await x.migrateDown();if(T?.forEach((C)=>{if(C.status==="Success")console.log(`\u2705 Migration "${C.migrationName}" rolled back successfully`);else if(C.status==="Error")console.error(`\u274C Failed to rollback migration "${C.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await $Q(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{PQ as runKyselyMigrations,$Q as migrateToLatest,cD as migrateDown};
|