decocms 4.497.0 → 4.498.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{ActiveShapeUtils-BfToWUeb.js → ActiveShapeUtils-h37U-AjP.js} +1 -1
- package/dist/client/assets/{AlertCircle-uVTE_i_c.js → AlertCircle-D6PAHKjV.js} +1 -1
- package/dist/client/assets/{AreaChart-D-XLuzTF.js → AreaChart-BARo54FY.js} +1 -1
- package/dist/client/assets/{ArrowLeft-D8kMxyF3.js → ArrowLeft-CG9rYORx.js} +1 -1
- package/dist/client/assets/{ArrowUp-baihphF6.js → ArrowUp-t0hf8rM7.js} +1 -1
- package/dist/client/assets/{BarChart-CmpYBluB.js → BarChart-B21k04bX.js} +1 -1
- package/dist/client/assets/{Building02-C-k2Qn__.js → Building02-fUucitQx.js} +1 -1
- package/dist/client/assets/{CategoricalChart-MIe_roxn.js → CategoricalChart-VabRcjcu.js} +1 -1
- package/dist/client/assets/{CheckCircle-BgOw0_dD.js → CheckCircle-of-fJlvu.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-e0qa2qKk.js → ChevronSelectorVertical-lAvz2cuG.js} +1 -1
- package/dist/client/assets/{ChevronUp-B7O2Z2_x.js → ChevronUp-IQvZuGmJ.js} +1 -1
- package/dist/client/assets/{Copy01-BR4eoDaW.js → Copy01-D6HfKiqy.js} +1 -1
- package/dist/client/assets/{CreditCard01-pJwQfpbv.js → CreditCard01-D5Mtkf7j.js} +1 -1
- package/dist/client/assets/{DotsVertical-DOuXLsMk.js → DotsVertical-LyDkiB3Q.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-BvlCrLLk.js → ErrorBarContext-BbITcgQP.js} +1 -1
- package/dist/client/assets/{Globe04-CYweJqdP.js → Globe04-LlNkyupL.js} +1 -1
- package/dist/client/assets/{Image01-S90CE8VS.js → Image01-Ch6fYTX9.js} +1 -1
- package/dist/client/assets/{Key01-B5JsqJav.js → Key01-CzAYk09-.js} +1 -1
- package/dist/client/assets/{Link01-Dz3IyYPr.js → Link01-yIpHC1tA.js} +1 -1
- package/dist/client/assets/{LinkBroken01-BKVx2uSk.js → LinkBroken01-4mWpjTP6.js} +1 -1
- package/dist/client/assets/{Monitor01-KqB9ZF5U.js → Monitor01-Ou5m5HXM.js} +1 -1
- package/dist/client/assets/{Play-CygY0DVf.js → Play-BeSRLN2O.js} +1 -1
- package/dist/client/assets/{Plus-Bj_QsLcq.js → Plus-CBwPsBC8.js} +1 -1
- package/dist/client/assets/{SearchMd-CVAVwuts.js → SearchMd-DFKnlLzg.js} +1 -1
- package/dist/client/assets/{Sector-CRN92mNE.js → Sector-BE7eLjHh.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-DhR5OJ_o.js → ShoppingBag01-DMrkFjeJ.js} +1 -1
- package/dist/client/assets/{Sun-BCMSoFWP.js → Sun-Bx7SBlM-.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-fI9_GGzc.js → SwitchHorizontal01-JU6fMv1N.js} +1 -1
- package/dist/client/assets/{Tool01-Dpcs_fEX.js → Tool01-Dx9izhNQ.js} +1 -1
- package/dist/client/assets/{Trash01-BwiN-bXW.js → Trash01-BTFm5tCg.js} +1 -1
- package/dist/client/assets/{Upload01-nkaaAbTH.js → Upload01-Bh-Emxn2.js} +1 -1
- package/dist/client/assets/{User01-BSbwHeDW.js → User01-CQJ9yvoz.js} +1 -1
- package/dist/client/assets/{UserSquare-CG780QF2.js → UserSquare-BAt_wzJ-.js} +1 -1
- package/dist/client/assets/{Users01-BuQlctw3.js → Users01-D5wZqDor.js} +1 -1
- package/dist/client/assets/{XAxis-BIvxXYwH.js → XAxis-BZWDI5GS.js} +1 -1
- package/dist/client/assets/{XClose-CohaLXz5.js → XClose-DbfrVehX.js} +1 -1
- package/dist/client/assets/{ZoomOut-BSXGk2sm.js → ZoomOut-CnrqTNds.js} +1 -1
- package/dist/client/assets/{access-gate-DOzt68zj.js → access-gate-Du7U7Rzo.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-BHghNpDD.js → add-connection-dialog-oB2v8vkB.js} +1 -1
- package/dist/client/assets/{agent-analytics-652550mA.js → agent-analytics-DoqorIVJ.js} +1 -1
- package/dist/client/assets/agent-app-CCz5q2dj.js +1 -0
- package/dist/client/assets/{agent-assets-CO2mf3B-.js → agent-assets-udkmrdmj.js} +1 -1
- package/dist/client/assets/agent-automation-YdAcul3v.js +20 -0
- package/dist/client/assets/{agent-automations-DDRyU4rP.js → agent-automations-B5oxB7jR.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-DCAIhIe3.js → agent-connect-sources-BjkrraY5.js} +1 -1
- package/dist/client/assets/agent-deck-CsNgUsES.js +1 -0
- package/dist/client/assets/{agent-e2e-BDY9ZD6D.js → agent-e2e-B5oARVfC.js} +1 -1
- package/dist/client/assets/{agent-experiments-BxeTATqf.js → agent-experiments-DfpT1sD2.js} +1 -1
- package/dist/client/assets/{agent-file-BmYB54QY.js → agent-file-BDStqhoT.js} +1 -1
- package/dist/client/assets/{agent-hosting-RRRWwDeW.js → agent-hosting-prc-duXm.js} +1 -1
- package/dist/client/assets/{agent-icon-CIAqO6q_.js → agent-icon-BZX5a0rN.js} +1 -1
- package/dist/client/assets/agent-library-BqNk_ysL.js +1 -0
- package/dist/client/assets/agent-library-file-BMyjR4a-.js +1 -0
- package/dist/client/assets/{agent-monitor-DsQakvWJ.js → agent-monitor-CtMBSYOs.js} +1 -1
- package/dist/client/assets/{agent-overview-3FcxOPM6.js → agent-overview-B23wW22S.js} +1 -1
- package/dist/client/assets/agent-settings-QtGp3bU0.js +1 -0
- package/dist/client/assets/{agent-site-editor-KhAad4Sw.js → agent-site-editor-Dtpy7m_F.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-C29bJKGS.js +2 -0
- package/dist/client/assets/{agent-site-editor-content-Fitmb8o7.js → agent-site-editor-content-PQwLsy2Z.js} +3 -3
- package/dist/client/assets/{agent-site-editor-preview-DnnUYHiU.js → agent-site-editor-preview-DfEJR2-i.js} +3 -3
- package/dist/client/assets/agent-view-D-eSYJoz.js +1 -0
- package/dist/client/assets/{agent-view-guard-CKn2tf5j.js → agent-view-guard-BhsT9KMv.js} +1 -1
- package/dist/client/assets/{agents-list-DSQETxBR.js → agents-list-BEnHZ3f8.js} +1 -1
- package/dist/client/assets/{ai-providers-DdDoqHhw.js → ai-providers-DaLz3LDZ.js} +1 -1
- package/dist/client/assets/{alert-DWd3_VEN.js → alert-DZ-Sik7-.js} +1 -1
- package/dist/client/assets/{alert-dialog-ivXO19po.js → alert-dialog-DFCHlrdG.js} +1 -1
- package/dist/client/assets/{analytics-sections-Bhuxqwzw.js → analytics-sections-BpmplX7W.js} +1 -1
- package/dist/client/assets/api-keys-Cs5VWUE9.js +1 -0
- package/dist/client/assets/{api-keys-DjqDXSVz.js → api-keys-D6bA8zbA.js} +1 -1
- package/dist/client/assets/app-editor-CpUCMZta.js +1 -0
- package/dist/client/assets/{asset-utils-jXJjDaKi.js → asset-utils-DSAV30pE.js} +1 -1
- package/dist/client/assets/{auth-C16DiwpU.js → auth-CKRkGXX0.js} +1 -1
- package/dist/client/assets/{auth-catchall-CMZXJiIT.js → auth-catchall-A973ZSm_.js} +1 -1
- package/dist/client/assets/{auth-entry-D2I0FV-M.js → auth-entry-B6EUZx-E.js} +1 -1
- package/dist/client/assets/{auth-split-layout-lGr4mQP-.js → auth-split-layout-ppDoBfGB.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-BzcsLm_G.js → authenticate-and-persist-oauth-hMQu3mut.js} +1 -1
- package/dist/client/assets/{automation-list-row-BIpt7Z6o.js → automation-list-row-CIgywn5_.js} +1 -1
- package/dist/client/assets/{automation-runs-Dx7LKstr.js → automation-runs-C6KynleS.js} +1 -1
- package/dist/client/assets/{automations-CbuyiPha.js → automations-BTR4ZUpt.js} +1 -1
- package/dist/client/assets/{autosend-8Zl7NQ67.js → autosend-CfJ-txst.js} +1 -1
- package/dist/client/assets/{avatar-PHlRD3By.js → avatar-D0TV3cL_.js} +1 -1
- package/dist/client/assets/{badge-BTJCq3tr.js → badge-Djw87oeQ.js} +1 -1
- package/dist/client/assets/{block-document-BKlsJNkE.js → block-document-e1vZMHc5.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-D9S2qjUS.js → blocks-preview-workspace-context-D3H9wyCz.js} +1 -1
- package/dist/client/assets/{blog-schema-B0HiB2cA.js → blog-schema-Dk8m1thm.js} +1 -1
- package/dist/client/assets/{board-analytics-DYBHTjV-.js → board-analytics-DcHI9tGL.js} +1 -1
- package/dist/client/assets/{buckets-DNw0rMyq.js → buckets-DtxAkodo.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-CmTPuV4H.js → build-improve-prompt-doc-C53Lrdih.js} +1 -1
- package/dist/client/assets/{calendar-Bpz7Lz-y.js → calendar-Cm_oXX6s.js} +1 -1
- package/dist/client/assets/{capability-load-error-B3pMqWw1.js → capability-load-error-CTNI2hrf.js} +1 -1
- package/dist/client/assets/{category-editor-DLwiIFGA.js → category-editor-Bua_fHQ9.js} +1 -1
- package/dist/client/assets/{chart-5JvOgFAK.js → chart-u_PCedAi.js} +1 -1
- package/dist/client/assets/{chat-context-3OXKEqSh.js → chat-context-CBev6aq3.js} +1 -1
- package/dist/client/assets/{chat-draft-oK0pqHaC.js → chat-draft-C2IQcwKW.js} +1 -1
- package/dist/client/assets/{checkbox-CRsuhP53.js → checkbox-C6RcKsRC.js} +1 -1
- package/dist/client/assets/{choose-editor-PDE1zqLa.js → choose-editor-4RqxQ2Kh.js} +1 -1
- package/dist/client/assets/{claim-phase-copy-BOnhDNWe.js → claim-phase-copy-azjvrOLz.js} +1 -1
- package/dist/client/assets/{cli-auth-success-DFy-lvLA.js → cli-auth-success-CSxmM9Mc.js} +1 -1
- package/dist/client/assets/{client-icons-GrM8G8gc.js → client-icons-DafWzw5-.js} +1 -1
- package/dist/client/assets/{collapsible-z-JwdUiM.js → collapsible-Bwspbfl2.js} +1 -1
- package/dist/client/assets/{collection-detail-Dhq8Wz0G.js → collection-detail-CZGVnn_N.js} +1 -1
- package/dist/client/assets/{collection-display-button-COwoiqJ0.js → collection-display-button-D2vvIKbf.js} +1 -1
- package/dist/client/assets/{collection-search-ZrNbDYaq.js → collection-search-DaDlBD_E.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-BxHhUj6Y.js → collection-table-wrapper-jG2oYxE8.js} +1 -1
- package/dist/client/assets/{collection-tabs-CZnO-KJm.js → collection-tabs-CqZ0YLaH.js} +1 -1
- package/dist/client/assets/{column-rules-CU0QM4zZ.js → column-rules-P9xAwA0r.js} +1 -1
- package/dist/client/assets/{combobox-bRQw-jDN.js → combobox-BsiHAQYf.js} +1 -1
- package/dist/client/assets/{command--1ySxBzC.js → command-BWDE-FNh.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-DbOOs4Di.js → companion-mcps-section-C3mRXa0s.js} +1 -1
- package/dist/client/assets/{config-DxkhWHvI.js → config-C--9g5dZ.js} +1 -1
- package/dist/client/assets/{connect-Cy-QXX6T.js → connect-DJluRO9r.js} +1 -1
- package/dist/client/assets/{connect-layout-B_xraWMz.js → connect-layout-CTtD_uUg.js} +1 -1
- package/dist/client/assets/{connection-eFBHXnq8.js → connection-BKH2vnra.js} +1 -1
- package/dist/client/assets/{connection-card-Dd1Miwos.js → connection-card-BqF_7Vxz.js} +1 -1
- package/dist/client/assets/{connection-detail-BhSOyfOS.js → connection-detail-gLie6k82.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-CjAkllf4.js → connection-form-helpers-C6ev_pGu.js} +1 -1
- package/dist/client/assets/{connections-DptsGWqU.js → connections-C4cDvjtx.js} +1 -1
- package/dist/client/assets/{context-DvjPJlI1.js → context-C-Rr1spp.js} +1 -1
- package/dist/client/assets/{context-menu-DTbN-B-u.js → context-menu-CYtUPpu0.js} +1 -1
- package/dist/client/assets/{core.esm-BmdNjDzv.js → core.esm-BqWXbE7p.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-BRn1itMS.js → create-organization-dialog-Ci8n8-Qw.js} +1 -1
- package/dist/client/assets/{daily-pulse-C_sHN310.js → daily-pulse-0HhsWI2C.js} +1 -1
- package/dist/client/assets/{device-hint-BA8nYrWU.js → device-hint-C8SeBwQ9.js} +1 -1
- package/dist/client/assets/{discover-DGp_fHdG.js → discover-CRupEDof.js} +1 -1
- package/dist/client/assets/{domain-settings-Bz6k7ub5.js → domain-settings-9i4lE6z4.js} +1 -1
- package/dist/client/assets/{drawer-wiDylD44.js → drawer-DmaKd3D8.js} +1 -1
- package/dist/client/assets/{editor-DbVDLInM.js → editor-Clsq2fLP.js} +1 -1
- package/dist/client/assets/{empty-state-CpJixEa0.js → empty-state-CYf1fvjk.js} +1 -1
- package/dist/client/assets/{empty-state-GrM64x-h.js → empty-state-ervoES7F.js} +1 -1
- package/dist/client/assets/{extract-connection-data-BFr1XefI.js → extract-connection-data-C5DfHTe9.js} +1 -1
- package/dist/client/assets/{feature-gate-DIjgMR-H.js → feature-gate-DyJpZ6nd.js} +1 -1
- package/dist/client/assets/{feature-paywall-DygeAwCp.js → feature-paywall-CeiXnB_u.js} +1 -1
- package/dist/client/assets/{file-explorer-sgwcJgTB.js → file-explorer-_3Yay2x8.js} +1 -1
- package/dist/client/assets/{file-preview-KMq6kQbY.js → file-preview-CHpcXovu.js} +1 -1
- package/dist/client/assets/{file-share-button-BmW3xptu.js → file-share-button-CXVf0V10.js} +1 -1
- package/dist/client/assets/{file-type-icon-CH0zVmFE.js → file-type-icon-poPLKUlK.js} +1 -1
- package/dist/client/assets/flat-project-BXwoPNzs.js +1 -0
- package/dist/client/assets/{folder-icon-Dvr9Xy_h.js → folder-icon-B1u0MiCk.js} +1 -1
- package/dist/client/assets/{form-ChrFSKbl.js → form-Dg_6Hf9j.js} +1 -1
- package/dist/client/assets/{general-CSM1Afsf.js → general-B4ZNIMkv.js} +1 -1
- package/dist/client/assets/{home-CmR382BT.js → home-ELjwftjN.js} +1 -1
- package/dist/client/assets/{icon-button-BEh8g82p.js → icon-button-CH2OxNKZ.js} +1 -1
- package/dist/client/assets/{index-1lCyt6wZ.js → index-BK3UZ3iw.js} +1 -1
- package/dist/client/assets/{index-BL1llwK-.js → index-BTY2QFMJ.js} +1 -1
- package/dist/client/assets/{index-BdbMrrND.js → index-CFz3Hn6w.js} +1 -1
- package/dist/client/assets/{index-5v4d81Co.js → index-CN-5kkc7.js} +1 -1
- package/dist/client/assets/{index-Dpzy6FT0.js → index-CPYLUZ6w.js} +1 -1
- package/dist/client/assets/{index-Br_k5ZoS.js → index-CQZm7V7F.js} +1 -1
- package/dist/client/assets/{index-FPsrk3s0.js → index-CuZxCor5.js} +1 -1
- package/dist/client/assets/{index-Dp4NtPWu.js → index-DEwWVQT2.js} +1 -1
- package/dist/client/assets/{index-CNBMfDzu.js → index-DoXTlFZn.js} +3 -3
- package/dist/client/assets/{index-CAxew9_u.js → index-GzUyiAtq.js} +1 -1
- package/dist/client/assets/{index-BvNW8UPM.js → index-XXahSrQ2.js} +1 -1
- package/dist/client/assets/{index-redirect-B_k2XKG7.js → index-redirect-BJu2viW0.js} +1 -1
- package/dist/client/assets/{index-E8HkK7le.js → index-xs_k6Ktz.js} +4 -4
- package/dist/client/assets/{index-GNzYGBzv.js → index-zt_Z_Heg.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-B_6kT4Pu.js → infiniteQueryObserver-7uXBxwIZ.js} +1 -1
- package/dist/client/assets/{infra-billing-DntZ94Fv.js → infra-billing-DaXwvysV.js} +1 -1
- package/dist/client/assets/{input-Bf9hsVol.js → input-BndsYgrN.js} +1 -1
- package/dist/client/assets/{input-DzGUnaT4.js → input-DsuaqMOh.js} +3 -3
- package/dist/client/assets/{integration-icon-BMM9bKRw.js → integration-icon-Cx3J1TrD.js} +1 -1
- package/dist/client/assets/{jira-icon-Cj12G8eH.js → jira-icon-CIrGorhP.js} +1 -1
- package/dist/client/assets/{label-DAC0PXH6.js → label-BHQ7fAmu.js} +1 -1
- package/dist/client/assets/{layout-DH0wfMvp.js → layout-DJrVrTHk.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-DKcmw_C9.js → legacy-agents-deep-rCcS2UBo.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-xF3AIf85.js → legacy-main-redirect-DMe57jXo.js} +1 -1
- package/dist/client/assets/library-CbX8eoDf.js +1 -0
- package/dist/client/assets/{library-tab-C0sI5AvO.js → library-tab-DpE23FB4.js} +1 -1
- package/dist/client/assets/{login-CyNOjPxx.js → login-BRxzp--X.js} +1 -1
- package/dist/client/assets/{markdown-D9Q4_EWf.js → markdown-BQE0Sc_A.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-CJllCuFA.js → mcp-app-renderer-Bl0xOGsc.js} +1 -1
- package/dist/client/assets/{mcp-oauth-D5hp_76q.js → mcp-oauth-DOxWKmTF.js} +1 -1
- package/dist/client/assets/{mcp-oauth-Cm-FGk67.js → mcp-oauth-xPr142sb.js} +1 -1
- package/dist/client/assets/{members-aCVioT1N.js → members-BJNHqWz2.js} +1 -1
- package/dist/client/assets/{memory-Fzdui2vo.js → memory-CGilhYH2.js} +1 -1
- package/dist/client/assets/{mini-report-page-BTvq-myp.js → mini-report-page-BbCM6VM6.js} +1 -1
- package/dist/client/assets/{mock-board-BctOoM75.js → mock-board-CSphyYm-.js} +1 -1
- package/dist/client/assets/{monaco-editor-DxsHSHr3.js → monaco-editor-C2uEeF5_.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-BPpGukbV.js → monitoring-stats-row-4mryZRhX.js} +1 -1
- package/dist/client/assets/{multi-select-BEZlzNPL.js → multi-select-CcwfeB_X.js} +1 -1
- package/dist/client/assets/{mustache-C_2NGupD.js → mustache-Bpchj0JB.js} +1 -1
- package/dist/client/assets/{new-project-dialog-CBz8t6bW.js → new-project-dialog-nyD817-y.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-COJwjuqo.js → oauth-callback-ai-provider-BpVSOAoL.js} +1 -1
- package/dist/client/assets/{oauth-callback-D-TIiYCW.js → oauth-callback-gTMv-zQg.js} +1 -1
- package/dist/client/assets/{onboarding-BvA8qKid.js → onboarding-CMWpJjZw.js} +1 -1
- package/dist/client/assets/{openai-conversation-DMNH07wd.js → openai-conversation-CeefM3R3.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-B82d2Iyt.js → optimistic-project-sidebar-views-v1rJRps1.js} +1 -1
- package/dist/client/assets/{organization-choice-DZk2VZFD.js → organization-choice-VbmGVdvE.js} +1 -1
- package/dist/client/assets/{orgs-D1rtBs1u.js → orgs-Cri0Ia7k.js} +1 -1
- package/dist/client/assets/{page-seo-form-DC_uQ_yb.js → page-seo-form-DY79__rL.js} +1 -1
- package/dist/client/assets/{pair-BHsCddMQ.js → pair-DwD5SdrN.js} +1 -1
- package/dist/client/assets/{plan-ladder-D5P8cNNU.js → plan-ladder-Cec8Hw6v.js} +1 -1
- package/dist/client/assets/{popover-BiATgeVZ.js → popover-CUbGh9FO.js} +1 -1
- package/dist/client/assets/{post-calendar-XwNvndsR.js → post-calendar-BQ6RASS0.js} +1 -1
- package/dist/client/assets/{post-editor-CIVzwScJ.js → post-editor-BlxejBOv.js} +1 -1
- package/dist/client/assets/{preview-content-D4a4Kxnw.js → preview-content-BNo5Q8c2.js} +1 -1
- package/dist/client/assets/{preview-dialog-DXvP_rSt.js → preview-dialog-CUTnny3X.js} +1 -1
- package/dist/client/assets/{preview-panel-9m4lCkpb.js → preview-panel-CbuRn5QK.js} +1 -1
- package/dist/client/assets/{product-picker-dialog-BFXbOjF7.js → product-picker-dialog-DWydhMcM.js} +1 -1
- package/dist/client/assets/{profile-UHLqhuh9.js → profile-Wgp3fAd7.js} +1 -1
- package/dist/client/assets/{project-app-view-7PLU79fP.js → project-app-view-BY4Z9zY6.js} +1 -1
- package/dist/client/assets/{project-feed-BMzjV3aS.js → project-feed-LzJO1RwA.js} +1 -1
- package/dist/client/assets/{project-icon-CtWmpx-o.js → project-icon-D9ZMEkrO.js} +1 -1
- package/dist/client/assets/project-reports-DHKecVyf.js +1 -0
- package/dist/client/assets/project-tasks-D-gNfCJd.js +1 -0
- package/dist/client/assets/{projects-BKfqSW6u.js → projects-D9E0KMO5.js} +1 -1
- package/dist/client/assets/{projects-empty-state-CansCxa8.js → projects-empty-state-CVyY4QD-.js} +1 -1
- package/dist/client/assets/{prompts-DF0ao_FF.js → prompts-BGmz7B8b.js} +1 -1
- package/dist/client/assets/record-editor-DeAErR2x.js +1 -0
- package/dist/client/assets/redirect-editor-B-TForOi.js +1 -0
- package/dist/client/assets/reports-5CTNIsDn.js +1 -0
- package/dist/client/assets/{reports-BtVp7TUw.js → reports-CwAchcdk.js} +1 -1
- package/dist/client/assets/{reports-onboarding-DJFr_1o0.js → reports-onboarding-4tevrhgv.js} +1 -1
- package/dist/client/assets/{reports-tab-lxUznXDf.js → reports-tab-BWxj7M8g.js} +2 -2
- package/dist/client/assets/{repositories-D-XY1mEG.js → repositories-BPCvyVf9.js} +1 -1
- package/dist/client/assets/{repository-binding-DJSfVmK0.js → repository-binding-DmdeiZmO.js} +1 -1
- package/dist/client/assets/{repository-import-picker-CN4nBNQQ.js → repository-import-picker-CQI4CdeM.js} +1 -1
- package/dist/client/assets/{repository-picker-Bq1Xf_Nc.js → repository-picker-BsT7lJxX.js} +1 -1
- package/dist/client/assets/{require-capability-tnxMTQ41.js → require-capability-DDfk0Kb5.js} +1 -1
- package/dist/client/assets/{required-auth-layout-OT71YdwW.js → required-auth-layout-BBSjYqsc.js} +1 -1
- package/dist/client/assets/{reset-password-b4ZAeKZf.js → reset-password-BWTQRa6I.js} +1 -1
- package/dist/client/assets/{resizable-zpo8XDIL.js → resizable-DUdjqiGj.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-DELF6fBY.js → resolve-tab-icon-JA5rc6Tv.js} +1 -1
- package/dist/client/assets/{review-settings-C7_0upab.js → review-settings-z03jMXZX.js} +1 -1
- package/dist/client/assets/{rich-text-link-control-r6aMgCnO.js → rich-text-link-control-Cx8fBuQI.js} +1 -1
- package/dist/client/assets/{roles-BNqONgK2.js → roles-DucC2Xmn.js} +1 -1
- package/dist/client/assets/{route-2S2BeRzM.js → route-DlzJTX4w.js} +1 -1
- package/dist/client/assets/route-DtPgqOWq.js +1 -0
- package/dist/client/assets/{route-ClCedNlY.js → route-T44vpxHb.js} +1 -1
- package/dist/client/assets/{runnable-block-editor-TLQt5HEP.js → runnable-block-editor-DEHfe8Jn.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-B3tBEBAU.js → sandbox-lifecycle-context-DwGA5vHg.js} +1 -1
- package/dist/client/assets/{schema-DAFIdNnw.js → schema-BgIvb0Gx.js} +1 -1
- package/dist/client/assets/{scroll-area-D65kWya9.js → scroll-area-D4DX2ZIG.js} +1 -1
- package/dist/client/assets/{search-input-CZqwR2Em.js → search-input-JdMKjHSx.js} +1 -1
- package/dist/client/assets/{search-toggle-CZvcgEuO.js → search-toggle-pL0dggP1.js} +1 -1
- package/dist/client/assets/{secret-picker-D9zGuUhM.js → secret-picker-BQp7jdXk.js} +1 -1
- package/dist/client/assets/{secrets-BL-nilzb.js → secrets-oDHSjIYO.js} +1 -1
- package/dist/client/assets/{sections-editor-Cj-wrCnm.js → sections-editor-atX3TwPF.js} +1 -1
- package/dist/client/assets/{select-JMx_Daeq.js → select-DnxgNE4v.js} +1 -1
- package/dist/client/assets/{select-model-DcZybkpW.js → select-model-DXVspEVT.js} +1 -1
- package/dist/client/assets/{seo-editor-5GEPfBh6.js → seo-editor-DNDnxeNs.js} +1 -1
- package/dist/client/assets/{separator-BQJNbeVU.js → separator-2C8rNgYN.js} +1 -1
- package/dist/client/assets/{settings-tab-yEsrogNk.js → settings-tab-Mf3STlzh.js} +1 -1
- package/dist/client/assets/{sheet-ft1vIPTI.js → sheet-COKPXrMt.js} +1 -1
- package/dist/client/assets/{shell-layout-BfZ3aLwK.js → shell-layout-BJ2bouq5.js} +1 -1
- package/dist/client/assets/{skills-DIxWKIpf.js → skills-DO3tbITh.js} +1 -1
- package/dist/client/assets/{slider-DzfY-AKn.js → slider-BrBnaDSJ.js} +1 -1
- package/dist/client/assets/{sortable.esm-C25gMPOU.js → sortable.esm-ldWM5mlg.js} +1 -1
- package/dist/client/assets/{sso-DMISGA1g.js → sso-tkyC_08g.js} +1 -1
- package/dist/client/assets/{suggestion-CkSKi3Ko.js → suggestion-BZNfKCnl.js} +1 -1
- package/dist/client/assets/{switch-D1o5UUPU.js → switch-DDSkOeLA.js} +1 -1
- package/dist/client/assets/{symbol-BihNL2x9.js → symbol-DzwMqsxT.js} +1 -1
- package/dist/client/assets/{synced-repos-THZeI2TX.js → synced-repos-BkSO5Q1Y.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-D-qnzCLe.js → tab-icon-glyph-BuzlFWHk.js} +1 -1
- package/dist/client/assets/{table-_5HbhT_S.js → table-CMK8QC8D.js} +1 -1
- package/dist/client/assets/{tabs-BaVhZf2S.js → tabs-B9VR2rbK.js} +1 -1
- package/dist/client/assets/{task-board-BhjqCSbG.js → task-board--9goOhkE.js} +1 -1
- package/dist/client/assets/{task-route-RXmOd-Sg.js → task-route-0VBQiuCM.js} +1 -1
- package/dist/client/assets/{task-status-BMH2aOWE.js → task-status-CNJzd27h.js} +1 -1
- package/dist/client/assets/taskboard-analytics-CM-a1hkv.js +1 -0
- package/dist/client/assets/tasks-F-hM9qNc.js +1 -0
- package/dist/client/assets/{tasks-BmHnYLCK.js → tasks-jC2y5QyA.js} +1 -1
- package/dist/client/assets/{textarea-DUqfavim.js → textarea-V-Ewr6Em.js} +1 -1
- package/dist/client/assets/{thread-analytics-CaZ650wR.js → thread-analytics-LPGZ7GJl.js} +1 -1
- package/dist/client/assets/{thread-button-C_voRhAW.js → thread-button-CgW1daN2.js} +1 -1
- package/dist/client/assets/{thread-intent-DIdLWs3T.js → thread-intent-BzcsRkEY.js} +1 -1
- package/dist/client/assets/{thread-route-C0aHNen1.js → thread-route-C6etrVa0.js} +1 -1
- package/dist/client/assets/{thread-route-Bsh0W3WI.js → thread-route-Dcfq6vF9.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-Ck9K6X-O.js → thread-sheet-body-BAcB1e7q.js} +1 -1
- package/dist/client/assets/{time-range-picker-CNwi7PKe.js → time-range-picker-DF3Ygb5C.js} +1 -1
- package/dist/client/assets/{toggle-group-B-oqQV0Q.js → toggle-group-a4ytF4Oj.js} +1 -1
- package/dist/client/assets/{tool-namespace-D73-Yt47.js → tool-namespace-DgKSlqBK.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-CWTFjB2x.js → toolbar-icon-button-DYnkRqZ7.js} +1 -1
- package/dist/client/assets/{tooltip-Bgaj6wao.js → tooltip-BwqXknMj.js} +1 -1
- package/dist/client/assets/{tooltipContext-Hyh6Z90v.js → tooltipContext-BpwAgADs.js} +1 -1
- package/dist/client/assets/{track-bmLGXYyb.js → track-8eJZpOmx.js} +1 -1
- package/dist/client/assets/{types-DSarHVWN.js → types-uLyd8Klr.js} +1 -1
- package/dist/client/assets/{url-slug-BCtPmKcV.js → url-slug-DQb0tXSj.js} +1 -1
- package/dist/client/assets/{usage-stats-CPP4mykS.js → usage-stats-5hdJRwfv.js} +1 -1
- package/dist/client/assets/{use-ai-providers-4IWNnMYR.js → use-ai-providers-BW9u4951.js} +1 -1
- package/dist/client/assets/{use-automations-BNBMB7NJ.js → use-automations-DhHqb9o9.js} +1 -1
- package/dist/client/assets/{use-autosave-CCI_H2Jh.js → use-autosave-DBs1Dhkn.js} +1 -1
- package/dist/client/assets/{use-chat-layout-state-CbsP3hVN.js → use-chat-layout-state-DMre3rzo.js} +1 -1
- package/dist/client/assets/{use-chat-navigation-Bvo_pyzq.js → use-chat-navigation-OgErkHag.js} +1 -1
- package/dist/client/assets/{use-clock-tick-BH2s8rwm.js → use-clock-tick-BzZc0p17.js} +1 -1
- package/dist/client/assets/{use-connect-companion-D-T5tZi4.js → use-connect-companion-DFtJCq_R.js} +1 -1
- package/dist/client/assets/{use-connection-B7mxZZZr.js → use-connection-DmWKxQIp.js} +1 -1
- package/dist/client/assets/{use-copy-BDIhU1a3.js → use-copy-yOqXjxUA.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-DzT7Wi_g.js → use-create-virtual-mcp-DyD0K90B.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-CcYc8FC-.js → use-date-fns-locale-CD7FGq8S.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-BZQvNBgR.js → use-debounced-autosave-DHlAwbI3.js} +1 -1
- package/dist/client/assets/{use-debounced-value-DogqGlHA.js → use-debounced-value-DuWNcnXn.js} +1 -1
- package/dist/client/assets/{use-deco-credits-D8fC6T0N.js → use-deco-credits-Bea6ChUy.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-CG41uF0G.js → use-decopilot-events-ClCuNwhP.js} +1 -1
- package/dist/client/assets/{use-delete-connection-B8gkfexB.js → use-delete-connection-BHdzlaZN.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-DMHoNV8K.js → use-deployment-admin-9qJi8NmW.js} +1 -1
- package/dist/client/assets/{use-ensure-project-folder-BXtCOD89.js → use-ensure-project-folder-Pz6kG32X.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-ClgFfcai.js → use-fast-preview-draft-url-BcFHzHFy.js} +1 -1
- package/dist/client/assets/{use-file-configs-CfHrYQ0D.js → use-file-configs-Cnc56owU.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-Doz-tD5w.js → use-infinite-scroll-CqsPoGk1.js} +1 -1
- package/dist/client/assets/{use-join-requests-C6Zrd-wF.js → use-join-requests-B8p2Zeas.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-BI-yjZaf.js → use-main-panel-tabs-C0Ktj2i7.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-DT1RFPS5.js → use-mcp-auth-status-BY6UXdeD.js} +1 -1
- package/dist/client/assets/{use-mcp-client-HXdOgSo1.js → use-mcp-client-DTwq_7MH.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-Dc22OpBz.js → use-mcp-prompts-CE81wOkK.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-SgFCxAm4.js → use-mcp-tools-BDslTiVH.js} +1 -1
- package/dist/client/assets/{use-members-BnU8sD2a.js → use-members-CmWLwd2e.js} +1 -1
- package/dist/client/assets/{use-mobile-DMhjc8sS.js → use-mobile-BD5GPe5Y.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-8FxeDEql.js → use-navigate-to-agent-CiQs8YZp.js} +1 -1
- package/dist/client/assets/use-new-blocks-editor-Bi1eoiEH.js +1 -0
- package/dist/client/assets/{use-open-billing-url-CGiwz5yQ.js → use-open-billing-url-DVE0afgz.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-CjFoGBiw.js → use-org-auth-client-D907jz51.js} +1 -1
- package/dist/client/assets/{use-org-fs-Brfqc0DM.js → use-org-fs-DC-NuNXo.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-Dn8ueEn8.js → use-org-repo-syncs-CFHiMPUk.js} +1 -1
- package/dist/client/assets/{use-org-sso-5XSC3bo7.js → use-org-sso-CJ9T2BXL.js} +1 -1
- package/dist/client/assets/{use-organization-roles-CPEXva6v.js → use-organization-roles-CRyk_oUV.js} +1 -1
- package/dist/client/assets/{use-organization-settings-C1JjAa2e.js → use-organization-settings-QfwaDuvt.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-B5g-cXoX.js → use-panel-navigate-BQzwPyBR.js} +1 -1
- package/dist/client/assets/{use-project-scope-C_W_iYCG.js → use-project-scope-0K714duc.js} +1 -1
- package/dist/client/assets/{use-releases-aiz7Xp_5.js → use-releases-DZTFt5jN.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-Dx6jRAHR.js → use-reports-diagnostic-DpILmwBe.js} +1 -1
- package/dist/client/assets/{use-sandbox-events-VQD2dbMh.js → use-sandbox-events-v_kGJN2U.js} +1 -1
- package/dist/client/assets/{use-secrets-COPHY6zn.js → use-secrets-C-9G8ydk.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-DPHgFiJr.js → use-section-preview-base-CmZa6K6g.js} +1 -1
- package/dist/client/assets/{use-tags-NK0RVjrR.js → use-tags-BJbdefCg.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-CDUEw4yr.js → use-task-board-analytics-CILYZiLT.js} +1 -1
- package/dist/client/assets/{use-task-board-events-DtM0CgpV.js → use-task-board-events-CjirQYQ9.js} +1 -1
- package/dist/client/assets/{use-task-board-item-prs-uJK_d1d_.js → use-task-board-item-prs-BIQrUm4A.js} +1 -1
- package/dist/client/assets/{use-task-board-items-ByQWsAvO.js → use-task-board-items-CGAY-jQW.js} +1 -1
- package/dist/client/assets/{use-task-metadata-YcyCc5iY.js → use-task-metadata-DPgHRFmq.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-VXUKGF1M.js → use-thread-analytics-xBLnk1IS.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-CcHD0dx2.js → use-thread-outputs-DfvzI16S.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-y40gwZ85.js +1 -0
- package/dist/client/assets/{useQueries-D6R5SUUn.js → useQueries-J6gaISLv.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CQ4v8A2V.js +1 -0
- package/dist/client/assets/{users-CpYFV7v9.js → users-yYj2VUTN.js} +1 -1
- package/dist/client/assets/{utils-DcA-ys_Q.js → utils-CeckZkhk.js} +1 -1
- package/dist/client/assets/{variant-calendar-BCj7kcYa.js → variant-calendar-kyOtq8lu.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-uy8AIyK6.js → variant-matcher-override-5Sa4pTWa.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-Fs_5ypxv.js → view-mode-toggle-BNtxS74L.js} +1 -1
- package/dist/client/assets/{virtual-mcp-BQkclqkV.js → virtual-mcp-Baro2XYn.js} +1 -1
- package/dist/client/assets/{watch-sse-pool-afzfEiDL.js → watch-sse-pool-LLzHE8XH.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/migrate.js +253 -239
- package/dist/server/server.js +625 -625
- 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 Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null,x)}var C=(_,x)=>{for(var u in x)Rz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Gz.bind(x,u)})};import{Migrator as Mz,sql as o}from"kysely";var Ex={};C(Ex,{up:()=>Oz,down:()=>Sz});import{sql as nT}from"kysely";async function Oz(_){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",nT`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",nT`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function Sz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var $x={};C($x,{up:()=>fz,down:()=>Az});import{sql as a}from"kysely";async function fz(_){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 Az(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Ux={};C(Ux,{up:()=>Iz,down:()=>yz});import{sql as vT}from"kysely";async function Iz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await vT`
|
|
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 vT`
|
|
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 yz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Jx={};C(Jx,{up:()=>Vz,down:()=>wz});async function Vz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function wz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Qx={};C(Qx,{up:()=>kz,down:()=>nz});import{sql as Px}from"kysely";async function kz(_){await Px`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Px`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Px`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function nz(_){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 Zx={};C(Zx,{up:()=>gz,down:()=>qz});import{sql as G}from"kysely";var vz={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"}},pz={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"}},Xx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function pT(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function gT(_,x){for(let[K,T]of[[G`organization_id || '_commerce-discovery'`,vz],[G`'commerce-discovery_' || organization_id`,pz]])for(let m of["title","description"]){let{from:z,to:E}=pT(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}=pT(Xx.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' = ${Xx.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' = ${Xx.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 gz(_){await gT(_,"up")}async function qz(_){await gT(_,"down")}var jx={};C(jx,{up:()=>cz,down:()=>hz,ACTIONS:()=>Wx});import{sql as T_}from"kysely";var Wx=["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"],iz=Wx.filter((_)=>_!=="finding_resolved");async function cz(_){await qT(_,Wx)}async function hz(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await qT(_,iz)}async function qT(_,x){await T_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await T_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${T_.join(x.map((u)=>T_.lit(u)))}))`.execute(_)}var Lx={};C(Lx,{up:()=>tz,down:()=>oz});import{sql as B_}from"kysely";async function tz(_){await B_`
|
|
84
84
|
ALTER TABLE org_jira_column_automations
|
|
85
85
|
ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
|
|
86
86
|
CONSTRAINT chk_org_jira_column_automations_from_kind
|
|
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 B_`
|
|
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 oz(_){await B_`
|
|
95
95
|
DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
|
|
96
|
-
`.execute(_),await
|
|
96
|
+
`.execute(_),await B_`
|
|
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 Fx={};C(Fx,{up:()=>az,down:()=>rz});import{sql as iT}from"kysely";async function az(_){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(iT`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(iT`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 rz(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Yx={};C(Yx,{up:()=>lz,down:()=>ez});async function lz(){}async function ez(){}var Hx={};C(Hx,{up:()=>dz,down:()=>bz});import{sql as Dx}from"kysely";async function dz(_){await Dx`
|
|
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 bz(_){await Dx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Dx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Rx={};C(Rx,{up:()=>sz,down:()=>_E});import{sql as Mx}from"kysely";async function sz(_){await Mx`
|
|
107
107
|
DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
|
|
108
|
-
`.execute(_),await
|
|
108
|
+
`.execute(_),await Mx`
|
|
109
109
|
DELETE FROM connection_aggregations
|
|
110
110
|
WHERE parent_connection_id LIKE 'studio-jira\\_%'
|
|
111
|
-
`.execute(_),await
|
|
111
|
+
`.execute(_),await Mx`
|
|
112
112
|
DELETE FROM connections
|
|
113
113
|
WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
|
|
114
|
-
`.execute(_)}async function
|
|
114
|
+
`.execute(_)}async function _E(){}var Bx={};C(Bx,{up:()=>xE,down:()=>uE});import{sql as cT}from"kysely";async function xE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(cT`audience in ('human', 'internal')`)).execute(),await cT`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function uE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Gx={};C(Gx,{up:()=>KE,down:()=>NE});import{sql as CE}from"kysely";async function KE(_){await CE`
|
|
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 NE(){}var Sx={};C(Sx,{up:()=>mE,down:()=>zE,ACTIONS:()=>Ox});import{sql as F}from"kysely";var Ox=["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"],TE=Ox.filter((_)=>_!=="sprint_changed");async function mE(_){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 hT(_,Ox)}async function zE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await hT(_,TE),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 hT(_,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 fx={};C(fx,{up:()=>$E,planOrgSiteProjectLinks:()=>aT,down:()=>UE,applyOrgSiteProjectLinks:()=>rT});import{sql as P}from"kysely";var EE="migration-237",tT=1000;async function oT(_){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 aT(_){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 rT(_,x){let u=0;for(let N=0;N<x.length;N+=tT){let K=P.join(x.slice(N,N+tT).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 = ${EE},
|
|
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 $E(_){await P`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await aT(_);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 oT(_);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 rT(_,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 UE(_){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 oT(_);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 Ax={};C(Ax,{up:()=>JE,moveRules:()=>Y,down:()=>PE});import{sql as c}from"kysely";async function JE(_){await Y(_,"task_board_prompts","tbp_","in_progress","in_review"),await Y(_,"task_board_prompts","tbp_","todo","in_progress"),await Y(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await Y(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
|
|
217
217
|
DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
|
|
218
|
-
`.execute(_),await
|
|
218
|
+
`.execute(_),await Y(_,"task_board_column_automations","tbca_","todo","in_progress"),await Y(_,"task_board_column_automations","tbca_","approved","ready_for_deployment"),await Y(_,"task_board_column_automations","tbca_","merged","post_deploy_validation"),await c`
|
|
219
219
|
WITH moved AS (
|
|
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 PE(){}async function Y(_,x,u,N,K){await c`
|
|
245
245
|
DELETE FROM ${c.table(x)} AS src
|
|
246
246
|
WHERE src.column_key = ${N}
|
|
247
247
|
AND EXISTS (
|
|
@@ -255,7 +255,7 @@ var 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 Ix={};C(Ix,{up:()=>XE,down:()=>ZE});import{sql as QE}from"kysely";async function XE(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await Y(_,x,u,"todo","in_progress"),await Y(_,x,u,"approved","ready_for_deployment"),await Y(_,x,u,"merged","post_deploy_validation")}await QE`
|
|
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 ZE(){}var yx={};C(yx,{up:()=>jE,down:()=>LE});import{sql as WE}from"kysely";async function jE(_){await WE`
|
|
283
283
|
WITH restored AS (
|
|
284
284
|
UPDATE task_board_items AS i
|
|
285
285
|
SET status = 'todo', updated_at = now()
|
|
@@ -306,53 +306,53 @@ 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 LE(){}var Vx={};C(Vx,{up:()=>FE,down:()=>YE});import{sql as L}from"kysely";async function FE(_){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 YE(_){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 wx={};C(wx,{up:()=>RE,down:()=>BE,backfillUrlSlugs:()=>G_});import{sql as D}from"kysely";var eT=64,DE=new Set(["new","edit","settings","apps","projects","connections"]);function HE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function ME(_,x){let u=HE(_??"").slice(0,eT).replace(/-+$/,"");return u.length>=2&&!DE.has(u)?u:x}function lT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,eT-u.length).replace(/-+$/,"")}${u}`}async function G_(_){let{rows:x}=await D`
|
|
344
344
|
SELECT id, organization_id, title, connection_type, url_slug
|
|
345
345
|
FROM connections
|
|
346
346
|
ORDER BY organization_id, created_at, id
|
|
347
|
-
`.execute(_),{rows:u}=await
|
|
347
|
+
`.execute(_),{rows:u}=await D`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=ME(m.title,m.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(lT(E,$)))$++;let J=lT(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 D`
|
|
348
348
|
UPDATE connections c
|
|
349
349
|
SET url_slug = v.slug
|
|
350
350
|
FROM unnest(
|
|
351
|
-
${
|
|
352
|
-
${
|
|
351
|
+
${D.val(z.map((E)=>E.id))}::text[],
|
|
352
|
+
${D.val(z.map((E)=>E.slug))}::text[]
|
|
353
353
|
) AS v(id, slug)
|
|
354
354
|
WHERE c.id = v.id AND c.url_slug IS NULL
|
|
355
|
-
`.execute(_)}}async function
|
|
355
|
+
`.execute(_)}}async function RE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
|
|
356
356
|
CREATE TABLE connection_slug_aliases (
|
|
357
357
|
organization_id text NOT NULL,
|
|
358
358
|
slug text NOT NULL,
|
|
@@ -360,24 +360,24 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
360
360
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
361
361
|
PRIMARY KEY (organization_id, slug)
|
|
362
362
|
)
|
|
363
|
-
`.execute(_),await
|
|
363
|
+
`.execute(_),await D`
|
|
364
364
|
CREATE INDEX idx_connection_slug_aliases_connection
|
|
365
365
|
ON connection_slug_aliases (connection_id)
|
|
366
|
-
`.execute(_),await
|
|
366
|
+
`.execute(_),await G_(_),await D`
|
|
367
367
|
CREATE UNIQUE INDEX idx_connections_org_url_slug
|
|
368
368
|
ON connections (organization_id, url_slug)
|
|
369
|
-
`.execute(_)}async function
|
|
369
|
+
`.execute(_)}async function BE(_){await D`DROP TABLE connection_slug_aliases`.execute(_),await D`DROP INDEX idx_connections_org_url_slug`.execute(_),await D`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var kx={};C(kx,{up:()=>GE,down:()=>OE});async function GE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function OE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var nx={};C(nx,{up:()=>SE,down:()=>fE});async function SE(_){await G_(_)}async function fE(){}var vx={};C(vx,{up:()=>AE,down:()=>IE});import{sql as O_}from"kysely";async function AE(_){await O_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await O_`
|
|
370
370
|
CREATE UNIQUE INDEX idx_automations_org_system_key
|
|
371
371
|
ON automations (organization_id, system_key)
|
|
372
372
|
WHERE system_key IS NOT NULL
|
|
373
|
-
`.execute(_)}async function
|
|
373
|
+
`.execute(_)}async function IE(_){await O_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await O_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var px={};C(px,{up:()=>yE,down:()=>VE});import{sql as m_}from"kysely";async function yE(_){await m_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await m_`
|
|
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 VE(_){await m_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await m_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await m_`
|
|
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 gx={};C(gx,{up:()=>wE,down:()=>vE});import{sql as H}from"kysely";async function wE(_){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}, ${kE(K)}, true,
|
|
408
|
+
${K.created_by}, ${JSON.stringify(nE(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 kE(_){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 nE(_){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 vE(_){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 qx={};C(qx,{up:()=>pE,down:()=>gE});import{sql as z_}from"kysely";async function pE(_){await z_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await z_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function gE(_){await z_`
|
|
422
422
|
CREATE TABLE IF NOT EXISTS task_board_column_automations (
|
|
423
423
|
id text PRIMARY KEY,
|
|
424
424
|
organization_id text NOT NULL,
|
|
@@ -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 z_`
|
|
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 z_`
|
|
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,30 @@ 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 ix={};C(ix,{up:()=>qE,down:()=>iE});import{sql as S_}from"kysely";async function qE(_){await S_`
|
|
449
449
|
ALTER TABLE task_board_items
|
|
450
450
|
ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
|
|
451
451
|
REFERENCES connections(id) ON DELETE SET NULL
|
|
452
|
-
`.execute(_),await
|
|
452
|
+
`.execute(_),await S_`
|
|
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 iE(_){await S_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await S_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var cx={};C(cx,{up:()=>cE,down:()=>hE});async function cE(_){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 hE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var hx={};C(hx,{up:()=>tE,down:()=>oE});async function tE(_){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 oE(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var tx={};C(tx,{up:()=>aE,down:()=>rE});import{sql as r}from"kysely";var f_=["linked_chat_run"];async function dT(_){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 bT(_,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 aE(_){let x=await dT(_);if(f_.every((u)=>x.has(u)))return;for(let u of f_)x.add(u);await bT(_,x)}async function rE(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(f_)})`.execute(_);let x=await dT(_);for(let u of f_)x.delete(u);await bT(_,x)}var ox={};C(ox,{up:()=>lE,down:()=>eE});import{sql as l}from"kysely";var A_=["board_pr_merged","chat_pr_opened"];async function sT(_){let{rows:x}=await l`
|
|
464
|
+
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
465
|
+
WHERE conname = 'chk_trigger_type'
|
|
466
|
+
AND conrelid = 'automation_triggers'::regclass
|
|
467
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function _m(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
|
|
468
|
+
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
469
|
+
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
470
|
+
`.execute(_)}async function lE(_){let x=await sT(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await _m(_,x)}async function eE(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(A_)})`.execute(_);let x=await sT(_);for(let u of A_)x.delete(u);await _m(_,x)}var ax={};C(ax,{up:()=>bE,down:()=>sE});import{sql as dE}from"kysely";async function bE(_){await dE`ALTER TABLE organization_settings
|
|
471
|
+
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function sE(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var rx={};C(rx,{up:()=>_0,down:()=>x0});import{sql as xm}from"kysely";async function _0(_){await xm`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function x0(_){await xm`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var lx={};C(lx,{up:()=>u0,down:()=>C0});import{sql as O}from"kysely";async function u0(_){await O`
|
|
458
472
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
459
473
|
RETURNS jsonb AS $fn$
|
|
460
474
|
BEGIN
|
|
@@ -528,7 +542,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
528
542
|
|| '/' ||
|
|
529
543
|
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
|
|
530
544
|
) = 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
|
|
545
|
+
`.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function C0(_){await O`
|
|
532
546
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
533
547
|
RETURNS jsonb AS $fn$
|
|
534
548
|
BEGIN
|
|
@@ -555,17 +569,17 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
555
569
|
)::text
|
|
556
570
|
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
557
571
|
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
|
|
572
|
+
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var dx={};C(dx,{up:()=>K0,down:()=>N0});import{sql as ex}from"kysely";async function K0(_){await ex`ALTER TABLE git_provider_accounts
|
|
559
573
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
560
574
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
561
575
|
CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
|
|
562
576
|
ADD CONSTRAINT git_provider_accounts_cli_check
|
|
563
577
|
CHECK (auth_kind <> 'github_cli' OR
|
|
564
|
-
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function
|
|
578
|
+
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function N0(_){await ex`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await ex`ALTER TABLE git_provider_accounts
|
|
565
579
|
DROP CONSTRAINT git_provider_accounts_cli_check,
|
|
566
580
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
567
581
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
568
|
-
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var
|
|
582
|
+
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var bx={};C(bx,{up:()=>T0,down:()=>m0});import{sql as um}from"kysely";async function T0(_){await um`
|
|
569
583
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
570
584
|
SELECT
|
|
571
585
|
'org_user_fs',
|
|
@@ -579,9 +593,9 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
579
593
|
END,
|
|
580
594
|
now()
|
|
581
595
|
ON CONFLICT (id) DO NOTHING
|
|
582
|
-
`.execute(_)}async function
|
|
596
|
+
`.execute(_)}async function m0(_){await um`
|
|
583
597
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
584
|
-
`.execute(_)}var
|
|
598
|
+
`.execute(_)}var sx={};C(sx,{up:()=>z0,down:()=>E0});async function z0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function E0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var _u={};C(_u,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function U0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var xu={};C(xu,{up:()=>P0,down:()=>Q0});import{sql as E_}from"kysely";var J0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function Cm(_,x){for(let{table:u,column:N}of J0){let K=`${u}_${N}_check`,T=x.map((m)=>`'${m}'`).join(", ");await E_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await E_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${T}))`).execute(_)}}async function P0(_){await Cm(_,["github","gitlab","bitbucket"])}async function Q0(_){await E_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await Cm(_,["github","gitlab"])}var uu={};C(uu,{up:()=>X0,down:()=>Z0});import{sql as I_}from"kysely";async function X0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(I_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(I_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(I_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(I_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function Z0(_){await _.schema.dropTable("experiments").execute()}var Cu={};C(Cu,{up:()=>j0,down:()=>L0});import{sql as W0}from"kysely";async function j0(_){await W0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function L0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Nu={};C(Nu,{up:()=>Y0,down:()=>D0,ACTIONS:()=>Ku});import{sql as $_}from"kysely";var Ku=["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"],F0=Ku.filter((_)=>_!=="duplicate_reported");async function Y0(_){await Km(_,Ku)}async function D0(_){await $_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await Km(_,F0)}async function Km(_,x){await $_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await $_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${$_.join(x.map((u)=>$_.lit(u)))}))`.execute(_)}var Tu={};C(Tu,{up:()=>H0,down:()=>M0});async function H0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function M0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var mu={};C(mu,{up:()=>R0,down:()=>B0});async function R0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function B0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var zu={};C(zu,{up:()=>O0,down:()=>S0});import{sql as G0}from"kysely";async function O0(_){await G0`
|
|
585
599
|
CREATE TABLE github_connect_flows (
|
|
586
600
|
id text PRIMARY KEY,
|
|
587
601
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -591,7 +605,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
591
605
|
);
|
|
592
606
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
593
607
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
594
|
-
`.execute(_)}async function
|
|
608
|
+
`.execute(_)}async function S0(_){await _.schema.dropTable("github_connect_flows").execute()}var Eu={};C(Eu,{up:()=>f0,down:()=>A0});async function f0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function A0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var $u={};C($u,{up:()=>I0,down:()=>y0});import{sql as y_}from"kysely";async function I0(_){await y_`
|
|
595
609
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
596
610
|
DECLARE
|
|
597
611
|
metadata_json jsonb;
|
|
@@ -642,24 +656,24 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
642
656
|
AFTER INSERT OR UPDATE OF metadata ON connections
|
|
643
657
|
FOR EACH ROW EXECUTE FUNCTION adopt_legacy_repository();
|
|
644
658
|
UPDATE connections SET metadata = metadata WHERE slug = 'mcp-github';
|
|
645
|
-
`.execute(_),await
|
|
659
|
+
`.execute(_),await y_`
|
|
646
660
|
UPDATE org_repo_sync s SET repository_id = r.id
|
|
647
661
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
648
662
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
649
663
|
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_`
|
|
664
|
+
`.execute(_)}async function y0(_){await y_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await y_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Uu={};C(Uu,{up:()=>V0,down:()=>w0});import{sql as V}from"kysely";async function V0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function w0(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var Ju={};C(Ju,{up:()=>k0,down:()=>n0});import{sql as Nm}from"kysely";async function k0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).execute()}async function n0(_){await _.schema.dropTable("organization_settings").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0});async function v0(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function p0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Qu={};C(Qu,{up:()=>g0,down:()=>q0});async function g0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function q0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Xu={};C(Xu,{up:()=>i0,down:()=>c0});async function i0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function c0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as h0}from"kysely";async function t0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",h0`text`).execute()}async function o0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Wu={};C(Wu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function r0(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var ju={};C(ju,{up:()=>l0,down:()=>e0});import{sql as U_}from"kysely";async function l0(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function e0(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var Lu={};C(Lu,{up:()=>b0,down:()=>s0});import{sql as d0}from"kysely";async function b0(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function s0(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(d0`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Fu={};C(Fu,{up:()=>_$,down:()=>x$});import{sql as V_}from"kysely";async function _$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await V_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function x$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var Yu={};C(Yu,{up:()=>u$,down:()=>C$});async function u$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function C$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Du={};C(Du,{up:()=>K$,down:()=>N$});import{sql as w_}from"kysely";async function K$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await w_`
|
|
651
665
|
UPDATE gateways
|
|
652
666
|
SET tool_selection_mode = CASE
|
|
653
667
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
654
668
|
ELSE 'inclusion'
|
|
655
669
|
END
|
|
656
|
-
`.execute(_),await
|
|
670
|
+
`.execute(_),await w_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function N$(_){await w_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await w_`
|
|
657
671
|
UPDATE gateways
|
|
658
672
|
SET tool_selection_strategy = CASE
|
|
659
673
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
660
674
|
ELSE NULL
|
|
661
675
|
END
|
|
662
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var
|
|
676
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Hu={};C(Hu,{up:()=>T$,down:()=>m$});async function T$(_){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 m$(_){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 Mu={};C(Mu,{up:()=>z$,down:()=>E$});async function z$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function E$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Ru={};C(Ru,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function U$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Bu={};C(Bu,{up:()=>J$,down:()=>P$});async function J$(_){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 P$(_){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 Gu={};C(Gu,{up:()=>X$,down:()=>Z$});import{sql as Q$}from"kysely";async function X$(_){await Q$`
|
|
663
677
|
DELETE FROM downstream_tokens
|
|
664
678
|
WHERE id NOT IN (
|
|
665
679
|
SELECT id FROM (
|
|
@@ -669,7 +683,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
669
683
|
) ranked
|
|
670
684
|
WHERE rn = 1
|
|
671
685
|
)
|
|
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
|
|
686
|
+
`.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function Z$(_){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 Ou={};C(Ou,{up:()=>W$,down:()=>j$});async function W$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function j$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Su={};C(Su,{up:()=>L$,down:()=>F$});import{sql as Tm}from"kysely";async function L$(_){await Tm`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function F$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await Tm`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var fu={};C(fu,{up:()=>Y$,down:()=>D$});async function Y$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function D$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Au={};C(Au,{up:()=>H$,down:()=>M$});import{sql as k_}from"kysely";async function H$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function M$(_){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 Iu={};C(Iu,{up:()=>R$,down:()=>B$});async function R$(_){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 B$(_){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 yu={};C(yu,{up:()=>G$,down:()=>O$});async function G$(_){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 O$(_){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 Vu={};C(Vu,{up:()=>S$,down:()=>f$});import{sql as M}from"kysely";async function S$(_){await M`
|
|
673
687
|
INSERT INTO connections (
|
|
674
688
|
id,
|
|
675
689
|
organization_id,
|
|
@@ -716,7 +730,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
716
730
|
created_at,
|
|
717
731
|
updated_at
|
|
718
732
|
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
|
|
733
|
+
`.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function f$(_){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
734
|
INSERT INTO virtual_mcps (
|
|
721
735
|
id, organization_id, title, description, icon, status,
|
|
722
736
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -726,7 +740,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
726
740
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
727
741
|
FROM connections
|
|
728
742
|
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
|
|
743
|
+
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var wu={};C(wu,{up:()=>A$,down:()=>I$});async function A$(_){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 I$(_){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 ku={};C(ku,{up:()=>y$,down:()=>V$});import{sql as w}from"kysely";async function y$(_){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
744
|
INSERT INTO connection_aggregations_new (
|
|
731
745
|
id, parent_connection_id, child_connection_id,
|
|
732
746
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -735,7 +749,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
735
749
|
id, parent_connection_id, child_connection_id,
|
|
736
750
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
737
751
|
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
|
|
752
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function V$(_){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
753
|
INSERT INTO connection_aggregations_new (
|
|
740
754
|
id, parent_connection_id, child_connection_id,
|
|
741
755
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -744,7 +758,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
744
758
|
id, parent_connection_id, child_connection_id,
|
|
745
759
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
746
760
|
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
|
|
761
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var vu={};C(vu,{up:()=>w$,down:()=>k$});import{sql as nu}from"kysely";async function w$(_){await nu`
|
|
748
762
|
UPDATE connections
|
|
749
763
|
SET connection_url = connection_url || '/management',
|
|
750
764
|
tools = NULL,
|
|
@@ -752,42 +766,42 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
752
766
|
WHERE connection_url LIKE '%/mcp'
|
|
753
767
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
754
768
|
AND app_name = '@deco/management-mcp'
|
|
755
|
-
`.execute(_),await
|
|
769
|
+
`.execute(_),await nu`
|
|
756
770
|
UPDATE connections
|
|
757
771
|
SET tools = NULL,
|
|
758
772
|
updated_at = CURRENT_TIMESTAMP
|
|
759
773
|
WHERE app_name = '@deco/management-mcp'
|
|
760
774
|
AND tools IS NOT NULL
|
|
761
|
-
`.execute(_)}async function
|
|
775
|
+
`.execute(_)}async function k$(_){await nu`
|
|
762
776
|
UPDATE connections
|
|
763
777
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
764
778
|
updated_at = CURRENT_TIMESTAMP
|
|
765
779
|
WHERE connection_url LIKE '%/mcp/management'
|
|
766
780
|
AND app_name = '@deco/management-mcp'
|
|
767
|
-
`.execute(_)}var
|
|
781
|
+
`.execute(_)}var gu={};C(gu,{up:()=>n$,down:()=>v$});import{sql as pu}from"kysely";async function n$(_){await pu`
|
|
768
782
|
UPDATE connections
|
|
769
783
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
770
784
|
tools = NULL,
|
|
771
785
|
updated_at = CURRENT_TIMESTAMP
|
|
772
786
|
WHERE connection_url LIKE '%/mcp/management'
|
|
773
787
|
AND app_name = '@deco/management-mcp'
|
|
774
|
-
`.execute(_),await
|
|
788
|
+
`.execute(_),await pu`
|
|
775
789
|
UPDATE connections
|
|
776
790
|
SET tools = NULL,
|
|
777
791
|
updated_at = CURRENT_TIMESTAMP
|
|
778
792
|
WHERE connection_url LIKE '%/mcp/self'
|
|
779
793
|
AND app_name = '@deco/management-mcp'
|
|
780
794
|
AND tools IS NOT NULL
|
|
781
|
-
`.execute(_)}async function
|
|
795
|
+
`.execute(_)}async function v$(_){await pu`
|
|
782
796
|
UPDATE connections
|
|
783
797
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
784
798
|
updated_at = CURRENT_TIMESTAMP
|
|
785
799
|
WHERE connection_url LIKE '%/mcp/self'
|
|
786
800
|
AND app_name = '@deco/management-mcp'
|
|
787
|
-
`.execute(_)}var
|
|
801
|
+
`.execute(_)}var qu={};C(qu,{up:()=>p$,down:()=>g$});async function p$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function g$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var iu={};C(iu,{up:()=>q$,down:()=>i$});import{sql as mm}from"kysely";async function q$(_){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(mm`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(mm`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 i$(_){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 cu={};C(cu,{up:()=>c$,down:()=>h$});import{sql as J_}from"kysely";async function c$(_){await J_`
|
|
788
802
|
ALTER TABLE connection_aggregations
|
|
789
803
|
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
|
|
804
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function h$(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await J_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await J_`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(J_`CURRENT_TIMESTAMP`)).execute(),await J_`
|
|
791
805
|
INSERT INTO connection_aggregations_new (
|
|
792
806
|
id, parent_connection_id, child_connection_id,
|
|
793
807
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -796,42 +810,42 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
796
810
|
id, parent_connection_id, child_connection_id,
|
|
797
811
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
798
812
|
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
|
|
813
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var hu={};C(hu,{up:()=>l$,down:()=>e$});import{webcrypto as Em}from"crypto";var zm="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var t$=128,h,e;function o$(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*t$),Em.getRandomValues(h),e=0;else if(e+_>h.length)Em.getRandomValues(h),e=0;e+=_}function d(_=21){o$(_|=0);let x="";for(let u=e-_;u<e;u++)x+=zm[h[u]&63];return x}var a$="org-admin",r$="Organization Admin";async function l$(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),K=`proj_${d()}`,T=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:a$,name:r$,description:null,enabled_plugins:T?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function e$(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var tu={};C(tu,{up:()=>d$,down:()=>b$});async function d$(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function b$(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var ou={};C(ou,{up:()=>s$,down:()=>_U});async function s$(_){}async function _U(_){}var au={};C(au,{up:()=>xU,down:()=>uU});async function xU(_){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 uU(_){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 ru={};C(ru,{up:()=>CU,down:()=>KU});import{sql as $m}from"kysely";async function CU(_){await $m`
|
|
800
814
|
UPDATE connections
|
|
801
815
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
802
816
|
tools = NULL,
|
|
803
817
|
updated_at = CURRENT_TIMESTAMP
|
|
804
818
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
805
819
|
AND app_name = 'deco-registry'
|
|
806
|
-
`.execute(_)}async function
|
|
820
|
+
`.execute(_)}async function KU(_){await $m`
|
|
807
821
|
UPDATE connections
|
|
808
822
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
809
823
|
updated_at = CURRENT_TIMESTAMP
|
|
810
824
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
811
825
|
AND app_name = 'deco-registry'
|
|
812
|
-
`.execute(_)}var
|
|
826
|
+
`.execute(_)}var lu={};C(lu,{up:()=>TU,down:()=>mU});import{sql as NU}from"kysely";async function TU(_){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(NU`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 mU(_){await _.schema.dropTable("ai_provider_keys").execute()}var eu={};C(eu,{up:()=>EU,down:()=>$U});import{sql as zU}from"kysely";async function EU(_){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(zU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function $U(_){await _.schema.dropTable("oauth_pkce_states").execute()}var du={};C(du,{up:()=>UU,down:()=>JU});import{sql as p}from"kysely";async function UU(_){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 JU(_){await _.schema.dropIndex("idx_threads_trigger_status").execute(),await _.schema.alterTable("threads").dropColumn("trigger_id").execute(),await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.dropIndex("idx_automation_triggers_event").execute(),await _.schema.dropIndex("idx_automation_triggers_automation").execute(),await _.schema.dropTable("automation_triggers").execute(),await _.schema.dropIndex("idx_automations_active").execute(),await _.schema.dropIndex("idx_automations_org").execute(),await _.schema.dropTable("automations").execute()}var bu={};C(bu,{up:()=>PU,down:()=>QU});async function PU(_){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 QU(_){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 su={};C(su,{up:()=>XU,down:()=>ZU});async function XU(_){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 ZU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var _C={};C(_C,{up:()=>WU,down:()=>jU});import{sql as Um}from"kysely";async function WU(_){await Um`
|
|
813
827
|
UPDATE connections
|
|
814
828
|
SET title = 'CMS MCP',
|
|
815
829
|
tools = NULL,
|
|
816
830
|
updated_at = CURRENT_TIMESTAMP
|
|
817
831
|
WHERE app_name = '@deco/management-mcp'
|
|
818
|
-
`.execute(_)}async function
|
|
832
|
+
`.execute(_)}async function jU(_){await Um`
|
|
819
833
|
UPDATE connections
|
|
820
834
|
SET title = 'Mesh MCP',
|
|
821
835
|
updated_at = CURRENT_TIMESTAMP
|
|
822
836
|
WHERE app_name = '@deco/management-mcp'
|
|
823
|
-
`.execute(_)}var
|
|
837
|
+
`.execute(_)}var xC={};C(xC,{up:()=>LU,down:()=>FU});import{sql as Jm}from"kysely";async function LU(_){await Jm`
|
|
824
838
|
UPDATE connections
|
|
825
839
|
SET title = 'Deco CMS',
|
|
826
840
|
tools = NULL,
|
|
827
841
|
updated_at = CURRENT_TIMESTAMP
|
|
828
842
|
WHERE app_name = '@deco/management-mcp'
|
|
829
|
-
`.execute(_)}async function
|
|
843
|
+
`.execute(_)}async function FU(_){await Jm`
|
|
830
844
|
UPDATE connections
|
|
831
845
|
SET title = 'CMS MCP',
|
|
832
846
|
updated_at = CURRENT_TIMESTAMP
|
|
833
847
|
WHERE app_name = '@deco/management-mcp'
|
|
834
|
-
`.execute(_)}var
|
|
848
|
+
`.execute(_)}var uC={};C(uC,{up:()=>YU,down:()=>DU});async function YU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function DU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var CC={};C(CC,{up:()=>HU,down:()=>MU});async function HU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function MU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var NC={};C(NC,{up:()=>RU,down:()=>BU});import{sql as KC}from"kysely";async function RU(_){await KC`
|
|
835
849
|
UPDATE organization_settings
|
|
836
850
|
SET enabled_plugins = (
|
|
837
851
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -840,7 +854,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
840
854
|
)
|
|
841
855
|
WHERE enabled_plugins IS NOT NULL
|
|
842
856
|
AND enabled_plugins LIKE '%object-storage%'
|
|
843
|
-
`.execute(_),await
|
|
857
|
+
`.execute(_),await KC`
|
|
844
858
|
UPDATE projects
|
|
845
859
|
SET enabled_plugins = (
|
|
846
860
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -849,65 +863,65 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
849
863
|
)
|
|
850
864
|
WHERE enabled_plugins IS NOT NULL
|
|
851
865
|
AND enabled_plugins LIKE '%object-storage%'
|
|
852
|
-
`.execute(_),await
|
|
866
|
+
`.execute(_),await KC`
|
|
853
867
|
DELETE FROM project_plugin_configs
|
|
854
868
|
WHERE plugin_id = 'object-storage'
|
|
855
|
-
`.execute(_)}async function
|
|
869
|
+
`.execute(_)}async function BU(_){}var TC={};C(TC,{up:()=>GU,down:()=>OU});import{sql as Pm}from"kysely";async function GU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await Pm`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function OU(_){await Pm`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var zC={};C(zC,{up:()=>SU,down:()=>fU});import{sql as mC}from"kysely";async function SU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await mC`
|
|
856
870
|
ALTER TABLE connections
|
|
857
871
|
ADD CONSTRAINT chk_connections_subtype
|
|
858
872
|
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
|
|
873
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await mC`
|
|
860
874
|
UPDATE connections
|
|
861
875
|
SET subtype = 'agent'
|
|
862
876
|
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_${
|
|
877
|
+
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,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_${d()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let 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_${d()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function fU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await mC`
|
|
864
878
|
ALTER TABLE connections
|
|
865
879
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
866
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
880
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var EC={};C(EC,{up:()=>IU,down:()=>yU});import{sql as AU}from"kysely";async function IU(_){await AU`
|
|
867
881
|
DELETE FROM connections
|
|
868
882
|
WHERE connection_type = 'VIRTUAL'
|
|
869
883
|
AND subtype = 'project'
|
|
870
884
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
871
|
-
`.execute(_)}async function
|
|
885
|
+
`.execute(_)}async function yU(_){}var $C={};C($C,{up:()=>wU,down:()=>kU});import{sql as VU}from"kysely";async function wU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await VU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function kU(_){await _.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var JC={};C(JC,{up:()=>nU,down:()=>vU});import{sql as UC}from"kysely";async function nU(_){await _.schema.createTable("org_sso_config").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(x)=>x.notNull()).addColumn("client_id","text",(x)=>x.notNull()).addColumn("client_secret","text",(x)=>x.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(x)=>x.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(x)=>x.notNull()).addColumn("enforced","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await _.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await _.schema.createTable("org_sso_sessions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(x)=>x.notNull()).addColumn("expires_at","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function vU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var PC={};C(PC,{up:()=>pU,down:()=>gU});async function pU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function gU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var QC={};C(QC,{up:()=>qU,down:()=>iU});async function qU(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function iU(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var ZC={};C(ZC,{up:()=>hU,down:()=>tU});import{sql as Qm}from"kysely";function XC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function cU(_){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 XC(N)}catch{return XC(_.connection_url)}if(_.title)return XC(_.title);return _.id}async function hU(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await Qm`
|
|
872
886
|
SELECT id, app_name, connection_url, title FROM connections
|
|
873
|
-
`.execute(_);for(let u of x.rows){let N=
|
|
887
|
+
`.execute(_);for(let u of x.rows){let N=cU(u);await Qm`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 tU(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var WC={};C(WC,{up:()=>oU,down:()=>aU});import{sql as P_}from"kysely";async function oU(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await P_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await P_`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 aU(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await P_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await P_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await P_`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 jC={};C(jC,{up:()=>rU,down:()=>lU});async function rU(_){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 lU(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var LC={};C(LC,{up:()=>eU,down:()=>dU});import{sql as n_}from"kysely";async function eU(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await n_`
|
|
874
888
|
UPDATE threads
|
|
875
889
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
876
890
|
WHERE agent_ids IS NOT NULL
|
|
877
891
|
AND agent_ids != '[]'
|
|
878
892
|
AND agent_ids != ''
|
|
879
893
|
AND (agent_ids::jsonb ->> 0) IS NOT NULL
|
|
880
|
-
`.execute(_),await
|
|
894
|
+
`.execute(_),await n_`
|
|
881
895
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
882
896
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
883
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
897
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function dU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await n_`
|
|
884
898
|
UPDATE threads
|
|
885
899
|
SET agent_ids = CASE
|
|
886
900
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
887
901
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
888
902
|
ELSE '[]'
|
|
889
903
|
END
|
|
890
|
-
`.execute(_),await
|
|
904
|
+
`.execute(_),await n_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var FC={};C(FC,{up:()=>bU,down:()=>sU});async function bU(_){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 sU(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var YC={};C(YC,{up:()=>_J,down:()=>xJ});async function _J(_){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 xJ(_){await _.schema.dropTable("kv").execute()}var DC={};C(DC,{up:()=>uJ,down:()=>CJ});async function uJ(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function CJ(_){await _.schema.dropIndex("idx_member_user_org").execute()}var HC={};C(HC,{up:()=>KJ,down:()=>NJ});async function KJ(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function NJ(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var MC={};C(MC,{up:()=>TJ,down:()=>mJ});import{sql as S}from"kysely";async function TJ(_){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 mJ(_){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 RC={};C(RC,{up:()=>zJ,down:()=>EJ});import{sql as b}from"kysely";async function zJ(_){await b`
|
|
891
905
|
ALTER TABLE event_subscriptions
|
|
892
906
|
ALTER COLUMN enabled DROP DEFAULT
|
|
893
|
-
`.execute(_),await
|
|
907
|
+
`.execute(_),await b`
|
|
894
908
|
ALTER TABLE event_subscriptions
|
|
895
909
|
ALTER COLUMN enabled TYPE boolean
|
|
896
910
|
USING enabled::boolean
|
|
897
|
-
`.execute(_),await
|
|
911
|
+
`.execute(_),await b`
|
|
898
912
|
ALTER TABLE event_subscriptions
|
|
899
913
|
ALTER COLUMN enabled SET DEFAULT true
|
|
900
|
-
`.execute(_)}async function
|
|
914
|
+
`.execute(_)}async function EJ(_){await b`
|
|
901
915
|
ALTER TABLE event_subscriptions
|
|
902
916
|
ALTER COLUMN enabled DROP DEFAULT
|
|
903
|
-
`.execute(_),await
|
|
917
|
+
`.execute(_),await b`
|
|
904
918
|
ALTER TABLE event_subscriptions
|
|
905
919
|
ALTER COLUMN enabled TYPE integer
|
|
906
920
|
USING enabled::integer
|
|
907
|
-
`.execute(_),await
|
|
921
|
+
`.execute(_),await b`
|
|
908
922
|
ALTER TABLE event_subscriptions
|
|
909
923
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
910
|
-
`.execute(_)}var
|
|
924
|
+
`.execute(_)}var BC={};C(BC,{up:()=>$J,down:()=>UJ});import{sql as Xm}from"kysely";async function $J(_){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(Xm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Xm`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function UJ(_){await _.schema.dropTable("brand_context").execute()}var GC={};C(GC,{up:()=>JJ,down:()=>PJ});import{sql as Zm}from"kysely";async function JJ(_){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(Zm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Zm`now()`)).execute()}async function PJ(_){await _.schema.dropTable("organization_domains").execute()}var OC={};C(OC,{up:()=>WJ,down:()=>jJ});import{sql as Wm}from"kysely";var v_=new Set(["primary","secondary","accent","background","foreground"]),QJ={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function XJ(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>v_.has(K))){let K={};for(let[T,m]of Object.entries(u)){if(typeof m!=="string")continue;if(v_.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(v_.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(v_.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 ZJ(_){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=QJ[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 WJ(_){let x=await Wm`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=XJ($);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=ZJ($),K=!0}catch{}if(N||K||T){let $=T?JSON.stringify(E):u.metadata;await Wm`
|
|
911
925
|
UPDATE brand_context
|
|
912
926
|
SET
|
|
913
927
|
colors = ${m},
|
|
@@ -915,29 +929,29 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
915
929
|
metadata = ${$},
|
|
916
930
|
updated_at = NOW()
|
|
917
931
|
WHERE id = ${u.id}
|
|
918
|
-
`.execute(_)}}}async function
|
|
932
|
+
`.execute(_)}}}async function jJ(_){}var SC={};C(SC,{up:()=>FJ,down:()=>YJ});import{sql as LJ}from"kysely";async function FJ(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(LJ`'{}'::jsonb`)).execute()}async function YJ(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var fC={};C(fC,{up:()=>DJ,down:()=>HJ});async function DJ(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function HJ(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var AC={};C(AC,{up:()=>MJ,down:()=>RJ});async function MJ(_){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 RJ(_){await _.schema.dropTable("sandbox_runner_state").execute()}var IC={};C(IC,{up:()=>BJ,down:()=>GJ});async function BJ(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function GJ(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var yC={};C(yC,{up:()=>OJ,down:()=>SJ});async function OJ(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function SJ(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var VC={};C(VC,{up:()=>fJ,down:()=>AJ});async function fJ(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function AJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var wC={};C(wC,{up:()=>yJ,down:()=>VJ});import{sql as jm}from"kysely";var IJ=["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 yJ(_){let x=await jm`
|
|
919
933
|
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,...
|
|
934
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...IJ]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await jm`
|
|
921
935
|
UPDATE "organizationRole"
|
|
922
936
|
SET permission = ${z}
|
|
923
937
|
WHERE id = ${u.id}
|
|
924
|
-
`.execute(_)}}async function
|
|
938
|
+
`.execute(_)}}async function VJ(_){}var kC={};C(kC,{up:()=>wJ,down:()=>kJ});async function wJ(_){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 kJ(_){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 nC={};C(nC,{up:()=>nJ,down:()=>vJ});async function nJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function vJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var vC={};C(vC,{up:()=>pJ,down:()=>gJ});import{sql as Q_}from"kysely";async function pJ(_){await Q_`
|
|
925
939
|
UPDATE automations
|
|
926
940
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
927
941
|
WHERE virtual_mcp_id IS NULL
|
|
928
|
-
`.execute(_),await
|
|
942
|
+
`.execute(_),await Q_`
|
|
929
943
|
ALTER TABLE automations
|
|
930
944
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
931
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
945
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function gJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
|
|
932
946
|
UPDATE automations
|
|
933
947
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
934
|
-
`.execute(_),await
|
|
948
|
+
`.execute(_),await Q_`
|
|
935
949
|
ALTER TABLE automations
|
|
936
950
|
ALTER COLUMN agent SET NOT NULL
|
|
937
|
-
`.execute(_),await
|
|
951
|
+
`.execute(_),await Q_`
|
|
938
952
|
ALTER TABLE automations
|
|
939
953
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
940
|
-
`.execute(_)}var
|
|
954
|
+
`.execute(_)}var gC={};C(gC,{up:()=>hJ,reshapeSimpleMode:()=>Lm,inferAutomationTier:()=>Fm,down:()=>tJ,__testing:()=>cJ});var qJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},iJ=["fast","smart","thinking","image","web_research"];function pC(_){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 iJ.some((N)=>(N in u))}function Lm(_){if(pC(_))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 qJ;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 Fm(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Ym(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var cJ={isAlreadyReshapedSimpleMode:pC,isAlreadyReshapedAutomationModels:Ym};async function hJ(_){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(pC(K))continue;let T=Lm(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(Ym(K))continue;let T=Fm(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 tJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var qC={};C(qC,{up:()=>oJ,down:()=>aJ});import{sql as n}from"kysely";async function oJ(_){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
955
|
ALTER TABLE automations
|
|
942
956
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
943
957
|
`.execute(_),await n`
|
|
@@ -959,47 +973,47 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
959
973
|
AND tool_input IS NOT NULL
|
|
960
974
|
)
|
|
961
975
|
)
|
|
962
|
-
`.execute(_)}async function
|
|
976
|
+
`.execute(_)}async function aJ(_){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
977
|
ALTER TABLE automations
|
|
964
978
|
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
|
|
979
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var iC={};C(iC,{up:()=>lJ,down:()=>eJ});import{sql as Dm}from"kysely";var rJ=new Set(["host","docker","agent-sandbox"]);async function lJ(_){let x=await Dm`
|
|
966
980
|
SELECT id, metadata FROM "connections"
|
|
967
981
|
WHERE connection_type = 'VIRTUAL'
|
|
968
982
|
AND metadata IS NOT NULL
|
|
969
983
|
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[
|
|
984
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let 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&&!rJ.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 Dm`
|
|
971
985
|
UPDATE "connections"
|
|
972
986
|
SET metadata = ${z}
|
|
973
987
|
WHERE id = ${u.id}
|
|
974
|
-
`.execute(_)}}async function
|
|
988
|
+
`.execute(_)}}async function eJ(_){}var cC={};C(cC,{up:()=>dJ,down:()=>bJ});import{sql as X_}from"kysely";async function dJ(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(X_`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(X_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(X_`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await X_`
|
|
975
989
|
CREATE INDEX async_research_jobs_active_idx
|
|
976
990
|
ON async_research_jobs (status, last_polled_at)
|
|
977
991
|
WHERE status IN ('pending', 'polling')
|
|
978
|
-
`.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await
|
|
992
|
+
`.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await X_`
|
|
979
993
|
ALTER TABLE async_research_jobs
|
|
980
994
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
981
995
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
982
|
-
`.execute(_)}async function
|
|
996
|
+
`.execute(_)}async function bJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var hC={};C(hC,{up:()=>sJ,down:()=>_P});async function sJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function _P(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var tC={};C(tC,{up:()=>xP,down:()=>uP});import{sql as s}from"kysely";async function xP(_){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
997
|
ALTER TABLE secrets
|
|
984
998
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
985
|
-
`.execute(_),await
|
|
999
|
+
`.execute(_),await s`
|
|
986
1000
|
ALTER TABLE secrets
|
|
987
1001
|
ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
|
|
988
1002
|
(scope = 'user' AND user_id IS NOT NULL)
|
|
989
1003
|
OR (scope = 'organization' AND user_id IS NULL)
|
|
990
1004
|
)
|
|
991
|
-
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await
|
|
1005
|
+
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await s`
|
|
992
1006
|
CREATE UNIQUE INDEX idx_secrets_user_name
|
|
993
1007
|
ON secrets (organization_id, user_id, lower(name))
|
|
994
1008
|
WHERE scope = 'user'
|
|
995
|
-
`.execute(_),await
|
|
1009
|
+
`.execute(_),await s`
|
|
996
1010
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
997
1011
|
ON secrets (organization_id, lower(name))
|
|
998
1012
|
WHERE scope = 'organization'
|
|
999
|
-
`.execute(_)}async function
|
|
1013
|
+
`.execute(_)}async function uP(_){await _.schema.dropTable("secrets").execute()}var oC={};C(oC,{up:()=>CP,down:()=>KP});async function CP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function KP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var aC={};C(aC,{up:()=>TP,down:()=>mP});import{sql as NP}from"kysely";async function TP(_){await NP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function mP(_){}var rC={};C(rC,{up:()=>zP,down:()=>EP});import{sql as p_}from"kysely";async function zP(_){await p_`
|
|
1000
1014
|
ALTER TABLE sandbox_runner_state
|
|
1001
1015
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
1002
|
-
`.execute(_),await
|
|
1016
|
+
`.execute(_),await p_`
|
|
1003
1017
|
DO $$ BEGIN
|
|
1004
1018
|
UPDATE virtualmcps v
|
|
1005
1019
|
SET metadata = jsonb_set(
|
|
@@ -1034,10 +1048,10 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1034
1048
|
EXCEPTION WHEN undefined_table THEN
|
|
1035
1049
|
NULL;
|
|
1036
1050
|
END; $$
|
|
1037
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
1051
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function EP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await p_`
|
|
1038
1052
|
ALTER TABLE sandbox_runner_state
|
|
1039
1053
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
1040
|
-
`.execute(_),await
|
|
1054
|
+
`.execute(_),await p_`
|
|
1041
1055
|
DO $$ BEGIN
|
|
1042
1056
|
UPDATE virtualmcps v
|
|
1043
1057
|
SET metadata = jsonb_set(
|
|
@@ -1072,7 +1086,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1072
1086
|
EXCEPTION WHEN undefined_table THEN
|
|
1073
1087
|
NULL;
|
|
1074
1088
|
END; $$
|
|
1075
|
-
`.execute(_)}var
|
|
1089
|
+
`.execute(_)}var lC={};C(lC,{up:()=>$P,down:()=>UP});import{sql as Hm}from"kysely";async function $P(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await Hm`
|
|
1076
1090
|
DO $$ BEGIN
|
|
1077
1091
|
UPDATE virtualmcps v
|
|
1078
1092
|
SET metadata = jsonb_set(
|
|
@@ -1111,7 +1125,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1111
1125
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
1112
1126
|
NULL;
|
|
1113
1127
|
END; $$
|
|
1114
|
-
`.execute(_)}async function
|
|
1128
|
+
`.execute(_)}async function UP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await Hm`
|
|
1115
1129
|
DO $$ BEGIN
|
|
1116
1130
|
UPDATE virtualmcps v
|
|
1117
1131
|
SET metadata = jsonb_set(
|
|
@@ -1144,7 +1158,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1144
1158
|
EXCEPTION WHEN undefined_table THEN
|
|
1145
1159
|
NULL;
|
|
1146
1160
|
END; $$
|
|
1147
|
-
`.execute(_)}var
|
|
1161
|
+
`.execute(_)}var eC={};C(eC,{up:()=>JP,down:()=>PP});import{sql as Mm}from"kysely";async function JP(_){await Mm`
|
|
1148
1162
|
UPDATE connections c
|
|
1149
1163
|
SET metadata = (
|
|
1150
1164
|
jsonb_set(
|
|
@@ -1188,7 +1202,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1188
1202
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
1189
1203
|
WHERE entry ? 'vmId'
|
|
1190
1204
|
);
|
|
1191
|
-
`.execute(_),await
|
|
1205
|
+
`.execute(_),await Mm`
|
|
1192
1206
|
UPDATE connections c
|
|
1193
1207
|
SET metadata = (
|
|
1194
1208
|
jsonb_set(
|
|
@@ -1242,14 +1256,14 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1242
1256
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1243
1257
|
WHERE inner_entry ? 'runnerKind'
|
|
1244
1258
|
);
|
|
1245
|
-
`.execute(_)}async function
|
|
1259
|
+
`.execute(_)}async function PP(_){}var dC={};C(dC,{up:()=>XP,down:()=>ZP});import{sql as QP}from"kysely";async function XP(_){await QP`
|
|
1246
1260
|
DELETE FROM ai_provider_keys
|
|
1247
1261
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
1248
|
-
`.execute(_)}async function
|
|
1262
|
+
`.execute(_)}async function ZP(_){}var bC={};C(bC,{up:()=>WP,down:()=>jP});import{sql as g_}from"kysely";async function WP(_){await g_`
|
|
1249
1263
|
UPDATE sandbox_runner_state
|
|
1250
1264
|
SET sandbox_provider_kind = 'desktop'
|
|
1251
1265
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1252
|
-
`.execute(_),await
|
|
1266
|
+
`.execute(_),await g_`
|
|
1253
1267
|
UPDATE connections c
|
|
1254
1268
|
SET metadata = (
|
|
1255
1269
|
jsonb_set(
|
|
@@ -1292,7 +1306,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1292
1306
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1293
1307
|
WHERE kind_key = 'remote-user'
|
|
1294
1308
|
);
|
|
1295
|
-
`.execute(_),await
|
|
1309
|
+
`.execute(_),await g_`
|
|
1296
1310
|
UPDATE connections c
|
|
1297
1311
|
SET metadata = (
|
|
1298
1312
|
jsonb_set(
|
|
@@ -1339,17 +1353,17 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1339
1353
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1340
1354
|
WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
|
|
1341
1355
|
);
|
|
1342
|
-
`.execute(_),await
|
|
1356
|
+
`.execute(_),await g_`
|
|
1343
1357
|
UPDATE threads
|
|
1344
1358
|
SET sandbox_provider_kind = 'desktop'
|
|
1345
1359
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1346
|
-
`.execute(_)}async function
|
|
1360
|
+
`.execute(_)}async function jP(_){}var sC={};C(sC,{up:()=>LP,down:()=>FP});import{sql as Z_}from"kysely";async function LP(_){await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function FP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await Z_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var _K={};C(_K,{up:()=>YP,down:()=>DP});import{sql as Rm}from"kysely";async function YP(_){await Rm`
|
|
1347
1361
|
ALTER TABLE organization_domains
|
|
1348
1362
|
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
|
|
1363
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function DP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await Rm`
|
|
1350
1364
|
ALTER TABLE organization_domains
|
|
1351
1365
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
1352
|
-
`.execute(_)}var
|
|
1366
|
+
`.execute(_)}var xK={};C(xK,{up:()=>HP,down:()=>MP});import{sql as q_}from"kysely";async function HP(_){await q_`
|
|
1353
1367
|
UPDATE sandbox_runner_state
|
|
1354
1368
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
1355
1369
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -1359,7 +1373,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1359
1373
|
ELSE sandbox_provider_kind
|
|
1360
1374
|
END
|
|
1361
1375
|
WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
|
|
1362
|
-
`.execute(_),await
|
|
1376
|
+
`.execute(_),await q_`
|
|
1363
1377
|
UPDATE connections c
|
|
1364
1378
|
SET metadata = (
|
|
1365
1379
|
(c.metadata::jsonb - 'vmMap')
|
|
@@ -1368,7 +1382,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1368
1382
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1369
1383
|
AND c.metadata IS NOT NULL
|
|
1370
1384
|
AND c.metadata::jsonb ? 'vmMap'
|
|
1371
|
-
`.execute(_),await
|
|
1385
|
+
`.execute(_),await q_`
|
|
1372
1386
|
UPDATE connections c
|
|
1373
1387
|
SET metadata = (
|
|
1374
1388
|
jsonb_set(
|
|
@@ -1429,7 +1443,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1429
1443
|
WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
|
|
1430
1444
|
OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
|
|
1431
1445
|
);
|
|
1432
|
-
`.execute(_),await
|
|
1446
|
+
`.execute(_),await q_`
|
|
1433
1447
|
UPDATE connections c
|
|
1434
1448
|
SET metadata = REPLACE(
|
|
1435
1449
|
REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
|
|
@@ -1438,19 +1452,19 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1438
1452
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1439
1453
|
AND c.metadata IS NOT NULL
|
|
1440
1454
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
1441
|
-
`.execute(_)}async function
|
|
1455
|
+
`.execute(_)}async function MP(_){}var uK={};C(uK,{up:()=>BP,down:()=>GP});import{sql as Bm}from"kysely";var RP=["GLOBAL_SEARCH"];async function BP(_){let x=await Bm`
|
|
1442
1456
|
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,...
|
|
1457
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...RP]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await Bm`
|
|
1444
1458
|
UPDATE "organizationRole"
|
|
1445
1459
|
SET permission = ${z}
|
|
1446
1460
|
WHERE id = ${u.id}
|
|
1447
|
-
`.execute(_)}}async function
|
|
1461
|
+
`.execute(_)}}async function GP(_){}var KK={};C(KK,{up:()=>OP,down:()=>SP});import{sql as CK}from"kysely";async function OP(_){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(CK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(CK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await CK`
|
|
1448
1462
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
1449
1463
|
ON org_file_configs (organization_id, lower(name))
|
|
1450
|
-
`.execute(_)}async function
|
|
1464
|
+
`.execute(_)}async function SP(_){await _.schema.dropTable("org_file_configs").execute()}var NK={};C(NK,{up:()=>fP,down:()=>AP});import{sql as v}from"kysely";async function fP(_){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
1465
|
ALTER TABLE automations
|
|
1452
1466
|
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
|
|
1467
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function AP(_){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
1468
|
ALTER TABLE automations
|
|
1455
1469
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
1456
1470
|
`.execute(_),await v`
|
|
@@ -1472,25 +1486,25 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1472
1486
|
AND tool_input IS NOT NULL
|
|
1473
1487
|
)
|
|
1474
1488
|
)
|
|
1475
|
-
`.execute(_)}var
|
|
1489
|
+
`.execute(_)}var TK={};C(TK,{up:()=>IP,down:()=>yP});async function IP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function yP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var zK={};C(zK,{up:()=>VP,down:()=>wP});import{sql as mK}from"kysely";var i_="local-docker";async function VP(_){await mK`delete from sandbox_runner_state where sandbox_provider_kind = ${i_}`.execute(_);let x=await mK`
|
|
1476
1490
|
SELECT id, metadata FROM "connections"
|
|
1477
1491
|
WHERE connection_type = 'VIRTUAL'
|
|
1478
1492
|
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[
|
|
1493
|
+
AND metadata LIKE ${"%"+i_+"%"}
|
|
1494
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let 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(i_ in X){T=!0;let y={...X};if(delete y[i_],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 mK`
|
|
1481
1495
|
UPDATE "connections"
|
|
1482
1496
|
SET metadata = ${z}
|
|
1483
1497
|
WHERE id = ${u.id}
|
|
1484
|
-
`.execute(_)}}async function
|
|
1498
|
+
`.execute(_)}}async function wP(_){}var EK={};C(EK,{up:()=>kP,down:()=>nP});import{sql as c_}from"kysely";async function kP(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await c_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await c_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await c_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await c_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function nP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var $K={};C($K,{up:()=>vP,down:()=>pP});async function vP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function pP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var UK={};C(UK,{up:()=>gP,down:()=>qP});async function gP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function qP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var JK={};C(JK,{up:()=>iP,down:()=>cP});async function iP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function cP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var PK={};C(PK,{up:()=>hP,down:()=>tP});async function hP(_){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 tP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var QK={};C(QK,{up:()=>oP,down:()=>aP});async function oP(_){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 aP(_){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 ZK={};C(ZK,{up:()=>lP,down:()=>eP});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function XK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function h_(_){if(!__(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function rP(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[T,m]of Object.entries(_)){if(!__(m)){K[T]=m;continue}let z={};for(let[E,$]of Object.entries(m)){if(!__($)){z[E]=$;continue}let J={};for(let[j,X]of Object.entries($)){if(j===x){if(N=!0,!(u in $))J[u]=XK(X,x,u);else if(!h_($[u])&&h_(X))J[u]=XK(X,x,u);continue}let y=XK(X,x,u);if(y!==X)N=!0;if(j===u&&j in J&&h_(J[j])&&!h_(y))continue;J[j]=y}z[E]=J}K[T]=z}return{sandboxMap:K,changed:N}}async function Gm(_,x,u){let N=await k`
|
|
1485
1499
|
SELECT id, metadata FROM connections
|
|
1486
1500
|
WHERE connection_type = 'VIRTUAL'
|
|
1487
1501
|
AND metadata IS NOT NULL
|
|
1488
1502
|
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=
|
|
1503
|
+
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)}catch{continue}let m=rP(T.sandboxMap,x,u);if(!m?.changed)continue;T.sandboxMap=m.sandboxMap,await k`
|
|
1490
1504
|
UPDATE connections
|
|
1491
1505
|
SET metadata = ${JSON.stringify(T)}
|
|
1492
1506
|
WHERE id = ${K.id}
|
|
1493
|
-
`.execute(_)}}async function
|
|
1507
|
+
`.execute(_)}}async function lP(_){await k`
|
|
1494
1508
|
UPDATE threads
|
|
1495
1509
|
SET sandbox_provider_kind = ${A}
|
|
1496
1510
|
WHERE sandbox_provider_kind = ${f}
|
|
@@ -1519,7 +1533,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1519
1533
|
UPDATE sandbox_runner_state
|
|
1520
1534
|
SET sandbox_provider_kind = ${A}
|
|
1521
1535
|
WHERE sandbox_provider_kind = ${f}
|
|
1522
|
-
`.execute(_),await
|
|
1536
|
+
`.execute(_),await Gm(_,f,A)}async function eP(_){await k`
|
|
1523
1537
|
UPDATE threads
|
|
1524
1538
|
SET sandbox_provider_kind = ${f}
|
|
1525
1539
|
WHERE sandbox_provider_kind = ${A}
|
|
@@ -1548,7 +1562,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1548
1562
|
UPDATE sandbox_runner_state
|
|
1549
1563
|
SET sandbox_provider_kind = ${f}
|
|
1550
1564
|
WHERE sandbox_provider_kind = ${A}
|
|
1551
|
-
`.execute(_),await
|
|
1565
|
+
`.execute(_),await Gm(_,A,f)}var WK={};C(WK,{up:()=>dP,down:()=>bP});import{sql as g}from"kysely";async function dP(_){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
1566
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1553
1567
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1554
1568
|
WHERE deleted_at IS NULL
|
|
@@ -1556,7 +1570,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1556
1570
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1557
1571
|
ON org_fs_entry (organization_id, volume, size)
|
|
1558
1572
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1559
|
-
`.execute(_)}async function
|
|
1573
|
+
`.execute(_)}async function bP(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var jK={};C(jK,{up:()=>sP,down:()=>_Q});async function sP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function _Q(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var LK={};C(LK,{up:()=>xQ,down:()=>uQ});import{sql as Om}from"kysely";async function xQ(_){await Om`
|
|
1560
1574
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1561
1575
|
SELECT
|
|
1562
1576
|
'org_orgfs_public_skills',
|
|
@@ -1570,13 +1584,13 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1570
1584
|
END,
|
|
1571
1585
|
now()
|
|
1572
1586
|
ON CONFLICT (id) DO NOTHING
|
|
1573
|
-
`.execute(_)}async function
|
|
1587
|
+
`.execute(_)}async function uQ(_){await Om`
|
|
1574
1588
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1575
|
-
`.execute(_)}var
|
|
1589
|
+
`.execute(_)}var FK={};C(FK,{up:()=>CQ,down:()=>KQ});async function CQ(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function KQ(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var YK={};C(YK,{up:()=>NQ,down:()=>TQ});import{sql as Sm}from"kysely";async function NQ(_){await Sm`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function TQ(_){await Sm`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var DK={};C(DK,{up:()=>zQ,down:()=>EQ});import{sql as mQ}from"kysely";async function zQ(_){await mQ`
|
|
1576
1590
|
UPDATE downstream_tokens
|
|
1577
1591
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1578
1592
|
WHERE "expiresAt" IS NULL
|
|
1579
|
-
`.execute(_)}async function
|
|
1593
|
+
`.execute(_)}async function EQ(_){}var HK={};C(HK,{up:()=>$Q,down:()=>UQ});async function $Q(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function UQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var MK={};C(MK,{up:()=>JQ,down:()=>PQ});async function JQ(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function PQ(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var RK={};C(RK,{up:()=>QQ,down:()=>XQ});async function QQ(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function XQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var BK={};C(BK,{up:()=>ZQ,down:()=>WQ});async function ZQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function WQ(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var GK={};C(GK,{up:()=>jQ,down:()=>LQ});async function jQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function LQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var OK={};C(OK,{up:()=>FQ,down:()=>YQ});import{sql as fm}from"kysely";async function FQ(_){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(fm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(fm`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function YQ(_){await _.schema.dropTable("org_sites").execute()}var SK={};C(SK,{up:()=>DQ,down:()=>HQ});async function DQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function HQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var fK={};C(fK,{up:()=>MQ,down:()=>RQ});import{sql as R}from"kysely";async function MQ(_){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
1594
|
UPDATE organization_domains
|
|
1581
1595
|
SET
|
|
1582
1596
|
id = gen_random_uuid()::text,
|
|
@@ -1585,18 +1599,18 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1585
1599
|
verification_method = 'email',
|
|
1586
1600
|
verified_at = created_at
|
|
1587
1601
|
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
|
|
1602
|
+
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function RQ(_){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
1603
|
UPDATE organization_domains
|
|
1590
1604
|
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
|
|
1605
|
+
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var AK={};C(AK,{up:()=>BQ,down:()=>GQ});import{sql as t_}from"kysely";async function BQ(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(t_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(t_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t_`now()`)).execute(),await t_`
|
|
1592
1606
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1593
1607
|
ON organization_join_requests (organization_id, user_id)
|
|
1594
1608
|
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
|
|
1609
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function GQ(_){await _.schema.dropTable("organization_join_requests").execute()}var IK={};C(IK,{up:()=>OQ,down:()=>SQ});async function OQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function SQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var yK={};C(yK,{up:()=>fQ,down:()=>AQ});async function fQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function AQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var kK={};C(kK,{up:()=>VQ,splitWebResearchTier:()=>wK,down:()=>wQ,__testing:()=>yQ});function IQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function VK(_){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 wK(_){if(!_||VK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,T=null,m=null;if(u)if(IQ(u.modelId))m=u;else T=u;return{..._,tiers:{...K,web_search:T,deep_research:m}}}var yQ={splitWebResearchTier:wK,isAlreadySplit:VK};async function VQ(_){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(VK(N))continue;let K=wK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function wQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var nK={};C(nK,{up:()=>kQ,down:()=>nQ});import{sql as W_}from"kysely";async function kQ(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await W_`
|
|
1596
1610
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1597
1611
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1598
1612
|
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(
|
|
1613
|
+
`.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function nQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var vK={};C(vK,{up:()=>vQ,down:()=>pQ});async function vQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function pQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var pK={};C(pK,{up:()=>gQ,down:()=>qQ});import{sql as t}from"kysely";async function gQ(_){await t`
|
|
1600
1614
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1601
1615
|
RETURNS jsonb AS $fn$
|
|
1602
1616
|
BEGIN
|
|
@@ -1655,7 +1669,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1655
1669
|
BEFORE INSERT ON connection_aggregations
|
|
1656
1670
|
FOR EACH ROW
|
|
1657
1671
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1658
|
-
`.execute(_)}async function
|
|
1672
|
+
`.execute(_)}async function qQ(_){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 qK={};C(qK,{up:()=>iQ,down:()=>cQ});import{sql as gK}from"kysely";async function iQ(_){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(gK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(gK`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(gK`false`)).execute()}async function cQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var iK={};C(iK,{up:()=>hQ,down:()=>tQ});async function hQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function tQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var cK={};C(cK,{up:()=>oQ,down:()=>aQ});async function oQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function aQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var hK={};C(hK,{up:()=>rQ,down:()=>lQ});async function rQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function lQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var tK={};C(tK,{up:()=>dQ,down:()=>bQ});import{sql as eQ}from"kysely";async function dQ(_){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(eQ`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 bQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var oK={};C(oK,{up:()=>sQ,down:()=>_X});async function sQ(_){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 _X(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var aK={};C(aK,{up:()=>uX,down:()=>CX});import{sql as xX}from"kysely";async function uX(_){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(xX`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 CX(_){await _.schema.dropTable("task_board_item_prs").execute()}var rK={};C(rK,{up:()=>NX,down:()=>TX});import{sql as KX}from"kysely";async function NX(_){await KX`
|
|
1659
1673
|
DELETE FROM member
|
|
1660
1674
|
WHERE id IN (
|
|
1661
1675
|
SELECT id FROM (
|
|
@@ -1674,38 +1688,38 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1674
1688
|
) ranked
|
|
1675
1689
|
WHERE ranked.rn > 1
|
|
1676
1690
|
)
|
|
1677
|
-
`.execute(_)}async function
|
|
1691
|
+
`.execute(_)}async function TX(_){}var lK={};C(lK,{up:()=>mX,down:()=>zX});async function mX(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function zX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var eK={};C(eK,{up:()=>EX,down:()=>$X});async function EX(_){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 $X(_){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 dK={};C(dK,{up:()=>JX,down:()=>PX});import{sql as UX}from"kysely";async function JX(_){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(UX`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 PX(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var bK={};C(bK,{up:()=>XX,down:()=>ZX});import{sql as QX}from"kysely";async function XX(_){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(QX`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 ZX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var sK={};C(sK,{up:()=>WX,down:()=>jX});import{sql as o_}from"kysely";async function WX(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",o_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",o_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function jX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var _N={};C(_N,{up:()=>LX,down:()=>FX});import{sql as a_}from"kysely";async function LX(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await a_`
|
|
1678
1692
|
insert into organization_billing (organization_id, legacy)
|
|
1679
1693
|
select id, true from organization
|
|
1680
1694
|
on conflict (organization_id) do nothing
|
|
1681
|
-
`.execute(_)}async function
|
|
1695
|
+
`.execute(_)}async function FX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var xN={};C(xN,{up:()=>YX,down:()=>DX});import{sql as Am}from"kysely";async function YX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Am`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(Am`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function DX(_){await _.schema.dropTable("seat_change_log").execute()}var uN={};C(uN,{up:()=>HX,down:()=>MX});async function HX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function MX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var CN={};C(CN,{up:()=>RX,down:()=>BX});import{sql as Im}from"kysely";async function RX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await Im`
|
|
1682
1696
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1683
1697
|
on organization_billing (stripe_subscription_id)
|
|
1684
1698
|
where stripe_subscription_id is not null
|
|
1685
|
-
`.execute(_)}async function
|
|
1699
|
+
`.execute(_)}async function BX(_){await Im`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var KN={};C(KN,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function OX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var NN={};C(NN,{up:()=>SX,down:()=>fX});import{sql as ym}from"kysely";async function SX(_){await ym`
|
|
1686
1700
|
create index idx_org_billing_benefits_pending
|
|
1687
1701
|
on organization_billing (updated_at)
|
|
1688
1702
|
where benefits_reference_id is not null
|
|
1689
|
-
`.execute(_)}async function
|
|
1703
|
+
`.execute(_)}async function fX(_){await ym`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var TN={};C(TN,{up:()=>AX,down:()=>IX});import{sql as Vm}from"kysely";async function AX(_){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(Vm`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Vm`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 IX(_){await _.schema.dropTable("user_model_preferences").execute()}var mN={};C(mN,{up:()=>yX,down:()=>VX});async function yX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function VX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var zN={};C(zN,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function kX(_){}var EN={};C(EN,{up:()=>nX,down:()=>vX});import{sql as wm}from"kysely";async function nX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await wm`
|
|
1690
1704
|
UPDATE organization_settings
|
|
1691
1705
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1692
1706
|
WHERE reports_only IS NOT NULL
|
|
1693
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1707
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function vX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await wm`
|
|
1694
1708
|
UPDATE organization_settings
|
|
1695
1709
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1696
1710
|
WHERE flags ? 'reports_only'
|
|
1697
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1711
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var $N={};C($N,{up:()=>gX,down:()=>qX});import{sql as pX}from"kysely";async function gX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await pX`
|
|
1698
1712
|
update task_board_items
|
|
1699
1713
|
set sort_order = -extract(epoch from created_at)
|
|
1700
|
-
`.execute(_)}async function
|
|
1714
|
+
`.execute(_)}async function qX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var UN={};C(UN,{up:()=>iX,down:()=>cX,ACTIONS:()=>km});import{sql as r_}from"kysely";var km=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function iX(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addCheckConstraint("chk_task_board_activity_action",r_`action IN (${r_.join(km.map((x)=>r_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function cX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var PN={};C(PN,{up:()=>hX,down:()=>tX,ACTIONS:()=>JN});import{sql as j_}from"kysely";var JN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function hX(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await nm(_,JN)}async function tX(_){await nm(_,JN.filter((x)=>x!=="tags_changed")),await _.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await _.schema.dropTable("task_board_item_tags").execute(),await _.schema.alterTable("organization_tags").dropColumn("color").execute()}async function nm(_,x){await j_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await j_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${j_.join(x.map((u)=>j_.lit(u)))}))`.execute(_)}var XN={};C(XN,{up:()=>aX,down:()=>rX});import{sql as vm}from"kysely";function QN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function oX(_){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 QN(N)}catch{return QN(_.connection_url)}if(_.title)return QN(_.title);return _.id}async function aX(_){let x=await vm`
|
|
1701
1715
|
SELECT id, app_name, connection_url, title, slug
|
|
1702
1716
|
FROM connections
|
|
1703
1717
|
WHERE connection_type != 'VIRTUAL'
|
|
1704
|
-
`.execute(_),u=0;for(let N of x.rows){let K=
|
|
1718
|
+
`.execute(_),u=0;for(let N of x.rows){let K=oX(N);if(K===N.slug)continue;await vm`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 rX(){}var ZN={};C(ZN,{up:()=>eX,down:()=>dX});import{sql as lX}from"kysely";async function eX(_){await lX`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 dX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var jN={};C(jN,{up:()=>sX,down:()=>_Z,ACTIONS:()=>WN});import{sql as l_}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"],bX=new Set(["review_requested","review_approved","review_changes_requested"]);async function sX(_){await pm(_,WN)}async function _Z(_){await pm(_,WN.filter((x)=>!bX.has(x)))}async function pm(_,x){await l_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await l_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${l_.join(x.map((u)=>l_.lit(u)))}))`.execute(_)}var LN={};C(LN,{up:()=>uZ,down:()=>CZ});import{sql as xZ}from"kysely";async function uZ(_){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(xZ`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 CZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var YN={};C(YN,{up:()=>NZ,down:()=>TZ,ACTIONS:()=>FN});import{sql as e_}from"kysely";var FN=["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"],KZ=new Set(["merge_conflict_resolution"]);async function NZ(_){await gm(_,FN)}async function TZ(_){await gm(_,FN.filter((x)=>!KZ.has(x)))}async function gm(_,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 DN={};C(DN,{up:()=>mZ,down:()=>zZ});import{sql as L_}from"kysely";async function mZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await L_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function zZ(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await L_`
|
|
1705
1719
|
create index idx_org_billing_benefits_pending
|
|
1706
1720
|
on organization_billing (updated_at)
|
|
1707
1721
|
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(
|
|
1722
|
+
`.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(L_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).execute()}var HN={};C(HN,{up:()=>EZ,down:()=>$Z});import{sql as d_}from"kysely";async function EZ(_){await d_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await d_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function $Z(_){await d_`
|
|
1709
1723
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1710
1724
|
RETURNS trigger AS $fn$
|
|
1711
1725
|
BEGIN
|
|
@@ -1726,40 +1740,40 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1726
1740
|
RETURN NEW;
|
|
1727
1741
|
END;
|
|
1728
1742
|
$fn$ LANGUAGE plpgsql;
|
|
1729
|
-
`.execute(_),await
|
|
1743
|
+
`.execute(_),await d_`
|
|
1730
1744
|
CREATE TRIGGER trg_repo_github_child_single_parent
|
|
1731
1745
|
BEFORE INSERT ON connection_aggregations
|
|
1732
1746
|
FOR EACH ROW
|
|
1733
1747
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1734
|
-
`.execute(_)}var
|
|
1748
|
+
`.execute(_)}var MN={};C(MN,{up:()=>UZ,down:()=>JZ});import{sql as qm}from"kysely";async function UZ(_){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(qm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qm`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function JZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var RN={};C(RN,{up:()=>PZ,down:()=>QZ});import{sql as im}from"kysely";async function PZ(_){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(im`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(im`now()`)).execute()}async function QZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var GN={};C(GN,{up:()=>XZ,down:()=>ZZ});import{sql as BN}from"kysely";async function XZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(BN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await BN`
|
|
1735
1749
|
create index idx_task_quota_claims_org_period_live
|
|
1736
1750
|
on task_quota_claims (organization_id, period_key)
|
|
1737
1751
|
where state <> 'released'
|
|
1738
|
-
`.execute(_)}async function
|
|
1752
|
+
`.execute(_)}async function ZZ(_){await BN`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 ON={};C(ON,{up:()=>WZ,down:()=>jZ});async function WZ(_){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 jZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var SN={};C(SN,{up:()=>LZ,down:()=>FZ});async function LZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function FZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var fN={};C(fN,{up:()=>YZ,down:()=>DZ});import{sql as cm}from"kysely";async function YZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(cm`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(cm`monthly_task_executions > 0`)).execute()}async function DZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var AN={};C(AN,{up:()=>MZ,down:()=>RZ});import{sql as HZ}from"kysely";async function MZ(_){await HZ`
|
|
1739
1753
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1740
1754
|
ON task_board_items (updated_at, id)
|
|
1741
1755
|
WHERE status = 'in_review'
|
|
1742
1756
|
AND assignee_id = 'super-agent'
|
|
1743
1757
|
AND dismissed_at IS NULL
|
|
1744
|
-
`.execute(_)}async function
|
|
1758
|
+
`.execute(_)}async function RZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var IN={};C(IN,{up:()=>BZ,down:()=>GZ});import{sql as hm}from"kysely";async function BZ(_){await hm`
|
|
1745
1759
|
ALTER TABLE task_board_items
|
|
1746
1760
|
ADD COLUMN last_swept_at timestamptz
|
|
1747
|
-
`.execute(_)}async function
|
|
1761
|
+
`.execute(_)}async function GZ(_){await hm`
|
|
1748
1762
|
ALTER TABLE task_board_items
|
|
1749
1763
|
DROP COLUMN last_swept_at
|
|
1750
|
-
`.execute(_)}var
|
|
1764
|
+
`.execute(_)}var yN={};C(yN,{up:()=>OZ,down:()=>SZ});import{sql as b_}from"kysely";async function OZ(_){await b_`
|
|
1751
1765
|
ALTER TABLE task_board_items
|
|
1752
1766
|
ADD COLUMN retry_at timestamptz,
|
|
1753
1767
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
1754
|
-
`.execute(_),await
|
|
1768
|
+
`.execute(_),await b_`
|
|
1755
1769
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1756
1770
|
ON task_board_items (retry_at)
|
|
1757
1771
|
WHERE retry_at IS NOT NULL
|
|
1758
|
-
`.execute(_)}async function
|
|
1772
|
+
`.execute(_)}async function SZ(_){await b_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await b_`
|
|
1759
1773
|
ALTER TABLE task_board_items
|
|
1760
1774
|
DROP COLUMN retry_at,
|
|
1761
1775
|
DROP COLUMN retry_attempts
|
|
1762
|
-
`.execute(_)}var
|
|
1776
|
+
`.execute(_)}var wN={};C(wN,{up:()=>fZ,down:()=>AZ});import{sql as VN}from"kysely";async function fZ(_){await VN`
|
|
1763
1777
|
CREATE TABLE org_repo_sync (
|
|
1764
1778
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1765
1779
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1777,11 +1791,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1777
1791
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1778
1792
|
UNIQUE (organization_id, volume)
|
|
1779
1793
|
)
|
|
1780
|
-
`.execute(_),await
|
|
1794
|
+
`.execute(_),await VN`
|
|
1781
1795
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1782
1796
|
ON org_repo_sync (organization_id)
|
|
1783
1797
|
WHERE enabled
|
|
1784
|
-
`.execute(_)}async function
|
|
1798
|
+
`.execute(_)}async function AZ(_){await VN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var nN={};C(nN,{up:()=>yZ,down:()=>VZ,ACTIONS:()=>kN});import{sql as s_}from"kysely";var kN=["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"],IZ=new Set(["merge_failed"]);async function yZ(_){await tm(_,kN)}async function VZ(_){await tm(_,kN.filter((x)=>!IZ.has(x)))}async function tm(_,x){await s_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await s_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${s_.join(x.map((u)=>s_.lit(u)))}))`.execute(_)}var vN={};C(vN,{up:()=>wZ,down:()=>kZ});async function wZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function kZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var pN={};C(pN,{up:()=>nZ,down:()=>vZ});import{sql as x_}from"kysely";async function nZ(_){await x_`
|
|
1785
1799
|
CREATE TABLE org_jira_integrations (
|
|
1786
1800
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1787
1801
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1801,7 +1815,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1801
1815
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1802
1816
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
1803
1817
|
)
|
|
1804
|
-
`.execute(_),await
|
|
1818
|
+
`.execute(_),await x_`
|
|
1805
1819
|
CREATE TABLE task_board_item_jira_links (
|
|
1806
1820
|
item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
|
|
1807
1821
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1812,7 +1826,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1812
1826
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1813
1827
|
UNIQUE (organization_id, jira_issue_id)
|
|
1814
1828
|
)
|
|
1815
|
-
`.execute(_),await
|
|
1829
|
+
`.execute(_),await x_`
|
|
1816
1830
|
CREATE TABLE task_board_comment_jira_links (
|
|
1817
1831
|
comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
|
|
1818
1832
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1820,7 +1834,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1820
1834
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1821
1835
|
UNIQUE (organization_id, jira_comment_id)
|
|
1822
1836
|
)
|
|
1823
|
-
`.execute(_)}async function
|
|
1837
|
+
`.execute(_)}async function vZ(_){await x_`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var gN={};C(gN,{up:()=>gZ,down:()=>qZ});import{sql as pZ}from"kysely";async function gZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await pZ`
|
|
1824
1838
|
update task_board_items as t
|
|
1825
1839
|
set key_seq = numbered.seq
|
|
1826
1840
|
from (
|
|
@@ -1833,25 +1847,25 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1833
1847
|
from task_board_items
|
|
1834
1848
|
) as numbered
|
|
1835
1849
|
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
|
|
1850
|
+
`.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function qZ(_){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 qN={};C(qN,{up:()=>iZ,down:()=>cZ});import{sql as om}from"kysely";async function iZ(_){await om`
|
|
1837
1851
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1838
1852
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1839
1853
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1840
|
-
`.execute(_)}async function
|
|
1854
|
+
`.execute(_)}async function cZ(_){await om`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var cN={};C(cN,{up:()=>hZ,down:()=>tZ});import{sql as iN}from"kysely";async function hZ(_){await iN`
|
|
1841
1855
|
ALTER TABLE thread_message_parts
|
|
1842
1856
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1843
|
-
`.execute(_),await
|
|
1857
|
+
`.execute(_),await iN`
|
|
1844
1858
|
ALTER TABLE thread_message_parts
|
|
1845
1859
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1846
|
-
`.execute(_)}async function
|
|
1860
|
+
`.execute(_)}async function tZ(_){await iN`
|
|
1847
1861
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1848
|
-
`.execute(_)}var
|
|
1862
|
+
`.execute(_)}var hN={};C(hN,{up:()=>oZ,down:()=>aZ});async function oZ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function aZ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var tN={};C(tN,{up:()=>lZ,down:()=>eZ});import{sql as rZ}from"kysely";async function lZ(_){await rZ`
|
|
1849
1863
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1850
1864
|
ON task_board_items (updated_at)
|
|
1851
1865
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1852
|
-
`.execute(_)}async function
|
|
1866
|
+
`.execute(_)}async function eZ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var oN={};C(oN,{up:()=>dZ,down:()=>bZ,TYPES:()=>am});import{sql as q}from"kysely";var am=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function dZ(_){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(am.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
|
|
1853
1867
|
(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
|
|
1868
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function bZ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var aN={};C(aN,{up:()=>sZ,down:()=>_6});import{sql as rm}from"kysely";async function sZ(_){await rm`
|
|
1855
1869
|
UPDATE org_jira_integrations
|
|
1856
1870
|
SET status_mapping = (
|
|
1857
1871
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1866,7 +1880,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1866
1880
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1867
1881
|
WHERE jsonb_typeof(value) = 'array'
|
|
1868
1882
|
)
|
|
1869
|
-
`.execute(_)}async function
|
|
1883
|
+
`.execute(_)}async function _6(_){await rm`
|
|
1870
1884
|
UPDATE org_jira_integrations
|
|
1871
1885
|
SET status_mapping = (
|
|
1872
1886
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1881,7 +1895,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1881
1895
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1882
1896
|
WHERE jsonb_typeof(value) = 'array'
|
|
1883
1897
|
)
|
|
1884
|
-
`.execute(_)}var
|
|
1898
|
+
`.execute(_)}var lN={};C(lN,{up:()=>u6,down:()=>C6,TYPES:()=>rN});import{sql as _x}from"kysely";var rN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],x6=new Set(["mentioned"]);async function u6(_){await lm(_,rN)}async function C6(_){await lm(_,rN.filter((x)=>!x6.has(x)))}async function lm(_,x){await _x`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await _x`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${_x.join(x.map((u)=>_x.lit(u)))}))`.execute(_)}var dN={};C(dN,{up:()=>T6,down:()=>m6,ACTIONS:()=>eN});import{sql as i}from"kysely";var K6=["bug","feature","chore","spike","security"],eN=["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"],N6=new Set(["type_changed"]);async function T6(_){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(K6.map((x)=>i.lit(x)))}))`.execute(_),await em(_,eN)}async function m6(_){await em(_,eN.filter((x)=>!N6.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 em(_,x){await i`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await i`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${i.join(x.map((u)=>i.lit(u)))}))`.execute(_)}var bN={};C(bN,{up:()=>z6,down:()=>E6});import{sql as W}from"kysely";var bm=["bug","feature","chore","spike","security"],dm="chore";async function z6(_){await W`UPDATE task_board_items SET type = ${W.lit(dm)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(dm)}`.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(bm.map((x)=>W.lit(x)))}))`.execute(_)}async function E6(_){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(bm.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 sN={};C(sN,{up:()=>$6,down:()=>U6});import{sql as u_}from"kysely";async function $6(_){await u_`
|
|
1885
1899
|
CREATE TABLE task_board_sprints (
|
|
1886
1900
|
id text PRIMARY KEY,
|
|
1887
1901
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1896,44 +1910,44 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1896
1910
|
CHECK (state IN ('active', 'future', 'closed')),
|
|
1897
1911
|
UNIQUE (organization_id, jira_sprint_id)
|
|
1898
1912
|
)
|
|
1899
|
-
`.execute(_),await
|
|
1913
|
+
`.execute(_),await u_`
|
|
1900
1914
|
CREATE INDEX idx_task_board_sprints_org
|
|
1901
1915
|
ON task_board_sprints (organization_id, starts_at)
|
|
1902
|
-
`.execute(_),await
|
|
1916
|
+
`.execute(_),await u_`
|
|
1903
1917
|
ALTER TABLE task_board_items
|
|
1904
1918
|
ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
|
|
1905
|
-
`.execute(_),await
|
|
1919
|
+
`.execute(_),await u_`
|
|
1906
1920
|
CREATE INDEX idx_task_board_items_sprint
|
|
1907
1921
|
ON task_board_items (organization_id, sprint_id)
|
|
1908
1922
|
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
|
|
1923
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function U6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await u_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await u_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var _T={};C(_T,{up:()=>P6,down:()=>Q6});import{sql as J6}from"kysely";async function P6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function Q6(_){await J6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var xT={};C(xT,{up:()=>Z6,down:()=>W6});import{sql as X6}from"kysely";async function Z6(_){await X6`
|
|
1910
1924
|
UPDATE org_jira_integrations
|
|
1911
1925
|
SET last_synced_at = NULL,
|
|
1912
1926
|
last_sync_error = NULL
|
|
1913
1927
|
WHERE last_synced_at IS NOT NULL
|
|
1914
|
-
`.execute(_)}async function
|
|
1928
|
+
`.execute(_)}async function W6(){}var uT={};C(uT,{up:()=>L6,down:()=>F6});import{sql as j6}from"kysely";async function L6(_){await j6`
|
|
1915
1929
|
UPDATE org_jira_integrations
|
|
1916
1930
|
SET last_synced_at = NULL,
|
|
1917
1931
|
last_sync_error = NULL
|
|
1918
1932
|
WHERE last_synced_at IS NOT NULL
|
|
1919
|
-
`.execute(_)}async function
|
|
1933
|
+
`.execute(_)}async function F6(){}var KT={};C(KT,{up:()=>Y6,down:()=>D6});import{sql as CT}from"kysely";async function Y6(_){await CT`
|
|
1920
1934
|
ALTER TABLE org_jira_integrations
|
|
1921
1935
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1922
|
-
`.execute(_),await
|
|
1936
|
+
`.execute(_),await CT`
|
|
1923
1937
|
UPDATE org_jira_integrations
|
|
1924
1938
|
SET rescan_pending = true
|
|
1925
1939
|
WHERE last_synced_at IS NULL
|
|
1926
|
-
`.execute(_)}async function
|
|
1940
|
+
`.execute(_)}async function D6(_){await CT`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var NT={};C(NT,{up:()=>H6,down:()=>M6});async function H6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function M6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var TT={};C(TT,{up:()=>R6,down:()=>B6});import{sql as sm}from"kysely";async function R6(_){await sm`
|
|
1927
1941
|
ALTER TABLE invitation
|
|
1928
1942
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1929
|
-
`.execute(_)}async function
|
|
1943
|
+
`.execute(_)}async function B6(_){await sm`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var zT={};C(zT,{up:()=>G6,down:()=>O6});import{sql as mT}from"kysely";async function G6(_){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(mT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(mT`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 mT`
|
|
1930
1944
|
INSERT INTO task_board_column_automations
|
|
1931
1945
|
(id, organization_id, column_key, prompt)
|
|
1932
1946
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1933
1947
|
FROM org_jira_integrations
|
|
1934
1948
|
WHERE auto_delegate = true
|
|
1935
1949
|
ON CONFLICT DO NOTHING
|
|
1936
|
-
`.execute(_)}async function
|
|
1950
|
+
`.execute(_)}async function O6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var ET={};C(ET,{up:()=>S6,down:()=>f6});import{sql as F_}from"kysely";async function S6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await F_`
|
|
1937
1951
|
UPDATE task_board_items i
|
|
1938
1952
|
SET review_cycle_started_at = (
|
|
1939
1953
|
SELECT max(a.occurred_at)
|
|
@@ -1943,35 +1957,35 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1943
1957
|
AND a.data ->> 'to' = 'in_review'
|
|
1944
1958
|
)
|
|
1945
1959
|
WHERE i.status = 'in_review'
|
|
1946
|
-
`.execute(_),await
|
|
1960
|
+
`.execute(_),await F_`
|
|
1947
1961
|
CREATE INDEX idx_task_board_items_review_cycle
|
|
1948
1962
|
ON task_board_items (updated_at, id)
|
|
1949
1963
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1950
1964
|
AND assignee_id = 'super-agent'
|
|
1951
1965
|
AND dismissed_at IS NULL
|
|
1952
|
-
`.execute(_),await
|
|
1966
|
+
`.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function f6(_){await F_`
|
|
1953
1967
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1954
1968
|
ON task_board_items (updated_at, id)
|
|
1955
1969
|
WHERE status = 'in_review'
|
|
1956
1970
|
AND assignee_id = 'super-agent'
|
|
1957
1971
|
AND dismissed_at IS NULL
|
|
1958
|
-
`.execute(_),await
|
|
1972
|
+
`.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var $T={};C($T,{up:()=>A6,down:()=>I6});import{sql as _z}from"kysely";async function A6(_){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(_z`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(_z`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 I6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var JT={};C(JT,{up:()=>V6,down:()=>w6,ACTIONS:()=>UT});import{sql as xx}from"kysely";var UT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],y6=new Set(["review_verdict_requested"]);async function V6(_){await xz(_,UT)}async function w6(_){await xz(_,UT.filter((x)=>!y6.has(x)))}async function xz(_,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 PT={};C(PT,{up:()=>k6,down:()=>n6});import{sql as ux}from"kysely";async function k6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await ux`
|
|
1959
1973
|
ALTER TABLE task_board_items
|
|
1960
1974
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1961
1975
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
1962
|
-
`.execute(_),await
|
|
1976
|
+
`.execute(_),await ux`
|
|
1963
1977
|
ALTER TABLE task_board_items
|
|
1964
1978
|
ADD CONSTRAINT task_board_items_board_column_fkey
|
|
1965
1979
|
FOREIGN KEY (board_column_org, status)
|
|
1966
1980
|
REFERENCES task_board_columns (organization_id, key)
|
|
1967
1981
|
ON DELETE RESTRICT
|
|
1968
|
-
`.execute(_)}async function
|
|
1982
|
+
`.execute(_)}async function n6(_){await ux`
|
|
1969
1983
|
ALTER TABLE task_board_items
|
|
1970
1984
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
1971
|
-
`.execute(_),await
|
|
1985
|
+
`.execute(_),await ux`
|
|
1972
1986
|
ALTER TABLE task_board_items
|
|
1973
1987
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
1974
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
1988
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var QT={};C(QT,{up:()=>v6,down:()=>p6});async function v6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function p6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var ZT={};C(ZT,{up:()=>q6,down:()=>i6,ACTIONS:()=>XT});import{sql as Cx}from"kysely";var XT=["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"],g6=new Set(["sprint_changed"]);async function q6(_){await uz(_,XT)}async function i6(_){await uz(_,XT.filter((x)=>!g6.has(x)))}async function uz(_,x){await Cx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Cx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Cx.join(x.map((u)=>Cx.lit(u)))}))`.execute(_)}var WT={};C(WT,{up:()=>h6,down:()=>t6});import{sql as c6}from"kysely";async function h6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(c6`'[]'::jsonb`)).execute()}async function t6(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var jT={};C(jT,{up:()=>o6,down:()=>a6});import{sql as Cz}from"kysely";async function o6(_){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(Cz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Cz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function a6(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var LT={};C(LT,{up:()=>l6,down:()=>e6});import{sql as r6}from"kysely";async function l6(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await r6`
|
|
1975
1989
|
UPDATE task_board_items i
|
|
1976
1990
|
SET external_url = t.url,
|
|
1977
1991
|
description = CASE
|
|
@@ -1990,11 +2004,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
1990
2004
|
ON g.organization_id = l.organization_id
|
|
1991
2005
|
) t
|
|
1992
2006
|
WHERE t.item_id = i.id
|
|
1993
|
-
`.execute(_)}async function
|
|
2007
|
+
`.execute(_)}async function e6(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var FT={};C(FT,{up:()=>b6,down:()=>s6,ACTIONS:()=>Kz});import{sql as Q}from"kysely";var d6=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Kz=["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 b6(_){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
2008
|
UPDATE task_board_items
|
|
1995
2009
|
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
|
|
2010
|
+
WHERE status NOT IN (${Q.join(d6.map((x)=>Q.lit(x)))})
|
|
2011
|
+
`.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await _W(_,Kz),await Q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await Q`
|
|
1998
2012
|
ALTER TABLE task_board_item_jira_links
|
|
1999
2013
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
2000
2014
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -2006,11 +2020,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2006
2020
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
2007
2021
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
2008
2022
|
DROP COLUMN IF EXISTS rescan_pending
|
|
2009
|
-
`.execute(_)}async function
|
|
2023
|
+
`.execute(_)}async function s6(){}async function _W(_,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 YT={};C(YT,{up:()=>xW,down:()=>uW});import{sql as C_}from"kysely";async function xW(_){await C_`
|
|
2010
2024
|
ALTER TABLE task_board_items
|
|
2011
2025
|
ADD COLUMN IF NOT EXISTS source text
|
|
2012
2026
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
2013
|
-
`.execute(_),await
|
|
2027
|
+
`.execute(_),await C_`
|
|
2014
2028
|
CREATE TABLE IF NOT EXISTS org_jira_column_automations (
|
|
2015
2029
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
2016
2030
|
jira_status text NOT NULL,
|
|
@@ -2019,7 +2033,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2019
2033
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
2020
2034
|
PRIMARY KEY (organization_id, jira_status)
|
|
2021
2035
|
)
|
|
2022
|
-
`.execute(_),await
|
|
2036
|
+
`.execute(_),await C_`
|
|
2023
2037
|
CREATE TABLE IF NOT EXISTS jira_trigger_claims (
|
|
2024
2038
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
2025
2039
|
jira_issue_id text NOT NULL,
|
|
@@ -2027,24 +2041,24 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2027
2041
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2028
2042
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
2029
2043
|
)
|
|
2030
|
-
`.execute(_)}async function
|
|
2044
|
+
`.execute(_)}async function uW(_){await C_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await C_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await C_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var DT={};C(DT,{up:()=>CW,down:()=>KW});import{sql as Y_}from"kysely";async function CW(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(Y_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).execute(),await Y_`
|
|
2031
2045
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
2032
2046
|
ON organization_notices (organization_id)
|
|
2033
2047
|
WHERE resolved_at IS NULL
|
|
2034
|
-
`.execute(_),await
|
|
2048
|
+
`.execute(_),await Y_`
|
|
2035
2049
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
2036
2050
|
ON organization_notices (organization_id, created_at DESC)
|
|
2037
|
-
`.execute(_)}async function
|
|
2051
|
+
`.execute(_)}async function KW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var MT={};C(MT,{up:()=>QW,down:()=>XW});import{sql as HT}from"kysely";import{sql as aj}from"kysely";var Nz=50000000,NW=1e5;function TW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>NW)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 mW=/\u0000/g,zW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,EW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,$W=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,UW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function JW(_){return _.replace(mW,"").replace(zW,"\uFFFD").replace(EW,"$1***@").replace($W,"$1***").replace(UW,"[base64 data omitted]")}function PW(_){if(typeof _!=="object"||_===null)return!1;let x=_;if(x.type!=="image")return!1;if(typeof x.data==="string")return!0;let u=x.source;return typeof u==="object"&&u!==null&&typeof u.data==="string"}function Tz(_){if(TW(_,Nz)>Nz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return JW(u);if(PW(u))return{type:"text",text:"[image omitted]"};return u})}var mz=20;async function QW(_){let x=await HT`
|
|
2038
2052
|
SELECT id FROM thread_message_parts
|
|
2039
2053
|
WHERE pg_column_size(payload) > 8192
|
|
2040
2054
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
2041
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
2055
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=mz){let N=x.rows.slice(u,u+mz).map((T)=>T.id),K=await HT`
|
|
2042
2056
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
|
|
2043
|
-
`.execute(_);for(let T of K.rows){let m=
|
|
2057
|
+
`.execute(_);for(let T of K.rows){let m=Tz(T.payload);if(m===JSON.stringify(T.payload))continue;await HT`
|
|
2044
2058
|
UPDATE thread_message_parts
|
|
2045
2059
|
SET payload = ${m}::jsonb
|
|
2046
2060
|
WHERE id = ${T.id}
|
|
2047
|
-
`.execute(_)}}}async function
|
|
2061
|
+
`.execute(_)}}}async function XW(){}var RT={};C(RT,{up:()=>ZW,down:()=>WW});async function ZW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function WW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var BT={};C(BT,{up:()=>jW,down:()=>LW});import{sql as U}from"kysely";async function jW(_){await U`
|
|
2048
2062
|
CREATE TABLE git_provider_accounts (
|
|
2049
2063
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
2050
2064
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2288,11 +2302,11 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2288
2302
|
AND r.organization_id = s.organization_id
|
|
2289
2303
|
AND r.host = 'github.com'
|
|
2290
2304
|
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
|
|
2305
|
+
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function LW(_){await U`
|
|
2292
2306
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
2293
2307
|
`.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
|
|
2294
2308
|
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
|
|
2309
|
+
`.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 GT={};C(GT,{up:()=>YW,down:()=>DW});import{sql as I}from"kysely";var FW=I`
|
|
2296
2310
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
2297
2311
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
2298
2312
|
BEGIN
|
|
@@ -2301,7 +2315,7 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2301
2315
|
RETURN NULL;
|
|
2302
2316
|
END;
|
|
2303
2317
|
$$
|
|
2304
|
-
`;async function
|
|
2318
|
+
`;async function YW(_){await FW.execute(_),await I`
|
|
2305
2319
|
ALTER TABLE connections
|
|
2306
2320
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2307
2321
|
`.execute(_),await I`
|
|
@@ -2363,21 +2377,21 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2363
2377
|
AND r.host = 'github.com'
|
|
2364
2378
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
2365
2379
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
2366
|
-
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function
|
|
2380
|
+
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function DW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
|
|
2367
2381
|
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(`
|
|
2382
|
+
`.execute(_)}var HW={"001-initial-schema":Uu,"002-organization-settings":Ju,"003-connection-schema-align":Pu,"004-remove-models-binding":Qu,"005-connection-configuration":Xu,"006-add-views-to-settings":Zu,"007-monitoring-logs":Wu,"008-event-bus":ju,"009-drop-audit-logs":Lu,"010-gateways":Fu,"011-gateway-icon":Yu,"012-gateway-tool-selection-mode":Du,"013-monitoring-user-agent-gateway":Hu,"014-gateway-resources-prompts":Mu,"015-monitoring-properties":Ru,"016-downstream-token-client-info":Bu,"017-downstream-token-remove-userid":Gu,"018-drop-gateway-tool-selection-strategy":Ou,"019-remove-gateway-is-default":Su,"020-enabled-plugins":fu,"021-threads":Au,"022-rename-gateway-to-virtual-mcp":Iu,"023-optimize-thread-indexes":yu,"024-consolidate-virtual-mcp":Vu,"025-add-monitoring-virtual-mcp-id":wu,"026-restrict-child-connection-delete":ku,"027-update-management-mcp-url":vu,"028-update-management-mcp-to-self":gu,"029-add-updated-by-to-connections":qu,"030-member-tags":iu,"031-add-dependency-mode":cu,"032-projects":hu,"033-thread-status":tu,"034-monitoring-dashboards":ou,"035-project-connections":au,"036-update-registry-url":ru,"037-ai-provider-keys":lu,"038-oauth-pkce-states":eu,"039-automations":du,"040-replace-next-run-at-with-last-run-at":bu,"041-ai-provider-keys-unique-constraint":su,"042-rename-mesh-mcp-to-cms-mcp":_C,"043-rename-cms-mcp-to-deco-cms":xC,"044-drop-connections-tools-column":uC,"045-thread-context-start-message":CC,"046-remove-object-storage-plugin":NC,"047-add-next-run-at":TC,"048-merge-projects-agents":zC,"049-remove-org-admin-projects":EC,"050-durable-agent-runs":$C,"051-org-sso":JC,"052-thread-agent-ids":PC,"053-registry-config":QC,"054-connection-slug":ZC,"055-spaces":WC,"056-automation-project-scope":jC,"057-thread-virtual-mcp-id":LC,"058-trigger-callback-tokens":FC,"059-kv":YC,"060-member-index":DC,"061-downstream-token-connection-index":HC,"062-private-registry":MC,"063-event-subscriptions-enabled-boolean":RC,"064-brand-context":BC,"065-organization-domains":GC,"066-brand-context-structured":OC,"067-threads-metadata":SC,"068-threads-branch":fC,"069-sandbox-runner-state":AC,"070-model-categories":IC,"071-default-home-agents":yC,"072-ai-provider-key-preset-id":VC,"073-backfill-basic-usage-roles":wC,"074-sandbox-runner-state-handle-nonunique":kC,"075-thread-inflight-async-jobs":nC,"076-automations-drop-agent-json":vC,"077-tier-only-model-selection":gC,"078-automation-tool-call-kind":qC,"079-strip-legacy-freestyle-vm-map-entries":iC,"080-async-research-jobs":cC,"081-async-research-jobs-result-content":hC,"082-secrets":tC,"083-thread-run-locally":oC,"084-drop-host-sandbox-rows":aC,"085-rename-runner-kind":rC,"086-thread-pins-and-vm-map-rekey":lC,"087-fix-vm-map-rekey":eC,"088-purge-cli-activate-keys":dC,"089-rename-remote-user-to-desktop":bC,"090-automation-webhook-triggers":sC,"091-organization-domains-allow-multi":_K,"092-sandbox-naming-uniformization":xK,"093-backfill-global-search-basic-usage":uK,"094-org-file-configs":KK,"095-remove-automation-tool-call-kind":NK,"096-org-file-configs-public-url-base":TK,"097-drop-local-docker-sandbox-state":zK,"098-thread-message-parts":EK,"099-run-fence":$K,"100-link-transport":UK,"101-cancel-requested-at":JK,"102-observational-agent":PK,"103-revert-observational-agent":QK,"104-agent-sandbox-provider-kind":ZK,"105-org-fs":WK,"106-automation-tools":jK,"107-org-fs-public-org":LK,"108-automation-max-agent-steps":FK,"109-thread-message-parts-per-message-seq":YK,"110-backfill-ghs-token-expiry":DK,"111-org-fs-thread-id":HK,"112-org-file-configs-credential-type":MK,"113-thread-failure-reason":RK,"114-run-acked-seq":BK,"115-thread-projected-seq":GK,"116-org-sites":OK,"117-org-file-configs-site-slug":SK,"118-organization-domains-multi-verify":fK,"119-organization-join-requests":AK,"120-org-fs-read-public":IK,"121-org-fs-share-password":yK,"122-split-web-research-tier":kK,"123-connection-credential-vault":nK,"124-drop-thread-projected-seq":vK,"125-github-child-single-parent":pK,"126-task-board":qK,"127-task-board-due-date":iK,"128-reports-only":cK,"129-task-board-assigned-by":hK,"130-task-board-thread-id":tK,"131-task-board-thread-link-cascade":oK,"132-task-board-item-prs":aK,"133-dedupe-duplicate-members":rK,"134-drop-task-board-enabled":lK,"135-task-board-item-fk-cascade":eK,"136-task-board-import-idempotency":dK,"137-agent-sandbox-runner-state":bK,"138-agent-sandbox-sessions":sK,"139-organization-billing":_N,"140-seat-change-log":xN,"141-benefits-sync-pending":uN,"142-stripe-event-watermark":CN,"143-armed-report-url":KN,"144-benefits-pending-index":NN,"145-user-model-preferences":TN,"146-organization-main-agent":mN,"147-drop-agent-sandbox-tables":zN,"148-org-flags":EN,"149-task-board-item-sort-order":$N,"150-task-board-activity":UN,"151-task-board-tags":PN,"152-repair-connection-slug":XN,"153-task-board-latest-assistant-part-index":ZN,"154-task-board-qa-activity":jN,"155-task-board-review-claims":LN,"156-task-board-conflict-activity":YN,"157-drop-seat-billing":DN,"158-drop-github-child-single-parent":HN,"159-task-board-comments":MN,"160-task-quota-billing":RN,"161-task-quota-claim-state":GN,"162-claude-subscriptions":ON,"163-task-board-item-dismissed":SN,"164-per-org-task-quota":fN,"165-task-board-pending-review-index":AN,"166-task-board-last-swept-at":IN,"167-task-board-run-retry":yN,"168-org-repo-sync":wN,"169-task-board-merge-failed-activity":nN,"170-task-board-item-repo":vN,"171-jira-integration":pN,"172-task-board-item-key-seq":gN,"173-thread-github-repo-connection-index":qN,"174-thread-message-parts-persisted-at":cN,"175-task-board-sprints":hN,"176-task-board-done-sweep-index":tN,"177-notifications":oN,"178-jira-status-mapping-array":aN,"179-notification-mentioned":lN,"180-task-board-item-type":dN,"181-task-board-item-type-required":bN,"182-task-board-sprints-entities":sN,"183-drop-jira-jql-filter":_T,"184-jira-rescan-after-scope-change":xT,"185-jira-rescan-existing-cards":uT,"186-jira-rescan-pending-flag":KT,"187-task-board-comment-thread":NT,"188-invitation-auto-accept":TT,"189-task-board-column-automations":zT,"190-task-board-review-cycle-started-at":ET,"191-task-board-columns":$T,"192-task-board-verdict-nudge-activity":JT,"193-task-board-status-column-fk":PT,"194-jira-link-sprint":QT,"195-task-board-sprint-activity":ZT,"196-task-board-column-tracker-statuses":WT,"197-task-board-prompts":jT,"198-task-board-external-url":LT,"199-drop-jira-mirror-and-org-columns":FT,"200-jira-run-trigger":YT,"201-organization-notices":DT,"202-redact-base64-thread-parts":MT,"203-task-board-preview-routes":RT,"204-git-provider-accounts-and-repositories":BT,"205-repository-references":GT,"206-repository-consumers":$u,"207-task-board-prs-repo-idx":Eu,"208-github-connect-flows":zu,"209-github-installation-authorization":mu,"210-github-repository-authorization":sx,"211-user-fs-org":bx,"212-coding-agent-mcp-excluded":_u,"213-bitbucket-git-provider":xu,"214-connections-sanitized-id-idx":rx,"215-commerce-discovery-repository":lx,"216-github-cli-auth":dx,"217-experiments":uu,"218-thread-message-parts-error-idx":Cu,"219-task-board-duplicate-reported-activity":Nu,"220-jira-automation-continue-pr":Tu,"221-remove-private-registry":$x,"222-org-git-credentials":Ux,"223-drop-org-main-agent-id":ax,"224-repository-sandbox-image":Jx,"225-thread-analytics-indexes":Qx,"226-deco-score-names":Zx,"227-task-board-finding-resolved-activity":jx,"228-org-voice-config":Ex,"229-jira-automation-from":Lx,"230-project-sidebar":Fx,"231-jira-chat-agent":Yx,"232-task-board-prompt-skills":Hx,"233-remove-jira-chat-agent":Rx,"234-task-board-comment-audience":Bx,"235-prune-empty-thread-dirs":Gx,"236-task-board-sprints":Sx,"237-org-sites-project-link":fx,"238-task-board-default-lanes":Ax,"239-task-board-retire-old-lanes":Ix,"240-task-board-restore-todo":yx,"241-automation-board-column-transition":Vx,"242-connection-url-slug":wx,"243-experiment-task-board-item":kx,"244-connection-url-slug-rollout-backfill":nx,"245-automation-system-key":vx,"246-automation-pr-ready-trigger":px,"247-automation-jira-transition":gx,"248-drop-retired-rule-tables":qx,"249-task-board-item-project":ix,"250-github-copilot-subscriptions":cx,"251-org-shared-plans":hx,"252-automation-linked-chat-trigger":tx,"253-automation-pr-builtin-triggers":ox},Kx=HW;import{getMigrations as u9}from"better-auth/db";import{sso as C9}from"@better-auth/sso";import{organization as K9}from"@decocms/better-auth/plugins";import{admin as N9,apiKey as T9,jwt as m9,magicLink as z9,mcp as E9,openAPI as $9}from"better-auth/plugins";import{emailOTP as U9}from"better-auth/plugins/email-otp";import{Kysely as rW,PostgresDialect as Wz}from"kysely";import{Pool as jz}from"pg";import{homedir as MW}from"os";var RW=new Set(["all","worker","api"]);function BW(_){let x=(_??"").trim();return RW.has(x)?x:"all"}var GW=new Set(["production","development","test"]);function OW(_){let x=(_??"").trim();return GW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function ST(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return ST(_,x,N)??u}function SW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),T=K>0?N.slice(0,K).trim():"",m=K>0?N.slice(K+1).trim():"";if(!T||!m){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=m}return x}function fW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function OT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function AW(_){return _===void 0||_===""||_==="true"||_==="1"}function D_(_,x){return _||x}function zz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${MW()}/deco`,u=OW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:D_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:D_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((T)=>T.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((T)=>T.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:ST("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((T)=>T.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:SW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:fW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:OT(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:OT(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:AW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:ST("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:BW(D_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:OT(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:D_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:D_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var IW=null;function K_(){return IW??=Object.freeze(zz(process.env))}import{createContextKey as vW,metrics as pW,propagation as J8,ROOT_CONTEXT as P8,SpanStatusCode as Q8,trace as gW}from"@opentelemetry/api";import{logs as qW,SeverityNumber as fT}from"@opentelemetry/api-logs";import{OTLPLogExporter as W8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as iW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as F8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as D8}from"@opentelemetry/instrumentation-runtime-node";import{context as T5,propagation as m5,SpanKind as z5,SpanStatusCode as E5}from"@opentelemetry/api";var U5=globalThis.fetch;import{ExportResultCode as H5}from"@opentelemetry/core";import{ExportResultCode as Nx}from"@opentelemetry/core";import{mkdir as yW,rename as VW,writeFile as wW}from"fs/promises";import{join as Tx}from"path";class mx{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:Nx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Nx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Nx.FAILED}});return Promise.resolve({code:Nx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let T=x.get(K.partition);if(!T)T=[],x.set(K.partition,T);T.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,T])=>this.writeNDJSON(T,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let m of u)if(m.status==="fulfilled")K.add(m.value);let T=_.filter((m)=>!K.has(m.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Tx(this.basePath,x,...N):Tx(this.basePath,...N);if(!this.knownDirs.has(K))await yW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let T=`${crypto.randomUUID()}.ndjson`,m=Tx(K,`.${T}.tmp`),z=Tx(K,T),E=_.join(`
|
|
2369
2383
|
`)+`
|
|
2370
|
-
`;await
|
|
2384
|
+
`;await wW(m,E,{mode:384}),await VW(m,z)}}import{ExportResultCode as O5}from"@opentelemetry/core";import{AggregationTemporality as f5,DataPointType as A5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as n5}from"@opentelemetry/core";var q5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as A8,LoggerProvider as I8}from"@opentelemetry/sdk-logs";import{detectResources as V8,envDetector as w8,hostDetector as k8,osDetector as n8,processDetector as v8,resourceFromAttributes as p8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as q8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as h5}from"@opentelemetry/api-logs";import{NodeSDK as h8}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as o8,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as l5}from"@opentelemetry/api";var cW="__d",hW=vW("Current request"),tW=1;var $z=(_)=>{let u=new URL(_.url).searchParams.get(cW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Uz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,T){let m=_.getValue(hW);if(!m){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,T);return{decision:N_.RECORD_AND_SAMPLED}}let z=$z(m);if(z)return{decision:N_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,T);if(E.decision===N_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:N_.NOT_RECORD}}toString(){return"DebugSampler"}}class Jz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:N_.RECORD_AND_SAMPLED};return{decision:N_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var r8=new iW({preventServerStart:!0}),l8=new Uz(new Jz(tW));var Ez=gW.getTracer("studio","1.0.0"),H_=pW.getMeter("studio","1.0.0"),oW=qW.getLogger("studio","1.0.0"),AT=(_,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(" ");oW.emit({severityNumber:_,severityText:x,body:m,attributes:{"log.source":"console",...N}})},IT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{AT(fT.ERROR,"ERROR",_),IT.error(..._)};console.warn=(..._)=>{AT(fT.WARN,"WARN",_),IT.warn(..._)};console.debug=(..._)=>{AT(fT.DEBUG,"DEBUG",_),IT.debug(..._)};var yT,Pz=0,VT=500;function aW(){if(yT)return;let _=performance.now()+VT;yT=setInterval(()=>{let x=performance.now();Pz=Math.max(0,x-_),_=x+VT},VT),yT.unref?.()}function Qz(){return aW(),Pz}var lW=()=>H_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Xz=()=>H_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Zz=400,eW=100,dW=(_)=>({"db.status":_.level==="error"?"error":"success"}),bW=(_)=>(x)=>{let u=dW(x);if(x.queryDurationMillis>Zz){let N=Qz(),K=N>Zz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:zx()}})}if(lW().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function sW(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=zx(),T=_.idleCount===0&&_.totalCount>=K,m=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Xz().record(E,{"db.pool.outcome":T?"contended":"available"}),E>eW)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 Xz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Lz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Fz(){try{return K_().databasePgSsl}catch{return!1}}function zx(){try{return K_().databasePoolMax}catch{return 10}}function _9(_){let x=sW(new jz({connectionString:_,max:zx(),ssl:Fz(),...Lz})),u=new Wz({pool:x});return{type:"postgres",db:new rW({dialect:u,log:bW(x)}),pool:x}}function R_(){return K_().databaseUrl}function Yz(_){let x=_||R_();return new Wz({pool:new jz({connectionString:x,max:zx(),ssl:Fz(),...Lz})})}function x9(_){let x=_||R_();return _9(x)}async function Dz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===M_)M_=null}var M_=null;function wT(){if(!M_)M_=x9(R_());return M_}async function Hz(_){let u={database:Yz(_||R_()),plugins:[K9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),N9(),T9(),m9(),$9(),E9({loginPage:"/login"}),C9(),z9({sendMagicLink:async()=>{}}),U9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:T}=await u9(u);if(!N.length&&!K.length)return"up to date";return await T(),`${K.length+N.length} table(s) migrated`}async function kT(_,x){return(await o`
|
|
2371
2385
|
SELECT table_name FROM information_schema.tables
|
|
2372
2386
|
WHERE table_schema='public' AND table_name=${x}
|
|
2373
|
-
`.execute(_)).rows.length>0}async function
|
|
2387
|
+
`.execute(_)).rows.length>0}async function J9(_){if(await kT(_,"plugin_migrations"))return;await o`
|
|
2374
2388
|
CREATE TABLE plugin_migrations (
|
|
2375
2389
|
plugin_id TEXT NOT NULL,
|
|
2376
2390
|
name TEXT NOT NULL,
|
|
2377
2391
|
timestamp TEXT NOT NULL,
|
|
2378
2392
|
PRIMARY KEY (plugin_id, name)
|
|
2379
2393
|
)
|
|
2380
|
-
`.execute(_)}async function
|
|
2394
|
+
`.execute(_)}async function P9(_){if(!await kT(_,"kysely_migration"))return;let x=await o`
|
|
2381
2395
|
SELECT name, timestamp FROM kysely_migration
|
|
2382
2396
|
WHERE name LIKE '%/%'
|
|
2383
2397
|
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let K=u;if(u.includes("~plugins/"))K=u.substring(u.indexOf("~plugins/")+9);let 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 +2402,6 @@ var Xz=Object.defineProperty;var Zz=(_)=>_;function Wz(_,x){this[_]=Zz.bind(null
|
|
|
2388
2402
|
WHERE plugin_id = ${m} AND name = ${z}
|
|
2389
2403
|
`.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${m}/${z}, keeping in old table`);continue}}await o`
|
|
2390
2404
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
2391
|
-
`.execute(_)}}async function
|
|
2405
|
+
`.execute(_)}}async function Q9(_){if(!await kT(_,"kysely_migration"))return{};let{rows:x}=await o`
|
|
2392
2406
|
SELECT name FROM kysely_migration
|
|
2393
|
-
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(
|
|
2407
|
+
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Kx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function X9(_){await J9(_),await P9(_);let x=new Mz({db:_,provider:{getMigrations:async()=>({...await Q9(_),...Kx})}}),{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 Z9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Hz();let T=u??wT(),m=async()=>{if(!x&&!u)await Dz(T).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await X9(T.db);return await m(),{betterAuth:K,kysely:z}}catch(z){throw await m(),z}}async function R3(){let _=wT(),x=new Mz({db:_.db,provider:{getMigrations:()=>Promise.resolve(Kx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await Z9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{X9 as runKyselyMigrations,Z9 as migrateToLatest,R3 as migrateDown};
|