decocms 4.402.1 → 4.403.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-DcHwjWsq.js → AlertCircle-BxsvjprR.js} +1 -1
- package/dist/client/assets/{AreaChart-BPY6McAI.js → AreaChart-BXuWJn9c.js} +1 -1
- package/dist/client/assets/{ArrowLeft-Bkin1mI_.js → ArrowLeft-C98PG333.js} +1 -1
- package/dist/client/assets/{ArrowRight-5pCNMYve.js → ArrowRight-CK7-YvUr.js} +1 -1
- package/dist/client/assets/{ArrowUp-BBAz-eci.js → ArrowUp-DPWXMpl2.js} +1 -1
- package/dist/client/assets/{CartesianChart-Jh2jk1q9.js → CartesianChart-DD9gGd-G.js} +1 -1
- package/dist/client/assets/{Check-D8Zqb1HC.js → Check-Blxq8j59.js} +1 -1
- package/dist/client/assets/{CheckCircle-CF8WeHYg.js → CheckCircle-DS--6hmh.js} +1 -1
- package/dist/client/assets/{ChevronUp-CGDgj0bm.js → ChevronUp-CRNjHjTK.js} +1 -1
- package/dist/client/assets/{Copy01-C9mP-VM4.js → Copy01-DmLSY0Qf.js} +1 -1
- package/dist/client/assets/{CreditCard01-DQsr79v7.js → CreditCard01-C6GC8NM-.js} +1 -1
- package/dist/client/assets/{DotsVertical-DpAeUNyz.js → DotsVertical-B2eyM1bc.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-CwmIk3tm.js → ErrorBarContext-CYai77oS.js} +1 -1
- package/dist/client/assets/{Eye-DpBHj09D.js → Eye-DDS_VF-Y.js} +1 -1
- package/dist/client/assets/{Globe04-vwBxz8j-.js → Globe04-95dd8QSP.js} +1 -1
- package/dist/client/assets/{Image01-CWl1q5TL.js → Image01-C1vTsGg9.js} +1 -1
- package/dist/client/assets/{Key01-BdZlsNHY.js → Key01-CfEGZMt9.js} +1 -1
- package/dist/client/assets/{LayoutLeft-BCyzo03m.js → LayoutLeft-xPkXxcb6.js} +1 -1
- package/dist/client/assets/{Line-D3dMYTRZ.js → Line-C67AfCyw.js} +1 -1
- package/dist/client/assets/{Link01-DL0Bhiy8.js → Link01-CvcI1eLv.js} +1 -1
- package/dist/client/assets/{LinkExternal01-Bzm59G9x.js → LinkExternal01-DH3oN4WK.js} +1 -1
- package/dist/client/assets/{Monitor01-BWry3mi8.js → Monitor01-B9ABYuV_.js} +1 -1
- package/dist/client/assets/{Palette-QMR4FKys.js → Palette-DJJWQUTk.js} +1 -1
- package/dist/client/assets/{Plus-BUY7Ud4X.js → Plus-GxHWJNZK.js} +1 -1
- package/dist/client/assets/{SearchMd-BZrJSLPd.js → SearchMd-QgF27GDM.js} +1 -1
- package/dist/client/assets/{Sector-DDD99rSB.js → Sector-BNV9jqXa.js} +1 -1
- package/dist/client/assets/{Share07-lQLk_Wuy.js → Share07-DV5DThxW.js} +1 -1
- package/dist/client/assets/{Sun-BVJsSwmV.js → Sun-C3em9BZW.js} +1 -1
- package/dist/client/assets/{Tool01-eWiBwjAj.js → Tool01-BCsmpwCz.js} +1 -1
- package/dist/client/assets/{Trash01-CytDsT4G.js → Trash01-BgJo-uHb.js} +1 -1
- package/dist/client/assets/{Upload01-CDaZdY6S.js → Upload01-BNcthBU9.js} +1 -1
- package/dist/client/assets/{User01-Co__-w2M.js → User01-DvYjRkyx.js} +1 -1
- package/dist/client/assets/{UserSquare-DWwkQbY_.js → UserSquare-DKTJMzlh.js} +1 -1
- package/dist/client/assets/{Users01-DAz3tepP.js → Users01-DqJ21DOW.js} +1 -1
- package/dist/client/assets/{X-DAJc3BKO.js → X-tomqNIg1.js} +1 -1
- package/dist/client/assets/{XClose-BNaGgCB0.js → XClose-DKTON5RG.js} +1 -1
- package/dist/client/assets/{Zap-Cku-mkoY.js → Zap-DMCGUdZC.js} +1 -1
- package/dist/client/assets/{ZoomOut-DdkoWs_x.js → ZoomOut-CvfOKBlv.js} +1 -1
- package/dist/client/assets/{access-gate-BhuVj9y1.js → access-gate-DsBjN_k-.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-Df12oKBz.js → add-connection-dialog-DGaBiFHb.js} +1 -1
- package/dist/client/assets/{agent-analytics-DbTHKQ1k.js → agent-analytics-n1UGPVtK.js} +1 -1
- package/dist/client/assets/agent-app-ucQZeOf-.js +1 -0
- package/dist/client/assets/{agent-assets-CK7eio8D.js → agent-assets-DRURWRvp.js} +1 -1
- package/dist/client/assets/{agent-automation-CuAepk_l.js → agent-automation-DBbEhZPF.js} +1 -1
- package/dist/client/assets/{agent-automations-Bj04SxRa.js → agent-automations-B8ZFE67t.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-BCyCM1tV.js → agent-connect-sources-Dj71XW9T.js} +1 -1
- package/dist/client/assets/agent-deck-96Di6sOJ.js +1 -0
- package/dist/client/assets/{agent-e2e-C-5GcU_j.js → agent-e2e-DfXNlhc3.js} +1 -1
- package/dist/client/assets/{agent-experiments-C8LQkh0S.js → agent-experiments-BJWBqxLp.js} +1 -1
- package/dist/client/assets/{agent-file-iVhCT82h.js → agent-file-BBipxVNI.js} +1 -1
- package/dist/client/assets/{agent-git-3yyAe1K7.js → agent-git-Z2sLlW-j.js} +1 -1
- package/dist/client/assets/{agent-hosting-DDQwutKA.js → agent-hosting-D8WZlGjj.js} +1 -1
- package/dist/client/assets/{agent-icon-BvX9_a8p.js → agent-icon-CP9iXRWW.js} +1 -1
- package/dist/client/assets/agent-library-file-BlvILtIR.js +1 -0
- package/dist/client/assets/{agent-monitor-Cb-4CMIV.js → agent-monitor-CnK_AfrL.js} +1 -1
- package/dist/client/assets/{agent-overview-DGYqyfwa.js → agent-overview-8y0eYIH6.js} +1 -1
- package/dist/client/assets/agent-settings-CeWV6MPi.js +1 -0
- package/dist/client/assets/{agent-site-editor-DZsDoL4C.js → agent-site-editor-CQcbIrSJ.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-orvWD6S7.js +2 -0
- package/dist/client/assets/{agent-site-editor-content-DTjzis44.js → agent-site-editor-content-BlZJF4Kt.js} +3 -3
- package/dist/client/assets/{agent-site-editor-preview-CjO8bl2l.js → agent-site-editor-preview-B2myVBRe.js} +3 -3
- package/dist/client/assets/agent-view-BhpD7HoJ.js +1 -0
- package/dist/client/assets/{agent-view-guard-DKeKGOgB.js → agent-view-guard-CR5g29BH.js} +1 -1
- package/dist/client/assets/{agents-list-VW3RCSuu.js → agents-list-Bn6kIacr.js} +1 -1
- package/dist/client/assets/{ai-providers-DmdvF_P2.js → ai-providers-DIo8QsY4.js} +1 -1
- package/dist/client/assets/{alert-dialog-BUIr72GF.js → alert-dialog-B5hf3Zq6.js} +1 -1
- package/dist/client/assets/{alert-BWOy_aTe.js → alert-xdPy5Dnu.js} +1 -1
- package/dist/client/assets/{analytics-sections-CtJSDTKq.js → analytics-sections-MCA0egKf.js} +1 -1
- package/dist/client/assets/api-keys-BB-GxSyT.js +1 -0
- package/dist/client/assets/{api-keys-BkC5Tf1A.js → api-keys-k6o9_ZVL.js} +1 -1
- package/dist/client/assets/app-editor-BYBxWW6P.js +1 -0
- package/dist/client/assets/{asset-utils-CCxUxZJl.js → asset-utils-DHewT25o.js} +1 -1
- package/dist/client/assets/{auth-catchall-Bc-Nu92V.js → auth-catchall-DrFinUIn.js} +1 -1
- package/dist/client/assets/{auth-entry-BwKPXJEb.js → auth-entry-Ceu5j70S.js} +1 -1
- package/dist/client/assets/{auth-D8auDfWe.js → auth-pb03Kzig.js} +1 -1
- package/dist/client/assets/{auth-split-layout-34Nf6GFY.js → auth-split-layout-Bt9Pa3Bg.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-xX05HUt0.js → authenticate-and-persist-oauth-ByuGS_gG.js} +1 -1
- package/dist/client/assets/{automation-list-row-BjKSRD_8.js → automation-list-row-CH-bg8ai.js} +1 -1
- package/dist/client/assets/{automation-runs-DYTaC7v8.js → automation-runs-C1MhxQwE.js} +1 -1
- package/dist/client/assets/{automations-Dh1bOrz6.js → automations-D4d9Yr8A.js} +1 -1
- package/dist/client/assets/{autosend-CAruNR-r.js → autosend-DxvfLrdl.js} +1 -1
- package/dist/client/assets/{avatar-DpIdIzyq.js → avatar-D9bHXtJ-.js} +1 -1
- package/dist/client/assets/{badge-Cz4FrB04.js → badge-DXHGQv94.js} +1 -1
- package/dist/client/assets/{block-document-DBd3EXVE.js → block-document-Cjfk5S2Y.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-CagHfewh.js → blocks-preview-workspace-context-D339Nq0O.js} +1 -1
- package/dist/client/assets/{buckets-pLKwt15L.js → buckets-8xQyeFnA.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-DktDRS2O.js → build-improve-prompt-doc-D2Ll2Rce.js} +1 -1
- package/dist/client/assets/{calendar-D1XYfb8U.js → calendar-Wk2YDk5Q.js} +1 -1
- package/dist/client/assets/{capability-load-error-C7vdFk9B.js → capability-load-error-QLFmZqWG.js} +1 -1
- package/dist/client/assets/{cards-DwAzndr5.js → cards-c3aviZef.js} +1 -1
- package/dist/client/assets/{category-editor-ogyqgis9.js → category-editor-zXprfyEx.js} +1 -1
- package/dist/client/assets/{chart-PWKZfojU.js → chart-DKqJHT22.js} +1 -1
- package/dist/client/assets/{chat-context-lntumHEL.js → chat-context-zkHg9OWQ.js} +1 -1
- package/dist/client/assets/{chat-draft-vzCx0JHx.js → chat-draft-DSG5ngj7.js} +1 -1
- package/dist/client/assets/{checkbox-CjzMziEV.js → checkbox-K4FR-PUT.js} +1 -1
- package/dist/client/assets/{choose-editor-Dau4YBRD.js → choose-editor-BXV7Je4x.js} +1 -1
- package/dist/client/assets/{claim-phase-copy-CKjixjui.js → claim-phase-copy-pJF6tq00.js} +1 -1
- package/dist/client/assets/{cli-auth-success-DYzdHJrD.js → cli-auth-success-Cl8P0ld7.js} +1 -1
- package/dist/client/assets/{client-icons-DsW6C1D5.js → client-icons-Q4X702lN.js} +1 -1
- package/dist/client/assets/{collapsible-C1N5Vk5A.js → collapsible-C198MfkN.js} +1 -1
- package/dist/client/assets/{collection-detail-CpyWy-pY.js → collection-detail-j8tNEP48.js} +1 -1
- package/dist/client/assets/{collection-display-button-DDhY9dMS.js → collection-display-button-HO4jLV8w.js} +1 -1
- package/dist/client/assets/{collection-search-hFSvTg9q.js → collection-search-DIxBrmSt.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-CoSdC7p-.js → collection-table-wrapper-Be87XQmm.js} +1 -1
- package/dist/client/assets/{collection-tabs-CB5jU9UN.js → collection-tabs-BAPv5IF9.js} +1 -1
- package/dist/client/assets/{combobox-D6DckToA.js → combobox-BVFjv7zx.js} +1 -1
- package/dist/client/assets/{command-M2XMNX_S.js → command-CfliK-Cc.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-B9h24TwK.js → companion-mcps-section-BbAoBFxb.js} +1 -1
- package/dist/client/assets/{connect-kPokwQd1.js → connect-BA0xuDG1.js} +1 -1
- package/dist/client/assets/{connect-layout-BLRcrSQ6.js → connect-layout-BdvXARBl.js} +1 -1
- package/dist/client/assets/{connection-card-B_Iux5tH.js → connection-card-DvPe_M7v.js} +1 -1
- package/dist/client/assets/{connection-detail-X7jG3k4W.js → connection-detail-DwqbKjaA.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-Diud5YKf.js → connection-form-helpers-DplEqD9m.js} +1 -1
- package/dist/client/assets/{connection-DNxakCqK.js → connection-vEOaKzQz.js} +1 -1
- package/dist/client/assets/{connections-CdmbRwtQ.js → connections-DP3rfITi.js} +1 -1
- package/dist/client/assets/{context-D_-nNlkt.js → context-BN_AZdQK.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-Dvo8jU8X.js → create-organization-dialog-CIJFPZj1.js} +1 -1
- package/dist/client/assets/{decofile-api-CRY_R36f.js → decofile-api-W5b1cAOf.js} +1 -1
- package/dist/client/assets/{decopilot-B9r80dff.js → decopilot-TYyHvkDT.js} +1 -1
- package/dist/client/assets/{dialog-DZbrQs4a.js → dialog-D_eZEQVv.js} +1 -1
- package/dist/client/assets/{discover-N-k9SPj2.js → discover-B9q6xfGX.js} +1 -1
- package/dist/client/assets/{domain-settings-DaO7iyKF.js → domain-settings-DNUorrft.js} +1 -1
- package/dist/client/assets/{download-app-dialog-Cc26MdhV.js → download-app-dialog-Cg2Fsige.js} +1 -1
- package/dist/client/assets/{drawer-B5y-1Csa.js → drawer-BbjSV6aw.js} +1 -1
- package/dist/client/assets/{editor-BYzs-ptR.js → editor-z3_N_jkd.js} +1 -1
- package/dist/client/assets/{empty-state-sf1-Jq0W.js → empty-state-CDIBHplc.js} +1 -1
- package/dist/client/assets/{empty-state-ypVDBd57.js → empty-state-DdD7u29c.js} +1 -1
- package/dist/client/assets/{extract-connection-data-DjI_aoBC.js → extract-connection-data-IvHnTVAw.js} +1 -1
- package/dist/client/assets/{feature-gate-DcRjQ5be.js → feature-gate-BWDpzS9z.js} +1 -1
- package/dist/client/assets/{feature-paywall-BJyKoG94.js → feature-paywall-BMHKK3Z9.js} +1 -1
- package/dist/client/assets/{file-explorer-4Pc4NHzH.js → file-explorer-D27HdHX3.js} +1 -1
- package/dist/client/assets/{file-preview-BEbWQaxd.js → file-preview-8F3P6Bl5.js} +1 -1
- package/dist/client/assets/{file-share-button-c3pbTUkm.js → file-share-button-DyElnx8z.js} +1 -1
- package/dist/client/assets/{file-type-icon-M-h3H6gl.js → file-type-icon-ClDaqk3f.js} +1 -1
- package/dist/client/assets/{folder-icon-u0aPfhqN.js → folder-icon-D04YRFhU.js} +1 -1
- package/dist/client/assets/{form-BW5sQRmk.js → form-C7tLG-xD.js} +1 -1
- package/dist/client/assets/{gateway-client-Iyhaszzo.js → gateway-client-BS6ihzBm.js} +1 -1
- package/dist/client/assets/{general-BvHqxpPY.js → general-B2rNnykE.js} +1 -1
- package/dist/client/assets/{github-icon-BDxNO7KC.js → github-icon-CfU12Xim.js} +1 -1
- package/dist/client/assets/{home-5wJZqSWV.js → home-i2aU9Ufv.js} +1 -1
- package/dist/client/assets/{hooks-DWWfCdjK.js → hooks-BdWJM6ej.js} +1 -1
- package/dist/client/assets/{icon-button-CtJzFHej.js → icon-button-DAJ4484y.js} +1 -1
- package/dist/client/assets/{index-By68j_mZ.js → index-3i5Lrx2p.js} +1 -1
- package/dist/client/assets/{index-ziWxoYuo.js → index-B_jqJjWZ.js} +39 -39
- package/dist/client/assets/{index-BTBWEo6K.js → index-CFR2L-q4.js} +1 -1
- package/dist/client/assets/{index-CS_gB0YL.js → index-CS_ks7u-.js} +1 -1
- package/dist/client/assets/{index-fHAcll79.js → index-Cc2tAO7N.js} +1 -1
- package/dist/client/assets/{index-BICcivlc.js → index-Chkg10uz.js} +1 -1
- package/dist/client/assets/{index-B_nJnclR.js → index-D6rGE1Dy.js} +1 -1
- package/dist/client/assets/{index-6cM3T3JU.js → index-DBxyNE8f.js} +1 -1
- package/dist/client/assets/{index-sefeb9SI.js → index-DZwO8JK7.js} +1 -1
- package/dist/client/assets/{index-CC84NaKX.js → index-DnYPqGbF.js} +1 -1
- package/dist/client/assets/{index-DMC1gEI3.js → index-DwgW_YLd.js} +1 -1
- package/dist/client/assets/{index-BO05OYcW.js → index-E9kwMDzy.js} +1 -1
- package/dist/client/assets/{index--em0zeg6.js → index-Hk82ozwG.js} +1 -1
- package/dist/client/assets/{index-9mA_jLNn.js → index-_sXoF1Et.js} +1 -1
- package/dist/client/assets/{index-redirect-Bup6rHGm.js → index-redirect-B6SWpWIS.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-C0scbCv9.js → infiniteQueryObserver-DSiFdm1_.js} +1 -1
- package/dist/client/assets/{infra-billing-DZvKZXmT.js → infra-billing-4kvUQS8R.js} +1 -1
- package/dist/client/assets/{input-CXPy1lnR.js → input-CPX_K4na.js} +1 -1
- package/dist/client/assets/{input-CztG7UMa.js → input-CUqzZQqX.js} +1 -1
- package/dist/client/assets/{input-CJpGQ1Th.js → input-D3d-YnPi.js} +1 -1
- package/dist/client/assets/{integration-icon-BzvUNmRE.js → integration-icon-DG8pRbj-.js} +1 -1
- package/dist/client/assets/{label-_3WYFdo5.js → label-B42WVwom.js} +1 -1
- package/dist/client/assets/{last-preview-page-CHWyRhbr.js → last-preview-page-VDeNxgNa.js} +1 -1
- package/dist/client/assets/{layout-DYIHs9kD.js → layout-Cg9QXreU.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-DBTnH6bL.js → legacy-agents-deep-BQwnmlAz.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-BsYq-xiI.js → legacy-main-redirect-DPq1EZZB.js} +1 -1
- package/dist/client/assets/{library-Do40Vk3o.js → library-C5v9Lai5.js} +1 -1
- package/dist/client/assets/{login-Btr57Seb.js → login-CQeYUvND.js} +1 -1
- package/dist/client/assets/{markdown-BA0WefIr.js → markdown-7es2nAha.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-BMekd9hK.js → mcp-app-renderer-DhZPltbk.js} +1 -1
- package/dist/client/assets/{mcp-oauth-9MW-5Yis.js → mcp-oauth-Ckxkgwom.js} +1 -1
- package/dist/client/assets/{members-C1yb5hTi.js → members-BwpS2FJg.js} +1 -1
- package/dist/client/assets/{message-templates-BreVPcoU.js → message-templates-B94eek_d.js} +1 -1
- package/dist/client/assets/{mini-report-page-C4fct7wn.js → mini-report-page-CsRp8RBX.js} +1 -1
- package/dist/client/assets/{mock-board-BtM1Rw_K.js → mock-board-CDJcm5pO.js} +3 -3
- package/dist/client/assets/{monaco-editor-Rppk41ht.js → monaco-editor-CVsFBD0x.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-Cc7ItOSd.js → monitoring-stats-row-ByyxXINL.js} +1 -1
- package/dist/client/assets/{multi-select-3KqHCA4E.js → multi-select-Dz5xTYyG.js} +1 -1
- package/dist/client/assets/{mustache-_Bjx0slz.js → mustache-CP6S3NLE.js} +1 -1
- package/dist/client/assets/{oauth-callback-Bcy-6PY_.js → oauth-callback-Doz3uO24.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-ly_LHSFd.js → oauth-callback-ai-provider-BNo5jLbk.js} +1 -1
- package/dist/client/assets/{onboarding-CbAB8H9h.js → onboarding-CFbudetK.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-BEr3crxf.js → optimistic-project-sidebar-views-BZFYBphr.js} +1 -1
- package/dist/client/assets/{org-file-open-context--mCB_iQy.js → org-file-open-context-BUYeSnyZ.js} +1 -1
- package/dist/client/assets/{organization-choice-BsW0tsr0.js → organization-choice-D785n-oL.js} +1 -1
- package/dist/client/assets/{orgs-DqNq_SYU.js → orgs-BYiTsfBK.js} +1 -1
- package/dist/client/assets/{page-seo-form-DojL7wpr.js → page-seo-form-DLdbZSvc.js} +1 -1
- package/dist/client/assets/{pair-B8zmeOHa.js → pair-Cntzz70t.js} +1 -1
- package/dist/client/assets/{plan-ladder-B4Yh8okh.js → plan-ladder-CgZjoFq0.js} +1 -1
- package/dist/client/assets/{popover-Bk7hW0ey.js → popover-D7TbzVGm.js} +1 -1
- package/dist/client/assets/{post-calendar-BV1eHaK8.js → post-calendar-C1z8ltmP.js} +1 -1
- package/dist/client/assets/{post-editor-BT9uGcZD.js → post-editor-C_EE2ywm.js} +1 -1
- package/dist/client/assets/{preview-content-QoDE1rCY.js → preview-content-BHvFZwTL.js} +1 -1
- package/dist/client/assets/{preview-dialog-C9P8-JXO.js → preview-dialog-LK5goGiO.js} +1 -1
- package/dist/client/assets/{profile-io3wVtBH.js → profile-C8Ekz_R3.js} +1 -1
- package/dist/client/assets/{project-app-view-uS1Oyo_z.js → project-app-view-w895ELfV.js} +1 -1
- package/dist/client/assets/{project-feed-BOlh1fkU.js → project-feed-BIeMuQsl.js} +1 -1
- package/dist/client/assets/{project-icon-Dqsi312T.js → project-icon-KCkwxFCZ.js} +1 -1
- package/dist/client/assets/project-reports-Cl2HONmy.js +1 -0
- package/dist/client/assets/project-tasks-BIMrLh_c.js +1 -0
- package/dist/client/assets/{prompts-BG-MPyn-.js → prompts-ndmFBjqL.js} +1 -1
- package/dist/client/assets/record-editor-DjlSkTMR.js +1 -0
- package/dist/client/assets/{redirect-editor-JipDfipG.js → redirect-editor-CguLDdkl.js} +1 -1
- package/dist/client/assets/reports-D5LirKe3.js +1 -0
- package/dist/client/assets/{reports-DKfv6F8w.js → reports-DlVcHkUD.js} +1 -1
- package/dist/client/assets/{reports-onboarding-Cy3jqQvd.js → reports-onboarding-Ds5SahYM.js} +1 -1
- package/dist/client/assets/{reports-tab-o_wsXSh7.js → reports-tab-DC6c1sVj.js} +2 -2
- package/dist/client/assets/{repositories-CSGkwVyT.js → repositories-CUfjI4El.js} +1 -1
- package/dist/client/assets/{repository-import-picker-CQVzq3BU.js → repository-import-picker-OZgXFfxq.js} +1 -1
- package/dist/client/assets/{repository-picker-BdMF9zgM.js → repository-picker-Cuj06eQZ.js} +1 -1
- package/dist/client/assets/{require-capability-DEtYkpLS.js → require-capability-naAuPznp.js} +1 -1
- package/dist/client/assets/{required-auth-layout-CAKi6iDw.js → required-auth-layout-BuQC1B0R.js} +1 -1
- package/dist/client/assets/{reset-password-CjXeqPrv.js → reset-password-C-TuQEuk.js} +1 -1
- package/dist/client/assets/{resizable-Dwlj_5ft.js → resizable-BSTHeCGD.js} +1 -1
- package/dist/client/assets/{review-settings-BUpwP2dx.js → review-settings-DPAP3K_X.js} +1 -1
- package/dist/client/assets/{rich-text-link-control-DNvgXQgl.js → rich-text-link-control-DSqyN-4h.js} +1 -1
- package/dist/client/assets/{roles-BTKe5RPi.js → roles-p5A3Dtl6.js} +1 -1
- package/dist/client/assets/{route-DAYL9p8i.js → route-CKMOQ40u.js} +1 -1
- package/dist/client/assets/{route-CW79snE6.js → route-CpKC5KjI.js} +1 -1
- package/dist/client/assets/{route-CJkw61Zc.js → route-DBh4p0P2.js} +1 -1
- package/dist/client/assets/{route-page-header-BX_04V6X.js → route-page-header-DqB3P7Mp.js} +1 -1
- package/dist/client/assets/{runnable-block-editor-BqGS6HoQ.js → runnable-block-editor-CgZ8SmOe.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-CMg8X78k.js → sandbox-lifecycle-context-D9wQaDsx.js} +1 -1
- package/dist/client/assets/schema-B6bqanRf.js +1 -0
- package/dist/client/assets/{scroll-area-WP6xUrg2.js → scroll-area-bbynZh9-.js} +1 -1
- package/dist/client/assets/{search-input-CzMI7SbY.js → search-input-Btpivanp.js} +1 -1
- package/dist/client/assets/{search-toggle-_SwtmigM.js → search-toggle-CPZhZrMT.js} +1 -1
- package/dist/client/assets/{secret-picker-B7LbtI2k.js → secret-picker-AWBv6wFY.js} +1 -1
- package/dist/client/assets/{secrets-B5P1IBT4.js → secrets-Dj_h5xgB.js} +1 -1
- package/dist/client/assets/{sections-editor-DIx6r2h9.js → sections-editor-DHlfw38F.js} +1 -1
- package/dist/client/assets/{select-8KXSGRLl.js → select-jSjoqSVI.js} +1 -1
- package/dist/client/assets/{select-model-Bo57k2gC.js → select-model-xbu3VazG.js} +1 -1
- package/dist/client/assets/{seo-editor-BCM5fWif.js → seo-editor-cQIPvPvE.js} +1 -1
- package/dist/client/assets/{separator-BW4l_JXy.js → separator-CzwHfLvM.js} +1 -1
- package/dist/client/assets/{settings-tab-CvDc9lSQ.js → settings-tab-CeOX7aTs.js} +1 -1
- package/dist/client/assets/{sheet-BoIBD2fU.js → sheet-D_ZIeH1i.js} +1 -1
- package/dist/client/assets/{shell-layout-C4Rn0yyM.js → shell-layout-5RFwQBw2.js} +1 -1
- package/dist/client/assets/{skill-preview-CQYYDECQ.js → skill-preview-CNoU4Qye.js} +1 -1
- package/dist/client/assets/{skills-ByEvh5tv.js → skills-BJkniNrS.js} +1 -1
- package/dist/client/assets/{sso-CmLvBErH.js → sso-B9hnmDuf.js} +1 -1
- package/dist/client/assets/{suggestion-tuFcyOKm.js → suggestion-U-2vYvOO.js} +1 -1
- package/dist/client/assets/{switch-DPTro45D.js → switch-CxeV46Qg.js} +1 -1
- package/dist/client/assets/{synced-repos-B4c-CrQ7.js → synced-repos-21EGZfBM.js} +1 -1
- package/dist/client/assets/{table-C7ZZ1Gh3.js → table-C-Py-wTW.js} +1 -1
- package/dist/client/assets/{tabs-CI-qOCoA.js → tabs-C3x66yHR.js} +1 -1
- package/dist/client/assets/{task-board-DPuIO3lj.js → task-board-DfS5a_U6.js} +1 -1
- package/dist/client/assets/{task-route-B502sFo7.js → task-route-D4Lm7oMd.js} +1 -1
- package/dist/client/assets/{task-status-CY7tmQAt.js → task-status-BVsZxsbL.js} +1 -1
- package/dist/client/assets/{taskboard-analytics-wJrWcpXu.js → taskboard-analytics-BPvIiWmk.js} +1 -1
- package/dist/client/assets/tasks-DcFwVI3V.js +1 -0
- package/dist/client/assets/{tasks-DdJpYlFL.js → tasks-DiyaPFMr.js} +1 -1
- package/dist/client/assets/{textarea-BncilA97.js → textarea-BWwZU_t6.js} +1 -1
- package/dist/client/assets/{thread-analytics-ApATKMqj.js → thread-analytics-DUYI7gXn.js} +1 -1
- package/dist/client/assets/{thread-button-DJeTkAyH.js → thread-button-C_OQPTk1.js} +1 -1
- package/dist/client/assets/{thread-intent-BNnANQO5.js → thread-intent-E5sYh_tC.js} +1 -1
- package/dist/client/assets/{thread-route-CBWg87G3.js → thread-route-BDTLcWS1.js} +1 -1
- package/dist/client/assets/{thread-route-M4rTxHUV.js → thread-route-BZ26YLl1.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-CFRV6F8c.js → thread-sheet-body-CsPcwFou.js} +1 -1
- package/dist/client/assets/{toggle-group-DnlZm5ed.js → toggle-group-Br61F69t.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-D8Zp_HQd.js → toolbar-icon-button-DAWIeeny.js} +1 -1
- package/dist/client/assets/{tooltip-OlmP4Xne.js → tooltip-MGIMGAoz.js} +1 -1
- package/dist/client/assets/{track-B0Nkp-gO.js → track-DRMUb5wX.js} +1 -1
- package/dist/client/assets/{types-DXypKwsh.js → types-BobDzo_S.js} +1 -1
- package/dist/client/assets/{usage-stats-CAm8ll0C.js → usage-stats-CtwYJCDG.js} +1 -1
- package/dist/client/assets/{use-ai-providers-Lvr_1665.js → use-ai-providers-D3QOmX-C.js} +1 -1
- package/dist/client/assets/{use-automations-81CjRTlN.js → use-automations-cNW48WkH.js} +1 -1
- package/dist/client/assets/{use-autosave-t6s5wMUE.js → use-autosave-VCuxTv0J.js} +1 -1
- package/dist/client/assets/{use-connect-companion-BxZZw6OD.js → use-connect-companion-BuSwVwXM.js} +1 -1
- package/dist/client/assets/{use-connection-DXReahBl.js → use-connection-BhRHLAsr.js} +1 -1
- package/dist/client/assets/{use-copy-DZfoedG5.js → use-copy-BF-mjGgx.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-D3lKBA1-.js → use-create-virtual-mcp-DwVcqONE.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-B6lsja9n.js → use-date-fns-locale-DCvnbugy.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-D2HFk0bO.js → use-debounced-autosave-jBJVBJsX.js} +1 -1
- package/dist/client/assets/{use-debounced-value-C7-JMyFp.js → use-debounced-value-I_7zwW8J.js} +1 -1
- package/dist/client/assets/{use-deco-credits-hhJiNpZB.js → use-deco-credits-Doeu9LgP.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-zVeGPrg4.js → use-decopilot-events-BnXMCuEf.js} +1 -1
- package/dist/client/assets/{use-delete-connection-B5GiyA_y.js → use-delete-connection-CvMWFyh1.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-Bw0ESsNA.js → use-deployment-admin-BetxU96z.js} +1 -1
- package/dist/client/assets/{use-entitlements-DdLeP5e8.js → use-entitlements-CObs1qD4.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-DmGf6kPM.js → use-fast-preview-draft-url--bVRoyz9.js} +1 -1
- package/dist/client/assets/{use-file-configs-DtnzXs8S.js → use-file-configs-DigsDSAK.js} +1 -1
- package/dist/client/assets/{use-in-settings-Dvk70b-r.js → use-in-settings-kPZjTMQr.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-OBKDpZd2.js → use-infinite-scroll-R-FVBBxh.js} +1 -1
- package/dist/client/assets/{use-join-requests-BR_Ts9mr.js → use-join-requests-BUHZc4Mq.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-D7hvsAEq.js → use-main-panel-tabs-DQnZor4-.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-B6yMK8tP.js → use-mcp-auth-status-ermcBJaV.js} +1 -1
- package/dist/client/assets/{use-mcp-client-D0GxBaDo.js → use-mcp-client-BdNrVAJP.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-CYjViP6k.js → use-mcp-prompts-1Ewo80b8.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-_g4NAjrq.js → use-mcp-tools-Cu0xFgEP.js} +1 -1
- package/dist/client/assets/{use-members-Ct_DkclC.js → use-members-hbcweNuZ.js} +1 -1
- package/dist/client/assets/{use-mobile-DL0BBun-.js → use-mobile-beNLxD1C.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-C0Wb0lHC.js → use-navigate-to-agent-C6DjZGwr.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-5Jl47ZN-.js → use-open-billing-url-y3R__MyB.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-BhlcNBON.js → use-org-auth-client-Cn5VVAMk.js} +1 -1
- package/dist/client/assets/{use-org-fs-BZxhCLBv.js → use-org-fs-iJQRZ_Y8.js} +1 -1
- package/dist/client/assets/{use-org-sso-B67vSzPL.js → use-org-sso-DUkP7wB6.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DvWLvtJo.js → use-organization-roles-B_L60GhE.js} +1 -1
- package/dist/client/assets/{use-organization-settings-Cj191Ewd.js → use-organization-settings-DkOGSUvX.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-CxM_dPDF.js → use-panel-navigate-rE0Chr-2.js} +1 -1
- package/dist/client/assets/{use-project-native-view-presence-Dpkg39tr.js → use-project-native-view-presence-1YdimLRn.js} +1 -1
- package/dist/client/assets/{use-project-scope-CmwWylK9.js → use-project-scope-P0x76zE6.js} +1 -1
- package/dist/client/assets/{use-releases-C64Gw739.js → use-releases-B1QdX0n3.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-BlZh8B-b.js → use-reports-diagnostic-rG5xwYUZ.js} +1 -1
- package/dist/client/assets/{use-route-default-main-4PMl5Y8H.js → use-route-default-main-D9XS7l59.js} +1 -1
- package/dist/client/assets/{use-secrets-DCi_KkhE.js → use-secrets-omlZfkaj.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-0PubG-2k.js → use-section-preview-base-D8Bv__bX.js} +1 -1
- package/dist/client/assets/{use-session-runtime-BQHvzOwo.js → use-session-runtime-DdWkBfbN.js} +1 -1
- package/dist/client/assets/{use-tags-NI2eu5Cz.js → use-tags-CTTUJ_N1.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-Xdiuqy_o.js → use-task-board-analytics-CnU57ib7.js} +1 -1
- package/dist/client/assets/{use-task-metadata-CCc0stnS.js → use-task-metadata-DDYUL_Qx.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-CYxmK_WD.js → use-thread-analytics-Dr_m25eO.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-Bv992dBv.js → use-thread-outputs-DM_M_g6a.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-D6_hi4NV.js → use-virtual-mcp-DfNb-iFO.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-U5kS7Aw3.js +1 -0
- package/dist/client/assets/{useQueries-Dh-P597K.js → useQueries-o0vNhPOA.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BGK64Vi3.js +1 -0
- package/dist/client/assets/{users-D2bWKe0T.js → users-DoJNHPyq.js} +1 -1
- package/dist/client/assets/{utils-Drhm0YFn.js → utils-YiROKHsB.js} +1 -1
- package/dist/client/assets/{variant-calendar-aRH9J9TF.js → variant-calendar-h0YzSol5.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-D83fZJgn.js → variant-matcher-override-Dw_V_0pd.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-CyBHOQ0X.js → view-mode-toggle-BzLcGe3J.js} +1 -1
- package/dist/client/assets/{virtual-mcp-BcxcIP1Z.js → virtual-mcp-VXYym_wm.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +791 -738
- package/dist/server/migrate.js +288 -235
- package/dist/server/server.js +8 -8
- package/package.json +1 -1
- package/dist/client/assets/agent-app-Sr-2nirf.js +0 -1
- package/dist/client/assets/agent-deck-D-UCGYQX.js +0 -1
- package/dist/client/assets/agent-library-file-Cvi8jKHC.js +0 -1
- package/dist/client/assets/agent-settings-CTbjU_Gy.js +0 -1
- package/dist/client/assets/agent-site-editor-code-DR-g4J4J.js +0 -2
- package/dist/client/assets/agent-view-B6BDTAiP.js +0 -1
- package/dist/client/assets/api-keys-CvoR7Xp2.js +0 -1
- package/dist/client/assets/app-editor-BxSmqsZG.js +0 -1
- package/dist/client/assets/project-reports-DDobh4a3.js +0 -1
- package/dist/client/assets/project-tasks-DQbSKuzy.js +0 -1
- package/dist/client/assets/record-editor-BEfIzmJ1.js +0 -1
- package/dist/client/assets/reports-DypWpAd4.js +0 -1
- package/dist/client/assets/schema-DVTBToxW.js +0 -1
- package/dist/client/assets/tasks-BCglhWH3.js +0 -1
- package/dist/client/assets/useInfiniteQuery-BGHP6rbt.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-D4hZ-82Z.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,34 +1,87 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var ZK=Object.defineProperty;var DK=(_)=>_;function WK(_,x){this[_]=DK.bind(null,x)}var m=(_,x)=>{for(var u in x)ZK(_,u,{get:x[u],enumerable:!0,configurable:!0,set:WK.bind(x,u)})};import{Migrator as JK,sql as l}from"kysely";var h_={};m(h_,{up:()=>LK,down:()=>FK});import{sql as v}from"kysely";async function LK(_){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 v`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 v`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 v`UPDATE connections SET metadata = (registry_try_jsonb(metadata) - 'enabled_plugins')::text
|
|
9
|
+
WHERE registry_try_jsonb(metadata) ? 'enabled_plugins'`.execute(_),await v`DROP FUNCTION registry_try_jsonb(text)`.execute(_),await v`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 v`DELETE FROM connections
|
|
15
15
|
WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
|
|
16
16
|
OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
|
|
17
|
-
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function
|
|
17
|
+
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function FK(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var o_={};m(o_,{up:()=>RK,down:()=>YK});import{sql as iN}from"kysely";async function RK(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await iN`
|
|
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 T;try{T=JSON.parse(C.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let
|
|
23
|
+
`.execute(_),u=new Map;for(let C of x.rows){if(!C.metadata)continue;let T;try{T=JSON.parse(C.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let K of T){let E=K?.host,z=K?.secretId;if(typeof E!=="string"||!E)continue;if(typeof z!=="string"||!z)continue;let $=u.get(C.organization_id)??new Map;$.set(E,z),u.set(C.organization_id,$)}}let N=new Date().toISOString();for(let[C,T]of u){let K=JSON.stringify([...T].map(([E,z])=>({host:E,secretId:z})));await iN`
|
|
24
24
|
insert into organization_settings
|
|
25
25
|
("organizationId", submodule_credentials, "createdAt", "updatedAt")
|
|
26
|
-
values (${C}, ${
|
|
26
|
+
values (${C}, ${K}, ${N}, ${N})
|
|
27
27
|
on conflict ("organizationId") do update
|
|
28
28
|
set submodule_credentials = excluded.submodule_credentials,
|
|
29
29
|
"updatedAt" = excluded."updatedAt"
|
|
30
|
-
`.execute(_)}}async function
|
|
31
|
-
|
|
30
|
+
`.execute(_)}}async function YK(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var a_={};m(a_,{up:()=>HK,down:()=>MK});async function HK(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function MK(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var e_={};m(e_,{up:()=>BK,down:()=>GK});import{sql as r_}from"kysely";async function BK(_){await r_`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await r_`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await r_`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function GK(_){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 d_={};m(d_,{up:()=>OK,down:()=>SK});import{sql as L}from"kysely";var yK={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"}},fK={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"}},l_={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function tN(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function cN(_,x){for(let[C,T]of[[L`organization_id || '_commerce-discovery'`,yK],[L`'commerce-discovery_' || organization_id`,fK]])for(let K of["title","description"]){let{from:E,to:z}=tN(T[K],x);await L`
|
|
31
|
+
UPDATE connections
|
|
32
|
+
SET ${L.ref(K)} = ${z}
|
|
33
|
+
WHERE id = ${C}
|
|
34
|
+
AND ${L.ref(K)} = ANY(${L.val(E)}::text[])
|
|
35
|
+
`.execute(_)}await L`
|
|
36
|
+
CREATE OR REPLACE FUNCTION deco_score_try_jsonb(t text)
|
|
37
|
+
RETURNS jsonb AS $fn$
|
|
38
|
+
BEGIN
|
|
39
|
+
RETURN t::jsonb;
|
|
40
|
+
EXCEPTION WHEN others THEN
|
|
41
|
+
RETURN NULL;
|
|
42
|
+
END;
|
|
43
|
+
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
44
|
+
`.execute(_);let{from:u,to:N}=tN(l_.label,x);await L`
|
|
45
|
+
WITH agents AS (
|
|
46
|
+
SELECT id, deco_score_try_jsonb(metadata) AS m
|
|
47
|
+
FROM connections
|
|
48
|
+
WHERE id = 'commerce-discovery_' || organization_id
|
|
49
|
+
),
|
|
50
|
+
relabeled AS (
|
|
51
|
+
SELECT
|
|
52
|
+
a.id,
|
|
53
|
+
jsonb_set(
|
|
54
|
+
a.m,
|
|
55
|
+
'{ui,pinnedViews}',
|
|
56
|
+
(
|
|
57
|
+
SELECT jsonb_agg(
|
|
58
|
+
CASE
|
|
59
|
+
WHEN v ->> 'toolName' = ${l_.toolName}
|
|
60
|
+
AND v ->> 'label' = ANY(${L.val(u)}::text[])
|
|
61
|
+
THEN v || jsonb_build_object('label', ${N}::text)
|
|
62
|
+
ELSE v
|
|
63
|
+
END
|
|
64
|
+
ORDER BY ord
|
|
65
|
+
)
|
|
66
|
+
FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews')
|
|
67
|
+
WITH ORDINALITY AS t(v, ord)
|
|
68
|
+
)
|
|
69
|
+
) AS m
|
|
70
|
+
FROM agents a
|
|
71
|
+
WHERE jsonb_typeof(a.m -> 'ui' -> 'pinnedViews') = 'array'
|
|
72
|
+
AND EXISTS (
|
|
73
|
+
SELECT 1
|
|
74
|
+
FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
|
|
75
|
+
WHERE v ->> 'toolName' = ${l_.toolName}
|
|
76
|
+
AND v ->> 'label' = ANY(${L.val(u)}::text[])
|
|
77
|
+
)
|
|
78
|
+
)
|
|
79
|
+
UPDATE connections c
|
|
80
|
+
SET metadata = r.m::text
|
|
81
|
+
FROM relabeled r
|
|
82
|
+
WHERE c.id = r.id
|
|
83
|
+
`.execute(_),await L`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function OK(_){await cN(_,"up")}async function SK(_){await cN(_,"down")}var s_={};m(s_,{up:()=>IK,down:()=>nK});import{sql as AK}from"kysely";async function IK(_){await AK`ALTER TABLE organization_settings
|
|
84
|
+
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function nK(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var b_={};m(b_,{up:()=>wK,down:()=>VK});import{sql as hN}from"kysely";async function wK(_){await hN`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function VK(_){await hN`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var _x={};m(_x,{up:()=>kK,down:()=>pK});import{sql as F}from"kysely";async function kK(_){await F`
|
|
32
85
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
33
86
|
RETURNS jsonb AS $fn$
|
|
34
87
|
BEGIN
|
|
@@ -37,7 +90,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
37
90
|
RETURN NULL;
|
|
38
91
|
END;
|
|
39
92
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
40
|
-
`.execute(_),await
|
|
93
|
+
`.execute(_),await F`
|
|
41
94
|
CREATE OR REPLACE VIEW cd_repo_picks AS
|
|
42
95
|
SELECT
|
|
43
96
|
c.id AS connection_id,
|
|
@@ -47,7 +100,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
47
100
|
WHERE c.id = c.organization_id || '_commerce-discovery'
|
|
48
101
|
AND cd_repo_try_jsonb(c.configuration_state) ->> 'github_repo'
|
|
49
102
|
~ '^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$'
|
|
50
|
-
`.execute(_),await
|
|
103
|
+
`.execute(_),await F`
|
|
51
104
|
INSERT INTO repositories (
|
|
52
105
|
organization_id, account_id, provider, host, path, web_url
|
|
53
106
|
)
|
|
@@ -57,7 +110,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
57
110
|
FROM cd_repo_picks p
|
|
58
111
|
ORDER BY p.organization_id, lower(p.path)
|
|
59
112
|
ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
|
|
60
|
-
`.execute(_),await
|
|
113
|
+
`.execute(_),await F`
|
|
61
114
|
UPDATE connections c
|
|
62
115
|
SET configuration_state = (
|
|
63
116
|
cd_repo_try_jsonb(c.configuration_state) || jsonb_build_object(
|
|
@@ -78,7 +131,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
78
131
|
AND lower(r.path) = lower(p.path)
|
|
79
132
|
WHERE c.id = p.connection_id
|
|
80
133
|
AND cd_repo_try_jsonb(c.configuration_state) -> 'repository' IS NULL
|
|
81
|
-
`.execute(_),await
|
|
134
|
+
`.execute(_),await F`
|
|
82
135
|
UPDATE connections a
|
|
83
136
|
SET
|
|
84
137
|
repository_id = r.id,
|
|
@@ -102,7 +155,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
102
155
|
|| '/' ||
|
|
103
156
|
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
|
|
104
157
|
) = lower(p.path)
|
|
105
|
-
`.execute(_),await
|
|
158
|
+
`.execute(_),await F`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await F`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function pK(_){await F`
|
|
106
159
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
107
160
|
RETURNS jsonb AS $fn$
|
|
108
161
|
BEGIN
|
|
@@ -111,13 +164,13 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
111
164
|
RETURN NULL;
|
|
112
165
|
END;
|
|
113
166
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
114
|
-
`.execute(_),await
|
|
167
|
+
`.execute(_),await F`
|
|
115
168
|
UPDATE connections c
|
|
116
169
|
SET configuration_state =
|
|
117
170
|
(cd_repo_try_jsonb(c.configuration_state) - 'repository')::text
|
|
118
171
|
WHERE c.id = c.organization_id || '_commerce-discovery'
|
|
119
172
|
AND cd_repo_try_jsonb(c.configuration_state) -> 'repository' IS NOT NULL
|
|
120
|
-
`.execute(_),await
|
|
173
|
+
`.execute(_),await F`
|
|
121
174
|
UPDATE connections a
|
|
122
175
|
SET
|
|
123
176
|
repository_id = NULL,
|
|
@@ -129,17 +182,17 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
129
182
|
)::text
|
|
130
183
|
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
131
184
|
AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
|
|
132
|
-
`.execute(_),await
|
|
185
|
+
`.execute(_),await F`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var ux={};m(ux,{up:()=>vK,down:()=>qK});import{sql as xx}from"kysely";async function vK(_){await xx`ALTER TABLE git_provider_accounts
|
|
133
186
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
134
187
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
135
188
|
CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
|
|
136
189
|
ADD CONSTRAINT git_provider_accounts_cli_check
|
|
137
190
|
CHECK (auth_kind <> 'github_cli' OR
|
|
138
|
-
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function
|
|
191
|
+
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function qK(_){await xx`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await xx`ALTER TABLE git_provider_accounts
|
|
139
192
|
DROP CONSTRAINT git_provider_accounts_cli_check,
|
|
140
193
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
141
194
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
142
|
-
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var
|
|
195
|
+
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var mx={};m(mx,{up:()=>gK,down:()=>iK});import{sql as oN}from"kysely";async function gK(_){await oN`
|
|
143
196
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
144
197
|
SELECT
|
|
145
198
|
'org_user_fs',
|
|
@@ -153,9 +206,9 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
153
206
|
END,
|
|
154
207
|
now()
|
|
155
208
|
ON CONFLICT (id) DO NOTHING
|
|
156
|
-
`.execute(_)}async function
|
|
209
|
+
`.execute(_)}async function iK(_){await oN`
|
|
157
210
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
158
|
-
`.execute(_)}var
|
|
211
|
+
`.execute(_)}var Cx={};m(Cx,{up:()=>tK,down:()=>cK});async function tK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function cK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Nx={};m(Nx,{up:()=>hK,down:()=>oK});async function hK(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function oK(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var Tx={};m(Tx,{up:()=>rK,down:()=>eK});import{sql as d}from"kysely";var aK=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function aN(_,x){for(let{table:u,column:N}of aK){let C=`${u}_${N}_check`,T=x.map((K)=>`'${K}'`).join(", ");await d.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await d.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${N} IN (${T}))`).execute(_)}}async function rK(_){await aN(_,["github","gitlab","bitbucket"])}async function eK(_){await d`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await d`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await d`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await aN(_,["github","gitlab"])}var Kx={};m(Kx,{up:()=>lK,down:()=>dK});import{sql as j_}from"kysely";async function lK(_){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 dK(_){await _.schema.dropTable("experiments").execute()}var Ex={};m(Ex,{up:()=>bK,down:()=>_E});import{sql as sK}from"kysely";async function bK(_){await sK`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function _E(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Px={};m(Px,{up:()=>uE,down:()=>mE,ACTIONS:()=>zx});import{sql as s}from"kysely";var zx=["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"],xE=zx.filter((_)=>_!=="duplicate_reported");async function uE(_){await rN(_,zx)}async function mE(_){await s`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await rN(_,xE)}async function rN(_,x){await s`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await s`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${s.join(x.map((u)=>s.lit(u)))}))`.execute(_)}var $x={};m($x,{up:()=>CE,down:()=>NE});async function CE(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function NE(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Ux={};m(Ux,{up:()=>TE,down:()=>KE});async function TE(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function KE(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Xx={};m(Xx,{up:()=>zE,down:()=>PE});import{sql as EE}from"kysely";async function zE(_){await EE`
|
|
159
212
|
CREATE TABLE github_connect_flows (
|
|
160
213
|
id text PRIMARY KEY,
|
|
161
214
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -165,7 +218,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
165
218
|
);
|
|
166
219
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
167
220
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
168
|
-
`.execute(_)}async function
|
|
221
|
+
`.execute(_)}async function PE(_){await _.schema.dropTable("github_connect_flows").execute()}var jx={};m(jx,{up:()=>$E,down:()=>UE});async function $E(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function UE(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Jx={};m(Jx,{up:()=>XE,down:()=>jE});import{sql as J_}from"kysely";async function XE(_){await J_`
|
|
169
222
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
170
223
|
DECLARE
|
|
171
224
|
metadata_json jsonb;
|
|
@@ -221,19 +274,19 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
221
274
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
222
275
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
223
276
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
224
|
-
`.execute(_)}async function NE(_){await J_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await J_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Xx={};m(Xx,{up:()=>TE,down:()=>KE});import{sql as B}from"kysely";async function TE(_){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(B`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(B`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(B`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(B`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(B`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(B`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(B`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(B`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(B`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(B`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 KE(_){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 Jx={};m(Jx,{up:()=>EE,down:()=>zE});import{sql as cN}from"kysely";async function EE(_){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(cN`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(cN`CURRENT_TIMESTAMP`)).execute()}async function zE(_){await _.schema.dropTable("organization_settings").execute()}var jx={};m(jx,{up:()=>PE,down:()=>$E});async function PE(_){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 $E(_){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 Qx={};m(Qx,{up:()=>UE,down:()=>XE});async function UE(_){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 XE(_){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 Wx={};m(Wx,{up:()=>JE,down:()=>jE});async function JE(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function jE(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Zx={};m(Zx,{up:()=>WE,down:()=>ZE});import{sql as QE}from"kysely";async function WE(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",QE`text`).execute()}async function ZE(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Dx={};m(Dx,{up:()=>DE,down:()=>LE});async function DE(_){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 LE(_){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 Lx={};m(Lx,{up:()=>FE,down:()=>RE});import{sql as s}from"kysely";async function FE(_){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(s`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(s`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(s`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(s`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(s`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 RE(_){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 Fx={};m(Fx,{up:()=>HE,down:()=>ME});import{sql as YE}from"kysely";async function HE(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function ME(_){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(YE`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 Rx={};m(Rx,{up:()=>BE,down:()=>GE});import{sql as j_}from"kysely";async function BE(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await j_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function GE(_){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 Yx={};m(Yx,{up:()=>fE,down:()=>yE});async function fE(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function yE(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Hx={};m(Hx,{up:()=>OE,down:()=>SE});import{sql as Q_}from"kysely";async function OE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await Q_`
|
|
277
|
+
`.execute(_)}async function jE(_){await J_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await J_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Qx={};m(Qx,{up:()=>JE,down:()=>QE});import{sql as G}from"kysely";async function JE(_){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(G`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(G`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(G`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(G`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(G`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(G`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(G`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(G`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(G`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(G`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 QE(_){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 Zx={};m(Zx,{up:()=>ZE,down:()=>DE});import{sql as eN}from"kysely";async function ZE(_){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 DE(_){await _.schema.dropTable("organization_settings").execute()}var Dx={};m(Dx,{up:()=>WE,down:()=>LE});async function WE(_){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 LE(_){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 Wx={};m(Wx,{up:()=>FE,down:()=>RE});async function FE(_){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 RE(_){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 Lx={};m(Lx,{up:()=>YE,down:()=>HE});async function YE(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function HE(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Fx={};m(Fx,{up:()=>BE,down:()=>GE});import{sql as ME}from"kysely";async function BE(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",ME`text`).execute()}async function GE(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Rx={};m(Rx,{up:()=>yE,down:()=>fE});async function yE(_){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 fE(_){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 Yx={};m(Yx,{up:()=>OE,down:()=>SE});import{sql as b}from"kysely";async function OE(_){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(b`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(b`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(b`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(b`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(b`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 SE(_){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 Hx={};m(Hx,{up:()=>IE,down:()=>nE});import{sql as AE}from"kysely";async function IE(_){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(AE`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 Mx={};m(Mx,{up:()=>wE,down:()=>VE});import{sql as Q_}from"kysely";async function wE(_){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(Q_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Q_`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(Q_`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 Q_`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 VE(_){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 Bx={};m(Bx,{up:()=>kE,down:()=>pE});async function kE(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function pE(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Gx={};m(Gx,{up:()=>vE,down:()=>qE});import{sql as Z_}from"kysely";async function vE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await Z_`
|
|
225
278
|
UPDATE gateways
|
|
226
279
|
SET tool_selection_mode = CASE
|
|
227
280
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
228
281
|
ELSE 'inclusion'
|
|
229
282
|
END
|
|
230
|
-
`.execute(_),await
|
|
283
|
+
`.execute(_),await Z_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function qE(_){await Z_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await Z_`
|
|
231
284
|
UPDATE gateways
|
|
232
285
|
SET tool_selection_strategy = CASE
|
|
233
286
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
234
287
|
ELSE NULL
|
|
235
288
|
END
|
|
236
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var
|
|
289
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var yx={};m(yx,{up:()=>gE,down:()=>iE});async function gE(_){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 iE(_){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 fx={};m(fx,{up:()=>tE,down:()=>cE});async function tE(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function cE(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Ox={};m(Ox,{up:()=>hE,down:()=>oE});async function hE(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function oE(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Sx={};m(Sx,{up:()=>aE,down:()=>rE});async function aE(_){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 rE(_){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 Ax={};m(Ax,{up:()=>lE,down:()=>dE});import{sql as eE}from"kysely";async function lE(_){await eE`
|
|
237
290
|
DELETE FROM downstream_tokens
|
|
238
291
|
WHERE id NOT IN (
|
|
239
292
|
SELECT id FROM (
|
|
@@ -243,7 +296,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
243
296
|
) ranked
|
|
244
297
|
WHERE rn = 1
|
|
245
298
|
)
|
|
246
|
-
`.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
|
|
299
|
+
`.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 dE(_){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 Ix={};m(Ix,{up:()=>sE,down:()=>bE});async function sE(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function bE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var nx={};m(nx,{up:()=>_z,down:()=>xz});import{sql as lN}from"kysely";async function _z(_){await lN`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function xz(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await lN`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var wx={};m(wx,{up:()=>uz,down:()=>mz});async function uz(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function mz(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Vx={};m(Vx,{up:()=>Cz,down:()=>Nz});import{sql as D_}from"kysely";async function Cz(_){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(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("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(D_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D_`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 Nz(_){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 kx={};m(kx,{up:()=>Tz,down:()=>Kz});async function Tz(_){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 Kz(_){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 px={};m(px,{up:()=>Ez,down:()=>zz});async function Ez(_){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 zz(_){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 vx={};m(vx,{up:()=>Pz,down:()=>$z});import{sql as D}from"kysely";async function Pz(_){await D`
|
|
247
300
|
INSERT INTO connections (
|
|
248
301
|
id,
|
|
249
302
|
organization_id,
|
|
@@ -290,7 +343,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
290
343
|
created_at,
|
|
291
344
|
updated_at
|
|
292
345
|
FROM virtual_mcps
|
|
293
|
-
`.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await
|
|
346
|
+
`.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await D`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await D`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await D`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await D`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await D`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await D`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await D`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function $z(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(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 D`
|
|
294
347
|
INSERT INTO virtual_mcps (
|
|
295
348
|
id, organization_id, title, description, icon, status,
|
|
296
349
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -300,7 +353,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
300
353
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
301
354
|
FROM connections
|
|
302
355
|
WHERE connection_type = 'VIRTUAL'
|
|
303
|
-
`.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
|
|
356
|
+
`.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 D`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 qx={};m(qx,{up:()=>Uz,down:()=>Xz});async function Uz(_){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 Xz(_){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 gx={};m(gx,{up:()=>jz,down:()=>Jz});import{sql as y}from"kysely";async function jz(_){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(y`CURRENT_TIMESTAMP`)).execute(),await y`
|
|
304
357
|
INSERT INTO connection_aggregations_new (
|
|
305
358
|
id, parent_connection_id, child_connection_id,
|
|
306
359
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -309,7 +362,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
309
362
|
id, parent_connection_id, child_connection_id,
|
|
310
363
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
311
364
|
FROM connection_aggregations
|
|
312
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await
|
|
365
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await y`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await y`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await y`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function Jz(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await y`
|
|
313
366
|
INSERT INTO connection_aggregations_new (
|
|
314
367
|
id, parent_connection_id, child_connection_id,
|
|
315
368
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -318,7 +371,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
318
371
|
id, parent_connection_id, child_connection_id,
|
|
319
372
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
320
373
|
FROM connection_aggregations
|
|
321
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await
|
|
374
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await y`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await y`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await y`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 tx={};m(tx,{up:()=>Qz,down:()=>Zz});import{sql as ix}from"kysely";async function Qz(_){await ix`
|
|
322
375
|
UPDATE connections
|
|
323
376
|
SET connection_url = connection_url || '/management',
|
|
324
377
|
tools = NULL,
|
|
@@ -326,42 +379,42 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
326
379
|
WHERE connection_url LIKE '%/mcp'
|
|
327
380
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
328
381
|
AND app_name = '@deco/management-mcp'
|
|
329
|
-
`.execute(_),await
|
|
382
|
+
`.execute(_),await ix`
|
|
330
383
|
UPDATE connections
|
|
331
384
|
SET tools = NULL,
|
|
332
385
|
updated_at = CURRENT_TIMESTAMP
|
|
333
386
|
WHERE app_name = '@deco/management-mcp'
|
|
334
387
|
AND tools IS NOT NULL
|
|
335
|
-
`.execute(_)}async function
|
|
388
|
+
`.execute(_)}async function Zz(_){await ix`
|
|
336
389
|
UPDATE connections
|
|
337
390
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
338
391
|
updated_at = CURRENT_TIMESTAMP
|
|
339
392
|
WHERE connection_url LIKE '%/mcp/management'
|
|
340
393
|
AND app_name = '@deco/management-mcp'
|
|
341
|
-
`.execute(_)}var
|
|
394
|
+
`.execute(_)}var hx={};m(hx,{up:()=>Dz,down:()=>Wz});import{sql as cx}from"kysely";async function Dz(_){await cx`
|
|
342
395
|
UPDATE connections
|
|
343
396
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
344
397
|
tools = NULL,
|
|
345
398
|
updated_at = CURRENT_TIMESTAMP
|
|
346
399
|
WHERE connection_url LIKE '%/mcp/management'
|
|
347
400
|
AND app_name = '@deco/management-mcp'
|
|
348
|
-
`.execute(_),await
|
|
401
|
+
`.execute(_),await cx`
|
|
349
402
|
UPDATE connections
|
|
350
403
|
SET tools = NULL,
|
|
351
404
|
updated_at = CURRENT_TIMESTAMP
|
|
352
405
|
WHERE connection_url LIKE '%/mcp/self'
|
|
353
406
|
AND app_name = '@deco/management-mcp'
|
|
354
407
|
AND tools IS NOT NULL
|
|
355
|
-
`.execute(_)}async function
|
|
408
|
+
`.execute(_)}async function Wz(_){await cx`
|
|
356
409
|
UPDATE connections
|
|
357
410
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
358
411
|
updated_at = CURRENT_TIMESTAMP
|
|
359
412
|
WHERE connection_url LIKE '%/mcp/self'
|
|
360
413
|
AND app_name = '@deco/management-mcp'
|
|
361
|
-
`.execute(_)}var
|
|
414
|
+
`.execute(_)}var ox={};m(ox,{up:()=>Lz,down:()=>Fz});async function Lz(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function Fz(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var ax={};m(ax,{up:()=>Rz,down:()=>Yz});import{sql as dN}from"kysely";async function Rz(_){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(dN`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(dN`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 Yz(_){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 rx={};m(rx,{up:()=>Hz,down:()=>Mz});import{sql as __}from"kysely";async function Hz(_){await __`
|
|
362
415
|
ALTER TABLE connection_aggregations
|
|
363
416
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
364
|
-
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function
|
|
417
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function Mz(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await __`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await __`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(__`CURRENT_TIMESTAMP`)).execute(),await __`
|
|
365
418
|
INSERT INTO connection_aggregations_new (
|
|
366
419
|
id, parent_connection_id, child_connection_id,
|
|
367
420
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -370,42 +423,42 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
370
423
|
id, parent_connection_id, child_connection_id,
|
|
371
424
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
372
425
|
FROM connection_aggregations
|
|
373
|
-
`.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
|
|
426
|
+
`.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 ex={};m(ex,{up:()=>Oz,down:()=>Sz});import{webcrypto as bN}from"crypto";var sN="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Bz=128,k,q;function Gz(_){if(!k||k.length<_)k=Buffer.allocUnsafe(_*Bz),bN.getRandomValues(k),q=0;else if(q+_>k.length)bN.getRandomValues(k),q=0;q+=_}function g(_=21){Gz(_|=0);let x="";for(let u=q-_;u<q;u++)x+=sN[k[u]&63];return x}var yz="org-admin",fz="Organization Admin";async function Oz(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),C=`proj_${g()}`,T=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:yz,name:fz,description:null,enabled_plugins:T?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function Sz(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var lx={};m(lx,{up:()=>Az,down:()=>Iz});async function Az(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function Iz(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var dx={};m(dx,{up:()=>nz,down:()=>wz});async function nz(_){}async function wz(_){}var sx={};m(sx,{up:()=>Vz,down:()=>kz});async function Vz(_){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 kz(_){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 bx={};m(bx,{up:()=>pz,down:()=>vz});import{sql as _T}from"kysely";async function pz(_){await _T`
|
|
374
427
|
UPDATE connections
|
|
375
428
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
376
429
|
tools = NULL,
|
|
377
430
|
updated_at = CURRENT_TIMESTAMP
|
|
378
431
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
379
432
|
AND app_name = 'deco-registry'
|
|
380
|
-
`.execute(_)}async function
|
|
433
|
+
`.execute(_)}async function vz(_){await _T`
|
|
381
434
|
UPDATE connections
|
|
382
435
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
383
436
|
updated_at = CURRENT_TIMESTAMP
|
|
384
437
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
385
438
|
AND app_name = 'deco-registry'
|
|
386
|
-
`.execute(_)}var
|
|
439
|
+
`.execute(_)}var _u={};m(_u,{up:()=>gz,down:()=>iz});import{sql as qz}from"kysely";async function gz(_){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(qz`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 iz(_){await _.schema.dropTable("ai_provider_keys").execute()}var xu={};m(xu,{up:()=>cz,down:()=>hz});import{sql as tz}from"kysely";async function cz(_){await _.schema.createTable("oauth_pkce_states").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull()).addColumn("code_verifier","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(tz`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function hz(_){await _.schema.dropTable("oauth_pkce_states").execute()}var uu={};m(uu,{up:()=>oz,down:()=>az});import{sql as I}from"kysely";async function oz(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(I`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(I`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(I`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(I`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(I`CURRENT_TIMESTAMP`)).execute(),await I`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await I`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await I`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 az(_){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 mu={};m(mu,{up:()=>rz,down:()=>ez});async function rz(_){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 ez(_){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 Cu={};m(Cu,{up:()=>lz,down:()=>dz});async function lz(_){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 dz(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Nu={};m(Nu,{up:()=>sz,down:()=>bz});import{sql as xT}from"kysely";async function sz(_){await xT`
|
|
387
440
|
UPDATE connections
|
|
388
441
|
SET title = 'CMS MCP',
|
|
389
442
|
tools = NULL,
|
|
390
443
|
updated_at = CURRENT_TIMESTAMP
|
|
391
444
|
WHERE app_name = '@deco/management-mcp'
|
|
392
|
-
`.execute(_)}async function
|
|
445
|
+
`.execute(_)}async function bz(_){await xT`
|
|
393
446
|
UPDATE connections
|
|
394
447
|
SET title = 'Mesh MCP',
|
|
395
448
|
updated_at = CURRENT_TIMESTAMP
|
|
396
449
|
WHERE app_name = '@deco/management-mcp'
|
|
397
|
-
`.execute(_)}var
|
|
450
|
+
`.execute(_)}var Tu={};m(Tu,{up:()=>_0,down:()=>x0});import{sql as uT}from"kysely";async function _0(_){await uT`
|
|
398
451
|
UPDATE connections
|
|
399
452
|
SET title = 'Deco CMS',
|
|
400
453
|
tools = NULL,
|
|
401
454
|
updated_at = CURRENT_TIMESTAMP
|
|
402
455
|
WHERE app_name = '@deco/management-mcp'
|
|
403
|
-
`.execute(_)}async function
|
|
456
|
+
`.execute(_)}async function x0(_){await uT`
|
|
404
457
|
UPDATE connections
|
|
405
458
|
SET title = 'CMS MCP',
|
|
406
459
|
updated_at = CURRENT_TIMESTAMP
|
|
407
460
|
WHERE app_name = '@deco/management-mcp'
|
|
408
|
-
`.execute(_)}var
|
|
461
|
+
`.execute(_)}var Ku={};m(Ku,{up:()=>u0,down:()=>m0});async function u0(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function m0(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var Eu={};m(Eu,{up:()=>C0,down:()=>N0});async function C0(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function N0(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var Pu={};m(Pu,{up:()=>T0,down:()=>K0});import{sql as zu}from"kysely";async function T0(_){await zu`
|
|
409
462
|
UPDATE organization_settings
|
|
410
463
|
SET enabled_plugins = (
|
|
411
464
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -414,7 +467,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
414
467
|
)
|
|
415
468
|
WHERE enabled_plugins IS NOT NULL
|
|
416
469
|
AND enabled_plugins LIKE '%object-storage%'
|
|
417
|
-
`.execute(_),await
|
|
470
|
+
`.execute(_),await zu`
|
|
418
471
|
UPDATE projects
|
|
419
472
|
SET enabled_plugins = (
|
|
420
473
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -423,106 +476,106 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
423
476
|
)
|
|
424
477
|
WHERE enabled_plugins IS NOT NULL
|
|
425
478
|
AND enabled_plugins LIKE '%object-storage%'
|
|
426
|
-
`.execute(_),await
|
|
479
|
+
`.execute(_),await zu`
|
|
427
480
|
DELETE FROM project_plugin_configs
|
|
428
481
|
WHERE plugin_id = 'object-storage'
|
|
429
|
-
`.execute(_)}async function
|
|
482
|
+
`.execute(_)}async function K0(_){}var $u={};m($u,{up:()=>E0,down:()=>z0});import{sql as mT}from"kysely";async function E0(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await mT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function z0(_){await mT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var Xu={};m(Xu,{up:()=>P0,down:()=>$0});import{sql as Uu}from"kysely";async function P0(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await Uu`
|
|
430
483
|
ALTER TABLE connections
|
|
431
484
|
ADD CONSTRAINT chk_connections_subtype
|
|
432
485
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
433
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
486
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await Uu`
|
|
434
487
|
UPDATE connections
|
|
435
488
|
SET subtype = 'agent'
|
|
436
489
|
WHERE connection_type = 'VIRTUAL'
|
|
437
|
-
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(
|
|
490
|
+
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(E)=>E.primaryKey()).addColumn("virtual_mcp_id","text",(E)=>E.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(E)=>E.notNull()).addColumn("connection_id","text",(E)=>E.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(E)=>E.notNull()).addColumn("updated_at","text",(E)=>E.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let E of u)N.set(E.organizationId,E.userId);let C=new Map;for(let E of x){let z=`vir_${g()}`;C.set(E.id,z);let $=E.ui?JSON.parse(E.ui):null,U=JSON.stringify({enabled_plugins:E.enabled_plugins?JSON.parse(E.enabled_plugins):null,ui:$,migrated_from_project:E.id,migrated_project_slug:E.slug}),Q=N.get(E.organization_id);if(!Q)continue;await _.insertInto("connections").values({id:z,organization_id:E.organization_id,created_by:Q,updated_by:null,title:E.name,description:E.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${z}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:E.created_at,updated_at:E.updated_at}).execute()}let T=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let E of T){let z=C.get(E.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${g()}`,parent_connection_id:z,child_connection_id:E.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:E.created_at}).onConflict(($)=>$.doNothing()).execute()}let K=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let E of K){let z=C.get(E.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${g()}`,virtual_mcp_id:z,plugin_id:E.plugin_id,connection_id:E.connection_id,settings:E.settings,created_at:E.created_at,updated_at:E.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function $0(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Uu`
|
|
438
491
|
ALTER TABLE connections
|
|
439
492
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
440
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
493
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var ju={};m(ju,{up:()=>X0,down:()=>j0});import{sql as U0}from"kysely";async function X0(_){await U0`
|
|
441
494
|
DELETE FROM connections
|
|
442
495
|
WHERE connection_type = 'VIRTUAL'
|
|
443
496
|
AND subtype = 'project'
|
|
444
497
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
445
|
-
`.execute(_)}async function
|
|
498
|
+
`.execute(_)}async function j0(_){}var Ju={};m(Ju,{up:()=>Q0,down:()=>Z0});import{sql as J0}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 J0`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function Z0(_){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 Zu={};m(Zu,{up:()=>D0,down:()=>W0});import{sql as Qu}from"kysely";async function D0(_){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(Qu`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Qu`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(Qu`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 W0(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var Du={};m(Du,{up:()=>L0,down:()=>F0});async function L0(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function F0(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var Wu={};m(Wu,{up:()=>R0,down:()=>Y0});async function R0(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function Y0(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var Fu={};m(Fu,{up:()=>M0,down:()=>B0});import{sql as CT}from"kysely";function Lu(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function H0(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return Lu(N)}catch{return Lu(_.connection_url)}if(_.title)return Lu(_.title);return _.id}async function M0(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await CT`
|
|
446
499
|
SELECT id, app_name, connection_url, title FROM connections
|
|
447
|
-
`.execute(_);for(let u of x.rows){let N=
|
|
500
|
+
`.execute(_);for(let u of x.rows){let N=H0(u);await CT`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function B0(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var Ru={};m(Ru,{up:()=>G0,down:()=>y0});import{sql as x_}from"kysely";async function G0(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await x_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await x_`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 y0(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await x_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await x_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await x_`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 Yu={};m(Yu,{up:()=>f0,down:()=>O0});async function f0(_){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 O0(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var Hu={};m(Hu,{up:()=>S0,down:()=>A0});import{sql as W_}from"kysely";async function S0(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await W_`
|
|
448
501
|
UPDATE threads
|
|
449
502
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
450
503
|
WHERE agent_ids IS NOT NULL
|
|
451
504
|
AND agent_ids != '[]'
|
|
452
505
|
AND agent_ids != ''
|
|
453
506
|
AND (agent_ids::jsonb ->> 0) IS NOT NULL
|
|
454
|
-
`.execute(_),await
|
|
507
|
+
`.execute(_),await W_`
|
|
455
508
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
456
509
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
457
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
510
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function A0(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await W_`
|
|
458
511
|
UPDATE threads
|
|
459
512
|
SET agent_ids = CASE
|
|
460
513
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
461
514
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
462
515
|
ELSE '[]'
|
|
463
516
|
END
|
|
464
|
-
`.execute(_),await
|
|
517
|
+
`.execute(_),await W_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Mu={};m(Mu,{up:()=>I0,down:()=>n0});async function I0(_){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 n0(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Bu={};m(Bu,{up:()=>w0,down:()=>V0});async function w0(_){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 V0(_){await _.schema.dropTable("kv").execute()}var Gu={};m(Gu,{up:()=>k0,down:()=>p0});async function k0(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function p0(_){await _.schema.dropIndex("idx_member_user_org").execute()}var yu={};m(yu,{up:()=>v0,down:()=>q0});async function v0(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function q0(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var fu={};m(fu,{up:()=>g0,down:()=>i0});import{sql as R}from"kysely";async function g0(_){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(R`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(R`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 R`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(R`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(R`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 R`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(R`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(R`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(R`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(R`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(R`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 i0(_){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 Ou={};m(Ou,{up:()=>t0,down:()=>c0});import{sql as i}from"kysely";async function t0(_){await i`
|
|
465
518
|
ALTER TABLE event_subscriptions
|
|
466
519
|
ALTER COLUMN enabled DROP DEFAULT
|
|
467
|
-
`.execute(_),await
|
|
520
|
+
`.execute(_),await i`
|
|
468
521
|
ALTER TABLE event_subscriptions
|
|
469
522
|
ALTER COLUMN enabled TYPE boolean
|
|
470
523
|
USING enabled::boolean
|
|
471
|
-
`.execute(_),await
|
|
524
|
+
`.execute(_),await i`
|
|
472
525
|
ALTER TABLE event_subscriptions
|
|
473
526
|
ALTER COLUMN enabled SET DEFAULT true
|
|
474
|
-
`.execute(_)}async function
|
|
527
|
+
`.execute(_)}async function c0(_){await i`
|
|
475
528
|
ALTER TABLE event_subscriptions
|
|
476
529
|
ALTER COLUMN enabled DROP DEFAULT
|
|
477
|
-
`.execute(_),await
|
|
530
|
+
`.execute(_),await i`
|
|
478
531
|
ALTER TABLE event_subscriptions
|
|
479
532
|
ALTER COLUMN enabled TYPE integer
|
|
480
533
|
USING enabled::integer
|
|
481
|
-
`.execute(_),await
|
|
534
|
+
`.execute(_),await i`
|
|
482
535
|
ALTER TABLE event_subscriptions
|
|
483
536
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
484
|
-
`.execute(_)}var
|
|
537
|
+
`.execute(_)}var Su={};m(Su,{up:()=>h0,down:()=>o0});import{sql as NT}from"kysely";async function h0(_){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(NT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(NT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function o0(_){await _.schema.dropTable("brand_context").execute()}var Au={};m(Au,{up:()=>a0,down:()=>r0});import{sql as TT}from"kysely";async function a0(_){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(TT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(TT`now()`)).execute()}async function r0(_){await _.schema.dropTable("organization_domains").execute()}var Iu={};m(Iu,{up:()=>s0,down:()=>b0});import{sql as KT}from"kysely";var L_=new Set(["primary","secondary","accent","background","foreground"]),e0={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function l0(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>L_.has(C))){let C={};for(let[T,K]of Object.entries(u)){if(typeof K!=="string")continue;if(L_.has(T))C[T]=K;else x[T]=K}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let N={};for(let[C,T]of Object.entries(u)){if(typeof T!=="string")continue;if(L_.has(C.toLowerCase()))N[C.toLowerCase()]=T;else x[C]=T}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let C=N,T=C.label?.toLowerCase?.(),K=C.value;if(!T||!K)continue;if(L_.has(T))u[T]=K;else x[T]=K}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function d0(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let C=N,T=C.name??C.family??void 0,K=C.role?.toLowerCase?.()??"";if(!T)continue;let E=e0[K];if(E&&!x[E])x[E]=T;else u.push(T)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function s0(_){let x=await KT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,C=!1,T=!1,K=u.colors,E=u.fonts,z={};try{z=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=l0($);if(K=U.structured,N=!0,Object.keys(U.extra).length>0)z.extraColors=U.extra,T=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))E=d0($),C=!0}catch{}if(N||C||T){let $=T?JSON.stringify(z):u.metadata;await KT`
|
|
485
538
|
UPDATE brand_context
|
|
486
539
|
SET
|
|
487
|
-
colors = ${
|
|
488
|
-
fonts = ${
|
|
540
|
+
colors = ${K},
|
|
541
|
+
fonts = ${E},
|
|
489
542
|
metadata = ${$},
|
|
490
543
|
updated_at = NOW()
|
|
491
544
|
WHERE id = ${u.id}
|
|
492
|
-
`.execute(_)}}}async function
|
|
545
|
+
`.execute(_)}}}async function b0(_){}var nu={};m(nu,{up:()=>xP,down:()=>uP});import{sql as _P}from"kysely";async function xP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(_P`'{}'::jsonb`)).execute()}async function uP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var wu={};m(wu,{up:()=>mP,down:()=>CP});async function mP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function CP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Vu={};m(Vu,{up:()=>NP,down:()=>TP});async function NP(_){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 TP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var ku={};m(ku,{up:()=>KP,down:()=>EP});async function KP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function EP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var pu={};m(pu,{up:()=>zP,down:()=>PP});async function zP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function PP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var vu={};m(vu,{up:()=>$P,down:()=>UP});async function $P(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function UP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var qu={};m(qu,{up:()=>jP,down:()=>JP});import{sql as ET}from"kysely";var XP=["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 jP(_){let x=await ET`
|
|
493
546
|
SELECT id, permission FROM "organizationRole"
|
|
494
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let C=N.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let T=C,
|
|
547
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let C=N.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let T=C,K=Array.from(new Set([...T,...XP]));if(K.length===T.length)continue;N.self=K;let E=JSON.stringify(N);await ET`
|
|
495
548
|
UPDATE "organizationRole"
|
|
496
|
-
SET permission = ${
|
|
549
|
+
SET permission = ${E}
|
|
497
550
|
WHERE id = ${u.id}
|
|
498
|
-
`.execute(_)}}async function
|
|
551
|
+
`.execute(_)}}async function JP(_){}var gu={};m(gu,{up:()=>QP,down:()=>ZP});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 ZP(_){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 iu={};m(iu,{up:()=>DP,down:()=>WP});async function DP(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function WP(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var tu={};m(tu,{up:()=>LP,down:()=>FP});import{sql as u_}from"kysely";async function LP(_){await u_`
|
|
499
552
|
UPDATE automations
|
|
500
553
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
501
554
|
WHERE virtual_mcp_id IS NULL
|
|
502
|
-
`.execute(_),await
|
|
555
|
+
`.execute(_),await u_`
|
|
503
556
|
ALTER TABLE automations
|
|
504
557
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
505
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
558
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function FP(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await u_`
|
|
506
559
|
UPDATE automations
|
|
507
560
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
508
|
-
`.execute(_),await
|
|
561
|
+
`.execute(_),await u_`
|
|
509
562
|
ALTER TABLE automations
|
|
510
563
|
ALTER COLUMN agent SET NOT NULL
|
|
511
|
-
`.execute(_),await
|
|
564
|
+
`.execute(_),await u_`
|
|
512
565
|
ALTER TABLE automations
|
|
513
566
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
514
|
-
`.execute(_)}var
|
|
567
|
+
`.execute(_)}var hu={};m(hu,{up:()=>MP,reshapeSimpleMode:()=>zT,inferAutomationTier:()=>PT,down:()=>BP,__testing:()=>HP});var RP={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},YP=["fast","smart","thinking","image","web_research"];function cu(_){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 YP.some((N)=>(N in u))}function zT(_){if(cu(_))return _;let x=_,u=x?.enabled===!0,N=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return RP;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function PT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function $T(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var HP={isAlreadyReshapedSimpleMode:cu,isAlreadyReshapedAutomationModels:$T};async function MP(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let C=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(cu(C))continue;let T=zT(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(T)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let C;try{C=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{C={}}if($T(C))continue;let T=PT(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:T})}).where("id","=",N.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${T}"`)}}async function BP(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var ou={};m(ou,{up:()=>GP,down:()=>yP});import{sql as S}from"kysely";async function GP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await S`
|
|
515
568
|
ALTER TABLE automations
|
|
516
569
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
517
|
-
`.execute(_),await
|
|
570
|
+
`.execute(_),await S`
|
|
518
571
|
ALTER TABLE automations
|
|
519
572
|
ADD CONSTRAINT chk_automation_kind
|
|
520
573
|
CHECK (kind IN ('agent', 'tool_call'))
|
|
521
|
-
`.execute(_),await
|
|
574
|
+
`.execute(_),await S`
|
|
522
575
|
ALTER TABLE automations
|
|
523
576
|
ADD CONSTRAINT chk_automation_agent_fields
|
|
524
577
|
CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
|
|
525
|
-
`.execute(_),await
|
|
578
|
+
`.execute(_),await S`
|
|
526
579
|
ALTER TABLE automations
|
|
527
580
|
ADD CONSTRAINT chk_automation_tool_call_fields
|
|
528
581
|
CHECK (
|
|
@@ -533,47 +586,47 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
533
586
|
AND tool_input IS NOT NULL
|
|
534
587
|
)
|
|
535
588
|
)
|
|
536
|
-
`.execute(_)}async function
|
|
589
|
+
`.execute(_)}async function yP(_){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`
|
|
537
590
|
ALTER TABLE automations
|
|
538
591
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
539
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var
|
|
592
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var au={};m(au,{up:()=>OP,down:()=>SP});import{sql as UT}from"kysely";var fP=new Set(["host","docker","agent-sandbox"]);async function OP(_){let x=await UT`
|
|
540
593
|
SELECT id, metadata FROM "connections"
|
|
541
594
|
WHERE connection_type = 'VIRTUAL'
|
|
542
595
|
AND metadata IS NOT NULL
|
|
543
596
|
AND metadata LIKE '%vmMap%'
|
|
544
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let C=N.vmMap;if(!C||typeof C!=="object")continue;let T=!1,
|
|
597
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let C=N.vmMap;if(!C||typeof C!=="object")continue;let T=!1,K={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){T=!0;continue}let U={};for(let[Q,j]of Object.entries($)){if(!j||typeof j!=="object"){T=!0;continue}let B=j.runnerKind;if(B!==void 0&&!fP.has(B)){T=!0;continue}U[Q]=j}if(Object.keys(U).length>0)K[z]=U;else T=!0}if(!T)continue;N.vmMap=K;let E=JSON.stringify(N);await UT`
|
|
545
598
|
UPDATE "connections"
|
|
546
|
-
SET metadata = ${
|
|
599
|
+
SET metadata = ${E}
|
|
547
600
|
WHERE id = ${u.id}
|
|
548
|
-
`.execute(_)}}async function
|
|
601
|
+
`.execute(_)}}async function SP(_){}var ru={};m(ru,{up:()=>AP,down:()=>IP});import{sql as m_}from"kysely";async function AP(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(m_`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(m_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(m_`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 m_`
|
|
549
602
|
CREATE INDEX async_research_jobs_active_idx
|
|
550
603
|
ON async_research_jobs (status, last_polled_at)
|
|
551
604
|
WHERE status IN ('pending', 'polling')
|
|
552
|
-
`.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await
|
|
605
|
+
`.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await m_`
|
|
553
606
|
ALTER TABLE async_research_jobs
|
|
554
607
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
555
608
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
556
|
-
`.execute(_)}async function
|
|
609
|
+
`.execute(_)}async function IP(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var eu={};m(eu,{up:()=>nP,down:()=>wP});async function nP(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function wP(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var lu={};m(lu,{up:()=>VP,down:()=>kP});import{sql as t}from"kysely";async function VP(_){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(t`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t`CURRENT_TIMESTAMP`)).execute(),await t`
|
|
557
610
|
ALTER TABLE secrets
|
|
558
611
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
559
|
-
`.execute(_),await
|
|
612
|
+
`.execute(_),await t`
|
|
560
613
|
ALTER TABLE secrets
|
|
561
614
|
ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
|
|
562
615
|
(scope = 'user' AND user_id IS NOT NULL)
|
|
563
616
|
OR (scope = 'organization' AND user_id IS NULL)
|
|
564
617
|
)
|
|
565
|
-
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await
|
|
618
|
+
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await t`
|
|
566
619
|
CREATE UNIQUE INDEX idx_secrets_user_name
|
|
567
620
|
ON secrets (organization_id, user_id, lower(name))
|
|
568
621
|
WHERE scope = 'user'
|
|
569
|
-
`.execute(_),await
|
|
622
|
+
`.execute(_),await t`
|
|
570
623
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
571
624
|
ON secrets (organization_id, lower(name))
|
|
572
625
|
WHERE scope = 'organization'
|
|
573
|
-
`.execute(_)}async function
|
|
626
|
+
`.execute(_)}async function kP(_){await _.schema.dropTable("secrets").execute()}var du={};m(du,{up:()=>pP,down:()=>vP});async function pP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function vP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var su={};m(su,{up:()=>gP,down:()=>iP});import{sql as qP}from"kysely";async function gP(_){await qP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function iP(_){}var bu={};m(bu,{up:()=>tP,down:()=>cP});import{sql as F_}from"kysely";async function tP(_){await F_`
|
|
574
627
|
ALTER TABLE sandbox_runner_state
|
|
575
628
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
576
|
-
`.execute(_),await
|
|
629
|
+
`.execute(_),await F_`
|
|
577
630
|
DO $$ BEGIN
|
|
578
631
|
UPDATE virtualmcps v
|
|
579
632
|
SET metadata = jsonb_set(
|
|
@@ -608,10 +661,10 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
608
661
|
EXCEPTION WHEN undefined_table THEN
|
|
609
662
|
NULL;
|
|
610
663
|
END; $$
|
|
611
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
664
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function cP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await F_`
|
|
612
665
|
ALTER TABLE sandbox_runner_state
|
|
613
666
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
614
|
-
`.execute(_),await
|
|
667
|
+
`.execute(_),await F_`
|
|
615
668
|
DO $$ BEGIN
|
|
616
669
|
UPDATE virtualmcps v
|
|
617
670
|
SET metadata = jsonb_set(
|
|
@@ -646,7 +699,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
646
699
|
EXCEPTION WHEN undefined_table THEN
|
|
647
700
|
NULL;
|
|
648
701
|
END; $$
|
|
649
|
-
`.execute(_)}var
|
|
702
|
+
`.execute(_)}var _m={};m(_m,{up:()=>hP,down:()=>oP});import{sql as XT}from"kysely";async function hP(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await XT`
|
|
650
703
|
DO $$ BEGIN
|
|
651
704
|
UPDATE virtualmcps v
|
|
652
705
|
SET metadata = jsonb_set(
|
|
@@ -685,7 +738,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
685
738
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
686
739
|
NULL;
|
|
687
740
|
END; $$
|
|
688
|
-
`.execute(_)}async function
|
|
741
|
+
`.execute(_)}async function oP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await XT`
|
|
689
742
|
DO $$ BEGIN
|
|
690
743
|
UPDATE virtualmcps v
|
|
691
744
|
SET metadata = jsonb_set(
|
|
@@ -718,7 +771,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
718
771
|
EXCEPTION WHEN undefined_table THEN
|
|
719
772
|
NULL;
|
|
720
773
|
END; $$
|
|
721
|
-
`.execute(_)}var
|
|
774
|
+
`.execute(_)}var xm={};m(xm,{up:()=>aP,down:()=>rP});import{sql as jT}from"kysely";async function aP(_){await jT`
|
|
722
775
|
UPDATE connections c
|
|
723
776
|
SET metadata = (
|
|
724
777
|
jsonb_set(
|
|
@@ -762,7 +815,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
762
815
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
763
816
|
WHERE entry ? 'vmId'
|
|
764
817
|
);
|
|
765
|
-
`.execute(_),await
|
|
818
|
+
`.execute(_),await jT`
|
|
766
819
|
UPDATE connections c
|
|
767
820
|
SET metadata = (
|
|
768
821
|
jsonb_set(
|
|
@@ -816,14 +869,14 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
816
869
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
817
870
|
WHERE inner_entry ? 'runnerKind'
|
|
818
871
|
);
|
|
819
|
-
`.execute(_)}async function
|
|
872
|
+
`.execute(_)}async function rP(_){}var um={};m(um,{up:()=>lP,down:()=>dP});import{sql as eP}from"kysely";async function lP(_){await eP`
|
|
820
873
|
DELETE FROM ai_provider_keys
|
|
821
874
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
822
|
-
`.execute(_)}async function
|
|
875
|
+
`.execute(_)}async function dP(_){}var mm={};m(mm,{up:()=>sP,down:()=>bP});import{sql as R_}from"kysely";async function sP(_){await R_`
|
|
823
876
|
UPDATE sandbox_runner_state
|
|
824
877
|
SET sandbox_provider_kind = 'desktop'
|
|
825
878
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
826
|
-
`.execute(_),await
|
|
879
|
+
`.execute(_),await R_`
|
|
827
880
|
UPDATE connections c
|
|
828
881
|
SET metadata = (
|
|
829
882
|
jsonb_set(
|
|
@@ -866,7 +919,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
866
919
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
867
920
|
WHERE kind_key = 'remote-user'
|
|
868
921
|
);
|
|
869
|
-
`.execute(_),await
|
|
922
|
+
`.execute(_),await R_`
|
|
870
923
|
UPDATE connections c
|
|
871
924
|
SET metadata = (
|
|
872
925
|
jsonb_set(
|
|
@@ -913,17 +966,17 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
913
966
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
914
967
|
WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
|
|
915
968
|
);
|
|
916
|
-
`.execute(_),await
|
|
969
|
+
`.execute(_),await R_`
|
|
917
970
|
UPDATE threads
|
|
918
971
|
SET sandbox_provider_kind = 'desktop'
|
|
919
972
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
920
|
-
`.execute(_)}async function
|
|
973
|
+
`.execute(_)}async function bP(_){}var Cm={};m(Cm,{up:()=>_$,down:()=>x$});import{sql as C_}from"kysely";async function _$(_){await C_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await C_`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 x$(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await C_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await C_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await C_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var Nm={};m(Nm,{up:()=>u$,down:()=>m$});import{sql as JT}from"kysely";async function u$(_){await JT`
|
|
921
974
|
ALTER TABLE organization_domains
|
|
922
975
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
923
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function
|
|
976
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function m$(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await JT`
|
|
924
977
|
ALTER TABLE organization_domains
|
|
925
978
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
926
|
-
`.execute(_)}var
|
|
979
|
+
`.execute(_)}var Tm={};m(Tm,{up:()=>C$,down:()=>N$});import{sql as Y_}from"kysely";async function C$(_){await Y_`
|
|
927
980
|
UPDATE sandbox_runner_state
|
|
928
981
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
929
982
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -933,7 +986,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
933
986
|
ELSE sandbox_provider_kind
|
|
934
987
|
END
|
|
935
988
|
WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
|
|
936
|
-
`.execute(_),await
|
|
989
|
+
`.execute(_),await Y_`
|
|
937
990
|
UPDATE connections c
|
|
938
991
|
SET metadata = (
|
|
939
992
|
(c.metadata::jsonb - 'vmMap')
|
|
@@ -942,7 +995,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
942
995
|
WHERE c.connection_type = 'VIRTUAL'
|
|
943
996
|
AND c.metadata IS NOT NULL
|
|
944
997
|
AND c.metadata::jsonb ? 'vmMap'
|
|
945
|
-
`.execute(_),await
|
|
998
|
+
`.execute(_),await Y_`
|
|
946
999
|
UPDATE connections c
|
|
947
1000
|
SET metadata = (
|
|
948
1001
|
jsonb_set(
|
|
@@ -1003,7 +1056,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1003
1056
|
WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
|
|
1004
1057
|
OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
|
|
1005
1058
|
);
|
|
1006
|
-
`.execute(_),await
|
|
1059
|
+
`.execute(_),await Y_`
|
|
1007
1060
|
UPDATE connections c
|
|
1008
1061
|
SET metadata = REPLACE(
|
|
1009
1062
|
REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
|
|
@@ -1012,30 +1065,30 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1012
1065
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1013
1066
|
AND c.metadata IS NOT NULL
|
|
1014
1067
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
1015
|
-
`.execute(_)}async function
|
|
1068
|
+
`.execute(_)}async function N$(_){}var Km={};m(Km,{up:()=>K$,down:()=>E$});import{sql as QT}from"kysely";var T$=["GLOBAL_SEARCH"];async function K$(_){let x=await QT`
|
|
1016
1069
|
SELECT id, permission FROM "organizationRole"
|
|
1017
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let C=N.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let T=C,
|
|
1070
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let C=N.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let T=C,K=Array.from(new Set([...T,...T$]));if(K.length===T.length)continue;N.self=K;let E=JSON.stringify(N);await QT`
|
|
1018
1071
|
UPDATE "organizationRole"
|
|
1019
|
-
SET permission = ${
|
|
1072
|
+
SET permission = ${E}
|
|
1020
1073
|
WHERE id = ${u.id}
|
|
1021
|
-
`.execute(_)}}async function
|
|
1074
|
+
`.execute(_)}}async function E$(_){}var zm={};m(zm,{up:()=>z$,down:()=>P$});import{sql as Em}from"kysely";async function z$(_){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(Em`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Em`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await Em`
|
|
1022
1075
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
1023
1076
|
ON org_file_configs (organization_id, lower(name))
|
|
1024
|
-
`.execute(_)}async function
|
|
1077
|
+
`.execute(_)}async function P$(_){await _.schema.dropTable("org_file_configs").execute()}var Pm={};m(Pm,{up:()=>$$,down:()=>U$});import{sql as A}from"kysely";async function $$(_){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`
|
|
1025
1078
|
ALTER TABLE automations
|
|
1026
1079
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
1027
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function
|
|
1080
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function U$(_){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`
|
|
1028
1081
|
ALTER TABLE automations
|
|
1029
1082
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
1030
|
-
`.execute(_),await
|
|
1083
|
+
`.execute(_),await A`
|
|
1031
1084
|
ALTER TABLE automations
|
|
1032
1085
|
ADD CONSTRAINT chk_automation_kind
|
|
1033
1086
|
CHECK (kind IN ('agent', 'tool_call'))
|
|
1034
|
-
`.execute(_),await
|
|
1087
|
+
`.execute(_),await A`
|
|
1035
1088
|
ALTER TABLE automations
|
|
1036
1089
|
ADD CONSTRAINT chk_automation_agent_fields
|
|
1037
1090
|
CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
|
|
1038
|
-
`.execute(_),await
|
|
1091
|
+
`.execute(_),await A`
|
|
1039
1092
|
ALTER TABLE automations
|
|
1040
1093
|
ADD CONSTRAINT chk_automation_tool_call_fields
|
|
1041
1094
|
CHECK (
|
|
@@ -1046,91 +1099,91 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1046
1099
|
AND tool_input IS NOT NULL
|
|
1047
1100
|
)
|
|
1048
1101
|
)
|
|
1049
|
-
`.execute(_)}var
|
|
1102
|
+
`.execute(_)}var $m={};m($m,{up:()=>X$,down:()=>j$});async function X$(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function j$(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var Xm={};m(Xm,{up:()=>J$,down:()=>Q$});import{sql as Um}from"kysely";var H_="local-docker";async function J$(_){await Um`delete from sandbox_runner_state where sandbox_provider_kind = ${H_}`.execute(_);let x=await Um`
|
|
1050
1103
|
SELECT id, metadata FROM "connections"
|
|
1051
1104
|
WHERE connection_type = 'VIRTUAL'
|
|
1052
1105
|
AND metadata IS NOT NULL
|
|
1053
|
-
AND metadata LIKE ${"%"+
|
|
1054
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let C=N.sandboxMap;if(!C||typeof C!=="object")continue;let T=!1,
|
|
1106
|
+
AND metadata LIKE ${"%"+H_+"%"}
|
|
1107
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let C=N.sandboxMap;if(!C||typeof C!=="object")continue;let T=!1,K={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){T=!0;continue}let U={};for(let[Q,j]of Object.entries($)){if(!j||typeof j!=="object"){T=!0;continue}if(H_ in j){T=!0;let B={...j};if(delete B[H_],Object.keys(B).length>0)U[Q]=B}else U[Q]=j}if(Object.keys(U).length>0)K[z]=U;else T=!0}if(!T)continue;N.sandboxMap=K;let E=JSON.stringify(N);await Um`
|
|
1055
1108
|
UPDATE "connections"
|
|
1056
|
-
SET metadata = ${
|
|
1109
|
+
SET metadata = ${E}
|
|
1057
1110
|
WHERE id = ${u.id}
|
|
1058
|
-
`.execute(_)}}async function
|
|
1111
|
+
`.execute(_)}}async function Q$(_){}var jm={};m(jm,{up:()=>Z$,down:()=>D$});import{sql as M_}from"kysely";async function Z$(_){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 M_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await M_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await M_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await M_`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 D$(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var Jm={};m(Jm,{up:()=>W$,down:()=>L$});async function W$(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function L$(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var Qm={};m(Qm,{up:()=>F$,down:()=>R$});async function F$(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function R$(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var Zm={};m(Zm,{up:()=>Y$,down:()=>H$});async function Y$(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function H$(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var Dm={};m(Dm,{up:()=>M$,down:()=>B$});async function M$(_){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 B$(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var Wm={};m(Wm,{up:()=>G$,down:()=>y$});async function G$(_){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 y$(_){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 Fm={};m(Fm,{up:()=>O$,down:()=>S$});import{sql as f}from"kysely";var Y="cluster",H="agent-sandbox";function c(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function Lm(_,x,u){if(!c(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function B_(_){if(!c(_))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!==Y&&_.sandboxProviderKind!==H&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!c(_.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 f$(_,x,u){if(!c(_))return null;let N=!1,C={};for(let[T,K]of Object.entries(_)){if(!c(K)){C[T]=K;continue}let E={};for(let[z,$]of Object.entries(K)){if(!c($)){E[z]=$;continue}let U={};for(let[Q,j]of Object.entries($)){if(Q===x){if(N=!0,!(u in $))U[u]=Lm(j,x,u);else if(!B_($[u])&&B_(j))U[u]=Lm(j,x,u);continue}let B=Lm(j,x,u);if(B!==j)N=!0;if(Q===u&&Q in U&&B_(U[Q])&&!B_(B))continue;U[Q]=B}E[z]=U}C[T]=E}return{sandboxMap:C,changed:N}}async function ZT(_,x,u){let N=await f`
|
|
1059
1112
|
SELECT id, metadata FROM connections
|
|
1060
1113
|
WHERE connection_type = 'VIRTUAL'
|
|
1061
1114
|
AND metadata IS NOT NULL
|
|
1062
1115
|
AND metadata LIKE ${"%"+x+"%"}
|
|
1063
|
-
`.execute(_);for(let C of N.rows){if(!C.metadata)continue;let T;try{T=JSON.parse(C.metadata)}catch{continue}let
|
|
1116
|
+
`.execute(_);for(let C of N.rows){if(!C.metadata)continue;let T;try{T=JSON.parse(C.metadata)}catch{continue}let K=f$(T.sandboxMap,x,u);if(!K?.changed)continue;T.sandboxMap=K.sandboxMap,await f`
|
|
1064
1117
|
UPDATE connections
|
|
1065
1118
|
SET metadata = ${JSON.stringify(T)}
|
|
1066
1119
|
WHERE id = ${C.id}
|
|
1067
|
-
`.execute(_)}}async function
|
|
1120
|
+
`.execute(_)}}async function O$(_){await f`
|
|
1068
1121
|
UPDATE threads
|
|
1069
|
-
SET sandbox_provider_kind = ${
|
|
1070
|
-
WHERE sandbox_provider_kind = ${
|
|
1122
|
+
SET sandbox_provider_kind = ${H}
|
|
1123
|
+
WHERE sandbox_provider_kind = ${Y}
|
|
1071
1124
|
`.execute(_),await f`
|
|
1072
1125
|
UPDATE sandbox_runner_state canonical
|
|
1073
1126
|
SET handle = legacy.handle,
|
|
1074
1127
|
state = legacy.state,
|
|
1075
1128
|
updated_at = legacy.updated_at
|
|
1076
1129
|
FROM sandbox_runner_state legacy
|
|
1077
|
-
WHERE canonical.sandbox_provider_kind = ${
|
|
1078
|
-
AND legacy.sandbox_provider_kind = ${
|
|
1130
|
+
WHERE canonical.sandbox_provider_kind = ${H}
|
|
1131
|
+
AND legacy.sandbox_provider_kind = ${Y}
|
|
1079
1132
|
AND canonical.user_id = legacy.user_id
|
|
1080
1133
|
AND canonical.project_ref = legacy.project_ref
|
|
1081
1134
|
AND legacy.updated_at > canonical.updated_at
|
|
1082
1135
|
`.execute(_),await f`
|
|
1083
1136
|
DELETE FROM sandbox_runner_state legacy
|
|
1084
|
-
WHERE legacy.sandbox_provider_kind = ${
|
|
1137
|
+
WHERE legacy.sandbox_provider_kind = ${Y}
|
|
1085
1138
|
AND EXISTS (
|
|
1086
1139
|
SELECT 1
|
|
1087
1140
|
FROM sandbox_runner_state canonical
|
|
1088
1141
|
WHERE canonical.user_id = legacy.user_id
|
|
1089
1142
|
AND canonical.project_ref = legacy.project_ref
|
|
1090
|
-
AND canonical.sandbox_provider_kind = ${
|
|
1143
|
+
AND canonical.sandbox_provider_kind = ${H}
|
|
1091
1144
|
)
|
|
1092
1145
|
`.execute(_),await f`
|
|
1093
1146
|
UPDATE sandbox_runner_state
|
|
1094
|
-
SET sandbox_provider_kind = ${
|
|
1095
|
-
WHERE sandbox_provider_kind = ${R}
|
|
1096
|
-
`.execute(_),await UT(_,R,Y)}async function R$(_){await f`
|
|
1097
|
-
UPDATE threads
|
|
1098
|
-
SET sandbox_provider_kind = ${R}
|
|
1147
|
+
SET sandbox_provider_kind = ${H}
|
|
1099
1148
|
WHERE sandbox_provider_kind = ${Y}
|
|
1149
|
+
`.execute(_),await ZT(_,Y,H)}async function S$(_){await f`
|
|
1150
|
+
UPDATE threads
|
|
1151
|
+
SET sandbox_provider_kind = ${Y}
|
|
1152
|
+
WHERE sandbox_provider_kind = ${H}
|
|
1100
1153
|
`.execute(_),await f`
|
|
1101
1154
|
UPDATE sandbox_runner_state legacy
|
|
1102
1155
|
SET handle = canonical.handle,
|
|
1103
1156
|
state = canonical.state,
|
|
1104
1157
|
updated_at = canonical.updated_at
|
|
1105
1158
|
FROM sandbox_runner_state canonical
|
|
1106
|
-
WHERE legacy.sandbox_provider_kind = ${
|
|
1107
|
-
AND canonical.sandbox_provider_kind = ${
|
|
1159
|
+
WHERE legacy.sandbox_provider_kind = ${Y}
|
|
1160
|
+
AND canonical.sandbox_provider_kind = ${H}
|
|
1108
1161
|
AND legacy.user_id = canonical.user_id
|
|
1109
1162
|
AND legacy.project_ref = canonical.project_ref
|
|
1110
1163
|
AND canonical.updated_at > legacy.updated_at
|
|
1111
1164
|
`.execute(_),await f`
|
|
1112
1165
|
DELETE FROM sandbox_runner_state canonical
|
|
1113
|
-
WHERE canonical.sandbox_provider_kind = ${
|
|
1166
|
+
WHERE canonical.sandbox_provider_kind = ${H}
|
|
1114
1167
|
AND EXISTS (
|
|
1115
1168
|
SELECT 1
|
|
1116
1169
|
FROM sandbox_runner_state legacy
|
|
1117
1170
|
WHERE legacy.user_id = canonical.user_id
|
|
1118
1171
|
AND legacy.project_ref = canonical.project_ref
|
|
1119
|
-
AND legacy.sandbox_provider_kind = ${
|
|
1172
|
+
AND legacy.sandbox_provider_kind = ${Y}
|
|
1120
1173
|
)
|
|
1121
1174
|
`.execute(_),await f`
|
|
1122
1175
|
UPDATE sandbox_runner_state
|
|
1123
|
-
SET sandbox_provider_kind = ${
|
|
1124
|
-
WHERE sandbox_provider_kind = ${
|
|
1125
|
-
`.execute(_),await
|
|
1176
|
+
SET sandbox_provider_kind = ${Y}
|
|
1177
|
+
WHERE sandbox_provider_kind = ${H}
|
|
1178
|
+
`.execute(_),await ZT(_,H,Y)}var Rm={};m(Rm,{up:()=>A$,down:()=>I$});import{sql as n}from"kysely";async function A$(_){await n`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(n`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(n`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(n`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(n`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 n`
|
|
1126
1179
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1127
1180
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1128
1181
|
WHERE deleted_at IS NULL
|
|
1129
|
-
`.execute(_),await
|
|
1182
|
+
`.execute(_),await n`
|
|
1130
1183
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1131
1184
|
ON org_fs_entry (organization_id, volume, size)
|
|
1132
1185
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1133
|
-
`.execute(_)}async function
|
|
1186
|
+
`.execute(_)}async function I$(_){await _.schema.dropTable("org_fs_entry").execute(),await n`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var Ym={};m(Ym,{up:()=>n$,down:()=>w$});async function n$(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function w$(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var Hm={};m(Hm,{up:()=>V$,down:()=>k$});import{sql as DT}from"kysely";async function V$(_){await DT`
|
|
1134
1187
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1135
1188
|
SELECT
|
|
1136
1189
|
'org_orgfs_public_skills',
|
|
@@ -1144,13 +1197,13 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1144
1197
|
END,
|
|
1145
1198
|
now()
|
|
1146
1199
|
ON CONFLICT (id) DO NOTHING
|
|
1147
|
-
`.execute(_)}async function
|
|
1200
|
+
`.execute(_)}async function k$(_){await DT`
|
|
1148
1201
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1149
|
-
`.execute(_)}var
|
|
1202
|
+
`.execute(_)}var Mm={};m(Mm,{up:()=>p$,down:()=>v$});async function p$(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function v$(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Bm={};m(Bm,{up:()=>q$,down:()=>g$});import{sql as WT}from"kysely";async function q$(_){await WT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function g$(_){await WT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Gm={};m(Gm,{up:()=>t$,down:()=>c$});import{sql as i$}from"kysely";async function t$(_){await i$`
|
|
1150
1203
|
UPDATE downstream_tokens
|
|
1151
1204
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1152
1205
|
WHERE "expiresAt" IS NULL
|
|
1153
|
-
`.execute(_)}async function
|
|
1206
|
+
`.execute(_)}async function c$(_){}var ym={};m(ym,{up:()=>h$,down:()=>o$});async function h$(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function o$(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var fm={};m(fm,{up:()=>a$,down:()=>r$});async function a$(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function r$(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var Om={};m(Om,{up:()=>e$,down:()=>l$});async function e$(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function l$(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Sm={};m(Sm,{up:()=>d$,down:()=>s$});async function d$(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function s$(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Am={};m(Am,{up:()=>b$,down:()=>_U});async function b$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function _U(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Im={};m(Im,{up:()=>xU,down:()=>uU});import{sql as LT}from"kysely";async function xU(_){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(LT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(LT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function uU(_){await _.schema.dropTable("org_sites").execute()}var nm={};m(nm,{up:()=>mU,down:()=>CU});async function mU(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function CU(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var wm={};m(wm,{up:()=>NU,down:()=>TU});import{sql as W}from"kysely";async function NU(_){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 W`
|
|
1154
1207
|
UPDATE organization_domains
|
|
1155
1208
|
SET
|
|
1156
1209
|
id = gen_random_uuid()::text,
|
|
@@ -1159,18 +1212,18 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1159
1212
|
verification_method = 'email',
|
|
1160
1213
|
verified_at = created_at
|
|
1161
1214
|
WHERE id IS NULL
|
|
1162
|
-
`.execute(_),await
|
|
1215
|
+
`.execute(_),await W`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await W`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await W`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await W`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await W`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await W`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await W`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await W`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 TU(_){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 W`
|
|
1163
1216
|
UPDATE organization_domains
|
|
1164
1217
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
1165
|
-
`.execute(_),await
|
|
1218
|
+
`.execute(_),await W`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await W`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 Vm={};m(Vm,{up:()=>KU,down:()=>EU});import{sql as G_}from"kysely";async function KU(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(G_`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(G_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(G_`now()`)).execute(),await G_`
|
|
1166
1219
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1167
1220
|
ON organization_join_requests (organization_id, user_id)
|
|
1168
1221
|
WHERE status = 'pending'
|
|
1169
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function
|
|
1222
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function EU(_){await _.schema.dropTable("organization_join_requests").execute()}var km={};m(km,{up:()=>zU,down:()=>PU});async function zU(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function PU(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var pm={};m(pm,{up:()=>$U,down:()=>UU});async function $U(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function UU(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var gm={};m(gm,{up:()=>JU,splitWebResearchTier:()=>qm,down:()=>QU,__testing:()=>jU});function XU(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function vm(_){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 qm(_){if(!_||vm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...C}=x,T=null,K=null;if(u)if(XU(u.modelId))K=u;else T=u;return{..._,tiers:{...C,web_search:T,deep_research:K}}}var jU={splitWebResearchTier:qm,isAlreadySplit:vm};async function JU(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(vm(N))continue;let C=qm(N);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 im={};m(im,{up:()=>ZU,down:()=>DU});import{sql as N_}from"kysely";async function ZU(_){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(N_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(N_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await N_`
|
|
1170
1223
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1171
1224
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1172
1225
|
WHERE revoked_at IS NULL
|
|
1173
|
-
`.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(
|
|
1226
|
+
`.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(N_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(N_`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 DU(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var tm={};m(tm,{up:()=>WU,down:()=>LU});async function WU(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function LU(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var cm={};m(cm,{up:()=>FU,down:()=>RU});import{sql as p}from"kysely";async function FU(_){await p`
|
|
1174
1227
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1175
1228
|
RETURNS jsonb AS $fn$
|
|
1176
1229
|
BEGIN
|
|
@@ -1179,7 +1232,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1179
1232
|
RETURN NULL;
|
|
1180
1233
|
END;
|
|
1181
1234
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
1182
|
-
`.execute(_),await
|
|
1235
|
+
`.execute(_),await p`
|
|
1183
1236
|
DELETE FROM connection_aggregations a
|
|
1184
1237
|
USING (
|
|
1185
1238
|
SELECT
|
|
@@ -1203,7 +1256,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1203
1256
|
WHERE jsonb_typeof(try_parse_jsonb(child.metadata) -> 'repoScope') = 'object'
|
|
1204
1257
|
) ranked
|
|
1205
1258
|
WHERE a.id = ranked.id AND ranked.rn > 1;
|
|
1206
|
-
`.execute(_),await
|
|
1259
|
+
`.execute(_),await p`
|
|
1207
1260
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1208
1261
|
RETURNS trigger AS $fn$
|
|
1209
1262
|
BEGIN
|
|
@@ -1224,12 +1277,12 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1224
1277
|
RETURN NEW;
|
|
1225
1278
|
END;
|
|
1226
1279
|
$fn$ LANGUAGE plpgsql;
|
|
1227
|
-
`.execute(_),await
|
|
1280
|
+
`.execute(_),await p`
|
|
1228
1281
|
CREATE TRIGGER trg_repo_github_child_single_parent
|
|
1229
1282
|
BEFORE INSERT ON connection_aggregations
|
|
1230
1283
|
FOR EACH ROW
|
|
1231
1284
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1232
|
-
`.execute(_)}async function
|
|
1285
|
+
`.execute(_)}async function RU(_){await p`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await p`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await p`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var om={};m(om,{up:()=>YU,down:()=>HU});import{sql as hm}from"kysely";async function YU(_){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(hm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(hm`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(hm`false`)).execute()}async function HU(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var am={};m(am,{up:()=>MU,down:()=>BU});async function MU(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function BU(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var rm={};m(rm,{up:()=>GU,down:()=>yU});async function GU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function yU(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var em={};m(em,{up:()=>fU,down:()=>OU});async function fU(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function OU(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var lm={};m(lm,{up:()=>AU,down:()=>IU});import{sql as SU}from"kysely";async function AU(_){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(SU`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 IU(_){await _.schema.dropTable("task_board_item_threads").execute()}var dm={};m(dm,{up:()=>nU,down:()=>wU});async function nU(_){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 wU(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var sm={};m(sm,{up:()=>kU,down:()=>pU});import{sql as VU}from"kysely";async function kU(_){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(VU`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 pU(_){await _.schema.dropTable("task_board_item_prs").execute()}var bm={};m(bm,{up:()=>qU,down:()=>gU});import{sql as vU}from"kysely";async function qU(_){await vU`
|
|
1233
1286
|
DELETE FROM member
|
|
1234
1287
|
WHERE id IN (
|
|
1235
1288
|
SELECT id FROM (
|
|
@@ -1248,38 +1301,38 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1248
1301
|
) ranked
|
|
1249
1302
|
WHERE ranked.rn > 1
|
|
1250
1303
|
)
|
|
1251
|
-
`.execute(_)}async function
|
|
1304
|
+
`.execute(_)}async function gU(_){}var _C={};m(_C,{up:()=>iU,down:()=>tU});async function iU(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function tU(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var xC={};m(xC,{up:()=>cU,down:()=>hU});async function cU(_){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 hU(_){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:()=>aU,down:()=>rU});import{sql as oU}from"kysely";async function aU(_){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(oU`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 rU(_){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 mC={};m(mC,{up:()=>lU,down:()=>dU});import{sql as eU}from"kysely";async function lU(_){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(eU`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 dU(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var CC={};m(CC,{up:()=>sU,down:()=>bU});import{sql as y_}from"kysely";async function sU(_){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(y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",y_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",y_`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 bU(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var NC={};m(NC,{up:()=>_X,down:()=>xX});import{sql as f_}from"kysely";async function _X(_){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(f_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(f_`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(f_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await f_`
|
|
1252
1305
|
insert into organization_billing (organization_id, legacy)
|
|
1253
1306
|
select id, true from organization
|
|
1254
1307
|
on conflict (organization_id) do nothing
|
|
1255
|
-
`.execute(_)}async function
|
|
1308
|
+
`.execute(_)}async function xX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var TC={};m(TC,{up:()=>uX,down:()=>mX});import{sql as FT}from"kysely";async function uX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(FT`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(FT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function mX(_){await _.schema.dropTable("seat_change_log").execute()}var KC={};m(KC,{up:()=>CX,down:()=>NX});async function CX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function NX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var EC={};m(EC,{up:()=>TX,down:()=>KX});import{sql as RT}from"kysely";async function TX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await RT`
|
|
1256
1309
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1257
1310
|
on organization_billing (stripe_subscription_id)
|
|
1258
1311
|
where stripe_subscription_id is not null
|
|
1259
|
-
`.execute(_)}async function
|
|
1312
|
+
`.execute(_)}async function KX(_){await RT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var zC={};m(zC,{up:()=>EX,down:()=>zX});async function EX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function zX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var PC={};m(PC,{up:()=>PX,down:()=>$X});import{sql as YT}from"kysely";async function PX(_){await YT`
|
|
1260
1313
|
create index idx_org_billing_benefits_pending
|
|
1261
1314
|
on organization_billing (updated_at)
|
|
1262
1315
|
where benefits_reference_id is not null
|
|
1263
|
-
`.execute(_)}async function
|
|
1316
|
+
`.execute(_)}async function $X(_){await YT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var $C={};m($C,{up:()=>UX,down:()=>XX});import{sql as HT}from"kysely";async function UX(_){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(HT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(HT`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 XX(_){await _.schema.dropTable("user_model_preferences").execute()}var UC={};m(UC,{up:()=>jX,down:()=>JX});async function jX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function JX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var XC={};m(XC,{up:()=>QX,down:()=>ZX});async function QX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function ZX(_){}var jC={};m(jC,{up:()=>DX,down:()=>WX});import{sql as MT}from"kysely";async function DX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await MT`
|
|
1264
1317
|
UPDATE organization_settings
|
|
1265
1318
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1266
1319
|
WHERE reports_only IS NOT NULL
|
|
1267
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1320
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function WX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await MT`
|
|
1268
1321
|
UPDATE organization_settings
|
|
1269
1322
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1270
1323
|
WHERE flags ? 'reports_only'
|
|
1271
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1324
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var JC={};m(JC,{up:()=>FX,down:()=>RX});import{sql as LX}from"kysely";async function FX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await LX`
|
|
1272
1325
|
update task_board_items
|
|
1273
1326
|
set sort_order = -extract(epoch from created_at)
|
|
1274
|
-
`.execute(_)}async function
|
|
1327
|
+
`.execute(_)}async function RX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var QC={};m(QC,{up:()=>YX,down:()=>HX,ACTIONS:()=>BT});import{sql as O_}from"kysely";var BT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function YX(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(O_`now()`)).addCheckConstraint("chk_task_board_activity_action",O_`action IN (${O_.join(BT.map((x)=>O_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function HX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var DC={};m(DC,{up:()=>MX,down:()=>BX,ACTIONS:()=>ZC});import{sql as T_}from"kysely";var ZC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function MX(_){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(T_`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 GT(_,ZC)}async function BX(_){await GT(_,ZC.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 GT(_,x){await T_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await T_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${T_.join(x.map((u)=>T_.lit(u)))}))`.execute(_)}var LC={};m(LC,{up:()=>yX,down:()=>fX});import{sql as yT}from"kysely";function WC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function GX(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return WC(N)}catch{return WC(_.connection_url)}if(_.title)return WC(_.title);return _.id}async function yX(_){let x=await yT`
|
|
1275
1328
|
SELECT id, app_name, connection_url, title, slug
|
|
1276
1329
|
FROM connections
|
|
1277
1330
|
WHERE connection_type != 'VIRTUAL'
|
|
1278
|
-
`.execute(_),u=0;for(let N of x.rows){let C=
|
|
1331
|
+
`.execute(_),u=0;for(let N of x.rows){let C=GX(N);if(C===N.slug)continue;await yT`UPDATE connections SET slug = ${C} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function fX(){}var FC={};m(FC,{up:()=>SX,down:()=>AX});import{sql as OX}from"kysely";async function SX(_){await OX`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 AX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var YC={};m(YC,{up:()=>nX,down:()=>wX,ACTIONS:()=>RC});import{sql as S_}from"kysely";var RC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],IX=new Set(["review_requested","review_approved","review_changes_requested"]);async function nX(_){await fT(_,RC)}async function wX(_){await fT(_,RC.filter((x)=>!IX.has(x)))}async function fT(_,x){await S_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await S_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${S_.join(x.map((u)=>S_.lit(u)))}))`.execute(_)}var HC={};m(HC,{up:()=>kX,down:()=>pX});import{sql as VX}from"kysely";async function kX(_){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(VX`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 pX(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var BC={};m(BC,{up:()=>qX,down:()=>gX,ACTIONS:()=>MC});import{sql as A_}from"kysely";var MC=["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"],vX=new Set(["merge_conflict_resolution"]);async function qX(_){await OT(_,MC)}async function gX(_){await OT(_,MC.filter((x)=>!vX.has(x)))}async function OT(_,x){await A_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await A_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${A_.join(x.map((u)=>A_.lit(u)))}))`.execute(_)}var GC={};m(GC,{up:()=>iX,down:()=>tX});import{sql as K_}from"kysely";async function iX(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await K_`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 tX(_){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 K_`
|
|
1279
1332
|
create index idx_org_billing_benefits_pending
|
|
1280
1333
|
on organization_billing (updated_at)
|
|
1281
1334
|
where benefits_reference_id is not null
|
|
1282
|
-
`.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(
|
|
1335
|
+
`.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(K_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(K_`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(K_`now()`)).execute()}var yC={};m(yC,{up:()=>cX,down:()=>hX});import{sql as I_}from"kysely";async function cX(_){await I_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await I_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function hX(_){await I_`
|
|
1283
1336
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1284
1337
|
RETURNS trigger AS $fn$
|
|
1285
1338
|
BEGIN
|
|
@@ -1300,40 +1353,40 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1300
1353
|
RETURN NEW;
|
|
1301
1354
|
END;
|
|
1302
1355
|
$fn$ LANGUAGE plpgsql;
|
|
1303
|
-
`.execute(_),await
|
|
1356
|
+
`.execute(_),await I_`
|
|
1304
1357
|
CREATE TRIGGER trg_repo_github_child_single_parent
|
|
1305
1358
|
BEFORE INSERT ON connection_aggregations
|
|
1306
1359
|
FOR EACH ROW
|
|
1307
1360
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1308
|
-
`.execute(_)}var
|
|
1361
|
+
`.execute(_)}var fC={};m(fC,{up:()=>oX,down:()=>aX});import{sql as ST}from"kysely";async function oX(_){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(ST`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(ST`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function aX(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var OC={};m(OC,{up:()=>rX,down:()=>eX});import{sql as AT}from"kysely";async function rX(_){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(AT`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(AT`now()`)).execute()}async function eX(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var AC={};m(AC,{up:()=>lX,down:()=>dX});import{sql as SC}from"kysely";async function lX(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(SC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await SC`
|
|
1309
1362
|
create index idx_task_quota_claims_org_period_live
|
|
1310
1363
|
on task_quota_claims (organization_id, period_key)
|
|
1311
1364
|
where state <> 'released'
|
|
1312
|
-
`.execute(_)}async function
|
|
1365
|
+
`.execute(_)}async function dX(_){await SC`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 IC={};m(IC,{up:()=>sX,down:()=>bX});async function sX(_){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 bX(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var nC={};m(nC,{up:()=>_j,down:()=>xj});async function _j(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function xj(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var wC={};m(wC,{up:()=>uj,down:()=>mj});import{sql as IT}from"kysely";async function uj(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(IT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(IT`monthly_task_executions > 0`)).execute()}async function mj(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var VC={};m(VC,{up:()=>Nj,down:()=>Tj});import{sql as Cj}from"kysely";async function Nj(_){await Cj`
|
|
1313
1366
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1314
1367
|
ON task_board_items (updated_at, id)
|
|
1315
1368
|
WHERE status = 'in_review'
|
|
1316
1369
|
AND assignee_id = 'super-agent'
|
|
1317
1370
|
AND dismissed_at IS NULL
|
|
1318
|
-
`.execute(_)}async function
|
|
1371
|
+
`.execute(_)}async function Tj(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var kC={};m(kC,{up:()=>Kj,down:()=>Ej});import{sql as nT}from"kysely";async function Kj(_){await nT`
|
|
1319
1372
|
ALTER TABLE task_board_items
|
|
1320
1373
|
ADD COLUMN last_swept_at timestamptz
|
|
1321
|
-
`.execute(_)}async function
|
|
1374
|
+
`.execute(_)}async function Ej(_){await nT`
|
|
1322
1375
|
ALTER TABLE task_board_items
|
|
1323
1376
|
DROP COLUMN last_swept_at
|
|
1324
|
-
`.execute(_)}var
|
|
1377
|
+
`.execute(_)}var pC={};m(pC,{up:()=>zj,down:()=>Pj});import{sql as n_}from"kysely";async function zj(_){await n_`
|
|
1325
1378
|
ALTER TABLE task_board_items
|
|
1326
1379
|
ADD COLUMN retry_at timestamptz,
|
|
1327
1380
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
1328
|
-
`.execute(_),await
|
|
1381
|
+
`.execute(_),await n_`
|
|
1329
1382
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1330
1383
|
ON task_board_items (retry_at)
|
|
1331
1384
|
WHERE retry_at IS NOT NULL
|
|
1332
|
-
`.execute(_)}async function
|
|
1385
|
+
`.execute(_)}async function Pj(_){await n_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await n_`
|
|
1333
1386
|
ALTER TABLE task_board_items
|
|
1334
1387
|
DROP COLUMN retry_at,
|
|
1335
1388
|
DROP COLUMN retry_attempts
|
|
1336
|
-
`.execute(_)}var
|
|
1389
|
+
`.execute(_)}var qC={};m(qC,{up:()=>$j,down:()=>Uj});import{sql as vC}from"kysely";async function $j(_){await vC`
|
|
1337
1390
|
CREATE TABLE org_repo_sync (
|
|
1338
1391
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1339
1392
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1351,11 +1404,11 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1351
1404
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1352
1405
|
UNIQUE (organization_id, volume)
|
|
1353
1406
|
)
|
|
1354
|
-
`.execute(_),await
|
|
1407
|
+
`.execute(_),await vC`
|
|
1355
1408
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1356
1409
|
ON org_repo_sync (organization_id)
|
|
1357
1410
|
WHERE enabled
|
|
1358
|
-
`.execute(_)}async function
|
|
1411
|
+
`.execute(_)}async function Uj(_){await vC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var iC={};m(iC,{up:()=>jj,down:()=>Jj,ACTIONS:()=>gC});import{sql as w_}from"kysely";var gC=["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"],Xj=new Set(["merge_failed"]);async function jj(_){await wT(_,gC)}async function Jj(_){await wT(_,gC.filter((x)=>!Xj.has(x)))}async function wT(_,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 tC={};m(tC,{up:()=>Qj,down:()=>Zj});async function Qj(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function Zj(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var cC={};m(cC,{up:()=>Dj,down:()=>Wj});import{sql as h}from"kysely";async function Dj(_){await h`
|
|
1359
1412
|
CREATE TABLE org_jira_integrations (
|
|
1360
1413
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1361
1414
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1375,7 +1428,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1375
1428
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1376
1429
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
1377
1430
|
)
|
|
1378
|
-
`.execute(_),await
|
|
1431
|
+
`.execute(_),await h`
|
|
1379
1432
|
CREATE TABLE task_board_item_jira_links (
|
|
1380
1433
|
item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
|
|
1381
1434
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1386,7 +1439,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1386
1439
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1387
1440
|
UNIQUE (organization_id, jira_issue_id)
|
|
1388
1441
|
)
|
|
1389
|
-
`.execute(_),await
|
|
1442
|
+
`.execute(_),await h`
|
|
1390
1443
|
CREATE TABLE task_board_comment_jira_links (
|
|
1391
1444
|
comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
|
|
1392
1445
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1394,7 +1447,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1394
1447
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1395
1448
|
UNIQUE (organization_id, jira_comment_id)
|
|
1396
1449
|
)
|
|
1397
|
-
`.execute(_)}async function
|
|
1450
|
+
`.execute(_)}async function Wj(_){await h`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await h`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await h`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var hC={};m(hC,{up:()=>Fj,down:()=>Rj});import{sql as Lj}from"kysely";async function Fj(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await Lj`
|
|
1398
1451
|
update task_board_items as t
|
|
1399
1452
|
set key_seq = numbered.seq
|
|
1400
1453
|
from (
|
|
@@ -1407,25 +1460,25 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1407
1460
|
from task_board_items
|
|
1408
1461
|
) as numbered
|
|
1409
1462
|
where t.id = numbered.id
|
|
1410
|
-
`.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
|
|
1463
|
+
`.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 Rj(_){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 oC={};m(oC,{up:()=>Yj,down:()=>Hj});import{sql as VT}from"kysely";async function Yj(_){await VT`
|
|
1411
1464
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1412
1465
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1413
1466
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1414
|
-
`.execute(_)}async function
|
|
1467
|
+
`.execute(_)}async function Hj(_){await VT`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var rC={};m(rC,{up:()=>Mj,down:()=>Bj});import{sql as aC}from"kysely";async function Mj(_){await aC`
|
|
1415
1468
|
ALTER TABLE thread_message_parts
|
|
1416
1469
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1417
|
-
`.execute(_),await
|
|
1470
|
+
`.execute(_),await aC`
|
|
1418
1471
|
ALTER TABLE thread_message_parts
|
|
1419
1472
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1420
|
-
`.execute(_)}async function
|
|
1473
|
+
`.execute(_)}async function Bj(_){await aC`
|
|
1421
1474
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1422
|
-
`.execute(_)}var
|
|
1475
|
+
`.execute(_)}var eC={};m(eC,{up:()=>Gj,down:()=>yj});async function Gj(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function yj(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var lC={};m(lC,{up:()=>Oj,down:()=>Sj});import{sql as fj}from"kysely";async function Oj(_){await fj`
|
|
1423
1476
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1424
1477
|
ON task_board_items (updated_at)
|
|
1425
1478
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1426
|
-
`.execute(_)}async function
|
|
1427
|
-
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await
|
|
1428
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function
|
|
1479
|
+
`.execute(_)}async function Sj(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var dC={};m(dC,{up:()=>Aj,down:()=>Ij,TYPES:()=>kT});import{sql as w}from"kysely";var kT=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function Aj(_){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(w`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(w`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(w`now()`)).addCheckConstraint("notifications_type_check",w`type IN (${w.join(kT.map((x)=>w.lit(x)))})`).execute(),await w`CREATE INDEX notifications_user_unread ON notifications
|
|
1480
|
+
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await w`CREATE INDEX notifications_digest ON notifications
|
|
1481
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function Ij(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var sC={};m(sC,{up:()=>nj,down:()=>wj});import{sql as pT}from"kysely";async function nj(_){await pT`
|
|
1429
1482
|
UPDATE org_jira_integrations
|
|
1430
1483
|
SET status_mapping = (
|
|
1431
1484
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1440,7 +1493,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1440
1493
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1441
1494
|
WHERE jsonb_typeof(value) = 'array'
|
|
1442
1495
|
)
|
|
1443
|
-
`.execute(_)}async function
|
|
1496
|
+
`.execute(_)}async function wj(_){await pT`
|
|
1444
1497
|
UPDATE org_jira_integrations
|
|
1445
1498
|
SET status_mapping = (
|
|
1446
1499
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1455,7 +1508,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1455
1508
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1456
1509
|
WHERE jsonb_typeof(value) = 'array'
|
|
1457
1510
|
)
|
|
1458
|
-
`.execute(_)}var
|
|
1511
|
+
`.execute(_)}var _N={};m(_N,{up:()=>kj,down:()=>pj,TYPES:()=>bC});import{sql as V_}from"kysely";var bC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],Vj=new Set(["mentioned"]);async function kj(_){await vT(_,bC)}async function pj(_){await vT(_,bC.filter((x)=>!Vj.has(x)))}async function vT(_,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 uN={};m(uN,{up:()=>gj,down:()=>ij,ACTIONS:()=>xN});import{sql as V}from"kysely";var vj=["bug","feature","chore","spike","security"],xN=["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"],qj=new Set(["type_changed"]);async function gj(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await V`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${V.join(vj.map((x)=>V.lit(x)))}))`.execute(_),await qT(_,xN)}async function ij(_){await qT(_,xN.filter((x)=>!qj.has(x))),await V`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function qT(_,x){await V`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await V`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${V.join(x.map((u)=>V.lit(u)))}))`.execute(_)}var mN={};m(mN,{up:()=>tj,down:()=>cj});import{sql as J}from"kysely";var iT=["bug","feature","chore","spike","security"],gT="chore";async function tj(_){await J`UPDATE task_board_items SET type = ${J.lit(gT)} WHERE type IS NULL`.execute(_),await J`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${J.lit(gT)}`.execute(_),await J`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await J`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await J`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${J.join(iT.map((x)=>J.lit(x)))}))`.execute(_)}async function cj(_){await J`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await J`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${J.join(iT.map((x)=>J.lit(x)))}))`.execute(_),await J`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await J`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var CN={};m(CN,{up:()=>hj,down:()=>oj});import{sql as o}from"kysely";async function hj(_){await o`
|
|
1459
1512
|
CREATE TABLE task_board_sprints (
|
|
1460
1513
|
id text PRIMARY KEY,
|
|
1461
1514
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1470,44 +1523,44 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1470
1523
|
CHECK (state IN ('active', 'future', 'closed')),
|
|
1471
1524
|
UNIQUE (organization_id, jira_sprint_id)
|
|
1472
1525
|
)
|
|
1473
|
-
`.execute(_),await
|
|
1526
|
+
`.execute(_),await o`
|
|
1474
1527
|
CREATE INDEX idx_task_board_sprints_org
|
|
1475
1528
|
ON task_board_sprints (organization_id, starts_at)
|
|
1476
|
-
`.execute(_),await
|
|
1529
|
+
`.execute(_),await o`
|
|
1477
1530
|
ALTER TABLE task_board_items
|
|
1478
1531
|
ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
|
|
1479
|
-
`.execute(_),await
|
|
1532
|
+
`.execute(_),await o`
|
|
1480
1533
|
CREATE INDEX idx_task_board_items_sprint
|
|
1481
1534
|
ON task_board_items (organization_id, sprint_id)
|
|
1482
1535
|
WHERE sprint_id IS NOT NULL
|
|
1483
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function
|
|
1536
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function oj(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await o`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await o`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var NN={};m(NN,{up:()=>rj,down:()=>ej});import{sql as aj}from"kysely";async function rj(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function ej(_){await aj`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var TN={};m(TN,{up:()=>dj,down:()=>sj});import{sql as lj}from"kysely";async function dj(_){await lj`
|
|
1484
1537
|
UPDATE org_jira_integrations
|
|
1485
1538
|
SET last_synced_at = NULL,
|
|
1486
1539
|
last_sync_error = NULL
|
|
1487
1540
|
WHERE last_synced_at IS NOT NULL
|
|
1488
|
-
`.execute(_)}async function
|
|
1541
|
+
`.execute(_)}async function sj(){}var KN={};m(KN,{up:()=>_J,down:()=>xJ});import{sql as bj}from"kysely";async function _J(_){await bj`
|
|
1489
1542
|
UPDATE org_jira_integrations
|
|
1490
1543
|
SET last_synced_at = NULL,
|
|
1491
1544
|
last_sync_error = NULL
|
|
1492
1545
|
WHERE last_synced_at IS NOT NULL
|
|
1493
|
-
`.execute(_)}async function
|
|
1546
|
+
`.execute(_)}async function xJ(){}var zN={};m(zN,{up:()=>uJ,down:()=>mJ});import{sql as EN}from"kysely";async function uJ(_){await EN`
|
|
1494
1547
|
ALTER TABLE org_jira_integrations
|
|
1495
1548
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1496
|
-
`.execute(_),await
|
|
1549
|
+
`.execute(_),await EN`
|
|
1497
1550
|
UPDATE org_jira_integrations
|
|
1498
1551
|
SET rescan_pending = true
|
|
1499
1552
|
WHERE last_synced_at IS NULL
|
|
1500
|
-
`.execute(_)}async function
|
|
1553
|
+
`.execute(_)}async function mJ(_){await EN`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var PN={};m(PN,{up:()=>CJ,down:()=>NJ});async function CJ(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function NJ(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var $N={};m($N,{up:()=>TJ,down:()=>KJ});import{sql as tT}from"kysely";async function TJ(_){await tT`
|
|
1501
1554
|
ALTER TABLE invitation
|
|
1502
1555
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1503
|
-
`.execute(_)}async function
|
|
1556
|
+
`.execute(_)}async function KJ(_){await tT`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var XN={};m(XN,{up:()=>EJ,down:()=>zJ});import{sql as UN}from"kysely";async function EJ(_){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(UN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(UN`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 UN`
|
|
1504
1557
|
INSERT INTO task_board_column_automations
|
|
1505
1558
|
(id, organization_id, column_key, prompt)
|
|
1506
1559
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1507
1560
|
FROM org_jira_integrations
|
|
1508
1561
|
WHERE auto_delegate = true
|
|
1509
1562
|
ON CONFLICT DO NOTHING
|
|
1510
|
-
`.execute(_)}async function
|
|
1563
|
+
`.execute(_)}async function zJ(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var jN={};m(jN,{up:()=>PJ,down:()=>$J});import{sql as E_}from"kysely";async function PJ(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await E_`
|
|
1511
1564
|
UPDATE task_board_items i
|
|
1512
1565
|
SET review_cycle_started_at = (
|
|
1513
1566
|
SELECT max(a.occurred_at)
|
|
@@ -1517,35 +1570,35 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1517
1570
|
AND a.data ->> 'to' = 'in_review'
|
|
1518
1571
|
)
|
|
1519
1572
|
WHERE i.status = 'in_review'
|
|
1520
|
-
`.execute(_),await
|
|
1573
|
+
`.execute(_),await E_`
|
|
1521
1574
|
CREATE INDEX idx_task_board_items_review_cycle
|
|
1522
1575
|
ON task_board_items (updated_at, id)
|
|
1523
1576
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1524
1577
|
AND assignee_id = 'super-agent'
|
|
1525
1578
|
AND dismissed_at IS NULL
|
|
1526
|
-
`.execute(_),await
|
|
1579
|
+
`.execute(_),await E_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function $J(_){await E_`
|
|
1527
1580
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1528
1581
|
ON task_board_items (updated_at, id)
|
|
1529
1582
|
WHERE status = 'in_review'
|
|
1530
1583
|
AND assignee_id = 'super-agent'
|
|
1531
1584
|
AND dismissed_at IS NULL
|
|
1532
|
-
`.execute(_),await
|
|
1585
|
+
`.execute(_),await E_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var JN={};m(JN,{up:()=>UJ,down:()=>XJ});import{sql as cT}from"kysely";async function UJ(_){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(cT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(cT`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 XJ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var ZN={};m(ZN,{up:()=>JJ,down:()=>QJ,ACTIONS:()=>QN});import{sql as k_}from"kysely";var QN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],jJ=new Set(["review_verdict_requested"]);async function JJ(_){await hT(_,QN)}async function QJ(_){await hT(_,QN.filter((x)=>!jJ.has(x)))}async function hT(_,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 DN={};m(DN,{up:()=>ZJ,down:()=>DJ});import{sql as p_}from"kysely";async function ZJ(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await p_`
|
|
1533
1586
|
ALTER TABLE task_board_items
|
|
1534
1587
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1535
1588
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
1536
|
-
`.execute(_),await
|
|
1589
|
+
`.execute(_),await p_`
|
|
1537
1590
|
ALTER TABLE task_board_items
|
|
1538
1591
|
ADD CONSTRAINT task_board_items_board_column_fkey
|
|
1539
1592
|
FOREIGN KEY (board_column_org, status)
|
|
1540
1593
|
REFERENCES task_board_columns (organization_id, key)
|
|
1541
1594
|
ON DELETE RESTRICT
|
|
1542
|
-
`.execute(_)}async function
|
|
1595
|
+
`.execute(_)}async function DJ(_){await p_`
|
|
1543
1596
|
ALTER TABLE task_board_items
|
|
1544
1597
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
1545
|
-
`.execute(_),await
|
|
1598
|
+
`.execute(_),await p_`
|
|
1546
1599
|
ALTER TABLE task_board_items
|
|
1547
1600
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
1548
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
1601
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var WN={};m(WN,{up:()=>WJ,down:()=>LJ});async function WJ(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function LJ(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var FN={};m(FN,{up:()=>RJ,down:()=>YJ,ACTIONS:()=>LN});import{sql as v_}from"kysely";var LN=["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"],FJ=new Set(["sprint_changed"]);async function RJ(_){await oT(_,LN)}async function YJ(_){await oT(_,LN.filter((x)=>!FJ.has(x)))}async function oT(_,x){await v_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await v_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${v_.join(x.map((u)=>v_.lit(u)))}))`.execute(_)}var RN={};m(RN,{up:()=>MJ,down:()=>BJ});import{sql as HJ}from"kysely";async function MJ(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(HJ`'[]'::jsonb`)).execute()}async function BJ(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var YN={};m(YN,{up:()=>GJ,down:()=>yJ});import{sql as aT}from"kysely";async function GJ(_){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(aT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(aT`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function yJ(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var HN={};m(HN,{up:()=>OJ,down:()=>SJ});import{sql as fJ}from"kysely";async function OJ(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await fJ`
|
|
1549
1602
|
UPDATE task_board_items i
|
|
1550
1603
|
SET external_url = t.url,
|
|
1551
1604
|
description = CASE
|
|
@@ -1564,11 +1617,11 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1564
1617
|
ON g.organization_id = l.organization_id
|
|
1565
1618
|
) t
|
|
1566
1619
|
WHERE t.item_id = i.id
|
|
1567
|
-
`.execute(_)}async function
|
|
1620
|
+
`.execute(_)}async function SJ(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var MN={};m(MN,{up:()=>IJ,down:()=>nJ,ACTIONS:()=>rT});import{sql as X}from"kysely";var AJ=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],rT=["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 IJ(_){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`
|
|
1568
1621
|
UPDATE task_board_items
|
|
1569
1622
|
SET status = 'triage'
|
|
1570
|
-
WHERE status NOT IN (${X.join(
|
|
1571
|
-
`.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
|
|
1623
|
+
WHERE status NOT IN (${X.join(AJ.map((x)=>X.lit(x)))})
|
|
1624
|
+
`.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 wJ(_,rT),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
|
|
1572
1625
|
ALTER TABLE task_board_item_jira_links
|
|
1573
1626
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
1574
1627
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -1580,11 +1633,11 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1580
1633
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
1581
1634
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
1582
1635
|
DROP COLUMN IF EXISTS rescan_pending
|
|
1583
|
-
`.execute(_)}async function
|
|
1636
|
+
`.execute(_)}async function nJ(){}async function wJ(_,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 BN={};m(BN,{up:()=>VJ,down:()=>kJ});import{sql as a}from"kysely";async function VJ(_){await a`
|
|
1584
1637
|
ALTER TABLE task_board_items
|
|
1585
1638
|
ADD COLUMN IF NOT EXISTS source text
|
|
1586
1639
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
1587
|
-
`.execute(_),await
|
|
1640
|
+
`.execute(_),await a`
|
|
1588
1641
|
CREATE TABLE IF NOT EXISTS org_jira_column_automations (
|
|
1589
1642
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
1590
1643
|
jira_status text NOT NULL,
|
|
@@ -1593,7 +1646,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1593
1646
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1594
1647
|
PRIMARY KEY (organization_id, jira_status)
|
|
1595
1648
|
)
|
|
1596
|
-
`.execute(_),await
|
|
1649
|
+
`.execute(_),await a`
|
|
1597
1650
|
CREATE TABLE IF NOT EXISTS jira_trigger_claims (
|
|
1598
1651
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
1599
1652
|
jira_issue_id text NOT NULL,
|
|
@@ -1601,24 +1654,24 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1601
1654
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1602
1655
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
1603
1656
|
)
|
|
1604
|
-
`.execute(_)}async function
|
|
1657
|
+
`.execute(_)}async function kJ(_){await a`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await a`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await a`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var GN={};m(GN,{up:()=>pJ,down:()=>vJ});import{sql as z_}from"kysely";async function pJ(_){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(z_`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(z_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(z_`now()`)).execute(),await z_`
|
|
1605
1658
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
1606
1659
|
ON organization_notices (organization_id)
|
|
1607
1660
|
WHERE resolved_at IS NULL
|
|
1608
|
-
`.execute(_),await
|
|
1661
|
+
`.execute(_),await z_`
|
|
1609
1662
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
1610
1663
|
ON organization_notices (organization_id, created_at DESC)
|
|
1611
|
-
`.execute(_)}async function
|
|
1664
|
+
`.execute(_)}async function vJ(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var fN={};m(fN,{up:()=>eJ,down:()=>lJ});import{sql as yN}from"kysely";import{sql as uD}from"kysely";var eT=50000000,qJ=1e5;function gJ(_,x){let u=0,N=0,C=[_];while(C.length>0){if(u>x||++N>qJ)return 1/0;let T=C.pop();if(typeof T==="string")u+=T.length;else if(Array.isArray(T))for(let K of T)C.push(K);else if(T!==null&&typeof T==="object")for(let K of Object.values(T))C.push(K)}return u}var iJ=/\u0000/g,tJ=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,cJ=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,hJ=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,oJ=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function aJ(_){return _.replace(iJ,"").replace(tJ,"\uFFFD").replace(cJ,"$1***@").replace(hJ,"$1***").replace(oJ,"[base64 data omitted]")}function rJ(_){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 lT(_){if(gJ(_,eT)>eT)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return aJ(u);if(rJ(u))return{type:"text",text:"[image omitted]"};return u})}var dT=20;async function eJ(_){let x=await yN`
|
|
1612
1665
|
SELECT id FROM thread_message_parts
|
|
1613
1666
|
WHERE pg_column_size(payload) > 8192
|
|
1614
1667
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
1615
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
1668
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=dT){let N=x.rows.slice(u,u+dT).map((T)=>T.id),C=await yN`
|
|
1616
1669
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
|
|
1617
|
-
`.execute(_);for(let T of C.rows){let
|
|
1670
|
+
`.execute(_);for(let T of C.rows){let K=lT(T.payload);if(K===JSON.stringify(T.payload))continue;await yN`
|
|
1618
1671
|
UPDATE thread_message_parts
|
|
1619
|
-
SET payload = ${
|
|
1672
|
+
SET payload = ${K}::jsonb
|
|
1620
1673
|
WHERE id = ${T.id}
|
|
1621
|
-
`.execute(_)}}}async function
|
|
1674
|
+
`.execute(_)}}}async function lJ(){}var ON={};m(ON,{up:()=>dJ,down:()=>sJ});async function dJ(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function sJ(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var SN={};m(SN,{up:()=>bJ,down:()=>_Q});import{sql as P}from"kysely";async function bJ(_){await P`
|
|
1622
1675
|
CREATE TABLE git_provider_accounts (
|
|
1623
1676
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1624
1677
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1862,11 +1915,11 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1862
1915
|
AND r.organization_id = s.organization_id
|
|
1863
1916
|
AND r.host = 'github.com'
|
|
1864
1917
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
|
|
1865
|
-
`.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function
|
|
1918
|
+
`.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function _Q(_){await P`
|
|
1866
1919
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
1867
1920
|
`.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
|
|
1868
1921
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
1869
|
-
`.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
|
|
1922
|
+
`.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 AN={};m(AN,{up:()=>uQ,down:()=>mQ});import{sql as M}from"kysely";var xQ=M`
|
|
1870
1923
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
1871
1924
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
1872
1925
|
BEGIN
|
|
@@ -1875,13 +1928,13 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1875
1928
|
RETURN NULL;
|
|
1876
1929
|
END;
|
|
1877
1930
|
$$
|
|
1878
|
-
`;async function
|
|
1931
|
+
`;async function uQ(_){await xQ.execute(_),await M`
|
|
1879
1932
|
ALTER TABLE connections
|
|
1880
1933
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
1881
|
-
`.execute(_),await
|
|
1934
|
+
`.execute(_),await M`
|
|
1882
1935
|
CREATE INDEX idx_connections_repository
|
|
1883
1936
|
ON connections (repository_id) WHERE repository_id IS NOT NULL
|
|
1884
|
-
`.execute(_),await
|
|
1937
|
+
`.execute(_),await M`
|
|
1885
1938
|
CREATE TABLE thread_repositories (
|
|
1886
1939
|
thread_id text NOT NULL REFERENCES threads(id) ON DELETE CASCADE,
|
|
1887
1940
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1889,10 +1942,10 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1889
1942
|
added_at timestamptz NOT NULL DEFAULT now(),
|
|
1890
1943
|
PRIMARY KEY (thread_id, repository_id)
|
|
1891
1944
|
)
|
|
1892
|
-
`.execute(_),await
|
|
1945
|
+
`.execute(_),await M`
|
|
1893
1946
|
CREATE INDEX idx_thread_repositories_repo
|
|
1894
1947
|
ON thread_repositories (repository_id)
|
|
1895
|
-
`.execute(_),await
|
|
1948
|
+
`.execute(_),await M`
|
|
1896
1949
|
UPDATE connections c
|
|
1897
1950
|
SET repository_id = r.id
|
|
1898
1951
|
FROM repositories r
|
|
@@ -1904,7 +1957,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1904
1957
|
|| '/' ||
|
|
1905
1958
|
(repo_ref_try_jsonb(c.metadata) #>> '{githubRepo,name}')
|
|
1906
1959
|
)
|
|
1907
|
-
`.execute(_),await
|
|
1960
|
+
`.execute(_),await M`
|
|
1908
1961
|
INSERT INTO repositories (
|
|
1909
1962
|
organization_id, account_id, provider, host, path, web_url
|
|
1910
1963
|
)
|
|
@@ -1925,7 +1978,7 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1925
1978
|
AND e.name NOT LIKE '%/%'
|
|
1926
1979
|
ORDER BY t.organization_id, lower(e.owner || '/' || e.name)
|
|
1927
1980
|
ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
|
|
1928
|
-
`.execute(_),await
|
|
1981
|
+
`.execute(_),await M`
|
|
1929
1982
|
INSERT INTO thread_repositories (thread_id, organization_id, repository_id)
|
|
1930
1983
|
SELECT DISTINCT t.id, t.organization_id, r.id
|
|
1931
1984
|
FROM threads t
|
|
@@ -1937,29 +1990,29 @@ var UK=Object.defineProperty;var XK=(_)=>_;function JK(_,x){this[_]=XK.bind(null
|
|
|
1937
1990
|
AND r.host = 'github.com'
|
|
1938
1991
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
1939
1992
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
1940
|
-
`.execute(_),await
|
|
1993
|
+
`.execute(_),await M`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function mQ(_){await M`DROP TABLE IF EXISTS thread_repositories`.execute(_),await M`
|
|
1941
1994
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
1942
|
-
`.execute(_)}var ej={"001-initial-schema":Xx,"002-organization-settings":Jx,"003-connection-schema-align":jx,"004-remove-models-binding":Qx,"005-connection-configuration":Wx,"006-add-views-to-settings":Zx,"007-monitoring-logs":Dx,"008-event-bus":Lx,"009-drop-audit-logs":Fx,"010-gateways":Rx,"011-gateway-icon":Yx,"012-gateway-tool-selection-mode":Hx,"013-monitoring-user-agent-gateway":Mx,"014-gateway-resources-prompts":Bx,"015-monitoring-properties":Gx,"016-downstream-token-client-info":fx,"017-downstream-token-remove-userid":yx,"018-drop-gateway-tool-selection-strategy":Ox,"019-remove-gateway-is-default":Sx,"020-enabled-plugins":Ax,"021-threads":Ix,"022-rename-gateway-to-virtual-mcp":nx,"023-optimize-thread-indexes":wx,"024-consolidate-virtual-mcp":Vx,"025-add-monitoring-virtual-mcp-id":kx,"026-restrict-child-connection-delete":px,"027-update-management-mcp-url":qx,"028-update-management-mcp-to-self":ix,"029-add-updated-by-to-connections":tx,"030-member-tags":cx,"031-add-dependency-mode":hx,"032-projects":ox,"033-thread-status":ax,"034-monitoring-dashboards":rx,"035-project-connections":ex,"036-update-registry-url":lx,"037-ai-provider-keys":dx,"038-oauth-pkce-states":sx,"039-automations":bx,"040-replace-next-run-at-with-last-run-at":_u,"041-ai-provider-keys-unique-constraint":xu,"042-rename-mesh-mcp-to-cms-mcp":uu,"043-rename-cms-mcp-to-deco-cms":mu,"044-drop-connections-tools-column":Cu,"045-thread-context-start-message":Nu,"046-remove-object-storage-plugin":Ku,"047-add-next-run-at":Eu,"048-merge-projects-agents":Pu,"049-remove-org-admin-projects":$u,"050-durable-agent-runs":Uu,"051-org-sso":Ju,"052-thread-agent-ids":ju,"053-registry-config":Qu,"054-connection-slug":Zu,"055-spaces":Du,"056-automation-project-scope":Lu,"057-thread-virtual-mcp-id":Fu,"058-trigger-callback-tokens":Ru,"059-kv":Yu,"060-member-index":Hu,"061-downstream-token-connection-index":Mu,"062-private-registry":Bu,"063-event-subscriptions-enabled-boolean":Gu,"064-brand-context":fu,"065-organization-domains":yu,"066-brand-context-structured":Ou,"067-threads-metadata":Su,"068-threads-branch":Au,"069-sandbox-runner-state":Iu,"070-model-categories":nu,"071-default-home-agents":wu,"072-ai-provider-key-preset-id":Vu,"073-backfill-basic-usage-roles":ku,"074-sandbox-runner-state-handle-nonunique":pu,"075-thread-inflight-async-jobs":vu,"076-automations-drop-agent-json":qu,"077-tier-only-model-selection":iu,"078-automation-tool-call-kind":tu,"079-strip-legacy-freestyle-vm-map-entries":cu,"080-async-research-jobs":hu,"081-async-research-jobs-result-content":ou,"082-secrets":au,"083-thread-run-locally":ru,"084-drop-host-sandbox-rows":eu,"085-rename-runner-kind":lu,"086-thread-pins-and-vm-map-rekey":du,"087-fix-vm-map-rekey":su,"088-purge-cli-activate-keys":bu,"089-rename-remote-user-to-desktop":_m,"090-automation-webhook-triggers":xm,"091-organization-domains-allow-multi":um,"092-sandbox-naming-uniformization":mm,"093-backfill-global-search-basic-usage":Cm,"094-org-file-configs":Tm,"095-remove-automation-tool-call-kind":Km,"096-org-file-configs-public-url-base":Em,"097-drop-local-docker-sandbox-state":Pm,"098-thread-message-parts":$m,"099-run-fence":Um,"100-link-transport":Xm,"101-cancel-requested-at":Jm,"102-observational-agent":jm,"103-revert-observational-agent":Qm,"104-agent-sandbox-provider-kind":Zm,"105-org-fs":Dm,"106-automation-tools":Lm,"107-org-fs-public-org":Fm,"108-automation-max-agent-steps":Rm,"109-thread-message-parts-per-message-seq":Ym,"110-backfill-ghs-token-expiry":Hm,"111-org-fs-thread-id":Mm,"112-org-file-configs-credential-type":Bm,"113-thread-failure-reason":Gm,"114-run-acked-seq":fm,"115-thread-projected-seq":ym,"116-org-sites":Om,"117-org-file-configs-site-slug":Sm,"118-organization-domains-multi-verify":Am,"119-organization-join-requests":Im,"120-org-fs-read-public":nm,"121-org-fs-share-password":wm,"122-split-web-research-tier":pm,"123-connection-credential-vault":vm,"124-drop-thread-projected-seq":qm,"125-github-child-single-parent":gm,"126-task-board":tm,"127-task-board-due-date":cm,"128-reports-only":hm,"129-task-board-assigned-by":om,"130-task-board-thread-id":am,"131-task-board-thread-link-cascade":rm,"132-task-board-item-prs":em,"133-dedupe-duplicate-members":lm,"134-drop-task-board-enabled":dm,"135-task-board-item-fk-cascade":sm,"136-task-board-import-idempotency":bm,"137-agent-sandbox-runner-state":_C,"138-agent-sandbox-sessions":xC,"139-organization-billing":uC,"140-seat-change-log":mC,"141-benefits-sync-pending":CC,"142-stripe-event-watermark":NC,"143-armed-report-url":TC,"144-benefits-pending-index":KC,"145-user-model-preferences":EC,"146-organization-main-agent":zC,"147-drop-agent-sandbox-tables":PC,"148-org-flags":$C,"149-task-board-item-sort-order":UC,"150-task-board-activity":XC,"151-task-board-tags":jC,"152-repair-connection-slug":WC,"153-task-board-latest-assistant-part-index":ZC,"154-task-board-qa-activity":LC,"155-task-board-review-claims":FC,"156-task-board-conflict-activity":YC,"157-drop-seat-billing":HC,"158-drop-github-child-single-parent":MC,"159-task-board-comments":BC,"160-task-quota-billing":GC,"161-task-quota-claim-state":yC,"162-claude-subscriptions":OC,"163-task-board-item-dismissed":SC,"164-per-org-task-quota":AC,"165-task-board-pending-review-index":IC,"166-task-board-last-swept-at":nC,"167-task-board-run-retry":wC,"168-org-repo-sync":kC,"169-task-board-merge-failed-activity":vC,"170-task-board-item-repo":qC,"171-jira-integration":gC,"172-task-board-item-key-seq":iC,"173-thread-github-repo-connection-index":tC,"174-thread-message-parts-persisted-at":hC,"175-task-board-sprints":oC,"176-task-board-done-sweep-index":aC,"177-notifications":rC,"178-jira-status-mapping-array":eC,"179-notification-mentioned":dC,"180-task-board-item-type":bC,"181-task-board-item-type-required":_N,"182-task-board-sprints-entities":xN,"183-drop-jira-jql-filter":uN,"184-jira-rescan-after-scope-change":mN,"185-jira-rescan-existing-cards":CN,"186-jira-rescan-pending-flag":TN,"187-task-board-comment-thread":KN,"188-invitation-auto-accept":EN,"189-task-board-column-automations":PN,"190-task-board-review-cycle-started-at":$N,"191-task-board-columns":UN,"192-task-board-verdict-nudge-activity":JN,"193-task-board-status-column-fk":jN,"194-jira-link-sprint":QN,"195-task-board-sprint-activity":ZN,"196-task-board-column-tracker-statuses":DN,"197-task-board-prompts":LN,"198-task-board-external-url":FN,"199-drop-jira-mirror-and-org-columns":RN,"200-jira-run-trigger":YN,"201-organization-notices":HN,"202-redact-base64-thread-parts":BN,"203-task-board-preview-routes":GN,"204-git-provider-accounts-and-repositories":fN,"205-repository-references":yN,"206-repository-consumers":Ux,"207-task-board-prs-repo-idx":$x,"208-github-connect-flows":Px,"209-github-installation-authorization":zx,"210-github-repository-authorization":xx,"211-user-fs-org":_x,"212-coding-agent-mcp-excluded":ux,"213-bitbucket-git-provider":mx,"214-connections-sanitized-id-idx":l_,"215-commerce-discovery-repository":d_,"216-github-cli-auth":b_,"217-experiments":Cx,"218-thread-message-parts-error-idx":Nx,"219-task-board-duplicate-reported-activity":Kx,"220-jira-automation-continue-pr":Ex,"221-remove-private-registry":c_,"222-org-git-credentials":h_,"223-drop-org-main-agent-id":e_,"224-repository-sandbox-image":o_,"225-thread-analytics-indexes":r_},ON=ej;import{getMigrations as GQ}from"better-auth/db";import{sso as fQ}from"@better-auth/sso";import{organization as yQ}from"@decocms/better-auth/plugins";import{admin as OQ,apiKey as SQ,jwt as AQ,magicLink as IQ,mcp as nQ,openAPI as wQ}from"better-auth/plugins";import{emailOTP as VQ}from"better-auth/plugins/email-otp";import{Kysely as LQ,PostgresDialect as mK}from"kysely";import{Pool as CK}from"pg";import{homedir as lj}from"os";var dj=new Set(["all","worker","api"]);function sj(_){let x=(_??"").trim();return dj.has(x)?x:"all"}var bj=new Set(["production","development","test"]);function _Q(_){let x=(_??"").trim();return bj.has(x)?x:"development"}function W(_){return _==="true"||_==="1"}function AN(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function y(_,x,u,N){return AN(_,x,N)??u}function xQ(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let C=N.indexOf("="),T=C>0?N.slice(0,C).trim():"",E=C>0?N.slice(C+1).trim():"";if(!T||!E){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=E}return x}function uQ(_,x,u,N){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(N!==void 0&&C>N)throw Error(`${_} must be at most ${N}`);return C}function SN(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function aT(_){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 mQ(_){return _===void 0||_===""||_==="true"||_==="1"}function z_(_,x){return _||x}function rT(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${lj()}/deco`,N=_.localMode,C=_.nodeEnv||_Q(x.NODE_ENV),T=x.NATS_URL||"nats://localhost:4222",E={nodeEnv:C,port:y("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:z_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:W(x.DATABASE_PG_SSL),databasePoolMax:y("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:y("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:z_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:N,disableRateLimit:W(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:W(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((K)=>K.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((K)=>K.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:AN("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:W(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:xQ(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:uQ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:W(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:y("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:y("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:y("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:W(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:W(x.HOSTING_CONTROL_PLANE_GA),monitorGa:W(x.MONITOR_GA),plansEnabled:W(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:SN(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:W(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:y("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:y("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:SN(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:y("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:mQ(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:AN("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:sj(z_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:W(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:W(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:SN(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:W(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:y("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:z_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:z_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(E.plansEnabled&&!E.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(E.plansEnabled&&!E.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(E.plansEnabled&&!E.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(E.plansEnabled&&Object.keys(E.stripePlanPriceIds).length>0&&!E.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(E.plansEnabled&&Object.keys(E.stripePlanPriceIds).length>1&&!E.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return{settings:E,externalDatabaseUrl:aT(x.DATABASE_URL),externalNatsUrl:aT(T),skipMigrations:_.skipMigrations}}var v_=null;function a(){if(!v_)CQ();return v_}function CQ(){if(v_)return;let _={...process.env},x=rT({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},_);v_=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 PQ,metrics as $Q,propagation as $D,ROOT_CONTEXT as UD,SpanStatusCode as XD,trace as UQ}from"@opentelemetry/api";import{logs as XQ,SeverityNumber as IN}from"@opentelemetry/api-logs";import{OTLPLogExporter as QD}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as JQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as DD}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as FD}from"@opentelemetry/instrumentation-runtime-node";import{context as N4,propagation as T4,SpanKind as K4,SpanStatusCode as E4}from"@opentelemetry/api";var P4=globalThis.fetch;import{ExportResultCode as R4}from"@opentelemetry/core";import{ExportResultCode as q_}from"@opentelemetry/core";import{mkdir as NQ,rename as TQ,writeFile as KQ}from"fs/promises";import{join as g_}from"path";class i_{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:q_.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:q_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:q_.FAILED}});return Promise.resolve({code:q_.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 T=x.get(C.partition);if(!T)T=[],x.set(C.partition,T);T.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,T])=>this.writeNDJSON(T,C).then(()=>C))),N=u.find((C)=>C.status==="rejected");if(N){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let T=_.filter((E)=>!C.has(E.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?g_(this.basePath,x,...N):g_(this.basePath,...N);if(!this.knownDirs.has(C))await NQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let T=`${crypto.randomUUID()}.ndjson`,E=g_(C,`.${T}.tmp`),K=g_(C,T),z=_.join(`
|
|
1995
|
+
`.execute(_)}var CQ={"001-initial-schema":Qx,"002-organization-settings":Zx,"003-connection-schema-align":Dx,"004-remove-models-binding":Wx,"005-connection-configuration":Lx,"006-add-views-to-settings":Fx,"007-monitoring-logs":Rx,"008-event-bus":Yx,"009-drop-audit-logs":Hx,"010-gateways":Mx,"011-gateway-icon":Bx,"012-gateway-tool-selection-mode":Gx,"013-monitoring-user-agent-gateway":yx,"014-gateway-resources-prompts":fx,"015-monitoring-properties":Ox,"016-downstream-token-client-info":Sx,"017-downstream-token-remove-userid":Ax,"018-drop-gateway-tool-selection-strategy":Ix,"019-remove-gateway-is-default":nx,"020-enabled-plugins":wx,"021-threads":Vx,"022-rename-gateway-to-virtual-mcp":kx,"023-optimize-thread-indexes":px,"024-consolidate-virtual-mcp":vx,"025-add-monitoring-virtual-mcp-id":qx,"026-restrict-child-connection-delete":gx,"027-update-management-mcp-url":tx,"028-update-management-mcp-to-self":hx,"029-add-updated-by-to-connections":ox,"030-member-tags":ax,"031-add-dependency-mode":rx,"032-projects":ex,"033-thread-status":lx,"034-monitoring-dashboards":dx,"035-project-connections":sx,"036-update-registry-url":bx,"037-ai-provider-keys":_u,"038-oauth-pkce-states":xu,"039-automations":uu,"040-replace-next-run-at-with-last-run-at":mu,"041-ai-provider-keys-unique-constraint":Cu,"042-rename-mesh-mcp-to-cms-mcp":Nu,"043-rename-cms-mcp-to-deco-cms":Tu,"044-drop-connections-tools-column":Ku,"045-thread-context-start-message":Eu,"046-remove-object-storage-plugin":Pu,"047-add-next-run-at":$u,"048-merge-projects-agents":Xu,"049-remove-org-admin-projects":ju,"050-durable-agent-runs":Ju,"051-org-sso":Zu,"052-thread-agent-ids":Du,"053-registry-config":Wu,"054-connection-slug":Fu,"055-spaces":Ru,"056-automation-project-scope":Yu,"057-thread-virtual-mcp-id":Hu,"058-trigger-callback-tokens":Mu,"059-kv":Bu,"060-member-index":Gu,"061-downstream-token-connection-index":yu,"062-private-registry":fu,"063-event-subscriptions-enabled-boolean":Ou,"064-brand-context":Su,"065-organization-domains":Au,"066-brand-context-structured":Iu,"067-threads-metadata":nu,"068-threads-branch":wu,"069-sandbox-runner-state":Vu,"070-model-categories":ku,"071-default-home-agents":pu,"072-ai-provider-key-preset-id":vu,"073-backfill-basic-usage-roles":qu,"074-sandbox-runner-state-handle-nonunique":gu,"075-thread-inflight-async-jobs":iu,"076-automations-drop-agent-json":tu,"077-tier-only-model-selection":hu,"078-automation-tool-call-kind":ou,"079-strip-legacy-freestyle-vm-map-entries":au,"080-async-research-jobs":ru,"081-async-research-jobs-result-content":eu,"082-secrets":lu,"083-thread-run-locally":du,"084-drop-host-sandbox-rows":su,"085-rename-runner-kind":bu,"086-thread-pins-and-vm-map-rekey":_m,"087-fix-vm-map-rekey":xm,"088-purge-cli-activate-keys":um,"089-rename-remote-user-to-desktop":mm,"090-automation-webhook-triggers":Cm,"091-organization-domains-allow-multi":Nm,"092-sandbox-naming-uniformization":Tm,"093-backfill-global-search-basic-usage":Km,"094-org-file-configs":zm,"095-remove-automation-tool-call-kind":Pm,"096-org-file-configs-public-url-base":$m,"097-drop-local-docker-sandbox-state":Xm,"098-thread-message-parts":jm,"099-run-fence":Jm,"100-link-transport":Qm,"101-cancel-requested-at":Zm,"102-observational-agent":Dm,"103-revert-observational-agent":Wm,"104-agent-sandbox-provider-kind":Fm,"105-org-fs":Rm,"106-automation-tools":Ym,"107-org-fs-public-org":Hm,"108-automation-max-agent-steps":Mm,"109-thread-message-parts-per-message-seq":Bm,"110-backfill-ghs-token-expiry":Gm,"111-org-fs-thread-id":ym,"112-org-file-configs-credential-type":fm,"113-thread-failure-reason":Om,"114-run-acked-seq":Sm,"115-thread-projected-seq":Am,"116-org-sites":Im,"117-org-file-configs-site-slug":nm,"118-organization-domains-multi-verify":wm,"119-organization-join-requests":Vm,"120-org-fs-read-public":km,"121-org-fs-share-password":pm,"122-split-web-research-tier":gm,"123-connection-credential-vault":im,"124-drop-thread-projected-seq":tm,"125-github-child-single-parent":cm,"126-task-board":om,"127-task-board-due-date":am,"128-reports-only":rm,"129-task-board-assigned-by":em,"130-task-board-thread-id":lm,"131-task-board-thread-link-cascade":dm,"132-task-board-item-prs":sm,"133-dedupe-duplicate-members":bm,"134-drop-task-board-enabled":_C,"135-task-board-item-fk-cascade":xC,"136-task-board-import-idempotency":uC,"137-agent-sandbox-runner-state":mC,"138-agent-sandbox-sessions":CC,"139-organization-billing":NC,"140-seat-change-log":TC,"141-benefits-sync-pending":KC,"142-stripe-event-watermark":EC,"143-armed-report-url":zC,"144-benefits-pending-index":PC,"145-user-model-preferences":$C,"146-organization-main-agent":UC,"147-drop-agent-sandbox-tables":XC,"148-org-flags":jC,"149-task-board-item-sort-order":JC,"150-task-board-activity":QC,"151-task-board-tags":DC,"152-repair-connection-slug":LC,"153-task-board-latest-assistant-part-index":FC,"154-task-board-qa-activity":YC,"155-task-board-review-claims":HC,"156-task-board-conflict-activity":BC,"157-drop-seat-billing":GC,"158-drop-github-child-single-parent":yC,"159-task-board-comments":fC,"160-task-quota-billing":OC,"161-task-quota-claim-state":AC,"162-claude-subscriptions":IC,"163-task-board-item-dismissed":nC,"164-per-org-task-quota":wC,"165-task-board-pending-review-index":VC,"166-task-board-last-swept-at":kC,"167-task-board-run-retry":pC,"168-org-repo-sync":qC,"169-task-board-merge-failed-activity":iC,"170-task-board-item-repo":tC,"171-jira-integration":cC,"172-task-board-item-key-seq":hC,"173-thread-github-repo-connection-index":oC,"174-thread-message-parts-persisted-at":rC,"175-task-board-sprints":eC,"176-task-board-done-sweep-index":lC,"177-notifications":dC,"178-jira-status-mapping-array":sC,"179-notification-mentioned":_N,"180-task-board-item-type":uN,"181-task-board-item-type-required":mN,"182-task-board-sprints-entities":CN,"183-drop-jira-jql-filter":NN,"184-jira-rescan-after-scope-change":TN,"185-jira-rescan-existing-cards":KN,"186-jira-rescan-pending-flag":zN,"187-task-board-comment-thread":PN,"188-invitation-auto-accept":$N,"189-task-board-column-automations":XN,"190-task-board-review-cycle-started-at":jN,"191-task-board-columns":JN,"192-task-board-verdict-nudge-activity":ZN,"193-task-board-status-column-fk":DN,"194-jira-link-sprint":WN,"195-task-board-sprint-activity":FN,"196-task-board-column-tracker-statuses":RN,"197-task-board-prompts":YN,"198-task-board-external-url":HN,"199-drop-jira-mirror-and-org-columns":MN,"200-jira-run-trigger":BN,"201-organization-notices":GN,"202-redact-base64-thread-parts":fN,"203-task-board-preview-routes":ON,"204-git-provider-accounts-and-repositories":SN,"205-repository-references":AN,"206-repository-consumers":Jx,"207-task-board-prs-repo-idx":jx,"208-github-connect-flows":Xx,"209-github-installation-authorization":Ux,"210-github-repository-authorization":Cx,"211-user-fs-org":mx,"212-coding-agent-mcp-excluded":Nx,"213-bitbucket-git-provider":Tx,"214-connections-sanitized-id-idx":b_,"215-commerce-discovery-repository":_x,"216-github-cli-auth":ux,"217-experiments":Kx,"218-thread-message-parts-error-idx":Ex,"219-task-board-duplicate-reported-activity":Px,"220-jira-automation-continue-pr":$x,"221-remove-private-registry":h_,"222-org-git-credentials":o_,"223-drop-org-main-agent-id":s_,"224-repository-sandbox-image":a_,"225-thread-analytics-indexes":e_,"226-deco-score-names":d_},IN=CQ;import{getMigrations as VQ}from"better-auth/db";import{sso as kQ}from"@better-auth/sso";import{organization as pQ}from"@decocms/better-auth/plugins";import{admin as vQ,apiKey as qQ,jwt as gQ,magicLink as iQ,mcp as tQ,openAPI as cQ}from"better-auth/plugins";import{emailOTP as hQ}from"better-auth/plugins/email-otp";import{Kysely as fQ,PostgresDialect as EK}from"kysely";import{Pool as zK}from"pg";import{homedir as NQ}from"os";var TQ=new Set(["all","worker","api"]);function KQ(_){let x=(_??"").trim();return TQ.has(x)?x:"all"}var EQ=new Set(["production","development","test"]);function zQ(_){let x=(_??"").trim();return EQ.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function wN(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function O(_,x,u,N){return wN(_,x,N)??u}function PQ(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let C=N.indexOf("="),T=C>0?N.slice(0,C).trim():"",K=C>0?N.slice(C+1).trim():"";if(!T||!K){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=K}return x}function $Q(_,x,u,N){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(N!==void 0&&C>N)throw Error(`${_} must be at most ${N}`);return C}function nN(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function sT(_){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 UQ(_){return _===void 0||_===""||_==="true"||_==="1"}function P_(_,x){return _||x}function bT(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${NQ()}/deco`,N=_.localMode,C=_.nodeEnv||zQ(x.NODE_ENV),T=x.NATS_URL||"nats://localhost:4222",K={nodeEnv:C,port:O("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:P_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:Z(x.DATABASE_PG_SSL),databasePoolMax:O("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:O("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:P_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:N,disableRateLimit:Z(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(x.JIRA_ALLOW_LOCAL_SITE_URL),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:wN("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:Z(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:PQ(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:$Q("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:O("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:O("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:O("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(x.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(x.MONITOR_GA),plansEnabled:Z(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:nN(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:O("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:O("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:nN(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:O("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:UQ(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:wN("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:KQ(P_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:nN(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:O("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:P_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:P_(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(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return{settings:K,externalDatabaseUrl:sT(x.DATABASE_URL),externalNatsUrl:sT(T),skipMigrations:_.skipMigrations}}var q_=null;function r(){if(!q_)XQ();return q_}function XQ(){if(q_)return;let _={...process.env},x=bT({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},_);q_=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 WQ,metrics as LQ,propagation as FW,ROOT_CONTEXT as RW,SpanStatusCode as YW,trace as FQ}from"@opentelemetry/api";import{logs as RQ,SeverityNumber as VN}from"@opentelemetry/api-logs";import{OTLPLogExporter as BW}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as YQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as fW}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as SW}from"@opentelemetry/instrumentation-runtime-node";import{context as JD,propagation as QD,SpanKind as ZD,SpanStatusCode as DD}from"@opentelemetry/api";var LD=globalThis.fetch;import{ExportResultCode as AD}from"@opentelemetry/core";import{ExportResultCode as g_}from"@opentelemetry/core";import{mkdir as jQ,rename as JQ,writeFile as QQ}from"fs/promises";import{join as i_}from"path";class t_{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:g_.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:g_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:g_.FAILED}});return Promise.resolve({code:g_.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 T=x.get(C.partition);if(!T)T=[],x.set(C.partition,T);T.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,T])=>this.writeNDJSON(T,C).then(()=>C))),N=u.find((C)=>C.status==="rejected");if(N){let C=new Set;for(let K of u)if(K.status==="fulfilled")C.add(K.value);let T=_.filter((K)=>!C.has(K.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let K of this.bufferItems)this.bufferBytes+=Buffer.byteLength(K.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?i_(this.basePath,x,...N):i_(this.basePath,...N);if(!this.knownDirs.has(C))await jQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let T=`${crypto.randomUUID()}.ndjson`,K=i_(C,`.${T}.tmp`),E=i_(C,T),z=_.join(`
|
|
1943
1996
|
`)+`
|
|
1944
|
-
`;await
|
|
1997
|
+
`;await QQ(K,z,{mode:384}),await JQ(K,E)}}import{ExportResultCode as kD}from"@opentelemetry/core";import{AggregationTemporality as vD,DataPointType as qD}from"@opentelemetry/sdk-metrics";import{ExportResultCode as oD}from"@opentelemetry/core";var lD=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as qW,LoggerProvider as gW}from"@opentelemetry/sdk-logs";import{detectResources as tW,envDetector as cW,hostDetector as hW,osDetector as oW,processDetector as aW,resourceFromAttributes as rW}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as lW}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as bD}from"@opentelemetry/api-logs";import{NodeSDK as bW}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as x7,SamplingDecision as e}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as CW}from"@opentelemetry/api";var HQ="__d",MQ=WQ("Current request"),BQ=1;var xK=(_)=>{let u=new URL(_.url).searchParams.get(HQ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class uK{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,C,T){let K=_.getValue(MQ);if(!K){if(this.inner)return this.inner.shouldSample(_,x,u,N,C,T);return{decision:e.RECORD_AND_SAMPLED}}let E=xK(K);if(E)return{decision:e.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":E}};if(this.inner){let z=this.inner.shouldSample(_,x,u,N,C,T);if(z.decision===e.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:e.NOT_RECORD}}toString(){return"DebugSampler"}}class mK{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:e.RECORD_AND_SAMPLED};return{decision:e.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var m7=new YQ({preventServerStart:!0}),C7=new uK(new mK(BQ));var _K=FQ.getTracer("studio","1.0.0"),$_=LQ.getMeter("studio","1.0.0"),GQ=RQ.getLogger("studio","1.0.0"),kN=(_,x,u)=>{let N={},C=u,T=u[u.length-1];if(T!==null&&typeof T==="object"&&!Array.isArray(T)&&!(T instanceof Error)&&Object.getPrototypeOf(T)===Object.prototype)N=T,C=u.slice(0,-1);let K=C.map((E)=>{if(E instanceof Error)return`${E.name}: ${E.message}`;if(typeof E==="object")try{return JSON.stringify(E)}catch{return"[Object]"}return String(E)}).join(" ");GQ.emit({severityNumber:_,severityText:x,body:K,attributes:{"log.source":"console",...N}})},pN={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{kN(VN.ERROR,"ERROR",_),pN.error(..._)};console.warn=(..._)=>{kN(VN.WARN,"WARN",_),pN.warn(..._)};console.debug=(..._)=>{kN(VN.DEBUG,"DEBUG",_),pN.debug(..._)};var vN,CK=0,qN=500;function yQ(){if(vN)return;let _=performance.now()+qN;vN=setInterval(()=>{let x=performance.now();CK=Math.max(0,x-_),_=x+qN},qN),vN.unref?.()}function NK(){return yQ(),CK}var OQ=()=>$_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),TK=()=>$_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),KK=400,SQ=100,AQ=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>KK){let N=NK(),C=N>KK/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:c_()}})}if(OQ().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function IQ(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),C=c_(),T=_.idleCount===0&&_.totalCount>=C,K=_.idleCount;return x().then((E)=>{let z=performance.now()-N;if(TK().record(z,{"db.pool.outcome":T?"contended":"available"}),z>SQ)if(T)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:z,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:z,idleAtStart:K,total:_.totalCount,max:C});return E},(E)=>{throw TK().record(performance.now()-N,{"db.pool.outcome":"error"}),E})},_}var PK={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function $K(){try{return r().databasePgSsl}catch{return!1}}function c_(){try{return r().databasePoolMax}catch{return 10}}function nQ(_){let x=IQ(new zK({connectionString:_,max:c_(),ssl:$K(),...PK})),u=new EK({pool:x});return{type:"postgres",db:new fQ({dialect:u,log:AQ(x)}),pool:x}}function X_(){return r().databaseUrl}function UK(_){let x=_||X_();return new EK({pool:new zK({connectionString:x,max:c_(),ssl:$K(),...PK})})}function wQ(_){let x=_||X_();return nQ(x)}async function XK(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===U_)U_=null}var U_=null;function gN(){if(!U_)U_=wQ(X_());return U_}async function jK(_){let u={database:UK(_||X_()),plugins:[pQ({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),vQ(),qQ(),gQ(),cQ(),tQ({loginPage:"/login"}),kQ(),iQ({sendMagicLink:async()=>{}}),hQ({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:C,runMigrations:T}=await VQ(u);if(!N.length&&!C.length)return"up to date";return await T(),`${C.length+N.length} table(s) migrated`}async function QK(_,x){return(await l`
|
|
1945
1998
|
SELECT table_name FROM information_schema.tables
|
|
1946
1999
|
WHERE table_schema='public' AND table_name=${x}
|
|
1947
|
-
`.execute(_)).rows.length>0}async function
|
|
2000
|
+
`.execute(_)).rows.length>0}async function oQ(_){if(await QK(_,"plugin_migrations"))return;await l`
|
|
1948
2001
|
CREATE TABLE plugin_migrations (
|
|
1949
2002
|
plugin_id TEXT NOT NULL,
|
|
1950
2003
|
name TEXT NOT NULL,
|
|
1951
2004
|
timestamp TEXT NOT NULL,
|
|
1952
2005
|
PRIMARY KEY (plugin_id, name)
|
|
1953
2006
|
)
|
|
1954
|
-
`.execute(_)}async function
|
|
2007
|
+
`.execute(_)}async function aQ(_){if(!await QK(_,"kysely_migration"))return;let x=await l`
|
|
1955
2008
|
SELECT name, timestamp FROM kysely_migration
|
|
1956
2009
|
WHERE name LIKE '%/%'
|
|
1957
|
-
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let T=C.indexOf("/");if(T===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let
|
|
2010
|
+
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let T=C.indexOf("/");if(T===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let K=C.substring(0,T),E=C.substring(T+1);try{await l`
|
|
1958
2011
|
INSERT INTO plugin_migrations (plugin_id, name, timestamp)
|
|
1959
|
-
VALUES (${
|
|
1960
|
-
`.execute(_)}catch{let z=await
|
|
2012
|
+
VALUES (${K}, ${E}, ${N})
|
|
2013
|
+
`.execute(_)}catch{let z=await l`
|
|
1961
2014
|
SELECT COUNT(*) as cnt FROM plugin_migrations
|
|
1962
|
-
WHERE plugin_id = ${
|
|
1963
|
-
`.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${
|
|
2015
|
+
WHERE plugin_id = ${K} AND name = ${E}
|
|
2016
|
+
`.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${K}/${E}, keeping in old table`);continue}}await l`
|
|
1964
2017
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
1965
|
-
`.execute(_)}}async function
|
|
2018
|
+
`.execute(_)}}async function rQ(_){await oQ(_),await aQ(_);let x=new JK({db:_,provider:{getMigrations:()=>Promise.resolve(IN)}}),{error:u,results:N}=await x.migrateToLatest(),C=0;if(N?.forEach((T)=>{if(T.status==="Success")C++;else if(T.status==="Error")console.error(`Failed to execute migration "${T.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function eQ(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},C="skipped";if(!N&&!u)C=await jK();let T=u??gN(),K=async()=>{if(!x&&!u)await XK(T).catch((E)=>{console.warn("Warning: Error closing database:",E)})};try{let E=await rQ(T.db);return await K(),{betterAuth:C,kysely:E}}catch(E){throw await K(),E}}async function n7(){let _=gN(),x=new JK({db:_.db,provider:{getMigrations:()=>Promise.resolve(IN)}}),{error:u,results:N}=await x.migrateDown();if(N?.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 eQ(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{rQ as runKyselyMigrations,eQ as migrateToLatest,n7 as migrateDown};
|