decocms 4.497.0 → 4.497.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{ActiveShapeUtils-BfToWUeb.js → ActiveShapeUtils-CyYu6nD0.js} +1 -1
- package/dist/client/assets/{AlertCircle-uVTE_i_c.js → AlertCircle-CHrjAIcc.js} +1 -1
- package/dist/client/assets/{AreaChart-D-XLuzTF.js → AreaChart-CwoOvJ2_.js} +1 -1
- package/dist/client/assets/{ArrowLeft-D8kMxyF3.js → ArrowLeft-CDSbOlKg.js} +1 -1
- package/dist/client/assets/{ArrowUp-baihphF6.js → ArrowUp-DVmGL0QN.js} +1 -1
- package/dist/client/assets/{BarChart-CmpYBluB.js → BarChart-pYmYrRAw.js} +1 -1
- package/dist/client/assets/{Building02-C-k2Qn__.js → Building02-Cjmi-E_Q.js} +1 -1
- package/dist/client/assets/{CategoricalChart-MIe_roxn.js → CategoricalChart-J69_dr0s.js} +1 -1
- package/dist/client/assets/{CheckCircle-BgOw0_dD.js → CheckCircle-DH3xbIup.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-e0qa2qKk.js → ChevronSelectorVertical-D3--DzuF.js} +1 -1
- package/dist/client/assets/{ChevronUp-B7O2Z2_x.js → ChevronUp-fo2ERVlh.js} +1 -1
- package/dist/client/assets/{Copy01-BR4eoDaW.js → Copy01-C7JKQ2yo.js} +1 -1
- package/dist/client/assets/{CreditCard01-pJwQfpbv.js → CreditCard01-DuhJeWgL.js} +1 -1
- package/dist/client/assets/{DotsVertical-DOuXLsMk.js → DotsVertical-CdIsXudQ.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-BvlCrLLk.js → ErrorBarContext-PRGTHaZ1.js} +1 -1
- package/dist/client/assets/{Globe04-CYweJqdP.js → Globe04-CMhAsYW7.js} +1 -1
- package/dist/client/assets/{Image01-S90CE8VS.js → Image01-DQr5z6Eu.js} +1 -1
- package/dist/client/assets/{Key01-B5JsqJav.js → Key01-DkQjjPwv.js} +1 -1
- package/dist/client/assets/{Link01-Dz3IyYPr.js → Link01-CBvOTEVq.js} +1 -1
- package/dist/client/assets/{LinkBroken01-BKVx2uSk.js → LinkBroken01-CWg3Xs9J.js} +1 -1
- package/dist/client/assets/{Monitor01-KqB9ZF5U.js → Monitor01-CawnpOBp.js} +1 -1
- package/dist/client/assets/{Play-CygY0DVf.js → Play-CHfHT47l.js} +1 -1
- package/dist/client/assets/{Plus-Bj_QsLcq.js → Plus-Ch1sG4T5.js} +1 -1
- package/dist/client/assets/{SearchMd-CVAVwuts.js → SearchMd-D7CH4cEW.js} +1 -1
- package/dist/client/assets/{Sector-CRN92mNE.js → Sector-BdZY69jR.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-DhR5OJ_o.js → ShoppingBag01-CFzAExOe.js} +1 -1
- package/dist/client/assets/{Sun-BCMSoFWP.js → Sun-AXWLcql2.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-fI9_GGzc.js → SwitchHorizontal01-ZzQSxDu-.js} +1 -1
- package/dist/client/assets/{Tool01-Dpcs_fEX.js → Tool01-D47UxjHr.js} +1 -1
- package/dist/client/assets/{Trash01-BwiN-bXW.js → Trash01-DjbVg-Gr.js} +1 -1
- package/dist/client/assets/{Upload01-nkaaAbTH.js → Upload01-CongSYMk.js} +1 -1
- package/dist/client/assets/{User01-BSbwHeDW.js → User01-C0eJYwru.js} +1 -1
- package/dist/client/assets/{UserSquare-CG780QF2.js → UserSquare-D5hRO90M.js} +1 -1
- package/dist/client/assets/{Users01-BuQlctw3.js → Users01-C3nUQ4J2.js} +1 -1
- package/dist/client/assets/{XAxis-BIvxXYwH.js → XAxis-CHmQK-au.js} +1 -1
- package/dist/client/assets/{XClose-CohaLXz5.js → XClose-CEtKIB7q.js} +1 -1
- package/dist/client/assets/{ZoomOut-BSXGk2sm.js → ZoomOut-CrQxrOGW.js} +1 -1
- package/dist/client/assets/{access-gate-DOzt68zj.js → access-gate-rafBainF.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-BHghNpDD.js → add-connection-dialog-CvB_KcBa.js} +1 -1
- package/dist/client/assets/{agent-analytics-652550mA.js → agent-analytics-BVxR4_Uj.js} +1 -1
- package/dist/client/assets/agent-app-D15rL7SC.js +1 -0
- package/dist/client/assets/{agent-assets-CO2mf3B-.js → agent-assets-B1OqFMpj.js} +1 -1
- package/dist/client/assets/agent-automation-ClFLOq4I.js +20 -0
- package/dist/client/assets/{agent-automations-DDRyU4rP.js → agent-automations-BFYTbfc-.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-DCAIhIe3.js → agent-connect-sources-BRvuYQWx.js} +1 -1
- package/dist/client/assets/agent-deck-YSht4fJH.js +1 -0
- package/dist/client/assets/{agent-e2e-BDY9ZD6D.js → agent-e2e-B9CH2Mo6.js} +1 -1
- package/dist/client/assets/{agent-experiments-BxeTATqf.js → agent-experiments-DlztOCrU.js} +1 -1
- package/dist/client/assets/{agent-file-BmYB54QY.js → agent-file-CsIS9_4j.js} +1 -1
- package/dist/client/assets/{agent-hosting-RRRWwDeW.js → agent-hosting-Bknl93TE.js} +1 -1
- package/dist/client/assets/{agent-icon-CIAqO6q_.js → agent-icon-D25DK5wS.js} +1 -1
- package/dist/client/assets/agent-library-De8yrcgK.js +1 -0
- package/dist/client/assets/agent-library-file-DSYip22s.js +1 -0
- package/dist/client/assets/{agent-monitor-DsQakvWJ.js → agent-monitor-DyT5ig13.js} +1 -1
- package/dist/client/assets/{agent-overview-3FcxOPM6.js → agent-overview-ButxU5iy.js} +1 -1
- package/dist/client/assets/agent-settings-DYAVsnNu.js +1 -0
- package/dist/client/assets/{agent-site-editor-KhAad4Sw.js → agent-site-editor-Dl99KrED.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-CPqEQaz5.js +2 -0
- package/dist/client/assets/{agent-site-editor-content-Fitmb8o7.js → agent-site-editor-content-Df_6cDHk.js} +3 -3
- package/dist/client/assets/{agent-site-editor-preview-DnnUYHiU.js → agent-site-editor-preview-CltuQS-a.js} +3 -3
- package/dist/client/assets/agent-view-6MnvsGap.js +1 -0
- package/dist/client/assets/{agent-view-guard-CKn2tf5j.js → agent-view-guard-CVsz0TkU.js} +1 -1
- package/dist/client/assets/{agents-list-DSQETxBR.js → agents-list-CeTR5ulR.js} +1 -1
- package/dist/client/assets/{ai-providers-DdDoqHhw.js → ai-providers-BZ2_pdED.js} +1 -1
- package/dist/client/assets/{alert-DWd3_VEN.js → alert-BK3mvJgc.js} +1 -1
- package/dist/client/assets/{alert-dialog-ivXO19po.js → alert-dialog-CmV9dy9T.js} +1 -1
- package/dist/client/assets/{analytics-sections-Bhuxqwzw.js → analytics-sections-BrCaGlQS.js} +1 -1
- package/dist/client/assets/{api-keys-DjqDXSVz.js → api-keys-BjhtfTv5.js} +1 -1
- package/dist/client/assets/api-keys-CIOehITH.js +1 -0
- package/dist/client/assets/app-editor-jDyn4P31.js +1 -0
- package/dist/client/assets/{asset-utils-jXJjDaKi.js → asset-utils-CM76tGw5.js} +1 -1
- package/dist/client/assets/{auth-catchall-CMZXJiIT.js → auth-catchall-BHpuDx65.js} +1 -1
- package/dist/client/assets/{auth-entry-D2I0FV-M.js → auth-entry-DTqozZzK.js} +1 -1
- package/dist/client/assets/{auth-C16DiwpU.js → auth-mnJ9PW01.js} +1 -1
- package/dist/client/assets/{auth-split-layout-lGr4mQP-.js → auth-split-layout-nnK4QA-M.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-BzcsLm_G.js → authenticate-and-persist-oauth-Bpiv3RO5.js} +1 -1
- package/dist/client/assets/{automation-list-row-BIpt7Z6o.js → automation-list-row-YpYqBxpc.js} +1 -1
- package/dist/client/assets/{automation-runs-Dx7LKstr.js → automation-runs-Cjsz3sNl.js} +1 -1
- package/dist/client/assets/{automations-CbuyiPha.js → automations-K16w9IfU.js} +1 -1
- package/dist/client/assets/{autosend-8Zl7NQ67.js → autosend-BaSnPt7x.js} +1 -1
- package/dist/client/assets/{avatar-PHlRD3By.js → avatar-Co-052cR.js} +1 -1
- package/dist/client/assets/{badge-BTJCq3tr.js → badge-CSXpEa55.js} +1 -1
- package/dist/client/assets/{block-document-BKlsJNkE.js → block-document-Dwi86oHf.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-D9S2qjUS.js → blocks-preview-workspace-context-BOZf-loo.js} +1 -1
- package/dist/client/assets/{blog-schema-B0HiB2cA.js → blog-schema-D-OKi5uD.js} +1 -1
- package/dist/client/assets/{board-analytics-DYBHTjV-.js → board-analytics-Dtj7gftE.js} +1 -1
- package/dist/client/assets/{buckets-DNw0rMyq.js → buckets-Tw-Ph4JX.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-CmTPuV4H.js → build-improve-prompt-doc-DSsqKodq.js} +1 -1
- package/dist/client/assets/{calendar-Bpz7Lz-y.js → calendar-DCoBKIit.js} +1 -1
- package/dist/client/assets/{capability-load-error-B3pMqWw1.js → capability-load-error-D4Y-1y8Z.js} +1 -1
- package/dist/client/assets/{category-editor-DLwiIFGA.js → category-editor-15WhKdzJ.js} +1 -1
- package/dist/client/assets/{chart-5JvOgFAK.js → chart-D8S5B3Fk.js} +1 -1
- package/dist/client/assets/{chat-context-3OXKEqSh.js → chat-context-BvnYD9Wb.js} +1 -1
- package/dist/client/assets/{chat-draft-oK0pqHaC.js → chat-draft-BUwzbZEb.js} +1 -1
- package/dist/client/assets/{checkbox-CRsuhP53.js → checkbox-CVokasRh.js} +1 -1
- package/dist/client/assets/{choose-editor-PDE1zqLa.js → choose-editor-B_kWfVxF.js} +1 -1
- package/dist/client/assets/{claim-phase-copy-BOnhDNWe.js → claim-phase-copy-D7K6r9pB.js} +1 -1
- package/dist/client/assets/{cli-auth-success-DFy-lvLA.js → cli-auth-success-BjJ_-CPN.js} +1 -1
- package/dist/client/assets/{client-icons-GrM8G8gc.js → client-icons-R8IUwnS4.js} +1 -1
- package/dist/client/assets/{collapsible-z-JwdUiM.js → collapsible-BpQWnMqu.js} +1 -1
- package/dist/client/assets/{collection-detail-Dhq8Wz0G.js → collection-detail-BTjqy1Rt.js} +1 -1
- package/dist/client/assets/{collection-display-button-COwoiqJ0.js → collection-display-button-CwZjncaa.js} +1 -1
- package/dist/client/assets/{collection-search-ZrNbDYaq.js → collection-search-CFCYIYsp.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-BxHhUj6Y.js → collection-table-wrapper-9DXb8a6f.js} +1 -1
- package/dist/client/assets/{collection-tabs-CZnO-KJm.js → collection-tabs-D1MI1rbf.js} +1 -1
- package/dist/client/assets/{column-rules-CU0QM4zZ.js → column-rules-CKqZ2w7B.js} +1 -1
- package/dist/client/assets/{combobox-bRQw-jDN.js → combobox-8uTSWM7x.js} +1 -1
- package/dist/client/assets/{command--1ySxBzC.js → command-zNxZAzCt.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-DbOOs4Di.js → companion-mcps-section-Dn6CWwBU.js} +1 -1
- package/dist/client/assets/{config-DxkhWHvI.js → config-zAMyoP2u.js} +1 -1
- package/dist/client/assets/{connect-Cy-QXX6T.js → connect-B0eXPnXO.js} +1 -1
- package/dist/client/assets/{connect-layout-B_xraWMz.js → connect-layout-DiQFJtzW.js} +1 -1
- package/dist/client/assets/{connection-eFBHXnq8.js → connection-1bY4JOT7.js} +1 -1
- package/dist/client/assets/{connection-card-Dd1Miwos.js → connection-card-BPhgcvjc.js} +1 -1
- package/dist/client/assets/{connection-detail-BhSOyfOS.js → connection-detail-Bb0U2uNL.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-CjAkllf4.js → connection-form-helpers-BHdjytOT.js} +1 -1
- package/dist/client/assets/{connections-DptsGWqU.js → connections-C9nogFwq.js} +1 -1
- package/dist/client/assets/{context-DvjPJlI1.js → context-l2XAj4L-.js} +1 -1
- package/dist/client/assets/{context-menu-DTbN-B-u.js → context-menu-BJ4Hqd4H.js} +1 -1
- package/dist/client/assets/{core.esm-BmdNjDzv.js → core.esm-l5VXFwhd.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-BRn1itMS.js → create-organization-dialog-BDaja_nV.js} +1 -1
- package/dist/client/assets/{daily-pulse-C_sHN310.js → daily-pulse-DOsYKARy.js} +1 -1
- package/dist/client/assets/{device-hint-BA8nYrWU.js → device-hint-PXv02Ucu.js} +1 -1
- package/dist/client/assets/{discover-DGp_fHdG.js → discover-BiY2-MAZ.js} +1 -1
- package/dist/client/assets/{domain-settings-Bz6k7ub5.js → domain-settings-B2qAb04P.js} +1 -1
- package/dist/client/assets/{drawer-wiDylD44.js → drawer-DL5bFgNR.js} +1 -1
- package/dist/client/assets/{editor-DbVDLInM.js → editor-EMcWHln-.js} +1 -1
- package/dist/client/assets/{empty-state-CpJixEa0.js → empty-state-Bk1ubmvv.js} +1 -1
- package/dist/client/assets/{empty-state-GrM64x-h.js → empty-state-Dl0uE1qg.js} +1 -1
- package/dist/client/assets/{extract-connection-data-BFr1XefI.js → extract-connection-data-DIxd-Pe9.js} +1 -1
- package/dist/client/assets/{feature-gate-DIjgMR-H.js → feature-gate-D_5Zcern.js} +1 -1
- package/dist/client/assets/{feature-paywall-DygeAwCp.js → feature-paywall-uSo5NgIk.js} +1 -1
- package/dist/client/assets/{file-explorer-sgwcJgTB.js → file-explorer-BLs0vfRV.js} +1 -1
- package/dist/client/assets/{file-preview-KMq6kQbY.js → file-preview-C_zyLNU0.js} +1 -1
- package/dist/client/assets/{file-share-button-BmW3xptu.js → file-share-button-DVm15sOV.js} +1 -1
- package/dist/client/assets/{file-type-icon-CH0zVmFE.js → file-type-icon-BFUya14p.js} +1 -1
- package/dist/client/assets/flat-project-CcomIoqo.js +1 -0
- package/dist/client/assets/{folder-icon-Dvr9Xy_h.js → folder-icon-aFp6Qaf_.js} +1 -1
- package/dist/client/assets/{form-ChrFSKbl.js → form-D_HjHR78.js} +1 -1
- package/dist/client/assets/{general-CSM1Afsf.js → general-DWYlQqAU.js} +1 -1
- package/dist/client/assets/{home-CmR382BT.js → home-C39XJuuC.js} +1 -1
- package/dist/client/assets/{icon-button-BEh8g82p.js → icon-button-CWnlJ_oZ.js} +1 -1
- package/dist/client/assets/{index-Dpzy6FT0.js → index-8oPwgK8U.js} +1 -1
- package/dist/client/assets/{index-FPsrk3s0.js → index-Ah1SD4qu.js} +1 -1
- package/dist/client/assets/{index-BL1llwK-.js → index-B5s2AYv_.js} +1 -1
- package/dist/client/assets/{index-Dp4NtPWu.js → index-BBBK2Mw-.js} +1 -1
- package/dist/client/assets/{index-Br_k5ZoS.js → index-BGn4_CUT.js} +1 -1
- package/dist/client/assets/{index-CNBMfDzu.js → index-C8H_whn6.js} +3 -3
- package/dist/client/assets/{index-5v4d81Co.js → index-Cxl4iIy5.js} +1 -1
- package/dist/client/assets/{index-1lCyt6wZ.js → index-DXJRwxmV.js} +1 -1
- package/dist/client/assets/{index-BdbMrrND.js → index-Dbiuixsg.js} +1 -1
- package/dist/client/assets/{index-CAxew9_u.js → index-DqBs1i86.js} +1 -1
- package/dist/client/assets/{index-GNzYGBzv.js → index-DwYK88xA.js} +1 -1
- package/dist/client/assets/{index-BvNW8UPM.js → index-TStkGKDV.js} +1 -1
- package/dist/client/assets/{index-redirect-B_k2XKG7.js → index-redirect-qy-HGqdF.js} +1 -1
- package/dist/client/assets/{index-E8HkK7le.js → index-zFizTRgJ.js} +4 -4
- package/dist/client/assets/{infiniteQueryObserver-B_6kT4Pu.js → infiniteQueryObserver-DR5G3_XI.js} +1 -1
- package/dist/client/assets/{infra-billing-DntZ94Fv.js → infra-billing-DZ12o-of.js} +1 -1
- package/dist/client/assets/{input-DzGUnaT4.js → input-DrtuDHta.js} +3 -3
- package/dist/client/assets/{input-Bf9hsVol.js → input-LrUKUue2.js} +1 -1
- package/dist/client/assets/{integration-icon-BMM9bKRw.js → integration-icon-Bdyedi1P.js} +1 -1
- package/dist/client/assets/{jira-icon-Cj12G8eH.js → jira-icon-C5IDdjgJ.js} +1 -1
- package/dist/client/assets/{label-DAC0PXH6.js → label-CGeSw_vU.js} +1 -1
- package/dist/client/assets/{layout-DH0wfMvp.js → layout-D3tajt2K.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-DKcmw_C9.js → legacy-agents-deep-CfrBn8K6.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-xF3AIf85.js → legacy-main-redirect-BKFq0f1c.js} +1 -1
- package/dist/client/assets/library-DoTX8yJa.js +1 -0
- package/dist/client/assets/{library-tab-C0sI5AvO.js → library-tab-CedtT6BF.js} +1 -1
- package/dist/client/assets/{login-CyNOjPxx.js → login-Dxq0oJju.js} +1 -1
- package/dist/client/assets/{markdown-D9Q4_EWf.js → markdown-Wp7WM_6R.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-CJllCuFA.js → mcp-app-renderer-D4yJqapi.js} +1 -1
- package/dist/client/assets/{mcp-oauth-Cm-FGk67.js → mcp-oauth-BWnNfhKY.js} +1 -1
- package/dist/client/assets/{mcp-oauth-D5hp_76q.js → mcp-oauth-BvraKhnX.js} +1 -1
- package/dist/client/assets/{members-aCVioT1N.js → members-NoAgJggW.js} +1 -1
- package/dist/client/assets/{memory-Fzdui2vo.js → memory-DPCydpI9.js} +1 -1
- package/dist/client/assets/{mini-report-page-BTvq-myp.js → mini-report-page-CKiZSO3Y.js} +1 -1
- package/dist/client/assets/{mock-board-BctOoM75.js → mock-board-ldzlXXTT.js} +1 -1
- package/dist/client/assets/{monaco-editor-DxsHSHr3.js → monaco-editor-Cw6bHZ9D.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-BPpGukbV.js → monitoring-stats-row-DUI3089C.js} +1 -1
- package/dist/client/assets/{multi-select-BEZlzNPL.js → multi-select-C64565zf.js} +1 -1
- package/dist/client/assets/{mustache-C_2NGupD.js → mustache-jBGE1x8P.js} +1 -1
- package/dist/client/assets/{new-project-dialog-CBz8t6bW.js → new-project-dialog-B0XejRtR.js} +1 -1
- package/dist/client/assets/{oauth-callback-D-TIiYCW.js → oauth-callback-K1LG85n6.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-COJwjuqo.js → oauth-callback-ai-provider-Az104D_B.js} +1 -1
- package/dist/client/assets/{onboarding-BvA8qKid.js → onboarding-BStXwTJO.js} +1 -1
- package/dist/client/assets/{openai-conversation-DMNH07wd.js → openai-conversation-63MRsej5.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-B82d2Iyt.js → optimistic-project-sidebar-views-BPQEjG_5.js} +1 -1
- package/dist/client/assets/{organization-choice-DZk2VZFD.js → organization-choice-CWJmmXl2.js} +1 -1
- package/dist/client/assets/{orgs-D1rtBs1u.js → orgs-RqN1nvSn.js} +1 -1
- package/dist/client/assets/{page-seo-form-DC_uQ_yb.js → page-seo-form-Dqs31MJ3.js} +1 -1
- package/dist/client/assets/{pair-BHsCddMQ.js → pair-BArWn6jb.js} +1 -1
- package/dist/client/assets/{plan-ladder-D5P8cNNU.js → plan-ladder-CFynazEn.js} +1 -1
- package/dist/client/assets/{popover-BiATgeVZ.js → popover-DTEHxwlD.js} +1 -1
- package/dist/client/assets/{post-calendar-XwNvndsR.js → post-calendar-BoU1ZOL5.js} +1 -1
- package/dist/client/assets/{post-editor-CIVzwScJ.js → post-editor-DijifWaY.js} +1 -1
- package/dist/client/assets/{preview-content-D4a4Kxnw.js → preview-content-4n74nMkm.js} +1 -1
- package/dist/client/assets/{preview-dialog-DXvP_rSt.js → preview-dialog-BfJBjitf.js} +1 -1
- package/dist/client/assets/{preview-panel-9m4lCkpb.js → preview-panel-Ckv4GBo6.js} +1 -1
- package/dist/client/assets/{product-picker-dialog-BFXbOjF7.js → product-picker-dialog-DegN_8hj.js} +1 -1
- package/dist/client/assets/{profile-UHLqhuh9.js → profile-BNI-FeGN.js} +1 -1
- package/dist/client/assets/{project-app-view-7PLU79fP.js → project-app-view-BJKmTYP6.js} +1 -1
- package/dist/client/assets/{project-feed-BMzjV3aS.js → project-feed-CthJ5cL5.js} +1 -1
- package/dist/client/assets/{project-icon-CtWmpx-o.js → project-icon-CLft8LNy.js} +1 -1
- package/dist/client/assets/project-reports-BPIYWSN5.js +1 -0
- package/dist/client/assets/project-tasks-D89Pcpsx.js +1 -0
- package/dist/client/assets/{projects-BKfqSW6u.js → projects-CmeO8oT0.js} +1 -1
- package/dist/client/assets/{projects-empty-state-CansCxa8.js → projects-empty-state-Cu-dnKwc.js} +1 -1
- package/dist/client/assets/{prompts-DF0ao_FF.js → prompts-DpC1en1o.js} +1 -1
- package/dist/client/assets/record-editor-rZo87T7s.js +1 -0
- package/dist/client/assets/redirect-editor-BebKUMtd.js +1 -0
- package/dist/client/assets/reports-DbXtySYc.js +1 -0
- package/dist/client/assets/{reports-BtVp7TUw.js → reports-ikhGH7I0.js} +1 -1
- package/dist/client/assets/{reports-onboarding-DJFr_1o0.js → reports-onboarding-cozwetlX.js} +1 -1
- package/dist/client/assets/{reports-tab-lxUznXDf.js → reports-tab-B2H0nIWm.js} +2 -2
- package/dist/client/assets/{repositories-D-XY1mEG.js → repositories-6dyicYgL.js} +1 -1
- package/dist/client/assets/{repository-binding-DJSfVmK0.js → repository-binding-D4HjFqUu.js} +1 -1
- package/dist/client/assets/{repository-import-picker-CN4nBNQQ.js → repository-import-picker-D32RWglo.js} +1 -1
- package/dist/client/assets/{repository-picker-Bq1Xf_Nc.js → repository-picker-BS8S1A4D.js} +1 -1
- package/dist/client/assets/{require-capability-tnxMTQ41.js → require-capability-QNDooqDp.js} +1 -1
- package/dist/client/assets/{required-auth-layout-OT71YdwW.js → required-auth-layout-DV0YP59y.js} +1 -1
- package/dist/client/assets/{reset-password-b4ZAeKZf.js → reset-password-Bq3L1AQn.js} +1 -1
- package/dist/client/assets/{resizable-zpo8XDIL.js → resizable-aYdS6ucz.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-DELF6fBY.js → resolve-tab-icon-wP6kmFpV.js} +1 -1
- package/dist/client/assets/{review-settings-C7_0upab.js → review-settings-VHbdYUwC.js} +1 -1
- package/dist/client/assets/{rich-text-link-control-r6aMgCnO.js → rich-text-link-control-ZhLX7YkH.js} +1 -1
- package/dist/client/assets/{roles-BNqONgK2.js → roles-DydRZQvS.js} +1 -1
- package/dist/client/assets/route-B-Xt506d.js +1 -0
- package/dist/client/assets/{route-ClCedNlY.js → route-C0Fgh6Gu.js} +1 -1
- package/dist/client/assets/{route-2S2BeRzM.js → route-Dp89Dh0m.js} +1 -1
- package/dist/client/assets/{runnable-block-editor-TLQt5HEP.js → runnable-block-editor-C8XWqppj.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-B3tBEBAU.js → sandbox-lifecycle-context-DXFQTTJR.js} +1 -1
- package/dist/client/assets/{schema-DAFIdNnw.js → schema-6H-MEggI.js} +1 -1
- package/dist/client/assets/{scroll-area-D65kWya9.js → scroll-area-DsRpgTQ9.js} +1 -1
- package/dist/client/assets/{search-input-CZqwR2Em.js → search-input-BHgo2lGV.js} +1 -1
- package/dist/client/assets/{search-toggle-CZvcgEuO.js → search-toggle-Dd-dflFz.js} +1 -1
- package/dist/client/assets/{secret-picker-D9zGuUhM.js → secret-picker-A2PMU4gO.js} +1 -1
- package/dist/client/assets/{secrets-BL-nilzb.js → secrets-D9v5ukDd.js} +1 -1
- package/dist/client/assets/{sections-editor-Cj-wrCnm.js → sections-editor-DWV3GkFv.js} +1 -1
- package/dist/client/assets/{select-JMx_Daeq.js → select-PUQ7cwv_.js} +1 -1
- package/dist/client/assets/{select-model-DcZybkpW.js → select-model-Benrx5ds.js} +1 -1
- package/dist/client/assets/{seo-editor-5GEPfBh6.js → seo-editor-DR6dMEeh.js} +1 -1
- package/dist/client/assets/{separator-BQJNbeVU.js → separator-XSPXTmbD.js} +1 -1
- package/dist/client/assets/{settings-tab-yEsrogNk.js → settings-tab-C9b_gZUS.js} +1 -1
- package/dist/client/assets/{sheet-ft1vIPTI.js → sheet-CJnM8ySE.js} +1 -1
- package/dist/client/assets/{shell-layout-BfZ3aLwK.js → shell-layout-Dai0p-76.js} +1 -1
- package/dist/client/assets/{skills-DIxWKIpf.js → skills-CpJ2yl_V.js} +1 -1
- package/dist/client/assets/{slider-DzfY-AKn.js → slider-DOtGgAh5.js} +1 -1
- package/dist/client/assets/{sortable.esm-C25gMPOU.js → sortable.esm-igu-P_53.js} +1 -1
- package/dist/client/assets/{sso-DMISGA1g.js → sso-CpAigUKO.js} +1 -1
- package/dist/client/assets/{suggestion-CkSKi3Ko.js → suggestion-kKk_djZn.js} +1 -1
- package/dist/client/assets/{switch-D1o5UUPU.js → switch-C4raYBaD.js} +1 -1
- package/dist/client/assets/{symbol-BihNL2x9.js → symbol-DSyQEkVd.js} +1 -1
- package/dist/client/assets/{synced-repos-THZeI2TX.js → synced-repos-DhkSYvjz.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-D-qnzCLe.js → tab-icon-glyph-DbT7H6I0.js} +1 -1
- package/dist/client/assets/{table-_5HbhT_S.js → table-ZhEY60SW.js} +1 -1
- package/dist/client/assets/{tabs-BaVhZf2S.js → tabs-sH7FADTj.js} +1 -1
- package/dist/client/assets/{task-board-BhjqCSbG.js → task-board-Cz8RAkVC.js} +1 -1
- package/dist/client/assets/{task-route-RXmOd-Sg.js → task-route-dAZzlYHx.js} +1 -1
- package/dist/client/assets/{task-status-BMH2aOWE.js → task-status-jzoHxLXE.js} +1 -1
- package/dist/client/assets/taskboard-analytics-D4etS4F2.js +1 -0
- package/dist/client/assets/tasks-cUD-vzLP.js +1 -0
- package/dist/client/assets/{tasks-BmHnYLCK.js → tasks-spnz6wGT.js} +1 -1
- package/dist/client/assets/{textarea-DUqfavim.js → textarea-Dh1uG6Oe.js} +1 -1
- package/dist/client/assets/{thread-analytics-CaZ650wR.js → thread-analytics-D7o3M7SE.js} +1 -1
- package/dist/client/assets/{thread-button-C_voRhAW.js → thread-button-CVcG35Zp.js} +1 -1
- package/dist/client/assets/{thread-intent-DIdLWs3T.js → thread-intent-DHio6v3T.js} +1 -1
- package/dist/client/assets/{thread-route-C0aHNen1.js → thread-route-JC5U7UAP.js} +1 -1
- package/dist/client/assets/{thread-route-Bsh0W3WI.js → thread-route-P2oNmklm.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-Ck9K6X-O.js → thread-sheet-body-Cb8plLTN.js} +1 -1
- package/dist/client/assets/{time-range-picker-CNwi7PKe.js → time-range-picker-BXMVgeAS.js} +1 -1
- package/dist/client/assets/{toggle-group-B-oqQV0Q.js → toggle-group-BbN_e8eb.js} +1 -1
- package/dist/client/assets/{tool-namespace-D73-Yt47.js → tool-namespace-CTfr8zMP.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-CWTFjB2x.js → toolbar-icon-button-NKHQPydk.js} +1 -1
- package/dist/client/assets/{tooltip-Bgaj6wao.js → tooltip-Ckfi6awk.js} +1 -1
- package/dist/client/assets/{tooltipContext-Hyh6Z90v.js → tooltipContext-DNPFPGFA.js} +1 -1
- package/dist/client/assets/{track-bmLGXYyb.js → track-CteSCTlH.js} +1 -1
- package/dist/client/assets/{types-DSarHVWN.js → types-BwEFq7Yg.js} +1 -1
- package/dist/client/assets/{url-slug-BCtPmKcV.js → url-slug-xcarTcti.js} +1 -1
- package/dist/client/assets/{usage-stats-CPP4mykS.js → usage-stats-Dpg2tIh9.js} +1 -1
- package/dist/client/assets/{use-ai-providers-4IWNnMYR.js → use-ai-providers-BdUdNx5z.js} +1 -1
- package/dist/client/assets/{use-automations-BNBMB7NJ.js → use-automations-J4kPNxTM.js} +1 -1
- package/dist/client/assets/{use-autosave-CCI_H2Jh.js → use-autosave-vvOEWidH.js} +1 -1
- package/dist/client/assets/{use-chat-layout-state-CbsP3hVN.js → use-chat-layout-state-ooCEsZNA.js} +1 -1
- package/dist/client/assets/{use-chat-navigation-Bvo_pyzq.js → use-chat-navigation-Cs9RLkky.js} +1 -1
- package/dist/client/assets/{use-clock-tick-BH2s8rwm.js → use-clock-tick-CXFIi4J4.js} +1 -1
- package/dist/client/assets/{use-connect-companion-D-T5tZi4.js → use-connect-companion-DyLCP6sw.js} +1 -1
- package/dist/client/assets/{use-connection-B7mxZZZr.js → use-connection-BWEGKt3t.js} +1 -1
- package/dist/client/assets/{use-copy-BDIhU1a3.js → use-copy-B3Z2bU9n.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-DzT7Wi_g.js → use-create-virtual-mcp-CeEgD0KJ.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-CcYc8FC-.js → use-date-fns-locale-BwHZTp1d.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-BZQvNBgR.js → use-debounced-autosave-B-RYAOgV.js} +1 -1
- package/dist/client/assets/{use-debounced-value-DogqGlHA.js → use-debounced-value-BPpgN-4m.js} +1 -1
- package/dist/client/assets/{use-deco-credits-D8fC6T0N.js → use-deco-credits-DO7YD9IY.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-CG41uF0G.js → use-decopilot-events-DRwe4roK.js} +1 -1
- package/dist/client/assets/{use-delete-connection-B8gkfexB.js → use-delete-connection-CP3eQN94.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-DMHoNV8K.js → use-deployment-admin-xj8zFarX.js} +1 -1
- package/dist/client/assets/{use-ensure-project-folder-BXtCOD89.js → use-ensure-project-folder-_cAiUEgx.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-ClgFfcai.js → use-fast-preview-draft-url-B4iSUSL0.js} +1 -1
- package/dist/client/assets/{use-file-configs-CfHrYQ0D.js → use-file-configs-CayvqTYD.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-Doz-tD5w.js → use-infinite-scroll-Bs5bj_x4.js} +1 -1
- package/dist/client/assets/{use-join-requests-C6Zrd-wF.js → use-join-requests-D0a7nWGC.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-BI-yjZaf.js → use-main-panel-tabs-BV3U-pk7.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-DT1RFPS5.js → use-mcp-auth-status-CGqJtK6Y.js} +1 -1
- package/dist/client/assets/{use-mcp-client-HXdOgSo1.js → use-mcp-client-BpCQxGRA.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-Dc22OpBz.js → use-mcp-prompts-B6BIbud4.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-SgFCxAm4.js → use-mcp-tools-BBrUvrr2.js} +1 -1
- package/dist/client/assets/{use-members-BnU8sD2a.js → use-members-BXZtT1Ge.js} +1 -1
- package/dist/client/assets/{use-mobile-DMhjc8sS.js → use-mobile-cnelp-tf.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-8FxeDEql.js → use-navigate-to-agent-Yt28jbt_.js} +1 -1
- package/dist/client/assets/use-new-blocks-editor-DleK5Imc.js +1 -0
- package/dist/client/assets/{use-open-billing-url-CGiwz5yQ.js → use-open-billing-url-Ch7hXR43.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-CjFoGBiw.js → use-org-auth-client-DQ_TpKIV.js} +1 -1
- package/dist/client/assets/{use-org-fs-Brfqc0DM.js → use-org-fs-Dd1pklx8.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-Dn8ueEn8.js → use-org-repo-syncs-a3Bo4Nwx.js} +1 -1
- package/dist/client/assets/{use-org-sso-5XSC3bo7.js → use-org-sso-AbZWzz8J.js} +1 -1
- package/dist/client/assets/{use-organization-roles-CPEXva6v.js → use-organization-roles-BbdurYTP.js} +1 -1
- package/dist/client/assets/{use-organization-settings-C1JjAa2e.js → use-organization-settings-C9ru61wI.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-B5g-cXoX.js → use-panel-navigate-DlGjk1uT.js} +1 -1
- package/dist/client/assets/{use-project-scope-C_W_iYCG.js → use-project-scope-mUU3XQll.js} +1 -1
- package/dist/client/assets/{use-releases-aiz7Xp_5.js → use-releases-Rs4UUF42.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-Dx6jRAHR.js → use-reports-diagnostic-CmuuQULK.js} +1 -1
- package/dist/client/assets/{use-sandbox-events-VQD2dbMh.js → use-sandbox-events-B_Tbe66F.js} +1 -1
- package/dist/client/assets/{use-secrets-COPHY6zn.js → use-secrets-zTdjn1K_.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-DPHgFiJr.js → use-section-preview-base-CxaSIwgr.js} +1 -1
- package/dist/client/assets/{use-tags-NK0RVjrR.js → use-tags-DcdzwPHe.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-CDUEw4yr.js → use-task-board-analytics-Cq5LBBkL.js} +1 -1
- package/dist/client/assets/{use-task-board-events-DtM0CgpV.js → use-task-board-events-DV0GzDSl.js} +1 -1
- package/dist/client/assets/{use-task-board-item-prs-uJK_d1d_.js → use-task-board-item-prs-DWyfXvRg.js} +1 -1
- package/dist/client/assets/{use-task-board-items-ByQWsAvO.js → use-task-board-items-D-sN0nLG.js} +1 -1
- package/dist/client/assets/{use-task-metadata-YcyCc5iY.js → use-task-metadata-DH7eHsp7.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-VXUKGF1M.js → use-thread-analytics-BcaFH3FR.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-CcHD0dx2.js → use-thread-outputs-BVWpj6Pt.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-DTGbHHjG.js +1 -0
- package/dist/client/assets/{useQueries-D6R5SUUn.js → useQueries-DAsYe7-V.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CGs3Z4Zs.js +1 -0
- package/dist/client/assets/{users-CpYFV7v9.js → users-BDKuEOgV.js} +1 -1
- package/dist/client/assets/{utils-DcA-ys_Q.js → utils-B26RJwPU.js} +1 -1
- package/dist/client/assets/{variant-calendar-BCj7kcYa.js → variant-calendar-B5hD6nTB.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-uy8AIyK6.js → variant-matcher-override-CQDkjZB9.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-Fs_5ypxv.js → view-mode-toggle-DgaXBu8I.js} +1 -1
- package/dist/client/assets/{virtual-mcp-BQkclqkV.js → virtual-mcp-CPDSnrGy.js} +1 -1
- package/dist/client/assets/{watch-sse-pool-afzfEiDL.js → watch-sse-pool-BFcKHKod.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/migrate.js +243 -236
- package/dist/server/server.js +613 -613
- package/package.json +1 -1
- package/dist/client/assets/agent-app-CdQYM_ZA.js +0 -1
- package/dist/client/assets/agent-automation-Bvt8DrKn.js +0 -20
- package/dist/client/assets/agent-deck-BsXvzeBG.js +0 -1
- package/dist/client/assets/agent-library-D-aCuCTB.js +0 -1
- package/dist/client/assets/agent-library-file-BuoS_Z6e.js +0 -1
- package/dist/client/assets/agent-settings-bSj1beF7.js +0 -1
- package/dist/client/assets/agent-site-editor-code-B8CEWJnJ.js +0 -2
- package/dist/client/assets/agent-view-wYzAXyAR.js +0 -1
- package/dist/client/assets/api-keys-2HQGF5-h.js +0 -1
- package/dist/client/assets/app-editor-i2ce0F8B.js +0 -1
- package/dist/client/assets/flat-project-B1VoRXiA.js +0 -1
- package/dist/client/assets/library-IZ6uiAlE.js +0 -1
- package/dist/client/assets/project-reports-BFIkPtSH.js +0 -1
- package/dist/client/assets/project-tasks-DD_fl4Sm.js +0 -1
- package/dist/client/assets/record-editor-VsMWy81Y.js +0 -1
- package/dist/client/assets/redirect-editor-DaEa0GfW.js +0 -1
- package/dist/client/assets/reports-CCgdm6dz.js +0 -1
- package/dist/client/assets/route-Bo2LQsMZ.js +0 -1
- package/dist/client/assets/taskboard-analytics-BfqBcYab.js +0 -1
- package/dist/client/assets/tasks-BOGH2SxB.js +0 -1
- package/dist/client/assets/use-new-blocks-editor-C-_W9FQg.js +0 -1
- package/dist/client/assets/useInfiniteQuery-BtM1Ign2.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DxUIRGU7.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null,x)}var C=(_,x)=>{for(var u in x)Fz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Yz.bind(x,u)})};import{Migrator as Lz,sql as o}from"kysely";var mx={};C(mx,{up:()=>Hz,down:()=>Mz});import{sql as VT}from"kysely";async function Hz(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",VT`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",VT`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function Mz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var zx={};C(zx,{up:()=>Rz,down:()=>Bz});import{sql as a}from"kysely";async function Rz(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await a`ALTER TABLE organization_settings
|
|
3
3
|
DROP COLUMN IF EXISTS registry_config,
|
|
4
4
|
DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
|
|
5
5
|
BEGIN RETURN value::jsonb;
|
|
@@ -14,20 +14,20 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
14
14
|
)`.execute(_),await a`DELETE FROM connections
|
|
15
15
|
WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
|
|
16
16
|
OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
|
|
17
|
-
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function
|
|
17
|
+
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function Bz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Ex={};C(Ex,{up:()=>Gz,down:()=>Oz});import{sql as wT}from"kysely";async function Gz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await wT`
|
|
18
18
|
select organization_id, metadata
|
|
19
19
|
from connections
|
|
20
20
|
where connection_type = 'VIRTUAL'
|
|
21
21
|
and metadata like '%submoduleCredentials%'
|
|
22
22
|
order by updated_at asc
|
|
23
|
-
`.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let m of T){let z=m?.host,E=m?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,T]of u){let m=JSON.stringify([...T].map(([z,E])=>({host:z,secretId:E})));await
|
|
23
|
+
`.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let m of T){let z=m?.host,E=m?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,T]of u){let m=JSON.stringify([...T].map(([z,E])=>({host:z,secretId:E})));await wT`
|
|
24
24
|
insert into organization_settings
|
|
25
25
|
("organizationId", submodule_credentials, "createdAt", "updatedAt")
|
|
26
26
|
values (${K}, ${m}, ${N}, ${N})
|
|
27
27
|
on conflict ("organizationId") do update
|
|
28
28
|
set submodule_credentials = excluded.submodule_credentials,
|
|
29
29
|
"updatedAt" = excluded."updatedAt"
|
|
30
|
-
`.execute(_)}}async function
|
|
30
|
+
`.execute(_)}}async function Oz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var $x={};C($x,{up:()=>Sz,down:()=>fz});async function Sz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function fz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Jx={};C(Jx,{up:()=>Az,down:()=>Iz});import{sql as Ux}from"kysely";async function Az(_){await Ux`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Ux`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Ux`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function Iz(_){await _.schema.dropIndex("idx_threads_active_status").execute(),await _.schema.dropIndex("idx_threads_updated_at").execute(),await _.schema.dropIndex("idx_tmp_finish_persisted_at").execute()}var Qx={};C(Qx,{up:()=>wz,down:()=>kz});import{sql as G}from"kysely";var yz={title:{old:["Store Report","Commerce Discovery"],new:"Deco Score"},description:{old:["Your store's report and diagnostics","Commerce report and diagnostics","Commerce Discovery report and commerce diagnostics."],new:"Your store's Deco Score"}},Vz={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},Px={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function kT(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function nT(_,x){for(let[K,T]of[[G`organization_id || '_commerce-discovery'`,yz],[G`'commerce-discovery_' || organization_id`,Vz]])for(let m of["title","description"]){let{from:z,to:E}=kT(T[m],x);await G`
|
|
31
31
|
UPDATE connections
|
|
32
32
|
SET ${G.ref(m)} = ${E}
|
|
33
33
|
WHERE id = ${K}
|
|
@@ -41,7 +41,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
41
41
|
RETURN NULL;
|
|
42
42
|
END;
|
|
43
43
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
44
|
-
`.execute(_);let{from:u,to:N}=
|
|
44
|
+
`.execute(_);let{from:u,to:N}=kT(Px.label,x);await G`
|
|
45
45
|
WITH agents AS (
|
|
46
46
|
SELECT id, deco_score_try_jsonb(metadata) AS m
|
|
47
47
|
FROM connections
|
|
@@ -56,7 +56,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
56
56
|
(
|
|
57
57
|
SELECT jsonb_agg(
|
|
58
58
|
CASE
|
|
59
|
-
WHEN v ->> 'toolName' = ${
|
|
59
|
+
WHEN v ->> 'toolName' = ${Px.toolName}
|
|
60
60
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
61
61
|
THEN v || jsonb_build_object('label', ${N}::text)
|
|
62
62
|
ELSE v
|
|
@@ -72,7 +72,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
72
72
|
AND EXISTS (
|
|
73
73
|
SELECT 1
|
|
74
74
|
FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
|
|
75
|
-
WHERE v ->> 'toolName' = ${
|
|
75
|
+
WHERE v ->> 'toolName' = ${Px.toolName}
|
|
76
76
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
77
77
|
)
|
|
78
78
|
)
|
|
@@ -80,38 +80,38 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
80
80
|
SET metadata = r.m::text
|
|
81
81
|
FROM relabeled r
|
|
82
82
|
WHERE c.id = r.id
|
|
83
|
-
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function
|
|
83
|
+
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function wz(_){await nT(_,"up")}async function kz(_){await nT(_,"down")}var Zx={};C(Zx,{up:()=>vz,down:()=>pz,ACTIONS:()=>Xx});import{sql as N_}from"kysely";var Xx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],nz=Xx.filter((_)=>_!=="finding_resolved");async function vz(_){await vT(_,Xx)}async function pz(_){await N_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await vT(_,nz)}async function vT(_,x){await N_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await N_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${N_.join(x.map((u)=>N_.lit(u)))}))`.execute(_)}var Wx={};C(Wx,{up:()=>gz,down:()=>qz});import{sql as R_}from"kysely";async function gz(_){await R_`
|
|
84
84
|
ALTER TABLE org_jira_column_automations
|
|
85
85
|
ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
|
|
86
86
|
CONSTRAINT chk_org_jira_column_automations_from_kind
|
|
87
87
|
CHECK (from_kind IN ('any', 'earlier', 'later', 'statuses')),
|
|
88
88
|
ADD COLUMN IF NOT EXISTS from_statuses text[] NOT NULL DEFAULT '{}',
|
|
89
89
|
ADD COLUMN IF NOT EXISTS from_key text NOT NULL DEFAULT 'any'
|
|
90
|
-
`.execute(_),await
|
|
90
|
+
`.execute(_),await R_`
|
|
91
91
|
ALTER TABLE org_jira_column_automations
|
|
92
92
|
DROP CONSTRAINT org_jira_column_automations_pkey,
|
|
93
93
|
ADD PRIMARY KEY (organization_id, jira_status, from_key)
|
|
94
|
-
`.execute(_)}async function
|
|
94
|
+
`.execute(_)}async function qz(_){await R_`
|
|
95
95
|
DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
|
|
96
|
-
`.execute(_),await
|
|
96
|
+
`.execute(_),await R_`
|
|
97
97
|
ALTER TABLE org_jira_column_automations
|
|
98
98
|
DROP CONSTRAINT org_jira_column_automations_pkey,
|
|
99
99
|
ADD PRIMARY KEY (organization_id, jira_status),
|
|
100
100
|
DROP COLUMN from_key,
|
|
101
101
|
DROP COLUMN from_statuses,
|
|
102
102
|
DROP COLUMN from_kind
|
|
103
|
-
`.execute(_)}var
|
|
103
|
+
`.execute(_)}var jx={};C(jx,{up:()=>iz,down:()=>cz});import{sql as pT}from"kysely";async function iz(_){await _.schema.createTable("org_project_folders").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("folders","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(pT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("user_sidebar_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("preferences","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(pT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_sidebar_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_sidebar_preferences_organization_id_idx").on("user_sidebar_preferences").column("organization_id").execute()}async function cz(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Lx={};C(Lx,{up:()=>hz,down:()=>tz});async function hz(){}async function tz(){}var Dx={};C(Dx,{up:()=>oz,down:()=>az});import{sql as Fx}from"kysely";async function oz(_){await Fx`
|
|
104
104
|
ALTER TABLE task_board_prompts
|
|
105
105
|
ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
|
|
106
|
-
`.execute(_)}async function
|
|
106
|
+
`.execute(_)}async function az(_){await Fx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Fx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Hx={};C(Hx,{up:()=>rz,down:()=>lz});import{sql as Yx}from"kysely";async function rz(_){await Yx`
|
|
107
107
|
DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
|
|
108
|
-
`.execute(_),await
|
|
108
|
+
`.execute(_),await Yx`
|
|
109
109
|
DELETE FROM connection_aggregations
|
|
110
110
|
WHERE parent_connection_id LIKE 'studio-jira\\_%'
|
|
111
|
-
`.execute(_),await
|
|
111
|
+
`.execute(_),await Yx`
|
|
112
112
|
DELETE FROM connections
|
|
113
113
|
WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
|
|
114
|
-
`.execute(_)}async function
|
|
114
|
+
`.execute(_)}async function lz(){}var Mx={};C(Mx,{up:()=>ez,down:()=>dz});import{sql as gT}from"kysely";async function ez(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(gT`audience in ('human', 'internal')`)).execute(),await gT`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function dz(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Rx={};C(Rx,{up:()=>bz,down:()=>_E});import{sql as sz}from"kysely";async function bz(_){await sz`
|
|
115
115
|
UPDATE org_fs_entry AS d
|
|
116
116
|
SET deleted_at = now(),
|
|
117
117
|
updated_at = now(),
|
|
@@ -130,7 +130,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
130
130
|
AND c.parent = d.path
|
|
131
131
|
AND c.deleted_at IS NULL
|
|
132
132
|
)
|
|
133
|
-
`.execute(_)}async function
|
|
133
|
+
`.execute(_)}async function _E(){}var Gx={};C(Gx,{up:()=>uE,down:()=>CE,ACTIONS:()=>Bx});import{sql as F}from"kysely";var Bx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],xE=Bx.filter((_)=>_!=="sprint_changed");async function uE(_){await F`
|
|
134
134
|
CREATE TABLE task_board_sprints (
|
|
135
135
|
id text PRIMARY KEY,
|
|
136
136
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -146,22 +146,22 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
146
146
|
CONSTRAINT chk_task_board_sprints_dates
|
|
147
147
|
CHECK (start_date IS NULL OR end_date IS NULL OR end_date >= start_date)
|
|
148
148
|
)
|
|
149
|
-
`.execute(_),await
|
|
149
|
+
`.execute(_),await F`
|
|
150
150
|
CREATE INDEX idx_task_board_sprints_org
|
|
151
151
|
ON task_board_sprints (organization_id)
|
|
152
|
-
`.execute(_),await
|
|
152
|
+
`.execute(_),await F`
|
|
153
153
|
ALTER TABLE task_board_items
|
|
154
154
|
ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
|
|
155
|
-
`.execute(_),await
|
|
155
|
+
`.execute(_),await F`
|
|
156
156
|
CREATE INDEX idx_task_board_items_sprint
|
|
157
157
|
ON task_board_items (organization_id, sprint_id)
|
|
158
158
|
WHERE sprint_id IS NOT NULL
|
|
159
|
-
`.execute(_),await
|
|
159
|
+
`.execute(_),await qT(_,Bx)}async function CE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await qT(_,xE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function qT(_,x){await F`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await F`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${F.join(x.map((u)=>F.lit(u)))}))`.execute(_)}var Ox={};C(Ox,{up:()=>NE,planOrgSiteProjectLinks:()=>hT,down:()=>TE,applyOrgSiteProjectLinks:()=>tT});import{sql as P}from"kysely";var KE="migration-237",iT=1000;async function cT(_){return(await P`
|
|
160
160
|
SELECT conname FROM pg_constraint
|
|
161
161
|
WHERE conrelid = 'org_sites'::regclass
|
|
162
162
|
AND confrelid = 'organization'::regclass
|
|
163
163
|
AND contype = 'f'
|
|
164
|
-
`.execute(_)).rows[0]?.conname??null}async function
|
|
164
|
+
`.execute(_)).rows[0]?.conname??null}async function hT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await P`
|
|
165
165
|
SELECT slug, organization_id FROM org_sites
|
|
166
166
|
WHERE organization_id IS NOT NULL
|
|
167
167
|
ORDER BY organization_id, slug
|
|
@@ -172,17 +172,17 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
172
172
|
SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
|
|
173
173
|
)
|
|
174
174
|
ORDER BY organization_id, id
|
|
175
|
-
`.execute(_),K=new Map;for(let T of N.rows){if(!T.metadata)continue;let m;try{let $=JSON.parse(T.metadata);if($&&typeof $==="object")m=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof m!=="string"||!m)continue;let z=`${T.organization_id}\x00${m}`,E=K.get(z)??[];E.push(T.id),K.set(z,E)}for(let{slug:T,organization_id:m}of u.rows){let z=K.get(`${m}\x00${T}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:T,projectIds:z});else x.links.push({slug:T,projectId:z[0]})}return x}async function
|
|
175
|
+
`.execute(_),K=new Map;for(let T of N.rows){if(!T.metadata)continue;let m;try{let $=JSON.parse(T.metadata);if($&&typeof $==="object")m=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof m!=="string"||!m)continue;let z=`${T.organization_id}\x00${m}`,E=K.get(z)??[];E.push(T.id),K.set(z,E)}for(let{slug:T,organization_id:m}of u.rows){let z=K.get(`${m}\x00${T}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:T,projectIds:z});else x.links.push({slug:T,projectId:z[0]})}return x}async function tT(_,x){let u=0;for(let N=0;N<x.length;N+=iT){let K=P.join(x.slice(N,N+iT).map((m)=>P`(${m.slug}::text, ${m.projectId}::text)`)),T=await P`
|
|
176
176
|
UPDATE org_sites o
|
|
177
177
|
SET project_id = v.pid,
|
|
178
178
|
linked_at = now(),
|
|
179
|
-
updated_by = ${
|
|
179
|
+
updated_by = ${KE},
|
|
180
180
|
updated_at = now()
|
|
181
181
|
FROM (VALUES ${K}) AS v(slug, pid)
|
|
182
182
|
WHERE o.slug = v.slug
|
|
183
183
|
AND o.project_id IS NULL
|
|
184
184
|
AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
|
|
185
|
-
`.execute(_);u+=Number(T.numAffectedRows??0n)}return u}async function
|
|
185
|
+
`.execute(_);u+=Number(T.numAffectedRows??0n)}return u}async function NE(_){await P`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await hT(_);await P`
|
|
186
186
|
ALTER TABLE org_sites
|
|
187
187
|
ADD COLUMN project_id text NULL
|
|
188
188
|
REFERENCES connections(id) ON DELETE SET NULL,
|
|
@@ -190,7 +190,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
190
190
|
`.execute(_),await P`
|
|
191
191
|
CREATE UNIQUE INDEX org_sites_project_id_uq
|
|
192
192
|
ON org_sites (project_id) WHERE project_id IS NOT NULL
|
|
193
|
-
`.execute(_);let u=await
|
|
193
|
+
`.execute(_);let u=await cT(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
|
|
194
194
|
ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
|
|
195
195
|
`.execute(_),await P`
|
|
196
196
|
ALTER TABLE org_sites
|
|
@@ -199,12 +199,12 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
199
199
|
ON DELETE SET NULL NOT VALID
|
|
200
200
|
`.execute(_),await P`
|
|
201
201
|
ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
|
|
202
|
-
`.execute(_);let N=await
|
|
202
|
+
`.execute(_);let N=await tT(_,x.links),K=await P`
|
|
203
203
|
UPDATE org_sites SET linked_at = created_at
|
|
204
204
|
WHERE organization_id IS NOT NULL AND linked_at IS NULL
|
|
205
|
-
`.execute(_);await P`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:T,projectIds:m}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${T}": ${m.join(", ")}`)}async function
|
|
205
|
+
`.execute(_);await P`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:T,projectIds:m}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${T}": ${m.join(", ")}`)}async function TE(_){if((await P`
|
|
206
206
|
SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
|
|
207
|
-
`.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await
|
|
207
|
+
`.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await cT(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
|
|
208
208
|
ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
|
|
209
209
|
`.execute(_),await P`
|
|
210
210
|
ALTER TABLE org_sites
|
|
@@ -213,9 +213,9 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
213
213
|
ON DELETE CASCADE
|
|
214
214
|
`.execute(_),await P`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await P`
|
|
215
215
|
ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
|
|
216
|
-
`.execute(_)}var
|
|
216
|
+
`.execute(_)}var Sx={};C(Sx,{up:()=>mE,moveRules:()=>D,down:()=>zE});import{sql as c}from"kysely";async function mE(_){await D(_,"task_board_prompts","tbp_","in_progress","in_review"),await D(_,"task_board_prompts","tbp_","todo","in_progress"),await D(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await D(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
|
|
217
217
|
DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
|
|
218
|
-
`.execute(_),await
|
|
218
|
+
`.execute(_),await D(_,"task_board_column_automations","tbca_","todo","in_progress"),await D(_,"task_board_column_automations","tbca_","approved","ready_for_deployment"),await D(_,"task_board_column_automations","tbca_","merged","post_deploy_validation"),await c`
|
|
219
219
|
WITH moved AS (
|
|
220
220
|
UPDATE task_board_items AS i
|
|
221
221
|
SET status = CASE
|
|
@@ -241,7 +241,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
241
241
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
242
242
|
now()
|
|
243
243
|
FROM moved
|
|
244
|
-
`.execute(_)}async function
|
|
244
|
+
`.execute(_)}async function zE(){}async function D(_,x,u,N,K){await c`
|
|
245
245
|
DELETE FROM ${c.table(x)} AS src
|
|
246
246
|
WHERE src.column_key = ${N}
|
|
247
247
|
AND EXISTS (
|
|
@@ -255,7 +255,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
255
255
|
id = ${u} || organization_id || '_' || ${K},
|
|
256
256
|
updated_at = now()
|
|
257
257
|
WHERE column_key = ${N}
|
|
258
|
-
`.execute(_)}var
|
|
258
|
+
`.execute(_)}var fx={};C(fx,{up:()=>$E,down:()=>UE});import{sql as EE}from"kysely";async function $E(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await D(_,x,u,"todo","in_progress"),await D(_,x,u,"approved","ready_for_deployment"),await D(_,x,u,"merged","post_deploy_validation")}await EE`
|
|
259
259
|
WITH moved AS (
|
|
260
260
|
UPDATE task_board_items AS i
|
|
261
261
|
SET status = CASE prev.status
|
|
@@ -279,7 +279,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
279
279
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
280
280
|
now()
|
|
281
281
|
FROM moved
|
|
282
|
-
`.execute(_)}async function
|
|
282
|
+
`.execute(_)}async function UE(){}var Ax={};C(Ax,{up:()=>PE,down:()=>QE});import{sql as JE}from"kysely";async function PE(_){await JE`
|
|
283
283
|
WITH restored AS (
|
|
284
284
|
UPDATE task_board_items AS i
|
|
285
285
|
SET status = 'todo', updated_at = now()
|
|
@@ -306,45 +306,45 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
306
306
|
jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
|
|
307
307
|
now()
|
|
308
308
|
FROM restored
|
|
309
|
-
`.execute(_)}async function
|
|
309
|
+
`.execute(_)}async function QE(){}var Ix={};C(Ix,{up:()=>XE,down:()=>ZE});import{sql as L}from"kysely";async function XE(_){await L`
|
|
310
310
|
ALTER TABLE automation_triggers
|
|
311
311
|
ADD COLUMN column_key text,
|
|
312
312
|
ADD COLUMN from_kind text,
|
|
313
313
|
ADD COLUMN from_statuses text[] NOT NULL DEFAULT '{}'
|
|
314
|
-
`.execute(_),await
|
|
314
|
+
`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
|
|
315
315
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
316
316
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
|
|
317
|
-
`.execute(_),await
|
|
317
|
+
`.execute(_),await L`
|
|
318
318
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_board_column_transition_trigger
|
|
319
319
|
CHECK (
|
|
320
320
|
type != 'board_column_transition'
|
|
321
321
|
OR (column_key IS NOT NULL
|
|
322
322
|
AND from_kind IN ('any', 'earlier', 'later', 'statuses'))
|
|
323
323
|
)
|
|
324
|
-
`.execute(_),await
|
|
324
|
+
`.execute(_),await L`
|
|
325
325
|
CREATE TABLE automation_trigger_fires (
|
|
326
326
|
trigger_id text NOT NULL REFERENCES automation_triggers(id) ON DELETE CASCADE,
|
|
327
327
|
event_key text NOT NULL,
|
|
328
328
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
329
329
|
PRIMARY KEY (trigger_id, event_key)
|
|
330
330
|
)
|
|
331
|
-
`.execute(_),await
|
|
331
|
+
`.execute(_),await L`
|
|
332
332
|
CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
|
|
333
333
|
ON task_board_activity (occurred_at)
|
|
334
334
|
WHERE action = 'status_changed'
|
|
335
|
-
`.execute(_)}async function
|
|
335
|
+
`.execute(_)}async function ZE(_){await L`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await L`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await L`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
|
|
336
336
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
337
337
|
CHECK (type IN ('cron', 'event', 'webhook'))
|
|
338
|
-
`.execute(_),await
|
|
338
|
+
`.execute(_),await L`
|
|
339
339
|
ALTER TABLE automation_triggers
|
|
340
340
|
DROP COLUMN IF EXISTS column_key,
|
|
341
341
|
DROP COLUMN IF EXISTS from_kind,
|
|
342
342
|
DROP COLUMN IF EXISTS from_statuses
|
|
343
|
-
`.execute(_)}var
|
|
343
|
+
`.execute(_)}var yx={};C(yx,{up:()=>FE,down:()=>DE,backfillUrlSlugs:()=>B_});import{sql as Y}from"kysely";var aT=64,WE=new Set(["new","edit","settings","apps","projects","connections"]);function jE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function LE(_,x){let u=jE(_??"").slice(0,aT).replace(/-+$/,"");return u.length>=2&&!WE.has(u)?u:x}function oT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,aT-u.length).replace(/-+$/,"")}${u}`}async function B_(_){let{rows:x}=await Y`
|
|
344
344
|
SELECT id, organization_id, title, connection_type, url_slug
|
|
345
345
|
FROM connections
|
|
346
346
|
ORDER BY organization_id, created_at, id
|
|
347
|
-
`.execute(_),{rows:u}=await Y`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(m)=>{let z=N.get(m);if(!z)N.set(m,z=new Set);return z};for(let m of x)if(m.url_slug)K(m.organization_id).add(m.url_slug);for(let m of u)K(m.organization_id).add(m.slug);let T=[];for(let m of x){if(m.url_slug)continue;let z=K(m.organization_id),E=
|
|
347
|
+
`.execute(_),{rows:u}=await Y`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(m)=>{let z=N.get(m);if(!z)N.set(m,z=new Set);return z};for(let m of x)if(m.url_slug)K(m.organization_id).add(m.url_slug);for(let m of u)K(m.organization_id).add(m.slug);let T=[];for(let m of x){if(m.url_slug)continue;let z=K(m.organization_id),E=LE(m.title,m.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(oT(E,$)))$++;let J=oT(E,$);z.add(J),T.push({id:m.id,slug:J})}for(let m=0;m<T.length;m+=1000){let z=T.slice(m,m+1000);await Y`
|
|
348
348
|
UPDATE connections c
|
|
349
349
|
SET url_slug = v.slug
|
|
350
350
|
FROM unnest(
|
|
@@ -352,7 +352,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
352
352
|
${Y.val(z.map((E)=>E.slug))}::text[]
|
|
353
353
|
) AS v(id, slug)
|
|
354
354
|
WHERE c.id = v.id AND c.url_slug IS NULL
|
|
355
|
-
`.execute(_)}}async function
|
|
355
|
+
`.execute(_)}}async function FE(_){await Y`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await Y`
|
|
356
356
|
CREATE TABLE connection_slug_aliases (
|
|
357
357
|
organization_id text NOT NULL,
|
|
358
358
|
slug text NOT NULL,
|
|
@@ -363,21 +363,21 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
363
363
|
`.execute(_),await Y`
|
|
364
364
|
CREATE INDEX idx_connection_slug_aliases_connection
|
|
365
365
|
ON connection_slug_aliases (connection_id)
|
|
366
|
-
`.execute(_),await
|
|
366
|
+
`.execute(_),await B_(_),await Y`
|
|
367
367
|
CREATE UNIQUE INDEX idx_connections_org_url_slug
|
|
368
368
|
ON connections (organization_id, url_slug)
|
|
369
|
-
`.execute(_)}async function
|
|
369
|
+
`.execute(_)}async function DE(_){await Y`DROP TABLE connection_slug_aliases`.execute(_),await Y`DROP INDEX idx_connections_org_url_slug`.execute(_),await Y`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var Vx={};C(Vx,{up:()=>YE,down:()=>HE});async function YE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function HE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var wx={};C(wx,{up:()=>ME,down:()=>RE});async function ME(_){await B_(_)}async function RE(){}var kx={};C(kx,{up:()=>BE,down:()=>GE});import{sql as G_}from"kysely";async function BE(_){await G_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await G_`
|
|
370
370
|
CREATE UNIQUE INDEX idx_automations_org_system_key
|
|
371
371
|
ON automations (organization_id, system_key)
|
|
372
372
|
WHERE system_key IS NOT NULL
|
|
373
|
-
`.execute(_)}async function
|
|
373
|
+
`.execute(_)}async function GE(_){await G_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await G_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var nx={};C(nx,{up:()=>OE,down:()=>SE});import{sql as T_}from"kysely";async function OE(_){await T_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await T_`
|
|
374
374
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
375
375
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
|
|
376
376
|
'board_pr_ready'))
|
|
377
|
-
`.execute(_)}async function
|
|
377
|
+
`.execute(_)}async function SE(_){await T_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await T_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await T_`
|
|
378
378
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
379
379
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
|
|
380
|
-
`.execute(_)}var
|
|
380
|
+
`.execute(_)}var vx={};C(vx,{up:()=>fE,down:()=>yE});import{sql as H}from"kysely";async function fE(_){let{rows:x}=await H`
|
|
381
381
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
382
382
|
WHERE conname = 'chk_trigger_type'
|
|
383
383
|
AND conrelid = 'automation_triggers'::regclass
|
|
@@ -404,8 +404,8 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
404
404
|
INSERT INTO automations
|
|
405
405
|
(id, organization_id, name, active, created_by, messages, models,
|
|
406
406
|
virtual_mcp_id)
|
|
407
|
-
VALUES (${m}, ${K.organization_id}, ${
|
|
408
|
-
${K.created_by}, ${JSON.stringify(
|
|
407
|
+
VALUES (${m}, ${K.organization_id}, ${AE(K)}, true,
|
|
408
|
+
${K.created_by}, ${JSON.stringify(IE(K.prompt))},
|
|
409
409
|
'{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
|
|
410
410
|
ON CONFLICT (id) DO NOTHING
|
|
411
411
|
`.execute(_),await H`
|
|
@@ -414,11 +414,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
414
414
|
VALUES (${`trg_${m}`}, ${m}, 'jira_transition', ${K.jira_status},
|
|
415
415
|
${K.from_kind}, ${K.from_statuses})
|
|
416
416
|
ON CONFLICT (id) DO NOTHING
|
|
417
|
-
`.execute(_)}}function
|
|
418
|
-
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function
|
|
417
|
+
`.execute(_)}}function AE(_){let x=_.from_kind==="earlier"?" (from an earlier column)":_.from_kind==="later"?" (from a later column)":_.from_kind==="statuses"?` (from ${_.from_statuses.join(", ")})`:"";return`Jira: ${_.jira_status}${x}`}function IE(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
|
|
418
|
+
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function yE(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
|
|
419
419
|
ALTER TABLE automation_triggers
|
|
420
420
|
DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
|
|
421
|
-
`.execute(_)}var
|
|
421
|
+
`.execute(_)}var px={};C(px,{up:()=>VE,down:()=>wE});import{sql as m_}from"kysely";async function VE(_){await m_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await m_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function wE(_){await m_`
|
|
422
422
|
CREATE TABLE IF NOT EXISTS task_board_column_automations (
|
|
423
423
|
id text PRIMARY KEY,
|
|
424
424
|
organization_id text NOT NULL,
|
|
@@ -427,10 +427,10 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
427
427
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
428
428
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
429
429
|
)
|
|
430
|
-
`.execute(_),await
|
|
430
|
+
`.execute(_),await m_`
|
|
431
431
|
CREATE UNIQUE INDEX IF NOT EXISTS task_board_column_automations_org_column_uniq
|
|
432
432
|
ON task_board_column_automations (organization_id, column_key)
|
|
433
|
-
`.execute(_),await
|
|
433
|
+
`.execute(_),await m_`
|
|
434
434
|
CREATE TABLE IF NOT EXISTS org_jira_column_automations (
|
|
435
435
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
436
436
|
jira_status text NOT NULL,
|
|
@@ -445,16 +445,23 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
445
445
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
446
446
|
PRIMARY KEY (organization_id, jira_status, from_key)
|
|
447
447
|
)
|
|
448
|
-
`.execute(_)}var
|
|
448
|
+
`.execute(_)}var gx={};C(gx,{up:()=>kE,down:()=>nE});import{sql as O_}from"kysely";async function kE(_){await O_`
|
|
449
449
|
ALTER TABLE task_board_items
|
|
450
450
|
ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
|
|
451
451
|
REFERENCES connections(id) ON DELETE SET NULL
|
|
452
|
-
`.execute(_),await
|
|
452
|
+
`.execute(_),await O_`
|
|
453
453
|
CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
|
|
454
454
|
ON task_board_items (virtual_mcp_id)
|
|
455
455
|
WHERE virtual_mcp_id IS NOT NULL
|
|
456
|
-
`.execute(_)}async function
|
|
457
|
-
|
|
456
|
+
`.execute(_)}async function nE(_){await O_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await O_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var qx={};C(qx,{up:()=>vE,down:()=>pE});async function vE(_){await _.schema.createTable("github_copilot_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function pE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var ix={};C(ix,{up:()=>gE,down:()=>qE});async function gE(_){await _.schema.createTable("org_shared_plans").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("created_at","timestamptz",(x)=>x.notNull()).addPrimaryKeyConstraint("org_shared_plans_pkey",["organization_id","provider_id","user_id"]).execute()}async function qE(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var cx={};C(cx,{up:()=>iE,down:()=>cE});import{sql as r}from"kysely";var S_=["linked_chat_run"];async function rT(_){let{rows:x}=await r`
|
|
457
|
+
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
458
|
+
WHERE conname = 'chk_trigger_type'
|
|
459
|
+
AND conrelid = 'automation_triggers'::regclass
|
|
460
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function lT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
|
|
461
|
+
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
462
|
+
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
463
|
+
`.execute(_)}async function iE(_){let x=await rT(_);if(S_.every((u)=>x.has(u)))return;for(let u of S_)x.add(u);await lT(_,x)}async function cE(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(S_)})`.execute(_);let x=await rT(_);for(let u of S_)x.delete(u);await lT(_,x)}var hx={};C(hx,{up:()=>tE,down:()=>oE});import{sql as hE}from"kysely";async function tE(_){await hE`ALTER TABLE organization_settings
|
|
464
|
+
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function oE(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var tx={};C(tx,{up:()=>aE,down:()=>rE});import{sql as eT}from"kysely";async function aE(_){await eT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function rE(_){await eT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var ox={};C(ox,{up:()=>lE,down:()=>eE});import{sql as O}from"kysely";async function lE(_){await O`
|
|
458
465
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
459
466
|
RETURNS jsonb AS $fn$
|
|
460
467
|
BEGIN
|
|
@@ -528,7 +535,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
528
535
|
|| '/' ||
|
|
529
536
|
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
|
|
530
537
|
) = lower(p.path)
|
|
531
|
-
`.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function
|
|
538
|
+
`.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function eE(_){await O`
|
|
532
539
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
533
540
|
RETURNS jsonb AS $fn$
|
|
534
541
|
BEGIN
|
|
@@ -555,17 +562,17 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
555
562
|
)::text
|
|
556
563
|
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
557
564
|
AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
|
|
558
|
-
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var
|
|
565
|
+
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var rx={};C(rx,{up:()=>dE,down:()=>sE});import{sql as ax}from"kysely";async function dE(_){await ax`ALTER TABLE git_provider_accounts
|
|
559
566
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
560
567
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
561
568
|
CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
|
|
562
569
|
ADD CONSTRAINT git_provider_accounts_cli_check
|
|
563
570
|
CHECK (auth_kind <> 'github_cli' OR
|
|
564
|
-
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function
|
|
571
|
+
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function sE(_){await ax`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await ax`ALTER TABLE git_provider_accounts
|
|
565
572
|
DROP CONSTRAINT git_provider_accounts_cli_check,
|
|
566
573
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
567
574
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
568
|
-
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var
|
|
575
|
+
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var lx={};C(lx,{up:()=>bE,down:()=>_0});import{sql as dT}from"kysely";async function bE(_){await dT`
|
|
569
576
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
570
577
|
SELECT
|
|
571
578
|
'org_user_fs',
|
|
@@ -579,9 +586,9 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
579
586
|
END,
|
|
580
587
|
now()
|
|
581
588
|
ON CONFLICT (id) DO NOTHING
|
|
582
|
-
`.execute(_)}async function
|
|
589
|
+
`.execute(_)}async function _0(_){await dT`
|
|
583
590
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
584
|
-
`.execute(_)}var
|
|
591
|
+
`.execute(_)}var ex={};C(ex,{up:()=>x0,down:()=>u0});async function x0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function u0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var dx={};C(dx,{up:()=>C0,down:()=>K0});async function C0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function K0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var sx={};C(sx,{up:()=>T0,down:()=>m0});import{sql as z_}from"kysely";var N0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function sT(_,x){for(let{table:u,column:N}of N0){let K=`${u}_${N}_check`,T=x.map((m)=>`'${m}'`).join(", ");await z_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await z_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${T}))`).execute(_)}}async function T0(_){await sT(_,["github","gitlab","bitbucket"])}async function m0(_){await z_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await z_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await z_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await sT(_,["github","gitlab"])}var bx={};C(bx,{up:()=>z0,down:()=>E0});import{sql as f_}from"kysely";async function z0(_){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(f_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(f_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(f_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(f_`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 E0(_){await _.schema.dropTable("experiments").execute()}var _u={};C(_u,{up:()=>U0,down:()=>J0});import{sql as $0}from"kysely";async function U0(_){await $0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function J0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var uu={};C(uu,{up:()=>Q0,down:()=>X0,ACTIONS:()=>xu});import{sql as E_}from"kysely";var xu=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],P0=xu.filter((_)=>_!=="duplicate_reported");async function Q0(_){await bT(_,xu)}async function X0(_){await E_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await bT(_,P0)}async function bT(_,x){await E_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await E_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${E_.join(x.map((u)=>E_.lit(u)))}))`.execute(_)}var Cu={};C(Cu,{up:()=>Z0,down:()=>W0});async function Z0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function W0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Ku={};C(Ku,{up:()=>j0,down:()=>L0});async function j0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function L0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Nu={};C(Nu,{up:()=>D0,down:()=>Y0});import{sql as F0}from"kysely";async function D0(_){await F0`
|
|
585
592
|
CREATE TABLE github_connect_flows (
|
|
586
593
|
id text PRIMARY KEY,
|
|
587
594
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -591,7 +598,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
591
598
|
);
|
|
592
599
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
593
600
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
594
|
-
`.execute(_)}async function
|
|
601
|
+
`.execute(_)}async function Y0(_){await _.schema.dropTable("github_connect_flows").execute()}var Tu={};C(Tu,{up:()=>H0,down:()=>M0});async function H0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function M0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var mu={};C(mu,{up:()=>R0,down:()=>B0});import{sql as A_}from"kysely";async function R0(_){await A_`
|
|
595
602
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
596
603
|
DECLARE
|
|
597
604
|
metadata_json jsonb;
|
|
@@ -642,24 +649,24 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
642
649
|
AFTER INSERT OR UPDATE OF metadata ON connections
|
|
643
650
|
FOR EACH ROW EXECUTE FUNCTION adopt_legacy_repository();
|
|
644
651
|
UPDATE connections SET metadata = metadata WHERE slug = 'mcp-github';
|
|
645
|
-
`.execute(_),await
|
|
652
|
+
`.execute(_),await A_`
|
|
646
653
|
UPDATE org_repo_sync s SET repository_id = r.id
|
|
647
654
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
648
655
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
649
656
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
650
|
-
`.execute(_)}async function j0(_){await S_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await S_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Nu={};C(Nu,{up:()=>L0,down:()=>F0});import{sql as V}from"kysely";async function L0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function F0(_){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 Tu={};C(Tu,{up:()=>Y0,down:()=>H0});import{sql as lT}from"kysely";async function Y0(_){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(lT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(lT`CURRENT_TIMESTAMP`)).execute()}async function H0(_){await _.schema.dropTable("organization_settings").execute()}var mu={};C(mu,{up:()=>M0,down:()=>R0});async function M0(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function R0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var zu={};C(zu,{up:()=>B0,down:()=>G0});async function B0(_){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 G0(_){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 Eu={};C(Eu,{up:()=>O0,down:()=>S0});async function O0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function S0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var $u={};C($u,{up:()=>A0,down:()=>I0});import{sql as f0}from"kysely";async function A0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",f0`text`).execute()}async function I0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Uu={};C(Uu,{up:()=>y0,down:()=>V0});async function y0(_){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 V0(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var Ju={};C(Ju,{up:()=>w0,down:()=>k0});import{sql as E_}from"kysely";async function w0(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(E_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(E_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(E_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(E_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(E_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function k0(_){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 Pu={};C(Pu,{up:()=>v0,down:()=>p0});import{sql as n0}from"kysely";async function v0(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function p0(_){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(n0`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 Qu={};C(Qu,{up:()=>g0,down:()=>q0});import{sql as f_}from"kysely";async function g0(_){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(f_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(f_`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(f_`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 f_`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 q0(_){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 Xu={};C(Xu,{up:()=>i0,down:()=>c0});async function i0(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function c0(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Zu={};C(Zu,{up:()=>h0,down:()=>t0});import{sql as A_}from"kysely";async function h0(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await A_`
|
|
657
|
+
`.execute(_)}async function B0(_){await A_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await A_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var zu={};C(zu,{up:()=>G0,down:()=>O0});import{sql as V}from"kysely";async function G0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function O0(_){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 Eu={};C(Eu,{up:()=>S0,down:()=>f0});import{sql as _m}from"kysely";async function S0(_){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(_m`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(_m`CURRENT_TIMESTAMP`)).execute()}async function f0(_){await _.schema.dropTable("organization_settings").execute()}var $u={};C($u,{up:()=>A0,down:()=>I0});async function A0(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function I0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Uu={};C(Uu,{up:()=>y0,down:()=>V0});async function y0(_){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 V0(_){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 Ju={};C(Ju,{up:()=>w0,down:()=>k0});async function w0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function k0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0});import{sql as n0}from"kysely";async function v0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",n0`text`).execute()}async function p0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Qu={};C(Qu,{up:()=>g0,down:()=>q0});async function g0(_){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 q0(_){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 Xu={};C(Xu,{up:()=>i0,down:()=>c0});import{sql as $_}from"kysely";async function i0(_){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($_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo($_`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($_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo($_`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($_`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 c0(_){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 Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as h0}from"kysely";async function t0(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function o0(_){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(h0`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 Wu={};C(Wu,{up:()=>a0,down:()=>r0});import{sql as I_}from"kysely";async function a0(_){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(I_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(I_`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(I_`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 I_`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 r0(_){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 ju={};C(ju,{up:()=>l0,down:()=>e0});async function l0(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function e0(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Lu={};C(Lu,{up:()=>d0,down:()=>s0});import{sql as y_}from"kysely";async function d0(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await y_`
|
|
651
658
|
UPDATE gateways
|
|
652
659
|
SET tool_selection_mode = CASE
|
|
653
660
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
654
661
|
ELSE 'inclusion'
|
|
655
662
|
END
|
|
656
|
-
`.execute(_),await
|
|
663
|
+
`.execute(_),await y_`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 s0(_){await y_`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 y_`
|
|
657
664
|
UPDATE gateways
|
|
658
665
|
SET tool_selection_strategy = CASE
|
|
659
666
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
660
667
|
ELSE NULL
|
|
661
668
|
END
|
|
662
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var
|
|
669
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Fu={};C(Fu,{up:()=>b0,down:()=>_$});async function b0(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function _$(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var Du={};C(Du,{up:()=>x$,down:()=>u$});async function x$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function u$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Yu={};C(Yu,{up:()=>C$,down:()=>K$});async function C$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function K$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Hu={};C(Hu,{up:()=>N$,down:()=>T$});async function N$(_){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 T$(_){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 Mu={};C(Mu,{up:()=>z$,down:()=>E$});import{sql as m$}from"kysely";async function z$(_){await m$`
|
|
663
670
|
DELETE FROM downstream_tokens
|
|
664
671
|
WHERE id NOT IN (
|
|
665
672
|
SELECT id FROM (
|
|
@@ -669,7 +676,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
669
676
|
) ranked
|
|
670
677
|
WHERE rn = 1
|
|
671
678
|
)
|
|
672
|
-
`.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
|
|
679
|
+
`.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 E$(_){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 Ru={};C(Ru,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function U$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Bu={};C(Bu,{up:()=>J$,down:()=>P$});import{sql as xm}from"kysely";async function J$(_){await xm`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function P$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await xm`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Gu={};C(Gu,{up:()=>Q$,down:()=>X$});async function Q$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function X$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Ou={};C(Ou,{up:()=>Z$,down:()=>W$});import{sql as V_}from"kysely";async function Z$(_){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(V_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("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(V_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(V_`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 W$(_){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 Su={};C(Su,{up:()=>j$,down:()=>L$});async function j$(_){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 L$(_){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 fu={};C(fu,{up:()=>F$,down:()=>D$});async function F$(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function D$(_){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 Au={};C(Au,{up:()=>Y$,down:()=>H$});import{sql as M}from"kysely";async function Y$(_){await M`
|
|
673
680
|
INSERT INTO connections (
|
|
674
681
|
id,
|
|
675
682
|
organization_id,
|
|
@@ -716,7 +723,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
716
723
|
created_at,
|
|
717
724
|
updated_at
|
|
718
725
|
FROM virtual_mcps
|
|
719
|
-
`.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function
|
|
726
|
+
`.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function H$(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await M`
|
|
720
727
|
INSERT INTO virtual_mcps (
|
|
721
728
|
id, organization_id, title, description, icon, status,
|
|
722
729
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -726,7 +733,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
726
733
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
727
734
|
FROM connections
|
|
728
735
|
WHERE connection_type = 'VIRTUAL'
|
|
729
|
-
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var
|
|
736
|
+
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var Iu={};C(Iu,{up:()=>M$,down:()=>R$});async function M$(_){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 R$(_){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 yu={};C(yu,{up:()=>B$,down:()=>G$});import{sql as w}from"kysely";async function B$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
|
|
730
737
|
INSERT INTO connection_aggregations_new (
|
|
731
738
|
id, parent_connection_id, child_connection_id,
|
|
732
739
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -735,7 +742,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
735
742
|
id, parent_connection_id, child_connection_id,
|
|
736
743
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
737
744
|
FROM connection_aggregations
|
|
738
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function
|
|
745
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function G$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
|
|
739
746
|
INSERT INTO connection_aggregations_new (
|
|
740
747
|
id, parent_connection_id, child_connection_id,
|
|
741
748
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -744,7 +751,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
744
751
|
id, parent_connection_id, child_connection_id,
|
|
745
752
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
746
753
|
FROM connection_aggregations
|
|
747
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var
|
|
754
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var wu={};C(wu,{up:()=>O$,down:()=>S$});import{sql as Vu}from"kysely";async function O$(_){await Vu`
|
|
748
755
|
UPDATE connections
|
|
749
756
|
SET connection_url = connection_url || '/management',
|
|
750
757
|
tools = NULL,
|
|
@@ -752,42 +759,42 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
752
759
|
WHERE connection_url LIKE '%/mcp'
|
|
753
760
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
754
761
|
AND app_name = '@deco/management-mcp'
|
|
755
|
-
`.execute(_),await
|
|
762
|
+
`.execute(_),await Vu`
|
|
756
763
|
UPDATE connections
|
|
757
764
|
SET tools = NULL,
|
|
758
765
|
updated_at = CURRENT_TIMESTAMP
|
|
759
766
|
WHERE app_name = '@deco/management-mcp'
|
|
760
767
|
AND tools IS NOT NULL
|
|
761
|
-
`.execute(_)}async function
|
|
768
|
+
`.execute(_)}async function S$(_){await Vu`
|
|
762
769
|
UPDATE connections
|
|
763
770
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
764
771
|
updated_at = CURRENT_TIMESTAMP
|
|
765
772
|
WHERE connection_url LIKE '%/mcp/management'
|
|
766
773
|
AND app_name = '@deco/management-mcp'
|
|
767
|
-
`.execute(_)}var
|
|
774
|
+
`.execute(_)}var nu={};C(nu,{up:()=>f$,down:()=>A$});import{sql as ku}from"kysely";async function f$(_){await ku`
|
|
768
775
|
UPDATE connections
|
|
769
776
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
770
777
|
tools = NULL,
|
|
771
778
|
updated_at = CURRENT_TIMESTAMP
|
|
772
779
|
WHERE connection_url LIKE '%/mcp/management'
|
|
773
780
|
AND app_name = '@deco/management-mcp'
|
|
774
|
-
`.execute(_),await
|
|
781
|
+
`.execute(_),await ku`
|
|
775
782
|
UPDATE connections
|
|
776
783
|
SET tools = NULL,
|
|
777
784
|
updated_at = CURRENT_TIMESTAMP
|
|
778
785
|
WHERE connection_url LIKE '%/mcp/self'
|
|
779
786
|
AND app_name = '@deco/management-mcp'
|
|
780
787
|
AND tools IS NOT NULL
|
|
781
|
-
`.execute(_)}async function
|
|
788
|
+
`.execute(_)}async function A$(_){await ku`
|
|
782
789
|
UPDATE connections
|
|
783
790
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
784
791
|
updated_at = CURRENT_TIMESTAMP
|
|
785
792
|
WHERE connection_url LIKE '%/mcp/self'
|
|
786
793
|
AND app_name = '@deco/management-mcp'
|
|
787
|
-
`.execute(_)}var
|
|
794
|
+
`.execute(_)}var vu={};C(vu,{up:()=>I$,down:()=>y$});async function I$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function y$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var pu={};C(pu,{up:()=>V$,down:()=>w$});import{sql as um}from"kysely";async function V$(_){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(um`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(um`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 w$(_){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 gu={};C(gu,{up:()=>k$,down:()=>n$});import{sql as U_}from"kysely";async function k$(_){await U_`
|
|
788
795
|
ALTER TABLE connection_aggregations
|
|
789
796
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
790
|
-
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function
|
|
797
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function n$(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await U_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await U_`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await U_`
|
|
791
798
|
INSERT INTO connection_aggregations_new (
|
|
792
799
|
id, parent_connection_id, child_connection_id,
|
|
793
800
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -796,42 +803,42 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
796
803
|
id, parent_connection_id, child_connection_id,
|
|
797
804
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
798
805
|
FROM connection_aggregations
|
|
799
|
-
`.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
|
|
806
|
+
`.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 qu={};C(qu,{up:()=>i$,down:()=>c$});import{webcrypto as Km}from"crypto";var Cm="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var v$=128,h,l;function p$(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*v$),Km.getRandomValues(h),l=0;else if(l+_>h.length)Km.getRandomValues(h),l=0;l+=_}function e(_=21){p$(_|=0);let x="";for(let u=l-_;u<l;u++)x+=Cm[h[u]&63];return x}var g$="org-admin",q$="Organization Admin";async function i$(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),K=`proj_${e()}`,T=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:g$,name:q$,description:null,enabled_plugins:T?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function c$(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var iu={};C(iu,{up:()=>h$,down:()=>t$});async function h$(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function t$(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var cu={};C(cu,{up:()=>o$,down:()=>a$});async function o$(_){}async function a$(_){}var hu={};C(hu,{up:()=>r$,down:()=>l$});async function r$(_){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 l$(_){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 tu={};C(tu,{up:()=>e$,down:()=>d$});import{sql as Nm}from"kysely";async function e$(_){await Nm`
|
|
800
807
|
UPDATE connections
|
|
801
808
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
802
809
|
tools = NULL,
|
|
803
810
|
updated_at = CURRENT_TIMESTAMP
|
|
804
811
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
805
812
|
AND app_name = 'deco-registry'
|
|
806
|
-
`.execute(_)}async function
|
|
813
|
+
`.execute(_)}async function d$(_){await Nm`
|
|
807
814
|
UPDATE connections
|
|
808
815
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
809
816
|
updated_at = CURRENT_TIMESTAMP
|
|
810
817
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
811
818
|
AND app_name = 'deco-registry'
|
|
812
|
-
`.execute(_)}var
|
|
819
|
+
`.execute(_)}var ou={};C(ou,{up:()=>b$,down:()=>_U});import{sql as s$}from"kysely";async function b$(_){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(s$`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 _U(_){await _.schema.dropTable("ai_provider_keys").execute()}var au={};C(au,{up:()=>uU,down:()=>CU});import{sql as xU}from"kysely";async function uU(_){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(xU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function CU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var ru={};C(ru,{up:()=>KU,down:()=>NU});import{sql as p}from"kysely";async function KU(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function NU(_){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 lu={};C(lu,{up:()=>TU,down:()=>mU});async function TU(_){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 mU(_){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 eu={};C(eu,{up:()=>zU,down:()=>EU});async function zU(_){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 EU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var du={};C(du,{up:()=>$U,down:()=>UU});import{sql as Tm}from"kysely";async function $U(_){await Tm`
|
|
813
820
|
UPDATE connections
|
|
814
821
|
SET title = 'CMS MCP',
|
|
815
822
|
tools = NULL,
|
|
816
823
|
updated_at = CURRENT_TIMESTAMP
|
|
817
824
|
WHERE app_name = '@deco/management-mcp'
|
|
818
|
-
`.execute(_)}async function
|
|
825
|
+
`.execute(_)}async function UU(_){await Tm`
|
|
819
826
|
UPDATE connections
|
|
820
827
|
SET title = 'Mesh MCP',
|
|
821
828
|
updated_at = CURRENT_TIMESTAMP
|
|
822
829
|
WHERE app_name = '@deco/management-mcp'
|
|
823
|
-
`.execute(_)}var
|
|
830
|
+
`.execute(_)}var su={};C(su,{up:()=>JU,down:()=>PU});import{sql as mm}from"kysely";async function JU(_){await mm`
|
|
824
831
|
UPDATE connections
|
|
825
832
|
SET title = 'Deco CMS',
|
|
826
833
|
tools = NULL,
|
|
827
834
|
updated_at = CURRENT_TIMESTAMP
|
|
828
835
|
WHERE app_name = '@deco/management-mcp'
|
|
829
|
-
`.execute(_)}async function
|
|
836
|
+
`.execute(_)}async function PU(_){await mm`
|
|
830
837
|
UPDATE connections
|
|
831
838
|
SET title = 'CMS MCP',
|
|
832
839
|
updated_at = CURRENT_TIMESTAMP
|
|
833
840
|
WHERE app_name = '@deco/management-mcp'
|
|
834
|
-
`.execute(_)}var
|
|
841
|
+
`.execute(_)}var bu={};C(bu,{up:()=>QU,down:()=>XU});async function QU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function XU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var _C={};C(_C,{up:()=>ZU,down:()=>WU});async function ZU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function WU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var uC={};C(uC,{up:()=>jU,down:()=>LU});import{sql as xC}from"kysely";async function jU(_){await xC`
|
|
835
842
|
UPDATE organization_settings
|
|
836
843
|
SET enabled_plugins = (
|
|
837
844
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -840,7 +847,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
840
847
|
)
|
|
841
848
|
WHERE enabled_plugins IS NOT NULL
|
|
842
849
|
AND enabled_plugins LIKE '%object-storage%'
|
|
843
|
-
`.execute(_),await
|
|
850
|
+
`.execute(_),await xC`
|
|
844
851
|
UPDATE projects
|
|
845
852
|
SET enabled_plugins = (
|
|
846
853
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -849,65 +856,65 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
849
856
|
)
|
|
850
857
|
WHERE enabled_plugins IS NOT NULL
|
|
851
858
|
AND enabled_plugins LIKE '%object-storage%'
|
|
852
|
-
`.execute(_),await
|
|
859
|
+
`.execute(_),await xC`
|
|
853
860
|
DELETE FROM project_plugin_configs
|
|
854
861
|
WHERE plugin_id = 'object-storage'
|
|
855
|
-
`.execute(_)}async function
|
|
862
|
+
`.execute(_)}async function LU(_){}var CC={};C(CC,{up:()=>FU,down:()=>DU});import{sql as zm}from"kysely";async function FU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await zm`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function DU(_){await zm`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var NC={};C(NC,{up:()=>YU,down:()=>HU});import{sql as KC}from"kysely";async function YU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await KC`
|
|
856
863
|
ALTER TABLE connections
|
|
857
864
|
ADD CONSTRAINT chk_connections_subtype
|
|
858
865
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
859
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
866
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await KC`
|
|
860
867
|
UPDATE connections
|
|
861
868
|
SET subtype = 'agent'
|
|
862
869
|
WHERE connection_type = 'VIRTUAL'
|
|
863
|
-
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${
|
|
870
|
+
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${e()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,J=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),j=N.get(z.organization_id);if(!j)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:j,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:J,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let T=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${e()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let m=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${e()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function HU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await KC`
|
|
864
871
|
ALTER TABLE connections
|
|
865
872
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
866
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
873
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var TC={};C(TC,{up:()=>RU,down:()=>BU});import{sql as MU}from"kysely";async function RU(_){await MU`
|
|
867
874
|
DELETE FROM connections
|
|
868
875
|
WHERE connection_type = 'VIRTUAL'
|
|
869
876
|
AND subtype = 'project'
|
|
870
877
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
871
|
-
`.execute(_)}async function
|
|
878
|
+
`.execute(_)}async function BU(_){}var mC={};C(mC,{up:()=>OU,down:()=>SU});import{sql as GU}from"kysely";async function OU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await GU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function SU(_){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 EC={};C(EC,{up:()=>fU,down:()=>AU});import{sql as zC}from"kysely";async function fU(_){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(zC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(zC`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(zC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function AU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var $C={};C($C,{up:()=>IU,down:()=>yU});async function IU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function yU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var UC={};C(UC,{up:()=>VU,down:()=>wU});async function VU(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function wU(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var PC={};C(PC,{up:()=>nU,down:()=>vU});import{sql as Em}from"kysely";function JC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function kU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return JC(N)}catch{return JC(_.connection_url)}if(_.title)return JC(_.title);return _.id}async function nU(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await Em`
|
|
872
879
|
SELECT id, app_name, connection_url, title FROM connections
|
|
873
|
-
`.execute(_);for(let u of x.rows){let N=
|
|
880
|
+
`.execute(_);for(let u of x.rows){let N=kU(u);await Em`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function vU(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var QC={};C(QC,{up:()=>pU,down:()=>gU});import{sql as J_}from"kysely";async function pU(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await J_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await J_`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function gU(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await J_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await J_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await J_`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var XC={};C(XC,{up:()=>qU,down:()=>iU});async function qU(_){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 iU(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var ZC={};C(ZC,{up:()=>cU,down:()=>hU});import{sql as w_}from"kysely";async function cU(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await w_`
|
|
874
881
|
UPDATE threads
|
|
875
882
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
876
883
|
WHERE agent_ids IS NOT NULL
|
|
877
884
|
AND agent_ids != '[]'
|
|
878
885
|
AND agent_ids != ''
|
|
879
886
|
AND (agent_ids::jsonb ->> 0) IS NOT NULL
|
|
880
|
-
`.execute(_),await
|
|
887
|
+
`.execute(_),await w_`
|
|
881
888
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
882
889
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
883
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
890
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function hU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await w_`
|
|
884
891
|
UPDATE threads
|
|
885
892
|
SET agent_ids = CASE
|
|
886
893
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
887
894
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
888
895
|
ELSE '[]'
|
|
889
896
|
END
|
|
890
|
-
`.execute(_),await
|
|
897
|
+
`.execute(_),await w_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var WC={};C(WC,{up:()=>tU,down:()=>oU});async function tU(_){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 oU(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var jC={};C(jC,{up:()=>aU,down:()=>rU});async function aU(_){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 rU(_){await _.schema.dropTable("kv").execute()}var LC={};C(LC,{up:()=>lU,down:()=>eU});async function lU(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function eU(_){await _.schema.dropIndex("idx_member_user_org").execute()}var FC={};C(FC,{up:()=>dU,down:()=>sU});async function dU(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function sU(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var DC={};C(DC,{up:()=>bU,down:()=>_J});import{sql as S}from"kysely";async function bU(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await S`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await S`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function _J(_){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 YC={};C(YC,{up:()=>xJ,down:()=>uJ});import{sql as d}from"kysely";async function xJ(_){await d`
|
|
891
898
|
ALTER TABLE event_subscriptions
|
|
892
899
|
ALTER COLUMN enabled DROP DEFAULT
|
|
893
|
-
`.execute(_),await
|
|
900
|
+
`.execute(_),await d`
|
|
894
901
|
ALTER TABLE event_subscriptions
|
|
895
902
|
ALTER COLUMN enabled TYPE boolean
|
|
896
903
|
USING enabled::boolean
|
|
897
|
-
`.execute(_),await
|
|
904
|
+
`.execute(_),await d`
|
|
898
905
|
ALTER TABLE event_subscriptions
|
|
899
906
|
ALTER COLUMN enabled SET DEFAULT true
|
|
900
|
-
`.execute(_)}async function
|
|
907
|
+
`.execute(_)}async function uJ(_){await d`
|
|
901
908
|
ALTER TABLE event_subscriptions
|
|
902
909
|
ALTER COLUMN enabled DROP DEFAULT
|
|
903
|
-
`.execute(_),await
|
|
910
|
+
`.execute(_),await d`
|
|
904
911
|
ALTER TABLE event_subscriptions
|
|
905
912
|
ALTER COLUMN enabled TYPE integer
|
|
906
913
|
USING enabled::integer
|
|
907
|
-
`.execute(_),await
|
|
914
|
+
`.execute(_),await d`
|
|
908
915
|
ALTER TABLE event_subscriptions
|
|
909
916
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
910
|
-
`.execute(_)}var
|
|
917
|
+
`.execute(_)}var HC={};C(HC,{up:()=>CJ,down:()=>KJ});import{sql as $m}from"kysely";async function CJ(_){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($m`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($m`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function KJ(_){await _.schema.dropTable("brand_context").execute()}var MC={};C(MC,{up:()=>NJ,down:()=>TJ});import{sql as Um}from"kysely";async function NJ(_){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(Um`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Um`now()`)).execute()}async function TJ(_){await _.schema.dropTable("organization_domains").execute()}var RC={};C(RC,{up:()=>$J,down:()=>UJ});import{sql as Jm}from"kysely";var k_=new Set(["primary","secondary","accent","background","foreground"]),mJ={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function zJ(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>k_.has(K))){let K={};for(let[T,m]of Object.entries(u)){if(typeof m!=="string")continue;if(k_.has(T))K[T]=m;else x[T]=m}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,T]of Object.entries(u)){if(typeof T!=="string")continue;if(k_.has(K.toLowerCase()))N[K.toLowerCase()]=T;else x[K]=T}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,T=K.label?.toLowerCase?.(),m=K.value;if(!T||!m)continue;if(k_.has(T))u[T]=m;else x[T]=m}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function EJ(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let K=N,T=K.name??K.family??void 0,m=K.role?.toLowerCase?.()??"";if(!T)continue;let z=mJ[m];if(z&&!x[z])x[z]=T;else u.push(T)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function $J(_){let x=await Jm`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,T=!1,m=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let J=zJ($);if(m=J.structured,N=!0,Object.keys(J.extra).length>0)E.extraColors=J.extra,T=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=EJ($),K=!0}catch{}if(N||K||T){let $=T?JSON.stringify(E):u.metadata;await Jm`
|
|
911
918
|
UPDATE brand_context
|
|
912
919
|
SET
|
|
913
920
|
colors = ${m},
|
|
@@ -915,29 +922,29 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
915
922
|
metadata = ${$},
|
|
916
923
|
updated_at = NOW()
|
|
917
924
|
WHERE id = ${u.id}
|
|
918
|
-
`.execute(_)}}}async function
|
|
925
|
+
`.execute(_)}}}async function UJ(_){}var BC={};C(BC,{up:()=>PJ,down:()=>QJ});import{sql as JJ}from"kysely";async function PJ(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(JJ`'{}'::jsonb`)).execute()}async function QJ(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var GC={};C(GC,{up:()=>XJ,down:()=>ZJ});async function XJ(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function ZJ(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var OC={};C(OC,{up:()=>WJ,down:()=>jJ});async function WJ(_){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 jJ(_){await _.schema.dropTable("sandbox_runner_state").execute()}var SC={};C(SC,{up:()=>LJ,down:()=>FJ});async function LJ(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function FJ(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var fC={};C(fC,{up:()=>DJ,down:()=>YJ});async function DJ(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function YJ(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var AC={};C(AC,{up:()=>HJ,down:()=>MJ});async function HJ(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function MJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var IC={};C(IC,{up:()=>BJ,down:()=>GJ});import{sql as Pm}from"kysely";var RJ=["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 BJ(_){let x=await Pm`
|
|
919
926
|
SELECT id, permission FROM "organizationRole"
|
|
920
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...
|
|
927
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...RJ]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await Pm`
|
|
921
928
|
UPDATE "organizationRole"
|
|
922
929
|
SET permission = ${z}
|
|
923
930
|
WHERE id = ${u.id}
|
|
924
|
-
`.execute(_)}}async function
|
|
931
|
+
`.execute(_)}}async function GJ(_){}var yC={};C(yC,{up:()=>OJ,down:()=>SJ});async function OJ(_){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 SJ(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var VC={};C(VC,{up:()=>fJ,down:()=>AJ});async function fJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function AJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var wC={};C(wC,{up:()=>IJ,down:()=>yJ});import{sql as P_}from"kysely";async function IJ(_){await P_`
|
|
925
932
|
UPDATE automations
|
|
926
933
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
927
934
|
WHERE virtual_mcp_id IS NULL
|
|
928
|
-
`.execute(_),await
|
|
935
|
+
`.execute(_),await P_`
|
|
929
936
|
ALTER TABLE automations
|
|
930
937
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
931
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
938
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function yJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await P_`
|
|
932
939
|
UPDATE automations
|
|
933
940
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
934
|
-
`.execute(_),await
|
|
941
|
+
`.execute(_),await P_`
|
|
935
942
|
ALTER TABLE automations
|
|
936
943
|
ALTER COLUMN agent SET NOT NULL
|
|
937
|
-
`.execute(_),await
|
|
944
|
+
`.execute(_),await P_`
|
|
938
945
|
ALTER TABLE automations
|
|
939
946
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
940
|
-
`.execute(_)}var
|
|
947
|
+
`.execute(_)}var nC={};C(nC,{up:()=>nJ,reshapeSimpleMode:()=>Qm,inferAutomationTier:()=>Xm,down:()=>vJ,__testing:()=>kJ});var VJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},wJ=["fast","smart","thinking","image","web_research"];function kC(_){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 wJ.some((N)=>(N in u))}function Qm(_){if(kC(_))return _;let x=_,u=x?.enabled===!0,N=(K)=>K&&K.keyId&&K.modelId?{keyId:K.keyId,modelId:K.modelId,title:K.title}:null;if(!u)return VJ;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function Xm(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Zm(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var kJ={isAlreadyReshapedSimpleMode:kC,isAlreadyReshapedAutomationModels:Zm};async function nJ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let K=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(kC(K))continue;let T=Qm(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(T)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(Zm(K))continue;let T=Xm(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:T})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${T}"`)}}async function vJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var vC={};C(vC,{up:()=>pJ,down:()=>gJ});import{sql as n}from"kysely";async function pJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await n`
|
|
941
948
|
ALTER TABLE automations
|
|
942
949
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
943
950
|
`.execute(_),await n`
|
|
@@ -959,47 +966,47 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
959
966
|
AND tool_input IS NOT NULL
|
|
960
967
|
)
|
|
961
968
|
)
|
|
962
|
-
`.execute(_)}async function
|
|
969
|
+
`.execute(_)}async function gJ(_){await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await n`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await n`
|
|
963
970
|
ALTER TABLE automations
|
|
964
971
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
965
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var
|
|
972
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var pC={};C(pC,{up:()=>iJ,down:()=>cJ});import{sql as Wm}from"kysely";var qJ=new Set(["host","docker","agent-sandbox"]);async function iJ(_){let x=await Wm`
|
|
966
973
|
SELECT id, metadata FROM "connections"
|
|
967
974
|
WHERE connection_type = 'VIRTUAL'
|
|
968
975
|
AND metadata IS NOT NULL
|
|
969
976
|
AND metadata LIKE '%vmMap%'
|
|
970
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[
|
|
977
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}let y=X.runnerKind;if(y!==void 0&&!qJ.has(y)){T=!0;continue}J[j]=X}if(Object.keys(J).length>0)m[E]=J;else T=!0}if(!T)continue;N.vmMap=m;let z=JSON.stringify(N);await Wm`
|
|
971
978
|
UPDATE "connections"
|
|
972
979
|
SET metadata = ${z}
|
|
973
980
|
WHERE id = ${u.id}
|
|
974
|
-
`.execute(_)}}async function
|
|
981
|
+
`.execute(_)}}async function cJ(_){}var gC={};C(gC,{up:()=>hJ,down:()=>tJ});import{sql as Q_}from"kysely";async function hJ(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Q_`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(Q_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Q_`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 Q_`
|
|
975
982
|
CREATE INDEX async_research_jobs_active_idx
|
|
976
983
|
ON async_research_jobs (status, last_polled_at)
|
|
977
984
|
WHERE status IN ('pending', 'polling')
|
|
978
|
-
`.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await
|
|
985
|
+
`.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await Q_`
|
|
979
986
|
ALTER TABLE async_research_jobs
|
|
980
987
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
981
988
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
982
|
-
`.execute(_)}async function
|
|
989
|
+
`.execute(_)}async function tJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var qC={};C(qC,{up:()=>oJ,down:()=>aJ});async function oJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function aJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var iC={};C(iC,{up:()=>rJ,down:()=>lJ});import{sql as s}from"kysely";async function rJ(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await s`
|
|
983
990
|
ALTER TABLE secrets
|
|
984
991
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
985
|
-
`.execute(_),await
|
|
992
|
+
`.execute(_),await s`
|
|
986
993
|
ALTER TABLE secrets
|
|
987
994
|
ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
|
|
988
995
|
(scope = 'user' AND user_id IS NOT NULL)
|
|
989
996
|
OR (scope = 'organization' AND user_id IS NULL)
|
|
990
997
|
)
|
|
991
|
-
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await
|
|
998
|
+
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await s`
|
|
992
999
|
CREATE UNIQUE INDEX idx_secrets_user_name
|
|
993
1000
|
ON secrets (organization_id, user_id, lower(name))
|
|
994
1001
|
WHERE scope = 'user'
|
|
995
|
-
`.execute(_),await
|
|
1002
|
+
`.execute(_),await s`
|
|
996
1003
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
997
1004
|
ON secrets (organization_id, lower(name))
|
|
998
1005
|
WHERE scope = 'organization'
|
|
999
|
-
`.execute(_)}async function
|
|
1006
|
+
`.execute(_)}async function lJ(_){await _.schema.dropTable("secrets").execute()}var cC={};C(cC,{up:()=>eJ,down:()=>dJ});async function eJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function dJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var hC={};C(hC,{up:()=>bJ,down:()=>_P});import{sql as sJ}from"kysely";async function bJ(_){await sJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function _P(_){}var tC={};C(tC,{up:()=>xP,down:()=>uP});import{sql as n_}from"kysely";async function xP(_){await n_`
|
|
1000
1007
|
ALTER TABLE sandbox_runner_state
|
|
1001
1008
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
1002
|
-
`.execute(_),await
|
|
1009
|
+
`.execute(_),await n_`
|
|
1003
1010
|
DO $$ BEGIN
|
|
1004
1011
|
UPDATE virtualmcps v
|
|
1005
1012
|
SET metadata = jsonb_set(
|
|
@@ -1034,10 +1041,10 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1034
1041
|
EXCEPTION WHEN undefined_table THEN
|
|
1035
1042
|
NULL;
|
|
1036
1043
|
END; $$
|
|
1037
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
1044
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function uP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await n_`
|
|
1038
1045
|
ALTER TABLE sandbox_runner_state
|
|
1039
1046
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
1040
|
-
`.execute(_),await
|
|
1047
|
+
`.execute(_),await n_`
|
|
1041
1048
|
DO $$ BEGIN
|
|
1042
1049
|
UPDATE virtualmcps v
|
|
1043
1050
|
SET metadata = jsonb_set(
|
|
@@ -1072,7 +1079,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1072
1079
|
EXCEPTION WHEN undefined_table THEN
|
|
1073
1080
|
NULL;
|
|
1074
1081
|
END; $$
|
|
1075
|
-
`.execute(_)}var
|
|
1082
|
+
`.execute(_)}var oC={};C(oC,{up:()=>CP,down:()=>KP});import{sql as jm}from"kysely";async function CP(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await jm`
|
|
1076
1083
|
DO $$ BEGIN
|
|
1077
1084
|
UPDATE virtualmcps v
|
|
1078
1085
|
SET metadata = jsonb_set(
|
|
@@ -1111,7 +1118,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1111
1118
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
1112
1119
|
NULL;
|
|
1113
1120
|
END; $$
|
|
1114
|
-
`.execute(_)}async function
|
|
1121
|
+
`.execute(_)}async function KP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await jm`
|
|
1115
1122
|
DO $$ BEGIN
|
|
1116
1123
|
UPDATE virtualmcps v
|
|
1117
1124
|
SET metadata = jsonb_set(
|
|
@@ -1144,7 +1151,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1144
1151
|
EXCEPTION WHEN undefined_table THEN
|
|
1145
1152
|
NULL;
|
|
1146
1153
|
END; $$
|
|
1147
|
-
`.execute(_)}var
|
|
1154
|
+
`.execute(_)}var aC={};C(aC,{up:()=>NP,down:()=>TP});import{sql as Lm}from"kysely";async function NP(_){await Lm`
|
|
1148
1155
|
UPDATE connections c
|
|
1149
1156
|
SET metadata = (
|
|
1150
1157
|
jsonb_set(
|
|
@@ -1188,7 +1195,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1188
1195
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
1189
1196
|
WHERE entry ? 'vmId'
|
|
1190
1197
|
);
|
|
1191
|
-
`.execute(_),await
|
|
1198
|
+
`.execute(_),await Lm`
|
|
1192
1199
|
UPDATE connections c
|
|
1193
1200
|
SET metadata = (
|
|
1194
1201
|
jsonb_set(
|
|
@@ -1242,14 +1249,14 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1242
1249
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1243
1250
|
WHERE inner_entry ? 'runnerKind'
|
|
1244
1251
|
);
|
|
1245
|
-
`.execute(_)}async function
|
|
1252
|
+
`.execute(_)}async function TP(_){}var rC={};C(rC,{up:()=>zP,down:()=>EP});import{sql as mP}from"kysely";async function zP(_){await mP`
|
|
1246
1253
|
DELETE FROM ai_provider_keys
|
|
1247
1254
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
1248
|
-
`.execute(_)}async function
|
|
1255
|
+
`.execute(_)}async function EP(_){}var lC={};C(lC,{up:()=>$P,down:()=>UP});import{sql as v_}from"kysely";async function $P(_){await v_`
|
|
1249
1256
|
UPDATE sandbox_runner_state
|
|
1250
1257
|
SET sandbox_provider_kind = 'desktop'
|
|
1251
1258
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1252
|
-
`.execute(_),await
|
|
1259
|
+
`.execute(_),await v_`
|
|
1253
1260
|
UPDATE connections c
|
|
1254
1261
|
SET metadata = (
|
|
1255
1262
|
jsonb_set(
|
|
@@ -1292,7 +1299,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1292
1299
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1293
1300
|
WHERE kind_key = 'remote-user'
|
|
1294
1301
|
);
|
|
1295
|
-
`.execute(_),await
|
|
1302
|
+
`.execute(_),await v_`
|
|
1296
1303
|
UPDATE connections c
|
|
1297
1304
|
SET metadata = (
|
|
1298
1305
|
jsonb_set(
|
|
@@ -1339,17 +1346,17 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1339
1346
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1340
1347
|
WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
|
|
1341
1348
|
);
|
|
1342
|
-
`.execute(_),await
|
|
1349
|
+
`.execute(_),await v_`
|
|
1343
1350
|
UPDATE threads
|
|
1344
1351
|
SET sandbox_provider_kind = 'desktop'
|
|
1345
1352
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1346
|
-
`.execute(_)}async function
|
|
1353
|
+
`.execute(_)}async function UP(_){}var eC={};C(eC,{up:()=>JP,down:()=>PP});import{sql as X_}from"kysely";async function JP(_){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 PP(_){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 dC={};C(dC,{up:()=>QP,down:()=>XP});import{sql as Fm}from"kysely";async function QP(_){await Fm`
|
|
1347
1354
|
ALTER TABLE organization_domains
|
|
1348
1355
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
1349
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function
|
|
1356
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function XP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await Fm`
|
|
1350
1357
|
ALTER TABLE organization_domains
|
|
1351
1358
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
1352
|
-
`.execute(_)}var
|
|
1359
|
+
`.execute(_)}var sC={};C(sC,{up:()=>ZP,down:()=>WP});import{sql as p_}from"kysely";async function ZP(_){await p_`
|
|
1353
1360
|
UPDATE sandbox_runner_state
|
|
1354
1361
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
1355
1362
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -1359,7 +1366,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1359
1366
|
ELSE sandbox_provider_kind
|
|
1360
1367
|
END
|
|
1361
1368
|
WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
|
|
1362
|
-
`.execute(_),await
|
|
1369
|
+
`.execute(_),await p_`
|
|
1363
1370
|
UPDATE connections c
|
|
1364
1371
|
SET metadata = (
|
|
1365
1372
|
(c.metadata::jsonb - 'vmMap')
|
|
@@ -1368,7 +1375,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1368
1375
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1369
1376
|
AND c.metadata IS NOT NULL
|
|
1370
1377
|
AND c.metadata::jsonb ? 'vmMap'
|
|
1371
|
-
`.execute(_),await
|
|
1378
|
+
`.execute(_),await p_`
|
|
1372
1379
|
UPDATE connections c
|
|
1373
1380
|
SET metadata = (
|
|
1374
1381
|
jsonb_set(
|
|
@@ -1429,7 +1436,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1429
1436
|
WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
|
|
1430
1437
|
OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
|
|
1431
1438
|
);
|
|
1432
|
-
`.execute(_),await
|
|
1439
|
+
`.execute(_),await p_`
|
|
1433
1440
|
UPDATE connections c
|
|
1434
1441
|
SET metadata = REPLACE(
|
|
1435
1442
|
REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
|
|
@@ -1438,19 +1445,19 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1438
1445
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1439
1446
|
AND c.metadata IS NOT NULL
|
|
1440
1447
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
1441
|
-
`.execute(_)}async function
|
|
1448
|
+
`.execute(_)}async function WP(_){}var bC={};C(bC,{up:()=>LP,down:()=>FP});import{sql as Dm}from"kysely";var jP=["GLOBAL_SEARCH"];async function LP(_){let x=await Dm`
|
|
1442
1449
|
SELECT id, permission FROM "organizationRole"
|
|
1443
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...
|
|
1450
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...jP]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await Dm`
|
|
1444
1451
|
UPDATE "organizationRole"
|
|
1445
1452
|
SET permission = ${z}
|
|
1446
1453
|
WHERE id = ${u.id}
|
|
1447
|
-
`.execute(_)}}async function
|
|
1454
|
+
`.execute(_)}}async function FP(_){}var xK={};C(xK,{up:()=>DP,down:()=>YP});import{sql as _K}from"kysely";async function DP(_){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(_K`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(_K`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await _K`
|
|
1448
1455
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
1449
1456
|
ON org_file_configs (organization_id, lower(name))
|
|
1450
|
-
`.execute(_)}async function
|
|
1457
|
+
`.execute(_)}async function YP(_){await _.schema.dropTable("org_file_configs").execute()}var uK={};C(uK,{up:()=>HP,down:()=>MP});import{sql as v}from"kysely";async function HP(_){await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await v`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await v`
|
|
1451
1458
|
ALTER TABLE automations
|
|
1452
1459
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
1453
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function
|
|
1460
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function MP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await v`
|
|
1454
1461
|
ALTER TABLE automations
|
|
1455
1462
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
1456
1463
|
`.execute(_),await v`
|
|
@@ -1472,25 +1479,25 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1472
1479
|
AND tool_input IS NOT NULL
|
|
1473
1480
|
)
|
|
1474
1481
|
)
|
|
1475
|
-
`.execute(_)}var
|
|
1482
|
+
`.execute(_)}var CK={};C(CK,{up:()=>RP,down:()=>BP});async function RP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function BP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var NK={};C(NK,{up:()=>GP,down:()=>OP});import{sql as KK}from"kysely";var g_="local-docker";async function GP(_){await KK`delete from sandbox_runner_state where sandbox_provider_kind = ${g_}`.execute(_);let x=await KK`
|
|
1476
1483
|
SELECT id, metadata FROM "connections"
|
|
1477
1484
|
WHERE connection_type = 'VIRTUAL'
|
|
1478
1485
|
AND metadata IS NOT NULL
|
|
1479
|
-
AND metadata LIKE ${"%"+
|
|
1480
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[
|
|
1486
|
+
AND metadata LIKE ${"%"+g_+"%"}
|
|
1487
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}if(g_ in X){T=!0;let y={...X};if(delete y[g_],Object.keys(y).length>0)J[j]=y}else J[j]=X}if(Object.keys(J).length>0)m[E]=J;else T=!0}if(!T)continue;N.sandboxMap=m;let z=JSON.stringify(N);await KK`
|
|
1481
1488
|
UPDATE "connections"
|
|
1482
1489
|
SET metadata = ${z}
|
|
1483
1490
|
WHERE id = ${u.id}
|
|
1484
|
-
`.execute(_)}}async function
|
|
1491
|
+
`.execute(_)}}async function OP(_){}var TK={};C(TK,{up:()=>SP,down:()=>fP});import{sql as q_}from"kysely";async function SP(_){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 q_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await q_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await q_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await q_`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 fP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var mK={};C(mK,{up:()=>AP,down:()=>IP});async function AP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function IP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var zK={};C(zK,{up:()=>yP,down:()=>VP});async function yP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function VP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var EK={};C(EK,{up:()=>wP,down:()=>kP});async function wP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function kP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var $K={};C($K,{up:()=>nP,down:()=>vP});async function nP(_){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 vP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var UK={};C(UK,{up:()=>pP,down:()=>gP});async function pP(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function gP(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var PK={};C(PK,{up:()=>iP,down:()=>cP});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function b(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function JK(_,x,u){if(!b(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function i_(_){if(!b(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!b(_.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 qP(_,x,u){if(!b(_))return null;let N=!1,K={};for(let[T,m]of Object.entries(_)){if(!b(m)){K[T]=m;continue}let z={};for(let[E,$]of Object.entries(m)){if(!b($)){z[E]=$;continue}let J={};for(let[j,X]of Object.entries($)){if(j===x){if(N=!0,!(u in $))J[u]=JK(X,x,u);else if(!i_($[u])&&i_(X))J[u]=JK(X,x,u);continue}let y=JK(X,x,u);if(y!==X)N=!0;if(j===u&&j in J&&i_(J[j])&&!i_(y))continue;J[j]=y}z[E]=J}K[T]=z}return{sandboxMap:K,changed:N}}async function Ym(_,x,u){let N=await k`
|
|
1485
1492
|
SELECT id, metadata FROM connections
|
|
1486
1493
|
WHERE connection_type = 'VIRTUAL'
|
|
1487
1494
|
AND metadata IS NOT NULL
|
|
1488
1495
|
AND metadata LIKE ${"%"+x+"%"}
|
|
1489
|
-
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)}catch{continue}let m=
|
|
1496
|
+
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)}catch{continue}let m=qP(T.sandboxMap,x,u);if(!m?.changed)continue;T.sandboxMap=m.sandboxMap,await k`
|
|
1490
1497
|
UPDATE connections
|
|
1491
1498
|
SET metadata = ${JSON.stringify(T)}
|
|
1492
1499
|
WHERE id = ${K.id}
|
|
1493
|
-
`.execute(_)}}async function
|
|
1500
|
+
`.execute(_)}}async function iP(_){await k`
|
|
1494
1501
|
UPDATE threads
|
|
1495
1502
|
SET sandbox_provider_kind = ${A}
|
|
1496
1503
|
WHERE sandbox_provider_kind = ${f}
|
|
@@ -1519,7 +1526,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1519
1526
|
UPDATE sandbox_runner_state
|
|
1520
1527
|
SET sandbox_provider_kind = ${A}
|
|
1521
1528
|
WHERE sandbox_provider_kind = ${f}
|
|
1522
|
-
`.execute(_),await
|
|
1529
|
+
`.execute(_),await Ym(_,f,A)}async function cP(_){await k`
|
|
1523
1530
|
UPDATE threads
|
|
1524
1531
|
SET sandbox_provider_kind = ${f}
|
|
1525
1532
|
WHERE sandbox_provider_kind = ${A}
|
|
@@ -1548,7 +1555,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1548
1555
|
UPDATE sandbox_runner_state
|
|
1549
1556
|
SET sandbox_provider_kind = ${f}
|
|
1550
1557
|
WHERE sandbox_provider_kind = ${A}
|
|
1551
|
-
`.execute(_),await
|
|
1558
|
+
`.execute(_),await Ym(_,A,f)}var QK={};C(QK,{up:()=>hP,down:()=>tP});import{sql as g}from"kysely";async function hP(_){await g`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(g`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(g`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await g`
|
|
1552
1559
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1553
1560
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1554
1561
|
WHERE deleted_at IS NULL
|
|
@@ -1556,7 +1563,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1556
1563
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1557
1564
|
ON org_fs_entry (organization_id, volume, size)
|
|
1558
1565
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1559
|
-
`.execute(_)}async function
|
|
1566
|
+
`.execute(_)}async function tP(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var XK={};C(XK,{up:()=>oP,down:()=>aP});async function oP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function aP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var ZK={};C(ZK,{up:()=>rP,down:()=>lP});import{sql as Hm}from"kysely";async function rP(_){await Hm`
|
|
1560
1567
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1561
1568
|
SELECT
|
|
1562
1569
|
'org_orgfs_public_skills',
|
|
@@ -1570,13 +1577,13 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1570
1577
|
END,
|
|
1571
1578
|
now()
|
|
1572
1579
|
ON CONFLICT (id) DO NOTHING
|
|
1573
|
-
`.execute(_)}async function
|
|
1580
|
+
`.execute(_)}async function lP(_){await Hm`
|
|
1574
1581
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1575
|
-
`.execute(_)}var
|
|
1582
|
+
`.execute(_)}var WK={};C(WK,{up:()=>eP,down:()=>dP});async function eP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function dP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var jK={};C(jK,{up:()=>sP,down:()=>bP});import{sql as Mm}from"kysely";async function sP(_){await Mm`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function bP(_){await Mm`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var LK={};C(LK,{up:()=>xQ,down:()=>uQ});import{sql as _Q}from"kysely";async function xQ(_){await _Q`
|
|
1576
1583
|
UPDATE downstream_tokens
|
|
1577
1584
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1578
1585
|
WHERE "expiresAt" IS NULL
|
|
1579
|
-
`.execute(_)}async function
|
|
1586
|
+
`.execute(_)}async function uQ(_){}var FK={};C(FK,{up:()=>CQ,down:()=>KQ});async function CQ(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function KQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var DK={};C(DK,{up:()=>NQ,down:()=>TQ});async function NQ(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function TQ(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var YK={};C(YK,{up:()=>mQ,down:()=>zQ});async function mQ(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function zQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var HK={};C(HK,{up:()=>EQ,down:()=>$Q});async function EQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function $Q(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var MK={};C(MK,{up:()=>UQ,down:()=>JQ});async function UQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function JQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var RK={};C(RK,{up:()=>PQ,down:()=>QQ});import{sql as Rm}from"kysely";async function PQ(_){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(Rm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Rm`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function QQ(_){await _.schema.dropTable("org_sites").execute()}var BK={};C(BK,{up:()=>XQ,down:()=>ZQ});async function XQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function ZQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var GK={};C(GK,{up:()=>WQ,down:()=>jQ});import{sql as R}from"kysely";async function WQ(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await R`
|
|
1580
1587
|
UPDATE organization_domains
|
|
1581
1588
|
SET
|
|
1582
1589
|
id = gen_random_uuid()::text,
|
|
@@ -1585,18 +1592,18 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1585
1592
|
verification_method = 'email',
|
|
1586
1593
|
verified_at = created_at
|
|
1587
1594
|
WHERE id IS NULL
|
|
1588
|
-
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function
|
|
1595
|
+
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function jQ(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await R`
|
|
1589
1596
|
UPDATE organization_domains
|
|
1590
1597
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
1591
|
-
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var
|
|
1598
|
+
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var OK={};C(OK,{up:()=>LQ,down:()=>FQ});import{sql as c_}from"kysely";async function LQ(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(c_`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(c_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(c_`now()`)).execute(),await c_`
|
|
1592
1599
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1593
1600
|
ON organization_join_requests (organization_id, user_id)
|
|
1594
1601
|
WHERE status = 'pending'
|
|
1595
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function
|
|
1602
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function FQ(_){await _.schema.dropTable("organization_join_requests").execute()}var SK={};C(SK,{up:()=>DQ,down:()=>YQ});async function DQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function YQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var fK={};C(fK,{up:()=>HQ,down:()=>MQ});async function HQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function MQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var yK={};C(yK,{up:()=>GQ,splitWebResearchTier:()=>IK,down:()=>OQ,__testing:()=>BQ});function RQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function AK(_){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 IK(_){if(!_||AK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,T=null,m=null;if(u)if(RQ(u.modelId))m=u;else T=u;return{..._,tiers:{...K,web_search:T,deep_research:m}}}var BQ={splitWebResearchTier:IK,isAlreadySplit:AK};async function GQ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(AK(N))continue;let K=IK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function OQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var VK={};C(VK,{up:()=>SQ,down:()=>fQ});import{sql as Z_}from"kysely";async function SQ(_){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(Z_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await Z_`
|
|
1596
1603
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1597
1604
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1598
1605
|
WHERE revoked_at IS NULL
|
|
1599
|
-
`.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(
|
|
1606
|
+
`.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(Z_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`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 fQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var wK={};C(wK,{up:()=>AQ,down:()=>IQ});async function AQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function IQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var kK={};C(kK,{up:()=>yQ,down:()=>VQ});import{sql as t}from"kysely";async function yQ(_){await t`
|
|
1600
1607
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1601
1608
|
RETURNS jsonb AS $fn$
|
|
1602
1609
|
BEGIN
|
|
@@ -1655,7 +1662,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1655
1662
|
BEFORE INSERT ON connection_aggregations
|
|
1656
1663
|
FOR EACH ROW
|
|
1657
1664
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1658
|
-
`.execute(_)}async function
|
|
1665
|
+
`.execute(_)}async function VQ(_){await t`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await t`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await t`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var vK={};C(vK,{up:()=>wQ,down:()=>kQ});import{sql as nK}from"kysely";async function wQ(_){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(nK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(nK`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(nK`false`)).execute()}async function kQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var pK={};C(pK,{up:()=>nQ,down:()=>vQ});async function nQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function vQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var gK={};C(gK,{up:()=>pQ,down:()=>gQ});async function pQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function gQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var qK={};C(qK,{up:()=>qQ,down:()=>iQ});async function qQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function iQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var iK={};C(iK,{up:()=>hQ,down:()=>tQ});import{sql as cQ}from"kysely";async function hQ(_){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(cQ`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 tQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var cK={};C(cK,{up:()=>oQ,down:()=>aQ});async function oQ(_){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 aQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var hK={};C(hK,{up:()=>lQ,down:()=>eQ});import{sql as rQ}from"kysely";async function lQ(_){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(rQ`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 eQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var tK={};C(tK,{up:()=>sQ,down:()=>bQ});import{sql as dQ}from"kysely";async function sQ(_){await dQ`
|
|
1659
1666
|
DELETE FROM member
|
|
1660
1667
|
WHERE id IN (
|
|
1661
1668
|
SELECT id FROM (
|
|
@@ -1674,38 +1681,38 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1674
1681
|
) ranked
|
|
1675
1682
|
WHERE ranked.rn > 1
|
|
1676
1683
|
)
|
|
1677
|
-
`.execute(_)}async function
|
|
1684
|
+
`.execute(_)}async function bQ(_){}var oK={};C(oK,{up:()=>_X,down:()=>xX});async function _X(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function xX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var aK={};C(aK,{up:()=>uX,down:()=>CX});async function uX(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function CX(_){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 rK={};C(rK,{up:()=>NX,down:()=>TX});import{sql as KX}from"kysely";async function NX(_){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(KX`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 TX(_){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 lK={};C(lK,{up:()=>zX,down:()=>EX});import{sql as mX}from"kysely";async function zX(_){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(mX`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 EX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var eK={};C(eK,{up:()=>$X,down:()=>UX});import{sql as h_}from"kysely";async function $X(_){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(h_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(h_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",h_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",h_`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 UX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var dK={};C(dK,{up:()=>JX,down:()=>PX});import{sql as t_}from"kysely";async function JX(_){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(t_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t_`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(t_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await t_`
|
|
1678
1685
|
insert into organization_billing (organization_id, legacy)
|
|
1679
1686
|
select id, true from organization
|
|
1680
1687
|
on conflict (organization_id) do nothing
|
|
1681
|
-
`.execute(_)}async function
|
|
1688
|
+
`.execute(_)}async function PX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var sK={};C(sK,{up:()=>QX,down:()=>XX});import{sql as Bm}from"kysely";async function QX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Bm`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(Bm`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function XX(_){await _.schema.dropTable("seat_change_log").execute()}var bK={};C(bK,{up:()=>ZX,down:()=>WX});async function ZX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function WX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var _N={};C(_N,{up:()=>jX,down:()=>LX});import{sql as Gm}from"kysely";async function jX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await Gm`
|
|
1682
1689
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1683
1690
|
on organization_billing (stripe_subscription_id)
|
|
1684
1691
|
where stripe_subscription_id is not null
|
|
1685
|
-
`.execute(_)}async function
|
|
1692
|
+
`.execute(_)}async function LX(_){await Gm`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var xN={};C(xN,{up:()=>FX,down:()=>DX});async function FX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function DX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var uN={};C(uN,{up:()=>YX,down:()=>HX});import{sql as Om}from"kysely";async function YX(_){await Om`
|
|
1686
1693
|
create index idx_org_billing_benefits_pending
|
|
1687
1694
|
on organization_billing (updated_at)
|
|
1688
1695
|
where benefits_reference_id is not null
|
|
1689
|
-
`.execute(_)}async function
|
|
1696
|
+
`.execute(_)}async function HX(_){await Om`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var CN={};C(CN,{up:()=>MX,down:()=>RX});import{sql as Sm}from"kysely";async function MX(_){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(Sm`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Sm`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 RX(_){await _.schema.dropTable("user_model_preferences").execute()}var KN={};C(KN,{up:()=>BX,down:()=>GX});async function BX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function GX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var NN={};C(NN,{up:()=>OX,down:()=>SX});async function OX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function SX(_){}var TN={};C(TN,{up:()=>fX,down:()=>AX});import{sql as fm}from"kysely";async function fX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await fm`
|
|
1690
1697
|
UPDATE organization_settings
|
|
1691
1698
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1692
1699
|
WHERE reports_only IS NOT NULL
|
|
1693
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1700
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function AX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await fm`
|
|
1694
1701
|
UPDATE organization_settings
|
|
1695
1702
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1696
1703
|
WHERE flags ? 'reports_only'
|
|
1697
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1704
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var mN={};C(mN,{up:()=>yX,down:()=>VX});import{sql as IX}from"kysely";async function yX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await IX`
|
|
1698
1705
|
update task_board_items
|
|
1699
1706
|
set sort_order = -extract(epoch from created_at)
|
|
1700
|
-
`.execute(_)}async function
|
|
1707
|
+
`.execute(_)}async function VX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var zN={};C(zN,{up:()=>wX,down:()=>kX,ACTIONS:()=>Am});import{sql as o_}from"kysely";var Am=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function wX(_){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(o_`now()`)).addCheckConstraint("chk_task_board_activity_action",o_`action IN (${o_.join(Am.map((x)=>o_.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 kX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var $N={};C($N,{up:()=>nX,down:()=>vX,ACTIONS:()=>EN});import{sql as W_}from"kysely";var EN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function nX(_){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(W_`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 Im(_,EN)}async function vX(_){await Im(_,EN.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 Im(_,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 JN={};C(JN,{up:()=>gX,down:()=>qX});import{sql as ym}from"kysely";function UN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function pX(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return UN(N)}catch{return UN(_.connection_url)}if(_.title)return UN(_.title);return _.id}async function gX(_){let x=await ym`
|
|
1701
1708
|
SELECT id, app_name, connection_url, title, slug
|
|
1702
1709
|
FROM connections
|
|
1703
1710
|
WHERE connection_type != 'VIRTUAL'
|
|
1704
|
-
`.execute(_),u=0;for(let N of x.rows){let K=
|
|
1711
|
+
`.execute(_),u=0;for(let N of x.rows){let K=pX(N);if(K===N.slug)continue;await ym`UPDATE connections SET slug = ${K} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function qX(){}var PN={};C(PN,{up:()=>cX,down:()=>hX});import{sql as iX}from"kysely";async function cX(_){await iX`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 hX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var XN={};C(XN,{up:()=>oX,down:()=>aX,ACTIONS:()=>QN});import{sql as a_}from"kysely";var QN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],tX=new Set(["review_requested","review_approved","review_changes_requested"]);async function oX(_){await Vm(_,QN)}async function aX(_){await Vm(_,QN.filter((x)=>!tX.has(x)))}async function Vm(_,x){await a_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await a_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${a_.join(x.map((u)=>a_.lit(u)))}))`.execute(_)}var ZN={};C(ZN,{up:()=>lX,down:()=>eX});import{sql as rX}from"kysely";async function lX(_){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(rX`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 eX(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var jN={};C(jN,{up:()=>sX,down:()=>bX,ACTIONS:()=>WN});import{sql as r_}from"kysely";var WN=["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"],dX=new Set(["merge_conflict_resolution"]);async function sX(_){await wm(_,WN)}async function bX(_){await wm(_,WN.filter((x)=>!dX.has(x)))}async function wm(_,x){await r_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await r_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${r_.join(x.map((u)=>r_.lit(u)))}))`.execute(_)}var LN={};C(LN,{up:()=>_Z,down:()=>xZ});import{sql as j_}from"kysely";async function _Z(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await j_`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 xZ(_){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 j_`
|
|
1705
1712
|
create index idx_org_billing_benefits_pending
|
|
1706
1713
|
on organization_billing (updated_at)
|
|
1707
1714
|
where benefits_reference_id is not null
|
|
1708
|
-
`.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(
|
|
1715
|
+
`.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(j_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(j_`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(j_`now()`)).execute()}var FN={};C(FN,{up:()=>uZ,down:()=>CZ});import{sql as l_}from"kysely";async function uZ(_){await l_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await l_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function CZ(_){await l_`
|
|
1709
1716
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1710
1717
|
RETURNS trigger AS $fn$
|
|
1711
1718
|
BEGIN
|
|
@@ -1726,40 +1733,40 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1726
1733
|
RETURN NEW;
|
|
1727
1734
|
END;
|
|
1728
1735
|
$fn$ LANGUAGE plpgsql;
|
|
1729
|
-
`.execute(_),await
|
|
1736
|
+
`.execute(_),await l_`
|
|
1730
1737
|
CREATE TRIGGER trg_repo_github_child_single_parent
|
|
1731
1738
|
BEFORE INSERT ON connection_aggregations
|
|
1732
1739
|
FOR EACH ROW
|
|
1733
1740
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1734
|
-
`.execute(_)}var DN={};C(DN,{up:()=>
|
|
1741
|
+
`.execute(_)}var DN={};C(DN,{up:()=>KZ,down:()=>NZ});import{sql as km}from"kysely";async function KZ(_){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(km`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(km`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function NZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var YN={};C(YN,{up:()=>TZ,down:()=>mZ});import{sql as nm}from"kysely";async function TZ(_){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(nm`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(nm`now()`)).execute()}async function mZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var MN={};C(MN,{up:()=>zZ,down:()=>EZ});import{sql as HN}from"kysely";async function zZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(HN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await HN`
|
|
1735
1742
|
create index idx_task_quota_claims_org_period_live
|
|
1736
1743
|
on task_quota_claims (organization_id, period_key)
|
|
1737
1744
|
where state <> 'released'
|
|
1738
|
-
`.execute(_)}async function
|
|
1745
|
+
`.execute(_)}async function EZ(_){await HN`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 RN={};C(RN,{up:()=>$Z,down:()=>UZ});async function $Z(_){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 UZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var BN={};C(BN,{up:()=>JZ,down:()=>PZ});async function JZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function PZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var GN={};C(GN,{up:()=>QZ,down:()=>XZ});import{sql as vm}from"kysely";async function QZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(vm`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(vm`monthly_task_executions > 0`)).execute()}async function XZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var ON={};C(ON,{up:()=>WZ,down:()=>jZ});import{sql as ZZ}from"kysely";async function WZ(_){await ZZ`
|
|
1739
1746
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1740
1747
|
ON task_board_items (updated_at, id)
|
|
1741
1748
|
WHERE status = 'in_review'
|
|
1742
1749
|
AND assignee_id = 'super-agent'
|
|
1743
1750
|
AND dismissed_at IS NULL
|
|
1744
|
-
`.execute(_)}async function
|
|
1751
|
+
`.execute(_)}async function jZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var SN={};C(SN,{up:()=>LZ,down:()=>FZ});import{sql as pm}from"kysely";async function LZ(_){await pm`
|
|
1745
1752
|
ALTER TABLE task_board_items
|
|
1746
1753
|
ADD COLUMN last_swept_at timestamptz
|
|
1747
|
-
`.execute(_)}async function
|
|
1754
|
+
`.execute(_)}async function FZ(_){await pm`
|
|
1748
1755
|
ALTER TABLE task_board_items
|
|
1749
1756
|
DROP COLUMN last_swept_at
|
|
1750
|
-
`.execute(_)}var
|
|
1757
|
+
`.execute(_)}var fN={};C(fN,{up:()=>DZ,down:()=>YZ});import{sql as e_}from"kysely";async function DZ(_){await e_`
|
|
1751
1758
|
ALTER TABLE task_board_items
|
|
1752
1759
|
ADD COLUMN retry_at timestamptz,
|
|
1753
1760
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
1754
|
-
`.execute(_),await
|
|
1761
|
+
`.execute(_),await e_`
|
|
1755
1762
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1756
1763
|
ON task_board_items (retry_at)
|
|
1757
1764
|
WHERE retry_at IS NOT NULL
|
|
1758
|
-
`.execute(_)}async function
|
|
1765
|
+
`.execute(_)}async function YZ(_){await e_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await e_`
|
|
1759
1766
|
ALTER TABLE task_board_items
|
|
1760
1767
|
DROP COLUMN retry_at,
|
|
1761
1768
|
DROP COLUMN retry_attempts
|
|
1762
|
-
`.execute(_)}var
|
|
1769
|
+
`.execute(_)}var IN={};C(IN,{up:()=>HZ,down:()=>MZ});import{sql as AN}from"kysely";async function HZ(_){await AN`
|
|
1763
1770
|
CREATE TABLE org_repo_sync (
|
|
1764
1771
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1765
1772
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1777,11 +1784,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1777
1784
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1778
1785
|
UNIQUE (organization_id, volume)
|
|
1779
1786
|
)
|
|
1780
|
-
`.execute(_),await
|
|
1787
|
+
`.execute(_),await AN`
|
|
1781
1788
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1782
1789
|
ON org_repo_sync (organization_id)
|
|
1783
1790
|
WHERE enabled
|
|
1784
|
-
`.execute(_)}async function
|
|
1791
|
+
`.execute(_)}async function MZ(_){await AN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var VN={};C(VN,{up:()=>BZ,down:()=>GZ,ACTIONS:()=>yN});import{sql as d_}from"kysely";var yN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],RZ=new Set(["merge_failed"]);async function BZ(_){await gm(_,yN)}async function GZ(_){await gm(_,yN.filter((x)=>!RZ.has(x)))}async function gm(_,x){await d_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await d_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${d_.join(x.map((u)=>d_.lit(u)))}))`.execute(_)}var wN={};C(wN,{up:()=>OZ,down:()=>SZ});async function OZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function SZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var kN={};C(kN,{up:()=>fZ,down:()=>AZ});import{sql as __}from"kysely";async function fZ(_){await __`
|
|
1785
1792
|
CREATE TABLE org_jira_integrations (
|
|
1786
1793
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1787
1794
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1801,7 +1808,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1801
1808
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1802
1809
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
1803
1810
|
)
|
|
1804
|
-
`.execute(_),await
|
|
1811
|
+
`.execute(_),await __`
|
|
1805
1812
|
CREATE TABLE task_board_item_jira_links (
|
|
1806
1813
|
item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
|
|
1807
1814
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1812,7 +1819,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1812
1819
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1813
1820
|
UNIQUE (organization_id, jira_issue_id)
|
|
1814
1821
|
)
|
|
1815
|
-
`.execute(_),await
|
|
1822
|
+
`.execute(_),await __`
|
|
1816
1823
|
CREATE TABLE task_board_comment_jira_links (
|
|
1817
1824
|
comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
|
|
1818
1825
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1820,7 +1827,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1820
1827
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1821
1828
|
UNIQUE (organization_id, jira_comment_id)
|
|
1822
1829
|
)
|
|
1823
|
-
`.execute(_)}async function
|
|
1830
|
+
`.execute(_)}async function AZ(_){await __`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await __`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await __`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var nN={};C(nN,{up:()=>yZ,down:()=>VZ});import{sql as IZ}from"kysely";async function yZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await IZ`
|
|
1824
1831
|
update task_board_items as t
|
|
1825
1832
|
set key_seq = numbered.seq
|
|
1826
1833
|
from (
|
|
@@ -1833,25 +1840,25 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1833
1840
|
from task_board_items
|
|
1834
1841
|
) as numbered
|
|
1835
1842
|
where t.id = numbered.id
|
|
1836
|
-
`.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
|
|
1843
|
+
`.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 VZ(_){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 vN={};C(vN,{up:()=>wZ,down:()=>kZ});import{sql as qm}from"kysely";async function wZ(_){await qm`
|
|
1837
1844
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1838
1845
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1839
1846
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1840
|
-
`.execute(_)}async function
|
|
1847
|
+
`.execute(_)}async function kZ(_){await qm`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var gN={};C(gN,{up:()=>nZ,down:()=>vZ});import{sql as pN}from"kysely";async function nZ(_){await pN`
|
|
1841
1848
|
ALTER TABLE thread_message_parts
|
|
1842
1849
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1843
|
-
`.execute(_),await
|
|
1850
|
+
`.execute(_),await pN`
|
|
1844
1851
|
ALTER TABLE thread_message_parts
|
|
1845
1852
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1846
|
-
`.execute(_)}async function
|
|
1853
|
+
`.execute(_)}async function vZ(_){await pN`
|
|
1847
1854
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1848
|
-
`.execute(_)}var
|
|
1855
|
+
`.execute(_)}var qN={};C(qN,{up:()=>pZ,down:()=>gZ});async function pZ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function gZ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var iN={};C(iN,{up:()=>iZ,down:()=>cZ});import{sql as qZ}from"kysely";async function iZ(_){await qZ`
|
|
1849
1856
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1850
1857
|
ON task_board_items (updated_at)
|
|
1851
1858
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1852
|
-
`.execute(_)}async function
|
|
1859
|
+
`.execute(_)}async function cZ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var cN={};C(cN,{up:()=>hZ,down:()=>tZ,TYPES:()=>im});import{sql as q}from"kysely";var im=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function hZ(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addCheckConstraint("notifications_type_check",q`type IN (${q.join(im.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
|
|
1853
1860
|
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
|
|
1854
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function
|
|
1861
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function tZ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var hN={};C(hN,{up:()=>oZ,down:()=>aZ});import{sql as cm}from"kysely";async function oZ(_){await cm`
|
|
1855
1862
|
UPDATE org_jira_integrations
|
|
1856
1863
|
SET status_mapping = (
|
|
1857
1864
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1866,7 +1873,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1866
1873
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1867
1874
|
WHERE jsonb_typeof(value) = 'array'
|
|
1868
1875
|
)
|
|
1869
|
-
`.execute(_)}async function
|
|
1876
|
+
`.execute(_)}async function aZ(_){await cm`
|
|
1870
1877
|
UPDATE org_jira_integrations
|
|
1871
1878
|
SET status_mapping = (
|
|
1872
1879
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1881,7 +1888,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1881
1888
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1882
1889
|
WHERE jsonb_typeof(value) = 'array'
|
|
1883
1890
|
)
|
|
1884
|
-
`.execute(_)}var
|
|
1891
|
+
`.execute(_)}var oN={};C(oN,{up:()=>lZ,down:()=>eZ,TYPES:()=>tN});import{sql as s_}from"kysely";var tN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],rZ=new Set(["mentioned"]);async function lZ(_){await hm(_,tN)}async function eZ(_){await hm(_,tN.filter((x)=>!rZ.has(x)))}async function hm(_,x){await s_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await s_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${s_.join(x.map((u)=>s_.lit(u)))}))`.execute(_)}var rN={};C(rN,{up:()=>bZ,down:()=>_6,ACTIONS:()=>aN});import{sql as i}from"kysely";var dZ=["bug","feature","chore","spike","security"],aN=["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"],sZ=new Set(["type_changed"]);async function bZ(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await i`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${i.join(dZ.map((x)=>i.lit(x)))}))`.execute(_),await tm(_,aN)}async function _6(_){await tm(_,aN.filter((x)=>!sZ.has(x))),await i`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function tm(_,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 lN={};C(lN,{up:()=>x6,down:()=>u6});import{sql as W}from"kysely";var am=["bug","feature","chore","spike","security"],om="chore";async function x6(_){await W`UPDATE task_board_items SET type = ${W.lit(om)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(om)}`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${W.join(am.map((x)=>W.lit(x)))}))`.execute(_)}async function u6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(am.map((x)=>W.lit(x)))}))`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var eN={};C(eN,{up:()=>C6,down:()=>K6});import{sql as x_}from"kysely";async function C6(_){await x_`
|
|
1885
1892
|
CREATE TABLE task_board_sprints (
|
|
1886
1893
|
id text PRIMARY KEY,
|
|
1887
1894
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1896,44 +1903,44 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1896
1903
|
CHECK (state IN ('active', 'future', 'closed')),
|
|
1897
1904
|
UNIQUE (organization_id, jira_sprint_id)
|
|
1898
1905
|
)
|
|
1899
|
-
`.execute(_),await
|
|
1906
|
+
`.execute(_),await x_`
|
|
1900
1907
|
CREATE INDEX idx_task_board_sprints_org
|
|
1901
1908
|
ON task_board_sprints (organization_id, starts_at)
|
|
1902
|
-
`.execute(_),await
|
|
1909
|
+
`.execute(_),await x_`
|
|
1903
1910
|
ALTER TABLE task_board_items
|
|
1904
1911
|
ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
|
|
1905
|
-
`.execute(_),await
|
|
1912
|
+
`.execute(_),await x_`
|
|
1906
1913
|
CREATE INDEX idx_task_board_items_sprint
|
|
1907
1914
|
ON task_board_items (organization_id, sprint_id)
|
|
1908
1915
|
WHERE sprint_id IS NOT NULL
|
|
1909
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function
|
|
1916
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function K6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await x_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await x_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var dN={};C(dN,{up:()=>T6,down:()=>m6});import{sql as N6}from"kysely";async function T6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function m6(_){await N6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var sN={};C(sN,{up:()=>E6,down:()=>$6});import{sql as z6}from"kysely";async function E6(_){await z6`
|
|
1910
1917
|
UPDATE org_jira_integrations
|
|
1911
1918
|
SET last_synced_at = NULL,
|
|
1912
1919
|
last_sync_error = NULL
|
|
1913
1920
|
WHERE last_synced_at IS NOT NULL
|
|
1914
|
-
`.execute(_)}async function
|
|
1921
|
+
`.execute(_)}async function $6(){}var bN={};C(bN,{up:()=>J6,down:()=>P6});import{sql as U6}from"kysely";async function J6(_){await U6`
|
|
1915
1922
|
UPDATE org_jira_integrations
|
|
1916
1923
|
SET last_synced_at = NULL,
|
|
1917
1924
|
last_sync_error = NULL
|
|
1918
1925
|
WHERE last_synced_at IS NOT NULL
|
|
1919
|
-
`.execute(_)}async function
|
|
1926
|
+
`.execute(_)}async function P6(){}var xT={};C(xT,{up:()=>Q6,down:()=>X6});import{sql as _T}from"kysely";async function Q6(_){await _T`
|
|
1920
1927
|
ALTER TABLE org_jira_integrations
|
|
1921
1928
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1922
|
-
`.execute(_),await
|
|
1929
|
+
`.execute(_),await _T`
|
|
1923
1930
|
UPDATE org_jira_integrations
|
|
1924
1931
|
SET rescan_pending = true
|
|
1925
1932
|
WHERE last_synced_at IS NULL
|
|
1926
|
-
`.execute(_)}async function
|
|
1933
|
+
`.execute(_)}async function X6(_){await _T`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var uT={};C(uT,{up:()=>Z6,down:()=>W6});async function Z6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function W6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var CT={};C(CT,{up:()=>j6,down:()=>L6});import{sql as rm}from"kysely";async function j6(_){await rm`
|
|
1927
1934
|
ALTER TABLE invitation
|
|
1928
1935
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1929
|
-
`.execute(_)}async function
|
|
1936
|
+
`.execute(_)}async function L6(_){await rm`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var NT={};C(NT,{up:()=>F6,down:()=>D6});import{sql as KT}from"kysely";async function F6(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(KT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(KT`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 KT`
|
|
1930
1937
|
INSERT INTO task_board_column_automations
|
|
1931
1938
|
(id, organization_id, column_key, prompt)
|
|
1932
1939
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1933
1940
|
FROM org_jira_integrations
|
|
1934
1941
|
WHERE auto_delegate = true
|
|
1935
1942
|
ON CONFLICT DO NOTHING
|
|
1936
|
-
`.execute(_)}async function
|
|
1943
|
+
`.execute(_)}async function D6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var TT={};C(TT,{up:()=>Y6,down:()=>H6});import{sql as L_}from"kysely";async function Y6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await L_`
|
|
1937
1944
|
UPDATE task_board_items i
|
|
1938
1945
|
SET review_cycle_started_at = (
|
|
1939
1946
|
SELECT max(a.occurred_at)
|
|
@@ -1943,35 +1950,35 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1943
1950
|
AND a.data ->> 'to' = 'in_review'
|
|
1944
1951
|
)
|
|
1945
1952
|
WHERE i.status = 'in_review'
|
|
1946
|
-
`.execute(_),await
|
|
1953
|
+
`.execute(_),await L_`
|
|
1947
1954
|
CREATE INDEX idx_task_board_items_review_cycle
|
|
1948
1955
|
ON task_board_items (updated_at, id)
|
|
1949
1956
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1950
1957
|
AND assignee_id = 'super-agent'
|
|
1951
1958
|
AND dismissed_at IS NULL
|
|
1952
|
-
`.execute(_),await
|
|
1959
|
+
`.execute(_),await L_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function H6(_){await L_`
|
|
1953
1960
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1954
1961
|
ON task_board_items (updated_at, id)
|
|
1955
1962
|
WHERE status = 'in_review'
|
|
1956
1963
|
AND assignee_id = 'super-agent'
|
|
1957
1964
|
AND dismissed_at IS NULL
|
|
1958
|
-
`.execute(_),await
|
|
1965
|
+
`.execute(_),await L_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var mT={};C(mT,{up:()=>M6,down:()=>R6});import{sql as lm}from"kysely";async function M6(_){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(lm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(lm`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 R6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var ET={};C(ET,{up:()=>G6,down:()=>O6,ACTIONS:()=>zT});import{sql as b_}from"kysely";var zT=["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"],B6=new Set(["review_verdict_requested"]);async function G6(_){await em(_,zT)}async function O6(_){await em(_,zT.filter((x)=>!B6.has(x)))}async function em(_,x){await b_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await b_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${b_.join(x.map((u)=>b_.lit(u)))}))`.execute(_)}var $T={};C($T,{up:()=>S6,down:()=>f6});import{sql as _x}from"kysely";async function S6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await _x`
|
|
1959
1966
|
ALTER TABLE task_board_items
|
|
1960
1967
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1961
1968
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
1962
|
-
`.execute(_),await
|
|
1969
|
+
`.execute(_),await _x`
|
|
1963
1970
|
ALTER TABLE task_board_items
|
|
1964
1971
|
ADD CONSTRAINT task_board_items_board_column_fkey
|
|
1965
1972
|
FOREIGN KEY (board_column_org, status)
|
|
1966
1973
|
REFERENCES task_board_columns (organization_id, key)
|
|
1967
1974
|
ON DELETE RESTRICT
|
|
1968
|
-
`.execute(_)}async function
|
|
1975
|
+
`.execute(_)}async function f6(_){await _x`
|
|
1969
1976
|
ALTER TABLE task_board_items
|
|
1970
1977
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
1971
|
-
`.execute(_),await
|
|
1978
|
+
`.execute(_),await _x`
|
|
1972
1979
|
ALTER TABLE task_board_items
|
|
1973
1980
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
1974
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
1981
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var UT={};C(UT,{up:()=>A6,down:()=>I6});async function A6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function I6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var PT={};C(PT,{up:()=>V6,down:()=>w6,ACTIONS:()=>JT});import{sql as xx}from"kysely";var JT=["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"],y6=new Set(["sprint_changed"]);async function V6(_){await dm(_,JT)}async function w6(_){await dm(_,JT.filter((x)=>!y6.has(x)))}async function dm(_,x){await xx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await xx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var QT={};C(QT,{up:()=>n6,down:()=>v6});import{sql as k6}from"kysely";async function n6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(k6`'[]'::jsonb`)).execute()}async function v6(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var XT={};C(XT,{up:()=>p6,down:()=>g6});import{sql as sm}from"kysely";async function p6(_){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(sm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(sm`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function g6(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var ZT={};C(ZT,{up:()=>i6,down:()=>c6});import{sql as q6}from"kysely";async function i6(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await q6`
|
|
1975
1982
|
UPDATE task_board_items i
|
|
1976
1983
|
SET external_url = t.url,
|
|
1977
1984
|
description = CASE
|
|
@@ -1990,11 +1997,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1990
1997
|
ON g.organization_id = l.organization_id
|
|
1991
1998
|
) t
|
|
1992
1999
|
WHERE t.item_id = i.id
|
|
1993
|
-
`.execute(_)}async function
|
|
2000
|
+
`.execute(_)}async function c6(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var WT={};C(WT,{up:()=>t6,down:()=>o6,ACTIONS:()=>bm});import{sql as Q}from"kysely";var h6=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],bm=["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 t6(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await Q`DROP TABLE IF EXISTS task_board_columns`.execute(_),await Q`
|
|
1994
2001
|
UPDATE task_board_items
|
|
1995
2002
|
SET status = 'triage'
|
|
1996
|
-
WHERE status NOT IN (${Q.join(
|
|
1997
|
-
`.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await
|
|
2003
|
+
WHERE status NOT IN (${Q.join(h6.map((x)=>Q.lit(x)))})
|
|
2004
|
+
`.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await a6(_,bm),await Q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await Q`
|
|
1998
2005
|
ALTER TABLE task_board_item_jira_links
|
|
1999
2006
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
2000
2007
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -2006,11 +2013,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2006
2013
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
2007
2014
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
2008
2015
|
DROP COLUMN IF EXISTS rescan_pending
|
|
2009
|
-
`.execute(_)}async function
|
|
2016
|
+
`.execute(_)}async function o6(){}async function a6(_,x){await Q`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Q`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Q.join(x.map((u)=>Q.lit(u)))}))`.execute(_)}var jT={};C(jT,{up:()=>r6,down:()=>l6});import{sql as u_}from"kysely";async function r6(_){await u_`
|
|
2010
2017
|
ALTER TABLE task_board_items
|
|
2011
2018
|
ADD COLUMN IF NOT EXISTS source text
|
|
2012
2019
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
2013
|
-
`.execute(_),await
|
|
2020
|
+
`.execute(_),await u_`
|
|
2014
2021
|
CREATE TABLE IF NOT EXISTS org_jira_column_automations (
|
|
2015
2022
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
2016
2023
|
jira_status text NOT NULL,
|
|
@@ -2019,7 +2026,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2019
2026
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
2020
2027
|
PRIMARY KEY (organization_id, jira_status)
|
|
2021
2028
|
)
|
|
2022
|
-
`.execute(_),await
|
|
2029
|
+
`.execute(_),await u_`
|
|
2023
2030
|
CREATE TABLE IF NOT EXISTS jira_trigger_claims (
|
|
2024
2031
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
2025
2032
|
jira_issue_id text NOT NULL,
|
|
@@ -2027,24 +2034,24 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2027
2034
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2028
2035
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
2029
2036
|
)
|
|
2030
|
-
`.execute(_)}async function
|
|
2037
|
+
`.execute(_)}async function l6(_){await u_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await u_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await u_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var LT={};C(LT,{up:()=>e6,down:()=>d6});import{sql as F_}from"kysely";async function e6(_){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(F_`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(F_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).execute(),await F_`
|
|
2031
2038
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
2032
2039
|
ON organization_notices (organization_id)
|
|
2033
2040
|
WHERE resolved_at IS NULL
|
|
2034
|
-
`.execute(_),await
|
|
2041
|
+
`.execute(_),await F_`
|
|
2035
2042
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
2036
2043
|
ON organization_notices (organization_id, created_at DESC)
|
|
2037
|
-
`.execute(_)}async function
|
|
2044
|
+
`.execute(_)}async function d6(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var DT={};C(DT,{up:()=>mW,down:()=>zW});import{sql as FT}from"kysely";import{sql as pj}from"kysely";var _z=50000000,s6=1e5;function b6(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>s6)return 1/0;let T=K.pop();if(typeof T==="string")u+=T.length;else if(Array.isArray(T))for(let m of T)K.push(m);else if(T!==null&&typeof T==="object")for(let m of Object.values(T))K.push(m)}return u}var _W=/\u0000/g,xW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,uW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,CW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,KW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function NW(_){return _.replace(_W,"").replace(xW,"\uFFFD").replace(uW,"$1***@").replace(CW,"$1***").replace(KW,"[base64 data omitted]")}function TW(_){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 xz(_){if(b6(_,_z)>_z)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return NW(u);if(TW(u))return{type:"text",text:"[image omitted]"};return u})}var uz=20;async function mW(_){let x=await FT`
|
|
2038
2045
|
SELECT id FROM thread_message_parts
|
|
2039
2046
|
WHERE pg_column_size(payload) > 8192
|
|
2040
2047
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
2041
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
2048
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=uz){let N=x.rows.slice(u,u+uz).map((T)=>T.id),K=await FT`
|
|
2042
2049
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
|
|
2043
|
-
`.execute(_);for(let T of K.rows){let m=
|
|
2050
|
+
`.execute(_);for(let T of K.rows){let m=xz(T.payload);if(m===JSON.stringify(T.payload))continue;await FT`
|
|
2044
2051
|
UPDATE thread_message_parts
|
|
2045
2052
|
SET payload = ${m}::jsonb
|
|
2046
2053
|
WHERE id = ${T.id}
|
|
2047
|
-
`.execute(_)}}}async function
|
|
2054
|
+
`.execute(_)}}}async function zW(){}var YT={};C(YT,{up:()=>EW,down:()=>$W});async function EW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function $W(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var HT={};C(HT,{up:()=>UW,down:()=>JW});import{sql as U}from"kysely";async function UW(_){await U`
|
|
2048
2055
|
CREATE TABLE git_provider_accounts (
|
|
2049
2056
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
2050
2057
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2288,11 +2295,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2288
2295
|
AND r.organization_id = s.organization_id
|
|
2289
2296
|
AND r.host = 'github.com'
|
|
2290
2297
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
|
|
2291
|
-
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function
|
|
2298
|
+
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function JW(_){await U`
|
|
2292
2299
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
2293
2300
|
`.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
|
|
2294
2301
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
2295
|
-
`.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var
|
|
2302
|
+
`.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var MT={};C(MT,{up:()=>QW,down:()=>XW});import{sql as I}from"kysely";var PW=I`
|
|
2296
2303
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
2297
2304
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
2298
2305
|
BEGIN
|
|
@@ -2301,7 +2308,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2301
2308
|
RETURN NULL;
|
|
2302
2309
|
END;
|
|
2303
2310
|
$$
|
|
2304
|
-
`;async function
|
|
2311
|
+
`;async function QW(_){await PW.execute(_),await I`
|
|
2305
2312
|
ALTER TABLE connections
|
|
2306
2313
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2307
2314
|
`.execute(_),await I`
|
|
@@ -2363,21 +2370,21 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2363
2370
|
AND r.host = 'github.com'
|
|
2364
2371
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
2365
2372
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
2366
|
-
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function
|
|
2373
|
+
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function XW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
|
|
2367
2374
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
2368
|
-
`.execute(_)}var EW={"001-initial-schema":Nu,"002-organization-settings":Tu,"003-connection-schema-align":mu,"004-remove-models-binding":zu,"005-connection-configuration":Eu,"006-add-views-to-settings":$u,"007-monitoring-logs":Uu,"008-event-bus":Ju,"009-drop-audit-logs":Pu,"010-gateways":Qu,"011-gateway-icon":Xu,"012-gateway-tool-selection-mode":Zu,"013-monitoring-user-agent-gateway":Wu,"014-gateway-resources-prompts":Du,"015-monitoring-properties":ju,"016-downstream-token-client-info":Lu,"017-downstream-token-remove-userid":Fu,"018-drop-gateway-tool-selection-strategy":Yu,"019-remove-gateway-is-default":Hu,"020-enabled-plugins":Mu,"021-threads":Ru,"022-rename-gateway-to-virtual-mcp":Bu,"023-optimize-thread-indexes":Gu,"024-consolidate-virtual-mcp":Ou,"025-add-monitoring-virtual-mcp-id":Su,"026-restrict-child-connection-delete":fu,"027-update-management-mcp-url":Iu,"028-update-management-mcp-to-self":Vu,"029-add-updated-by-to-connections":wu,"030-member-tags":ku,"031-add-dependency-mode":nu,"032-projects":vu,"033-thread-status":pu,"034-monitoring-dashboards":gu,"035-project-connections":qu,"036-update-registry-url":iu,"037-ai-provider-keys":cu,"038-oauth-pkce-states":hu,"039-automations":tu,"040-replace-next-run-at-with-last-run-at":ou,"041-ai-provider-keys-unique-constraint":au,"042-rename-mesh-mcp-to-cms-mcp":ru,"043-rename-cms-mcp-to-deco-cms":lu,"044-drop-connections-tools-column":eu,"045-thread-context-start-message":du,"046-remove-object-storage-plugin":bu,"047-add-next-run-at":_C,"048-merge-projects-agents":uC,"049-remove-org-admin-projects":CC,"050-durable-agent-runs":KC,"051-org-sso":TC,"052-thread-agent-ids":mC,"053-registry-config":zC,"054-connection-slug":$C,"055-spaces":UC,"056-automation-project-scope":JC,"057-thread-virtual-mcp-id":PC,"058-trigger-callback-tokens":QC,"059-kv":XC,"060-member-index":ZC,"061-downstream-token-connection-index":WC,"062-private-registry":DC,"063-event-subscriptions-enabled-boolean":jC,"064-brand-context":LC,"065-organization-domains":FC,"066-brand-context-structured":YC,"067-threads-metadata":HC,"068-threads-branch":MC,"069-sandbox-runner-state":RC,"070-model-categories":BC,"071-default-home-agents":GC,"072-ai-provider-key-preset-id":OC,"073-backfill-basic-usage-roles":SC,"074-sandbox-runner-state-handle-nonunique":fC,"075-thread-inflight-async-jobs":AC,"076-automations-drop-agent-json":IC,"077-tier-only-model-selection":VC,"078-automation-tool-call-kind":wC,"079-strip-legacy-freestyle-vm-map-entries":kC,"080-async-research-jobs":nC,"081-async-research-jobs-result-content":vC,"082-secrets":pC,"083-thread-run-locally":gC,"084-drop-host-sandbox-rows":qC,"085-rename-runner-kind":iC,"086-thread-pins-and-vm-map-rekey":cC,"087-fix-vm-map-rekey":hC,"088-purge-cli-activate-keys":tC,"089-rename-remote-user-to-desktop":oC,"090-automation-webhook-triggers":aC,"091-organization-domains-allow-multi":rC,"092-sandbox-naming-uniformization":lC,"093-backfill-global-search-basic-usage":eC,"094-org-file-configs":sC,"095-remove-automation-tool-call-kind":bC,"096-org-file-configs-public-url-base":_K,"097-drop-local-docker-sandbox-state":uK,"098-thread-message-parts":CK,"099-run-fence":KK,"100-link-transport":NK,"101-cancel-requested-at":TK,"102-observational-agent":mK,"103-revert-observational-agent":zK,"104-agent-sandbox-provider-kind":$K,"105-org-fs":UK,"106-automation-tools":JK,"107-org-fs-public-org":PK,"108-automation-max-agent-steps":QK,"109-thread-message-parts-per-message-seq":XK,"110-backfill-ghs-token-expiry":ZK,"111-org-fs-thread-id":WK,"112-org-file-configs-credential-type":DK,"113-thread-failure-reason":jK,"114-run-acked-seq":LK,"115-thread-projected-seq":FK,"116-org-sites":YK,"117-org-file-configs-site-slug":HK,"118-organization-domains-multi-verify":MK,"119-organization-join-requests":RK,"120-org-fs-read-public":BK,"121-org-fs-share-password":GK,"122-split-web-research-tier":fK,"123-connection-credential-vault":AK,"124-drop-thread-projected-seq":IK,"125-github-child-single-parent":yK,"126-task-board":wK,"127-task-board-due-date":kK,"128-reports-only":nK,"129-task-board-assigned-by":vK,"130-task-board-thread-id":pK,"131-task-board-thread-link-cascade":gK,"132-task-board-item-prs":qK,"133-dedupe-duplicate-members":iK,"134-drop-task-board-enabled":cK,"135-task-board-item-fk-cascade":hK,"136-task-board-import-idempotency":tK,"137-agent-sandbox-runner-state":oK,"138-agent-sandbox-sessions":aK,"139-organization-billing":rK,"140-seat-change-log":lK,"141-benefits-sync-pending":eK,"142-stripe-event-watermark":dK,"143-armed-report-url":sK,"144-benefits-pending-index":bK,"145-user-model-preferences":_N,"146-organization-main-agent":xN,"147-drop-agent-sandbox-tables":uN,"148-org-flags":CN,"149-task-board-item-sort-order":KN,"150-task-board-activity":NN,"151-task-board-tags":mN,"152-repair-connection-slug":EN,"153-task-board-latest-assistant-part-index":$N,"154-task-board-qa-activity":JN,"155-task-board-review-claims":PN,"156-task-board-conflict-activity":XN,"157-drop-seat-billing":ZN,"158-drop-github-child-single-parent":WN,"159-task-board-comments":DN,"160-task-quota-billing":jN,"161-task-quota-claim-state":FN,"162-claude-subscriptions":YN,"163-task-board-item-dismissed":HN,"164-per-org-task-quota":MN,"165-task-board-pending-review-index":RN,"166-task-board-last-swept-at":BN,"167-task-board-run-retry":GN,"168-org-repo-sync":SN,"169-task-board-merge-failed-activity":AN,"170-task-board-item-repo":IN,"171-jira-integration":yN,"172-task-board-item-key-seq":VN,"173-thread-github-repo-connection-index":wN,"174-thread-message-parts-persisted-at":nN,"175-task-board-sprints":vN,"176-task-board-done-sweep-index":pN,"177-notifications":gN,"178-jira-status-mapping-array":qN,"179-notification-mentioned":cN,"180-task-board-item-type":tN,"181-task-board-item-type-required":oN,"182-task-board-sprints-entities":aN,"183-drop-jira-jql-filter":rN,"184-jira-rescan-after-scope-change":lN,"185-jira-rescan-existing-cards":eN,"186-jira-rescan-pending-flag":sN,"187-task-board-comment-thread":bN,"188-invitation-auto-accept":_T,"189-task-board-column-automations":uT,"190-task-board-review-cycle-started-at":CT,"191-task-board-columns":KT,"192-task-board-verdict-nudge-activity":TT,"193-task-board-status-column-fk":mT,"194-jira-link-sprint":zT,"195-task-board-sprint-activity":$T,"196-task-board-column-tracker-statuses":UT,"197-task-board-prompts":JT,"198-task-board-external-url":PT,"199-drop-jira-mirror-and-org-columns":QT,"200-jira-run-trigger":XT,"201-organization-notices":ZT,"202-redact-base64-thread-parts":DT,"203-task-board-preview-routes":jT,"204-git-provider-accounts-and-repositories":LT,"205-repository-references":FT,"206-repository-consumers":Ku,"207-task-board-prs-repo-idx":Cu,"208-github-connect-flows":uu,"209-github-installation-authorization":xu,"210-github-repository-authorization":ax,"211-user-fs-org":ox,"212-coding-agent-mcp-excluded":rx,"213-bitbucket-git-provider":lx,"214-connections-sanitized-id-idx":ix,"215-commerce-discovery-repository":cx,"216-github-cli-auth":tx,"217-experiments":ex,"218-thread-message-parts-error-idx":dx,"219-task-board-duplicate-reported-activity":bx,"220-jira-automation-continue-pr":_u,"221-remove-private-registry":Tx,"222-org-git-credentials":mx,"223-drop-org-main-agent-id":qx,"224-repository-sandbox-image":zx,"225-thread-analytics-indexes":$x,"226-deco-score-names":Jx,"227-task-board-finding-resolved-activity":Qx,"228-org-voice-config":Nx,"229-jira-automation-from":Xx,"230-project-sidebar":Zx,"231-jira-chat-agent":Wx,"232-task-board-prompt-skills":jx,"233-remove-jira-chat-agent":Fx,"234-task-board-comment-audience":Yx,"235-prune-empty-thread-dirs":Hx,"236-task-board-sprints":Rx,"237-org-sites-project-link":Bx,"238-task-board-default-lanes":Gx,"239-task-board-retire-old-lanes":Ox,"240-task-board-restore-todo":Sx,"241-automation-board-column-transition":fx,"242-connection-url-slug":Ax,"243-experiment-task-board-item":Ix,"244-connection-url-slug-rollout-backfill":yx,"245-automation-system-key":Vx,"246-automation-pr-ready-trigger":wx,"247-automation-jira-transition":kx,"248-drop-retired-rule-tables":nx,"249-task-board-item-project":vx,"250-github-copilot-subscriptions":px,"251-org-shared-plans":gx},_x=EW;import{getMigrations as iW}from"better-auth/db";import{sso as cW}from"@better-auth/sso";import{organization as hW}from"@decocms/better-auth/plugins";import{admin as tW,apiKey as oW,jwt as aW,magicLink as rW,mcp as lW,openAPI as eW}from"better-auth/plugins";import{emailOTP as dW}from"better-auth/plugins/email-otp";import{Kysely as VW,PostgresDialect as mz}from"kysely";import{Pool as zz}from"pg";import{homedir as $W}from"os";var UW=new Set(["all","worker","api"]);function JW(_){let x=(_??"").trim();return UW.has(x)?x:"all"}var PW=new Set(["production","development","test"]);function QW(_){let x=(_??"").trim();return PW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function HT(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return HT(_,x,N)??u}function XW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),T=K>0?N.slice(0,K).trim():"",m=K>0?N.slice(K+1).trim():"";if(!T||!m){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=m}return x}function ZW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function YT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function WW(_){return _===void 0||_===""||_==="true"||_==="1"}function L_(_,x){return _||x}function sm(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${$W()}/deco`,u=QW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:L_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:L_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((T)=>T.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((T)=>T.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:HT("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((T)=>T.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:XW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:ZW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:YT(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:YT(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:WW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:HT("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:JW(L_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:YT(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:L_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:L_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var DW=null;function u_(){return DW??=Object.freeze(sm(process.env))}import{createContextKey as MW,metrics as RW,propagation as ej,ROOT_CONTEXT as dj,SpanStatusCode as sj,trace as BW}from"@opentelemetry/api";import{logs as GW,SeverityNumber as MT}from"@opentelemetry/api-logs";import{OTLPLogExporter as x5}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as OW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as K5}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as T5}from"@opentelemetry/instrumentation-runtime-node";import{context as hD,propagation as tD,SpanKind as oD,SpanStatusCode as aD}from"@opentelemetry/api";var lD=globalThis.fetch;import{ExportResultCode as mj}from"@opentelemetry/core";import{ExportResultCode as xx}from"@opentelemetry/core";import{mkdir as jW,rename as LW,writeFile as FW}from"fs/promises";import{join as ux}from"path";class Cx{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:xx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:xx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:xx.FAILED}});return Promise.resolve({code:xx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let T=x.get(K.partition);if(!T)T=[],x.set(K.partition,T);T.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,T])=>this.writeNDJSON(T,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let m of u)if(m.status==="fulfilled")K.add(m.value);let T=_.filter((m)=>!K.has(m.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?ux(this.basePath,x,...N):ux(this.basePath,...N);if(!this.knownDirs.has(K))await jW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let T=`${crypto.randomUUID()}.ndjson`,m=ux(K,`.${T}.tmp`),z=ux(K,T),E=_.join(`
|
|
2375
|
+
`.execute(_)}var ZW={"001-initial-schema":zu,"002-organization-settings":Eu,"003-connection-schema-align":$u,"004-remove-models-binding":Uu,"005-connection-configuration":Ju,"006-add-views-to-settings":Pu,"007-monitoring-logs":Qu,"008-event-bus":Xu,"009-drop-audit-logs":Zu,"010-gateways":Wu,"011-gateway-icon":ju,"012-gateway-tool-selection-mode":Lu,"013-monitoring-user-agent-gateway":Fu,"014-gateway-resources-prompts":Du,"015-monitoring-properties":Yu,"016-downstream-token-client-info":Hu,"017-downstream-token-remove-userid":Mu,"018-drop-gateway-tool-selection-strategy":Ru,"019-remove-gateway-is-default":Bu,"020-enabled-plugins":Gu,"021-threads":Ou,"022-rename-gateway-to-virtual-mcp":Su,"023-optimize-thread-indexes":fu,"024-consolidate-virtual-mcp":Au,"025-add-monitoring-virtual-mcp-id":Iu,"026-restrict-child-connection-delete":yu,"027-update-management-mcp-url":wu,"028-update-management-mcp-to-self":nu,"029-add-updated-by-to-connections":vu,"030-member-tags":pu,"031-add-dependency-mode":gu,"032-projects":qu,"033-thread-status":iu,"034-monitoring-dashboards":cu,"035-project-connections":hu,"036-update-registry-url":tu,"037-ai-provider-keys":ou,"038-oauth-pkce-states":au,"039-automations":ru,"040-replace-next-run-at-with-last-run-at":lu,"041-ai-provider-keys-unique-constraint":eu,"042-rename-mesh-mcp-to-cms-mcp":du,"043-rename-cms-mcp-to-deco-cms":su,"044-drop-connections-tools-column":bu,"045-thread-context-start-message":_C,"046-remove-object-storage-plugin":uC,"047-add-next-run-at":CC,"048-merge-projects-agents":NC,"049-remove-org-admin-projects":TC,"050-durable-agent-runs":mC,"051-org-sso":EC,"052-thread-agent-ids":$C,"053-registry-config":UC,"054-connection-slug":PC,"055-spaces":QC,"056-automation-project-scope":XC,"057-thread-virtual-mcp-id":ZC,"058-trigger-callback-tokens":WC,"059-kv":jC,"060-member-index":LC,"061-downstream-token-connection-index":FC,"062-private-registry":DC,"063-event-subscriptions-enabled-boolean":YC,"064-brand-context":HC,"065-organization-domains":MC,"066-brand-context-structured":RC,"067-threads-metadata":BC,"068-threads-branch":GC,"069-sandbox-runner-state":OC,"070-model-categories":SC,"071-default-home-agents":fC,"072-ai-provider-key-preset-id":AC,"073-backfill-basic-usage-roles":IC,"074-sandbox-runner-state-handle-nonunique":yC,"075-thread-inflight-async-jobs":VC,"076-automations-drop-agent-json":wC,"077-tier-only-model-selection":nC,"078-automation-tool-call-kind":vC,"079-strip-legacy-freestyle-vm-map-entries":pC,"080-async-research-jobs":gC,"081-async-research-jobs-result-content":qC,"082-secrets":iC,"083-thread-run-locally":cC,"084-drop-host-sandbox-rows":hC,"085-rename-runner-kind":tC,"086-thread-pins-and-vm-map-rekey":oC,"087-fix-vm-map-rekey":aC,"088-purge-cli-activate-keys":rC,"089-rename-remote-user-to-desktop":lC,"090-automation-webhook-triggers":eC,"091-organization-domains-allow-multi":dC,"092-sandbox-naming-uniformization":sC,"093-backfill-global-search-basic-usage":bC,"094-org-file-configs":xK,"095-remove-automation-tool-call-kind":uK,"096-org-file-configs-public-url-base":CK,"097-drop-local-docker-sandbox-state":NK,"098-thread-message-parts":TK,"099-run-fence":mK,"100-link-transport":zK,"101-cancel-requested-at":EK,"102-observational-agent":$K,"103-revert-observational-agent":UK,"104-agent-sandbox-provider-kind":PK,"105-org-fs":QK,"106-automation-tools":XK,"107-org-fs-public-org":ZK,"108-automation-max-agent-steps":WK,"109-thread-message-parts-per-message-seq":jK,"110-backfill-ghs-token-expiry":LK,"111-org-fs-thread-id":FK,"112-org-file-configs-credential-type":DK,"113-thread-failure-reason":YK,"114-run-acked-seq":HK,"115-thread-projected-seq":MK,"116-org-sites":RK,"117-org-file-configs-site-slug":BK,"118-organization-domains-multi-verify":GK,"119-organization-join-requests":OK,"120-org-fs-read-public":SK,"121-org-fs-share-password":fK,"122-split-web-research-tier":yK,"123-connection-credential-vault":VK,"124-drop-thread-projected-seq":wK,"125-github-child-single-parent":kK,"126-task-board":vK,"127-task-board-due-date":pK,"128-reports-only":gK,"129-task-board-assigned-by":qK,"130-task-board-thread-id":iK,"131-task-board-thread-link-cascade":cK,"132-task-board-item-prs":hK,"133-dedupe-duplicate-members":tK,"134-drop-task-board-enabled":oK,"135-task-board-item-fk-cascade":aK,"136-task-board-import-idempotency":rK,"137-agent-sandbox-runner-state":lK,"138-agent-sandbox-sessions":eK,"139-organization-billing":dK,"140-seat-change-log":sK,"141-benefits-sync-pending":bK,"142-stripe-event-watermark":_N,"143-armed-report-url":xN,"144-benefits-pending-index":uN,"145-user-model-preferences":CN,"146-organization-main-agent":KN,"147-drop-agent-sandbox-tables":NN,"148-org-flags":TN,"149-task-board-item-sort-order":mN,"150-task-board-activity":zN,"151-task-board-tags":$N,"152-repair-connection-slug":JN,"153-task-board-latest-assistant-part-index":PN,"154-task-board-qa-activity":XN,"155-task-board-review-claims":ZN,"156-task-board-conflict-activity":jN,"157-drop-seat-billing":LN,"158-drop-github-child-single-parent":FN,"159-task-board-comments":DN,"160-task-quota-billing":YN,"161-task-quota-claim-state":MN,"162-claude-subscriptions":RN,"163-task-board-item-dismissed":BN,"164-per-org-task-quota":GN,"165-task-board-pending-review-index":ON,"166-task-board-last-swept-at":SN,"167-task-board-run-retry":fN,"168-org-repo-sync":IN,"169-task-board-merge-failed-activity":VN,"170-task-board-item-repo":wN,"171-jira-integration":kN,"172-task-board-item-key-seq":nN,"173-thread-github-repo-connection-index":vN,"174-thread-message-parts-persisted-at":gN,"175-task-board-sprints":qN,"176-task-board-done-sweep-index":iN,"177-notifications":cN,"178-jira-status-mapping-array":hN,"179-notification-mentioned":oN,"180-task-board-item-type":rN,"181-task-board-item-type-required":lN,"182-task-board-sprints-entities":eN,"183-drop-jira-jql-filter":dN,"184-jira-rescan-after-scope-change":sN,"185-jira-rescan-existing-cards":bN,"186-jira-rescan-pending-flag":xT,"187-task-board-comment-thread":uT,"188-invitation-auto-accept":CT,"189-task-board-column-automations":NT,"190-task-board-review-cycle-started-at":TT,"191-task-board-columns":mT,"192-task-board-verdict-nudge-activity":ET,"193-task-board-status-column-fk":$T,"194-jira-link-sprint":UT,"195-task-board-sprint-activity":PT,"196-task-board-column-tracker-statuses":QT,"197-task-board-prompts":XT,"198-task-board-external-url":ZT,"199-drop-jira-mirror-and-org-columns":WT,"200-jira-run-trigger":jT,"201-organization-notices":LT,"202-redact-base64-thread-parts":DT,"203-task-board-preview-routes":YT,"204-git-provider-accounts-and-repositories":HT,"205-repository-references":MT,"206-repository-consumers":mu,"207-task-board-prs-repo-idx":Tu,"208-github-connect-flows":Nu,"209-github-installation-authorization":Ku,"210-github-repository-authorization":ex,"211-user-fs-org":lx,"212-coding-agent-mcp-excluded":dx,"213-bitbucket-git-provider":sx,"214-connections-sanitized-id-idx":tx,"215-commerce-discovery-repository":ox,"216-github-cli-auth":rx,"217-experiments":bx,"218-thread-message-parts-error-idx":_u,"219-task-board-duplicate-reported-activity":uu,"220-jira-automation-continue-pr":Cu,"221-remove-private-registry":zx,"222-org-git-credentials":Ex,"223-drop-org-main-agent-id":hx,"224-repository-sandbox-image":$x,"225-thread-analytics-indexes":Jx,"226-deco-score-names":Qx,"227-task-board-finding-resolved-activity":Zx,"228-org-voice-config":mx,"229-jira-automation-from":Wx,"230-project-sidebar":jx,"231-jira-chat-agent":Lx,"232-task-board-prompt-skills":Dx,"233-remove-jira-chat-agent":Hx,"234-task-board-comment-audience":Mx,"235-prune-empty-thread-dirs":Rx,"236-task-board-sprints":Gx,"237-org-sites-project-link":Ox,"238-task-board-default-lanes":Sx,"239-task-board-retire-old-lanes":fx,"240-task-board-restore-todo":Ax,"241-automation-board-column-transition":Ix,"242-connection-url-slug":yx,"243-experiment-task-board-item":Vx,"244-connection-url-slug-rollout-backfill":wx,"245-automation-system-key":kx,"246-automation-pr-ready-trigger":nx,"247-automation-jira-transition":vx,"248-drop-retired-rule-tables":px,"249-task-board-item-project":gx,"250-github-copilot-subscriptions":qx,"251-org-shared-plans":ix,"252-automation-linked-chat-trigger":cx},ux=ZW;import{getMigrations as lW}from"better-auth/db";import{sso as eW}from"@better-auth/sso";import{organization as dW}from"@decocms/better-auth/plugins";import{admin as sW,apiKey as bW,jwt as _7,magicLink as x7,mcp as u7,openAPI as C7}from"better-auth/plugins";import{emailOTP as K7}from"better-auth/plugins/email-otp";import{Kysely as qW,PostgresDialect as Jz}from"kysely";import{Pool as Pz}from"pg";import{homedir as WW}from"os";var jW=new Set(["all","worker","api"]);function LW(_){let x=(_??"").trim();return jW.has(x)?x:"all"}var FW=new Set(["production","development","test"]);function DW(_){let x=(_??"").trim();return FW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function BT(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return BT(_,x,N)??u}function YW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),T=K>0?N.slice(0,K).trim():"",m=K>0?N.slice(K+1).trim():"";if(!T||!m){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=m}return x}function HW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function RT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function MW(_){return _===void 0||_===""||_==="true"||_==="1"}function D_(_,x){return _||x}function Cz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${WW()}/deco`,u=DW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:D_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:D_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((T)=>T.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((T)=>T.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:BT("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((T)=>T.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:YW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:HW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:RT(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:RT(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:MW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:BT("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:LW(D_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:RT(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:D_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:D_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var RW=null;function C_(){return RW??=Object.freeze(Cz(process.env))}import{createContextKey as AW,metrics as IW,propagation as K8,ROOT_CONTEXT as N8,SpanStatusCode as T8,trace as yW}from"@opentelemetry/api";import{logs as VW,SeverityNumber as GT}from"@opentelemetry/api-logs";import{OTLPLogExporter as E8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as wW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as J8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as Q8}from"@opentelemetry/instrumentation-runtime-node";import{context as sj,propagation as bj,SpanKind as _5,SpanStatusCode as x5}from"@opentelemetry/api";var C5=globalThis.fetch;import{ExportResultCode as X5}from"@opentelemetry/core";import{ExportResultCode as Cx}from"@opentelemetry/core";import{mkdir as BW,rename as GW,writeFile as OW}from"fs/promises";import{join as Kx}from"path";class Nx{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:Cx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Cx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Cx.FAILED}});return Promise.resolve({code:Cx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let T=x.get(K.partition);if(!T)T=[],x.set(K.partition,T);T.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,T])=>this.writeNDJSON(T,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let m of u)if(m.status==="fulfilled")K.add(m.value);let T=_.filter((m)=>!K.has(m.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Kx(this.basePath,x,...N):Kx(this.basePath,...N);if(!this.knownDirs.has(K))await BW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let T=`${crypto.randomUUID()}.ndjson`,m=Kx(K,`.${T}.tmp`),z=Kx(K,T),E=_.join(`
|
|
2369
2376
|
`)+`
|
|
2370
|
-
`;await
|
|
2377
|
+
`;await OW(m,E,{mode:384}),await GW(m,z)}}import{ExportResultCode as F5}from"@opentelemetry/core";import{AggregationTemporality as Y5,DataPointType as H5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as S5}from"@opentelemetry/core";var y5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as H8,LoggerProvider as M8}from"@opentelemetry/sdk-logs";import{detectResources as B8,envDetector as G8,hostDetector as O8,osDetector as S8,processDetector as f8,resourceFromAttributes as A8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as y8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as k5}from"@opentelemetry/api-logs";import{NodeSDK as k8}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as v8,SamplingDecision as K_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as q5}from"@opentelemetry/api";var kW="__d",nW=AW("Current request"),vW=1;var Nz=(_)=>{let u=new URL(_.url).searchParams.get(kW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Tz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,T){let m=_.getValue(nW);if(!m){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,T);return{decision:K_.RECORD_AND_SAMPLED}}let z=Nz(m);if(z)return{decision:K_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,T);if(E.decision===K_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:K_.NOT_RECORD}}toString(){return"DebugSampler"}}class mz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:K_.RECORD_AND_SAMPLED};return{decision:K_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var g8=new wW({preventServerStart:!0}),q8=new Tz(new mz(vW));var Kz=yW.getTracer("studio","1.0.0"),Y_=IW.getMeter("studio","1.0.0"),pW=VW.getLogger("studio","1.0.0"),OT=(_,x,u)=>{let N={},K=u,T=u[u.length-1];if(T!==null&&typeof T==="object"&&!Array.isArray(T)&&!(T instanceof Error)&&Object.getPrototypeOf(T)===Object.prototype)N=T,K=u.slice(0,-1);let m=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");pW.emit({severityNumber:_,severityText:x,body:m,attributes:{"log.source":"console",...N}})},ST={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{OT(GT.ERROR,"ERROR",_),ST.error(..._)};console.warn=(..._)=>{OT(GT.WARN,"WARN",_),ST.warn(..._)};console.debug=(..._)=>{OT(GT.DEBUG,"DEBUG",_),ST.debug(..._)};var fT,zz=0,AT=500;function gW(){if(fT)return;let _=performance.now()+AT;fT=setInterval(()=>{let x=performance.now();zz=Math.max(0,x-_),_=x+AT},AT),fT.unref?.()}function Ez(){return gW(),zz}var iW=()=>Y_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),$z=()=>Y_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Uz=400,cW=100,hW=(_)=>({"db.status":_.level==="error"?"error":"success"}),tW=(_)=>(x)=>{let u=hW(x);if(x.queryDurationMillis>Uz){let N=Ez(),K=N>Uz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:Tx()}})}if(iW().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function oW(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=Tx(),T=_.idleCount===0&&_.totalCount>=K,m=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if($z().record(E,{"db.pool.outcome":T?"contended":"available"}),E>cW)if(T)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:m,total:_.totalCount,max:K});return z},(z)=>{throw $z().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Qz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Xz(){try{return C_().databasePgSsl}catch{return!1}}function Tx(){try{return C_().databasePoolMax}catch{return 10}}function aW(_){let x=oW(new Pz({connectionString:_,max:Tx(),ssl:Xz(),...Qz})),u=new Jz({pool:x});return{type:"postgres",db:new qW({dialect:u,log:tW(x)}),pool:x}}function M_(){return C_().databaseUrl}function Zz(_){let x=_||M_();return new Jz({pool:new Pz({connectionString:x,max:Tx(),ssl:Xz(),...Qz})})}function rW(_){let x=_||M_();return aW(x)}async function Wz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===H_)H_=null}var H_=null;function IT(){if(!H_)H_=rW(M_());return H_}async function jz(_){let u={database:Zz(_||M_()),plugins:[dW({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),sW(),bW(),_7(),C7(),u7({loginPage:"/login"}),eW(),x7({sendMagicLink:async()=>{}}),K7({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:T}=await lW(u);if(!N.length&&!K.length)return"up to date";return await T(),`${K.length+N.length} table(s) migrated`}async function yT(_,x){return(await o`
|
|
2371
2378
|
SELECT table_name FROM information_schema.tables
|
|
2372
2379
|
WHERE table_schema='public' AND table_name=${x}
|
|
2373
|
-
`.execute(_)).rows.length>0}async function
|
|
2380
|
+
`.execute(_)).rows.length>0}async function N7(_){if(await yT(_,"plugin_migrations"))return;await o`
|
|
2374
2381
|
CREATE TABLE plugin_migrations (
|
|
2375
2382
|
plugin_id TEXT NOT NULL,
|
|
2376
2383
|
name TEXT NOT NULL,
|
|
2377
2384
|
timestamp TEXT NOT NULL,
|
|
2378
2385
|
PRIMARY KEY (plugin_id, name)
|
|
2379
2386
|
)
|
|
2380
|
-
`.execute(_)}async function
|
|
2387
|
+
`.execute(_)}async function T7(_){if(!await yT(_,"kysely_migration"))return;let x=await o`
|
|
2381
2388
|
SELECT name, timestamp FROM kysely_migration
|
|
2382
2389
|
WHERE name LIKE '%/%'
|
|
2383
2390
|
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let K=u;if(u.includes("~plugins/"))K=u.substring(u.indexOf("~plugins/")+9);let T=K.indexOf("/");if(T===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let m=K.substring(0,T),z=K.substring(T+1);try{await o`
|
|
@@ -2388,6 +2395,6 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2388
2395
|
WHERE plugin_id = ${m} AND name = ${z}
|
|
2389
2396
|
`.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${m}/${z}, keeping in old table`);continue}}await o`
|
|
2390
2397
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
2391
|
-
`.execute(_)}}async function
|
|
2398
|
+
`.execute(_)}}async function m7(_){if(!await yT(_,"kysely_migration"))return{};let{rows:x}=await o`
|
|
2392
2399
|
SELECT name FROM kysely_migration
|
|
2393
|
-
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(
|
|
2400
|
+
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(ux,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function z7(_){await N7(_),await T7(_);let x=new Lz({db:_,provider:{getMigrations:async()=>({...await m7(_),...ux})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((T)=>{if(T.status==="Success")K++;else if(T.status==="Error")console.error(`Failed to execute migration "${T.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function E7(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await jz();let T=u??IT(),m=async()=>{if(!x&&!u)await Wz(T).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await z7(T.db);return await m(),{betterAuth:K,kysely:z}}catch(z){throw await m(),z}}async function W3(){let _=IT(),x=new Lz({db:_.db,provider:{getMigrations:()=>Promise.resolve(ux)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await E7(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{z7 as runKyselyMigrations,E7 as migrateToLatest,W3 as migrateDown};
|