decocms 4.439.0 → 4.440.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-DNh15odk.js → AlertCircle-BRBGpzZA.js} +1 -1
- package/dist/client/assets/{AreaChart-DHC4iQTL.js → AreaChart-u6Mr5vHg.js} +1 -1
- package/dist/client/assets/{ArrowLeft-Cqg3j8St.js → ArrowLeft-D_nqQ9tV.js} +1 -1
- package/dist/client/assets/{ArrowUp-6P5DjR1t.js → ArrowUp-DH2IataT.js} +1 -1
- package/dist/client/assets/{CartesianChart-dVe_ZNcS.js → CartesianChart-BACZ_JVe.js} +1 -1
- package/dist/client/assets/{Check-D-yzmwYn.js → Check-CO_ET4WO.js} +1 -1
- package/dist/client/assets/{CheckCircle-rjwyzOFk.js → CheckCircle-RceYLcNO.js} +1 -1
- package/dist/client/assets/{ChevronUp-D60SP3XH.js → ChevronUp-DnrzvZVs.js} +1 -1
- package/dist/client/assets/{Copy01-CB0oESJQ.js → Copy01-BBbKMHlK.js} +1 -1
- package/dist/client/assets/{CreditCard01-D5kRRYiA.js → CreditCard01-D97_uv9-.js} +1 -1
- package/dist/client/assets/{DotsVertical-JQQSHvl4.js → DotsVertical-DA8jC7Sm.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-Bj2oJlhL.js → ErrorBarContext-B25cMhf0.js} +1 -1
- package/dist/client/assets/{Image01-D5rleQuB.js → Image01-AFCLWig4.js} +1 -1
- package/dist/client/assets/{Key01-k7QWuZZQ.js → Key01-DOFfyL8f.js} +1 -1
- package/dist/client/assets/{Line-d6qphZcQ.js → Line-ifQGqba-.js} +1 -1
- package/dist/client/assets/{Link01-Cw5nVzWM.js → Link01-7l6-kKGf.js} +1 -1
- package/dist/client/assets/{LinkBroken01-gwFdcT6K.js → LinkBroken01-t821Qpkz.js} +1 -1
- package/dist/client/assets/{LinkExternal01-DY6YFto3.js → LinkExternal01-CGlBJ7ud.js} +1 -1
- package/dist/client/assets/{Monitor01-CwcZK9j8.js → Monitor01-B8XQMd3B.js} +1 -1
- package/dist/client/assets/{Palette-DjIClyYF.js → Palette-Dcur9L4v.js} +1 -1
- package/dist/client/assets/{Plus-B2OSMT7h.js → Plus-B0dyDF7l.js} +1 -1
- package/dist/client/assets/{SearchMd-zLAR-XV2.js → SearchMd-DWmqXOB3.js} +1 -1
- package/dist/client/assets/{Sector-BpeBpHJh.js → Sector-CjACZniY.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-DodmZnt4.js → ShoppingBag01-CnpFPbsS.js} +1 -1
- package/dist/client/assets/{Sun-BlPxF05z.js → Sun-CnfUJ0L6.js} +1 -1
- package/dist/client/assets/{Tool01-BOjbFJCz.js → Tool01-lC3aADL7.js} +1 -1
- package/dist/client/assets/{Trash01-XL5_ynxe.js → Trash01-DV0azdbE.js} +1 -1
- package/dist/client/assets/{Upload01-BgnfyY39.js → Upload01-DK8FpPmK.js} +1 -1
- package/dist/client/assets/{User01-BmSpscpo.js → User01-BY20MgLM.js} +1 -1
- package/dist/client/assets/{UserSquare-DQSzlDyj.js → UserSquare-bfdtEra2.js} +1 -1
- package/dist/client/assets/{Users01-Cu0IOT-O.js → Users01-qvvwVlrt.js} +1 -1
- package/dist/client/assets/{X-BRJDCcj9.js → X-CMwuaze4.js} +1 -1
- package/dist/client/assets/{XAxis--Ss4V9TD.js → XAxis-WGIN87ND.js} +1 -1
- package/dist/client/assets/{XClose-cblogra0.js → XClose-CzlFjlez.js} +1 -1
- package/dist/client/assets/{ZoomOut-CHBfhru9.js → ZoomOut-D_ifUcHu.js} +1 -1
- package/dist/client/assets/{access-gate-zVG3uMCf.js → access-gate-BOQqTHG4.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-BdGkf6fb.js → add-connection-dialog-BxahNv4G.js} +1 -1
- package/dist/client/assets/{agent-analytics-sie_dmFE.js → agent-analytics-CGaZnDet.js} +1 -1
- package/dist/client/assets/agent-app-HRhkGt4e.js +1 -0
- package/dist/client/assets/{agent-assets-CUmR3DlZ.js → agent-assets-DgwRmMX3.js} +1 -1
- package/dist/client/assets/{agent-automation-CDGnu6LJ.js → agent-automation-Dmx4CuOb.js} +1 -1
- package/dist/client/assets/{agent-automations-DXUFG3pc.js → agent-automations-D49rFQFC.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-Dl3mNUrO.js → agent-connect-sources-C7wp22k7.js} +1 -1
- package/dist/client/assets/agent-deck-C3svsy7Z.js +1 -0
- package/dist/client/assets/{agent-e2e-DLSjrNEX.js → agent-e2e-DNfKyrDH.js} +1 -1
- package/dist/client/assets/{agent-experiments-A4uiLJgr.js → agent-experiments-CxFez-pk.js} +1 -1
- package/dist/client/assets/{agent-file-rvFuO31C.js → agent-file-CeVg9xBG.js} +1 -1
- package/dist/client/assets/{agent-git-DdunhDgp.js → agent-git-CTSmRbRs.js} +1 -1
- package/dist/client/assets/{agent-hosting-DEIJsmW5.js → agent-hosting-DKHsCemp.js} +1 -1
- package/dist/client/assets/{agent-icon-MUEfToW1.js → agent-icon-DV55KTHV.js} +1 -1
- package/dist/client/assets/agent-library-BseoXsKi.js +1 -0
- package/dist/client/assets/agent-library-file-D-k7ToJp.js +1 -0
- package/dist/client/assets/{agent-monitor--cuY5pYG.js → agent-monitor-CmWO_xKA.js} +1 -1
- package/dist/client/assets/{agent-overview-lNYRzsXP.js → agent-overview-QZEmtrKn.js} +1 -1
- package/dist/client/assets/agent-settings-DqFfgmc7.js +1 -0
- package/dist/client/assets/{agent-site-editor-DjqU86NG.js → agent-site-editor-A-DuGZL1.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-4yF8GVCZ.js +2 -0
- package/dist/client/assets/{agent-site-editor-content-DlK0hqc9.js → agent-site-editor-content-D1GHZfYW.js} +3 -3
- package/dist/client/assets/{agent-site-editor-preview-ByIKtrAz.js → agent-site-editor-preview-RNdb_aLF.js} +3 -3
- package/dist/client/assets/agent-view-CASURRu4.js +1 -0
- package/dist/client/assets/{agent-view-guard-ChLJmBP5.js → agent-view-guard-C6pPHYLM.js} +1 -1
- package/dist/client/assets/{agents-list-DoazNNiL.js → agents-list-DrZwJdgg.js} +1 -1
- package/dist/client/assets/{ai-providers-BLWhSwwC.js → ai-providers-C3SDK-es.js} +1 -1
- package/dist/client/assets/{alert-BFHHNxnn.js → alert-D3UeuoXv.js} +1 -1
- package/dist/client/assets/{alert-dialog-DMpR0cgA.js → alert-dialog-D5ehbgbg.js} +1 -1
- package/dist/client/assets/{analytics-sections-Dt3CooMv.js → analytics-sections-8tMy3NSb.js} +1 -1
- package/dist/client/assets/{api-keys-CuS1VRyL.js → api-keys-BGIqZi8b.js} +1 -1
- package/dist/client/assets/api-keys-DQMXRZDM.js +1 -0
- package/dist/client/assets/{app-editor-D3v5ZTbF.js → app-editor-BhQAjgpO.js} +1 -1
- package/dist/client/assets/{asset-utils-B3iwsCJa.js → asset-utils-CzXHTnwN.js} +1 -1
- package/dist/client/assets/{auth-CtKUYryj.js → auth-D62PuyHX.js} +1 -1
- package/dist/client/assets/{auth-catchall-CfvE5cij.js → auth-catchall-B3J-GACW.js} +1 -1
- package/dist/client/assets/{auth-entry-DF4Nif3w.js → auth-entry-BWhEuRSI.js} +1 -1
- package/dist/client/assets/{auth-split-layout-DFGtdXSo.js → auth-split-layout-5urTf-8R.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-B2kuZKVb.js → authenticate-and-persist-oauth-DoNypqY8.js} +1 -1
- package/dist/client/assets/{automation-list-row-BEcMpn8E.js → automation-list-row-6V6__o_w.js} +1 -1
- package/dist/client/assets/{automation-runs-C3b4l0S5.js → automation-runs-DJ3rlQae.js} +1 -1
- package/dist/client/assets/{automations-CYonb4k7.js → automations-DNX-Z3mR.js} +1 -1
- package/dist/client/assets/{autosend-Cm6PSWmI.js → autosend-_7Pn3AYs.js} +1 -1
- package/dist/client/assets/{avatar-ay32d7Rq.js → avatar-HeVuI3WS.js} +1 -1
- package/dist/client/assets/{badge-BI-lLKoq.js → badge-DLk0uZg2.js} +1 -1
- package/dist/client/assets/{block-document-BMgThWIX.js → block-document-HwHxH7Bn.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-CGvBOobb.js → blocks-preview-workspace-context-0CY5kK_i.js} +1 -1
- package/dist/client/assets/{buckets-CE-CN8Z3.js → buckets-DNXFJJmf.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-CIPlVAj1.js → build-improve-prompt-doc-DiiRh6vZ.js} +1 -1
- package/dist/client/assets/{calendar-BrlmwFhH.js → calendar-Bs93rBUA.js} +1 -1
- package/dist/client/assets/{capability-load-error-Ikh4so4d.js → capability-load-error-C1opTYYa.js} +1 -1
- package/dist/client/assets/{category-editor-B1oCGWUg.js → category-editor-BzSt35e8.js} +1 -1
- package/dist/client/assets/{chart-CmddLGXm.js → chart-BswBR4td.js} +1 -1
- package/dist/client/assets/{chat-context-BME83pNr.js → chat-context-CocIg825.js} +1 -1
- package/dist/client/assets/{chat-draft-Cr8A9k3f.js → chat-draft-DVoUlwJ3.js} +1 -1
- package/dist/client/assets/{checkbox-C_fcJ23Z.js → checkbox-C-jsWi4f.js} +1 -1
- package/dist/client/assets/{choose-editor-Ct_hojdT.js → choose-editor-BmR7SGph.js} +1 -1
- package/dist/client/assets/{claim-phase-copy-cMVgzjzE.js → claim-phase-copy-DM-AWuNF.js} +1 -1
- package/dist/client/assets/{cli-auth-success-CgVkfoY6.js → cli-auth-success-BB8BjOg-.js} +1 -1
- package/dist/client/assets/{client-icons-_mUBMG5g.js → client-icons-DLhmJ_Wc.js} +1 -1
- package/dist/client/assets/{collapsible-BKpQ7Moy.js → collapsible-CuGEZkc7.js} +1 -1
- package/dist/client/assets/{collection-detail-faeL9TRY.js → collection-detail-Df1t4CiZ.js} +1 -1
- package/dist/client/assets/{collection-display-button-B2gCuF1B.js → collection-display-button-DcAXDLtF.js} +1 -1
- package/dist/client/assets/{collection-search-DF-hol44.js → collection-search-BVdAr8z7.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-D7rTVAg6.js → collection-table-wrapper-qlvTDDfb.js} +1 -1
- package/dist/client/assets/{collection-tabs-BpMesivQ.js → collection-tabs-D--zl7tk.js} +1 -1
- package/dist/client/assets/{combobox-BqvA6tS8.js → combobox-CaxzDpIX.js} +1 -1
- package/dist/client/assets/{command-CIkNvcpT.js → command-C0uSVAHC.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-CcDk1MlC.js → companion-mcps-section-tdKhwU79.js} +1 -1
- package/dist/client/assets/{config-D3bkYN9z.js → config-BTAHIKaz.js} +1 -1
- package/dist/client/assets/{connect-BuEYQp0G.js → connect-Bj2cQ3O8.js} +1 -1
- package/dist/client/assets/{connect-layout-BKIx1TCS.js → connect-layout-CbgMWnkc.js} +1 -1
- package/dist/client/assets/{connection-DfFT6zSi.js → connection-CWiycsnd.js} +1 -1
- package/dist/client/assets/{connection-card-Cjr4qV1f.js → connection-card-DINEZcyg.js} +1 -1
- package/dist/client/assets/{connection-detail-5M2l4dlO.js → connection-detail-FkV9ORDZ.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-D0VuujW_.js → connection-form-helpers-C825tgC1.js} +1 -1
- package/dist/client/assets/{connections-B_rZEPH1.js → connections-D8I3589k.js} +1 -1
- package/dist/client/assets/{context-PjhNUFtI.js → context-DQeq5C_R.js} +1 -1
- package/dist/client/assets/{context-menu-8QjmDiKV.js → context-menu-BZtI-iYm.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-D8Zq2NdW.js → create-organization-dialog-7qPWrl6e.js} +1 -1
- package/dist/client/assets/{daily-pulse-CD2M2tf5.js → daily-pulse-Bkk6WmeP.js} +1 -1
- package/dist/client/assets/{decopilot-BC1XQuwZ.js → decopilot-2FFmwoNB.js} +1 -1
- package/dist/client/assets/{device-hint-Be0ZjmvP.js → device-hint-DffcSqg_.js} +1 -1
- package/dist/client/assets/{dialog-mikl7FPK.js → dialog-Dw8xcjW3.js} +1 -1
- package/dist/client/assets/{discover-dfa3FdGx.js → discover-DIOje2Ib.js} +1 -1
- package/dist/client/assets/{domain-settings-YY0yjjj3.js → domain-settings-8z8kLU4n.js} +1 -1
- package/dist/client/assets/{download-app-dialog-B78Xzwoc.js → download-app-dialog-BSYwZSLo.js} +1 -1
- package/dist/client/assets/{drawer-D3v6_JsP.js → drawer-Dt1DFlEt.js} +1 -1
- package/dist/client/assets/{editor-D8tpvF9d.js → editor-CX3cazY1.js} +1 -1
- package/dist/client/assets/{empty-state-CkZIUtqW.js → empty-state-BE9_fazN.js} +1 -1
- package/dist/client/assets/{empty-state-C3HLisyP.js → empty-state-Dt2YybO3.js} +1 -1
- package/dist/client/assets/{extract-connection-data-D8uzEbgz.js → extract-connection-data-Cb2jVjCO.js} +1 -1
- package/dist/client/assets/{feature-gate-CSSfV67D.js → feature-gate-B0_tSsnV.js} +1 -1
- package/dist/client/assets/{feature-paywall-QqKok_5s.js → feature-paywall-BgH7Ln-V.js} +1 -1
- package/dist/client/assets/{file-explorer-C5kOKfct.js → file-explorer-Cbx1Ahiy.js} +1 -1
- package/dist/client/assets/{file-preview-BA4pWn9n.js → file-preview-BiCTzlao.js} +1 -1
- package/dist/client/assets/{file-share-button-BcBUJOwa.js → file-share-button-nPArR5GT.js} +1 -1
- package/dist/client/assets/{file-type-icon-BiPcxDCh.js → file-type-icon-DY-An3SA.js} +1 -1
- package/dist/client/assets/flat-project-D6pOpnSj.js +1 -0
- package/dist/client/assets/{folder-icon-A-avv35D.js → folder-icon-BXdHDD5F.js} +1 -1
- package/dist/client/assets/{form-DFhKgLoW.js → form-CqyDHzdF.js} +1 -1
- package/dist/client/assets/{gateway-client-CO0DTYhc.js → gateway-client-Dv06lV8N.js} +1 -1
- package/dist/client/assets/{general-B7JXtMaJ.js → general-m3RIl8ZM.js} +1 -1
- package/dist/client/assets/{home-D3X_QmDS.js → home-DP-XCZ30.js} +1 -1
- package/dist/client/assets/{icon-button-DpSb8Egz.js → icon-button-CzDbjYoM.js} +1 -1
- package/dist/client/assets/{index-BANaWTQj.js → index-8hvPIbgz.js} +1 -1
- package/dist/client/assets/{index-BhtKEZBr.js → index-BBMPGKIn.js} +1 -1
- package/dist/client/assets/{index-z_0ITlK_.js → index-BMb0J2ET.js} +1 -1
- package/dist/client/assets/{index-Iyfhqo9X.js → index-B_4zzu3P.js} +1 -1
- package/dist/client/assets/{index-DiCP27dD.js → index-Co-4sRnJ.js} +4 -4
- package/dist/client/assets/{index-CFlrgMgL.js → index-D0owq1f2.js} +1 -1
- package/dist/client/assets/{index-DJtgWs5g.js → index-D7VCPHbB.js} +3 -3
- package/dist/client/assets/{index-CdhxN82e.js → index-DA-4uVv2.js} +1 -1
- package/dist/client/assets/{index-B7fuDbL1.js → index-DcYvMhsA.js} +1 -1
- package/dist/client/assets/{index-BkXdjZbb.js → index-Dfk-aa2W.js} +1 -1
- package/dist/client/assets/{index-DC0oSvPN.css → index-DjN2oOmz.css} +1 -1
- package/dist/client/assets/{index-BG-txml-.js → index-DySHyK_e.js} +1 -1
- package/dist/client/assets/{index-CUFTVjlL.js → index-DyphIbgX.js} +1 -1
- package/dist/client/assets/{index-CHuCYD81.js → index-MAF8_efg.js} +1 -1
- package/dist/client/assets/{index-NbacZBE-.js → index-P52tuAKC.js} +1 -1
- package/dist/client/assets/{index-7tCYd4Vg.js → index-jL0svWh-.js} +1 -1
- package/dist/client/assets/{index-redirect-Ko3of0UI.js → index-redirect-CrmLnSSn.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-CyHZuz-2.js → infiniteQueryObserver-DJ3A-TdU.js} +1 -1
- package/dist/client/assets/{infra-billing-C0BFdzuF.js → infra-billing-D6q7wZ_0.js} +1 -1
- package/dist/client/assets/{input-DiHRd4r7.js → input-BxLUTBXU.js} +1 -1
- package/dist/client/assets/{input-BVeDaXAt.js → input-CKfCW4iw.js} +1 -1
- package/dist/client/assets/{input-Djcpt5QF.js → input-COrt256w.js} +3 -3
- package/dist/client/assets/{integration-icon-Bao5FeG3.js → integration-icon-CNlbbwne.js} +1 -1
- package/dist/client/assets/{label-D7xsLlpE.js → label-DU_w-ckQ.js} +1 -1
- package/dist/client/assets/{layout-BAB69r-K.js → layout-DpzNGU1W.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-DMZRbqKj.js → legacy-agents-deep-D0IhRF5B.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-As359wx5.js → legacy-main-redirect-Bp-dMEE0.js} +1 -1
- package/dist/client/assets/{library-tab-CHLyyHog.js → library-tab-B5SoCSuy.js} +1 -1
- package/dist/client/assets/library-zwZu2XHX.js +1 -0
- package/dist/client/assets/{login-BxNWinsk.js → login-BabWcQ2i.js} +1 -1
- package/dist/client/assets/{markdown-bwKekgUZ.js → markdown-C9QLOL7g.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-CQvBXjgY.js → mcp-app-renderer-BUT4kPR2.js} +1 -1
- package/dist/client/assets/{mcp-oauth-BXj3mNzg.js → mcp-oauth-BimxrF_f.js} +1 -1
- package/dist/client/assets/{members-FveXAeAV.js → members-Bl784KGm.js} +1 -1
- package/dist/client/assets/{message-templates-Z-5W2V4k.js → message-templates-QcL4DUmR.js} +1 -1
- package/dist/client/assets/{mini-report-page-D-ZojmkU.js → mini-report-page-c9TkUi0R.js} +1 -1
- package/dist/client/assets/{mock-board-BhSA6gG2.js → mock-board-C0ZR6UK2.js} +1 -1
- package/dist/client/assets/{monaco-editor-D6jAaYUJ.js → monaco-editor-CCbTu1Zq.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-CJLoSY1V.js → monitoring-stats-row-Cr6UHFNA.js} +1 -1
- package/dist/client/assets/{multi-select-BgfFNUKh.js → multi-select-9oN2iBx_.js} +1 -1
- package/dist/client/assets/{mustache-fjqzOR6W.js → mustache-CKo61BiR.js} +1 -1
- package/dist/client/assets/{new-project-dialog-BB20uiKn.js → new-project-dialog-CzRX3bqD.js} +1 -1
- package/dist/client/assets/{oauth-callback-BfvXWMRw.js → oauth-callback-DXsrYo58.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-hQ4hVv77.js → oauth-callback-ai-provider-COzXSgab.js} +1 -1
- package/dist/client/assets/{onboarding-PSkWarZ7.js → onboarding-DOpWWbfX.js} +1 -1
- package/dist/client/assets/{openai-conversation-DBU1KXlW.js → openai-conversation-BQ0qlnvJ.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-CnvB9J-O.js → optimistic-project-sidebar-views-D4Emai-D.js} +1 -1
- package/dist/client/assets/{org-file-open-context-D7lCLqWP.js → org-file-open-context-CgCmoW9s.js} +1 -1
- package/dist/client/assets/{organization-choice-CfoAZ3dj.js → organization-choice-COxWAOgI.js} +1 -1
- package/dist/client/assets/{orgs-BA013DQ3.js → orgs-DqUwa1rJ.js} +1 -1
- package/dist/client/assets/{page-seo-form-7gMmDQJA.js → page-seo-form-Bi__p_tv.js} +1 -1
- package/dist/client/assets/{pair-Cevm6d0j.js → pair-BWDj_GIt.js} +1 -1
- package/dist/client/assets/{plan-ladder-aCvCcobI.js → plan-ladder-PugCzyO6.js} +1 -1
- package/dist/client/assets/{popover-DCTrph_D.js → popover-DmlD7L54.js} +1 -1
- package/dist/client/assets/{post-calendar-BpuA9JAu.js → post-calendar-_G3C9FIJ.js} +1 -1
- package/dist/client/assets/{post-editor-BKI84UXc.js → post-editor-CQmc7dyT.js} +1 -1
- package/dist/client/assets/{preview-content-Hk3IWI9Q.js → preview-content-mZxKtDk3.js} +1 -1
- package/dist/client/assets/{preview-dialog-v-YYOVPl.js → preview-dialog-DBbT1IPw.js} +1 -1
- package/dist/client/assets/{profile-CtTYj67N.js → profile-BZHYLZQF.js} +1 -1
- package/dist/client/assets/{project-app-view-mzT7jr0l.js → project-app-view-DHhfL06M.js} +1 -1
- package/dist/client/assets/{project-feed-D3XL-cR1.js → project-feed-BAQmClh0.js} +1 -1
- package/dist/client/assets/{project-icon-Big-MTDO.js → project-icon-CIt25m1v.js} +1 -1
- package/dist/client/assets/project-reports-BPgQePan.js +1 -0
- package/dist/client/assets/project-tasks-Bodr6bBn.js +1 -0
- package/dist/client/assets/{projects-CepdMOvE.js → projects-DkzfKq0o.js} +1 -1
- package/dist/client/assets/{projects-empty-state-vZgPOEGN.js → projects-empty-state-CGWR-feW.js} +1 -1
- package/dist/client/assets/{prompts-UVhYmQ30.js → prompts-DnC6lyZl.js} +1 -1
- package/dist/client/assets/record-editor-CWa5kuX3.js +1 -0
- package/dist/client/assets/{redirect-editor-DjVDiz1X.js → redirect-editor-CchUa0et.js} +1 -1
- package/dist/client/assets/{reports-rTgAGD0e.js → reports-CywIxjj0.js} +1 -1
- package/dist/client/assets/reports-DE_iinGQ.js +1 -0
- package/dist/client/assets/{reports-onboarding-jCEj8RJs.js → reports-onboarding-BwNbweYr.js} +1 -1
- package/dist/client/assets/{reports-tab-0RvL3I5A.js → reports-tab-E_94bQMh.js} +2 -2
- package/dist/client/assets/{repositories-C-ZPaM0R.js → repositories-D18-e4Ht.js} +1 -1
- package/dist/client/assets/{repository-binding-7uLkPgTO.js → repository-binding-B0HdN6Lz.js} +1 -1
- package/dist/client/assets/{repository-import-picker-CJLnodOL.js → repository-import-picker-DBLmxazs.js} +1 -1
- package/dist/client/assets/{repository-picker-BEisb5wQ.js → repository-picker-DIAetLTu.js} +1 -1
- package/dist/client/assets/{require-capability-jbhah2Og.js → require-capability-ngDTKpk-.js} +1 -1
- package/dist/client/assets/{required-auth-layout-BYkqQs2_.js → required-auth-layout-miKcB0rt.js} +1 -1
- package/dist/client/assets/{reset-password-B6tcqXNX.js → reset-password-goI4AN3o.js} +1 -1
- package/dist/client/assets/{resizable-BsCV6tK2.js → resizable-CpyyJXRZ.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-DFeiFaOh.js → resolve-tab-icon-CRFTmUo8.js} +1 -1
- package/dist/client/assets/{review-settings-BiNvlyCs.js → review-settings-bh0EyH5K.js} +1 -1
- package/dist/client/assets/{rich-text-link-control-BZeYaPP7.js → rich-text-link-control-Co6k6OlH.js} +1 -1
- package/dist/client/assets/{roles-DOsWyyAw.js → roles-Dfc6a85e.js} +1 -1
- package/dist/client/assets/{route-jVSRh2Ao.js → route-BUFpECc9.js} +1 -1
- package/dist/client/assets/route-CrrxgfJi.js +1 -0
- package/dist/client/assets/route-DAkaBbdM.js +1 -0
- package/dist/client/assets/{runnable-block-editor-CnJtlMKM.js → runnable-block-editor-CDsWwzF6.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-BAJMUPhe.js → sandbox-lifecycle-context-FrgKEa4u.js} +1 -1
- package/dist/client/assets/{schema-uULRlMFx.js → schema-Bg7Z4WK1.js} +1 -1
- package/dist/client/assets/{scroll-area-DVyEm7OM.js → scroll-area-B-lzB5tO.js} +1 -1
- package/dist/client/assets/{search-input-BD1KUApf.js → search-input-DxispljN.js} +1 -1
- package/dist/client/assets/{search-toggle-M1mnWjNp.js → search-toggle-BUr7OpuE.js} +1 -1
- package/dist/client/assets/{secret-picker-BhFpEdB6.js → secret-picker-Cdibhh7U.js} +1 -1
- package/dist/client/assets/{secrets-DPafm7lX.js → secrets-CConrVDh.js} +1 -1
- package/dist/client/assets/{sections-editor-D6SV8WNT.js → sections-editor-0i-naoBY.js} +1 -1
- package/dist/client/assets/{select-XfsDki64.js → select-CZTYe-RM.js} +1 -1
- package/dist/client/assets/{select-model-DwXOaJtS.js → select-model-CTMl4DBk.js} +1 -1
- package/dist/client/assets/{seo-editor-FqSozPeP.js → seo-editor-Bu8hE-fM.js} +1 -1
- package/dist/client/assets/{separator-kOZLr21y.js → separator-D1tnRKZk.js} +1 -1
- package/dist/client/assets/{settings-tab-Bre5HiIa.js → settings-tab-Bn1uHMT_.js} +1 -1
- package/dist/client/assets/{sheet-B-78DEn-.js → sheet-DYXq70sZ.js} +1 -1
- package/dist/client/assets/{shell-layout-BqGUI9qq.js → shell-layout-HGSCI1cW.js} +1 -1
- package/dist/client/assets/{skills-B6koxdnK.js → skills-DiX3Wo9s.js} +1 -1
- package/dist/client/assets/{sso-eRUC1kMb.js → sso-B97iUHe5.js} +1 -1
- package/dist/client/assets/{suggestion-gvkpO2tS.js → suggestion-BkHBW1eO.js} +1 -1
- package/dist/client/assets/{switch-q3W9ZKax.js → switch-BGCsiekK.js} +1 -1
- package/dist/client/assets/{synced-repos-DmLSe-Io.js → synced-repos-jTLgevgn.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-dHUEuXe7.js → tab-icon-glyph--MlM4zGI.js} +1 -1
- package/dist/client/assets/{table-DP3ml4By.js → table-CPY_9uUo.js} +1 -1
- package/dist/client/assets/{tabs-QsV8VgLb.js → tabs-aXag5nk_.js} +1 -1
- package/dist/client/assets/{task-board-Bsy8g6jg.js → task-board-DV8c5Zhu.js} +1 -1
- package/dist/client/assets/{task-route-DvSaC1w6.js → task-route-DkUw5kJo.js} +1 -1
- package/dist/client/assets/{task-status-DaLuiSZl.js → task-status-C1rdpmGX.js} +1 -1
- package/dist/client/assets/{taskboard-analytics-CPih1fTU.js → taskboard-analytics-DXhKcjBe.js} +1 -1
- package/dist/client/assets/{tasks-BylQtsAP.js → tasks-4av_39uG.js} +1 -1
- package/dist/client/assets/tasks-DMbENiIa.js +1 -0
- package/dist/client/assets/{textarea-BTYU6whs.js → textarea-BwFbzFhR.js} +1 -1
- package/dist/client/assets/{thread-analytics-BcMW4cpe.js → thread-analytics-ZZSgMAeG.js} +1 -1
- package/dist/client/assets/{thread-button-DUMd6Gl5.js → thread-button-D-dNsXV2.js} +1 -1
- package/dist/client/assets/{thread-intent-BUoHTmSs.js → thread-intent-B5r6uX01.js} +1 -1
- package/dist/client/assets/{thread-route-DTtV9-z7.js → thread-route-BAsLNDrI.js} +1 -1
- package/dist/client/assets/{thread-route-Dhlv68Qd.js → thread-route-BtbKeVmC.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-Bl4vCX_3.js → thread-sheet-body-DITXlsnG.js} +1 -1
- package/dist/client/assets/{toggle-group-D4u16ScM.js → toggle-group-CSB3oZUC.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-D6XJE-fW.js → toolbar-icon-button-C8w8sPNx.js} +1 -1
- package/dist/client/assets/{tooltip-Tr2HPvjQ.js → tooltip-CYfkikaX.js} +1 -1
- package/dist/client/assets/{track-DL1FzN4e.js → track-CsuwcppY.js} +1 -1
- package/dist/client/assets/{types-DCGsxM-a.js → types-FVrLJnQ_.js} +1 -1
- package/dist/client/assets/{usage-stats-CWr5CEzC.js → usage-stats-B5xe2MvZ.js} +1 -1
- package/dist/client/assets/{use-ai-providers-B_f1rQjj.js → use-ai-providers-zPZTeTn6.js} +1 -1
- package/dist/client/assets/{use-automations-Cq1O-3i0.js → use-automations-DBkOR8ED.js} +1 -1
- package/dist/client/assets/{use-autosave-CHEjRH5z.js → use-autosave-xZ5zN50O.js} +1 -1
- package/dist/client/assets/{use-chat-layout-state-CT7zBoif.js → use-chat-layout-state-_hTo6qiX.js} +1 -1
- package/dist/client/assets/{use-connect-companion-CfMsP3Rn.js → use-connect-companion-PwrgKsDQ.js} +1 -1
- package/dist/client/assets/{use-connection-DLt6R4bi.js → use-connection-DzHiClla.js} +1 -1
- package/dist/client/assets/{use-copy-CLYTIONg.js → use-copy-kTB71Cx6.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-m11_0WJM.js → use-create-virtual-mcp-BXXlVaJ1.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-1j3nOfJv.js → use-date-fns-locale-DmITod04.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-Yt6HWq-D.js → use-debounced-autosave-8CpUK2dy.js} +1 -1
- package/dist/client/assets/{use-debounced-value-C3sc6opm.js → use-debounced-value-DDoK_9IU.js} +1 -1
- package/dist/client/assets/{use-deco-credits-BMaRSUa6.js → use-deco-credits-DIzsZghd.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-CrIzSMHr.js → use-decopilot-events-BZEZhg3r.js} +1 -1
- package/dist/client/assets/{use-delete-connection-BGvztQK_.js → use-delete-connection-DDnKZtgg.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-CZoIvK7e.js → use-deployment-admin-ApUENcoe.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-D0VACG9d.js → use-fast-preview-draft-url-BZzWJ74e.js} +1 -1
- package/dist/client/assets/{use-file-configs-qerNjBlD.js → use-file-configs-Dckq5B6h.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-dYJQUb5x.js → use-infinite-scroll-CaES8Ly6.js} +1 -1
- package/dist/client/assets/{use-join-requests-BIlkPzgz.js → use-join-requests-CKlzLYmF.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-CY7VBXj1.js → use-main-panel-tabs-BEaE1an6.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-jUIuYcXR.js → use-mcp-auth-status-CEJ_jWCe.js} +1 -1
- package/dist/client/assets/{use-mcp-client-B2MWBaco.js → use-mcp-client-huiboiuW.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-B3G5Db0n.js → use-mcp-prompts-CK7nTCfz.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-BGTSgzQD.js → use-mcp-tools-DrNXuvH-.js} +1 -1
- package/dist/client/assets/{use-members-Co6URFc9.js → use-members-Czj8Or22.js} +1 -1
- package/dist/client/assets/{use-mobile-pQqIDSFe.js → use-mobile-C_c7X_X9.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-DsFIew61.js → use-navigate-to-agent-B8uYHMgO.js} +1 -1
- package/dist/client/assets/use-new-blocks-editor-DRI-powp.js +1 -0
- package/dist/client/assets/{use-open-billing-url-9TGzfMS0.js → use-open-billing-url-ClFzvK5L.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-BsYVB1hJ.js → use-org-auth-client-DGMlZ1DJ.js} +1 -1
- package/dist/client/assets/{use-org-fs-CVraJ6yz.js → use-org-fs-Zkz7cnFM.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-CjTrRQU6.js → use-org-repo-syncs-Bl-zLisR.js} +1 -1
- package/dist/client/assets/{use-org-sso-DEPHrl0A.js → use-org-sso-WomPaWOu.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DIN278U2.js → use-organization-roles-D0rAtkDp.js} +1 -1
- package/dist/client/assets/{use-organization-settings-Bj01eknb.js → use-organization-settings-BXIx1FLP.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-DSCpdSlE.js → use-panel-navigate-9QHW-FCg.js} +1 -1
- package/dist/client/assets/{use-project-scope-CtBx9mRG.js → use-project-scope-Bn-XeyFm.js} +1 -1
- package/dist/client/assets/{use-releases-CniZP6q6.js → use-releases-DXjAp2xg.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-B2JxQzqt.js → use-reports-diagnostic-MPgYdKXV.js} +1 -1
- package/dist/client/assets/{use-secrets-C9609GG4.js → use-secrets-oQfbwqKQ.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-t3MPJMlb.js → use-section-preview-base-CmEtoGbE.js} +1 -1
- package/dist/client/assets/{use-session-runtime-_LaLKVsW.js → use-session-runtime-Mt5i1NtG.js} +1 -1
- package/dist/client/assets/{use-tags-DyCG8Pgp.js → use-tags-Bbqw8zS9.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-x1OhPjoJ.js → use-task-board-analytics-_GYuIvYU.js} +1 -1
- package/dist/client/assets/{use-task-board-events-BWmV0h-s.js → use-task-board-events-CHHrBRNs.js} +1 -1
- package/dist/client/assets/{use-task-metadata-Ci4ti26B.js → use-task-metadata-Bwd62AhF.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-Du-VhVh5.js → use-thread-analytics-BHXCrsPt.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-DmyvMQPi.js → use-thread-outputs-DWqKD4Kd.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-BbXVrX4k.js +1 -0
- package/dist/client/assets/{useQueries-B-98FYC1.js → useQueries-P_HReZM-.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-Ddc-zVFy.js +1 -0
- package/dist/client/assets/{users-isQ6tVka.js → users-D7Dbr_DI.js} +1 -1
- package/dist/client/assets/{utils-DqphBcT3.js → utils-v5cDdvER.js} +1 -1
- package/dist/client/assets/{variant-calendar-DcvcdAAr.js → variant-calendar-ANwfNoin.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-DkXKwTi8.js → variant-matcher-override-UcAv0Nhz.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-DkhaajMC.js → view-mode-toggle-DDXXNR3I.js} +1 -1
- package/dist/client/assets/{virtual-mcp-BC5Jfihj.js → virtual-mcp-TWIqdaTw.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/cli.js +597 -595
- package/dist/server/migrate.js +154 -152
- package/dist/server/server.js +1 -1
- package/package.json +1 -1
- package/dist/client/assets/agent-app-6JHlx-Wc.js +0 -1
- package/dist/client/assets/agent-deck-B05_iIMl.js +0 -1
- package/dist/client/assets/agent-library-DWODQYB3.js +0 -1
- package/dist/client/assets/agent-library-file-B_xfN-mr.js +0 -1
- package/dist/client/assets/agent-settings-C84DY1Qi.js +0 -1
- package/dist/client/assets/agent-site-editor-code-Cn2_bvrE.js +0 -2
- package/dist/client/assets/agent-view-hGrHic_u.js +0 -1
- package/dist/client/assets/api-keys-zZAM-5ss.js +0 -1
- package/dist/client/assets/flat-project-joz7A3io.js +0 -1
- package/dist/client/assets/library-DEKjW-rT.js +0 -1
- package/dist/client/assets/project-reports-Daw_hYhG.js +0 -1
- package/dist/client/assets/project-tasks-CtprO76f.js +0 -1
- package/dist/client/assets/record-editor-CvGzqZ3N.js +0 -1
- package/dist/client/assets/reports-BqUgoTuQ.js +0 -1
- package/dist/client/assets/route-0XzjohZn.js +0 -1
- package/dist/client/assets/route-DERwtrnp.js +0 -1
- package/dist/client/assets/tasks-D8DST2AK.js +0 -1
- package/dist/client/assets/use-new-blocks-editor-vSm_pB4S.js +0 -1
- package/dist/client/assets/useInfiniteQuery-VJ_kzi-a.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-Bw_5F2ui.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null,x)}var m=(_,x)=>{for(var u in x)fT(_,u,{get:x[u],enumerable:!0,configurable:!0,set:ST.bind(x,u)})};import{Migrator as
|
|
2
|
+
var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null,x)}var m=(_,x)=>{for(var u in x)fT(_,u,{get:x[u],enumerable:!0,configurable:!0,set:ST.bind(x,u)})};import{Migrator as yT,sql as q}from"kysely";var e_={};m(e_,{up:()=>AT,down:()=>IT});import{sql as sK}from"kysely";async function AT(_){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",sK`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",sK`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function IT(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var l_={};m(l_,{up:()=>nT,down:()=>wT});import{sql as g}from"kysely";async function nT(_){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 g`ALTER TABLE organization_settings
|
|
3
3
|
DROP COLUMN IF EXISTS registry_config,
|
|
4
|
-
DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await
|
|
4
|
+
DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await g`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
|
|
5
5
|
BEGIN RETURN value::jsonb;
|
|
6
6
|
EXCEPTION WHEN invalid_text_representation THEN RETURN NULL;
|
|
7
7
|
END;
|
|
8
|
-
$fn$ LANGUAGE plpgsql IMMUTABLE`.execute(_),await
|
|
9
|
-
WHERE registry_try_jsonb(metadata) ? 'enabled_plugins'`.execute(_),await
|
|
8
|
+
$fn$ LANGUAGE plpgsql IMMUTABLE`.execute(_),await g`UPDATE connections SET metadata = (registry_try_jsonb(metadata) - 'enabled_plugins')::text
|
|
9
|
+
WHERE registry_try_jsonb(metadata) ? 'enabled_plugins'`.execute(_),await g`DROP FUNCTION registry_try_jsonb(text)`.execute(_),await g`DELETE FROM connection_aggregations WHERE child_connection_id IN (
|
|
10
10
|
SELECT id FROM connections
|
|
11
11
|
WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
|
|
12
12
|
OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
|
|
13
13
|
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')
|
|
14
|
-
)`.execute(_),await
|
|
14
|
+
)`.execute(_),await g`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 wT(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var
|
|
17
|
+
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function wT(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var d_={};m(d_,{up:()=>VT,down:()=>kT});import{sql as bK}from"kysely";async function VT(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await bK`
|
|
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 C of x.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(N))continue;for(let z of N){let T=z?.host,E=z?.secretId;if(typeof T!=="string"||!T)continue;if(typeof E!=="string"||!E)continue;let $=u.get(C.organization_id)??new Map;$.set(T,E),u.set(C.organization_id,$)}}let K=new Date().toISOString();for(let[C,N]of u){let z=JSON.stringify([...N].map(([T,E])=>({host:T,secretId:E})));await
|
|
23
|
+
`.execute(_),u=new Map;for(let C of x.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(N))continue;for(let z of N){let T=z?.host,E=z?.secretId;if(typeof T!=="string"||!T)continue;if(typeof E!=="string"||!E)continue;let $=u.get(C.organization_id)??new Map;$.set(T,E),u.set(C.organization_id,$)}}let K=new Date().toISOString();for(let[C,N]of u){let z=JSON.stringify([...N].map(([T,E])=>({host:T,secretId:E})));await bK`
|
|
24
24
|
insert into organization_settings
|
|
25
25
|
("organizationId", submodule_credentials, "createdAt", "updatedAt")
|
|
26
26
|
values (${C}, ${z}, ${K}, ${K})
|
|
27
27
|
on conflict ("organizationId") do update
|
|
28
28
|
set submodule_credentials = excluded.submodule_credentials,
|
|
29
29
|
"updatedAt" = excluded."updatedAt"
|
|
30
|
-
`.execute(_)}}async function kT(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var
|
|
30
|
+
`.execute(_)}}async function kT(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var s_={};m(s_,{up:()=>pT,down:()=>vT});async function pT(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function vT(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var _x={};m(_x,{up:()=>qT,down:()=>gT});import{sql as b_}from"kysely";async function qT(_){await b_`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await b_`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await b_`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function gT(_){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 ux={};m(ux,{up:()=>cT,down:()=>hT});import{sql as L}from"kysely";var iT={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"}},tT={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 _N(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function xN(_,x){for(let[C,N]of[[L`organization_id || '_commerce-discovery'`,iT],[L`'commerce-discovery_' || organization_id`,tT]])for(let z of["title","description"]){let{from:T,to:E}=_N(N[z],x);await L`
|
|
31
31
|
UPDATE connections
|
|
32
32
|
SET ${L.ref(z)} = ${E}
|
|
33
33
|
WHERE id = ${C}
|
|
@@ -41,7 +41,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
41
41
|
RETURN NULL;
|
|
42
42
|
END;
|
|
43
43
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
44
|
-
`.execute(_);let{from:u,to:K}=
|
|
44
|
+
`.execute(_);let{from:u,to:K}=_N(xx.label,x);await L`
|
|
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 fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.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(${L.val(u)}::text[])
|
|
61
61
|
THEN v || jsonb_build_object('label', ${K}::text)
|
|
62
62
|
ELSE v
|
|
@@ -72,7 +72,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.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(${L.val(u)}::text[])
|
|
77
77
|
)
|
|
78
78
|
)
|
|
@@ -80,7 +80,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
80
80
|
SET metadata = r.m::text
|
|
81
81
|
FROM relabeled r
|
|
82
82
|
WHERE c.id = r.id
|
|
83
|
-
`.execute(_),await L`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function cT(_){await
|
|
83
|
+
`.execute(_),await L`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function cT(_){await xN(_,"up")}async function hT(_){await xN(_,"down")}var Cx={};m(Cx,{up:()=>aT,down:()=>rT,ACTIONS:()=>mx});import{sql as d}from"kysely";var mx=["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"],oT=mx.filter((_)=>_!=="finding_resolved");async function aT(_){await uN(_,mx)}async function rT(_){await d`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await uN(_,oT)}async function uN(_,x){await d`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await d`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${d.join(x.map((u)=>d.lit(u)))}))`.execute(_)}var Kx={};m(Kx,{up:()=>eT,down:()=>lT});import{sql as Z_}from"kysely";async function eT(_){await Z_`
|
|
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
|
|
@@ -100,7 +100,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
100
100
|
DROP COLUMN from_key,
|
|
101
101
|
DROP COLUMN from_statuses,
|
|
102
102
|
DROP COLUMN from_kind
|
|
103
|
-
`.execute(_)}var
|
|
103
|
+
`.execute(_)}var Nx={};m(Nx,{up:()=>dT,down:()=>sT});import{sql as mN}from"kysely";async function dT(_){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(mN`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(mN`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 sT(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Tx={};m(Tx,{up:()=>uz,down:()=>mz});import{sql as s}from"kysely";import{webcrypto as KN}from"crypto";var CN="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var bT=128,p,i;function _z(_){if(!p||p.length<_)p=Buffer.allocUnsafe(_*bT),KN.getRandomValues(p),i=0;else if(i+_>p.length)KN.getRandomValues(p),i=0;i+=_}function I(_=21){_z(_|=0);let x="";for(let u=i-_;u<i;u++)x+=CN[p[u]&63];return x}var xz=["JIRA_ISSUE_SEARCH","JIRA_ISSUE_GET","JIRA_COMMENT_ADD","JIRA_ISSUE_TRANSITION","JIRA_REMOTE_LINK_ADD","JIRA_ISSUE_CREATE","JIRA_ATTACHMENT_DOWNLOAD","JIRA_BOARD_COLUMNS_LIST","JIRA_AUTOMATION_LIST","JIRA_RUN_START"];async function uz(_){let{rows:x}=await s`
|
|
104
104
|
SELECT i.organization_id, i.created_by
|
|
105
105
|
FROM org_jira_integrations i
|
|
106
106
|
WHERE i.enabled = true
|
|
@@ -137,8 +137,8 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
137
137
|
`.execute(_)}}async function mz(_){await s`
|
|
138
138
|
DELETE FROM connection_aggregations
|
|
139
139
|
WHERE parent_connection_id LIKE 'studio-jira\\_%'
|
|
140
|
-
`.execute(_),await s`DELETE FROM connections WHERE id LIKE 'studio-jira\\_%'`.execute(_)}var
|
|
141
|
-
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function Nz(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var
|
|
140
|
+
`.execute(_),await s`DELETE FROM connections WHERE id LIKE 'studio-jira\\_%'`.execute(_)}var zx={};m(zx,{up:()=>Kz,down:()=>Nz});import{sql as Cz}from"kysely";async function Kz(_){await Cz`ALTER TABLE organization_settings
|
|
141
|
+
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function Nz(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var Ex={};m(Ex,{up:()=>Tz,down:()=>zz});import{sql as NN}from"kysely";async function Tz(_){await NN`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function zz(_){await NN`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var Px={};m(Px,{up:()=>Ez,down:()=>Pz});import{sql as F}from"kysely";async function Ez(_){await F`
|
|
142
142
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
143
143
|
RETURNS jsonb AS $fn$
|
|
144
144
|
BEGIN
|
|
@@ -239,17 +239,17 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
239
239
|
)::text
|
|
240
240
|
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
241
241
|
AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
|
|
242
|
-
`.execute(_),await F`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var
|
|
242
|
+
`.execute(_),await F`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var Ux={};m(Ux,{up:()=>$z,down:()=>Uz});import{sql as $x}from"kysely";async function $z(_){await $x`ALTER TABLE git_provider_accounts
|
|
243
243
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
244
244
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
245
245
|
CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
|
|
246
246
|
ADD CONSTRAINT git_provider_accounts_cli_check
|
|
247
247
|
CHECK (auth_kind <> 'github_cli' OR
|
|
248
|
-
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function Uz(_){await
|
|
248
|
+
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function Uz(_){await $x`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await $x`ALTER TABLE git_provider_accounts
|
|
249
249
|
DROP CONSTRAINT git_provider_accounts_cli_check,
|
|
250
250
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
251
251
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
252
|
-
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var
|
|
252
|
+
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var Xx={};m(Xx,{up:()=>Xz,down:()=>jz});import{sql as TN}from"kysely";async function Xz(_){await TN`
|
|
253
253
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
254
254
|
SELECT
|
|
255
255
|
'org_user_fs',
|
|
@@ -263,9 +263,9 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
263
263
|
END,
|
|
264
264
|
now()
|
|
265
265
|
ON CONFLICT (id) DO NOTHING
|
|
266
|
-
`.execute(_)}async function jz(_){await
|
|
266
|
+
`.execute(_)}async function jz(_){await TN`
|
|
267
267
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
268
|
-
`.execute(_)}var
|
|
268
|
+
`.execute(_)}var jx={};m(jx,{up:()=>Qz,down:()=>Zz});async function Qz(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function Zz(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Qx={};m(Qx,{up:()=>Jz,down:()=>Wz});async function Jz(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function Wz(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var Zx={};m(Zx,{up:()=>Lz,down:()=>Fz});import{sql as b}from"kysely";var Dz=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function zN(_,x){for(let{table:u,column:K}of Dz){let C=`${u}_${K}_check`,N=x.map((z)=>`'${z}'`).join(", ");await b.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await b.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${K} IN (${N}))`).execute(_)}}async function Lz(_){await zN(_,["github","gitlab","bitbucket"])}async function Fz(_){await b`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await b`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await b`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await zN(_,["github","gitlab"])}var Jx={};m(Jx,{up:()=>Yz,down:()=>Hz});import{sql as J_}from"kysely";async function Yz(_){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(J_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(J_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(J_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(J_`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 Hz(_){await _.schema.dropTable("experiments").execute()}var Wx={};m(Wx,{up:()=>Mz,down:()=>Bz});import{sql as Rz}from"kysely";async function Mz(_){await Rz`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function Bz(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Lx={};m(Lx,{up:()=>yz,down:()=>fz,ACTIONS:()=>Dx});import{sql as __}from"kysely";var Dx=["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"],Gz=Dx.filter((_)=>_!=="duplicate_reported");async function yz(_){await EN(_,Dx)}async function fz(_){await __`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await EN(_,Gz)}async function EN(_,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 Fx={};m(Fx,{up:()=>Oz,down:()=>Sz});async function Oz(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function Sz(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Yx={};m(Yx,{up:()=>Az,down:()=>Iz});async function Az(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function Iz(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Hx={};m(Hx,{up:()=>wz,down:()=>Vz});import{sql as nz}from"kysely";async function wz(_){await nz`
|
|
269
269
|
CREATE TABLE github_connect_flows (
|
|
270
270
|
id text PRIMARY KEY,
|
|
271
271
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -275,7 +275,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
275
275
|
);
|
|
276
276
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
277
277
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
278
|
-
`.execute(_)}async function Vz(_){await _.schema.dropTable("github_connect_flows").execute()}var
|
|
278
|
+
`.execute(_)}async function Vz(_){await _.schema.dropTable("github_connect_flows").execute()}var Rx={};m(Rx,{up:()=>kz,down:()=>pz});async function kz(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function pz(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Mx={};m(Mx,{up:()=>vz,down:()=>qz});import{sql as W_}from"kysely";async function vz(_){await W_`
|
|
279
279
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
280
280
|
DECLARE
|
|
281
281
|
metadata_json jsonb;
|
|
@@ -331,7 +331,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
331
331
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
332
332
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
333
333
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
334
|
-
`.execute(_)}async function qz(_){await W_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await W_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Mx={};m(Mx,{up:()=>gz,down:()=>iz});import{sql as y}from"kysely";async function gz(_){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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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(y`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(y`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(y`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(y`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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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 iz(_){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 Bx={};m(Bx,{up:()=>tz,down:()=>cz});import{sql as EN}from"kysely";async function tz(_){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(EN`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(EN`CURRENT_TIMESTAMP`)).execute()}async function cz(_){await _.schema.dropTable("organization_settings").execute()}var Gx={};m(Gx,{up:()=>hz,down:()=>oz});async function hz(_){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 oz(_){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 yx={};m(yx,{up:()=>az,down:()=>rz});async function az(_){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 rz(_){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 fx={};m(fx,{up:()=>ez,down:()=>lz});async function ez(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function lz(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Ox={};m(Ox,{up:()=>sz,down:()=>bz});import{sql as dz}from"kysely";async function sz(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",dz`text`).execute()}async function bz(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Sx={};m(Sx,{up:()=>_E,down:()=>xE});async function _E(_){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 xE(_){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 Ax={};m(Ax,{up:()=>uE,down:()=>mE});import{sql as x_}from"kysely";async function uE(_){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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(x_`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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(x_`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(x_`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 mE(_){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 Ix={};m(Ix,{up:()=>KE,down:()=>NE});import{sql as CE}from"kysely";async function KE(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function NE(_){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(CE`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 nx={};m(nx,{up:()=>TE,down:()=>zE});import{sql as D_}from"kysely";async function TE(_){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(D_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D_`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(D_`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 D_`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 zE(_){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 wx={};m(wx,{up:()=>EE,down:()=>PE});async function EE(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function PE(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Vx={};m(Vx,{up:()=>$E,down:()=>UE});import{sql as L_}from"kysely";async function $E(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await L_`
|
|
334
|
+
`.execute(_)}async function qz(_){await W_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await W_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Bx={};m(Bx,{up:()=>gz,down:()=>iz});import{sql as y}from"kysely";async function gz(_){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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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(y`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(y`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(y`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(y`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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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 iz(_){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 Gx={};m(Gx,{up:()=>tz,down:()=>cz});import{sql as PN}from"kysely";async function tz(_){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(PN`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(PN`CURRENT_TIMESTAMP`)).execute()}async function cz(_){await _.schema.dropTable("organization_settings").execute()}var yx={};m(yx,{up:()=>hz,down:()=>oz});async function hz(_){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 oz(_){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 fx={};m(fx,{up:()=>az,down:()=>rz});async function az(_){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 rz(_){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 Ox={};m(Ox,{up:()=>ez,down:()=>lz});async function ez(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function lz(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Sx={};m(Sx,{up:()=>sz,down:()=>bz});import{sql as dz}from"kysely";async function sz(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",dz`text`).execute()}async function bz(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Ax={};m(Ax,{up:()=>_E,down:()=>xE});async function _E(_){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 xE(_){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 Ix={};m(Ix,{up:()=>uE,down:()=>mE});import{sql as x_}from"kysely";async function uE(_){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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(x_`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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(x_`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(x_`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 mE(_){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 nx={};m(nx,{up:()=>KE,down:()=>NE});import{sql as CE}from"kysely";async function KE(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function NE(_){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(CE`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 wx={};m(wx,{up:()=>TE,down:()=>zE});import{sql as D_}from"kysely";async function TE(_){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(D_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D_`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(D_`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 D_`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 zE(_){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 Vx={};m(Vx,{up:()=>EE,down:()=>PE});async function EE(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function PE(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var kx={};m(kx,{up:()=>$E,down:()=>UE});import{sql as L_}from"kysely";async function $E(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await L_`
|
|
335
335
|
UPDATE gateways
|
|
336
336
|
SET tool_selection_mode = CASE
|
|
337
337
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
@@ -343,7 +343,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
343
343
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
344
344
|
ELSE NULL
|
|
345
345
|
END
|
|
346
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var
|
|
346
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var px={};m(px,{up:()=>XE,down:()=>jE});async function XE(_){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 jE(_){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 vx={};m(vx,{up:()=>QE,down:()=>ZE});async function QE(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function ZE(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var qx={};m(qx,{up:()=>JE,down:()=>WE});async function JE(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function WE(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var gx={};m(gx,{up:()=>DE,down:()=>LE});async function DE(_){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 LE(_){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 ix={};m(ix,{up:()=>YE,down:()=>HE});import{sql as FE}from"kysely";async function YE(_){await FE`
|
|
347
347
|
DELETE FROM downstream_tokens
|
|
348
348
|
WHERE id NOT IN (
|
|
349
349
|
SELECT id FROM (
|
|
@@ -353,7 +353,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
353
353
|
) ranked
|
|
354
354
|
WHERE rn = 1
|
|
355
355
|
)
|
|
356
|
-
`.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 HE(_){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
|
|
356
|
+
`.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 HE(_){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 tx={};m(tx,{up:()=>RE,down:()=>ME});async function RE(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function ME(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var cx={};m(cx,{up:()=>BE,down:()=>GE});import{sql as $N}from"kysely";async function BE(_){await $N`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function GE(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await $N`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var hx={};m(hx,{up:()=>yE,down:()=>fE});async function yE(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function fE(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var ox={};m(ox,{up:()=>OE,down:()=>SE});import{sql as F_}from"kysely";async function OE(_){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(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("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(F_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F_`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 SE(_){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 ax={};m(ax,{up:()=>AE,down:()=>IE});async function AE(_){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 IE(_){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 rx={};m(rx,{up:()=>nE,down:()=>wE});async function nE(_){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 wE(_){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 ex={};m(ex,{up:()=>VE,down:()=>kE});import{sql as W}from"kysely";async function VE(_){await W`
|
|
357
357
|
INSERT INTO connections (
|
|
358
358
|
id,
|
|
359
359
|
organization_id,
|
|
@@ -410,7 +410,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
410
410
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
411
411
|
FROM connections
|
|
412
412
|
WHERE connection_type = 'VIRTUAL'
|
|
413
|
-
`.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 W`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
|
|
413
|
+
`.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 W`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 lx={};m(lx,{up:()=>pE,down:()=>vE});async function pE(_){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 vE(_){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 dx={};m(dx,{up:()=>qE,down:()=>gE});import{sql as f}from"kysely";async function qE(_){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(f`CURRENT_TIMESTAMP`)).execute(),await f`
|
|
414
414
|
INSERT INTO connection_aggregations_new (
|
|
415
415
|
id, parent_connection_id, child_connection_id,
|
|
416
416
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -428,7 +428,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
428
428
|
id, parent_connection_id, child_connection_id,
|
|
429
429
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
430
430
|
FROM connection_aggregations
|
|
431
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await f`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await f`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await f`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
|
|
431
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await f`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await f`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await f`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 bx={};m(bx,{up:()=>iE,down:()=>tE});import{sql as sx}from"kysely";async function iE(_){await sx`
|
|
432
432
|
UPDATE connections
|
|
433
433
|
SET connection_url = connection_url || '/management',
|
|
434
434
|
tools = NULL,
|
|
@@ -436,39 +436,39 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
436
436
|
WHERE connection_url LIKE '%/mcp'
|
|
437
437
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
438
438
|
AND app_name = '@deco/management-mcp'
|
|
439
|
-
`.execute(_),await
|
|
439
|
+
`.execute(_),await sx`
|
|
440
440
|
UPDATE connections
|
|
441
441
|
SET tools = NULL,
|
|
442
442
|
updated_at = CURRENT_TIMESTAMP
|
|
443
443
|
WHERE app_name = '@deco/management-mcp'
|
|
444
444
|
AND tools IS NOT NULL
|
|
445
|
-
`.execute(_)}async function tE(_){await
|
|
445
|
+
`.execute(_)}async function tE(_){await sx`
|
|
446
446
|
UPDATE connections
|
|
447
447
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
448
448
|
updated_at = CURRENT_TIMESTAMP
|
|
449
449
|
WHERE connection_url LIKE '%/mcp/management'
|
|
450
450
|
AND app_name = '@deco/management-mcp'
|
|
451
|
-
`.execute(_)}var
|
|
451
|
+
`.execute(_)}var xu={};m(xu,{up:()=>cE,down:()=>hE});import{sql as _u}from"kysely";async function cE(_){await _u`
|
|
452
452
|
UPDATE connections
|
|
453
453
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
454
454
|
tools = NULL,
|
|
455
455
|
updated_at = CURRENT_TIMESTAMP
|
|
456
456
|
WHERE connection_url LIKE '%/mcp/management'
|
|
457
457
|
AND app_name = '@deco/management-mcp'
|
|
458
|
-
`.execute(_),await
|
|
458
|
+
`.execute(_),await _u`
|
|
459
459
|
UPDATE connections
|
|
460
460
|
SET tools = NULL,
|
|
461
461
|
updated_at = CURRENT_TIMESTAMP
|
|
462
462
|
WHERE connection_url LIKE '%/mcp/self'
|
|
463
463
|
AND app_name = '@deco/management-mcp'
|
|
464
464
|
AND tools IS NOT NULL
|
|
465
|
-
`.execute(_)}async function hE(_){await
|
|
465
|
+
`.execute(_)}async function hE(_){await _u`
|
|
466
466
|
UPDATE connections
|
|
467
467
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
468
468
|
updated_at = CURRENT_TIMESTAMP
|
|
469
469
|
WHERE connection_url LIKE '%/mcp/self'
|
|
470
470
|
AND app_name = '@deco/management-mcp'
|
|
471
|
-
`.execute(_)}var
|
|
471
|
+
`.execute(_)}var uu={};m(uu,{up:()=>oE,down:()=>aE});async function oE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function aE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var mu={};m(mu,{up:()=>rE,down:()=>eE});import{sql as UN}from"kysely";async function rE(_){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(UN`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(UN`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 eE(_){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={};m(Cu,{up:()=>lE,down:()=>dE});import{sql as u_}from"kysely";async function lE(_){await u_`
|
|
472
472
|
ALTER TABLE connection_aggregations
|
|
473
473
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
474
474
|
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function dE(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await u_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await u_`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(u_`CURRENT_TIMESTAMP`)).execute(),await u_`
|
|
@@ -480,42 +480,42 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
480
480
|
id, parent_connection_id, child_connection_id,
|
|
481
481
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
482
482
|
FROM connection_aggregations
|
|
483
|
-
`.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
|
|
483
|
+
`.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 Ku={};m(Ku,{up:()=>_0,down:()=>x0});var sE="org-admin",bE="Organization Admin";async function _0(_){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 K=new Date().toISOString(),C=`proj_${I()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:sE,name:bE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:K,updated_at:K}).execute()}}async function x0(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var Nu={};m(Nu,{up:()=>u0,down:()=>m0});async function u0(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function m0(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var Tu={};m(Tu,{up:()=>C0,down:()=>K0});async function C0(_){}async function K0(_){}var zu={};m(zu,{up:()=>N0,down:()=>T0});async function N0(_){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 T0(_){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 Eu={};m(Eu,{up:()=>z0,down:()=>E0});import{sql as XN}from"kysely";async function z0(_){await XN`
|
|
484
484
|
UPDATE connections
|
|
485
485
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
486
486
|
tools = NULL,
|
|
487
487
|
updated_at = CURRENT_TIMESTAMP
|
|
488
488
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
489
489
|
AND app_name = 'deco-registry'
|
|
490
|
-
`.execute(_)}async function E0(_){await
|
|
490
|
+
`.execute(_)}async function E0(_){await XN`
|
|
491
491
|
UPDATE connections
|
|
492
492
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
493
493
|
updated_at = CURRENT_TIMESTAMP
|
|
494
494
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
495
495
|
AND app_name = 'deco-registry'
|
|
496
|
-
`.execute(_)}var
|
|
496
|
+
`.execute(_)}var Pu={};m(Pu,{up:()=>$0,down:()=>U0});import{sql as P0}from"kysely";async function $0(_){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(P0`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 U0(_){await _.schema.dropTable("ai_provider_keys").execute()}var $u={};m($u,{up:()=>j0,down:()=>Q0});import{sql as X0}from"kysely";async function j0(_){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(X0`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function Q0(_){await _.schema.dropTable("oauth_pkce_states").execute()}var Uu={};m(Uu,{up:()=>Z0,down:()=>J0});import{sql as n}from"kysely";async function Z0(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(n`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(n`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n`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(n`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(n`CURRENT_TIMESTAMP`)).execute(),await n`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await n`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await n`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 J0(_){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 Xu={};m(Xu,{up:()=>W0,down:()=>D0});async function W0(_){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 D0(_){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 ju={};m(ju,{up:()=>L0,down:()=>F0});async function L0(_){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 F0(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Qu={};m(Qu,{up:()=>Y0,down:()=>H0});import{sql as jN}from"kysely";async function Y0(_){await jN`
|
|
497
497
|
UPDATE connections
|
|
498
498
|
SET title = 'CMS MCP',
|
|
499
499
|
tools = NULL,
|
|
500
500
|
updated_at = CURRENT_TIMESTAMP
|
|
501
501
|
WHERE app_name = '@deco/management-mcp'
|
|
502
|
-
`.execute(_)}async function H0(_){await
|
|
502
|
+
`.execute(_)}async function H0(_){await jN`
|
|
503
503
|
UPDATE connections
|
|
504
504
|
SET title = 'Mesh MCP',
|
|
505
505
|
updated_at = CURRENT_TIMESTAMP
|
|
506
506
|
WHERE app_name = '@deco/management-mcp'
|
|
507
|
-
`.execute(_)}var
|
|
507
|
+
`.execute(_)}var Zu={};m(Zu,{up:()=>R0,down:()=>M0});import{sql as QN}from"kysely";async function R0(_){await QN`
|
|
508
508
|
UPDATE connections
|
|
509
509
|
SET title = 'Deco CMS',
|
|
510
510
|
tools = NULL,
|
|
511
511
|
updated_at = CURRENT_TIMESTAMP
|
|
512
512
|
WHERE app_name = '@deco/management-mcp'
|
|
513
|
-
`.execute(_)}async function M0(_){await
|
|
513
|
+
`.execute(_)}async function M0(_){await QN`
|
|
514
514
|
UPDATE connections
|
|
515
515
|
SET title = 'CMS MCP',
|
|
516
516
|
updated_at = CURRENT_TIMESTAMP
|
|
517
517
|
WHERE app_name = '@deco/management-mcp'
|
|
518
|
-
`.execute(_)}var
|
|
518
|
+
`.execute(_)}var Ju={};m(Ju,{up:()=>B0,down:()=>G0});async function B0(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function G0(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var Wu={};m(Wu,{up:()=>y0,down:()=>f0});async function y0(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function f0(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var Lu={};m(Lu,{up:()=>O0,down:()=>S0});import{sql as Du}from"kysely";async function O0(_){await Du`
|
|
519
519
|
UPDATE organization_settings
|
|
520
520
|
SET enabled_plugins = (
|
|
521
521
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -524,7 +524,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
524
524
|
)
|
|
525
525
|
WHERE enabled_plugins IS NOT NULL
|
|
526
526
|
AND enabled_plugins LIKE '%object-storage%'
|
|
527
|
-
`.execute(_),await
|
|
527
|
+
`.execute(_),await Du`
|
|
528
528
|
UPDATE projects
|
|
529
529
|
SET enabled_plugins = (
|
|
530
530
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -533,28 +533,28 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
533
533
|
)
|
|
534
534
|
WHERE enabled_plugins IS NOT NULL
|
|
535
535
|
AND enabled_plugins LIKE '%object-storage%'
|
|
536
|
-
`.execute(_),await
|
|
536
|
+
`.execute(_),await Du`
|
|
537
537
|
DELETE FROM project_plugin_configs
|
|
538
538
|
WHERE plugin_id = 'object-storage'
|
|
539
|
-
`.execute(_)}async function S0(_){}var
|
|
539
|
+
`.execute(_)}async function S0(_){}var Fu={};m(Fu,{up:()=>A0,down:()=>I0});import{sql as ZN}from"kysely";async function A0(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await ZN`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function I0(_){await ZN`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var Hu={};m(Hu,{up:()=>n0,down:()=>w0});import{sql as Yu}from"kysely";async function n0(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await Yu`
|
|
540
540
|
ALTER TABLE connections
|
|
541
541
|
ADD CONSTRAINT chk_connections_subtype
|
|
542
542
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
543
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
543
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await Yu`
|
|
544
544
|
UPDATE connections
|
|
545
545
|
SET subtype = 'agent'
|
|
546
546
|
WHERE connection_type = 'VIRTUAL'
|
|
547
|
-
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(T)=>T.primaryKey()).addColumn("virtual_mcp_id","text",(T)=>T.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(T)=>T.notNull()).addColumn("connection_id","text",(T)=>T.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(T)=>T.notNull()).addColumn("updated_at","text",(T)=>T.notNull()).execute(),await _.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(),K=new Map;for(let T of u)K.set(T.organizationId,T.userId);let C=new Map;for(let T of x){let E=`vir_${I()}`;C.set(T.id,E);let $=T.ui?JSON.parse(T.ui):null,U=JSON.stringify({enabled_plugins:T.enabled_plugins?JSON.parse(T.enabled_plugins):null,ui:$,migrated_from_project:T.id,migrated_project_slug:T.slug}),Z=K.get(T.organization_id);if(!Z)continue;await _.insertInto("connections").values({id:E,organization_id:T.organization_id,created_by:Z,updated_by:null,title:T.name,description:T.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:T.created_at,updated_at:T.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let T of N){let E=C.get(T.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${I()}`,parent_connection_id:E,child_connection_id:T.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:T.created_at}).onConflict(($)=>$.doNothing()).execute()}let z=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let T of z){let E=C.get(T.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${I()}`,virtual_mcp_id:E,plugin_id:T.plugin_id,connection_id:T.connection_id,settings:T.settings,created_at:T.created_at,updated_at:T.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function w0(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await
|
|
547
|
+
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(T)=>T.primaryKey()).addColumn("virtual_mcp_id","text",(T)=>T.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(T)=>T.notNull()).addColumn("connection_id","text",(T)=>T.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(T)=>T.notNull()).addColumn("updated_at","text",(T)=>T.notNull()).execute(),await _.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(),K=new Map;for(let T of u)K.set(T.organizationId,T.userId);let C=new Map;for(let T of x){let E=`vir_${I()}`;C.set(T.id,E);let $=T.ui?JSON.parse(T.ui):null,U=JSON.stringify({enabled_plugins:T.enabled_plugins?JSON.parse(T.enabled_plugins):null,ui:$,migrated_from_project:T.id,migrated_project_slug:T.slug}),Z=K.get(T.organization_id);if(!Z)continue;await _.insertInto("connections").values({id:E,organization_id:T.organization_id,created_by:Z,updated_by:null,title:T.name,description:T.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:T.created_at,updated_at:T.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let T of N){let E=C.get(T.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${I()}`,parent_connection_id:E,child_connection_id:T.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:T.created_at}).onConflict(($)=>$.doNothing()).execute()}let z=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let T of z){let E=C.get(T.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${I()}`,virtual_mcp_id:E,plugin_id:T.plugin_id,connection_id:T.connection_id,settings:T.settings,created_at:T.created_at,updated_at:T.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function w0(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Yu`
|
|
548
548
|
ALTER TABLE connections
|
|
549
549
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
550
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
550
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var Ru={};m(Ru,{up:()=>k0,down:()=>p0});import{sql as V0}from"kysely";async function k0(_){await V0`
|
|
551
551
|
DELETE FROM connections
|
|
552
552
|
WHERE connection_type = 'VIRTUAL'
|
|
553
553
|
AND subtype = 'project'
|
|
554
554
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
555
|
-
`.execute(_)}async function p0(_){}var
|
|
555
|
+
`.execute(_)}async function p0(_){}var Mu={};m(Mu,{up:()=>q0,down:()=>g0});import{sql as v0}from"kysely";async function q0(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await v0`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function g0(_){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 Gu={};m(Gu,{up:()=>i0,down:()=>t0});import{sql as Bu}from"kysely";async function i0(_){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(Bu`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Bu`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(Bu`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 t0(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var yu={};m(yu,{up:()=>c0,down:()=>h0});async function c0(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function h0(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var fu={};m(fu,{up:()=>o0,down:()=>a0});async function o0(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function a0(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var Su={};m(Su,{up:()=>e0,down:()=>l0});import{sql as JN}from"kysely";function Ou(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function r0(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),K=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return Ou(K)}catch{return Ou(_.connection_url)}if(_.title)return Ou(_.title);return _.id}async function e0(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await JN`
|
|
556
556
|
SELECT id, app_name, connection_url, title FROM connections
|
|
557
|
-
`.execute(_);for(let u of x.rows){let K=r0(u);await
|
|
557
|
+
`.execute(_);for(let u of x.rows){let K=r0(u);await JN`UPDATE connections SET slug = ${K} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function l0(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var Au={};m(Au,{up:()=>d0,down:()=>s0});import{sql as m_}from"kysely";async function d0(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await m_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await m_`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 s0(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await m_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await m_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await m_`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 Iu={};m(Iu,{up:()=>b0,down:()=>_P});async function b0(_){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 _P(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var nu={};m(nu,{up:()=>xP,down:()=>uP});import{sql as Y_}from"kysely";async function xP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await Y_`
|
|
558
558
|
UPDATE threads
|
|
559
559
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
560
560
|
WHERE agent_ids IS NOT NULL
|
|
@@ -571,27 +571,27 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
571
571
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
572
572
|
ELSE '[]'
|
|
573
573
|
END
|
|
574
|
-
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var
|
|
574
|
+
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var wu={};m(wu,{up:()=>mP,down:()=>CP});async function mP(_){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 CP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Vu={};m(Vu,{up:()=>KP,down:()=>NP});async function KP(_){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 NP(_){await _.schema.dropTable("kv").execute()}var ku={};m(ku,{up:()=>TP,down:()=>zP});async function TP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function zP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var pu={};m(pu,{up:()=>EP,down:()=>PP});async function EP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function PP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var vu={};m(vu,{up:()=>$P,down:()=>UP});import{sql as Y}from"kysely";async function $P(_){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(Y`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Y`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 Y`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(Y`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Y`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 Y`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(Y`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(Y`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(Y`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(Y`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Y`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 UP(_){await _.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await _.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await _.schema.dropTable("private_registry_publish_request").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await _.schema.dropTable("private_registry_item").ifExists().execute()}var qu={};m(qu,{up:()=>XP,down:()=>jP});import{sql as t}from"kysely";async function XP(_){await t`
|
|
575
575
|
ALTER TABLE event_subscriptions
|
|
576
576
|
ALTER COLUMN enabled DROP DEFAULT
|
|
577
|
-
`.execute(_),await
|
|
577
|
+
`.execute(_),await t`
|
|
578
578
|
ALTER TABLE event_subscriptions
|
|
579
579
|
ALTER COLUMN enabled TYPE boolean
|
|
580
580
|
USING enabled::boolean
|
|
581
|
-
`.execute(_),await
|
|
581
|
+
`.execute(_),await t`
|
|
582
582
|
ALTER TABLE event_subscriptions
|
|
583
583
|
ALTER COLUMN enabled SET DEFAULT true
|
|
584
|
-
`.execute(_)}async function jP(_){await
|
|
584
|
+
`.execute(_)}async function jP(_){await t`
|
|
585
585
|
ALTER TABLE event_subscriptions
|
|
586
586
|
ALTER COLUMN enabled DROP DEFAULT
|
|
587
|
-
`.execute(_),await
|
|
587
|
+
`.execute(_),await t`
|
|
588
588
|
ALTER TABLE event_subscriptions
|
|
589
589
|
ALTER COLUMN enabled TYPE integer
|
|
590
590
|
USING enabled::integer
|
|
591
|
-
`.execute(_),await
|
|
591
|
+
`.execute(_),await t`
|
|
592
592
|
ALTER TABLE event_subscriptions
|
|
593
593
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
594
|
-
`.execute(_)}var
|
|
594
|
+
`.execute(_)}var gu={};m(gu,{up:()=>QP,down:()=>ZP});import{sql as WN}from"kysely";async function QP(_){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(WN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(WN`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function ZP(_){await _.schema.dropTable("brand_context").execute()}var iu={};m(iu,{up:()=>JP,down:()=>WP});import{sql as DN}from"kysely";async function JP(_){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(DN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(DN`now()`)).execute()}async function WP(_){await _.schema.dropTable("organization_domains").execute()}var tu={};m(tu,{up:()=>YP,down:()=>HP});import{sql as LN}from"kysely";var H_=new Set(["primary","secondary","accent","background","foreground"]),DP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function LP(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>H_.has(C))){let C={};for(let[N,z]of Object.entries(u)){if(typeof z!=="string")continue;if(H_.has(N))C[N]=z;else x[N]=z}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let K={};for(let[C,N]of Object.entries(u)){if(typeof N!=="string")continue;if(H_.has(C.toLowerCase()))K[C.toLowerCase()]=N;else x[C]=N}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}if(Array.isArray(_)){let u={};for(let K of _){let C=K,N=C.label?.toLowerCase?.(),z=C.value;if(!N||!z)continue;if(H_.has(N))u[N]=z;else x[N]=z}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function FP(_){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 K of _){let C=K,N=C.name??C.family??void 0,z=C.role?.toLowerCase?.()??"";if(!N)continue;let T=DP[z];if(T&&!x[T])x[T]=N;else u.push(N)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function YP(_){let x=await LN`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let K=!1,C=!1,N=!1,z=u.colors,T=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=LP($);if(z=U.structured,K=!0,Object.keys(U.extra).length>0)E.extraColors=U.extra,N=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))T=FP($),C=!0}catch{}if(K||C||N){let $=N?JSON.stringify(E):u.metadata;await LN`
|
|
595
595
|
UPDATE brand_context
|
|
596
596
|
SET
|
|
597
597
|
colors = ${z},
|
|
@@ -599,13 +599,13 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
599
599
|
metadata = ${$},
|
|
600
600
|
updated_at = NOW()
|
|
601
601
|
WHERE id = ${u.id}
|
|
602
|
-
`.execute(_)}}}async function HP(_){}var
|
|
602
|
+
`.execute(_)}}}async function HP(_){}var cu={};m(cu,{up:()=>MP,down:()=>BP});import{sql as RP}from"kysely";async function MP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(RP`'{}'::jsonb`)).execute()}async function BP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var hu={};m(hu,{up:()=>GP,down:()=>yP});async function GP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function yP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var ou={};m(ou,{up:()=>fP,down:()=>OP});async function fP(_){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 OP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var au={};m(au,{up:()=>SP,down:()=>AP});async function SP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function AP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var ru={};m(ru,{up:()=>IP,down:()=>nP});async function IP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function nP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var eu={};m(eu,{up:()=>wP,down:()=>VP});async function wP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function VP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var lu={};m(lu,{up:()=>pP,down:()=>vP});import{sql as FN}from"kysely";var kP=["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 pP(_){let x=await FN`
|
|
603
603
|
SELECT id, permission FROM "organizationRole"
|
|
604
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let K;try{K=JSON.parse(u.permission)}catch{continue}let C=K.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,z=Array.from(new Set([...N,...kP]));if(z.length===N.length)continue;K.self=z;let T=JSON.stringify(K);await
|
|
604
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let K;try{K=JSON.parse(u.permission)}catch{continue}let C=K.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,z=Array.from(new Set([...N,...kP]));if(z.length===N.length)continue;K.self=z;let T=JSON.stringify(K);await FN`
|
|
605
605
|
UPDATE "organizationRole"
|
|
606
606
|
SET permission = ${T}
|
|
607
607
|
WHERE id = ${u.id}
|
|
608
|
-
`.execute(_)}}async function vP(_){}var
|
|
608
|
+
`.execute(_)}}async function vP(_){}var du={};m(du,{up:()=>qP,down:()=>gP});async function qP(_){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 gP(_){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 su={};m(su,{up:()=>iP,down:()=>tP});async function iP(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function tP(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var bu={};m(bu,{up:()=>cP,down:()=>hP});import{sql as C_}from"kysely";async function cP(_){await C_`
|
|
609
609
|
UPDATE automations
|
|
610
610
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
611
611
|
WHERE virtual_mcp_id IS NULL
|
|
@@ -621,7 +621,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
621
621
|
`.execute(_),await C_`
|
|
622
622
|
ALTER TABLE automations
|
|
623
623
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
624
|
-
`.execute(_)}var
|
|
624
|
+
`.execute(_)}var xm={};m(xm,{up:()=>eP,reshapeSimpleMode:()=>YN,inferAutomationTier:()=>HN,down:()=>lP,__testing:()=>rP});var oP={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},aP=["fast","smart","thinking","image","web_research"];function _m(_){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 aP.some((K)=>(K in u))}function YN(_){if(_m(_))return _;let x=_,u=x?.enabled===!0,K=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return oP;return{tiers:{fast:K(x?.chat?.fast),smart:K(x?.chat?.smart),thinking:K(x?.chat?.thinking),image:K(x?.image),web_research:K(x?.webResearch)}}}function HN(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function RN(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((K)=>_[K]===void 0)}var rP={isAlreadyReshapedSimpleMode:_m,isAlreadyReshapedAutomationModels:RN};async function eP(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let K of x){let C=K.simple_mode?typeof K.simple_mode==="string"?JSON.parse(K.simple_mode):K.simple_mode:null;if(_m(C))continue;let N=YN(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(N)}).where("organizationId","=",K.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let K of u){let C;try{C=typeof K.models==="string"?JSON.parse(K.models):K.models}catch{C={}}if(RN(C))continue;let N=HN(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:N})}).where("id","=",K.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${K.id} previously used an image-only model; mapped to "${N}"`)}}async function lP(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var um={};m(um,{up:()=>dP,down:()=>sP});import{sql as S}from"kysely";async function dP(_){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 S`
|
|
625
625
|
ALTER TABLE automations
|
|
626
626
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
627
627
|
`.execute(_),await S`
|
|
@@ -646,16 +646,16 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
646
646
|
`.execute(_)}async function sP(_){await S`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await S`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await S`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await S`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await S`
|
|
647
647
|
ALTER TABLE automations
|
|
648
648
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
649
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var
|
|
649
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var mm={};m(mm,{up:()=>_$,down:()=>x$});import{sql as MN}from"kysely";var bP=new Set(["host","docker","agent-sandbox"]);async function _$(_){let x=await MN`
|
|
650
650
|
SELECT id, metadata FROM "connections"
|
|
651
651
|
WHERE connection_type = 'VIRTUAL'
|
|
652
652
|
AND metadata IS NOT NULL
|
|
653
653
|
AND metadata LIKE '%vmMap%'
|
|
654
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let K;try{K=JSON.parse(u.metadata)}catch{continue}let C=K.vmMap;if(!C||typeof C!=="object")continue;let N=!1,z={};for(let[E,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Z,j]of Object.entries($)){if(!j||typeof j!=="object"){N=!0;continue}let G=j.runnerKind;if(G!==void 0&&!bP.has(G)){N=!0;continue}U[Z]=j}if(Object.keys(U).length>0)z[E]=U;else N=!0}if(!N)continue;K.vmMap=z;let T=JSON.stringify(K);await
|
|
654
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let K;try{K=JSON.parse(u.metadata)}catch{continue}let C=K.vmMap;if(!C||typeof C!=="object")continue;let N=!1,z={};for(let[E,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Z,j]of Object.entries($)){if(!j||typeof j!=="object"){N=!0;continue}let G=j.runnerKind;if(G!==void 0&&!bP.has(G)){N=!0;continue}U[Z]=j}if(Object.keys(U).length>0)z[E]=U;else N=!0}if(!N)continue;K.vmMap=z;let T=JSON.stringify(K);await MN`
|
|
655
655
|
UPDATE "connections"
|
|
656
656
|
SET metadata = ${T}
|
|
657
657
|
WHERE id = ${u.id}
|
|
658
|
-
`.execute(_)}}async function x$(_){}var
|
|
658
|
+
`.execute(_)}}async function x$(_){}var Cm={};m(Cm,{up:()=>u$,down:()=>m$});import{sql as K_}from"kysely";async function u$(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(K_`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(K_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(K_`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 K_`
|
|
659
659
|
CREATE INDEX async_research_jobs_active_idx
|
|
660
660
|
ON async_research_jobs (status, last_polled_at)
|
|
661
661
|
WHERE status IN ('pending', 'polling')
|
|
@@ -663,24 +663,24 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
663
663
|
ALTER TABLE async_research_jobs
|
|
664
664
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
665
665
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
666
|
-
`.execute(_)}async function m$(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var
|
|
666
|
+
`.execute(_)}async function m$(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var Km={};m(Km,{up:()=>C$,down:()=>K$});async function C$(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function K$(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var Nm={};m(Nm,{up:()=>N$,down:()=>T$});import{sql as c}from"kysely";async function N$(_){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(c`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(c`CURRENT_TIMESTAMP`)).execute(),await c`
|
|
667
667
|
ALTER TABLE secrets
|
|
668
668
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
669
|
-
`.execute(_),await
|
|
669
|
+
`.execute(_),await c`
|
|
670
670
|
ALTER TABLE secrets
|
|
671
671
|
ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
|
|
672
672
|
(scope = 'user' AND user_id IS NOT NULL)
|
|
673
673
|
OR (scope = 'organization' AND user_id IS NULL)
|
|
674
674
|
)
|
|
675
|
-
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await
|
|
675
|
+
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await c`
|
|
676
676
|
CREATE UNIQUE INDEX idx_secrets_user_name
|
|
677
677
|
ON secrets (organization_id, user_id, lower(name))
|
|
678
678
|
WHERE scope = 'user'
|
|
679
|
-
`.execute(_),await
|
|
679
|
+
`.execute(_),await c`
|
|
680
680
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
681
681
|
ON secrets (organization_id, lower(name))
|
|
682
682
|
WHERE scope = 'organization'
|
|
683
|
-
`.execute(_)}async function T$(_){await _.schema.dropTable("secrets").execute()}var
|
|
683
|
+
`.execute(_)}async function T$(_){await _.schema.dropTable("secrets").execute()}var Tm={};m(Tm,{up:()=>z$,down:()=>E$});async function z$(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function E$(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var zm={};m(zm,{up:()=>$$,down:()=>U$});import{sql as P$}from"kysely";async function $$(_){await P$`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function U$(_){}var Em={};m(Em,{up:()=>X$,down:()=>j$});import{sql as R_}from"kysely";async function X$(_){await R_`
|
|
684
684
|
ALTER TABLE sandbox_runner_state
|
|
685
685
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
686
686
|
`.execute(_),await R_`
|
|
@@ -756,7 +756,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
756
756
|
EXCEPTION WHEN undefined_table THEN
|
|
757
757
|
NULL;
|
|
758
758
|
END; $$
|
|
759
|
-
`.execute(_)}var
|
|
759
|
+
`.execute(_)}var Pm={};m(Pm,{up:()=>Q$,down:()=>Z$});import{sql as BN}from"kysely";async function Q$(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await BN`
|
|
760
760
|
DO $$ BEGIN
|
|
761
761
|
UPDATE virtualmcps v
|
|
762
762
|
SET metadata = jsonb_set(
|
|
@@ -795,7 +795,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
795
795
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
796
796
|
NULL;
|
|
797
797
|
END; $$
|
|
798
|
-
`.execute(_)}async function Z$(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await
|
|
798
|
+
`.execute(_)}async function Z$(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await BN`
|
|
799
799
|
DO $$ BEGIN
|
|
800
800
|
UPDATE virtualmcps v
|
|
801
801
|
SET metadata = jsonb_set(
|
|
@@ -828,7 +828,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
828
828
|
EXCEPTION WHEN undefined_table THEN
|
|
829
829
|
NULL;
|
|
830
830
|
END; $$
|
|
831
|
-
`.execute(_)}var
|
|
831
|
+
`.execute(_)}var $m={};m($m,{up:()=>J$,down:()=>W$});import{sql as GN}from"kysely";async function J$(_){await GN`
|
|
832
832
|
UPDATE connections c
|
|
833
833
|
SET metadata = (
|
|
834
834
|
jsonb_set(
|
|
@@ -872,7 +872,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
872
872
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
873
873
|
WHERE entry ? 'vmId'
|
|
874
874
|
);
|
|
875
|
-
`.execute(_),await
|
|
875
|
+
`.execute(_),await GN`
|
|
876
876
|
UPDATE connections c
|
|
877
877
|
SET metadata = (
|
|
878
878
|
jsonb_set(
|
|
@@ -926,10 +926,10 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
926
926
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
927
927
|
WHERE inner_entry ? 'runnerKind'
|
|
928
928
|
);
|
|
929
|
-
`.execute(_)}async function W$(_){}var
|
|
929
|
+
`.execute(_)}async function W$(_){}var Um={};m(Um,{up:()=>L$,down:()=>F$});import{sql as D$}from"kysely";async function L$(_){await D$`
|
|
930
930
|
DELETE FROM ai_provider_keys
|
|
931
931
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
932
|
-
`.execute(_)}async function F$(_){}var
|
|
932
|
+
`.execute(_)}async function F$(_){}var Xm={};m(Xm,{up:()=>Y$,down:()=>H$});import{sql as M_}from"kysely";async function Y$(_){await M_`
|
|
933
933
|
UPDATE sandbox_runner_state
|
|
934
934
|
SET sandbox_provider_kind = 'desktop'
|
|
935
935
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
@@ -1027,13 +1027,13 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1027
1027
|
UPDATE threads
|
|
1028
1028
|
SET sandbox_provider_kind = 'desktop'
|
|
1029
1029
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1030
|
-
`.execute(_)}async function H$(_){}var
|
|
1030
|
+
`.execute(_)}async function H$(_){}var jm={};m(jm,{up:()=>R$,down:()=>M$});import{sql as N_}from"kysely";async function R$(_){await N_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await N_`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 M$(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await N_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await N_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await N_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var Qm={};m(Qm,{up:()=>B$,down:()=>G$});import{sql as yN}from"kysely";async function B$(_){await yN`
|
|
1031
1031
|
ALTER TABLE organization_domains
|
|
1032
1032
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
1033
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function G$(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await
|
|
1033
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function G$(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await yN`
|
|
1034
1034
|
ALTER TABLE organization_domains
|
|
1035
1035
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
1036
|
-
`.execute(_)}var
|
|
1036
|
+
`.execute(_)}var Zm={};m(Zm,{up:()=>y$,down:()=>f$});import{sql as B_}from"kysely";async function y$(_){await B_`
|
|
1037
1037
|
UPDATE sandbox_runner_state
|
|
1038
1038
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
1039
1039
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -1122,16 +1122,16 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1122
1122
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1123
1123
|
AND c.metadata IS NOT NULL
|
|
1124
1124
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
1125
|
-
`.execute(_)}async function f$(_){}var
|
|
1125
|
+
`.execute(_)}async function f$(_){}var Jm={};m(Jm,{up:()=>S$,down:()=>A$});import{sql as fN}from"kysely";var O$=["GLOBAL_SEARCH"];async function S$(_){let x=await fN`
|
|
1126
1126
|
SELECT id, permission FROM "organizationRole"
|
|
1127
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let K;try{K=JSON.parse(u.permission)}catch{continue}let C=K.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,z=Array.from(new Set([...N,...O$]));if(z.length===N.length)continue;K.self=z;let T=JSON.stringify(K);await
|
|
1127
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let K;try{K=JSON.parse(u.permission)}catch{continue}let C=K.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,z=Array.from(new Set([...N,...O$]));if(z.length===N.length)continue;K.self=z;let T=JSON.stringify(K);await fN`
|
|
1128
1128
|
UPDATE "organizationRole"
|
|
1129
1129
|
SET permission = ${T}
|
|
1130
1130
|
WHERE id = ${u.id}
|
|
1131
|
-
`.execute(_)}}async function A$(_){}var
|
|
1131
|
+
`.execute(_)}}async function A$(_){}var Dm={};m(Dm,{up:()=>I$,down:()=>n$});import{sql as Wm}from"kysely";async function I$(_){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(Wm`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Wm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await Wm`
|
|
1132
1132
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
1133
1133
|
ON org_file_configs (organization_id, lower(name))
|
|
1134
|
-
`.execute(_)}async function n$(_){await _.schema.dropTable("org_file_configs").execute()}var
|
|
1134
|
+
`.execute(_)}async function n$(_){await _.schema.dropTable("org_file_configs").execute()}var Lm={};m(Lm,{up:()=>w$,down:()=>V$});import{sql as A}from"kysely";async function w$(_){await A`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await A`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await A`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await A`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await A`
|
|
1135
1135
|
ALTER TABLE automations
|
|
1136
1136
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
1137
1137
|
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function V$(_){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 A`
|
|
@@ -1156,16 +1156,16 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1156
1156
|
AND tool_input IS NOT NULL
|
|
1157
1157
|
)
|
|
1158
1158
|
)
|
|
1159
|
-
`.execute(_)}var
|
|
1159
|
+
`.execute(_)}var Fm={};m(Fm,{up:()=>k$,down:()=>p$});async function k$(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function p$(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var Hm={};m(Hm,{up:()=>v$,down:()=>q$});import{sql as Ym}from"kysely";var G_="local-docker";async function v$(_){await Ym`delete from sandbox_runner_state where sandbox_provider_kind = ${G_}`.execute(_);let x=await Ym`
|
|
1160
1160
|
SELECT id, metadata FROM "connections"
|
|
1161
1161
|
WHERE connection_type = 'VIRTUAL'
|
|
1162
1162
|
AND metadata IS NOT NULL
|
|
1163
1163
|
AND metadata LIKE ${"%"+G_+"%"}
|
|
1164
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let K;try{K=JSON.parse(u.metadata)}catch{continue}let C=K.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,z={};for(let[E,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Z,j]of Object.entries($)){if(!j||typeof j!=="object"){N=!0;continue}if(G_ in j){N=!0;let G={...j};if(delete G[G_],Object.keys(G).length>0)U[Z]=G}else U[Z]=j}if(Object.keys(U).length>0)z[E]=U;else N=!0}if(!N)continue;K.sandboxMap=z;let T=JSON.stringify(K);await
|
|
1164
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let K;try{K=JSON.parse(u.metadata)}catch{continue}let C=K.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,z={};for(let[E,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Z,j]of Object.entries($)){if(!j||typeof j!=="object"){N=!0;continue}if(G_ in j){N=!0;let G={...j};if(delete G[G_],Object.keys(G).length>0)U[Z]=G}else U[Z]=j}if(Object.keys(U).length>0)z[E]=U;else N=!0}if(!N)continue;K.sandboxMap=z;let T=JSON.stringify(K);await Ym`
|
|
1165
1165
|
UPDATE "connections"
|
|
1166
1166
|
SET metadata = ${T}
|
|
1167
1167
|
WHERE id = ${u.id}
|
|
1168
|
-
`.execute(_)}}async function q$(_){}var
|
|
1168
|
+
`.execute(_)}}async function q$(_){}var Rm={};m(Rm,{up:()=>g$,down:()=>i$});import{sql as y_}from"kysely";async function g$(_){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 y_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await y_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await y_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await y_`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 i$(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var Mm={};m(Mm,{up:()=>t$,down:()=>c$});async function t$(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function c$(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var Bm={};m(Bm,{up:()=>h$,down:()=>o$});async function h$(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function o$(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var Gm={};m(Gm,{up:()=>a$,down:()=>r$});async function a$(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function r$(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var ym={};m(ym,{up:()=>e$,down:()=>l$});async function e$(_){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 l$(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var fm={};m(fm,{up:()=>d$,down:()=>s$});async function d$(_){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 s$(_){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 Sm={};m(Sm,{up:()=>_U,down:()=>xU});import{sql as O}from"kysely";var H="cluster",R="agent-sandbox";function h(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function Om(_,x,u){if(!h(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function f_(_){if(!h(_))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!==H&&_.sandboxProviderKind!==R&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!h(_.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 b$(_,x,u){if(!h(_))return null;let K=!1,C={};for(let[N,z]of Object.entries(_)){if(!h(z)){C[N]=z;continue}let T={};for(let[E,$]of Object.entries(z)){if(!h($)){T[E]=$;continue}let U={};for(let[Z,j]of Object.entries($)){if(Z===x){if(K=!0,!(u in $))U[u]=Om(j,x,u);else if(!f_($[u])&&f_(j))U[u]=Om(j,x,u);continue}let G=Om(j,x,u);if(G!==j)K=!0;if(Z===u&&Z in U&&f_(U[Z])&&!f_(G))continue;U[Z]=G}T[E]=U}C[N]=T}return{sandboxMap:C,changed:K}}async function ON(_,x,u){let K=await O`
|
|
1169
1169
|
SELECT id, metadata FROM connections
|
|
1170
1170
|
WHERE connection_type = 'VIRTUAL'
|
|
1171
1171
|
AND metadata IS NOT NULL
|
|
@@ -1203,7 +1203,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1203
1203
|
UPDATE sandbox_runner_state
|
|
1204
1204
|
SET sandbox_provider_kind = ${R}
|
|
1205
1205
|
WHERE sandbox_provider_kind = ${H}
|
|
1206
|
-
`.execute(_),await
|
|
1206
|
+
`.execute(_),await ON(_,H,R)}async function xU(_){await O`
|
|
1207
1207
|
UPDATE threads
|
|
1208
1208
|
SET sandbox_provider_kind = ${H}
|
|
1209
1209
|
WHERE sandbox_provider_kind = ${R}
|
|
@@ -1232,7 +1232,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1232
1232
|
UPDATE sandbox_runner_state
|
|
1233
1233
|
SET sandbox_provider_kind = ${H}
|
|
1234
1234
|
WHERE sandbox_provider_kind = ${R}
|
|
1235
|
-
`.execute(_),await
|
|
1235
|
+
`.execute(_),await ON(_,R,H)}var Am={};m(Am,{up:()=>uU,down:()=>mU});import{sql as w}from"kysely";async function uU(_){await w`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(w`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(w`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(w`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 w`
|
|
1236
1236
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1237
1237
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1238
1238
|
WHERE deleted_at IS NULL
|
|
@@ -1240,7 +1240,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1240
1240
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1241
1241
|
ON org_fs_entry (organization_id, volume, size)
|
|
1242
1242
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1243
|
-
`.execute(_)}async function mU(_){await _.schema.dropTable("org_fs_entry").execute(),await w`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var
|
|
1243
|
+
`.execute(_)}async function mU(_){await _.schema.dropTable("org_fs_entry").execute(),await w`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var Im={};m(Im,{up:()=>CU,down:()=>KU});async function CU(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function KU(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var nm={};m(nm,{up:()=>NU,down:()=>TU});import{sql as SN}from"kysely";async function NU(_){await SN`
|
|
1244
1244
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1245
1245
|
SELECT
|
|
1246
1246
|
'org_orgfs_public_skills',
|
|
@@ -1254,13 +1254,13 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1254
1254
|
END,
|
|
1255
1255
|
now()
|
|
1256
1256
|
ON CONFLICT (id) DO NOTHING
|
|
1257
|
-
`.execute(_)}async function TU(_){await
|
|
1257
|
+
`.execute(_)}async function TU(_){await SN`
|
|
1258
1258
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1259
|
-
`.execute(_)}var
|
|
1259
|
+
`.execute(_)}var wm={};m(wm,{up:()=>zU,down:()=>EU});async function zU(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function EU(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Vm={};m(Vm,{up:()=>PU,down:()=>$U});import{sql as AN}from"kysely";async function PU(_){await AN`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function $U(_){await AN`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var km={};m(km,{up:()=>XU,down:()=>jU});import{sql as UU}from"kysely";async function XU(_){await UU`
|
|
1260
1260
|
UPDATE downstream_tokens
|
|
1261
1261
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1262
1262
|
WHERE "expiresAt" IS NULL
|
|
1263
|
-
`.execute(_)}async function jU(_){}var
|
|
1263
|
+
`.execute(_)}async function jU(_){}var pm={};m(pm,{up:()=>QU,down:()=>ZU});async function QU(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function ZU(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var vm={};m(vm,{up:()=>JU,down:()=>WU});async function JU(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function WU(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var qm={};m(qm,{up:()=>DU,down:()=>LU});async function DU(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function LU(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var gm={};m(gm,{up:()=>FU,down:()=>YU});async function FU(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function YU(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var im={};m(im,{up:()=>HU,down:()=>RU});async function HU(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function RU(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var tm={};m(tm,{up:()=>MU,down:()=>BU});import{sql as IN}from"kysely";async function MU(_){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(IN`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(IN`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function BU(_){await _.schema.dropTable("org_sites").execute()}var cm={};m(cm,{up:()=>GU,down:()=>yU});async function GU(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function yU(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var hm={};m(hm,{up:()=>fU,down:()=>OU});import{sql as D}from"kysely";async function fU(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await D`
|
|
1264
1264
|
UPDATE organization_domains
|
|
1265
1265
|
SET
|
|
1266
1266
|
id = gen_random_uuid()::text,
|
|
@@ -1272,15 +1272,15 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1272
1272
|
`.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await D`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function OU(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await D`
|
|
1273
1273
|
UPDATE organization_domains
|
|
1274
1274
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
1275
|
-
`.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var
|
|
1275
|
+
`.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var om={};m(om,{up:()=>SU,down:()=>AU});import{sql as O_}from"kysely";async function SU(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(O_`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(O_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(O_`now()`)).execute(),await O_`
|
|
1276
1276
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1277
1277
|
ON organization_join_requests (organization_id, user_id)
|
|
1278
1278
|
WHERE status = 'pending'
|
|
1279
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function AU(_){await _.schema.dropTable("organization_join_requests").execute()}var
|
|
1279
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function AU(_){await _.schema.dropTable("organization_join_requests").execute()}var am={};m(am,{up:()=>IU,down:()=>nU});async function IU(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function nU(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var rm={};m(rm,{up:()=>wU,down:()=>VU});async function wU(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function VU(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var dm={};m(dm,{up:()=>vU,splitWebResearchTier:()=>lm,down:()=>qU,__testing:()=>pU});function kU(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function em(_){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 lm(_){if(!_||em(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:K,...C}=x,N=null,z=null;if(u)if(kU(u.modelId))z=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:z}}}var pU={splitWebResearchTier:lm,isAlreadySplit:em};async function vU(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let K=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(em(K))continue;let C=lm(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function qU(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var sm={};m(sm,{up:()=>gU,down:()=>iU});import{sql as T_}from"kysely";async function gU(_){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(T_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(T_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await T_`
|
|
1280
1280
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1281
1281
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1282
1282
|
WHERE revoked_at IS NULL
|
|
1283
|
-
`.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(T_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(T_`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 iU(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var
|
|
1283
|
+
`.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(T_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(T_`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 iU(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var bm={};m(bm,{up:()=>tU,down:()=>cU});async function tU(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function cU(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var _C={};m(_C,{up:()=>hU,down:()=>oU});import{sql as v}from"kysely";async function hU(_){await v`
|
|
1284
1284
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1285
1285
|
RETURNS jsonb AS $fn$
|
|
1286
1286
|
BEGIN
|
|
@@ -1339,7 +1339,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1339
1339
|
BEFORE INSERT ON connection_aggregations
|
|
1340
1340
|
FOR EACH ROW
|
|
1341
1341
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1342
|
-
`.execute(_)}async function oU(_){await v`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await v`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await v`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var
|
|
1342
|
+
`.execute(_)}async function oU(_){await v`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await v`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await v`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var uC={};m(uC,{up:()=>aU,down:()=>rU});import{sql as xC}from"kysely";async function aU(_){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(xC`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(xC`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(xC`false`)).execute()}async function rU(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var mC={};m(mC,{up:()=>eU,down:()=>lU});async function eU(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function lU(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var CC={};m(CC,{up:()=>dU,down:()=>sU});async function dU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function sU(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var KC={};m(KC,{up:()=>bU,down:()=>_X});async function bU(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function _X(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var NC={};m(NC,{up:()=>uX,down:()=>mX});import{sql as xX}from"kysely";async function uX(_){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(xX`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 mX(_){await _.schema.dropTable("task_board_item_threads").execute()}var TC={};m(TC,{up:()=>CX,down:()=>KX});async function CX(_){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 KX(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var zC={};m(zC,{up:()=>TX,down:()=>zX});import{sql as NX}from"kysely";async function TX(_){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(NX`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 zX(_){await _.schema.dropTable("task_board_item_prs").execute()}var EC={};m(EC,{up:()=>PX,down:()=>$X});import{sql as EX}from"kysely";async function PX(_){await EX`
|
|
1343
1343
|
DELETE FROM member
|
|
1344
1344
|
WHERE id IN (
|
|
1345
1345
|
SELECT id FROM (
|
|
@@ -1358,38 +1358,38 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1358
1358
|
) ranked
|
|
1359
1359
|
WHERE ranked.rn > 1
|
|
1360
1360
|
)
|
|
1361
|
-
`.execute(_)}async function $X(_){}var
|
|
1361
|
+
`.execute(_)}async function $X(_){}var PC={};m(PC,{up:()=>UX,down:()=>XX});async function UX(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function XX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var $C={};m($C,{up:()=>jX,down:()=>QX});async function jX(_){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 QX(_){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 UC={};m(UC,{up:()=>JX,down:()=>WX});import{sql as ZX}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(ZX`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 WX(_){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 XC={};m(XC,{up:()=>LX,down:()=>FX});import{sql as DX}from"kysely";async function LX(_){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(DX`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 FX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var jC={};m(jC,{up:()=>YX,down:()=>HX});import{sql as S_}from"kysely";async function YX(_){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(S_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(S_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",S_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",S_`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 HX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var QC={};m(QC,{up:()=>RX,down:()=>MX});import{sql as A_}from"kysely";async function RX(_){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_`
|
|
1362
1362
|
insert into organization_billing (organization_id, legacy)
|
|
1363
1363
|
select id, true from organization
|
|
1364
1364
|
on conflict (organization_id) do nothing
|
|
1365
|
-
`.execute(_)}async function MX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var
|
|
1365
|
+
`.execute(_)}async function MX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var ZC={};m(ZC,{up:()=>BX,down:()=>GX});import{sql as nN}from"kysely";async function BX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(nN`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(nN`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function GX(_){await _.schema.dropTable("seat_change_log").execute()}var JC={};m(JC,{up:()=>yX,down:()=>fX});async function yX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function fX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var WC={};m(WC,{up:()=>OX,down:()=>SX});import{sql as wN}from"kysely";async function OX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await wN`
|
|
1366
1366
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1367
1367
|
on organization_billing (stripe_subscription_id)
|
|
1368
1368
|
where stripe_subscription_id is not null
|
|
1369
|
-
`.execute(_)}async function SX(_){await
|
|
1369
|
+
`.execute(_)}async function SX(_){await wN`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var DC={};m(DC,{up:()=>AX,down:()=>IX});async function AX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function IX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var LC={};m(LC,{up:()=>nX,down:()=>wX});import{sql as VN}from"kysely";async function nX(_){await VN`
|
|
1370
1370
|
create index idx_org_billing_benefits_pending
|
|
1371
1371
|
on organization_billing (updated_at)
|
|
1372
1372
|
where benefits_reference_id is not null
|
|
1373
|
-
`.execute(_)}async function wX(_){await
|
|
1373
|
+
`.execute(_)}async function wX(_){await VN`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var FC={};m(FC,{up:()=>VX,down:()=>kX});import{sql as kN}from"kysely";async function VX(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(kN`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(kN`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 kX(_){await _.schema.dropTable("user_model_preferences").execute()}var YC={};m(YC,{up:()=>pX,down:()=>vX});async function pX(_){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 HC={};m(HC,{up:()=>qX,down:()=>gX});async function qX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function gX(_){}var RC={};m(RC,{up:()=>iX,down:()=>tX});import{sql as pN}from"kysely";async function iX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await pN`
|
|
1374
1374
|
UPDATE organization_settings
|
|
1375
1375
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1376
1376
|
WHERE reports_only IS NOT NULL
|
|
1377
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function tX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await
|
|
1377
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function tX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await pN`
|
|
1378
1378
|
UPDATE organization_settings
|
|
1379
1379
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1380
1380
|
WHERE flags ? 'reports_only'
|
|
1381
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1381
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var MC={};m(MC,{up:()=>hX,down:()=>oX});import{sql as cX}from"kysely";async function hX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await cX`
|
|
1382
1382
|
update task_board_items
|
|
1383
1383
|
set sort_order = -extract(epoch from created_at)
|
|
1384
|
-
`.execute(_)}async function oX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var
|
|
1384
|
+
`.execute(_)}async function oX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var BC={};m(BC,{up:()=>aX,down:()=>rX,ACTIONS:()=>vN});import{sql as I_}from"kysely";var vN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function aX(_){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(I_`now()`)).addCheckConstraint("chk_task_board_activity_action",I_`action IN (${I_.join(vN.map((x)=>I_.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 rX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var yC={};m(yC,{up:()=>eX,down:()=>lX,ACTIONS:()=>GC});import{sql as z_}from"kysely";var GC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function eX(_){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(z_`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 qN(_,GC)}async function lX(_){await qN(_,GC.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 qN(_,x){await z_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await z_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${z_.join(x.map((u)=>z_.lit(u)))}))`.execute(_)}var OC={};m(OC,{up:()=>sX,down:()=>bX});import{sql as gN}from"kysely";function fC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function dX(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),K=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return fC(K)}catch{return fC(_.connection_url)}if(_.title)return fC(_.title);return _.id}async function sX(_){let x=await gN`
|
|
1385
1385
|
SELECT id, app_name, connection_url, title, slug
|
|
1386
1386
|
FROM connections
|
|
1387
1387
|
WHERE connection_type != 'VIRTUAL'
|
|
1388
|
-
`.execute(_),u=0;for(let K of x.rows){let C=dX(K);if(C===K.slug)continue;await
|
|
1388
|
+
`.execute(_),u=0;for(let K of x.rows){let C=dX(K);if(C===K.slug)continue;await gN`UPDATE connections SET slug = ${C} WHERE id = ${K.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function bX(){}var SC={};m(SC,{up:()=>xj,down:()=>uj});import{sql as _j}from"kysely";async function xj(_){await _j`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 uj(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var IC={};m(IC,{up:()=>Cj,down:()=>Kj,ACTIONS:()=>AC});import{sql as n_}from"kysely";var AC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],mj=new Set(["review_requested","review_approved","review_changes_requested"]);async function Cj(_){await iN(_,AC)}async function Kj(_){await iN(_,AC.filter((x)=>!mj.has(x)))}async function iN(_,x){await n_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await n_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${n_.join(x.map((u)=>n_.lit(u)))}))`.execute(_)}var nC={};m(nC,{up:()=>Tj,down:()=>zj});import{sql as Nj}from"kysely";async function Tj(_){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(Nj`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 zj(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var VC={};m(VC,{up:()=>Pj,down:()=>$j,ACTIONS:()=>wC});import{sql as w_}from"kysely";var wC=["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"],Ej=new Set(["merge_conflict_resolution"]);async function Pj(_){await tN(_,wC)}async function $j(_){await tN(_,wC.filter((x)=>!Ej.has(x)))}async function tN(_,x){await w_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await w_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${w_.join(x.map((u)=>w_.lit(u)))}))`.execute(_)}var kC={};m(kC,{up:()=>Uj,down:()=>Xj});import{sql as E_}from"kysely";async function Uj(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await E_`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 Xj(_){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 E_`
|
|
1389
1389
|
create index idx_org_billing_benefits_pending
|
|
1390
1390
|
on organization_billing (updated_at)
|
|
1391
1391
|
where benefits_reference_id is not null
|
|
1392
|
-
`.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(E_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(E_`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(E_`now()`)).execute()}var
|
|
1392
|
+
`.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(E_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(E_`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(E_`now()`)).execute()}var pC={};m(pC,{up:()=>jj,down:()=>Qj});import{sql as V_}from"kysely";async function jj(_){await V_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await V_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function Qj(_){await V_`
|
|
1393
1393
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1394
1394
|
RETURNS trigger AS $fn$
|
|
1395
1395
|
BEGIN
|
|
@@ -1415,23 +1415,23 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1415
1415
|
BEFORE INSERT ON connection_aggregations
|
|
1416
1416
|
FOR EACH ROW
|
|
1417
1417
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1418
|
-
`.execute(_)}var
|
|
1418
|
+
`.execute(_)}var vC={};m(vC,{up:()=>Zj,down:()=>Jj});import{sql as cN}from"kysely";async function Zj(_){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(cN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(cN`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function Jj(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var qC={};m(qC,{up:()=>Wj,down:()=>Dj});import{sql as hN}from"kysely";async function Wj(_){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(hN`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(hN`now()`)).execute()}async function Dj(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var iC={};m(iC,{up:()=>Lj,down:()=>Fj});import{sql as gC}from"kysely";async function Lj(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(gC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await gC`
|
|
1419
1419
|
create index idx_task_quota_claims_org_period_live
|
|
1420
1420
|
on task_quota_claims (organization_id, period_key)
|
|
1421
1421
|
where state <> 'released'
|
|
1422
|
-
`.execute(_)}async function Fj(_){await
|
|
1422
|
+
`.execute(_)}async function Fj(_){await gC`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 tC={};m(tC,{up:()=>Yj,down:()=>Hj});async function Yj(_){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 Hj(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var cC={};m(cC,{up:()=>Rj,down:()=>Mj});async function Rj(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function Mj(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var hC={};m(hC,{up:()=>Bj,down:()=>Gj});import{sql as oN}from"kysely";async function Bj(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(oN`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(oN`monthly_task_executions > 0`)).execute()}async function Gj(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var oC={};m(oC,{up:()=>fj,down:()=>Oj});import{sql as yj}from"kysely";async function fj(_){await yj`
|
|
1423
1423
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1424
1424
|
ON task_board_items (updated_at, id)
|
|
1425
1425
|
WHERE status = 'in_review'
|
|
1426
1426
|
AND assignee_id = 'super-agent'
|
|
1427
1427
|
AND dismissed_at IS NULL
|
|
1428
|
-
`.execute(_)}async function Oj(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var
|
|
1428
|
+
`.execute(_)}async function Oj(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var aC={};m(aC,{up:()=>Sj,down:()=>Aj});import{sql as aN}from"kysely";async function Sj(_){await aN`
|
|
1429
1429
|
ALTER TABLE task_board_items
|
|
1430
1430
|
ADD COLUMN last_swept_at timestamptz
|
|
1431
|
-
`.execute(_)}async function Aj(_){await
|
|
1431
|
+
`.execute(_)}async function Aj(_){await aN`
|
|
1432
1432
|
ALTER TABLE task_board_items
|
|
1433
1433
|
DROP COLUMN last_swept_at
|
|
1434
|
-
`.execute(_)}var
|
|
1434
|
+
`.execute(_)}var rC={};m(rC,{up:()=>Ij,down:()=>nj});import{sql as k_}from"kysely";async function Ij(_){await k_`
|
|
1435
1435
|
ALTER TABLE task_board_items
|
|
1436
1436
|
ADD COLUMN retry_at timestamptz,
|
|
1437
1437
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
@@ -1443,7 +1443,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1443
1443
|
ALTER TABLE task_board_items
|
|
1444
1444
|
DROP COLUMN retry_at,
|
|
1445
1445
|
DROP COLUMN retry_attempts
|
|
1446
|
-
`.execute(_)}var
|
|
1446
|
+
`.execute(_)}var lC={};m(lC,{up:()=>wj,down:()=>Vj});import{sql as eC}from"kysely";async function wj(_){await eC`
|
|
1447
1447
|
CREATE TABLE org_repo_sync (
|
|
1448
1448
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1449
1449
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1461,11 +1461,11 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1461
1461
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1462
1462
|
UNIQUE (organization_id, volume)
|
|
1463
1463
|
)
|
|
1464
|
-
`.execute(_),await
|
|
1464
|
+
`.execute(_),await eC`
|
|
1465
1465
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1466
1466
|
ON org_repo_sync (organization_id)
|
|
1467
1467
|
WHERE enabled
|
|
1468
|
-
`.execute(_)}async function Vj(_){await
|
|
1468
|
+
`.execute(_)}async function Vj(_){await eC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var sC={};m(sC,{up:()=>pj,down:()=>vj,ACTIONS:()=>dC});import{sql as p_}from"kysely";var dC=["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"],kj=new Set(["merge_failed"]);async function pj(_){await rN(_,dC)}async function vj(_){await rN(_,dC.filter((x)=>!kj.has(x)))}async function rN(_,x){await p_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await p_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${p_.join(x.map((u)=>p_.lit(u)))}))`.execute(_)}var bC={};m(bC,{up:()=>qj,down:()=>gj});async function qj(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function gj(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var _K={};m(_K,{up:()=>ij,down:()=>tj});import{sql as o}from"kysely";async function ij(_){await o`
|
|
1469
1469
|
CREATE TABLE org_jira_integrations (
|
|
1470
1470
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1471
1471
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1485,7 +1485,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1485
1485
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1486
1486
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
1487
1487
|
)
|
|
1488
|
-
`.execute(_),await
|
|
1488
|
+
`.execute(_),await o`
|
|
1489
1489
|
CREATE TABLE task_board_item_jira_links (
|
|
1490
1490
|
item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
|
|
1491
1491
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1496,7 +1496,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1496
1496
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1497
1497
|
UNIQUE (organization_id, jira_issue_id)
|
|
1498
1498
|
)
|
|
1499
|
-
`.execute(_),await
|
|
1499
|
+
`.execute(_),await o`
|
|
1500
1500
|
CREATE TABLE task_board_comment_jira_links (
|
|
1501
1501
|
comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
|
|
1502
1502
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1504,7 +1504,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1504
1504
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1505
1505
|
UNIQUE (organization_id, jira_comment_id)
|
|
1506
1506
|
)
|
|
1507
|
-
`.execute(_)}async function tj(_){await
|
|
1507
|
+
`.execute(_)}async function tj(_){await o`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await o`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await o`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var xK={};m(xK,{up:()=>hj,down:()=>oj});import{sql as cj}from"kysely";async function hj(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await cj`
|
|
1508
1508
|
update task_board_items as t
|
|
1509
1509
|
set key_seq = numbered.seq
|
|
1510
1510
|
from (
|
|
@@ -1517,25 +1517,25 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1517
1517
|
from task_board_items
|
|
1518
1518
|
) as numbered
|
|
1519
1519
|
where t.id = numbered.id
|
|
1520
|
-
`.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 oj(_){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
|
|
1520
|
+
`.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 oj(_){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 uK={};m(uK,{up:()=>aj,down:()=>rj});import{sql as eN}from"kysely";async function aj(_){await eN`
|
|
1521
1521
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1522
1522
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1523
1523
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1524
|
-
`.execute(_)}async function rj(_){await
|
|
1524
|
+
`.execute(_)}async function rj(_){await eN`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var CK={};m(CK,{up:()=>ej,down:()=>lj});import{sql as mK}from"kysely";async function ej(_){await mK`
|
|
1525
1525
|
ALTER TABLE thread_message_parts
|
|
1526
1526
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1527
|
-
`.execute(_),await
|
|
1527
|
+
`.execute(_),await mK`
|
|
1528
1528
|
ALTER TABLE thread_message_parts
|
|
1529
1529
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1530
|
-
`.execute(_)}async function lj(_){await
|
|
1530
|
+
`.execute(_)}async function lj(_){await mK`
|
|
1531
1531
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1532
|
-
`.execute(_)}var
|
|
1532
|
+
`.execute(_)}var KK={};m(KK,{up:()=>dj,down:()=>sj});async function dj(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function sj(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var NK={};m(NK,{up:()=>_Q,down:()=>xQ});import{sql as bj}from"kysely";async function _Q(_){await bj`
|
|
1533
1533
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1534
1534
|
ON task_board_items (updated_at)
|
|
1535
1535
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1536
|
-
`.execute(_)}async function xQ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var
|
|
1536
|
+
`.execute(_)}async function xQ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var TK={};m(TK,{up:()=>uQ,down:()=>mQ,TYPES:()=>lN});import{sql as V}from"kysely";var lN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function uQ(_){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(V`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(V`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(V`now()`)).addCheckConstraint("notifications_type_check",V`type IN (${V.join(lN.map((x)=>V.lit(x)))})`).execute(),await V`CREATE INDEX notifications_user_unread ON notifications
|
|
1537
1537
|
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await V`CREATE INDEX notifications_digest ON notifications
|
|
1538
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function mQ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var
|
|
1538
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function mQ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var zK={};m(zK,{up:()=>CQ,down:()=>KQ});import{sql as dN}from"kysely";async function CQ(_){await dN`
|
|
1539
1539
|
UPDATE org_jira_integrations
|
|
1540
1540
|
SET status_mapping = (
|
|
1541
1541
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1550,7 +1550,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1550
1550
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1551
1551
|
WHERE jsonb_typeof(value) = 'array'
|
|
1552
1552
|
)
|
|
1553
|
-
`.execute(_)}async function KQ(_){await
|
|
1553
|
+
`.execute(_)}async function KQ(_){await dN`
|
|
1554
1554
|
UPDATE org_jira_integrations
|
|
1555
1555
|
SET status_mapping = (
|
|
1556
1556
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1565,7 +1565,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1565
1565
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1566
1566
|
WHERE jsonb_typeof(value) = 'array'
|
|
1567
1567
|
)
|
|
1568
|
-
`.execute(_)}var
|
|
1568
|
+
`.execute(_)}var PK={};m(PK,{up:()=>TQ,down:()=>zQ,TYPES:()=>EK});import{sql as v_}from"kysely";var EK=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],NQ=new Set(["mentioned"]);async function TQ(_){await sN(_,EK)}async function zQ(_){await sN(_,EK.filter((x)=>!NQ.has(x)))}async function sN(_,x){await v_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await v_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${v_.join(x.map((u)=>v_.lit(u)))}))`.execute(_)}var UK={};m(UK,{up:()=>$Q,down:()=>UQ,ACTIONS:()=>$K});import{sql as k}from"kysely";var EQ=["bug","feature","chore","spike","security"],$K=["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"],PQ=new Set(["type_changed"]);async function $Q(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await k`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${k.join(EQ.map((x)=>k.lit(x)))}))`.execute(_),await bN(_,$K)}async function UQ(_){await bN(_,$K.filter((x)=>!PQ.has(x))),await k`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function bN(_,x){await k`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await k`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${k.join(x.map((u)=>k.lit(u)))}))`.execute(_)}var XK={};m(XK,{up:()=>XQ,down:()=>jQ});import{sql as Q}from"kysely";var xT=["bug","feature","chore","spike","security"],_T="chore";async function XQ(_){await Q`UPDATE task_board_items SET type = ${Q.lit(_T)} WHERE type IS NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${Q.lit(_T)}`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${Q.join(xT.map((x)=>Q.lit(x)))}))`.execute(_)}async function jQ(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${Q.join(xT.map((x)=>Q.lit(x)))}))`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var jK={};m(jK,{up:()=>QQ,down:()=>ZQ});import{sql as a}from"kysely";async function QQ(_){await a`
|
|
1569
1569
|
CREATE TABLE task_board_sprints (
|
|
1570
1570
|
id text PRIMARY KEY,
|
|
1571
1571
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1580,44 +1580,44 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1580
1580
|
CHECK (state IN ('active', 'future', 'closed')),
|
|
1581
1581
|
UNIQUE (organization_id, jira_sprint_id)
|
|
1582
1582
|
)
|
|
1583
|
-
`.execute(_),await
|
|
1583
|
+
`.execute(_),await a`
|
|
1584
1584
|
CREATE INDEX idx_task_board_sprints_org
|
|
1585
1585
|
ON task_board_sprints (organization_id, starts_at)
|
|
1586
|
-
`.execute(_),await
|
|
1586
|
+
`.execute(_),await a`
|
|
1587
1587
|
ALTER TABLE task_board_items
|
|
1588
1588
|
ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
|
|
1589
|
-
`.execute(_),await
|
|
1589
|
+
`.execute(_),await a`
|
|
1590
1590
|
CREATE INDEX idx_task_board_items_sprint
|
|
1591
1591
|
ON task_board_items (organization_id, sprint_id)
|
|
1592
1592
|
WHERE sprint_id IS NOT NULL
|
|
1593
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function ZQ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await
|
|
1593
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function ZQ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await a`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await a`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var QK={};m(QK,{up:()=>WQ,down:()=>DQ});import{sql as JQ}from"kysely";async function WQ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function DQ(_){await JQ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var ZK={};m(ZK,{up:()=>FQ,down:()=>YQ});import{sql as LQ}from"kysely";async function FQ(_){await LQ`
|
|
1594
1594
|
UPDATE org_jira_integrations
|
|
1595
1595
|
SET last_synced_at = NULL,
|
|
1596
1596
|
last_sync_error = NULL
|
|
1597
1597
|
WHERE last_synced_at IS NOT NULL
|
|
1598
|
-
`.execute(_)}async function YQ(){}var
|
|
1598
|
+
`.execute(_)}async function YQ(){}var JK={};m(JK,{up:()=>RQ,down:()=>MQ});import{sql as HQ}from"kysely";async function RQ(_){await HQ`
|
|
1599
1599
|
UPDATE org_jira_integrations
|
|
1600
1600
|
SET last_synced_at = NULL,
|
|
1601
1601
|
last_sync_error = NULL
|
|
1602
1602
|
WHERE last_synced_at IS NOT NULL
|
|
1603
|
-
`.execute(_)}async function MQ(){}var
|
|
1603
|
+
`.execute(_)}async function MQ(){}var DK={};m(DK,{up:()=>BQ,down:()=>GQ});import{sql as WK}from"kysely";async function BQ(_){await WK`
|
|
1604
1604
|
ALTER TABLE org_jira_integrations
|
|
1605
1605
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1606
|
-
`.execute(_),await
|
|
1606
|
+
`.execute(_),await WK`
|
|
1607
1607
|
UPDATE org_jira_integrations
|
|
1608
1608
|
SET rescan_pending = true
|
|
1609
1609
|
WHERE last_synced_at IS NULL
|
|
1610
|
-
`.execute(_)}async function GQ(_){await
|
|
1610
|
+
`.execute(_)}async function GQ(_){await WK`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var LK={};m(LK,{up:()=>yQ,down:()=>fQ});async function yQ(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function fQ(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var FK={};m(FK,{up:()=>OQ,down:()=>SQ});import{sql as uT}from"kysely";async function OQ(_){await uT`
|
|
1611
1611
|
ALTER TABLE invitation
|
|
1612
1612
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1613
|
-
`.execute(_)}async function SQ(_){await
|
|
1613
|
+
`.execute(_)}async function SQ(_){await uT`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var HK={};m(HK,{up:()=>AQ,down:()=>IQ});import{sql as YK}from"kysely";async function AQ(_){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(YK`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(YK`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 YK`
|
|
1614
1614
|
INSERT INTO task_board_column_automations
|
|
1615
1615
|
(id, organization_id, column_key, prompt)
|
|
1616
1616
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1617
1617
|
FROM org_jira_integrations
|
|
1618
1618
|
WHERE auto_delegate = true
|
|
1619
1619
|
ON CONFLICT DO NOTHING
|
|
1620
|
-
`.execute(_)}async function IQ(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var
|
|
1620
|
+
`.execute(_)}async function IQ(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var RK={};m(RK,{up:()=>nQ,down:()=>wQ});import{sql as P_}from"kysely";async function nQ(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await P_`
|
|
1621
1621
|
UPDATE task_board_items i
|
|
1622
1622
|
SET review_cycle_started_at = (
|
|
1623
1623
|
SELECT max(a.occurred_at)
|
|
@@ -1639,7 +1639,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1639
1639
|
WHERE status = 'in_review'
|
|
1640
1640
|
AND assignee_id = 'super-agent'
|
|
1641
1641
|
AND dismissed_at IS NULL
|
|
1642
|
-
`.execute(_),await P_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var
|
|
1642
|
+
`.execute(_),await P_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var MK={};m(MK,{up:()=>VQ,down:()=>kQ});import{sql as mT}from"kysely";async function VQ(_){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(mT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(mT`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 kQ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var GK={};m(GK,{up:()=>vQ,down:()=>qQ,ACTIONS:()=>BK});import{sql as q_}from"kysely";var BK=["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"],pQ=new Set(["review_verdict_requested"]);async function vQ(_){await CT(_,BK)}async function qQ(_){await CT(_,BK.filter((x)=>!pQ.has(x)))}async function CT(_,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 yK={};m(yK,{up:()=>gQ,down:()=>iQ});import{sql as g_}from"kysely";async function gQ(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await g_`
|
|
1643
1643
|
ALTER TABLE task_board_items
|
|
1644
1644
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1645
1645
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
@@ -1655,7 +1655,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1655
1655
|
`.execute(_),await g_`
|
|
1656
1656
|
ALTER TABLE task_board_items
|
|
1657
1657
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
1658
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
1658
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var fK={};m(fK,{up:()=>tQ,down:()=>cQ});async function tQ(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function cQ(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var SK={};m(SK,{up:()=>oQ,down:()=>aQ,ACTIONS:()=>OK});import{sql as i_}from"kysely";var OK=["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"],hQ=new Set(["sprint_changed"]);async function oQ(_){await KT(_,OK)}async function aQ(_){await KT(_,OK.filter((x)=>!hQ.has(x)))}async function KT(_,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 AK={};m(AK,{up:()=>eQ,down:()=>lQ});import{sql as rQ}from"kysely";async function eQ(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(rQ`'[]'::jsonb`)).execute()}async function lQ(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var IK={};m(IK,{up:()=>dQ,down:()=>sQ});import{sql as NT}from"kysely";async function dQ(_){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(NT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(NT`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function sQ(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var nK={};m(nK,{up:()=>_Z,down:()=>xZ});import{sql as bQ}from"kysely";async function _Z(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await bQ`
|
|
1659
1659
|
UPDATE task_board_items i
|
|
1660
1660
|
SET external_url = t.url,
|
|
1661
1661
|
description = CASE
|
|
@@ -1674,11 +1674,11 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1674
1674
|
ON g.organization_id = l.organization_id
|
|
1675
1675
|
) t
|
|
1676
1676
|
WHERE t.item_id = i.id
|
|
1677
|
-
`.execute(_)}async function xZ(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var
|
|
1677
|
+
`.execute(_)}async function xZ(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var wK={};m(wK,{up:()=>mZ,down:()=>CZ,ACTIONS:()=>TT});import{sql as X}from"kysely";var uZ=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],TT=["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 mZ(_){await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await X`DROP TABLE IF EXISTS task_board_columns`.execute(_),await X`
|
|
1678
1678
|
UPDATE task_board_items
|
|
1679
1679
|
SET status = 'triage'
|
|
1680
1680
|
WHERE status NOT IN (${X.join(uZ.map((x)=>X.lit(x)))})
|
|
1681
|
-
`.execute(_),await X`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await X`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await KZ(_,
|
|
1681
|
+
`.execute(_),await X`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await X`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await KZ(_,TT),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
|
|
1682
1682
|
ALTER TABLE task_board_item_jira_links
|
|
1683
1683
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
1684
1684
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -1690,11 +1690,11 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1690
1690
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
1691
1691
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
1692
1692
|
DROP COLUMN IF EXISTS rescan_pending
|
|
1693
|
-
`.execute(_)}async function CZ(){}async function KZ(_,x){await X`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await X`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${X.join(x.map((u)=>X.lit(u)))}))`.execute(_)}var
|
|
1693
|
+
`.execute(_)}async function CZ(){}async function KZ(_,x){await X`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await X`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${X.join(x.map((u)=>X.lit(u)))}))`.execute(_)}var VK={};m(VK,{up:()=>NZ,down:()=>TZ});import{sql as r}from"kysely";async function NZ(_){await r`
|
|
1694
1694
|
ALTER TABLE task_board_items
|
|
1695
1695
|
ADD COLUMN IF NOT EXISTS source text
|
|
1696
1696
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
1697
|
-
`.execute(_),await
|
|
1697
|
+
`.execute(_),await r`
|
|
1698
1698
|
CREATE TABLE IF NOT EXISTS org_jira_column_automations (
|
|
1699
1699
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
1700
1700
|
jira_status text NOT NULL,
|
|
@@ -1703,7 +1703,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1703
1703
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1704
1704
|
PRIMARY KEY (organization_id, jira_status)
|
|
1705
1705
|
)
|
|
1706
|
-
`.execute(_),await
|
|
1706
|
+
`.execute(_),await r`
|
|
1707
1707
|
CREATE TABLE IF NOT EXISTS jira_trigger_claims (
|
|
1708
1708
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
1709
1709
|
jira_issue_id text NOT NULL,
|
|
@@ -1711,24 +1711,24 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1711
1711
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1712
1712
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
1713
1713
|
)
|
|
1714
|
-
`.execute(_)}async function TZ(_){await
|
|
1714
|
+
`.execute(_)}async function TZ(_){await r`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await r`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await r`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var kK={};m(kK,{up:()=>zZ,down:()=>EZ});import{sql as $_}from"kysely";async function zZ(_){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($_`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($_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($_`now()`)).execute(),await $_`
|
|
1715
1715
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
1716
1716
|
ON organization_notices (organization_id)
|
|
1717
1717
|
WHERE resolved_at IS NULL
|
|
1718
1718
|
`.execute(_),await $_`
|
|
1719
1719
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
1720
1720
|
ON organization_notices (organization_id, created_at DESC)
|
|
1721
|
-
`.execute(_)}async function EZ(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var
|
|
1721
|
+
`.execute(_)}async function EZ(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var vK={};m(vK,{up:()=>DZ,down:()=>LZ});import{sql as pK}from"kysely";import{sql as nW}from"kysely";var zT=50000000,PZ=1e5;function $Z(_,x){let u=0,K=0,C=[_];while(C.length>0){if(u>x||++K>PZ)return 1/0;let N=C.pop();if(typeof N==="string")u+=N.length;else if(Array.isArray(N))for(let z of N)C.push(z);else if(N!==null&&typeof N==="object")for(let z of Object.values(N))C.push(z)}return u}var UZ=/\u0000/g,XZ=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,jZ=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,QZ=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,ZZ=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function JZ(_){return _.replace(UZ,"").replace(XZ,"\uFFFD").replace(jZ,"$1***@").replace(QZ,"$1***").replace(ZZ,"[base64 data omitted]")}function WZ(_){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 ET(_){if($Z(_,zT)>zT)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return JZ(u);if(WZ(u))return{type:"text",text:"[image omitted]"};return u})}var PT=20;async function DZ(_){let x=await pK`
|
|
1722
1722
|
SELECT id FROM thread_message_parts
|
|
1723
1723
|
WHERE pg_column_size(payload) > 8192
|
|
1724
1724
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
1725
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
1725
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=PT){let K=x.rows.slice(u,u+PT).map((N)=>N.id),C=await pK`
|
|
1726
1726
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${K})
|
|
1727
|
-
`.execute(_);for(let N of C.rows){let z=
|
|
1727
|
+
`.execute(_);for(let N of C.rows){let z=ET(N.payload);if(z===JSON.stringify(N.payload))continue;await pK`
|
|
1728
1728
|
UPDATE thread_message_parts
|
|
1729
1729
|
SET payload = ${z}::jsonb
|
|
1730
1730
|
WHERE id = ${N.id}
|
|
1731
|
-
`.execute(_)}}}async function LZ(){}var
|
|
1731
|
+
`.execute(_)}}}async function LZ(){}var qK={};m(qK,{up:()=>FZ,down:()=>YZ});async function FZ(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function YZ(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var gK={};m(gK,{up:()=>HZ,down:()=>RZ});import{sql as P}from"kysely";async function HZ(_){await P`
|
|
1732
1732
|
CREATE TABLE git_provider_accounts (
|
|
1733
1733
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1734
1734
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1976,7 +1976,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
1976
1976
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
1977
1977
|
`.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
|
|
1978
1978
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
1979
|
-
`.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var
|
|
1979
|
+
`.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var iK={};m(iK,{up:()=>BZ,down:()=>GZ});import{sql as M}from"kysely";var MZ=M`
|
|
1980
1980
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
1981
1981
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
1982
1982
|
BEGIN
|
|
@@ -2049,27 +2049,29 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
|
|
|
2049
2049
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
2050
2050
|
`.execute(_),await M`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function GZ(_){await M`DROP TABLE IF EXISTS thread_repositories`.execute(_),await M`
|
|
2051
2051
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
2052
|
-
`.execute(_)}var yZ={"001-initial-schema":Mx,"002-organization-settings":Bx,"003-connection-schema-align":Gx,"004-remove-models-binding":yx,"005-connection-configuration":fx,"006-add-views-to-settings":Ox,"007-monitoring-logs":Sx,"008-event-bus":Ax,"009-drop-audit-logs":Ix,"010-gateways":nx,"011-gateway-icon":wx,"012-gateway-tool-selection-mode":Vx,"013-monitoring-user-agent-gateway":kx,"014-gateway-resources-prompts":px,"015-monitoring-properties":vx,"016-downstream-token-client-info":qx,"017-downstream-token-remove-userid":gx,"018-drop-gateway-tool-selection-strategy":ix,"019-remove-gateway-is-default":tx,"020-enabled-plugins":cx,"021-threads":hx,"022-rename-gateway-to-virtual-mcp":ox,"023-optimize-thread-indexes":ax,"024-consolidate-virtual-mcp":rx,"025-add-monitoring-virtual-mcp-id":ex,"026-restrict-child-connection-delete":lx,"027-update-management-mcp-url":sx,"028-update-management-mcp-to-self":_u,"029-add-updated-by-to-connections":xu,"030-member-tags":uu,"031-add-dependency-mode":mu,"032-projects":Cu,"033-thread-status":Ku,"034-monitoring-dashboards":Nu,"035-project-connections":Tu,"036-update-registry-url":zu,"037-ai-provider-keys":Eu,"038-oauth-pkce-states":Pu,"039-automations":$u,"040-replace-next-run-at-with-last-run-at":Uu,"041-ai-provider-keys-unique-constraint":Xu,"042-rename-mesh-mcp-to-cms-mcp":ju,"043-rename-cms-mcp-to-deco-cms":Qu,"044-drop-connections-tools-column":Zu,"045-thread-context-start-message":Ju,"046-remove-object-storage-plugin":Du,"047-add-next-run-at":Lu,"048-merge-projects-agents":Yu,"049-remove-org-admin-projects":Hu,"050-durable-agent-runs":Ru,"051-org-sso":Bu,"052-thread-agent-ids":Gu,"053-registry-config":yu,"054-connection-slug":Ou,"055-spaces":Su,"056-automation-project-scope":Au,"057-thread-virtual-mcp-id":Iu,"058-trigger-callback-tokens":nu,"059-kv":wu,"060-member-index":Vu,"061-downstream-token-connection-index":ku,"062-private-registry":pu,"063-event-subscriptions-enabled-boolean":vu,"064-brand-context":qu,"065-organization-domains":gu,"066-brand-context-structured":iu,"067-threads-metadata":tu,"068-threads-branch":cu,"069-sandbox-runner-state":hu,"070-model-categories":ou,"071-default-home-agents":au,"072-ai-provider-key-preset-id":ru,"073-backfill-basic-usage-roles":eu,"074-sandbox-runner-state-handle-nonunique":lu,"075-thread-inflight-async-jobs":du,"076-automations-drop-agent-json":su,"077-tier-only-model-selection":_m,"078-automation-tool-call-kind":xm,"079-strip-legacy-freestyle-vm-map-entries":um,"080-async-research-jobs":mm,"081-async-research-jobs-result-content":Cm,"082-secrets":Km,"083-thread-run-locally":Nm,"084-drop-host-sandbox-rows":Tm,"085-rename-runner-kind":zm,"086-thread-pins-and-vm-map-rekey":Em,"087-fix-vm-map-rekey":Pm,"088-purge-cli-activate-keys":$m,"089-rename-remote-user-to-desktop":Um,"090-automation-webhook-triggers":Xm,"091-organization-domains-allow-multi":jm,"092-sandbox-naming-uniformization":Qm,"093-backfill-global-search-basic-usage":Zm,"094-org-file-configs":Wm,"095-remove-automation-tool-call-kind":Dm,"096-org-file-configs-public-url-base":Lm,"097-drop-local-docker-sandbox-state":Ym,"098-thread-message-parts":Hm,"099-run-fence":Rm,"100-link-transport":Mm,"101-cancel-requested-at":Bm,"102-observational-agent":Gm,"103-revert-observational-agent":ym,"104-agent-sandbox-provider-kind":Om,"105-org-fs":Sm,"106-automation-tools":Am,"107-org-fs-public-org":Im,"108-automation-max-agent-steps":nm,"109-thread-message-parts-per-message-seq":wm,"110-backfill-ghs-token-expiry":Vm,"111-org-fs-thread-id":km,"112-org-file-configs-credential-type":pm,"113-thread-failure-reason":vm,"114-run-acked-seq":qm,"115-thread-projected-seq":gm,"116-org-sites":im,"117-org-file-configs-site-slug":tm,"118-organization-domains-multi-verify":cm,"119-organization-join-requests":hm,"120-org-fs-read-public":om,"121-org-fs-share-password":am,"122-split-web-research-tier":lm,"123-connection-credential-vault":dm,"124-drop-thread-projected-seq":sm,"125-github-child-single-parent":bm,"126-task-board":xC,"127-task-board-due-date":uC,"128-reports-only":mC,"129-task-board-assigned-by":CC,"130-task-board-thread-id":KC,"131-task-board-thread-link-cascade":NC,"132-task-board-item-prs":TC,"133-dedupe-duplicate-members":zC,"134-drop-task-board-enabled":EC,"135-task-board-item-fk-cascade":PC,"136-task-board-import-idempotency":$C,"137-agent-sandbox-runner-state":UC,"138-agent-sandbox-sessions":XC,"139-organization-billing":jC,"140-seat-change-log":QC,"141-benefits-sync-pending":ZC,"142-stripe-event-watermark":JC,"143-armed-report-url":WC,"144-benefits-pending-index":DC,"145-user-model-preferences":LC,"146-organization-main-agent":FC,"147-drop-agent-sandbox-tables":YC,"148-org-flags":HC,"149-task-board-item-sort-order":RC,"150-task-board-activity":MC,"151-task-board-tags":GC,"152-repair-connection-slug":fC,"153-task-board-latest-assistant-part-index":OC,"154-task-board-qa-activity":AC,"155-task-board-review-claims":IC,"156-task-board-conflict-activity":wC,"157-drop-seat-billing":VC,"158-drop-github-child-single-parent":kC,"159-task-board-comments":pC,"160-task-quota-billing":vC,"161-task-quota-claim-state":gC,"162-claude-subscriptions":iC,"163-task-board-item-dismissed":tC,"164-per-org-task-quota":cC,"165-task-board-pending-review-index":hC,"166-task-board-last-swept-at":oC,"167-task-board-run-retry":aC,"168-org-repo-sync":eC,"169-task-board-merge-failed-activity":dC,"170-task-board-item-repo":sC,"171-jira-integration":bC,"172-task-board-item-key-seq":_K,"173-thread-github-repo-connection-index":xK,"174-thread-message-parts-persisted-at":mK,"175-task-board-sprints":CK,"176-task-board-done-sweep-index":KK,"177-notifications":NK,"178-jira-status-mapping-array":TK,"179-notification-mentioned":EK,"180-task-board-item-type":$K,"181-task-board-item-type-required":UK,"182-task-board-sprints-entities":XK,"183-drop-jira-jql-filter":jK,"184-jira-rescan-after-scope-change":QK,"185-jira-rescan-existing-cards":ZK,"186-jira-rescan-pending-flag":WK,"187-task-board-comment-thread":DK,"188-invitation-auto-accept":LK,"189-task-board-column-automations":YK,"190-task-board-review-cycle-started-at":HK,"191-task-board-columns":RK,"192-task-board-verdict-nudge-activity":BK,"193-task-board-status-column-fk":GK,"194-jira-link-sprint":yK,"195-task-board-sprint-activity":OK,"196-task-board-column-tracker-statuses":SK,"197-task-board-prompts":AK,"198-task-board-external-url":IK,"199-drop-jira-mirror-and-org-columns":nK,"200-jira-run-trigger":wK,"201-organization-notices":VK,"202-redact-base64-thread-parts":pK,"203-task-board-preview-routes":vK,"204-git-provider-accounts-and-repositories":qK,"205-repository-references":gK,"206-repository-consumers":Rx,"207-task-board-prs-repo-idx":Hx,"208-github-connect-flows":Yx,"209-github-installation-authorization":Fx,"210-github-repository-authorization":Xx,"211-user-fs-org":Ux,"212-coding-agent-mcp-excluded":jx,"213-bitbucket-git-provider":Qx,"214-connections-sanitized-id-idx":zx,"215-commerce-discovery-repository":Ex,"216-github-cli-auth":$x,"217-experiments":Zx,"218-thread-message-parts-error-idx":Jx,"219-task-board-duplicate-reported-activity":Dx,"220-jira-automation-continue-pr":Lx,"221-remove-private-registry":e_,"222-org-git-credentials":l_,"223-drop-org-main-agent-id":Tx,"224-repository-sandbox-image":d_,"225-thread-analytics-indexes":b_,"226-deco-score-names":xx,"227-task-board-finding-resolved-activity":mx,"228-org-voice-config":r_,"229-jira-automation-from":Cx,"230-project-sidebar":Kx,"231-jira-chat-agent":Nx},iK=yZ;import{getMigrations as T6}from"better-auth/db";import{sso as z6}from"@better-auth/sso";import{organization as E6}from"@decocms/better-auth/plugins";import{admin as P6,apiKey as $6,jwt as U6,magicLink as X6,mcp as j6,openAPI as Q6}from"better-auth/plugins";import{emailOTP as Z6}from"better-auth/plugins/email-otp";import{Kysely as bZ,PostgresDialect as LT}from"kysely";import{Pool as FT}from"pg";import{homedir as fZ}from"os";var OZ=new Set(["all","worker","api"]);function SZ(_){let x=(_??"").trim();return OZ.has(x)?x:"all"}var AZ=new Set(["production","development","test"]);function IZ(_){let x=(_??"").trim();return AZ.has(x)?x:"development"}function J(_){return _==="true"||_==="1"}function cK(_,x,u){if(x===void 0||x==="")return;let K=Number(x);if(!Number.isSafeInteger(K)||K<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&K>u)throw Error(`${_} must be at most ${u}`);return K}function B(_,x,u,K){return cK(_,x,K)??u}function nZ(_){let x={};for(let u of(_??"").split(",")){let K=u.trim();if(!K)continue;let C=K.indexOf("="),N=C>0?K.slice(0,C).trim():"",z=C>0?K.slice(C+1).trim():"";if(!N||!z){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${K}" \u2014 expected price_xxx=planId`);continue}x[N]=z}return x}function wZ(_,x,u,K){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(K!==void 0&&C>K)throw Error(`${_} must be at most ${K}`);return C}function tK(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function PT(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function VZ(_){return _===void 0||_===""||_==="true"||_==="1"}function U_(_,x){return _||x}function $T(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${fZ()}/deco`,K=_.localMode,C=_.nodeEnv||IZ(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222",z=x.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",T={nodeEnv:C,port:B("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:U_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,voiceConversationProvider:z==="elevenlabs"||z==="openai"?z:null,openaiLiveApiKey:x.OPENAI_LIVE_API_KEY,openaiLiveModel:x.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:x.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:x.ELEVENLABS_API_KEY,elevenlabsVoiceId:x.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:x.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:x.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databasePgSsl:J(x.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:U_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:K,disableRateLimit:J(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:J(x.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",x.JIRA_SETTLE_SECONDS,60,3600),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((E)=>E.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((E)=>E.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:cK("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:J(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:nZ(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:wZ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:J(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:J(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:J(x.HOSTING_CONTROL_PLANE_GA),monitorGa:J(x.MONITOR_GA),plansEnabled:J(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:tK(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:J(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:tK(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:VZ(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:cK("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:SZ(U_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:J(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:J(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:tK(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:J(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:U_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:U_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(T.plansEnabled&&!T.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(T.plansEnabled&&!T.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(T.plansEnabled&&!T.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(T.plansEnabled&&Object.keys(T.stripePlanPriceIds).length>0&&!T.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(T.plansEnabled&&Object.keys(T.stripePlanPriceIds).length>1&&!T.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return{settings:T,externalDatabaseUrl:PT(x.DATABASE_URL),externalNatsUrl:PT(N),skipMigrations:_.skipMigrations}}var t_=null;function r(){if(!t_)kZ();return t_}function kZ(){if(t_)return;let _={...process.env},x=$T({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);t_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as tZ,metrics as cZ,propagation as s2,ROOT_CONTEXT as b2,SpanStatusCode as _7,trace as hZ}from"@opentelemetry/api";import{logs as oZ,SeverityNumber as hK}from"@opentelemetry/api-logs";import{OTLPLogExporter as m7}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as aZ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as N7}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as z7}from"@opentelemetry/instrumentation-runtime-node";import{context as oW,propagation as aW,SpanKind as rW,SpanStatusCode as eW}from"@opentelemetry/api";var dW=globalThis.fetch;import{ExportResultCode as E2}from"@opentelemetry/core";import{ExportResultCode as c_}from"@opentelemetry/core";import{mkdir as pZ,rename as vZ,writeFile as qZ}from"fs/promises";import{join as h_}from"path";class o_{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:c_.FAILED});for(let x of _){let u=JSON.stringify(x),K=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:K,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:c_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:c_.FAILED}});return Promise.resolve({code:c_.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),K=u.find((C)=>C.status==="rejected");if(K){let C=new Set;for(let z of u)if(z.status==="fulfilled")C.add(z.value);let N=_.filter((z)=>!C.has(z.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let z of this.bufferItems)this.bufferBytes+=Buffer.byteLength(z.json,"utf8")+1;throw K.reason}}async writeNDJSON(_,x){let u=new Date,K=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?h_(this.basePath,x,...K):h_(this.basePath,...K);if(!this.knownDirs.has(C))await pZ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,z=h_(C,`.${N}.tmp`),T=h_(C,N),E=_.join(`
|
|
2052
|
+
`.execute(_)}var yZ={"001-initial-schema":Bx,"002-organization-settings":Gx,"003-connection-schema-align":yx,"004-remove-models-binding":fx,"005-connection-configuration":Ox,"006-add-views-to-settings":Sx,"007-monitoring-logs":Ax,"008-event-bus":Ix,"009-drop-audit-logs":nx,"010-gateways":wx,"011-gateway-icon":Vx,"012-gateway-tool-selection-mode":kx,"013-monitoring-user-agent-gateway":px,"014-gateway-resources-prompts":vx,"015-monitoring-properties":qx,"016-downstream-token-client-info":gx,"017-downstream-token-remove-userid":ix,"018-drop-gateway-tool-selection-strategy":tx,"019-remove-gateway-is-default":cx,"020-enabled-plugins":hx,"021-threads":ox,"022-rename-gateway-to-virtual-mcp":ax,"023-optimize-thread-indexes":rx,"024-consolidate-virtual-mcp":ex,"025-add-monitoring-virtual-mcp-id":lx,"026-restrict-child-connection-delete":dx,"027-update-management-mcp-url":bx,"028-update-management-mcp-to-self":xu,"029-add-updated-by-to-connections":uu,"030-member-tags":mu,"031-add-dependency-mode":Cu,"032-projects":Ku,"033-thread-status":Nu,"034-monitoring-dashboards":Tu,"035-project-connections":zu,"036-update-registry-url":Eu,"037-ai-provider-keys":Pu,"038-oauth-pkce-states":$u,"039-automations":Uu,"040-replace-next-run-at-with-last-run-at":Xu,"041-ai-provider-keys-unique-constraint":ju,"042-rename-mesh-mcp-to-cms-mcp":Qu,"043-rename-cms-mcp-to-deco-cms":Zu,"044-drop-connections-tools-column":Ju,"045-thread-context-start-message":Wu,"046-remove-object-storage-plugin":Lu,"047-add-next-run-at":Fu,"048-merge-projects-agents":Hu,"049-remove-org-admin-projects":Ru,"050-durable-agent-runs":Mu,"051-org-sso":Gu,"052-thread-agent-ids":yu,"053-registry-config":fu,"054-connection-slug":Su,"055-spaces":Au,"056-automation-project-scope":Iu,"057-thread-virtual-mcp-id":nu,"058-trigger-callback-tokens":wu,"059-kv":Vu,"060-member-index":ku,"061-downstream-token-connection-index":pu,"062-private-registry":vu,"063-event-subscriptions-enabled-boolean":qu,"064-brand-context":gu,"065-organization-domains":iu,"066-brand-context-structured":tu,"067-threads-metadata":cu,"068-threads-branch":hu,"069-sandbox-runner-state":ou,"070-model-categories":au,"071-default-home-agents":ru,"072-ai-provider-key-preset-id":eu,"073-backfill-basic-usage-roles":lu,"074-sandbox-runner-state-handle-nonunique":du,"075-thread-inflight-async-jobs":su,"076-automations-drop-agent-json":bu,"077-tier-only-model-selection":xm,"078-automation-tool-call-kind":um,"079-strip-legacy-freestyle-vm-map-entries":mm,"080-async-research-jobs":Cm,"081-async-research-jobs-result-content":Km,"082-secrets":Nm,"083-thread-run-locally":Tm,"084-drop-host-sandbox-rows":zm,"085-rename-runner-kind":Em,"086-thread-pins-and-vm-map-rekey":Pm,"087-fix-vm-map-rekey":$m,"088-purge-cli-activate-keys":Um,"089-rename-remote-user-to-desktop":Xm,"090-automation-webhook-triggers":jm,"091-organization-domains-allow-multi":Qm,"092-sandbox-naming-uniformization":Zm,"093-backfill-global-search-basic-usage":Jm,"094-org-file-configs":Dm,"095-remove-automation-tool-call-kind":Lm,"096-org-file-configs-public-url-base":Fm,"097-drop-local-docker-sandbox-state":Hm,"098-thread-message-parts":Rm,"099-run-fence":Mm,"100-link-transport":Bm,"101-cancel-requested-at":Gm,"102-observational-agent":ym,"103-revert-observational-agent":fm,"104-agent-sandbox-provider-kind":Sm,"105-org-fs":Am,"106-automation-tools":Im,"107-org-fs-public-org":nm,"108-automation-max-agent-steps":wm,"109-thread-message-parts-per-message-seq":Vm,"110-backfill-ghs-token-expiry":km,"111-org-fs-thread-id":pm,"112-org-file-configs-credential-type":vm,"113-thread-failure-reason":qm,"114-run-acked-seq":gm,"115-thread-projected-seq":im,"116-org-sites":tm,"117-org-file-configs-site-slug":cm,"118-organization-domains-multi-verify":hm,"119-organization-join-requests":om,"120-org-fs-read-public":am,"121-org-fs-share-password":rm,"122-split-web-research-tier":dm,"123-connection-credential-vault":sm,"124-drop-thread-projected-seq":bm,"125-github-child-single-parent":_C,"126-task-board":uC,"127-task-board-due-date":mC,"128-reports-only":CC,"129-task-board-assigned-by":KC,"130-task-board-thread-id":NC,"131-task-board-thread-link-cascade":TC,"132-task-board-item-prs":zC,"133-dedupe-duplicate-members":EC,"134-drop-task-board-enabled":PC,"135-task-board-item-fk-cascade":$C,"136-task-board-import-idempotency":UC,"137-agent-sandbox-runner-state":XC,"138-agent-sandbox-sessions":jC,"139-organization-billing":QC,"140-seat-change-log":ZC,"141-benefits-sync-pending":JC,"142-stripe-event-watermark":WC,"143-armed-report-url":DC,"144-benefits-pending-index":LC,"145-user-model-preferences":FC,"146-organization-main-agent":YC,"147-drop-agent-sandbox-tables":HC,"148-org-flags":RC,"149-task-board-item-sort-order":MC,"150-task-board-activity":BC,"151-task-board-tags":yC,"152-repair-connection-slug":OC,"153-task-board-latest-assistant-part-index":SC,"154-task-board-qa-activity":IC,"155-task-board-review-claims":nC,"156-task-board-conflict-activity":VC,"157-drop-seat-billing":kC,"158-drop-github-child-single-parent":pC,"159-task-board-comments":vC,"160-task-quota-billing":qC,"161-task-quota-claim-state":iC,"162-claude-subscriptions":tC,"163-task-board-item-dismissed":cC,"164-per-org-task-quota":hC,"165-task-board-pending-review-index":oC,"166-task-board-last-swept-at":aC,"167-task-board-run-retry":rC,"168-org-repo-sync":lC,"169-task-board-merge-failed-activity":sC,"170-task-board-item-repo":bC,"171-jira-integration":_K,"172-task-board-item-key-seq":xK,"173-thread-github-repo-connection-index":uK,"174-thread-message-parts-persisted-at":CK,"175-task-board-sprints":KK,"176-task-board-done-sweep-index":NK,"177-notifications":TK,"178-jira-status-mapping-array":zK,"179-notification-mentioned":PK,"180-task-board-item-type":UK,"181-task-board-item-type-required":XK,"182-task-board-sprints-entities":jK,"183-drop-jira-jql-filter":QK,"184-jira-rescan-after-scope-change":ZK,"185-jira-rescan-existing-cards":JK,"186-jira-rescan-pending-flag":DK,"187-task-board-comment-thread":LK,"188-invitation-auto-accept":FK,"189-task-board-column-automations":HK,"190-task-board-review-cycle-started-at":RK,"191-task-board-columns":MK,"192-task-board-verdict-nudge-activity":GK,"193-task-board-status-column-fk":yK,"194-jira-link-sprint":fK,"195-task-board-sprint-activity":SK,"196-task-board-column-tracker-statuses":AK,"197-task-board-prompts":IK,"198-task-board-external-url":nK,"199-drop-jira-mirror-and-org-columns":wK,"200-jira-run-trigger":VK,"201-organization-notices":kK,"202-redact-base64-thread-parts":vK,"203-task-board-preview-routes":qK,"204-git-provider-accounts-and-repositories":gK,"205-repository-references":iK,"206-repository-consumers":Mx,"207-task-board-prs-repo-idx":Rx,"208-github-connect-flows":Hx,"209-github-installation-authorization":Yx,"210-github-repository-authorization":jx,"211-user-fs-org":Xx,"212-coding-agent-mcp-excluded":Qx,"213-bitbucket-git-provider":Zx,"214-connections-sanitized-id-idx":Ex,"215-commerce-discovery-repository":Px,"216-github-cli-auth":Ux,"217-experiments":Jx,"218-thread-message-parts-error-idx":Wx,"219-task-board-duplicate-reported-activity":Lx,"220-jira-automation-continue-pr":Fx,"221-remove-private-registry":l_,"222-org-git-credentials":d_,"223-drop-org-main-agent-id":zx,"224-repository-sandbox-image":s_,"225-thread-analytics-indexes":_x,"226-deco-score-names":ux,"227-task-board-finding-resolved-activity":Cx,"228-org-voice-config":e_,"229-jira-automation-from":Kx,"230-project-sidebar":Nx,"231-jira-chat-agent":Tx},t_=yZ;import{getMigrations as T6}from"better-auth/db";import{sso as z6}from"@better-auth/sso";import{organization as E6}from"@decocms/better-auth/plugins";import{admin as P6,apiKey as $6,jwt as U6,magicLink as X6,mcp as j6,openAPI as Q6}from"better-auth/plugins";import{emailOTP as Z6}from"better-auth/plugins/email-otp";import{Kysely as bZ,PostgresDialect as FT}from"kysely";import{Pool as YT}from"pg";import{homedir as fZ}from"os";var OZ=new Set(["all","worker","api"]);function SZ(_){let x=(_??"").trim();return OZ.has(x)?x:"all"}var AZ=new Set(["production","development","test"]);function IZ(_){let x=(_??"").trim();return AZ.has(x)?x:"development"}function J(_){return _==="true"||_==="1"}function cK(_,x,u){if(x===void 0||x==="")return;let K=Number(x);if(!Number.isSafeInteger(K)||K<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&K>u)throw Error(`${_} must be at most ${u}`);return K}function B(_,x,u,K){return cK(_,x,K)??u}function nZ(_){let x={};for(let u of(_??"").split(",")){let K=u.trim();if(!K)continue;let C=K.indexOf("="),N=C>0?K.slice(0,C).trim():"",z=C>0?K.slice(C+1).trim():"";if(!N||!z){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${K}" \u2014 expected price_xxx=planId`);continue}x[N]=z}return x}function wZ(_,x,u,K){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(K!==void 0&&C>K)throw Error(`${_} must be at most ${K}`);return C}function tK(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function $T(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function VZ(_){return _===void 0||_===""||_==="true"||_==="1"}function U_(_,x){return _||x}function UT(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${fZ()}/deco`,K=_.localMode,C=_.nodeEnv||IZ(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222",z=x.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",T={nodeEnv:C,port:B("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:U_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,voiceConversationProvider:z==="elevenlabs"||z==="openai"?z:null,openaiLiveApiKey:x.OPENAI_LIVE_API_KEY,openaiLiveModel:x.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:x.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:x.ELEVENLABS_API_KEY,elevenlabsVoiceId:x.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:x.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:x.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databasePgSsl:J(x.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:U_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:K,disableRateLimit:J(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:J(x.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",x.JIRA_SETTLE_SECONDS,60,3600),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((E)=>E.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((E)=>E.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:cK("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:J(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:nZ(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:wZ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:J(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:J(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:J(x.HOSTING_CONTROL_PLANE_GA),monitorGa:J(x.MONITOR_GA),plansEnabled:J(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:tK(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:J(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:tK(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:VZ(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:cK("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:SZ(U_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:J(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:J(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:tK(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:J(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:U_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:U_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(T.plansEnabled&&!T.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(T.plansEnabled&&!T.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(T.plansEnabled&&!T.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(T.plansEnabled&&Object.keys(T.stripePlanPriceIds).length>0&&!T.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(T.plansEnabled&&Object.keys(T.stripePlanPriceIds).length>1&&!T.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return{settings:T,externalDatabaseUrl:$T(x.DATABASE_URL),externalNatsUrl:$T(N),skipMigrations:_.skipMigrations}}var c_=null;function e(){if(!c_)kZ();return c_}function kZ(){if(c_)return;let _={...process.env},x=UT({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);c_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as tZ,metrics as cZ,propagation as b2,ROOT_CONTEXT as _7,SpanStatusCode as x7,trace as hZ}from"@opentelemetry/api";import{logs as oZ,SeverityNumber as hK}from"@opentelemetry/api-logs";import{OTLPLogExporter as C7}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as aZ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as T7}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as E7}from"@opentelemetry/instrumentation-runtime-node";import{context as aW,propagation as rW,SpanKind as eW,SpanStatusCode as lW}from"@opentelemetry/api";var sW=globalThis.fetch;import{ExportResultCode as P2}from"@opentelemetry/core";import{ExportResultCode as h_}from"@opentelemetry/core";import{mkdir as pZ,rename as vZ,writeFile as qZ}from"fs/promises";import{join as o_}from"path";class a_{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:h_.FAILED});for(let x of _){let u=JSON.stringify(x),K=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:K,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:h_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:h_.FAILED}});return Promise.resolve({code:h_.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),K=u.find((C)=>C.status==="rejected");if(K){let C=new Set;for(let z of u)if(z.status==="fulfilled")C.add(z.value);let N=_.filter((z)=>!C.has(z.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let z of this.bufferItems)this.bufferBytes+=Buffer.byteLength(z.json,"utf8")+1;throw K.reason}}async writeNDJSON(_,x){let u=new Date,K=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?o_(this.basePath,x,...K):o_(this.basePath,...K);if(!this.knownDirs.has(C))await pZ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,z=o_(C,`.${N}.tmp`),T=o_(C,N),E=_.join(`
|
|
2053
2053
|
`)+`
|
|
2054
|
-
`;await qZ(z,E,{mode:384}),await vZ(z,T)}}import{ExportResultCode as
|
|
2054
|
+
`;await qZ(z,E,{mode:384}),await vZ(z,T)}}import{ExportResultCode as Q2}from"@opentelemetry/core";import{AggregationTemporality as J2,DataPointType as W2}from"@opentelemetry/sdk-metrics";import{ExportResultCode as R2}from"@opentelemetry/core";var y2=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as W7,LoggerProvider as D7}from"@opentelemetry/sdk-logs";import{detectResources as F7,envDetector as Y7,hostDetector as H7,osDetector as R7,processDetector as M7,resourceFromAttributes as B7}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as y7}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as S2}from"@opentelemetry/api-logs";import{NodeSDK as S7}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as I7,SamplingDecision as l}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as V2}from"@opentelemetry/api";var rZ="__d",eZ=tZ("Current request"),lZ=1;var jT=(_)=>{let u=new URL(_.url).searchParams.get(rZ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class QT{inner;constructor(_){this.inner=_}shouldSample(_,x,u,K,C,N){let z=_.getValue(eZ);if(!z){if(this.inner)return this.inner.shouldSample(_,x,u,K,C,N);return{decision:l.RECORD_AND_SAMPLED}}let T=jT(z);if(T)return{decision:l.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":T}};if(this.inner){let E=this.inner.shouldSample(_,x,u,K,C,N);if(E.decision===l.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:l.NOT_RECORD}}toString(){return"DebugSampler"}}class ZT{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:l.RECORD_AND_SAMPLED};return{decision:l.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var w7=new aZ({preventServerStart:!0}),V7=new QT(new ZT(lZ));var XT=hZ.getTracer("studio","1.0.0"),X_=cZ.getMeter("studio","1.0.0"),dZ=oZ.getLogger("studio","1.0.0"),oK=(_,x,u)=>{let K={},C=u,N=u[u.length-1];if(N!==null&&typeof N==="object"&&!Array.isArray(N)&&!(N instanceof Error)&&Object.getPrototypeOf(N)===Object.prototype)K=N,C=u.slice(0,-1);let z=C.map((T)=>{if(T instanceof Error)return`${T.name}: ${T.message}`;if(typeof T==="object")try{return JSON.stringify(T)}catch{return"[Object]"}return String(T)}).join(" ");dZ.emit({severityNumber:_,severityText:x,body:z,attributes:{"log.source":"console",...K}})},aK={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{oK(hK.ERROR,"ERROR",_),aK.error(..._)};console.warn=(..._)=>{oK(hK.WARN,"WARN",_),aK.warn(..._)};console.debug=(..._)=>{oK(hK.DEBUG,"DEBUG",_),aK.debug(..._)};var rK,JT=0,eK=500;function sZ(){if(rK)return;let _=performance.now()+eK;rK=setInterval(()=>{let x=performance.now();JT=Math.max(0,x-_),_=x+eK},eK),rK.unref?.()}function WT(){return sZ(),JT}var _6=()=>X_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),DT=()=>X_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),LT=400,x6=100,u6=(_)=>({"db.status":_.level==="error"?"error":"success"}),m6=(_)=>(x)=>{let u=u6(x);if(x.queryDurationMillis>LT){let K=WT(),C=K>LT/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(K),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:r_()}})}if(_6().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function C6(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let K=performance.now(),C=r_(),N=_.idleCount===0&&_.totalCount>=C,z=_.idleCount;return x().then((T)=>{let E=performance.now()-K;if(DT().record(E,{"db.pool.outcome":N?"contended":"available"}),E>x6)if(N)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:z,total:_.totalCount,max:C});return T},(T)=>{throw DT().record(performance.now()-K,{"db.pool.outcome":"error"}),T})},_}var HT={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function RT(){try{return e().databasePgSsl}catch{return!1}}function r_(){try{return e().databasePoolMax}catch{return 10}}function K6(_){let x=C6(new YT({connectionString:_,max:r_(),ssl:RT(),...HT})),u=new FT({pool:x});return{type:"postgres",db:new bZ({dialect:u,log:m6(x)}),pool:x}}function Q_(){return e().databaseUrl}function MT(_){let x=_||Q_();return new FT({pool:new YT({connectionString:x,max:r_(),ssl:RT(),...HT})})}function N6(_){let x=_||Q_();return K6(x)}async function BT(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===j_)j_=null}var j_=null;function lK(){if(!j_)j_=N6(Q_());return j_}async function GT(_){let u={database:MT(_||Q_()),plugins:[E6({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),P6(),$6(),U6(),Q6(),j6({loginPage:"/login"}),z6(),X6({sendMagicLink:async()=>{}}),Z6({sendVerificationOTP:async()=>{}})]},{toBeAdded:K,toBeCreated:C,runMigrations:N}=await T6(u);if(!K.length&&!C.length)return"up to date";return await N(),`${C.length+K.length} table(s) migrated`}async function dK(_,x){return(await q`
|
|
2055
2055
|
SELECT table_name FROM information_schema.tables
|
|
2056
2056
|
WHERE table_schema='public' AND table_name=${x}
|
|
2057
|
-
`.execute(_)).rows.length>0}async function J6(_){if(await
|
|
2057
|
+
`.execute(_)).rows.length>0}async function J6(_){if(await dK(_,"plugin_migrations"))return;await q`
|
|
2058
2058
|
CREATE TABLE plugin_migrations (
|
|
2059
2059
|
plugin_id TEXT NOT NULL,
|
|
2060
2060
|
name TEXT NOT NULL,
|
|
2061
2061
|
timestamp TEXT NOT NULL,
|
|
2062
2062
|
PRIMARY KEY (plugin_id, name)
|
|
2063
2063
|
)
|
|
2064
|
-
`.execute(_)}async function W6(_){if(!await
|
|
2064
|
+
`.execute(_)}async function W6(_){if(!await dK(_,"kysely_migration"))return;let x=await q`
|
|
2065
2065
|
SELECT name, timestamp FROM kysely_migration
|
|
2066
2066
|
WHERE name LIKE '%/%'
|
|
2067
|
-
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:K}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let N=C.indexOf("/");if(N===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let z=C.substring(0,N),T=C.substring(N+1);try{await
|
|
2067
|
+
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:K}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let N=C.indexOf("/");if(N===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let z=C.substring(0,N),T=C.substring(N+1);try{await q`
|
|
2068
2068
|
INSERT INTO plugin_migrations (plugin_id, name, timestamp)
|
|
2069
2069
|
VALUES (${z}, ${T}, ${K})
|
|
2070
|
-
`.execute(_)}catch{let E=await
|
|
2070
|
+
`.execute(_)}catch{let E=await q`
|
|
2071
2071
|
SELECT COUNT(*) as cnt FROM plugin_migrations
|
|
2072
2072
|
WHERE plugin_id = ${z} AND name = ${T}
|
|
2073
|
-
`.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${z}/${T}, keeping in old table`);continue}}await
|
|
2073
|
+
`.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${z}/${T}, keeping in old table`);continue}}await q`
|
|
2074
2074
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
2075
|
-
`.execute(_)}}async function D6(_){
|
|
2075
|
+
`.execute(_)}}async function D6(_){if(!await dK(_,"kysely_migration"))return{};let{rows:x}=await q`
|
|
2076
|
+
SELECT name FROM kysely_migration
|
|
2077
|
+
`.execute(_),u=x.map((K)=>K.name).filter((K)=>!Object.hasOwn(t_,K));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((K)=>[K,{up:async()=>{}}]))}async function L6(_){await J6(_),await W6(_);let x=new yT({db:_,provider:{getMigrations:async()=>({...await D6(_),...t_})}}),{error:u,results:K}=await x.migrateToLatest(),C=0;if(K?.forEach((N)=>{if(N.status==="Success")C++;else if(N.status==="Error")console.error(`Failed to execute migration "${N.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function F6(_){let{keepOpen:x=!1,database:u,skipBetterAuth:K=!1}=_??{},C="skipped";if(!K&&!u)C=await GT();let N=u??lK(),z=async()=>{if(!x&&!u)await BT(N).catch((T)=>{console.warn("Warning: Error closing database:",T)})};try{let T=await L6(N.db);return await z(),{betterAuth:C,kysely:T}}catch(T){throw await z(),T}}async function UD(){let _=lK(),x=new yT({db:_.db,provider:{getMigrations:()=>Promise.resolve(t_)}}),{error:u,results:K}=await x.migrateDown();if(K?.forEach((C)=>{if(C.status==="Success")console.log(`\u2705 Migration "${C.migrationName}" rolled back successfully`);else if(C.status==="Error")console.error(`\u274C Failed to rollback migration "${C.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await F6(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{L6 as runKyselyMigrations,F6 as migrateToLatest,UD as migrateDown};
|