decocms 4.361.0 → 4.363.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-BmeOq3AS.js → AlertCircle-Df7Uu4Sr.js} +1 -1
- package/dist/client/assets/{AreaChart-C6eEFGhy.js → AreaChart-BRLjJaJt.js} +1 -1
- package/dist/client/assets/{ArrowLeft-Bn1XqJgj.js → ArrowLeft-Ce4LVTaQ.js} +1 -1
- package/dist/client/assets/{ArrowRight-DdMOOR4H.js → ArrowRight-CuO69upc.js} +1 -1
- package/dist/client/assets/{ArrowUp-hz8egiPT.js → ArrowUp-DmWBbOjK.js} +1 -1
- package/dist/client/assets/{Check-uzDIETxN.js → Check-C1wq38_E.js} +1 -1
- package/dist/client/assets/{CheckCircle-CcKSd4mU.js → CheckCircle-DWvslkKl.js} +1 -1
- package/dist/client/assets/{ChevronRight-Db7AxQs1.js → ChevronRight-B76sbAXC.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-o__KNCsE.js → ChevronSelectorVertical-C4wJ3zDR.js} +1 -1
- package/dist/client/assets/{ChevronUp-CB13ddzE.js → ChevronUp-B0KEDz5f.js} +1 -1
- package/dist/client/assets/{Copy01-CzAUu2fn.js → Copy01-rsN5AnPv.js} +1 -1
- package/dist/client/assets/{CreditCard01-DzLbJEqK.js → CreditCard01-Cqs_Biv7.js} +1 -1
- package/dist/client/assets/{DotsVertical-DGWTuuNI.js → DotsVertical-CBmzJDPB.js} +1 -1
- package/dist/client/assets/{Download01-ceSPCL1X.js → Download01-zZEPtQ0U.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-BQ8ieaNG.js → ErrorBarContext-CQj5vlL8.js} +1 -1
- package/dist/client/assets/{Eye-BhK2syMY.js → Eye-DFgd5114.js} +1 -1
- package/dist/client/assets/{GitBranch01-CNpusjXp.js → GitBranch01-B7iymaqC.js} +1 -1
- package/dist/client/assets/{Globe01-uV-PL1J_.js → Globe01-Df6dZmsR.js} +1 -1
- package/dist/client/assets/{HardDrive-cbNUyUjE.js → HardDrive-CiahcooN.js} +1 -1
- package/dist/client/assets/{Image01-DvrW9irJ.js → Image01-CMpSR3RQ.js} +1 -1
- package/dist/client/assets/{Key01-ChK8YDZG.js → Key01-t3bX5YI3.js} +1 -1
- package/dist/client/assets/{Link01-oU3eIa6L.js → Link01-pX5C3rEv.js} +1 -1
- package/dist/client/assets/{LinkExternal01-pk4F_ssg.js → LinkExternal01-CzRiacvQ.js} +1 -1
- package/dist/client/assets/{Monitor01-BzMXFlLD.js → Monitor01-jzbehxNG.js} +1 -1
- package/dist/client/assets/{Package-B9ZZ40Vp.js → Package-CiAH049d.js} +1 -1
- package/dist/client/assets/{Palette-DQGQvP1D.js → Palette-CmMvG40G.js} +1 -1
- package/dist/client/assets/{Play-3Cy022PD.js → Play-k9_JCuZW.js} +1 -1
- package/dist/client/assets/{Plus-CfgwE-uZ.js → Plus-Bac7Bl-V.js} +1 -1
- package/dist/client/assets/{SearchLg-fnOUw0hG.js → SearchLg-iYej-M-S.js} +1 -1
- package/dist/client/assets/{SearchMd-CuRJP1wv.js → SearchMd-hxPQERkg.js} +1 -1
- package/dist/client/assets/{Sector-CSiB93sJ.js → Sector-CD1ykt0B.js} +1 -1
- package/dist/client/assets/{Settings02-whOOsZbN.js → Settings02-t15FjJbr.js} +1 -1
- package/dist/client/assets/{Share07-D-IS7HR8.js → Share07-CJrTonmW.js} +1 -1
- package/dist/client/assets/{Shield01-CSurVkhX.js → Shield01-DS-tpugO.js} +1 -1
- package/dist/client/assets/{Stars01-08syfSnZ.js → Stars01-ByE0-f1z.js} +1 -1
- package/dist/client/assets/{Sun-CQlDzwIu.js → Sun-vdviKSpi.js} +1 -1
- package/dist/client/assets/{Tool01-DXHQtDpP.js → Tool01-CmpQe3MS.js} +1 -1
- package/dist/client/assets/{Tool02-B3mafjmH.js → Tool02-BAA6OFl0.js} +1 -1
- package/dist/client/assets/{Trash01-CUYU4HXO.js → Trash01-C6vCLvEw.js} +1 -1
- package/dist/client/assets/{TrendUp01-BelP14sh.js → TrendUp01-fHRYAiew.js} +1 -1
- package/dist/client/assets/{Upload01-CdZPdzVk.js → Upload01-lE597uPz.js} +1 -1
- package/dist/client/assets/{User01-D1E2slmm.js → User01-BPodfm7s.js} +1 -1
- package/dist/client/assets/{UserSquare-Z6KyD50R.js → UserSquare-CXhk4rLY.js} +1 -1
- package/dist/client/assets/{Users01-Cw5Q8AZV.js → Users01-Dgbd4CM_.js} +1 -1
- package/dist/client/assets/{Users03-BYjZrgnB.js → Users03-B4Km0_9u.js} +1 -1
- package/dist/client/assets/{XCircle-BwoWYYAV.js → XCircle-BK1898xU.js} +1 -1
- package/dist/client/assets/{XClose-BdgAwwf4.js → XClose-DvenHyNp.js} +1 -1
- package/dist/client/assets/{Zap-CZQe-ZPI.js → Zap-nPZGKdXf.js} +1 -1
- package/dist/client/assets/{ZoomOut-UmQr6PQU.js → ZoomOut-DhJWoynj.js} +1 -1
- package/dist/client/assets/{access-gate-8mmiBqk-.js → access-gate-OgewzCmd.js} +1 -1
- package/dist/client/assets/{agent-icon-D0Nk7aNQ.js → agent-icon-6EllA70W.js} +1 -1
- package/dist/client/assets/{agents-list-DWy_OeHZ.js → agents-list-BY0vT0Wn.js} +1 -1
- package/dist/client/assets/{ai-providers-Dk04fy57.js → ai-providers-vUA1qSht.js} +1 -1
- package/dist/client/assets/{alert-_oBNBmPK.js → alert-D8igu3TO.js} +1 -1
- package/dist/client/assets/{alert-dialog-iWUqpWXo.js → alert-dialog-CFCsKBpN.js} +1 -1
- package/dist/client/assets/{analytics-tab-1t0bM1nu.js → analytics-tab-Do-IciVD.js} +1 -1
- package/dist/client/assets/{api-keys-CElwJwvw.js → api-keys-BIjM5sVA.js} +1 -1
- package/dist/client/assets/api-keys-pPtOUmL_.js +1 -0
- package/dist/client/assets/{app-editor-B7IPPoNW.js → app-editor-CSGywsTY.js} +1 -1
- package/dist/client/assets/{auth-zYX0Lvv1.js → auth-DeD0YpKg.js} +1 -1
- package/dist/client/assets/{auth-catchall-4zyF4qEH.js → auth-catchall-E5QBtigN.js} +1 -1
- package/dist/client/assets/{auth-entry-Be4gnCTV.js → auth-entry-C91RF11H.js} +1 -1
- package/dist/client/assets/{auth-split-layout-TWHk54C2.js → auth-split-layout-BFF9n_Qv.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-BBhqEt9h.js → authenticate-and-persist-oauth-6UYdTwrd.js} +1 -1
- package/dist/client/assets/{automation-list-row-TpPECTDR.js → automation-list-row-Ba1cMA4W.js} +1 -1
- package/dist/client/assets/{automation-runs-DerHz4jN.js → automation-runs-CoIkXCsB.js} +1 -1
- package/dist/client/assets/{automations-BKVtGvk8.js → automations-CJ2EIlox.js} +1 -1
- package/dist/client/assets/{autosend-1MLcQfuC.js → autosend-DI1ZpOT0.js} +1 -1
- package/dist/client/assets/{avatar-cxaN9ZM3.js → avatar-CfO1mReu.js} +1 -1
- package/dist/client/assets/{badge-Dm7tQxku.js → badge-GP_pc1i_.js} +1 -1
- package/dist/client/assets/{block-document-Be1bBQao.js → block-document-B_vPvGLi.js} +1 -1
- package/dist/client/assets/{breadcrumb-KjkfRdeR.js → breadcrumb-CAKgWNOZ.js} +1 -1
- package/dist/client/assets/{buckets-B230hWow.js → buckets-BeX-azQt.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-DGVm96Gy.js → bulk-category-panel-BenSOwl7.js} +1 -1
- package/dist/client/assets/{capability-load-error-CNUrye0R.js → capability-load-error-BoR9RbMs.js} +1 -1
- package/dist/client/assets/{cards-BOXSzdLO.js → cards-m7YgOjsz.js} +1 -1
- package/dist/client/assets/{category-editor-BwwXZQmM.js → category-editor-iK-flfht.js} +1 -1
- package/dist/client/assets/{cdn-tab-CFKTGmnp.js → cdn-tab-Ck8xjhCA.js} +1 -1
- package/dist/client/assets/{chart-C9wuwqV3.js → chart-BanyRqbL.js} +1 -1
- package/dist/client/assets/{chat-context-Dk7SLAFR.js → chat-context-C6UT7ht1.js} +1 -1
- package/dist/client/assets/{checkbox-CBJ64ACN.js → checkbox-ZsR1Bced.js} +1 -1
- package/dist/client/assets/{choose-editor-CRkW1k0_.js → choose-editor-B8v8x2gP.js} +1 -1
- package/dist/client/assets/{cli-auth-success-ByvExU1C.js → cli-auth-success-sB1yOlRg.js} +1 -1
- package/dist/client/assets/{client-icons-Gglvu2qF.js → client-icons-DHLFDmNu.js} +1 -1
- package/dist/client/assets/{collection-detail-DzXRt1_u.js → collection-detail-CZicQp0E.js} +1 -1
- package/dist/client/assets/{collection-display-button-BN3YXwny.js → collection-display-button-BiBiEJPp.js} +1 -1
- package/dist/client/assets/{collection-search-BRdKCgzG.js → collection-search-7NUVJQfN.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-CKeogFXN.js → collection-table-wrapper-D0kCJcbB.js} +1 -1
- package/dist/client/assets/{collection-tabs-DMlAyoNw.js → collection-tabs-MvaIz7gt.js} +1 -1
- package/dist/client/assets/{command-Dyo10bhw.js → command-CF7nzIN2.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-DuIEl_yP.js → commerce-onboarding-DKWZMrBI.js} +1 -1
- package/dist/client/assets/{connect-CvhuyESv.js → connect-G-ytX-wq.js} +1 -1
- package/dist/client/assets/{connect-layout-yT6a8Oy5.js → connect-layout-BLwdQBWt.js} +1 -1
- package/dist/client/assets/{connection-D09wWpGY.js → connection-D885aDuM.js} +1 -1
- package/dist/client/assets/{connection-card-smX8eSVU.js → connection-card-Nc1w-XCq.js} +1 -1
- package/dist/client/assets/{connection-detail-DecSUpE1.js → connection-detail-BboxJXTl.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-DYYIfJr0.js → connection-form-helpers-B4IwDJJQ.js} +1 -1
- package/dist/client/assets/{connections-CmsWBSj7.js → connections-H_c0ER6v.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-DYy_1-PG.js → create-organization-dialog-gO5G25gp.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-Cwf2IAWP.js → decopilot-sse-pool-Bm_3HC4t.js} +1 -1
- package/dist/client/assets/{dialog-Cp0f3DQM.js → dialog-CyDGwxcX.js} +1 -1
- package/dist/client/assets/{domain-settings-B0acsu_8.js → domain-settings-Cx6UibuZ.js} +1 -1
- package/dist/client/assets/{drawer-LgcCDLQC.js → drawer-CqSEztKC.js} +1 -1
- package/dist/client/assets/{dropdown-menu-UkKjGTJw.js → dropdown-menu-CgwRqOnX.js} +1 -1
- package/dist/client/assets/{e2e-tab-_f9ZTXKq.js → e2e-tab-DbA_PByD.js} +1 -1
- package/dist/client/assets/{editor-DjsFhrzK.js → editor-D7S6MtwI.js} +1 -1
- package/dist/client/assets/{empty-state-3Z2PIEPQ.js → empty-state-DfBha5W6.js} +1 -1
- package/dist/client/assets/{empty-state-BLAZsjuu.js → empty-state-SN5mEPhX.js} +1 -1
- package/dist/client/assets/{extract-connection-data-DfGTJpDy.js → extract-connection-data-DkL3Oqhk.js} +1 -1
- package/dist/client/assets/{file-explorer-B0BVY_Am.js → file-explorer-paPAvOUA.js} +1 -1
- package/dist/client/assets/{file-type-icon-1eZQKHJK.js → file-type-icon--TvA6C0i.js} +1 -1
- package/dist/client/assets/{folder-icon-KreDKZXy.js → folder-icon-C46JPU0-.js} +1 -1
- package/dist/client/assets/{form-DmZmKbkN.js → form-BnUN8JhF.js} +1 -1
- package/dist/client/assets/{general-CFmIb51F.js → general-DhiseHhA.js} +1 -1
- package/dist/client/assets/{github-icon-BVay6ABS.js → github-icon-7BmoW2Y2.js} +1 -1
- package/dist/client/assets/{hooks-Dn3mj_Di.js → hooks-Bv30myGB.js} +1 -1
- package/dist/client/assets/{index-TS0VyPtz.js → index-9Wn-1DpE.js} +1 -1
- package/dist/client/assets/{index-WPU5gYHu.js → index-BEyFhSeZ.js} +6 -6
- package/dist/client/assets/{index-B9R5RdAR.js → index-B_j4TgZF.js} +1 -1
- package/dist/client/assets/{index-xxrVo7qV.js → index-C2fs5Fhc.js} +1 -1
- package/dist/client/assets/{index-Ds_0Q84z.js → index-Cf5RfBo5.js} +1 -1
- package/dist/client/assets/{index-QxJjRlHI.js → index-CnV8Y6tV.js} +1 -1
- package/dist/client/assets/{index-CfBgMNkw.js → index-DD_a39Sy.js} +1 -1
- package/dist/client/assets/{index-b18EQzcm.js → index-DHHqS3nT.js} +1 -1
- package/dist/client/assets/{index-Cn9NuUbm.js → index-DR6uwZdc.js} +1 -1
- package/dist/client/assets/{index--WdtIFxz.js → index-I7v7d4v2.js} +1 -1
- package/dist/client/assets/{index-CTqVxmb8.js → index-SmsG_b1w.js} +1 -1
- package/dist/client/assets/{index-redirect-BaCnOmRr.js → index-redirect-C3gwJ6Fh.js} +1 -1
- package/dist/client/assets/{index-BYp8wMZW.js → index-y6Z5iMfg.js} +2 -2
- package/dist/client/assets/{infiniteQueryObserver-B23iPvhj.js → infiniteQueryObserver-CvFtTJPb.js} +1 -1
- package/dist/client/assets/{infra-billing-CSXDF2xz.js → infra-billing-Ch_WWq-u.js} +1 -1
- package/dist/client/assets/{input-D2ZJyNj5.js → input-DRjCNSPN.js} +1 -1
- package/dist/client/assets/{integration-icon-0xkb7vnK.js → integration-icon-CFGOsRgH.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-Dl74cYf5.js → invite-member-dialog-qtYgFNfF.js} +1 -1
- package/dist/client/assets/{label-B-x5azQJ.js → label-DGsSvY2I.js} +1 -1
- package/dist/client/assets/{layout-DuyhKNTe.js → layout-C7iOarOb.js} +1 -1
- package/dist/client/assets/{login-Ce81unwZ.js → login-B4RHcX-Z.js} +1 -1
- package/dist/client/assets/{markdown-Bavd5LlC.js → markdown-Y6owwpHy.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-C3viDU6H.js → mcp-app-renderer-Cy31bAY0.js} +1 -1
- package/dist/client/assets/{mcp-oauth-DYNhoinp.js → mcp-oauth-Bm9ijvfC.js} +1 -1
- package/dist/client/assets/{members-VfYIBC-2.js → members-ypEfbto9.js} +1 -1
- package/dist/client/assets/{monaco-editor-DckO6h4N.js → monaco-editor-D3QSLeam.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-BXoUsV-Y.js → monitoring-stats-row--wR3KC6f.js} +1 -1
- package/dist/client/assets/{multi-select-DV9ts_T4.js → multi-select-kzt94BG4.js} +1 -1
- package/dist/client/assets/{oauth-callback-CcaiU3uj.js → oauth-callback-CsYpPVhX.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-DmN_G_l1.js → oauth-callback-ai-provider-CkroR0wl.js} +1 -1
- package/dist/client/assets/{onboarding-DA4NzKFp.js → onboarding-DN_VeGxV.js} +1 -1
- package/dist/client/assets/{org-layout-1wmZMxxd.js → org-layout-DzsJ720P.js} +1 -1
- package/dist/client/assets/{organization-choice-h3Rkbgdb.js → organization-choice-Bugd-m5W.js} +1 -1
- package/dist/client/assets/{orgs-DUGPioBp.js → orgs-Bv7LuXwC.js} +1 -1
- package/dist/client/assets/{page-seo-form-Czs2Wx7V.js → page-seo-form-DPrfWQ94.js} +1 -1
- package/dist/client/assets/{popover-gqsoX1CE.js → popover-DrJcYe9C.js} +1 -1
- package/dist/client/assets/{post-calendar-BFrzV731.js → post-calendar-DyncB6BE.js} +1 -1
- package/dist/client/assets/{post-editor-cuCzMzYc.js → post-editor-FfaApBeX.js} +1 -1
- package/dist/client/assets/{primitives-BiVu68aI.js → primitives-DZEMS67c.js} +1 -1
- package/dist/client/assets/{profile-CWFbAH4i.js → profile-Bs-irLLH.js} +1 -1
- package/dist/client/assets/{project-app-view-jdsDZvU0.js → project-app-view-C1W5Uv5V.js} +1 -1
- package/dist/client/assets/{project-icon-C-e1e8K6.js → project-icon-DQTfNALl.js} +1 -1
- package/dist/client/assets/{prompts-CHvZCWRl.js → prompts-wjQ-EFKj.js} +1 -1
- package/dist/client/assets/record-editor-DaGE-E4Q.js +1 -0
- package/dist/client/assets/redirect-editor-BgylW9YL.js +1 -0
- package/dist/client/assets/registry-YIdSAHGV.js +2 -0
- package/dist/client/assets/{registry-layout-D027nzLM.js → registry-layout-DHYm94rU.js} +1 -1
- package/dist/client/assets/{reports-DT4X-Lmk.js → reports-D4elpaqK.js} +1 -1
- package/dist/client/assets/{repositories-jm_syVND.js → repositories-3ia_V4sE.js} +1 -1
- package/dist/client/assets/{repository-import-picker-D2aLPb_l.js → repository-import-picker-DN9Nn9yd.js} +1 -1
- package/dist/client/assets/{repository-picker-lcd9Ei5p.js → repository-picker-s01uE4_E.js} +1 -1
- package/dist/client/assets/{require-capability-C2pVU0z7.js → require-capability-BVMwcBeZ.js} +1 -1
- package/dist/client/assets/{required-auth-layout-De9iwHlp.js → required-auth-layout-mSUodrzA.js} +1 -1
- package/dist/client/assets/{reset-password-7k3E3B8d.js → reset-password-B_-cD_PK.js} +1 -1
- package/dist/client/assets/{review-settings-BYIWZjbM.js → review-settings-BN9py8rz.js} +1 -1
- package/dist/client/assets/roles-CGT8NKA4.js +1 -0
- package/dist/client/assets/{schema-Bc3BIeEi.js → schema-BDy_4D7A.js} +1 -1
- package/dist/client/assets/{scroll-area-BnupyhEu.js → scroll-area-C18Y2v3L.js} +1 -1
- package/dist/client/assets/{search-input-o2j9ciC7.js → search-input-L0lrukmF.js} +1 -1
- package/dist/client/assets/{secrets-C1bO3hfP.js → secrets-CdpkfmHa.js} +1 -1
- package/dist/client/assets/{sections-editor-p9DBTJqT.js → sections-editor-BIoyRz1G.js} +1 -1
- package/dist/client/assets/{select-BUC_jKup.js → select-BGnwGqnU.js} +1 -1
- package/dist/client/assets/{select-model-cnFEXZK-.js → select-model-BNDe5FJr.js} +1 -1
- package/dist/client/assets/{self-tool-result-DYT2_ozv.js → self-tool-result-DM7xixxP.js} +1 -1
- package/dist/client/assets/{seo-editor-MRu3Ojh-.js → seo-editor-EIeTDSnb.js} +1 -1
- package/dist/client/assets/settings-layout-CwJp96nZ.js +1 -0
- package/dist/client/assets/{settings-sidebar-CbmtQNpC.js → settings-sidebar-BvIIdmkC.js} +1 -1
- package/dist/client/assets/{shell-controls-D8kWjpbZ.js → shell-controls-nVElTnLJ.js} +1 -1
- package/dist/client/assets/{shell-layout-Ba8uY2f3.js → shell-layout-CTNVA2t4.js} +1 -1
- package/dist/client/assets/{skill-preview-BYwW_FBm.js → skill-preview-BswJw8Eb.js} +1 -1
- package/dist/client/assets/{skills-Z_6sLVBD.js → skills-DXWVIfB4.js} +1 -1
- package/dist/client/assets/{sso-C4nTo6ne.js → sso-CVpMpJ2m.js} +1 -1
- package/dist/client/assets/{store-PvRIFl_n.js → store-BUUS-eER.js} +1 -1
- package/dist/client/assets/store-registry-DxfEOZiI.js +2 -0
- package/dist/client/assets/{switch-m4r4u8Pt.js → switch-CPLM-IZy.js} +1 -1
- package/dist/client/assets/{synced-repos-DPg3G9Aq.js → synced-repos-Bl-1vG4K.js} +1 -1
- package/dist/client/assets/{table-BFMr63Vd.js → table-DSIbUmyY.js} +1 -1
- package/dist/client/assets/{tabs-DxVDg6CF.js → tabs-BVFMEVzk.js} +1 -1
- package/dist/client/assets/{task-board-BTg5hy6i.js → task-board-By8eCqZc.js} +1 -1
- package/dist/client/assets/{task-route-4Eylaelg.js → task-route-B8aecmdq.js} +1 -1
- package/dist/client/assets/{tasks-CJDCWAR4.js → tasks-kFCSziTb.js} +1 -1
- package/dist/client/assets/{textarea-B2DkWlH4.js → textarea-CuF3aDTE.js} +1 -1
- package/dist/client/assets/{thread-intent-BQenPeBA.js → thread-intent-q_RVjRN0.js} +1 -1
- package/dist/client/assets/{thread-route-DxDfpXo3.js → thread-route-jI9qvJe_.js} +1 -1
- package/dist/client/assets/{toggle-group-CLBAK9Xe.js → toggle-group-WfRpP-dB.js} +1 -1
- package/dist/client/assets/{toolbar-C6UOIEjf.js → toolbar-B5cewwJb.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-DEoa5_tL.js → toolbar-icon-button-BtBUZ8nA.js} +1 -1
- package/dist/client/assets/{track-82fegf_m.js → track-BYunSel2.js} +1 -1
- package/dist/client/assets/{types-du6V7R8z.js → types-BB_Up-3A.js} +1 -1
- package/dist/client/assets/{use-ai-providers-ZsSzmcBO.js → use-ai-providers-BMexfNaB.js} +1 -1
- package/dist/client/assets/{use-automations-Dzag4QmK.js → use-automations-BgzAjzua.js} +1 -1
- package/dist/client/assets/{use-autosave-BT0rnwAt.js → use-autosave-D70NA0HD.js} +1 -1
- package/dist/client/assets/{use-connection-B9v9W_jm.js → use-connection-ClORxmw4.js} +1 -1
- package/dist/client/assets/{use-copy-Cf4BFGJg.js → use-copy-DUxpBqXm.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-30RI1tUT.js → use-create-virtual-mcp-DBeldBRq.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-DcAR-5Mv.js → use-date-fns-locale-40K6SzJD.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-DQUuWthA.js → use-debounced-autosave-kf66WQZj.js} +1 -1
- package/dist/client/assets/{use-debounced-value-DExEBwVV.js → use-debounced-value-v41IOreQ.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-VYLFXkkP.js → use-decopilot-events-C0NWoSQc.js} +1 -1
- package/dist/client/assets/{use-delete-connection-CnrCQKm8.js → use-delete-connection-qmqqgsKa.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-D2BxGrd5.js → use-deployment-admin-C7c9x0vv.js} +1 -1
- package/dist/client/assets/{use-destination-route-DHUxEEKb.js → use-destination-route-CY15sZqw.js} +1 -1
- package/dist/client/assets/{use-file-configs-CddWkGjN.js → use-file-configs-Dm3fOdMk.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-Czyi58bA.js → use-infinite-scroll-Bw5rNIGx.js} +1 -1
- package/dist/client/assets/{use-join-requests-CoUVlp5O.js → use-join-requests-DbtrL0Pl.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-QZYaqwIe.js → use-mcp-auth-status-kHe3lJRg.js} +1 -1
- package/dist/client/assets/{use-mcp-client-DvxBdBjP.js → use-mcp-client-Cw1fcLqm.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-CDwSZ76b.js → use-mcp-prompts-CtjkJFfg.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-SJzzd0lS.js → use-mcp-tools-DRBItGTD.js} +1 -1
- package/dist/client/assets/{use-members-CvsSPl1z.js → use-members-C23rfxcZ.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-0s6rebVr.js → use-navigate-to-agent-COVw0ub8.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-F8yC3-bp.js → use-org-auth-client-DvlpnDFO.js} +1 -1
- package/dist/client/assets/{use-org-notice-CuneGFHR.js → use-org-notice-DlsdC1WA.js} +1 -1
- package/dist/client/assets/{use-org-sso-BvyEQ462.js → use-org-sso-xd-5IiLc.js} +1 -1
- package/dist/client/assets/{use-organization-roles-CVZl-uAp.js → use-organization-roles-B3neE_6D.js} +1 -1
- package/dist/client/assets/{use-organization-settings-C2Ci90qZ.js → use-organization-settings-DucmPYOE.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-B5zWuwXG.js → use-panel-navigate-C6Ga2vR8.js} +1 -1
- package/dist/client/assets/{use-registry-connections-Ddc3Y4me.js → use-registry-connections-DBp-MS3e.js} +1 -1
- package/dist/client/assets/{use-secrets-pOxrGVwF.js → use-secrets-PkTonlJ_.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-C58csZ_W.js → use-section-preview-base-B4s2_IK6.js} +1 -1
- package/dist/client/assets/{use-status-sounds-DZ0uyr3n.js → use-status-sounds-C-6LEj0t.js} +1 -1
- package/dist/client/assets/{use-tags-l_0icksK.js → use-tags-BuxETA7b.js} +1 -1
- package/dist/client/assets/{use-view-mode-XtiTh8qk.js → use-view-mode-BGsTNFK8.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-B3EfjSxt.js → use-virtual-mcp-Bnfc4yEo.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-DThUrotQ.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-Dsg0_SX3.js +1 -0
- package/dist/client/assets/{users-B56eVcgP.js → users-CuqlxLsH.js} +1 -1
- package/dist/client/assets/{variant-calendar-DaVcqiG9.js → variant-calendar-BhJlQ5r6.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-CWpvhl6Y.js → view-mode-toggle-BlEO3gFJ.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +764 -663
- package/dist/server/migrate.js +314 -213
- package/dist/server/server.js +420 -420
- package/package.json +1 -1
- package/dist/client/assets/api-keys-BLKHAOmG.js +0 -1
- package/dist/client/assets/record-editor-CUaP91zY.js +0 -1
- package/dist/client/assets/redirect-editor-CCYXhiaK.js +0 -1
- package/dist/client/assets/registry-DgW2I4rc.js +0 -2
- package/dist/client/assets/roles-B6CssVJo.js +0 -1
- package/dist/client/assets/settings-layout-BWjSeFzh.js +0 -1
- package/dist/client/assets/store-registry-DVpQHyB7.js +0 -2
- package/dist/client/assets/useInfiniteQuery-BAPopi96.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CXHkeE1V.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,5 +1,106 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var rN=Object.defineProperty;var eN=(_)=>_;function lN(_,x){this[_]=eN.bind(null,x)}var m=(_,x)=>{for(var u in x)rN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:lN.bind(x,u)})};import{Migrator as oN,sql as r}from"kysely";var v_={};m(v_,{up:()=>dN,down:()=>sN});import{sql as YT}from"kysely";async function dN(_){await YT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function sN(_){await YT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var q_={};m(q_,{up:()=>bN,down:()=>_K});import{sql as D}from"kysely";async function bN(_){await D`
|
|
3
|
+
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
4
|
+
RETURNS jsonb AS $fn$
|
|
5
|
+
BEGIN
|
|
6
|
+
RETURN t::jsonb;
|
|
7
|
+
EXCEPTION WHEN others THEN
|
|
8
|
+
RETURN NULL;
|
|
9
|
+
END;
|
|
10
|
+
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
11
|
+
`.execute(_),await D`
|
|
12
|
+
CREATE OR REPLACE VIEW cd_repo_picks AS
|
|
13
|
+
SELECT
|
|
14
|
+
c.id AS connection_id,
|
|
15
|
+
c.organization_id,
|
|
16
|
+
cd_repo_try_jsonb(c.configuration_state) ->> 'github_repo' AS path
|
|
17
|
+
FROM connections c
|
|
18
|
+
WHERE c.id = c.organization_id || '_commerce-discovery'
|
|
19
|
+
AND cd_repo_try_jsonb(c.configuration_state) ->> 'github_repo'
|
|
20
|
+
~ '^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$'
|
|
21
|
+
`.execute(_),await D`
|
|
22
|
+
INSERT INTO repositories (
|
|
23
|
+
organization_id, account_id, provider, host, path, web_url
|
|
24
|
+
)
|
|
25
|
+
SELECT DISTINCT ON (p.organization_id, lower(p.path))
|
|
26
|
+
p.organization_id, NULL, 'github', 'github.com',
|
|
27
|
+
p.path, 'https://github.com/' || p.path
|
|
28
|
+
FROM cd_repo_picks p
|
|
29
|
+
ORDER BY p.organization_id, lower(p.path)
|
|
30
|
+
ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
|
|
31
|
+
`.execute(_),await D`
|
|
32
|
+
UPDATE connections c
|
|
33
|
+
SET configuration_state = (
|
|
34
|
+
cd_repo_try_jsonb(c.configuration_state) || jsonb_build_object(
|
|
35
|
+
'repository', jsonb_build_object(
|
|
36
|
+
'repository_id', r.id,
|
|
37
|
+
'provider', r.provider,
|
|
38
|
+
'host', r.host,
|
|
39
|
+
'path', r.path,
|
|
40
|
+
'default_branch', r.default_branch,
|
|
41
|
+
'web_url', r.web_url
|
|
42
|
+
)
|
|
43
|
+
)
|
|
44
|
+
)::text
|
|
45
|
+
FROM cd_repo_picks p
|
|
46
|
+
JOIN repositories r
|
|
47
|
+
ON r.organization_id = p.organization_id
|
|
48
|
+
AND r.host = 'github.com'
|
|
49
|
+
AND lower(r.path) = lower(p.path)
|
|
50
|
+
WHERE c.id = p.connection_id
|
|
51
|
+
AND cd_repo_try_jsonb(c.configuration_state) -> 'repository' IS NULL
|
|
52
|
+
`.execute(_),await D`
|
|
53
|
+
UPDATE connections a
|
|
54
|
+
SET
|
|
55
|
+
repository_id = r.id,
|
|
56
|
+
metadata = (
|
|
57
|
+
coalesce(cd_repo_try_jsonb(a.metadata), '{}'::jsonb) || jsonb_build_object(
|
|
58
|
+
'githubRepo',
|
|
59
|
+
coalesce(cd_repo_try_jsonb(a.metadata) -> 'githubRepo', '{}'::jsonb)
|
|
60
|
+
|| jsonb_build_object('repositoryId', r.id)
|
|
61
|
+
)
|
|
62
|
+
)::text
|
|
63
|
+
FROM cd_repo_picks p
|
|
64
|
+
JOIN repositories r
|
|
65
|
+
ON r.organization_id = p.organization_id
|
|
66
|
+
AND r.host = 'github.com'
|
|
67
|
+
AND lower(r.path) = lower(p.path)
|
|
68
|
+
WHERE a.id = 'commerce-discovery_' || p.organization_id
|
|
69
|
+
AND a.organization_id = p.organization_id
|
|
70
|
+
AND a.repository_id IS NULL
|
|
71
|
+
AND lower(
|
|
72
|
+
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,owner}', '')
|
|
73
|
+
|| '/' ||
|
|
74
|
+
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
|
|
75
|
+
) = lower(p.path)
|
|
76
|
+
`.execute(_),await D`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await D`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function _K(_){await D`
|
|
77
|
+
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
78
|
+
RETURNS jsonb AS $fn$
|
|
79
|
+
BEGIN
|
|
80
|
+
RETURN t::jsonb;
|
|
81
|
+
EXCEPTION WHEN others THEN
|
|
82
|
+
RETURN NULL;
|
|
83
|
+
END;
|
|
84
|
+
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
85
|
+
`.execute(_),await D`
|
|
86
|
+
UPDATE connections c
|
|
87
|
+
SET configuration_state =
|
|
88
|
+
(cd_repo_try_jsonb(c.configuration_state) - 'repository')::text
|
|
89
|
+
WHERE c.id = c.organization_id || '_commerce-discovery'
|
|
90
|
+
AND cd_repo_try_jsonb(c.configuration_state) -> 'repository' IS NOT NULL
|
|
91
|
+
`.execute(_),await D`
|
|
92
|
+
UPDATE connections a
|
|
93
|
+
SET
|
|
94
|
+
repository_id = NULL,
|
|
95
|
+
metadata = (
|
|
96
|
+
cd_repo_try_jsonb(a.metadata) || jsonb_build_object(
|
|
97
|
+
'githubRepo',
|
|
98
|
+
(cd_repo_try_jsonb(a.metadata) -> 'githubRepo') - 'repositoryId'
|
|
99
|
+
)
|
|
100
|
+
)::text
|
|
101
|
+
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
102
|
+
AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
|
|
103
|
+
`.execute(_),await D`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var g_={};m(g_,{up:()=>xK,down:()=>uK});import{sql as HT}from"kysely";async function xK(_){await HT`
|
|
3
104
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
4
105
|
SELECT
|
|
5
106
|
'org_user_fs',
|
|
@@ -13,9 +114,9 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
13
114
|
END,
|
|
14
115
|
now()
|
|
15
116
|
ON CONFLICT (id) DO NOTHING
|
|
16
|
-
`.execute(_)}async function
|
|
117
|
+
`.execute(_)}async function uK(_){await HT`
|
|
17
118
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
18
|
-
`.execute(_)}var
|
|
119
|
+
`.execute(_)}var c_={};m(c_,{up:()=>mK,down:()=>CK});async function mK(_){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 h_={};m(h_,{up:()=>TK,down:()=>NK});async function TK(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function NK(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var o_={};m(o_,{up:()=>EK,down:()=>zK});import{sql as e}from"kysely";var KK=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function MT(_,x){for(let{table:u,column:T}of KK){let C=`${u}_${T}_check`,N=x.map((E)=>`'${E}'`).join(", ");await e.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await e.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${T} IN (${N}))`).execute(_)}}async function EK(_){await MT(_,["github","gitlab","bitbucket"])}async function zK(_){await e`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await e`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await e`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await MT(_,["github","gitlab"])}var a_={};m(a_,{up:()=>PK,down:()=>$K});async function PK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function $K(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var r_={};m(r_,{up:()=>JK,down:()=>XK});import{sql as UK}from"kysely";async function JK(_){await UK`
|
|
19
120
|
CREATE TABLE github_connect_flows (
|
|
20
121
|
id text PRIMARY KEY,
|
|
21
122
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -25,7 +126,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
25
126
|
);
|
|
26
127
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
27
128
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
28
|
-
`.execute(_)}async function
|
|
129
|
+
`.execute(_)}async function XK(_){await _.schema.dropTable("github_connect_flows").execute()}var e_={};m(e_,{up:()=>QK,down:()=>jK});async function QK(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function jK(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var l_={};m(l_,{up:()=>WK,down:()=>ZK});import{sql as $_}from"kysely";async function WK(_){await $_`
|
|
29
130
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
30
131
|
DECLARE
|
|
31
132
|
metadata_json jsonb;
|
|
@@ -76,24 +177,24 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
76
177
|
AFTER INSERT OR UPDATE OF metadata ON connections
|
|
77
178
|
FOR EACH ROW EXECUTE FUNCTION adopt_legacy_repository();
|
|
78
179
|
UPDATE connections SET metadata = metadata WHERE slug = 'mcp-github';
|
|
79
|
-
`.execute(_),await
|
|
180
|
+
`.execute(_),await $_`
|
|
80
181
|
UPDATE org_repo_sync s SET repository_id = r.id
|
|
81
182
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
82
183
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
83
184
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
84
|
-
`.execute(_)}async function XK(_){await P_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await P_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var e_={};m(e_,{up:()=>QK,down:()=>jK});import{sql as M}from"kysely";async function QK(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function jK(_){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 l_={};m(l_,{up:()=>WK,down:()=>ZK});import{sql as HT}from"kysely";async function WK(_){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(HT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(HT`CURRENT_TIMESTAMP`)).execute()}async function ZK(_){await _.schema.dropTable("organization_settings").execute()}var d_={};m(d_,{up:()=>LK,down:()=>DK});async function LK(_){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 DK(_){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 s_={};m(s_,{up:()=>FK,down:()=>RK});async function FK(_){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 RK(_){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 b_={};m(b_,{up:()=>YK,down:()=>HK});async function YK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function HK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var _x={};m(_x,{up:()=>nK,down:()=>BK});import{sql as MK}from"kysely";async function nK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",MK`text`).execute()}async function BK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var xx={};m(xx,{up:()=>GK,down:()=>yK});async function GK(_){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 yK(_){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 ux={};m(ux,{up:()=>fK,down:()=>OK});import{sql as e}from"kysely";async function fK(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(e`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(e`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(e`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(e`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(e`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function OK(_){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 mx={};m(mx,{up:()=>SK,down:()=>IK});import{sql as AK}from"kysely";async function SK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function IK(_){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(AK`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 Cx={};m(Cx,{up:()=>wK,down:()=>VK});import{sql as $_}from"kysely";async function wK(_){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($_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo($_`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($_`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 $_`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 VK(_){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 Tx={};m(Tx,{up:()=>kK,down:()=>pK});async function kK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function pK(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Nx={};m(Nx,{up:()=>iK,down:()=>tK});import{sql as U_}from"kysely";async function iK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await U_`
|
|
185
|
+
`.execute(_)}async function ZK(_){await $_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await $_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var d_={};m(d_,{up:()=>LK,down:()=>DK});import{sql as B}from"kysely";async function LK(_){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 DK(_){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 s_={};m(s_,{up:()=>FK,down:()=>RK});import{sql as BT}from"kysely";async function FK(_){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(BT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(BT`CURRENT_TIMESTAMP`)).execute()}async function RK(_){await _.schema.dropTable("organization_settings").execute()}var b_={};m(b_,{up:()=>YK,down:()=>HK});async function YK(_){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 HK(_){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 _x={};m(_x,{up:()=>MK,down:()=>BK});async function MK(_){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 BK(_){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 xx={};m(xx,{up:()=>GK,down:()=>nK});async function GK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function nK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var ux={};m(ux,{up:()=>fK,down:()=>OK});import{sql as yK}from"kysely";async function fK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",yK`text`).execute()}async function OK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var mx={};m(mx,{up:()=>AK,down:()=>SK});async function AK(_){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 SK(_){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 Cx={};m(Cx,{up:()=>IK,down:()=>wK});import{sql as l}from"kysely";async function IK(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(l`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(l`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(l`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(l`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(l`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function wK(_){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 Tx={};m(Tx,{up:()=>kK,down:()=>pK});import{sql as VK}from"kysely";async function kK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function pK(_){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(VK`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Nx={};m(Nx,{up:()=>iK,down:()=>tK});import{sql as U_}from"kysely";async function iK(_){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(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`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(U_`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 U_`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 tK(_){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 Kx={};m(Kx,{up:()=>vK,down:()=>qK});async function vK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function qK(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Ex={};m(Ex,{up:()=>gK,down:()=>cK});import{sql as J_}from"kysely";async function gK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await J_`
|
|
85
186
|
UPDATE gateways
|
|
86
187
|
SET tool_selection_mode = CASE
|
|
87
188
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
88
189
|
ELSE 'inclusion'
|
|
89
190
|
END
|
|
90
|
-
`.execute(_),await
|
|
191
|
+
`.execute(_),await J_`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 cK(_){await J_`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 J_`
|
|
91
192
|
UPDATE gateways
|
|
92
193
|
SET tool_selection_strategy = CASE
|
|
93
194
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
94
195
|
ELSE NULL
|
|
95
196
|
END
|
|
96
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var
|
|
197
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var zx={};m(zx,{up:()=>hK,down:()=>oK});async function hK(_){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 oK(_){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 Px={};m(Px,{up:()=>aK,down:()=>rK});async function aK(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function rK(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var $x={};m($x,{up:()=>eK,down:()=>lK});async function eK(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function lK(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Ux={};m(Ux,{up:()=>dK,down:()=>sK});async function dK(_){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 sK(_){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 Jx={};m(Jx,{up:()=>_E,down:()=>xE});import{sql as bK}from"kysely";async function _E(_){await bK`
|
|
97
198
|
DELETE FROM downstream_tokens
|
|
98
199
|
WHERE id NOT IN (
|
|
99
200
|
SELECT id FROM (
|
|
@@ -103,7 +204,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
103
204
|
) ranked
|
|
104
205
|
WHERE rn = 1
|
|
105
206
|
)
|
|
106
|
-
`.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
|
|
207
|
+
`.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 xE(_){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 Xx={};m(Xx,{up:()=>uE,down:()=>mE});async function uE(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function mE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Qx={};m(Qx,{up:()=>CE,down:()=>TE});import{sql as GT}from"kysely";async function CE(_){await GT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function TE(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await GT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var jx={};m(jx,{up:()=>NE,down:()=>KE});async function NE(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function KE(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Wx={};m(Wx,{up:()=>EE,down:()=>zE});import{sql as X_}from"kysely";async function EE(_){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(X_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(X_`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(X_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(X_`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 zE(_){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 Zx={};m(Zx,{up:()=>PE,down:()=>$E});async function PE(_){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 $E(_){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 Lx={};m(Lx,{up:()=>UE,down:()=>JE});async function UE(_){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 JE(_){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 Dx={};m(Dx,{up:()=>XE,down:()=>QE});import{sql as W}from"kysely";async function XE(_){await W`
|
|
107
208
|
INSERT INTO connections (
|
|
108
209
|
id,
|
|
109
210
|
organization_id,
|
|
@@ -150,7 +251,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
150
251
|
created_at,
|
|
151
252
|
updated_at
|
|
152
253
|
FROM virtual_mcps
|
|
153
|
-
`.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 W`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await W`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 W`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await W`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
|
|
254
|
+
`.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 W`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await W`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 W`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await W`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 QE(_){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(W`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(W`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await W`
|
|
154
255
|
INSERT INTO virtual_mcps (
|
|
155
256
|
id, organization_id, title, description, icon, status,
|
|
156
257
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -160,7 +261,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
160
261
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
161
262
|
FROM connections
|
|
162
263
|
WHERE connection_type = 'VIRTUAL'
|
|
163
|
-
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await W`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var
|
|
264
|
+
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await W`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var Fx={};m(Fx,{up:()=>jE,down:()=>WE});async function jE(_){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 WE(_){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 Rx={};m(Rx,{up:()=>ZE,down:()=>LE});import{sql as G}from"kysely";async function ZE(_){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(G`CURRENT_TIMESTAMP`)).execute(),await G`
|
|
164
265
|
INSERT INTO connection_aggregations_new (
|
|
165
266
|
id, parent_connection_id, child_connection_id,
|
|
166
267
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -169,7 +270,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
169
270
|
id, parent_connection_id, child_connection_id,
|
|
170
271
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
171
272
|
FROM connection_aggregations
|
|
172
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await
|
|
273
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await G`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await G`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await G`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 LE(_){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(G`CURRENT_TIMESTAMP`)).execute(),await G`
|
|
173
274
|
INSERT INTO connection_aggregations_new (
|
|
174
275
|
id, parent_connection_id, child_connection_id,
|
|
175
276
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -178,7 +279,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
178
279
|
id, parent_connection_id, child_connection_id,
|
|
179
280
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
180
281
|
FROM connection_aggregations
|
|
181
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await
|
|
282
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await G`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await G`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await G`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 Hx={};m(Hx,{up:()=>DE,down:()=>FE});import{sql as Yx}from"kysely";async function DE(_){await Yx`
|
|
182
283
|
UPDATE connections
|
|
183
284
|
SET connection_url = connection_url || '/management',
|
|
184
285
|
tools = NULL,
|
|
@@ -186,42 +287,42 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
186
287
|
WHERE connection_url LIKE '%/mcp'
|
|
187
288
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
188
289
|
AND app_name = '@deco/management-mcp'
|
|
189
|
-
`.execute(_),await
|
|
290
|
+
`.execute(_),await Yx`
|
|
190
291
|
UPDATE connections
|
|
191
292
|
SET tools = NULL,
|
|
192
293
|
updated_at = CURRENT_TIMESTAMP
|
|
193
294
|
WHERE app_name = '@deco/management-mcp'
|
|
194
295
|
AND tools IS NOT NULL
|
|
195
|
-
`.execute(_)}async function
|
|
296
|
+
`.execute(_)}async function FE(_){await Yx`
|
|
196
297
|
UPDATE connections
|
|
197
298
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
198
299
|
updated_at = CURRENT_TIMESTAMP
|
|
199
300
|
WHERE connection_url LIKE '%/mcp/management'
|
|
200
301
|
AND app_name = '@deco/management-mcp'
|
|
201
|
-
`.execute(_)}var
|
|
302
|
+
`.execute(_)}var Bx={};m(Bx,{up:()=>RE,down:()=>YE});import{sql as Mx}from"kysely";async function RE(_){await Mx`
|
|
202
303
|
UPDATE connections
|
|
203
304
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
204
305
|
tools = NULL,
|
|
205
306
|
updated_at = CURRENT_TIMESTAMP
|
|
206
307
|
WHERE connection_url LIKE '%/mcp/management'
|
|
207
308
|
AND app_name = '@deco/management-mcp'
|
|
208
|
-
`.execute(_),await
|
|
309
|
+
`.execute(_),await Mx`
|
|
209
310
|
UPDATE connections
|
|
210
311
|
SET tools = NULL,
|
|
211
312
|
updated_at = CURRENT_TIMESTAMP
|
|
212
313
|
WHERE connection_url LIKE '%/mcp/self'
|
|
213
314
|
AND app_name = '@deco/management-mcp'
|
|
214
315
|
AND tools IS NOT NULL
|
|
215
|
-
`.execute(_)}async function
|
|
316
|
+
`.execute(_)}async function YE(_){await Mx`
|
|
216
317
|
UPDATE connections
|
|
217
318
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
218
319
|
updated_at = CURRENT_TIMESTAMP
|
|
219
320
|
WHERE connection_url LIKE '%/mcp/self'
|
|
220
321
|
AND app_name = '@deco/management-mcp'
|
|
221
|
-
`.execute(_)}var
|
|
322
|
+
`.execute(_)}var Gx={};m(Gx,{up:()=>HE,down:()=>ME});async function HE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function ME(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var nx={};m(nx,{up:()=>BE,down:()=>GE});import{sql as nT}from"kysely";async function BE(_){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(nT`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(nT`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 GE(_){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 yx={};m(yx,{up:()=>nE,down:()=>yE});import{sql as d}from"kysely";async function nE(_){await d`
|
|
222
323
|
ALTER TABLE connection_aggregations
|
|
223
324
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
224
|
-
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function
|
|
325
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function yE(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await d`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await d`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).execute(),await d`
|
|
225
326
|
INSERT INTO connection_aggregations_new (
|
|
226
327
|
id, parent_connection_id, child_connection_id,
|
|
227
328
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -230,42 +331,42 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
230
331
|
id, parent_connection_id, child_connection_id,
|
|
231
332
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
232
333
|
FROM connection_aggregations
|
|
233
|
-
`.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
|
|
334
|
+
`.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 fx={};m(fx,{up:()=>IE,down:()=>wE});import{webcrypto as fT}from"crypto";var yT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var fE=128,V,p;function OE(_){if(!V||V.length<_)V=Buffer.allocUnsafe(_*fE),fT.getRandomValues(V),p=0;else if(p+_>V.length)fT.getRandomValues(V),p=0;p+=_}function i(_=21){OE(_|=0);let x="";for(let u=p-_;u<p;u++)x+=yT[V[u]&63];return x}var AE="org-admin",SE="Organization Admin";async function IE(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let T=new Date().toISOString(),C=`proj_${i()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:AE,name:SE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function wE(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var Ox={};m(Ox,{up:()=>VE,down:()=>kE});async function VE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function kE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var Ax={};m(Ax,{up:()=>pE,down:()=>iE});async function pE(_){}async function iE(_){}var Sx={};m(Sx,{up:()=>tE,down:()=>vE});async function tE(_){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 vE(_){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 Ix={};m(Ix,{up:()=>qE,down:()=>gE});import{sql as OT}from"kysely";async function qE(_){await OT`
|
|
234
335
|
UPDATE connections
|
|
235
336
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
236
337
|
tools = NULL,
|
|
237
338
|
updated_at = CURRENT_TIMESTAMP
|
|
238
339
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
239
340
|
AND app_name = 'deco-registry'
|
|
240
|
-
`.execute(_)}async function
|
|
341
|
+
`.execute(_)}async function gE(_){await OT`
|
|
241
342
|
UPDATE connections
|
|
242
343
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
243
344
|
updated_at = CURRENT_TIMESTAMP
|
|
244
345
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
245
346
|
AND app_name = 'deco-registry'
|
|
246
|
-
`.execute(_)}var
|
|
347
|
+
`.execute(_)}var wx={};m(wx,{up:()=>hE,down:()=>oE});import{sql as cE}from"kysely";async function hE(_){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(cE`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 oE(_){await _.schema.dropTable("ai_provider_keys").execute()}var Vx={};m(Vx,{up:()=>rE,down:()=>eE});import{sql as aE}from"kysely";async function rE(_){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(aE`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function eE(_){await _.schema.dropTable("oauth_pkce_states").execute()}var kx={};m(kx,{up:()=>lE,down:()=>dE});import{sql as A}from"kysely";async function lE(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(A`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(A`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(A`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(A`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(A`CURRENT_TIMESTAMP`)).execute(),await A`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await A`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await A`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 dE(_){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 px={};m(px,{up:()=>sE,down:()=>bE});async function sE(_){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 bE(_){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 ix={};m(ix,{up:()=>_z,down:()=>xz});async function _z(_){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 xz(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var tx={};m(tx,{up:()=>uz,down:()=>mz});import{sql as AT}from"kysely";async function uz(_){await AT`
|
|
247
348
|
UPDATE connections
|
|
248
349
|
SET title = 'CMS MCP',
|
|
249
350
|
tools = NULL,
|
|
250
351
|
updated_at = CURRENT_TIMESTAMP
|
|
251
352
|
WHERE app_name = '@deco/management-mcp'
|
|
252
|
-
`.execute(_)}async function
|
|
353
|
+
`.execute(_)}async function mz(_){await AT`
|
|
253
354
|
UPDATE connections
|
|
254
355
|
SET title = 'Mesh MCP',
|
|
255
356
|
updated_at = CURRENT_TIMESTAMP
|
|
256
357
|
WHERE app_name = '@deco/management-mcp'
|
|
257
|
-
`.execute(_)}var
|
|
358
|
+
`.execute(_)}var vx={};m(vx,{up:()=>Cz,down:()=>Tz});import{sql as ST}from"kysely";async function Cz(_){await ST`
|
|
258
359
|
UPDATE connections
|
|
259
360
|
SET title = 'Deco CMS',
|
|
260
361
|
tools = NULL,
|
|
261
362
|
updated_at = CURRENT_TIMESTAMP
|
|
262
363
|
WHERE app_name = '@deco/management-mcp'
|
|
263
|
-
`.execute(_)}async function
|
|
364
|
+
`.execute(_)}async function Tz(_){await ST`
|
|
264
365
|
UPDATE connections
|
|
265
366
|
SET title = 'CMS MCP',
|
|
266
367
|
updated_at = CURRENT_TIMESTAMP
|
|
267
368
|
WHERE app_name = '@deco/management-mcp'
|
|
268
|
-
`.execute(_)}var
|
|
369
|
+
`.execute(_)}var qx={};m(qx,{up:()=>Nz,down:()=>Kz});async function Nz(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function Kz(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var gx={};m(gx,{up:()=>Ez,down:()=>zz});async function Ez(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function zz(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var hx={};m(hx,{up:()=>Pz,down:()=>$z});import{sql as cx}from"kysely";async function Pz(_){await cx`
|
|
269
370
|
UPDATE organization_settings
|
|
270
371
|
SET enabled_plugins = (
|
|
271
372
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -274,7 +375,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
274
375
|
)
|
|
275
376
|
WHERE enabled_plugins IS NOT NULL
|
|
276
377
|
AND enabled_plugins LIKE '%object-storage%'
|
|
277
|
-
`.execute(_),await
|
|
378
|
+
`.execute(_),await cx`
|
|
278
379
|
UPDATE projects
|
|
279
380
|
SET enabled_plugins = (
|
|
280
381
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -283,65 +384,65 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
283
384
|
)
|
|
284
385
|
WHERE enabled_plugins IS NOT NULL
|
|
285
386
|
AND enabled_plugins LIKE '%object-storage%'
|
|
286
|
-
`.execute(_),await
|
|
387
|
+
`.execute(_),await cx`
|
|
287
388
|
DELETE FROM project_plugin_configs
|
|
288
389
|
WHERE plugin_id = 'object-storage'
|
|
289
|
-
`.execute(_)}async function
|
|
390
|
+
`.execute(_)}async function $z(_){}var ox={};m(ox,{up:()=>Uz,down:()=>Jz});import{sql as IT}from"kysely";async function Uz(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await IT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function Jz(_){await IT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var rx={};m(rx,{up:()=>Xz,down:()=>Qz});import{sql as ax}from"kysely";async function Xz(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await ax`
|
|
290
391
|
ALTER TABLE connections
|
|
291
392
|
ADD CONSTRAINT chk_connections_subtype
|
|
292
393
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
293
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
394
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await ax`
|
|
294
395
|
UPDATE connections
|
|
295
396
|
SET subtype = 'agent'
|
|
296
397
|
WHERE connection_type = 'VIRTUAL'
|
|
297
|
-
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(K)=>K.primaryKey()).addColumn("virtual_mcp_id","text",(K)=>K.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(K)=>K.notNull()).addColumn("connection_id","text",(K)=>K.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),T=new Map;for(let K of u)T.set(K.organizationId,K.userId);let C=new Map;for(let K of x){let z=`vir_${
|
|
398
|
+
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(K)=>K.primaryKey()).addColumn("virtual_mcp_id","text",(K)=>K.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(K)=>K.notNull()).addColumn("connection_id","text",(K)=>K.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),T=new Map;for(let K of u)T.set(K.organizationId,K.userId);let C=new Map;for(let K of x){let z=`vir_${i()}`;C.set(K.id,z);let $=K.ui?JSON.parse(K.ui):null,U=JSON.stringify({enabled_plugins:K.enabled_plugins?JSON.parse(K.enabled_plugins):null,ui:$,migrated_from_project:K.id,migrated_project_slug:K.slug}),j=T.get(K.organization_id);if(!j)continue;await _.insertInto("connections").values({id:z,organization_id:K.organization_id,created_by:j,updated_by:null,title:K.name,description:K.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${z}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:K.created_at,updated_at:K.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let K of N){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${i()}`,parent_connection_id:z,child_connection_id:K.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:K.created_at}).onConflict(($)=>$.doNothing()).execute()}let E=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let K of E){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${i()}`,virtual_mcp_id:z,plugin_id:K.plugin_id,connection_id:K.connection_id,settings:K.settings,created_at:K.created_at,updated_at:K.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function Qz(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await ax`
|
|
298
399
|
ALTER TABLE connections
|
|
299
400
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
300
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
401
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var ex={};m(ex,{up:()=>Wz,down:()=>Zz});import{sql as jz}from"kysely";async function Wz(_){await jz`
|
|
301
402
|
DELETE FROM connections
|
|
302
403
|
WHERE connection_type = 'VIRTUAL'
|
|
303
404
|
AND subtype = 'project'
|
|
304
405
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
305
|
-
`.execute(_)}async function
|
|
406
|
+
`.execute(_)}async function Zz(_){}var lx={};m(lx,{up:()=>Dz,down:()=>Fz});import{sql as Lz}from"kysely";async function Dz(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await Lz`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function Fz(_){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 sx={};m(sx,{up:()=>Rz,down:()=>Yz});import{sql as dx}from"kysely";async function Rz(_){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(dx`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(dx`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(dx`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 Yz(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var bx={};m(bx,{up:()=>Hz,down:()=>Mz});async function Hz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function Mz(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var _u={};m(_u,{up:()=>Bz,down:()=>Gz});async function Bz(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function Gz(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var uu={};m(uu,{up:()=>yz,down:()=>fz});import{sql as wT}from"kysely";function xu(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function nz(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return xu(T)}catch{return xu(_.connection_url)}if(_.title)return xu(_.title);return _.id}async function yz(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await wT`
|
|
306
407
|
SELECT id, app_name, connection_url, title FROM connections
|
|
307
|
-
`.execute(_);for(let u of x.rows){let T=
|
|
408
|
+
`.execute(_);for(let u of x.rows){let T=nz(u);await wT`UPDATE connections SET slug = ${T} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function fz(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var mu={};m(mu,{up:()=>Oz,down:()=>Az});import{sql as s}from"kysely";async function Oz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await s`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await s`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function Az(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await s`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await s`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await s`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var Cu={};m(Cu,{up:()=>Sz,down:()=>Iz});async function Sz(_){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 Iz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var Tu={};m(Tu,{up:()=>wz,down:()=>Vz});import{sql as Q_}from"kysely";async function wz(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await Q_`
|
|
308
409
|
UPDATE threads
|
|
309
410
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
310
411
|
WHERE agent_ids IS NOT NULL
|
|
311
412
|
AND agent_ids != '[]'
|
|
312
413
|
AND agent_ids != ''
|
|
313
414
|
AND (agent_ids::jsonb ->> 0) IS NOT NULL
|
|
314
|
-
`.execute(_),await
|
|
415
|
+
`.execute(_),await Q_`
|
|
315
416
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
316
417
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
317
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
418
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function Vz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await Q_`
|
|
318
419
|
UPDATE threads
|
|
319
420
|
SET agent_ids = CASE
|
|
320
421
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
321
422
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
322
423
|
ELSE '[]'
|
|
323
424
|
END
|
|
324
|
-
`.execute(_),await
|
|
425
|
+
`.execute(_),await Q_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Nu={};m(Nu,{up:()=>kz,down:()=>pz});async function kz(_){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 pz(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Ku={};m(Ku,{up:()=>iz,down:()=>tz});async function iz(_){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 tz(_){await _.schema.dropTable("kv").execute()}var Eu={};m(Eu,{up:()=>vz,down:()=>qz});async function vz(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function qz(_){await _.schema.dropIndex("idx_member_user_org").execute()}var zu={};m(zu,{up:()=>gz,down:()=>cz});async function gz(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function cz(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var Pu={};m(Pu,{up:()=>hz,down:()=>oz});import{sql as F}from"kysely";async function hz(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await F`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await F`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function oz(_){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 $u={};m($u,{up:()=>az,down:()=>rz});import{sql as t}from"kysely";async function az(_){await t`
|
|
325
426
|
ALTER TABLE event_subscriptions
|
|
326
427
|
ALTER COLUMN enabled DROP DEFAULT
|
|
327
|
-
`.execute(_),await
|
|
428
|
+
`.execute(_),await t`
|
|
328
429
|
ALTER TABLE event_subscriptions
|
|
329
430
|
ALTER COLUMN enabled TYPE boolean
|
|
330
431
|
USING enabled::boolean
|
|
331
|
-
`.execute(_),await
|
|
432
|
+
`.execute(_),await t`
|
|
332
433
|
ALTER TABLE event_subscriptions
|
|
333
434
|
ALTER COLUMN enabled SET DEFAULT true
|
|
334
|
-
`.execute(_)}async function
|
|
435
|
+
`.execute(_)}async function rz(_){await t`
|
|
335
436
|
ALTER TABLE event_subscriptions
|
|
336
437
|
ALTER COLUMN enabled DROP DEFAULT
|
|
337
|
-
`.execute(_),await
|
|
438
|
+
`.execute(_),await t`
|
|
338
439
|
ALTER TABLE event_subscriptions
|
|
339
440
|
ALTER COLUMN enabled TYPE integer
|
|
340
441
|
USING enabled::integer
|
|
341
|
-
`.execute(_),await
|
|
442
|
+
`.execute(_),await t`
|
|
342
443
|
ALTER TABLE event_subscriptions
|
|
343
444
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
344
|
-
`.execute(_)}var
|
|
445
|
+
`.execute(_)}var Uu={};m(Uu,{up:()=>ez,down:()=>lz});import{sql as VT}from"kysely";async function ez(_){await _.schema.createTable("brand_context").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("domain","text",(x)=>x.notNull()).addColumn("overview","text",(x)=>x.notNull()).addColumn("logo","text").addColumn("favicon","text").addColumn("og_image","text").addColumn("fonts","text").addColumn("colors","text").addColumn("images","text").addColumn("metadata","text").addColumn("archived_at","timestamptz").addColumn("is_default","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(VT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(VT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function lz(_){await _.schema.dropTable("brand_context").execute()}var Ju={};m(Ju,{up:()=>dz,down:()=>sz});import{sql as kT}from"kysely";async function dz(_){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(kT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(kT`now()`)).execute()}async function sz(_){await _.schema.dropTable("organization_domains").execute()}var Xu={};m(Xu,{up:()=>u0,down:()=>m0});import{sql as pT}from"kysely";var j_=new Set(["primary","secondary","accent","background","foreground"]),bz={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function _0(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>j_.has(C))){let C={};for(let[N,E]of Object.entries(u)){if(typeof E!=="string")continue;if(j_.has(N))C[N]=E;else x[N]=E}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let T={};for(let[C,N]of Object.entries(u)){if(typeof N!=="string")continue;if(j_.has(C.toLowerCase()))T[C.toLowerCase()]=N;else x[C]=N}return{structured:Object.keys(T).length>0?JSON.stringify(T):null,extra:x}}if(Array.isArray(_)){let u={};for(let T of _){let C=T,N=C.label?.toLowerCase?.(),E=C.value;if(!N||!E)continue;if(j_.has(N))u[N]=E;else x[N]=E}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function x0(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let T of _){let C=T,N=C.name??C.family??void 0,E=C.role?.toLowerCase?.()??"";if(!N)continue;let K=bz[E];if(K&&!x[K])x[K]=N;else u.push(N)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function u0(_){let x=await pT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let T=!1,C=!1,N=!1,E=u.colors,K=u.fonts,z={};try{z=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=_0($);if(E=U.structured,T=!0,Object.keys(U.extra).length>0)z.extraColors=U.extra,N=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))K=x0($),C=!0}catch{}if(T||C||N){let $=N?JSON.stringify(z):u.metadata;await pT`
|
|
345
446
|
UPDATE brand_context
|
|
346
447
|
SET
|
|
347
448
|
colors = ${E},
|
|
@@ -349,40 +450,40 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
349
450
|
metadata = ${$},
|
|
350
451
|
updated_at = NOW()
|
|
351
452
|
WHERE id = ${u.id}
|
|
352
|
-
`.execute(_)}}}async function
|
|
453
|
+
`.execute(_)}}}async function m0(_){}var Qu={};m(Qu,{up:()=>T0,down:()=>N0});import{sql as C0}from"kysely";async function T0(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(C0`'{}'::jsonb`)).execute()}async function N0(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var ju={};m(ju,{up:()=>K0,down:()=>E0});async function K0(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function E0(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Wu={};m(Wu,{up:()=>z0,down:()=>P0});async function z0(_){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 P0(_){await _.schema.dropTable("sandbox_runner_state").execute()}var Zu={};m(Zu,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function U0(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Lu={};m(Lu,{up:()=>J0,down:()=>X0});async function J0(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function X0(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Du={};m(Du,{up:()=>Q0,down:()=>j0});async function Q0(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function j0(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Fu={};m(Fu,{up:()=>Z0,down:()=>L0});import{sql as iT}from"kysely";var W0=["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 Z0(_){let x=await iT`
|
|
353
454
|
SELECT id, permission FROM "organizationRole"
|
|
354
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...
|
|
455
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...W0]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await iT`
|
|
355
456
|
UPDATE "organizationRole"
|
|
356
457
|
SET permission = ${K}
|
|
357
458
|
WHERE id = ${u.id}
|
|
358
|
-
`.execute(_)}}async function
|
|
459
|
+
`.execute(_)}}async function L0(_){}var Ru={};m(Ru,{up:()=>D0,down:()=>F0});async function D0(_){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 F0(_){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 Yu={};m(Yu,{up:()=>R0,down:()=>Y0});async function R0(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function Y0(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var Hu={};m(Hu,{up:()=>H0,down:()=>M0});import{sql as b}from"kysely";async function H0(_){await b`
|
|
359
460
|
UPDATE automations
|
|
360
461
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
361
462
|
WHERE virtual_mcp_id IS NULL
|
|
362
|
-
`.execute(_),await
|
|
463
|
+
`.execute(_),await b`
|
|
363
464
|
ALTER TABLE automations
|
|
364
465
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
365
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
466
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function M0(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await b`
|
|
366
467
|
UPDATE automations
|
|
367
468
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
368
|
-
`.execute(_),await
|
|
469
|
+
`.execute(_),await b`
|
|
369
470
|
ALTER TABLE automations
|
|
370
471
|
ALTER COLUMN agent SET NOT NULL
|
|
371
|
-
`.execute(_),await
|
|
472
|
+
`.execute(_),await b`
|
|
372
473
|
ALTER TABLE automations
|
|
373
474
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
374
|
-
`.execute(_)}var
|
|
475
|
+
`.execute(_)}var Bu={};m(Bu,{up:()=>y0,reshapeSimpleMode:()=>tT,inferAutomationTier:()=>vT,down:()=>f0,__testing:()=>n0});var B0={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},G0=["fast","smart","thinking","image","web_research"];function Mu(_){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 G0.some((T)=>(T in u))}function tT(_){if(Mu(_))return _;let x=_,u=x?.enabled===!0,T=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return B0;return{tiers:{fast:T(x?.chat?.fast),smart:T(x?.chat?.smart),thinking:T(x?.chat?.thinking),image:T(x?.image),web_research:T(x?.webResearch)}}}function vT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function qT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var n0={isAlreadyReshapedSimpleMode:Mu,isAlreadyReshapedAutomationModels:qT};async function y0(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let T of x){let C=T.simple_mode?typeof T.simple_mode==="string"?JSON.parse(T.simple_mode):T.simple_mode:null;if(Mu(C))continue;let N=tT(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(N)}).where("organizationId","=",T.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let T of u){let C;try{C=typeof T.models==="string"?JSON.parse(T.models):T.models}catch{C={}}if(qT(C))continue;let N=vT(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:N})}).where("id","=",T.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${T.id} previously used an image-only model; mapped to "${N}"`)}}async function f0(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Gu={};m(Gu,{up:()=>O0,down:()=>A0});import{sql as f}from"kysely";async function O0(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await f`
|
|
375
476
|
ALTER TABLE automations
|
|
376
477
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
377
|
-
`.execute(_),await
|
|
478
|
+
`.execute(_),await f`
|
|
378
479
|
ALTER TABLE automations
|
|
379
480
|
ADD CONSTRAINT chk_automation_kind
|
|
380
481
|
CHECK (kind IN ('agent', 'tool_call'))
|
|
381
|
-
`.execute(_),await
|
|
482
|
+
`.execute(_),await f`
|
|
382
483
|
ALTER TABLE automations
|
|
383
484
|
ADD CONSTRAINT chk_automation_agent_fields
|
|
384
485
|
CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
|
|
385
|
-
`.execute(_),await
|
|
486
|
+
`.execute(_),await f`
|
|
386
487
|
ALTER TABLE automations
|
|
387
488
|
ADD CONSTRAINT chk_automation_tool_call_fields
|
|
388
489
|
CHECK (
|
|
@@ -393,47 +494,47 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
393
494
|
AND tool_input IS NOT NULL
|
|
394
495
|
)
|
|
395
496
|
)
|
|
396
|
-
`.execute(_)}async function
|
|
497
|
+
`.execute(_)}async function A0(_){await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await f`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await f`
|
|
397
498
|
ALTER TABLE automations
|
|
398
499
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
399
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var nu={};m(nu,{up:()=>
|
|
500
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var nu={};m(nu,{up:()=>I0,down:()=>w0});import{sql as gT}from"kysely";var S0=new Set(["host","docker","agent-sandbox"]);async function I0(_){let x=await gT`
|
|
400
501
|
SELECT id, metadata FROM "connections"
|
|
401
502
|
WHERE connection_type = 'VIRTUAL'
|
|
402
503
|
AND metadata IS NOT NULL
|
|
403
504
|
AND metadata LIKE '%vmMap%'
|
|
404
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.vmMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}let
|
|
505
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.vmMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}let M=X.runnerKind;if(M!==void 0&&!S0.has(M)){N=!0;continue}U[j]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.vmMap=E;let K=JSON.stringify(T);await gT`
|
|
405
506
|
UPDATE "connections"
|
|
406
507
|
SET metadata = ${K}
|
|
407
508
|
WHERE id = ${u.id}
|
|
408
|
-
`.execute(_)}}async function
|
|
509
|
+
`.execute(_)}}async function w0(_){}var yu={};m(yu,{up:()=>V0,down:()=>k0});import{sql as __}from"kysely";async function V0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(__`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(__`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await __`
|
|
409
510
|
CREATE INDEX async_research_jobs_active_idx
|
|
410
511
|
ON async_research_jobs (status, last_polled_at)
|
|
411
512
|
WHERE status IN ('pending', 'polling')
|
|
412
|
-
`.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await
|
|
513
|
+
`.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await __`
|
|
413
514
|
ALTER TABLE async_research_jobs
|
|
414
515
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
415
516
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
416
|
-
`.execute(_)}async function
|
|
517
|
+
`.execute(_)}async function k0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var fu={};m(fu,{up:()=>p0,down:()=>i0});async function p0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function i0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var Ou={};m(Ou,{up:()=>t0,down:()=>v0});import{sql as v}from"kysely";async function t0(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(v`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(v`CURRENT_TIMESTAMP`)).execute(),await v`
|
|
417
518
|
ALTER TABLE secrets
|
|
418
519
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
419
|
-
`.execute(_),await
|
|
520
|
+
`.execute(_),await v`
|
|
420
521
|
ALTER TABLE secrets
|
|
421
522
|
ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
|
|
422
523
|
(scope = 'user' AND user_id IS NOT NULL)
|
|
423
524
|
OR (scope = 'organization' AND user_id IS NULL)
|
|
424
525
|
)
|
|
425
|
-
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await
|
|
526
|
+
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await v`
|
|
426
527
|
CREATE UNIQUE INDEX idx_secrets_user_name
|
|
427
528
|
ON secrets (organization_id, user_id, lower(name))
|
|
428
529
|
WHERE scope = 'user'
|
|
429
|
-
`.execute(_),await
|
|
530
|
+
`.execute(_),await v`
|
|
430
531
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
431
532
|
ON secrets (organization_id, lower(name))
|
|
432
533
|
WHERE scope = 'organization'
|
|
433
|
-
`.execute(_)}async function
|
|
534
|
+
`.execute(_)}async function v0(_){await _.schema.dropTable("secrets").execute()}var Au={};m(Au,{up:()=>q0,down:()=>g0});async function q0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function g0(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var Su={};m(Su,{up:()=>h0,down:()=>o0});import{sql as c0}from"kysely";async function h0(_){await c0`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function o0(_){}var Iu={};m(Iu,{up:()=>a0,down:()=>r0});import{sql as W_}from"kysely";async function a0(_){await W_`
|
|
434
535
|
ALTER TABLE sandbox_runner_state
|
|
435
536
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
436
|
-
`.execute(_),await
|
|
537
|
+
`.execute(_),await W_`
|
|
437
538
|
DO $$ BEGIN
|
|
438
539
|
UPDATE virtualmcps v
|
|
439
540
|
SET metadata = jsonb_set(
|
|
@@ -468,10 +569,10 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
468
569
|
EXCEPTION WHEN undefined_table THEN
|
|
469
570
|
NULL;
|
|
470
571
|
END; $$
|
|
471
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
572
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function r0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await W_`
|
|
472
573
|
ALTER TABLE sandbox_runner_state
|
|
473
574
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
474
|
-
`.execute(_),await
|
|
575
|
+
`.execute(_),await W_`
|
|
475
576
|
DO $$ BEGIN
|
|
476
577
|
UPDATE virtualmcps v
|
|
477
578
|
SET metadata = jsonb_set(
|
|
@@ -506,7 +607,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
506
607
|
EXCEPTION WHEN undefined_table THEN
|
|
507
608
|
NULL;
|
|
508
609
|
END; $$
|
|
509
|
-
`.execute(_)}var
|
|
610
|
+
`.execute(_)}var wu={};m(wu,{up:()=>e0,down:()=>l0});import{sql as cT}from"kysely";async function e0(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await cT`
|
|
510
611
|
DO $$ BEGIN
|
|
511
612
|
UPDATE virtualmcps v
|
|
512
613
|
SET metadata = jsonb_set(
|
|
@@ -545,7 +646,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
545
646
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
546
647
|
NULL;
|
|
547
648
|
END; $$
|
|
548
|
-
`.execute(_)}async function
|
|
649
|
+
`.execute(_)}async function l0(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await cT`
|
|
549
650
|
DO $$ BEGIN
|
|
550
651
|
UPDATE virtualmcps v
|
|
551
652
|
SET metadata = jsonb_set(
|
|
@@ -578,7 +679,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
578
679
|
EXCEPTION WHEN undefined_table THEN
|
|
579
680
|
NULL;
|
|
580
681
|
END; $$
|
|
581
|
-
`.execute(_)}var
|
|
682
|
+
`.execute(_)}var Vu={};m(Vu,{up:()=>d0,down:()=>s0});import{sql as hT}from"kysely";async function d0(_){await hT`
|
|
582
683
|
UPDATE connections c
|
|
583
684
|
SET metadata = (
|
|
584
685
|
jsonb_set(
|
|
@@ -622,7 +723,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
622
723
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
623
724
|
WHERE entry ? 'vmId'
|
|
624
725
|
);
|
|
625
|
-
`.execute(_),await
|
|
726
|
+
`.execute(_),await hT`
|
|
626
727
|
UPDATE connections c
|
|
627
728
|
SET metadata = (
|
|
628
729
|
jsonb_set(
|
|
@@ -676,14 +777,14 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
676
777
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
677
778
|
WHERE inner_entry ? 'runnerKind'
|
|
678
779
|
);
|
|
679
|
-
`.execute(_)}async function
|
|
780
|
+
`.execute(_)}async function s0(_){}var ku={};m(ku,{up:()=>_P,down:()=>xP});import{sql as b0}from"kysely";async function _P(_){await b0`
|
|
680
781
|
DELETE FROM ai_provider_keys
|
|
681
782
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
682
|
-
`.execute(_)}async function
|
|
783
|
+
`.execute(_)}async function xP(_){}var pu={};m(pu,{up:()=>uP,down:()=>mP});import{sql as Z_}from"kysely";async function uP(_){await Z_`
|
|
683
784
|
UPDATE sandbox_runner_state
|
|
684
785
|
SET sandbox_provider_kind = 'desktop'
|
|
685
786
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
686
|
-
`.execute(_),await
|
|
787
|
+
`.execute(_),await Z_`
|
|
687
788
|
UPDATE connections c
|
|
688
789
|
SET metadata = (
|
|
689
790
|
jsonb_set(
|
|
@@ -726,7 +827,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
726
827
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
727
828
|
WHERE kind_key = 'remote-user'
|
|
728
829
|
);
|
|
729
|
-
`.execute(_),await
|
|
830
|
+
`.execute(_),await Z_`
|
|
730
831
|
UPDATE connections c
|
|
731
832
|
SET metadata = (
|
|
732
833
|
jsonb_set(
|
|
@@ -773,17 +874,17 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
773
874
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
774
875
|
WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
|
|
775
876
|
);
|
|
776
|
-
`.execute(_),await
|
|
877
|
+
`.execute(_),await Z_`
|
|
777
878
|
UPDATE threads
|
|
778
879
|
SET sandbox_provider_kind = 'desktop'
|
|
779
880
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
780
|
-
`.execute(_)}async function
|
|
881
|
+
`.execute(_)}async function mP(_){}var iu={};m(iu,{up:()=>CP,down:()=>TP});import{sql as x_}from"kysely";async function CP(_){await x_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await x_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function TP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await x_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await x_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await x_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var tu={};m(tu,{up:()=>NP,down:()=>KP});import{sql as oT}from"kysely";async function NP(_){await oT`
|
|
781
882
|
ALTER TABLE organization_domains
|
|
782
883
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
783
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function
|
|
884
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function KP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await oT`
|
|
784
885
|
ALTER TABLE organization_domains
|
|
785
886
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
786
|
-
`.execute(_)}var
|
|
887
|
+
`.execute(_)}var vu={};m(vu,{up:()=>EP,down:()=>zP});import{sql as L_}from"kysely";async function EP(_){await L_`
|
|
787
888
|
UPDATE sandbox_runner_state
|
|
788
889
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
789
890
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -793,7 +894,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
793
894
|
ELSE sandbox_provider_kind
|
|
794
895
|
END
|
|
795
896
|
WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
|
|
796
|
-
`.execute(_),await
|
|
897
|
+
`.execute(_),await L_`
|
|
797
898
|
UPDATE connections c
|
|
798
899
|
SET metadata = (
|
|
799
900
|
(c.metadata::jsonb - 'vmMap')
|
|
@@ -802,7 +903,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
802
903
|
WHERE c.connection_type = 'VIRTUAL'
|
|
803
904
|
AND c.metadata IS NOT NULL
|
|
804
905
|
AND c.metadata::jsonb ? 'vmMap'
|
|
805
|
-
`.execute(_),await
|
|
906
|
+
`.execute(_),await L_`
|
|
806
907
|
UPDATE connections c
|
|
807
908
|
SET metadata = (
|
|
808
909
|
jsonb_set(
|
|
@@ -863,7 +964,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
863
964
|
WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
|
|
864
965
|
OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
|
|
865
966
|
);
|
|
866
|
-
`.execute(_),await
|
|
967
|
+
`.execute(_),await L_`
|
|
867
968
|
UPDATE connections c
|
|
868
969
|
SET metadata = REPLACE(
|
|
869
970
|
REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
|
|
@@ -872,30 +973,30 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
872
973
|
WHERE c.connection_type = 'VIRTUAL'
|
|
873
974
|
AND c.metadata IS NOT NULL
|
|
874
975
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
875
|
-
`.execute(_)}async function
|
|
976
|
+
`.execute(_)}async function zP(_){}var qu={};m(qu,{up:()=>$P,down:()=>UP});import{sql as aT}from"kysely";var PP=["GLOBAL_SEARCH"];async function $P(_){let x=await aT`
|
|
876
977
|
SELECT id, permission FROM "organizationRole"
|
|
877
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...
|
|
978
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...PP]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await aT`
|
|
878
979
|
UPDATE "organizationRole"
|
|
879
980
|
SET permission = ${K}
|
|
880
981
|
WHERE id = ${u.id}
|
|
881
|
-
`.execute(_)}}async function
|
|
982
|
+
`.execute(_)}}async function UP(_){}var cu={};m(cu,{up:()=>JP,down:()=>XP});import{sql as gu}from"kysely";async function JP(_){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(gu`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(gu`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await gu`
|
|
882
983
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
883
984
|
ON org_file_configs (organization_id, lower(name))
|
|
884
|
-
`.execute(_)}async function
|
|
985
|
+
`.execute(_)}async function XP(_){await _.schema.dropTable("org_file_configs").execute()}var hu={};m(hu,{up:()=>QP,down:()=>jP});import{sql as O}from"kysely";async function QP(_){await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await O`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await O`
|
|
885
986
|
ALTER TABLE automations
|
|
886
987
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
887
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function
|
|
988
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function jP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await O`
|
|
888
989
|
ALTER TABLE automations
|
|
889
990
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
890
|
-
`.execute(_),await
|
|
991
|
+
`.execute(_),await O`
|
|
891
992
|
ALTER TABLE automations
|
|
892
993
|
ADD CONSTRAINT chk_automation_kind
|
|
893
994
|
CHECK (kind IN ('agent', 'tool_call'))
|
|
894
|
-
`.execute(_),await
|
|
995
|
+
`.execute(_),await O`
|
|
895
996
|
ALTER TABLE automations
|
|
896
997
|
ADD CONSTRAINT chk_automation_agent_fields
|
|
897
998
|
CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
|
|
898
|
-
`.execute(_),await
|
|
999
|
+
`.execute(_),await O`
|
|
899
1000
|
ALTER TABLE automations
|
|
900
1001
|
ADD CONSTRAINT chk_automation_tool_call_fields
|
|
901
1002
|
CHECK (
|
|
@@ -906,91 +1007,91 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
906
1007
|
AND tool_input IS NOT NULL
|
|
907
1008
|
)
|
|
908
1009
|
)
|
|
909
|
-
`.execute(_)}var
|
|
1010
|
+
`.execute(_)}var ou={};m(ou,{up:()=>WP,down:()=>ZP});async function WP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function ZP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var ru={};m(ru,{up:()=>LP,down:()=>DP});import{sql as au}from"kysely";var D_="local-docker";async function LP(_){await au`delete from sandbox_runner_state where sandbox_provider_kind = ${D_}`.execute(_);let x=await au`
|
|
910
1011
|
SELECT id, metadata FROM "connections"
|
|
911
1012
|
WHERE connection_type = 'VIRTUAL'
|
|
912
1013
|
AND metadata IS NOT NULL
|
|
913
|
-
AND metadata LIKE ${"%"+
|
|
914
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}if(
|
|
1014
|
+
AND metadata LIKE ${"%"+D_+"%"}
|
|
1015
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}if(D_ in X){N=!0;let M={...X};if(delete M[D_],Object.keys(M).length>0)U[j]=M}else U[j]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.sandboxMap=E;let K=JSON.stringify(T);await au`
|
|
915
1016
|
UPDATE "connections"
|
|
916
1017
|
SET metadata = ${K}
|
|
917
1018
|
WHERE id = ${u.id}
|
|
918
|
-
`.execute(_)}}async function
|
|
1019
|
+
`.execute(_)}}async function DP(_){}var eu={};m(eu,{up:()=>FP,down:()=>RP});import{sql as F_}from"kysely";async function FP(_){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 F_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await F_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await F_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await F_`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 RP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var lu={};m(lu,{up:()=>YP,down:()=>HP});async function YP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function HP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var du={};m(du,{up:()=>MP,down:()=>BP});async function MP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function BP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var su={};m(su,{up:()=>GP,down:()=>nP});async function GP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function nP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var bu={};m(bu,{up:()=>yP,down:()=>fP});async function yP(_){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 fP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var _m={};m(_m,{up:()=>OP,down:()=>AP});async function OP(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function AP(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var um={};m(um,{up:()=>IP,down:()=>wP});import{sql as n}from"kysely";var R="cluster",Y="agent-sandbox";function q(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function xm(_,x,u){if(!q(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function R_(_){if(!q(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==R&&_.sandboxProviderKind!==Y&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!q(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function SP(_,x,u){if(!q(_))return null;let T=!1,C={};for(let[N,E]of Object.entries(_)){if(!q(E)){C[N]=E;continue}let K={};for(let[z,$]of Object.entries(E)){if(!q($)){K[z]=$;continue}let U={};for(let[j,X]of Object.entries($)){if(j===x){if(T=!0,!(u in $))U[u]=xm(X,x,u);else if(!R_($[u])&&R_(X))U[u]=xm(X,x,u);continue}let M=xm(X,x,u);if(M!==X)T=!0;if(j===u&&j in U&&R_(U[j])&&!R_(M))continue;U[j]=M}K[z]=U}C[N]=K}return{sandboxMap:C,changed:T}}async function rT(_,x,u){let T=await n`
|
|
919
1020
|
SELECT id, metadata FROM connections
|
|
920
1021
|
WHERE connection_type = 'VIRTUAL'
|
|
921
1022
|
AND metadata IS NOT NULL
|
|
922
1023
|
AND metadata LIKE ${"%"+x+"%"}
|
|
923
|
-
`.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=
|
|
1024
|
+
`.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=SP(N.sandboxMap,x,u);if(!E?.changed)continue;N.sandboxMap=E.sandboxMap,await n`
|
|
924
1025
|
UPDATE connections
|
|
925
1026
|
SET metadata = ${JSON.stringify(N)}
|
|
926
1027
|
WHERE id = ${C.id}
|
|
927
|
-
`.execute(_)}}async function
|
|
1028
|
+
`.execute(_)}}async function IP(_){await n`
|
|
928
1029
|
UPDATE threads
|
|
929
|
-
SET sandbox_provider_kind = ${
|
|
930
|
-
WHERE sandbox_provider_kind = ${
|
|
931
|
-
`.execute(_),await
|
|
1030
|
+
SET sandbox_provider_kind = ${Y}
|
|
1031
|
+
WHERE sandbox_provider_kind = ${R}
|
|
1032
|
+
`.execute(_),await n`
|
|
932
1033
|
UPDATE sandbox_runner_state canonical
|
|
933
1034
|
SET handle = legacy.handle,
|
|
934
1035
|
state = legacy.state,
|
|
935
1036
|
updated_at = legacy.updated_at
|
|
936
1037
|
FROM sandbox_runner_state legacy
|
|
937
|
-
WHERE canonical.sandbox_provider_kind = ${
|
|
938
|
-
AND legacy.sandbox_provider_kind = ${
|
|
1038
|
+
WHERE canonical.sandbox_provider_kind = ${Y}
|
|
1039
|
+
AND legacy.sandbox_provider_kind = ${R}
|
|
939
1040
|
AND canonical.user_id = legacy.user_id
|
|
940
1041
|
AND canonical.project_ref = legacy.project_ref
|
|
941
1042
|
AND legacy.updated_at > canonical.updated_at
|
|
942
|
-
`.execute(_),await
|
|
1043
|
+
`.execute(_),await n`
|
|
943
1044
|
DELETE FROM sandbox_runner_state legacy
|
|
944
|
-
WHERE legacy.sandbox_provider_kind = ${
|
|
1045
|
+
WHERE legacy.sandbox_provider_kind = ${R}
|
|
945
1046
|
AND EXISTS (
|
|
946
1047
|
SELECT 1
|
|
947
1048
|
FROM sandbox_runner_state canonical
|
|
948
1049
|
WHERE canonical.user_id = legacy.user_id
|
|
949
1050
|
AND canonical.project_ref = legacy.project_ref
|
|
950
|
-
AND canonical.sandbox_provider_kind = ${
|
|
1051
|
+
AND canonical.sandbox_provider_kind = ${Y}
|
|
951
1052
|
)
|
|
952
|
-
`.execute(_),await
|
|
1053
|
+
`.execute(_),await n`
|
|
953
1054
|
UPDATE sandbox_runner_state
|
|
954
|
-
SET sandbox_provider_kind = ${
|
|
955
|
-
WHERE sandbox_provider_kind = ${F}
|
|
956
|
-
`.execute(_),await oT(_,F,R)}async function OP(_){await B`
|
|
957
|
-
UPDATE threads
|
|
958
|
-
SET sandbox_provider_kind = ${F}
|
|
1055
|
+
SET sandbox_provider_kind = ${Y}
|
|
959
1056
|
WHERE sandbox_provider_kind = ${R}
|
|
960
|
-
`.execute(_),await
|
|
1057
|
+
`.execute(_),await rT(_,R,Y)}async function wP(_){await n`
|
|
1058
|
+
UPDATE threads
|
|
1059
|
+
SET sandbox_provider_kind = ${R}
|
|
1060
|
+
WHERE sandbox_provider_kind = ${Y}
|
|
1061
|
+
`.execute(_),await n`
|
|
961
1062
|
UPDATE sandbox_runner_state legacy
|
|
962
1063
|
SET handle = canonical.handle,
|
|
963
1064
|
state = canonical.state,
|
|
964
1065
|
updated_at = canonical.updated_at
|
|
965
1066
|
FROM sandbox_runner_state canonical
|
|
966
|
-
WHERE legacy.sandbox_provider_kind = ${
|
|
967
|
-
AND canonical.sandbox_provider_kind = ${
|
|
1067
|
+
WHERE legacy.sandbox_provider_kind = ${R}
|
|
1068
|
+
AND canonical.sandbox_provider_kind = ${Y}
|
|
968
1069
|
AND legacy.user_id = canonical.user_id
|
|
969
1070
|
AND legacy.project_ref = canonical.project_ref
|
|
970
1071
|
AND canonical.updated_at > legacy.updated_at
|
|
971
|
-
`.execute(_),await
|
|
1072
|
+
`.execute(_),await n`
|
|
972
1073
|
DELETE FROM sandbox_runner_state canonical
|
|
973
|
-
WHERE canonical.sandbox_provider_kind = ${
|
|
1074
|
+
WHERE canonical.sandbox_provider_kind = ${Y}
|
|
974
1075
|
AND EXISTS (
|
|
975
1076
|
SELECT 1
|
|
976
1077
|
FROM sandbox_runner_state legacy
|
|
977
1078
|
WHERE legacy.user_id = canonical.user_id
|
|
978
1079
|
AND legacy.project_ref = canonical.project_ref
|
|
979
|
-
AND legacy.sandbox_provider_kind = ${
|
|
1080
|
+
AND legacy.sandbox_provider_kind = ${R}
|
|
980
1081
|
)
|
|
981
|
-
`.execute(_),await
|
|
1082
|
+
`.execute(_),await n`
|
|
982
1083
|
UPDATE sandbox_runner_state
|
|
983
|
-
SET sandbox_provider_kind = ${
|
|
984
|
-
WHERE sandbox_provider_kind = ${
|
|
985
|
-
`.execute(_),await
|
|
1084
|
+
SET sandbox_provider_kind = ${R}
|
|
1085
|
+
WHERE sandbox_provider_kind = ${Y}
|
|
1086
|
+
`.execute(_),await rT(_,Y,R)}var mm={};m(mm,{up:()=>VP,down:()=>kP});import{sql as S}from"kysely";async function VP(_){await S`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(S`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(S`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).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 S`
|
|
986
1087
|
CREATE INDEX idx_org_fs_entry_parent
|
|
987
1088
|
ON org_fs_entry (organization_id, volume, parent)
|
|
988
1089
|
WHERE deleted_at IS NULL
|
|
989
|
-
`.execute(_),await
|
|
1090
|
+
`.execute(_),await S`
|
|
990
1091
|
CREATE INDEX idx_org_fs_entry_usage
|
|
991
1092
|
ON org_fs_entry (organization_id, volume, size)
|
|
992
1093
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
993
|
-
`.execute(_)}async function
|
|
1094
|
+
`.execute(_)}async function kP(_){await _.schema.dropTable("org_fs_entry").execute(),await S`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var Cm={};m(Cm,{up:()=>pP,down:()=>iP});async function pP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function iP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var Tm={};m(Tm,{up:()=>tP,down:()=>vP});import{sql as eT}from"kysely";async function tP(_){await eT`
|
|
994
1095
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
995
1096
|
SELECT
|
|
996
1097
|
'org_orgfs_public_skills',
|
|
@@ -1004,13 +1105,13 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1004
1105
|
END,
|
|
1005
1106
|
now()
|
|
1006
1107
|
ON CONFLICT (id) DO NOTHING
|
|
1007
|
-
`.execute(_)}async function
|
|
1108
|
+
`.execute(_)}async function vP(_){await eT`
|
|
1008
1109
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1009
|
-
`.execute(_)}var
|
|
1110
|
+
`.execute(_)}var Nm={};m(Nm,{up:()=>qP,down:()=>gP});async function qP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function gP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Km={};m(Km,{up:()=>cP,down:()=>hP});import{sql as lT}from"kysely";async function cP(_){await lT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function hP(_){await lT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Em={};m(Em,{up:()=>aP,down:()=>rP});import{sql as oP}from"kysely";async function aP(_){await oP`
|
|
1010
1111
|
UPDATE downstream_tokens
|
|
1011
1112
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1012
1113
|
WHERE "expiresAt" IS NULL
|
|
1013
|
-
`.execute(_)}async function
|
|
1114
|
+
`.execute(_)}async function rP(_){}var zm={};m(zm,{up:()=>eP,down:()=>lP});async function eP(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function lP(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var Pm={};m(Pm,{up:()=>dP,down:()=>sP});async function dP(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function sP(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var $m={};m($m,{up:()=>bP,down:()=>_$});async function bP(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function _$(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Um={};m(Um,{up:()=>x$,down:()=>u$});async function x$(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function u$(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Jm={};m(Jm,{up:()=>m$,down:()=>C$});async function m$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function C$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Xm={};m(Xm,{up:()=>T$,down:()=>N$});import{sql as dT}from"kysely";async function T$(_){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(dT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(dT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function N$(_){await _.schema.dropTable("org_sites").execute()}var Qm={};m(Qm,{up:()=>K$,down:()=>E$});async function K$(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function E$(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var jm={};m(jm,{up:()=>z$,down:()=>P$});import{sql as Z}from"kysely";async function z$(_){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 Z`
|
|
1014
1115
|
UPDATE organization_domains
|
|
1015
1116
|
SET
|
|
1016
1117
|
id = gen_random_uuid()::text,
|
|
@@ -1019,18 +1120,18 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1019
1120
|
verification_method = 'email',
|
|
1020
1121
|
verified_at = created_at
|
|
1021
1122
|
WHERE id IS NULL
|
|
1022
|
-
`.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await Z`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await Z`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
|
|
1123
|
+
`.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await Z`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await Z`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 P$(_){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 Z`
|
|
1023
1124
|
UPDATE organization_domains
|
|
1024
1125
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
1025
|
-
`.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`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
|
|
1126
|
+
`.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`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 Wm={};m(Wm,{up:()=>$$,down:()=>U$});import{sql as Y_}from"kysely";async function $$(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(Y_`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(Y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).execute(),await Y_`
|
|
1026
1127
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1027
1128
|
ON organization_join_requests (organization_id, user_id)
|
|
1028
1129
|
WHERE status = 'pending'
|
|
1029
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function
|
|
1130
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function U$(_){await _.schema.dropTable("organization_join_requests").execute()}var Zm={};m(Zm,{up:()=>J$,down:()=>X$});async function J$(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function X$(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Lm={};m(Lm,{up:()=>Q$,down:()=>j$});async function Q$(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function j$(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Rm={};m(Rm,{up:()=>L$,splitWebResearchTier:()=>Fm,down:()=>D$,__testing:()=>Z$});function W$(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Dm(_){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 Fm(_){if(!_||Dm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,N=null,E=null;if(u)if(W$(u.modelId))E=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:E}}}var Z$={splitWebResearchTier:Fm,isAlreadySplit:Dm};async function L$(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let T=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(Dm(T))continue;let C=Fm(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function D$(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Ym={};m(Ym,{up:()=>F$,down:()=>R$});import{sql as u_}from"kysely";async function F$(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(u_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(u_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await u_`
|
|
1030
1131
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1031
1132
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1032
1133
|
WHERE revoked_at IS NULL
|
|
1033
|
-
`.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(
|
|
1134
|
+
`.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(u_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(u_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function R$(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var Hm={};m(Hm,{up:()=>Y$,down:()=>H$});async function Y$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function H$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var Mm={};m(Mm,{up:()=>M$,down:()=>B$});import{sql as k}from"kysely";async function M$(_){await k`
|
|
1034
1135
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1035
1136
|
RETURNS jsonb AS $fn$
|
|
1036
1137
|
BEGIN
|
|
@@ -1039,7 +1140,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1039
1140
|
RETURN NULL;
|
|
1040
1141
|
END;
|
|
1041
1142
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
1042
|
-
`.execute(_),await
|
|
1143
|
+
`.execute(_),await k`
|
|
1043
1144
|
DELETE FROM connection_aggregations a
|
|
1044
1145
|
USING (
|
|
1045
1146
|
SELECT
|
|
@@ -1063,7 +1164,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1063
1164
|
WHERE jsonb_typeof(try_parse_jsonb(child.metadata) -> 'repoScope') = 'object'
|
|
1064
1165
|
) ranked
|
|
1065
1166
|
WHERE a.id = ranked.id AND ranked.rn > 1;
|
|
1066
|
-
`.execute(_),await
|
|
1167
|
+
`.execute(_),await k`
|
|
1067
1168
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1068
1169
|
RETURNS trigger AS $fn$
|
|
1069
1170
|
BEGIN
|
|
@@ -1084,12 +1185,12 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1084
1185
|
RETURN NEW;
|
|
1085
1186
|
END;
|
|
1086
1187
|
$fn$ LANGUAGE plpgsql;
|
|
1087
|
-
`.execute(_),await
|
|
1188
|
+
`.execute(_),await k`
|
|
1088
1189
|
CREATE TRIGGER trg_repo_github_child_single_parent
|
|
1089
1190
|
BEFORE INSERT ON connection_aggregations
|
|
1090
1191
|
FOR EACH ROW
|
|
1091
1192
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1092
|
-
`.execute(_)}async function
|
|
1193
|
+
`.execute(_)}async function B$(_){await k`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await k`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await k`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Gm={};m(Gm,{up:()=>G$,down:()=>n$});import{sql as Bm}from"kysely";async function G$(_){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(Bm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Bm`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(Bm`false`)).execute()}async function n$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var nm={};m(nm,{up:()=>y$,down:()=>f$});async function y$(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function f$(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var ym={};m(ym,{up:()=>O$,down:()=>A$});async function O$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function A$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var fm={};m(fm,{up:()=>S$,down:()=>I$});async function S$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function I$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var Om={};m(Om,{up:()=>V$,down:()=>k$});import{sql as w$}from"kysely";async function V$(_){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(w$`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 k$(_){await _.schema.dropTable("task_board_item_threads").execute()}var Am={};m(Am,{up:()=>p$,down:()=>i$});async function p$(_){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 i$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var Sm={};m(Sm,{up:()=>v$,down:()=>q$});import{sql as t$}from"kysely";async function v$(_){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(t$`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 q$(_){await _.schema.dropTable("task_board_item_prs").execute()}var Im={};m(Im,{up:()=>c$,down:()=>h$});import{sql as g$}from"kysely";async function c$(_){await g$`
|
|
1093
1194
|
DELETE FROM member
|
|
1094
1195
|
WHERE id IN (
|
|
1095
1196
|
SELECT id FROM (
|
|
@@ -1108,38 +1209,38 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1108
1209
|
) ranked
|
|
1109
1210
|
WHERE ranked.rn > 1
|
|
1110
1211
|
)
|
|
1111
|
-
`.execute(_)}async function
|
|
1212
|
+
`.execute(_)}async function h$(_){}var wm={};m(wm,{up:()=>o$,down:()=>a$});async function o$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function a$(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var Vm={};m(Vm,{up:()=>r$,down:()=>e$});async function r$(_){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 e$(_){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 km={};m(km,{up:()=>d$,down:()=>s$});import{sql as l$}from"kysely";async function d$(_){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(l$`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 s$(_){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 pm={};m(pm,{up:()=>_U,down:()=>xU});import{sql as b$}from"kysely";async function _U(_){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(b$`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 xU(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var im={};m(im,{up:()=>uU,down:()=>mU});import{sql as H_}from"kysely";async function uU(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(H_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(H_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",H_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",H_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function mU(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var tm={};m(tm,{up:()=>CU,down:()=>TU});import{sql as M_}from"kysely";async function CU(_){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(M_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(M_`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(M_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await M_`
|
|
1112
1213
|
insert into organization_billing (organization_id, legacy)
|
|
1113
1214
|
select id, true from organization
|
|
1114
1215
|
on conflict (organization_id) do nothing
|
|
1115
|
-
`.execute(_)}async function
|
|
1216
|
+
`.execute(_)}async function TU(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var vm={};m(vm,{up:()=>NU,down:()=>KU});import{sql as sT}from"kysely";async function NU(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(sT`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(sT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function KU(_){await _.schema.dropTable("seat_change_log").execute()}var qm={};m(qm,{up:()=>EU,down:()=>zU});async function EU(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function zU(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var gm={};m(gm,{up:()=>PU,down:()=>$U});import{sql as bT}from"kysely";async function PU(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await bT`
|
|
1116
1217
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1117
1218
|
on organization_billing (stripe_subscription_id)
|
|
1118
1219
|
where stripe_subscription_id is not null
|
|
1119
|
-
`.execute(_)}async function
|
|
1220
|
+
`.execute(_)}async function $U(_){await bT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var cm={};m(cm,{up:()=>UU,down:()=>JU});async function UU(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function JU(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var hm={};m(hm,{up:()=>XU,down:()=>QU});import{sql as _N}from"kysely";async function XU(_){await _N`
|
|
1120
1221
|
create index idx_org_billing_benefits_pending
|
|
1121
1222
|
on organization_billing (updated_at)
|
|
1122
1223
|
where benefits_reference_id is not null
|
|
1123
|
-
`.execute(_)}async function
|
|
1224
|
+
`.execute(_)}async function QU(_){await _N`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var om={};m(om,{up:()=>jU,down:()=>WU});import{sql as xN}from"kysely";async function jU(_){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(xN`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(xN`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 WU(_){await _.schema.dropTable("user_model_preferences").execute()}var am={};m(am,{up:()=>ZU,down:()=>LU});async function ZU(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function LU(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var rm={};m(rm,{up:()=>DU,down:()=>FU});async function DU(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function FU(_){}var em={};m(em,{up:()=>RU,down:()=>YU});import{sql as uN}from"kysely";async function RU(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await uN`
|
|
1124
1225
|
UPDATE organization_settings
|
|
1125
1226
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1126
1227
|
WHERE reports_only IS NOT NULL
|
|
1127
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1228
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function YU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await uN`
|
|
1128
1229
|
UPDATE organization_settings
|
|
1129
1230
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1130
1231
|
WHERE flags ? 'reports_only'
|
|
1131
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1232
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var lm={};m(lm,{up:()=>MU,down:()=>BU});import{sql as HU}from"kysely";async function MU(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await HU`
|
|
1132
1233
|
update task_board_items
|
|
1133
1234
|
set sort_order = -extract(epoch from created_at)
|
|
1134
|
-
`.execute(_)}async function
|
|
1235
|
+
`.execute(_)}async function BU(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var dm={};m(dm,{up:()=>GU,down:()=>nU,ACTIONS:()=>mN});import{sql as B_}from"kysely";var mN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function GU(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(B_`now()`)).addCheckConstraint("chk_task_board_activity_action",B_`action IN (${B_.join(mN.map((x)=>B_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function nU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var bm={};m(bm,{up:()=>yU,down:()=>fU,ACTIONS:()=>sm});import{sql as m_}from"kysely";var sm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function yU(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(m_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await CN(_,sm)}async function fU(_){await CN(_,sm.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 CN(_,x){await m_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await m_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var xC={};m(xC,{up:()=>AU,down:()=>SU});import{sql as TN}from"kysely";function _C(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function OU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return _C(T)}catch{return _C(_.connection_url)}if(_.title)return _C(_.title);return _.id}async function AU(_){let x=await TN`
|
|
1135
1236
|
SELECT id, app_name, connection_url, title, slug
|
|
1136
1237
|
FROM connections
|
|
1137
1238
|
WHERE connection_type != 'VIRTUAL'
|
|
1138
|
-
`.execute(_),u=0;for(let T of x.rows){let C=
|
|
1239
|
+
`.execute(_),u=0;for(let T of x.rows){let C=OU(T);if(C===T.slug)continue;await TN`UPDATE connections SET slug = ${C} WHERE id = ${T.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function SU(){}var uC={};m(uC,{up:()=>wU,down:()=>VU});import{sql as IU}from"kysely";async function wU(_){await IU`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 VU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var CC={};m(CC,{up:()=>pU,down:()=>iU,ACTIONS:()=>mC});import{sql as G_}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"],kU=new Set(["review_requested","review_approved","review_changes_requested"]);async function pU(_){await NN(_,mC)}async function iU(_){await NN(_,mC.filter((x)=>!kU.has(x)))}async function NN(_,x){await G_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await G_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${G_.join(x.map((u)=>G_.lit(u)))}))`.execute(_)}var TC={};m(TC,{up:()=>vU,down:()=>qU});import{sql as tU}from"kysely";async function vU(_){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(tU`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 qU(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var KC={};m(KC,{up:()=>cU,down:()=>hU,ACTIONS:()=>NC});import{sql as n_}from"kysely";var NC=["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"],gU=new Set(["merge_conflict_resolution"]);async function cU(_){await KN(_,NC)}async function hU(_){await KN(_,NC.filter((x)=>!gU.has(x)))}async function KN(_,x){await n_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await n_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${n_.join(x.map((u)=>n_.lit(u)))}))`.execute(_)}var EC={};m(EC,{up:()=>oU,down:()=>aU});import{sql as C_}from"kysely";async function oU(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await C_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function aU(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await C_`
|
|
1139
1240
|
create index idx_org_billing_benefits_pending
|
|
1140
1241
|
on organization_billing (updated_at)
|
|
1141
1242
|
where benefits_reference_id is not null
|
|
1142
|
-
`.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(
|
|
1243
|
+
`.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(C_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(C_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(C_`now()`)).execute()}var zC={};m(zC,{up:()=>rU,down:()=>eU});import{sql as y_}from"kysely";async function rU(_){await y_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await y_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function eU(_){await y_`
|
|
1143
1244
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1144
1245
|
RETURNS trigger AS $fn$
|
|
1145
1246
|
BEGIN
|
|
@@ -1160,40 +1261,40 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1160
1261
|
RETURN NEW;
|
|
1161
1262
|
END;
|
|
1162
1263
|
$fn$ LANGUAGE plpgsql;
|
|
1163
|
-
`.execute(_),await
|
|
1264
|
+
`.execute(_),await y_`
|
|
1164
1265
|
CREATE TRIGGER trg_repo_github_child_single_parent
|
|
1165
1266
|
BEFORE INSERT ON connection_aggregations
|
|
1166
1267
|
FOR EACH ROW
|
|
1167
1268
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1168
|
-
`.execute(_)}var
|
|
1269
|
+
`.execute(_)}var PC={};m(PC,{up:()=>lU,down:()=>dU});import{sql as EN}from"kysely";async function lU(_){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(EN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(EN`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function dU(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var $C={};m($C,{up:()=>sU,down:()=>bU});import{sql as zN}from"kysely";async function sU(_){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(zN`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(zN`now()`)).execute()}async function bU(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var JC={};m(JC,{up:()=>_J,down:()=>xJ});import{sql as UC}from"kysely";async function _J(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(UC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await UC`
|
|
1169
1270
|
create index idx_task_quota_claims_org_period_live
|
|
1170
1271
|
on task_quota_claims (organization_id, period_key)
|
|
1171
1272
|
where state <> 'released'
|
|
1172
|
-
`.execute(_)}async function
|
|
1273
|
+
`.execute(_)}async function xJ(_){await UC`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 XC={};m(XC,{up:()=>uJ,down:()=>mJ});async function uJ(_){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 mJ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var QC={};m(QC,{up:()=>CJ,down:()=>TJ});async function CJ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function TJ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var jC={};m(jC,{up:()=>NJ,down:()=>KJ});import{sql as PN}from"kysely";async function NJ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(PN`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(PN`monthly_task_executions > 0`)).execute()}async function KJ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var WC={};m(WC,{up:()=>zJ,down:()=>PJ});import{sql as EJ}from"kysely";async function zJ(_){await EJ`
|
|
1173
1274
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1174
1275
|
ON task_board_items (updated_at, id)
|
|
1175
1276
|
WHERE status = 'in_review'
|
|
1176
1277
|
AND assignee_id = 'super-agent'
|
|
1177
1278
|
AND dismissed_at IS NULL
|
|
1178
|
-
`.execute(_)}async function
|
|
1279
|
+
`.execute(_)}async function PJ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var ZC={};m(ZC,{up:()=>$J,down:()=>UJ});import{sql as $N}from"kysely";async function $J(_){await $N`
|
|
1179
1280
|
ALTER TABLE task_board_items
|
|
1180
1281
|
ADD COLUMN last_swept_at timestamptz
|
|
1181
|
-
`.execute(_)}async function
|
|
1282
|
+
`.execute(_)}async function UJ(_){await $N`
|
|
1182
1283
|
ALTER TABLE task_board_items
|
|
1183
1284
|
DROP COLUMN last_swept_at
|
|
1184
|
-
`.execute(_)}var
|
|
1285
|
+
`.execute(_)}var LC={};m(LC,{up:()=>JJ,down:()=>XJ});import{sql as f_}from"kysely";async function JJ(_){await f_`
|
|
1185
1286
|
ALTER TABLE task_board_items
|
|
1186
1287
|
ADD COLUMN retry_at timestamptz,
|
|
1187
1288
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
1188
|
-
`.execute(_),await
|
|
1289
|
+
`.execute(_),await f_`
|
|
1189
1290
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1190
1291
|
ON task_board_items (retry_at)
|
|
1191
1292
|
WHERE retry_at IS NOT NULL
|
|
1192
|
-
`.execute(_)}async function
|
|
1293
|
+
`.execute(_)}async function XJ(_){await f_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await f_`
|
|
1193
1294
|
ALTER TABLE task_board_items
|
|
1194
1295
|
DROP COLUMN retry_at,
|
|
1195
1296
|
DROP COLUMN retry_attempts
|
|
1196
|
-
`.execute(_)}var
|
|
1297
|
+
`.execute(_)}var FC={};m(FC,{up:()=>QJ,down:()=>jJ});import{sql as DC}from"kysely";async function QJ(_){await DC`
|
|
1197
1298
|
CREATE TABLE org_repo_sync (
|
|
1198
1299
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1199
1300
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1211,11 +1312,11 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1211
1312
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1212
1313
|
UNIQUE (organization_id, volume)
|
|
1213
1314
|
)
|
|
1214
|
-
`.execute(_),await
|
|
1315
|
+
`.execute(_),await DC`
|
|
1215
1316
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1216
1317
|
ON org_repo_sync (organization_id)
|
|
1217
1318
|
WHERE enabled
|
|
1218
|
-
`.execute(_)}async function
|
|
1319
|
+
`.execute(_)}async function jJ(_){await DC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var YC={};m(YC,{up:()=>ZJ,down:()=>LJ,ACTIONS:()=>RC});import{sql as O_}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","merge_conflict_resolution","merge_failed"],WJ=new Set(["merge_failed"]);async function ZJ(_){await UN(_,RC)}async function LJ(_){await UN(_,RC.filter((x)=>!WJ.has(x)))}async function UN(_,x){await O_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await O_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${O_.join(x.map((u)=>O_.lit(u)))}))`.execute(_)}var HC={};m(HC,{up:()=>DJ,down:()=>FJ});async function DJ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function FJ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var MC={};m(MC,{up:()=>RJ,down:()=>YJ});import{sql as g}from"kysely";async function RJ(_){await g`
|
|
1219
1320
|
CREATE TABLE org_jira_integrations (
|
|
1220
1321
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1221
1322
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1235,7 +1336,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1235
1336
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1236
1337
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
1237
1338
|
)
|
|
1238
|
-
`.execute(_),await
|
|
1339
|
+
`.execute(_),await g`
|
|
1239
1340
|
CREATE TABLE task_board_item_jira_links (
|
|
1240
1341
|
item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
|
|
1241
1342
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1246,7 +1347,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1246
1347
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1247
1348
|
UNIQUE (organization_id, jira_issue_id)
|
|
1248
1349
|
)
|
|
1249
|
-
`.execute(_),await
|
|
1350
|
+
`.execute(_),await g`
|
|
1250
1351
|
CREATE TABLE task_board_comment_jira_links (
|
|
1251
1352
|
comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
|
|
1252
1353
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1254,7 +1355,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1254
1355
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1255
1356
|
UNIQUE (organization_id, jira_comment_id)
|
|
1256
1357
|
)
|
|
1257
|
-
`.execute(_)}async function
|
|
1358
|
+
`.execute(_)}async function YJ(_){await g`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await g`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await g`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var BC={};m(BC,{up:()=>MJ,down:()=>BJ});import{sql as HJ}from"kysely";async function MJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await HJ`
|
|
1258
1359
|
update task_board_items as t
|
|
1259
1360
|
set key_seq = numbered.seq
|
|
1260
1361
|
from (
|
|
@@ -1267,25 +1368,25 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1267
1368
|
from task_board_items
|
|
1268
1369
|
) as numbered
|
|
1269
1370
|
where t.id = numbered.id
|
|
1270
|
-
`.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
|
|
1371
|
+
`.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 BJ(_){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 GC={};m(GC,{up:()=>GJ,down:()=>nJ});import{sql as JN}from"kysely";async function GJ(_){await JN`
|
|
1271
1372
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1272
1373
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1273
1374
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1274
|
-
`.execute(_)}async function
|
|
1375
|
+
`.execute(_)}async function nJ(_){await JN`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var yC={};m(yC,{up:()=>yJ,down:()=>fJ});import{sql as nC}from"kysely";async function yJ(_){await nC`
|
|
1275
1376
|
ALTER TABLE thread_message_parts
|
|
1276
1377
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1277
1378
|
`.execute(_),await nC`
|
|
1278
1379
|
ALTER TABLE thread_message_parts
|
|
1279
1380
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1280
|
-
`.execute(_)}async function
|
|
1381
|
+
`.execute(_)}async function fJ(_){await nC`
|
|
1281
1382
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1282
|
-
`.execute(_)}var
|
|
1383
|
+
`.execute(_)}var fC={};m(fC,{up:()=>OJ,down:()=>AJ});async function OJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function AJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var OC={};m(OC,{up:()=>IJ,down:()=>wJ});import{sql as SJ}from"kysely";async function IJ(_){await SJ`
|
|
1283
1384
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1284
1385
|
ON task_board_items (updated_at)
|
|
1285
1386
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1286
|
-
`.execute(_)}async function
|
|
1287
|
-
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await
|
|
1288
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function
|
|
1387
|
+
`.execute(_)}async function wJ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var AC={};m(AC,{up:()=>VJ,down:()=>kJ,TYPES:()=>XN});import{sql as I}from"kysely";var XN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function VJ(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(I`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(I`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(I`now()`)).addCheckConstraint("notifications_type_check",I`type IN (${I.join(XN.map((x)=>I.lit(x)))})`).execute(),await I`CREATE INDEX notifications_user_unread ON notifications
|
|
1388
|
+
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await I`CREATE INDEX notifications_digest ON notifications
|
|
1389
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function kJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var SC={};m(SC,{up:()=>pJ,down:()=>iJ});import{sql as QN}from"kysely";async function pJ(_){await QN`
|
|
1289
1390
|
UPDATE org_jira_integrations
|
|
1290
1391
|
SET status_mapping = (
|
|
1291
1392
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1300,7 +1401,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1300
1401
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1301
1402
|
WHERE jsonb_typeof(value) = 'array'
|
|
1302
1403
|
)
|
|
1303
|
-
`.execute(_)}async function
|
|
1404
|
+
`.execute(_)}async function iJ(_){await QN`
|
|
1304
1405
|
UPDATE org_jira_integrations
|
|
1305
1406
|
SET status_mapping = (
|
|
1306
1407
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1315,7 +1416,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1315
1416
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1316
1417
|
WHERE jsonb_typeof(value) = 'array'
|
|
1317
1418
|
)
|
|
1318
|
-
`.execute(_)}var
|
|
1419
|
+
`.execute(_)}var wC={};m(wC,{up:()=>vJ,down:()=>qJ,TYPES:()=>IC});import{sql as A_}from"kysely";var IC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],tJ=new Set(["mentioned"]);async function vJ(_){await jN(_,IC)}async function qJ(_){await jN(_,IC.filter((x)=>!tJ.has(x)))}async function jN(_,x){await A_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await A_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${A_.join(x.map((u)=>A_.lit(u)))}))`.execute(_)}var kC={};m(kC,{up:()=>hJ,down:()=>oJ,ACTIONS:()=>VC});import{sql as w}from"kysely";var gJ=["bug","feature","chore","spike","security"],VC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed","type_changed"],cJ=new Set(["type_changed"]);async function hJ(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await w`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${w.join(gJ.map((x)=>w.lit(x)))}))`.execute(_),await WN(_,VC)}async function oJ(_){await WN(_,VC.filter((x)=>!cJ.has(x))),await w`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function WN(_,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 pC={};m(pC,{up:()=>aJ,down:()=>rJ});import{sql as Q}from"kysely";var LN=["bug","feature","chore","spike","security"],ZN="chore";async function aJ(_){await Q`UPDATE task_board_items SET type = ${Q.lit(ZN)} WHERE type IS NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${Q.lit(ZN)}`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${Q.join(LN.map((x)=>Q.lit(x)))}))`.execute(_)}async function rJ(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${Q.join(LN.map((x)=>Q.lit(x)))}))`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var iC={};m(iC,{up:()=>eJ,down:()=>lJ});import{sql as c}from"kysely";async function eJ(_){await c`
|
|
1319
1420
|
CREATE TABLE task_board_sprints (
|
|
1320
1421
|
id text PRIMARY KEY,
|
|
1321
1422
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1330,44 +1431,44 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1330
1431
|
CHECK (state IN ('active', 'future', 'closed')),
|
|
1331
1432
|
UNIQUE (organization_id, jira_sprint_id)
|
|
1332
1433
|
)
|
|
1333
|
-
`.execute(_),await
|
|
1434
|
+
`.execute(_),await c`
|
|
1334
1435
|
CREATE INDEX idx_task_board_sprints_org
|
|
1335
1436
|
ON task_board_sprints (organization_id, starts_at)
|
|
1336
|
-
`.execute(_),await
|
|
1437
|
+
`.execute(_),await c`
|
|
1337
1438
|
ALTER TABLE task_board_items
|
|
1338
1439
|
ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
|
|
1339
|
-
`.execute(_),await
|
|
1440
|
+
`.execute(_),await c`
|
|
1340
1441
|
CREATE INDEX idx_task_board_items_sprint
|
|
1341
1442
|
ON task_board_items (organization_id, sprint_id)
|
|
1342
1443
|
WHERE sprint_id IS NOT NULL
|
|
1343
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function
|
|
1444
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function lJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await c`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await c`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var tC={};m(tC,{up:()=>sJ,down:()=>bJ});import{sql as dJ}from"kysely";async function sJ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function bJ(_){await dJ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var vC={};m(vC,{up:()=>xX,down:()=>uX});import{sql as _X}from"kysely";async function xX(_){await _X`
|
|
1344
1445
|
UPDATE org_jira_integrations
|
|
1345
1446
|
SET last_synced_at = NULL,
|
|
1346
1447
|
last_sync_error = NULL
|
|
1347
1448
|
WHERE last_synced_at IS NOT NULL
|
|
1348
|
-
`.execute(_)}async function
|
|
1449
|
+
`.execute(_)}async function uX(){}var qC={};m(qC,{up:()=>CX,down:()=>TX});import{sql as mX}from"kysely";async function CX(_){await mX`
|
|
1349
1450
|
UPDATE org_jira_integrations
|
|
1350
1451
|
SET last_synced_at = NULL,
|
|
1351
1452
|
last_sync_error = NULL
|
|
1352
1453
|
WHERE last_synced_at IS NOT NULL
|
|
1353
|
-
`.execute(_)}async function
|
|
1454
|
+
`.execute(_)}async function TX(){}var cC={};m(cC,{up:()=>NX,down:()=>KX});import{sql as gC}from"kysely";async function NX(_){await gC`
|
|
1354
1455
|
ALTER TABLE org_jira_integrations
|
|
1355
1456
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1356
|
-
`.execute(_),await
|
|
1457
|
+
`.execute(_),await gC`
|
|
1357
1458
|
UPDATE org_jira_integrations
|
|
1358
1459
|
SET rescan_pending = true
|
|
1359
1460
|
WHERE last_synced_at IS NULL
|
|
1360
|
-
`.execute(_)}async function
|
|
1461
|
+
`.execute(_)}async function KX(_){await gC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var hC={};m(hC,{up:()=>EX,down:()=>zX});async function EX(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function zX(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var oC={};m(oC,{up:()=>PX,down:()=>$X});import{sql as DN}from"kysely";async function PX(_){await DN`
|
|
1361
1462
|
ALTER TABLE invitation
|
|
1362
1463
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1363
|
-
`.execute(_)}async function
|
|
1464
|
+
`.execute(_)}async function $X(_){await DN`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var rC={};m(rC,{up:()=>UX,down:()=>JX});import{sql as aC}from"kysely";async function UX(_){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(aC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(aC`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 aC`
|
|
1364
1465
|
INSERT INTO task_board_column_automations
|
|
1365
1466
|
(id, organization_id, column_key, prompt)
|
|
1366
1467
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1367
1468
|
FROM org_jira_integrations
|
|
1368
1469
|
WHERE auto_delegate = true
|
|
1369
1470
|
ON CONFLICT DO NOTHING
|
|
1370
|
-
`.execute(_)}async function
|
|
1471
|
+
`.execute(_)}async function JX(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var eC={};m(eC,{up:()=>XX,down:()=>QX});import{sql as T_}from"kysely";async function XX(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await T_`
|
|
1371
1472
|
UPDATE task_board_items i
|
|
1372
1473
|
SET review_cycle_started_at = (
|
|
1373
1474
|
SELECT max(a.occurred_at)
|
|
@@ -1377,35 +1478,35 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1377
1478
|
AND a.data ->> 'to' = 'in_review'
|
|
1378
1479
|
)
|
|
1379
1480
|
WHERE i.status = 'in_review'
|
|
1380
|
-
`.execute(_),await
|
|
1481
|
+
`.execute(_),await T_`
|
|
1381
1482
|
CREATE INDEX idx_task_board_items_review_cycle
|
|
1382
1483
|
ON task_board_items (updated_at, id)
|
|
1383
1484
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1384
1485
|
AND assignee_id = 'super-agent'
|
|
1385
1486
|
AND dismissed_at IS NULL
|
|
1386
|
-
`.execute(_),await
|
|
1487
|
+
`.execute(_),await T_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function QX(_){await T_`
|
|
1387
1488
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1388
1489
|
ON task_board_items (updated_at, id)
|
|
1389
1490
|
WHERE status = 'in_review'
|
|
1390
1491
|
AND assignee_id = 'super-agent'
|
|
1391
1492
|
AND dismissed_at IS NULL
|
|
1392
|
-
`.execute(_),await
|
|
1493
|
+
`.execute(_),await T_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var lC={};m(lC,{up:()=>jX,down:()=>WX});import{sql as FN}from"kysely";async function jX(_){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(FN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(FN`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 WX(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var sC={};m(sC,{up:()=>LX,down:()=>DX,ACTIONS:()=>dC});import{sql as S_}from"kysely";var dC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],ZX=new Set(["review_verdict_requested"]);async function LX(_){await RN(_,dC)}async function DX(_){await RN(_,dC.filter((x)=>!ZX.has(x)))}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 bC={};m(bC,{up:()=>FX,down:()=>RX});import{sql as I_}from"kysely";async function FX(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await I_`
|
|
1393
1494
|
ALTER TABLE task_board_items
|
|
1394
1495
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1395
1496
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
1396
|
-
`.execute(_),await
|
|
1497
|
+
`.execute(_),await I_`
|
|
1397
1498
|
ALTER TABLE task_board_items
|
|
1398
1499
|
ADD CONSTRAINT task_board_items_board_column_fkey
|
|
1399
1500
|
FOREIGN KEY (board_column_org, status)
|
|
1400
1501
|
REFERENCES task_board_columns (organization_id, key)
|
|
1401
1502
|
ON DELETE RESTRICT
|
|
1402
|
-
`.execute(_)}async function
|
|
1503
|
+
`.execute(_)}async function RX(_){await I_`
|
|
1403
1504
|
ALTER TABLE task_board_items
|
|
1404
1505
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
1405
|
-
`.execute(_),await
|
|
1506
|
+
`.execute(_),await I_`
|
|
1406
1507
|
ALTER TABLE task_board_items
|
|
1407
1508
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
1408
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
1509
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var _T={};m(_T,{up:()=>YX,down:()=>HX});async function YX(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function HX(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var uT={};m(uT,{up:()=>BX,down:()=>GX,ACTIONS:()=>xT});import{sql as w_}from"kysely";var xT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],MX=new Set(["sprint_changed"]);async function BX(_){await YN(_,xT)}async function GX(_){await YN(_,xT.filter((x)=>!MX.has(x)))}async function YN(_,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 mT={};m(mT,{up:()=>yX,down:()=>fX});import{sql as nX}from"kysely";async function yX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(nX`'[]'::jsonb`)).execute()}async function fX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var CT={};m(CT,{up:()=>OX,down:()=>AX});import{sql as HN}from"kysely";async function OX(_){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(HN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(HN`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function AX(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var TT={};m(TT,{up:()=>IX,down:()=>wX});import{sql as SX}from"kysely";async function IX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await SX`
|
|
1409
1510
|
UPDATE task_board_items i
|
|
1410
1511
|
SET external_url = t.url,
|
|
1411
1512
|
description = CASE
|
|
@@ -1424,11 +1525,11 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1424
1525
|
ON g.organization_id = l.organization_id
|
|
1425
1526
|
) t
|
|
1426
1527
|
WHERE t.item_id = i.id
|
|
1427
|
-
`.execute(_)}async function
|
|
1528
|
+
`.execute(_)}async function wX(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var NT={};m(NT,{up:()=>kX,down:()=>pX,ACTIONS:()=>MN});import{sql as J}from"kysely";var VX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],MN=["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 kX(_){await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await J`DROP TABLE IF EXISTS task_board_columns`.execute(_),await J`
|
|
1428
1529
|
UPDATE task_board_items
|
|
1429
1530
|
SET status = 'triage'
|
|
1430
|
-
WHERE status NOT IN (${J.join(
|
|
1431
|
-
`.execute(_),await J`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await J`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await
|
|
1531
|
+
WHERE status NOT IN (${J.join(VX.map((x)=>J.lit(x)))})
|
|
1532
|
+
`.execute(_),await J`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await J`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await iX(_,MN),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
|
|
1432
1533
|
ALTER TABLE task_board_item_jira_links
|
|
1433
1534
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
1434
1535
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -1440,11 +1541,11 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1440
1541
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
1441
1542
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
1442
1543
|
DROP COLUMN IF EXISTS rescan_pending
|
|
1443
|
-
`.execute(_)}async function
|
|
1544
|
+
`.execute(_)}async function pX(){}async function iX(_,x){await J`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await J`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${J.join(x.map((u)=>J.lit(u)))}))`.execute(_)}var KT={};m(KT,{up:()=>tX,down:()=>vX});import{sql as h}from"kysely";async function tX(_){await h`
|
|
1444
1545
|
ALTER TABLE task_board_items
|
|
1445
1546
|
ADD COLUMN IF NOT EXISTS source text
|
|
1446
1547
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
1447
|
-
`.execute(_),await
|
|
1548
|
+
`.execute(_),await h`
|
|
1448
1549
|
CREATE TABLE IF NOT EXISTS org_jira_column_automations (
|
|
1449
1550
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
1450
1551
|
jira_status text NOT NULL,
|
|
@@ -1453,7 +1554,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1453
1554
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1454
1555
|
PRIMARY KEY (organization_id, jira_status)
|
|
1455
1556
|
)
|
|
1456
|
-
`.execute(_),await
|
|
1557
|
+
`.execute(_),await h`
|
|
1457
1558
|
CREATE TABLE IF NOT EXISTS jira_trigger_claims (
|
|
1458
1559
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
1459
1560
|
jira_issue_id text NOT NULL,
|
|
@@ -1461,24 +1562,24 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1461
1562
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1462
1563
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
1463
1564
|
)
|
|
1464
|
-
`.execute(_)}async function
|
|
1565
|
+
`.execute(_)}async function vX(_){await h`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await h`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await h`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var ET={};m(ET,{up:()=>qX,down:()=>gX});import{sql as N_}from"kysely";async function qX(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(N_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(N_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(N_`now()`)).execute(),await N_`
|
|
1465
1566
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
1466
1567
|
ON organization_notices (organization_id)
|
|
1467
1568
|
WHERE resolved_at IS NULL
|
|
1468
|
-
`.execute(_),await
|
|
1569
|
+
`.execute(_),await N_`
|
|
1469
1570
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
1470
1571
|
ON organization_notices (organization_id, created_at DESC)
|
|
1471
|
-
`.execute(_)}async function
|
|
1572
|
+
`.execute(_)}async function gX(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var PT={};m(PT,{up:()=>bX,down:()=>_Q});import{sql as zT}from"kysely";import{sql as lW}from"kysely";var BN=50000000,cX=1e5;function hX(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>cX)return 1/0;let N=C.pop();if(typeof N==="string")u+=N.length;else if(Array.isArray(N))for(let E of N)C.push(E);else if(N!==null&&typeof N==="object")for(let E of Object.values(N))C.push(E)}return u}var oX=/\u0000/g,aX=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,rX=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,eX=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,lX=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function dX(_){return _.replace(oX,"").replace(aX,"\uFFFD").replace(rX,"$1***@").replace(eX,"$1***").replace(lX,"[base64 data omitted]")}function sX(_){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 GN(_){if(hX(_,BN)>BN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return dX(u);if(sX(u))return{type:"text",text:"[image omitted]"};return u})}var nN=20;async function bX(_){let x=await zT`
|
|
1472
1573
|
SELECT id FROM thread_message_parts
|
|
1473
1574
|
WHERE pg_column_size(payload) > 8192
|
|
1474
1575
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
1475
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=nN){let T=x.rows.slice(u,u+nN).map((N)=>N.id),C=await
|
|
1576
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=nN){let T=x.rows.slice(u,u+nN).map((N)=>N.id),C=await zT`
|
|
1476
1577
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${T})
|
|
1477
|
-
`.execute(_);for(let N of C.rows){let E=
|
|
1578
|
+
`.execute(_);for(let N of C.rows){let E=GN(N.payload);if(E===JSON.stringify(N.payload))continue;await zT`
|
|
1478
1579
|
UPDATE thread_message_parts
|
|
1479
1580
|
SET payload = ${E}::jsonb
|
|
1480
1581
|
WHERE id = ${N.id}
|
|
1481
|
-
`.execute(_)}}}async function
|
|
1582
|
+
`.execute(_)}}}async function _Q(){}var $T={};m($T,{up:()=>xQ,down:()=>uQ});async function xQ(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function uQ(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var UT={};m(UT,{up:()=>mQ,down:()=>CQ});import{sql as P}from"kysely";async function mQ(_){await P`
|
|
1482
1583
|
CREATE TABLE git_provider_accounts (
|
|
1483
1584
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1484
1585
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1722,11 +1823,11 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1722
1823
|
AND r.organization_id = s.organization_id
|
|
1723
1824
|
AND r.host = 'github.com'
|
|
1724
1825
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
|
|
1725
|
-
`.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function
|
|
1826
|
+
`.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function CQ(_){await P`
|
|
1726
1827
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
1727
1828
|
`.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
|
|
1728
1829
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
1729
|
-
`.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
|
|
1830
|
+
`.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 JT={};m(JT,{up:()=>NQ,down:()=>KQ});import{sql as H}from"kysely";var TQ=H`
|
|
1730
1831
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
1731
1832
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
1732
1833
|
BEGIN
|
|
@@ -1735,13 +1836,13 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1735
1836
|
RETURN NULL;
|
|
1736
1837
|
END;
|
|
1737
1838
|
$$
|
|
1738
|
-
`;async function
|
|
1839
|
+
`;async function NQ(_){await TQ.execute(_),await H`
|
|
1739
1840
|
ALTER TABLE connections
|
|
1740
1841
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
1741
|
-
`.execute(_),await
|
|
1842
|
+
`.execute(_),await H`
|
|
1742
1843
|
CREATE INDEX idx_connections_repository
|
|
1743
1844
|
ON connections (repository_id) WHERE repository_id IS NOT NULL
|
|
1744
|
-
`.execute(_),await
|
|
1845
|
+
`.execute(_),await H`
|
|
1745
1846
|
CREATE TABLE thread_repositories (
|
|
1746
1847
|
thread_id text NOT NULL REFERENCES threads(id) ON DELETE CASCADE,
|
|
1747
1848
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1749,10 +1850,10 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1749
1850
|
added_at timestamptz NOT NULL DEFAULT now(),
|
|
1750
1851
|
PRIMARY KEY (thread_id, repository_id)
|
|
1751
1852
|
)
|
|
1752
|
-
`.execute(_),await
|
|
1853
|
+
`.execute(_),await H`
|
|
1753
1854
|
CREATE INDEX idx_thread_repositories_repo
|
|
1754
1855
|
ON thread_repositories (repository_id)
|
|
1755
|
-
`.execute(_),await
|
|
1856
|
+
`.execute(_),await H`
|
|
1756
1857
|
UPDATE connections c
|
|
1757
1858
|
SET repository_id = r.id
|
|
1758
1859
|
FROM repositories r
|
|
@@ -1764,7 +1865,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1764
1865
|
|| '/' ||
|
|
1765
1866
|
(repo_ref_try_jsonb(c.metadata) #>> '{githubRepo,name}')
|
|
1766
1867
|
)
|
|
1767
|
-
`.execute(_),await
|
|
1868
|
+
`.execute(_),await H`
|
|
1768
1869
|
INSERT INTO repositories (
|
|
1769
1870
|
organization_id, account_id, provider, host, path, web_url
|
|
1770
1871
|
)
|
|
@@ -1785,7 +1886,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1785
1886
|
AND e.name NOT LIKE '%/%'
|
|
1786
1887
|
ORDER BY t.organization_id, lower(e.owner || '/' || e.name)
|
|
1787
1888
|
ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
|
|
1788
|
-
`.execute(_),await
|
|
1889
|
+
`.execute(_),await H`
|
|
1789
1890
|
INSERT INTO thread_repositories (thread_id, organization_id, repository_id)
|
|
1790
1891
|
SELECT DISTINCT t.id, t.organization_id, r.id
|
|
1791
1892
|
FROM threads t
|
|
@@ -1797,29 +1898,29 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
|
|
|
1797
1898
|
AND r.host = 'github.com'
|
|
1798
1899
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
1799
1900
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
1800
|
-
`.execute(_),await
|
|
1901
|
+
`.execute(_),await H`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function KQ(_){await H`DROP TABLE IF EXISTS thread_repositories`.execute(_),await H`
|
|
1801
1902
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
1802
|
-
`.execute(_)}var CQ={"001-initial-schema":e_,"002-organization-settings":l_,"003-connection-schema-align":d_,"004-remove-models-binding":s_,"005-connection-configuration":b_,"006-add-views-to-settings":_x,"007-monitoring-logs":xx,"008-event-bus":ux,"009-drop-audit-logs":mx,"010-gateways":Cx,"011-gateway-icon":Tx,"012-gateway-tool-selection-mode":Nx,"013-monitoring-user-agent-gateway":Kx,"014-gateway-resources-prompts":Ex,"015-monitoring-properties":zx,"016-downstream-token-client-info":Px,"017-downstream-token-remove-userid":$x,"018-drop-gateway-tool-selection-strategy":Ux,"019-remove-gateway-is-default":Jx,"020-enabled-plugins":Xx,"021-threads":Qx,"022-rename-gateway-to-virtual-mcp":jx,"023-optimize-thread-indexes":Wx,"024-consolidate-virtual-mcp":Zx,"025-add-monitoring-virtual-mcp-id":Lx,"026-restrict-child-connection-delete":Dx,"027-update-management-mcp-url":Rx,"028-update-management-mcp-to-self":Hx,"029-add-updated-by-to-connections":Mx,"030-member-tags":nx,"031-add-dependency-mode":Bx,"032-projects":Gx,"033-thread-status":yx,"034-monitoring-dashboards":fx,"035-project-connections":Ox,"036-update-registry-url":Ax,"037-ai-provider-keys":Sx,"038-oauth-pkce-states":Ix,"039-automations":wx,"040-replace-next-run-at-with-last-run-at":Vx,"041-ai-provider-keys-unique-constraint":kx,"042-rename-mesh-mcp-to-cms-mcp":px,"043-rename-cms-mcp-to-deco-cms":ix,"044-drop-connections-tools-column":tx,"045-thread-context-start-message":vx,"046-remove-object-storage-plugin":gx,"047-add-next-run-at":cx,"048-merge-projects-agents":ox,"049-remove-org-admin-projects":ax,"050-durable-agent-runs":rx,"051-org-sso":lx,"052-thread-agent-ids":dx,"053-registry-config":sx,"054-connection-slug":_u,"055-spaces":xu,"056-automation-project-scope":uu,"057-thread-virtual-mcp-id":mu,"058-trigger-callback-tokens":Cu,"059-kv":Tu,"060-member-index":Nu,"061-downstream-token-connection-index":Ku,"062-private-registry":Eu,"063-event-subscriptions-enabled-boolean":zu,"064-brand-context":Pu,"065-organization-domains":$u,"066-brand-context-structured":Uu,"067-threads-metadata":Ju,"068-threads-branch":Xu,"069-sandbox-runner-state":Qu,"070-model-categories":ju,"071-default-home-agents":Wu,"072-ai-provider-key-preset-id":Zu,"073-backfill-basic-usage-roles":Lu,"074-sandbox-runner-state-handle-nonunique":Du,"075-thread-inflight-async-jobs":Fu,"076-automations-drop-agent-json":Ru,"077-tier-only-model-selection":Hu,"078-automation-tool-call-kind":Mu,"079-strip-legacy-freestyle-vm-map-entries":nu,"080-async-research-jobs":Bu,"081-async-research-jobs-result-content":Gu,"082-secrets":yu,"083-thread-run-locally":fu,"084-drop-host-sandbox-rows":Ou,"085-rename-runner-kind":Au,"086-thread-pins-and-vm-map-rekey":Su,"087-fix-vm-map-rekey":Iu,"088-purge-cli-activate-keys":wu,"089-rename-remote-user-to-desktop":Vu,"090-automation-webhook-triggers":ku,"091-organization-domains-allow-multi":pu,"092-sandbox-naming-uniformization":iu,"093-backfill-global-search-basic-usage":tu,"094-org-file-configs":qu,"095-remove-automation-tool-call-kind":gu,"096-org-file-configs-public-url-base":cu,"097-drop-local-docker-sandbox-state":ou,"098-thread-message-parts":au,"099-run-fence":ru,"100-link-transport":eu,"101-cancel-requested-at":lu,"102-observational-agent":du,"103-revert-observational-agent":su,"104-agent-sandbox-provider-kind":_m,"105-org-fs":xm,"106-automation-tools":um,"107-org-fs-public-org":mm,"108-automation-max-agent-steps":Cm,"109-thread-message-parts-per-message-seq":Tm,"110-backfill-ghs-token-expiry":Nm,"111-org-fs-thread-id":Km,"112-org-file-configs-credential-type":Em,"113-thread-failure-reason":zm,"114-run-acked-seq":Pm,"115-thread-projected-seq":$m,"116-org-sites":Um,"117-org-file-configs-site-slug":Jm,"118-organization-domains-multi-verify":Xm,"119-organization-join-requests":Qm,"120-org-fs-read-public":jm,"121-org-fs-share-password":Wm,"122-split-web-research-tier":Dm,"123-connection-credential-vault":Fm,"124-drop-thread-projected-seq":Rm,"125-github-child-single-parent":Ym,"126-task-board":Mm,"127-task-board-due-date":nm,"128-reports-only":Bm,"129-task-board-assigned-by":Gm,"130-task-board-thread-id":ym,"131-task-board-thread-link-cascade":fm,"132-task-board-item-prs":Om,"133-dedupe-duplicate-members":Am,"134-drop-task-board-enabled":Sm,"135-task-board-item-fk-cascade":Im,"136-task-board-import-idempotency":wm,"137-agent-sandbox-runner-state":Vm,"138-agent-sandbox-sessions":km,"139-organization-billing":pm,"140-seat-change-log":im,"141-benefits-sync-pending":tm,"142-stripe-event-watermark":vm,"143-armed-report-url":qm,"144-benefits-pending-index":gm,"145-user-model-preferences":cm,"146-organization-main-agent":hm,"147-drop-agent-sandbox-tables":om,"148-org-flags":am,"149-task-board-item-sort-order":rm,"150-task-board-activity":em,"151-task-board-tags":dm,"152-repair-connection-slug":bm,"153-task-board-latest-assistant-part-index":_C,"154-task-board-qa-activity":uC,"155-task-board-review-claims":mC,"156-task-board-conflict-activity":TC,"157-drop-seat-billing":NC,"158-drop-github-child-single-parent":KC,"159-task-board-comments":EC,"160-task-quota-billing":zC,"161-task-quota-claim-state":$C,"162-claude-subscriptions":UC,"163-task-board-item-dismissed":JC,"164-per-org-task-quota":XC,"165-task-board-pending-review-index":QC,"166-task-board-last-swept-at":jC,"167-task-board-run-retry":WC,"168-org-repo-sync":LC,"169-task-board-merge-failed-activity":FC,"170-task-board-item-repo":RC,"171-jira-integration":YC,"172-task-board-item-key-seq":HC,"173-thread-github-repo-connection-index":MC,"174-thread-message-parts-persisted-at":BC,"175-task-board-sprints":GC,"176-task-board-done-sweep-index":yC,"177-notifications":fC,"178-jira-status-mapping-array":OC,"179-notification-mentioned":SC,"180-task-board-item-type":wC,"181-task-board-item-type-required":VC,"182-task-board-sprints-entities":kC,"183-drop-jira-jql-filter":pC,"184-jira-rescan-after-scope-change":iC,"185-jira-rescan-existing-cards":tC,"186-jira-rescan-pending-flag":qC,"187-task-board-comment-thread":gC,"188-invitation-auto-accept":cC,"189-task-board-column-automations":oC,"190-task-board-review-cycle-started-at":aC,"191-task-board-columns":rC,"192-task-board-verdict-nudge-activity":lC,"193-task-board-status-column-fk":dC,"194-jira-link-sprint":sC,"195-task-board-sprint-activity":_T,"196-task-board-column-tracker-statuses":xT,"197-task-board-prompts":uT,"198-task-board-external-url":mT,"199-drop-jira-mirror-and-org-columns":CT,"200-jira-run-trigger":TT,"201-organization-notices":NT,"202-redact-base64-thread-parts":ET,"203-task-board-preview-routes":zT,"204-git-provider-accounts-and-repositories":PT,"205-repository-references":$T,"206-repository-consumers":r_,"207-task-board-prs-repo-idx":a_,"208-github-connect-flows":o_,"209-github-installation-authorization":h_,"210-github-repository-authorization":q_,"211-user-fs-org":v_,"212-coding-agent-mcp-excluded":g_,"213-bitbucket-git-provider":c_,"214-connections-sanitized-id-idx":t_},UT=CQ;import{getMigrations as wQ}from"better-auth/db";import{sso as VQ}from"@better-auth/sso";import{organization as kQ}from"@decocms/better-auth/plugins";import{admin as pQ,apiKey as iQ,jwt as tQ,magicLink as vQ,mcp as qQ,openAPI as gQ}from"better-auth/plugins";import{emailOTP as cQ}from"better-auth/plugins/email-otp";import{Kysely as GQ,PostgresDialect as kN}from"kysely";import{Pool as pN}from"pg";import{homedir as TQ}from"os";var NQ=new Set(["all","worker","api"]);function KQ(_){let x=(_??"").trim();return NQ.has(x)?x:"all"}var EQ=new Set(["production","development","test"]);function zQ(_){let x=(_??"").trim();return EQ.has(x)?x:"development"}function L(_){return _==="true"||_==="1"}function XT(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function G(_,x,u,T){return XT(_,x,T)??u}function PQ(_,x,u,T){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&C>T)throw Error(`${_} must be at most ${T}`);return C}function JT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function BN(_){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 $Q(_){return _===void 0||_===""||_==="true"||_==="1"}function N_(_,x){return _||x}function GN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${TQ()}/deco`,T=_.localMode,C=_.nodeEnv||zQ(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222";return{settings:{nodeEnv:C,port:G("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:N_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:L(x.DATABASE_PG_SSL),databasePoolMax:G("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:G("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:N_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:L(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:L(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),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:XT("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:L(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,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:PQ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:L(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:G("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:G("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:G("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:L(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:L(x.HOSTING_CONTROL_PLANE_GA),monitorGa:L(x.MONITOR_GA),mcpCacheEnabled:JT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:L(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:G("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:G("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:JT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:G("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:$Q(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:XT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:KQ(N_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:L(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:L(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:JT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:L(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:G("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:N_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:N_(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},externalDatabaseUrl:BN(x.DATABASE_URL),externalNatsUrl:BN(N),skipMigrations:_.skipMigrations}}var w_=null;function h(){if(!w_)UQ();return w_}function UQ(){if(w_)return;let _={...process.env},x=GN({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},_);w_=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 ZQ,metrics as LQ,propagation as P4,ROOT_CONTEXT as $4,SpanStatusCode as U4,trace as DQ}from"@opentelemetry/api";import{logs as FQ,SeverityNumber as QT}from"@opentelemetry/api-logs";import{OTLPLogExporter as Q4}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as RQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Z4}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as D4}from"@opentelemetry/instrumentation-runtime-node";import{context as CZ,propagation as TZ,SpanKind as NZ,SpanStatusCode as KZ}from"@opentelemetry/api";var zZ=globalThis.fetch;import{ExportResultCode as FZ}from"@opentelemetry/core";import{ExportResultCode as V_}from"@opentelemetry/core";import{mkdir as JQ,rename as XQ,writeFile as QQ}from"fs/promises";import{join as k_}from"path";class p_{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:V_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:V_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:V_.FAILED}});return Promise.resolve({code:V_.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),T=u.find((C)=>C.status==="rejected");if(T){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let N=_.filter((E)=>!C.has(E.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?k_(this.basePath,x,...T):k_(this.basePath,...T);if(!this.knownDirs.has(C))await JQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=k_(C,`.${N}.tmp`),K=k_(C,N),z=_.join(`
|
|
1903
|
+
`.execute(_)}var EQ={"001-initial-schema":d_,"002-organization-settings":s_,"003-connection-schema-align":b_,"004-remove-models-binding":_x,"005-connection-configuration":xx,"006-add-views-to-settings":ux,"007-monitoring-logs":mx,"008-event-bus":Cx,"009-drop-audit-logs":Tx,"010-gateways":Nx,"011-gateway-icon":Kx,"012-gateway-tool-selection-mode":Ex,"013-monitoring-user-agent-gateway":zx,"014-gateway-resources-prompts":Px,"015-monitoring-properties":$x,"016-downstream-token-client-info":Ux,"017-downstream-token-remove-userid":Jx,"018-drop-gateway-tool-selection-strategy":Xx,"019-remove-gateway-is-default":Qx,"020-enabled-plugins":jx,"021-threads":Wx,"022-rename-gateway-to-virtual-mcp":Zx,"023-optimize-thread-indexes":Lx,"024-consolidate-virtual-mcp":Dx,"025-add-monitoring-virtual-mcp-id":Fx,"026-restrict-child-connection-delete":Rx,"027-update-management-mcp-url":Hx,"028-update-management-mcp-to-self":Bx,"029-add-updated-by-to-connections":Gx,"030-member-tags":nx,"031-add-dependency-mode":yx,"032-projects":fx,"033-thread-status":Ox,"034-monitoring-dashboards":Ax,"035-project-connections":Sx,"036-update-registry-url":Ix,"037-ai-provider-keys":wx,"038-oauth-pkce-states":Vx,"039-automations":kx,"040-replace-next-run-at-with-last-run-at":px,"041-ai-provider-keys-unique-constraint":ix,"042-rename-mesh-mcp-to-cms-mcp":tx,"043-rename-cms-mcp-to-deco-cms":vx,"044-drop-connections-tools-column":qx,"045-thread-context-start-message":gx,"046-remove-object-storage-plugin":hx,"047-add-next-run-at":ox,"048-merge-projects-agents":rx,"049-remove-org-admin-projects":ex,"050-durable-agent-runs":lx,"051-org-sso":sx,"052-thread-agent-ids":bx,"053-registry-config":_u,"054-connection-slug":uu,"055-spaces":mu,"056-automation-project-scope":Cu,"057-thread-virtual-mcp-id":Tu,"058-trigger-callback-tokens":Nu,"059-kv":Ku,"060-member-index":Eu,"061-downstream-token-connection-index":zu,"062-private-registry":Pu,"063-event-subscriptions-enabled-boolean":$u,"064-brand-context":Uu,"065-organization-domains":Ju,"066-brand-context-structured":Xu,"067-threads-metadata":Qu,"068-threads-branch":ju,"069-sandbox-runner-state":Wu,"070-model-categories":Zu,"071-default-home-agents":Lu,"072-ai-provider-key-preset-id":Du,"073-backfill-basic-usage-roles":Fu,"074-sandbox-runner-state-handle-nonunique":Ru,"075-thread-inflight-async-jobs":Yu,"076-automations-drop-agent-json":Hu,"077-tier-only-model-selection":Bu,"078-automation-tool-call-kind":Gu,"079-strip-legacy-freestyle-vm-map-entries":nu,"080-async-research-jobs":yu,"081-async-research-jobs-result-content":fu,"082-secrets":Ou,"083-thread-run-locally":Au,"084-drop-host-sandbox-rows":Su,"085-rename-runner-kind":Iu,"086-thread-pins-and-vm-map-rekey":wu,"087-fix-vm-map-rekey":Vu,"088-purge-cli-activate-keys":ku,"089-rename-remote-user-to-desktop":pu,"090-automation-webhook-triggers":iu,"091-organization-domains-allow-multi":tu,"092-sandbox-naming-uniformization":vu,"093-backfill-global-search-basic-usage":qu,"094-org-file-configs":cu,"095-remove-automation-tool-call-kind":hu,"096-org-file-configs-public-url-base":ou,"097-drop-local-docker-sandbox-state":ru,"098-thread-message-parts":eu,"099-run-fence":lu,"100-link-transport":du,"101-cancel-requested-at":su,"102-observational-agent":bu,"103-revert-observational-agent":_m,"104-agent-sandbox-provider-kind":um,"105-org-fs":mm,"106-automation-tools":Cm,"107-org-fs-public-org":Tm,"108-automation-max-agent-steps":Nm,"109-thread-message-parts-per-message-seq":Km,"110-backfill-ghs-token-expiry":Em,"111-org-fs-thread-id":zm,"112-org-file-configs-credential-type":Pm,"113-thread-failure-reason":$m,"114-run-acked-seq":Um,"115-thread-projected-seq":Jm,"116-org-sites":Xm,"117-org-file-configs-site-slug":Qm,"118-organization-domains-multi-verify":jm,"119-organization-join-requests":Wm,"120-org-fs-read-public":Zm,"121-org-fs-share-password":Lm,"122-split-web-research-tier":Rm,"123-connection-credential-vault":Ym,"124-drop-thread-projected-seq":Hm,"125-github-child-single-parent":Mm,"126-task-board":Gm,"127-task-board-due-date":nm,"128-reports-only":ym,"129-task-board-assigned-by":fm,"130-task-board-thread-id":Om,"131-task-board-thread-link-cascade":Am,"132-task-board-item-prs":Sm,"133-dedupe-duplicate-members":Im,"134-drop-task-board-enabled":wm,"135-task-board-item-fk-cascade":Vm,"136-task-board-import-idempotency":km,"137-agent-sandbox-runner-state":pm,"138-agent-sandbox-sessions":im,"139-organization-billing":tm,"140-seat-change-log":vm,"141-benefits-sync-pending":qm,"142-stripe-event-watermark":gm,"143-armed-report-url":cm,"144-benefits-pending-index":hm,"145-user-model-preferences":om,"146-organization-main-agent":am,"147-drop-agent-sandbox-tables":rm,"148-org-flags":em,"149-task-board-item-sort-order":lm,"150-task-board-activity":dm,"151-task-board-tags":bm,"152-repair-connection-slug":xC,"153-task-board-latest-assistant-part-index":uC,"154-task-board-qa-activity":CC,"155-task-board-review-claims":TC,"156-task-board-conflict-activity":KC,"157-drop-seat-billing":EC,"158-drop-github-child-single-parent":zC,"159-task-board-comments":PC,"160-task-quota-billing":$C,"161-task-quota-claim-state":JC,"162-claude-subscriptions":XC,"163-task-board-item-dismissed":QC,"164-per-org-task-quota":jC,"165-task-board-pending-review-index":WC,"166-task-board-last-swept-at":ZC,"167-task-board-run-retry":LC,"168-org-repo-sync":FC,"169-task-board-merge-failed-activity":YC,"170-task-board-item-repo":HC,"171-jira-integration":MC,"172-task-board-item-key-seq":BC,"173-thread-github-repo-connection-index":GC,"174-thread-message-parts-persisted-at":yC,"175-task-board-sprints":fC,"176-task-board-done-sweep-index":OC,"177-notifications":AC,"178-jira-status-mapping-array":SC,"179-notification-mentioned":wC,"180-task-board-item-type":kC,"181-task-board-item-type-required":pC,"182-task-board-sprints-entities":iC,"183-drop-jira-jql-filter":tC,"184-jira-rescan-after-scope-change":vC,"185-jira-rescan-existing-cards":qC,"186-jira-rescan-pending-flag":cC,"187-task-board-comment-thread":hC,"188-invitation-auto-accept":oC,"189-task-board-column-automations":rC,"190-task-board-review-cycle-started-at":eC,"191-task-board-columns":lC,"192-task-board-verdict-nudge-activity":sC,"193-task-board-status-column-fk":bC,"194-jira-link-sprint":_T,"195-task-board-sprint-activity":uT,"196-task-board-column-tracker-statuses":mT,"197-task-board-prompts":CT,"198-task-board-external-url":TT,"199-drop-jira-mirror-and-org-columns":NT,"200-jira-run-trigger":KT,"201-organization-notices":ET,"202-redact-base64-thread-parts":PT,"203-task-board-preview-routes":$T,"204-git-provider-accounts-and-repositories":UT,"205-repository-references":JT,"206-repository-consumers":l_,"207-task-board-prs-repo-idx":e_,"208-github-connect-flows":r_,"209-github-installation-authorization":a_,"210-github-repository-authorization":c_,"211-user-fs-org":g_,"212-coding-agent-mcp-excluded":h_,"213-bitbucket-git-provider":o_,"214-connections-sanitized-id-idx":v_,"215-commerce-discovery-repository":q_},XT=EQ;import{getMigrations as iQ}from"better-auth/db";import{sso as tQ}from"@better-auth/sso";import{organization as vQ}from"@decocms/better-auth/plugins";import{admin as qQ,apiKey as gQ,jwt as cQ,magicLink as hQ,mcp as oQ,openAPI as aQ}from"better-auth/plugins";import{emailOTP as rQ}from"better-auth/plugins/email-otp";import{Kysely as AQ,PostgresDialect as iN}from"kysely";import{Pool as tN}from"pg";import{homedir as zQ}from"os";var PQ=new Set(["all","worker","api"]);function $Q(_){let x=(_??"").trim();return PQ.has(x)?x:"all"}var UQ=new Set(["production","development","test"]);function JQ(_){let x=(_??"").trim();return UQ.has(x)?x:"development"}function L(_){return _==="true"||_==="1"}function jT(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function y(_,x,u,T){return jT(_,x,T)??u}function XQ(_,x,u,T){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&C>T)throw Error(`${_} must be at most ${T}`);return C}function QT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function yN(_){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 QQ(_){return _===void 0||_===""||_==="true"||_==="1"}function K_(_,x){return _||x}function fN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${zQ()}/deco`,T=_.localMode,C=_.nodeEnv||JQ(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222";return{settings:{nodeEnv:C,port:y("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:K_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:L(x.DATABASE_PG_SSL),databasePoolMax:y("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:y("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:K_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:L(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:L(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),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:jT("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:L(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,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:XQ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:L(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:L(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:L(x.HOSTING_CONTROL_PLANE_GA),monitorGa:L(x.MONITOR_GA),mcpCacheEnabled:QT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:L(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:QT(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:QQ(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:jT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:$Q(K_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:L(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:L(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:QT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:L(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:y("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:K_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:K_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:yN(x.DATABASE_URL),externalNatsUrl:yN(N),skipMigrations:_.skipMigrations}}var V_=null;function o(){if(!V_)jQ();return V_}function jQ(){if(V_)return;let _={...process.env},x=fN({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 RQ,metrics as YQ,propagation as Q4,ROOT_CONTEXT as j4,SpanStatusCode as W4,trace as HQ}from"@opentelemetry/api";import{logs as MQ,SeverityNumber as WT}from"@opentelemetry/api-logs";import{OTLPLogExporter as D4}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as BQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Y4}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as M4}from"@opentelemetry/instrumentation-runtime-node";import{context as zZ,propagation as PZ,SpanKind as $Z,SpanStatusCode as UZ}from"@opentelemetry/api";var XZ=globalThis.fetch;import{ExportResultCode as BZ}from"@opentelemetry/core";import{ExportResultCode as k_}from"@opentelemetry/core";import{mkdir as WQ,rename as ZQ,writeFile as LQ}from"fs/promises";import{join as p_}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:k_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:k_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:k_.FAILED}});return Promise.resolve({code:k_.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),T=u.find((C)=>C.status==="rejected");if(T){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let N=_.filter((E)=>!C.has(E.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?p_(this.basePath,x,...T):p_(this.basePath,...T);if(!this.knownDirs.has(C))await WQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=p_(C,`.${N}.tmp`),K=p_(C,N),z=_.join(`
|
|
1803
1904
|
`)+`
|
|
1804
|
-
`;await
|
|
1905
|
+
`;await LQ(E,z,{mode:384}),await ZQ(E,K)}}import{ExportResultCode as OZ}from"@opentelemetry/core";import{AggregationTemporality as SZ,DataPointType as IZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as tZ}from"@opentelemetry/core";var cZ=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as I4,LoggerProvider as w4}from"@opentelemetry/sdk-logs";import{detectResources as k4,envDetector as p4,hostDetector as i4,osDetector as t4,processDetector as v4,resourceFromAttributes as q4}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as c4}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as aZ}from"@opentelemetry/api-logs";import{NodeSDK as a4}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as e4,SamplingDecision as a}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as sZ}from"@opentelemetry/api";var GQ="__d",nQ=RQ("Current request"),yQ=1;var AN=(_)=>{let u=new URL(_.url).searchParams.get(GQ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class SN{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,N){let E=_.getValue(nQ);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,N);return{decision:a.RECORD_AND_SAMPLED}}let K=AN(E);if(K)return{decision:a.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,N);if(z.decision===a.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:a.NOT_RECORD}}toString(){return"DebugSampler"}}class IN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:a.RECORD_AND_SAMPLED};return{decision:a.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var d4=new BQ({preventServerStart:!0}),s4=new SN(new IN(yQ));var ON=HQ.getTracer("studio","1.0.0"),E_=YQ.getMeter("studio","1.0.0"),fQ=MQ.getLogger("studio","1.0.0"),ZT=(_,x,u)=>{let T={},C=u,N=u[u.length-1];if(N!==null&&typeof N==="object"&&!Array.isArray(N)&&!(N instanceof Error)&&Object.getPrototypeOf(N)===Object.prototype)T=N,C=u.slice(0,-1);let E=C.map((K)=>{if(K instanceof Error)return`${K.name}: ${K.message}`;if(typeof K==="object")try{return JSON.stringify(K)}catch{return"[Object]"}return String(K)}).join(" ");fQ.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},LT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{ZT(WT.ERROR,"ERROR",_),LT.error(..._)};console.warn=(..._)=>{ZT(WT.WARN,"WARN",_),LT.warn(..._)};console.debug=(..._)=>{ZT(WT.DEBUG,"DEBUG",_),LT.debug(..._)};var DT,wN=0,FT=500;function OQ(){if(DT)return;let _=performance.now()+FT;DT=setInterval(()=>{let x=performance.now();wN=Math.max(0,x-_),_=x+FT},FT),DT.unref?.()}function VN(){return OQ(),wN}var SQ=()=>E_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),kN=()=>E_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),pN=400,IQ=100,wQ=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>pN){let T=VN(),C=T>pN/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(T),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:t_()}})}if(SQ().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function VQ(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=t_(),N=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-T;if(kN().record(z,{"db.pool.outcome":N?"contended":"available"}),z>IQ)if(N)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:z,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:z,idleAtStart:E,total:_.totalCount,max:C});return K},(K)=>{throw kN().record(performance.now()-T,{"db.pool.outcome":"error"}),K})},_}var vN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function qN(){try{return o().databasePgSsl}catch{return!1}}function t_(){try{return o().databasePoolMax}catch{return 10}}function kQ(_){let x=VQ(new tN({connectionString:_,max:t_(),ssl:qN(),...vN})),u=new iN({pool:x});return{type:"postgres",db:new AQ({dialect:u,log:wQ(x)}),pool:x}}function P_(){return o().databaseUrl}function gN(_){let x=_||P_();return new iN({pool:new tN({connectionString:x,max:t_(),ssl:qN(),...vN})})}function pQ(_){let x=_||P_();return kQ(x)}async function cN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===z_)z_=null}var z_=null;function RT(){if(!z_)z_=pQ(P_());return z_}async function hN(_){let u={database:gN(_||P_()),plugins:[vQ({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),qQ(),gQ(),cQ(),aQ(),oQ({loginPage:"/login"}),tQ(),hQ({sendMagicLink:async()=>{}}),rQ({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:N}=await iQ(u);if(!T.length&&!C.length)return"up to date";return await N(),`${C.length+T.length} table(s) migrated`}async function aN(_,x){return(await r`
|
|
1805
1906
|
SELECT table_name FROM information_schema.tables
|
|
1806
1907
|
WHERE table_schema='public' AND table_name=${x}
|
|
1807
|
-
`.execute(_)).rows.length>0}async function
|
|
1908
|
+
`.execute(_)).rows.length>0}async function eQ(_){if(await aN(_,"plugin_migrations"))return;await r`
|
|
1808
1909
|
CREATE TABLE plugin_migrations (
|
|
1809
1910
|
plugin_id TEXT NOT NULL,
|
|
1810
1911
|
name TEXT NOT NULL,
|
|
1811
1912
|
timestamp TEXT NOT NULL,
|
|
1812
1913
|
PRIMARY KEY (plugin_id, name)
|
|
1813
1914
|
)
|
|
1814
|
-
`.execute(_)}async function
|
|
1915
|
+
`.execute(_)}async function lQ(_){if(!await aN(_,"kysely_migration"))return;let x=await r`
|
|
1815
1916
|
SELECT name, timestamp FROM kysely_migration
|
|
1816
1917
|
WHERE name LIKE '%/%'
|
|
1817
|
-
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:T}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let N=C.indexOf("/");if(N===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let E=C.substring(0,N),K=C.substring(N+1);try{await
|
|
1918
|
+
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:T}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let N=C.indexOf("/");if(N===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let E=C.substring(0,N),K=C.substring(N+1);try{await r`
|
|
1818
1919
|
INSERT INTO plugin_migrations (plugin_id, name, timestamp)
|
|
1819
1920
|
VALUES (${E}, ${K}, ${T})
|
|
1820
|
-
`.execute(_)}catch{let z=await
|
|
1921
|
+
`.execute(_)}catch{let z=await r`
|
|
1821
1922
|
SELECT COUNT(*) as cnt FROM plugin_migrations
|
|
1822
1923
|
WHERE plugin_id = ${E} AND name = ${K}
|
|
1823
|
-
`.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${K}, keeping in old table`);continue}}await
|
|
1924
|
+
`.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${K}, keeping in old table`);continue}}await r`
|
|
1824
1925
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
1825
|
-
`.execute(_)}}async function
|
|
1926
|
+
`.execute(_)}}async function dQ(_){await eQ(_),await lQ(_);let x=new oN({db:_,provider:{getMigrations:()=>Promise.resolve(XT)}}),{error:u,results:T}=await x.migrateToLatest(),C=0;if(T?.forEach((N)=>{if(N.status==="Success")C++;else if(N.status==="Error")console.error(`Failed to execute migration "${N.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function sQ(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await hN();let N=u??RT(),E=async()=>{if(!x&&!u)await cN(N).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await dQ(N.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function nL(){let _=RT(),x=new oN({db:_.db,provider:{getMigrations:()=>Promise.resolve(XT)}}),{error:u,results:T}=await x.migrateDown();if(T?.forEach((C)=>{if(C.status==="Success")console.log(`\u2705 Migration "${C.migrationName}" rolled back successfully`);else if(C.status==="Error")console.error(`\u274C Failed to rollback migration "${C.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await sQ(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{dQ as runKyselyMigrations,sQ as migrateToLatest,nL as migrateDown};
|