decocms 4.429.9 → 4.429.11
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-D6fR9-Kh.js → AlertCircle-CBsRk8Lx.js} +1 -1
- package/dist/client/assets/{AreaChart-D3g6jK1A.js → AreaChart-BUa_a6nM.js} +1 -1
- package/dist/client/assets/{ArrowLeft-DiOkGCI1.js → ArrowLeft-DQM86VKH.js} +1 -1
- package/dist/client/assets/{ArrowRight-DNObFWEA.js → ArrowRight-BHS_rjEm.js} +1 -1
- package/dist/client/assets/{ArrowUp-Qm1_vfBa.js → ArrowUp-CB6x-bpQ.js} +1 -1
- package/dist/client/assets/{CartesianChart-CIQ2bcnU.js → CartesianChart-DdVvGdLO.js} +1 -1
- package/dist/client/assets/{Check-p5ZrYqb6.js → Check-DBnRde8z.js} +1 -1
- package/dist/client/assets/{CheckCircle-DjVa5rwp.js → CheckCircle-D_X_e5fa.js} +1 -1
- package/dist/client/assets/{ChevronUp-CQ_Ndmgv.js → ChevronUp-Cv5zUzGd.js} +1 -1
- package/dist/client/assets/{Copy01-no2ZZAoV.js → Copy01-BFIfUYn1.js} +1 -1
- package/dist/client/assets/{CreditCard01-BPdTH-LK.js → CreditCard01-DAH-pnWc.js} +1 -1
- package/dist/client/assets/{DotsVertical-FLvQTkZX.js → DotsVertical-CRdk_dtC.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-Bf9yjefH.js → ErrorBarContext-CYnxfrzB.js} +1 -1
- package/dist/client/assets/{Image01-Bjku8bco.js → Image01-Bt6Pl4We.js} +1 -1
- package/dist/client/assets/{Key01-D548PT0E.js → Key01-xJ1aD-oy.js} +1 -1
- package/dist/client/assets/{Line-BSHtBz42.js → Line-BdZF_OCm.js} +1 -1
- package/dist/client/assets/{Link01-DX6Qdft3.js → Link01-CjC4QvhU.js} +1 -1
- package/dist/client/assets/{LinkExternal01-o2rJBAh0.js → LinkExternal01-DogUJf3S.js} +1 -1
- package/dist/client/assets/{Monitor01-De6BgGjU.js → Monitor01-CymS-XDH.js} +1 -1
- package/dist/client/assets/{Palette-CTKkYfpz.js → Palette-Vc3QN5gz.js} +1 -1
- package/dist/client/assets/{Plus-7DucV5vT.js → Plus-Dz836udh.js} +1 -1
- package/dist/client/assets/{SearchMd-QN2wlvPm.js → SearchMd-B1u9gFOK.js} +1 -1
- package/dist/client/assets/{Sector-6zmPiR9T.js → Sector-D6HY8tcq.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-D7jpE92Z.js → ShoppingBag01-DIIWZmJG.js} +1 -1
- package/dist/client/assets/{Sun-CF1vsofy.js → Sun-Bel4OPtg.js} +1 -1
- package/dist/client/assets/{Tool01-7fCUFk4M.js → Tool01-_L04zhwm.js} +1 -1
- package/dist/client/assets/{Trash01-CiA3gHsE.js → Trash01-Do0VjSPZ.js} +1 -1
- package/dist/client/assets/{Upload01-aKM-oPPY.js → Upload01-DiIg-X4G.js} +1 -1
- package/dist/client/assets/{User01-vQ2joBqZ.js → User01-3_6-RID1.js} +1 -1
- package/dist/client/assets/{UserSquare-D6OSjogb.js → UserSquare-DDD0tJxe.js} +1 -1
- package/dist/client/assets/{Users01-C3PXAlQO.js → Users01-C_xv9ME_.js} +1 -1
- package/dist/client/assets/{X-DCDQ3QOD.js → X-B7gmEKTG.js} +1 -1
- package/dist/client/assets/{XAxis-QiWeOkaO.js → XAxis-BLDlVfJS.js} +1 -1
- package/dist/client/assets/{XClose-DPKustWd.js → XClose-BYX54mTA.js} +1 -1
- package/dist/client/assets/{ZoomOut-Cx0_RhkV.js → ZoomOut-BxqXjzIK.js} +1 -1
- package/dist/client/assets/{access-gate-da5dSFPS.js → access-gate-B3k7WICQ.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-DZDyC_s4.js → add-connection-dialog-BnMhx5A3.js} +1 -1
- package/dist/client/assets/{agent-analytics-FvD3tKln.js → agent-analytics-Cydo5w5b.js} +1 -1
- package/dist/client/assets/agent-app-DzlWBW2N.js +1 -0
- package/dist/client/assets/{agent-assets-BOqP65qC.js → agent-assets-Cpff2qe8.js} +1 -1
- package/dist/client/assets/{agent-automation-DGwvVKUF.js → agent-automation-BXyzdM9-.js} +1 -1
- package/dist/client/assets/{agent-automations-DrLCjBc3.js → agent-automations-DFgTOTTo.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-B6lH7pxN.js → agent-connect-sources-DG__PRy7.js} +1 -1
- package/dist/client/assets/agent-deck-BMdgd29d.js +1 -0
- package/dist/client/assets/{agent-e2e-CN41euIX.js → agent-e2e-DIq9w4nJ.js} +1 -1
- package/dist/client/assets/{agent-experiments-CI9HL_qf.js → agent-experiments-DAyRYfVz.js} +1 -1
- package/dist/client/assets/{agent-file-DG6THDTg.js → agent-file-BAqRcsqb.js} +1 -1
- package/dist/client/assets/{agent-git-BEB-ZRI3.js → agent-git-C8V_a9F3.js} +1 -1
- package/dist/client/assets/{agent-hosting-B7gL6NW3.js → agent-hosting-BgfnqK9f.js} +1 -1
- package/dist/client/assets/{agent-icon-CU0i04so.js → agent-icon-CA_eugyJ.js} +1 -1
- package/dist/client/assets/agent-library-DsQedQHD.js +1 -0
- package/dist/client/assets/agent-library-file-W38uTfSE.js +1 -0
- package/dist/client/assets/{agent-monitor-CvE7W-kh.js → agent-monitor-BfrH-U3P.js} +1 -1
- package/dist/client/assets/{agent-overview-ymvObxGX.js → agent-overview-ZIRB9CPk.js} +1 -1
- package/dist/client/assets/agent-settings-B4glPAme.js +1 -0
- package/dist/client/assets/{agent-site-editor-VM0cGdql.js → agent-site-editor-CEG7wE-A.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-8SvZwyO7.js +2 -0
- package/dist/client/assets/{agent-site-editor-content-C1bhzwk0.js → agent-site-editor-content-BR12A6uB.js} +3 -3
- package/dist/client/assets/{agent-site-editor-preview-CMRwVo8Z.js → agent-site-editor-preview-JU7_hkBP.js} +3 -3
- package/dist/client/assets/agent-view-CCaivd39.js +1 -0
- package/dist/client/assets/{agent-view-guard-ONCvFPsE.js → agent-view-guard-NLsReNFS.js} +1 -1
- package/dist/client/assets/{agents-list-Ccm2cM2d.js → agents-list-CjvaFhVB.js} +1 -1
- package/dist/client/assets/{ai-providers-Dg72o8bX.js → ai-providers-DYSL3ljd.js} +1 -1
- package/dist/client/assets/{alert-zg70ln5j.js → alert-7kqtS1Pc.js} +1 -1
- package/dist/client/assets/{alert-dialog-D2qUdh2f.js → alert-dialog-CHkBuhE4.js} +1 -1
- package/dist/client/assets/{analytics-sections-F1MA5NJa.js → analytics-sections-DNxyjzl7.js} +1 -1
- package/dist/client/assets/api-keys-CUE1aMz_.js +1 -0
- package/dist/client/assets/{api-keys-Ddl2zKRP.js → api-keys-V8u4Ifd7.js} +1 -1
- package/dist/client/assets/{app-editor-DhlDIvP_.js → app-editor-DmJjwZtH.js} +1 -1
- package/dist/client/assets/{asset-utils-DdnFk1ID.js → asset-utils-8dt-kSDm.js} +1 -1
- package/dist/client/assets/{auth-catchall-Dvxy-XoT.js → auth-catchall-DqK6WSBX.js} +1 -1
- package/dist/client/assets/{auth-entry-BJqMofGi.js → auth-entry-BdncTadW.js} +1 -1
- package/dist/client/assets/{auth-BME_-CgD.js → auth-q7YF0Dxz.js} +1 -1
- package/dist/client/assets/{auth-split-layout-D8xVEYCp.js → auth-split-layout-mXZrpXLA.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-BoehZcx9.js → authenticate-and-persist-oauth-C4kvZvTx.js} +1 -1
- package/dist/client/assets/{automation-list-row-DdsKAMX_.js → automation-list-row-DGj89SOu.js} +1 -1
- package/dist/client/assets/{automation-runs-ByAFFz8U.js → automation-runs-DNPDdesw.js} +1 -1
- package/dist/client/assets/{automations-DgDBnY3i.js → automations-BH3tFdQ1.js} +1 -1
- package/dist/client/assets/{autosend-CTahflnC.js → autosend-DUyK37gL.js} +1 -1
- package/dist/client/assets/{avatar-BrhFB-vr.js → avatar-w7rqP9i-.js} +1 -1
- package/dist/client/assets/{badge-B9v8v8eG.js → badge-Dap5HZKW.js} +1 -1
- package/dist/client/assets/{block-document-Bkth-ApC.js → block-document-6nMnrHjt.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-BwDAcqvZ.js → blocks-preview-workspace-context-_v2KNGuN.js} +1 -1
- package/dist/client/assets/{buckets-J5lW_PXM.js → buckets-C1B5eLWC.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-C4UobK7K.js → build-improve-prompt-doc-iobE1X56.js} +1 -1
- package/dist/client/assets/{calendar-DTTqJkwq.js → calendar-DlbZbtjW.js} +1 -1
- package/dist/client/assets/{capability-load-error-tbPsNSsn.js → capability-load-error-Dnb7rYQP.js} +1 -1
- package/dist/client/assets/{category-editor-CzagSeDk.js → category-editor-BV9Aqv8g.js} +1 -1
- package/dist/client/assets/{chart-C3Z9gE6e.js → chart-5EtF65po.js} +1 -1
- package/dist/client/assets/{chat-context-D1RQ0hn6.js → chat-context-CH7Hqbj-.js} +1 -1
- package/dist/client/assets/{chat-draft-Rop4w833.js → chat-draft-BK1uu-tn.js} +1 -1
- package/dist/client/assets/{checkbox-CdMaRU6A.js → checkbox-8su86f-u.js} +1 -1
- package/dist/client/assets/{choose-editor-CFBBTZj5.js → choose-editor-KJmbbPn_.js} +1 -1
- package/dist/client/assets/{claim-phase-copy-DbTpDsdS.js → claim-phase-copy-BOWkQOp-.js} +1 -1
- package/dist/client/assets/{cli-auth-success-OgyK1vp5.js → cli-auth-success-BDC4g205.js} +1 -1
- package/dist/client/assets/{client-icons-CjK-B4SQ.js → client-icons-CkDjs1uk.js} +1 -1
- package/dist/client/assets/{collapsible-DCazOdpt.js → collapsible-Cel_qT13.js} +1 -1
- package/dist/client/assets/{collection-detail-BNiGcnH_.js → collection-detail-CzyPdt8Q.js} +1 -1
- package/dist/client/assets/{collection-display-button-B8SvlYyL.js → collection-display-button-Bo4KJe0T.js} +1 -1
- package/dist/client/assets/{collection-search-BF8lJCHd.js → collection-search-B1DADWJq.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-CuE_VJ7G.js → collection-table-wrapper-CLoJWjMa.js} +1 -1
- package/dist/client/assets/{collection-tabs-D3itJSz3.js → collection-tabs-bIpPWIyq.js} +1 -1
- package/dist/client/assets/{combobox-Bw5wYR-0.js → combobox-Bi8qnQyh.js} +1 -1
- package/dist/client/assets/{command-B--xK9e7.js → command-TzJZp5I3.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-C-Jd6iHr.js → companion-mcps-section-0aYWuSGj.js} +1 -1
- package/dist/client/assets/{config-DQXaNT9g.js → config-BWM8RKWP.js} +1 -1
- package/dist/client/assets/{connect-B5I2xOR7.js → connect-bqp2mG92.js} +1 -1
- package/dist/client/assets/{connect-layout-DzGD_Odc.js → connect-layout-BhB8Rxu4.js} +1 -1
- package/dist/client/assets/{connection--ml1d00t.js → connection-DgNZh3EL.js} +1 -1
- package/dist/client/assets/{connection-card-wiltHPZ1.js → connection-card-DaM62nM5.js} +1 -1
- package/dist/client/assets/{connection-detail-pIzH_4h3.js → connection-detail-CPjV3RWi.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-goLtSvt6.js → connection-form-helpers-sCMm62B0.js} +1 -1
- package/dist/client/assets/{connections-JUHnLgfe.js → connections-C4wmTt_I.js} +1 -1
- package/dist/client/assets/{context-menu-CZLB6_c8.js → context-menu-kP75vpqJ.js} +1 -1
- package/dist/client/assets/{context-PWYHxIhk.js → context-oo4qnz8p.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-CO0wJH61.js → create-organization-dialog-CTJ-zOuA.js} +1 -1
- package/dist/client/assets/{daily-pulse-BaFwFPPZ.js → daily-pulse-P-ajRFaK.js} +1 -1
- package/dist/client/assets/{decopilot-BSgekotY.js → decopilot-DSZqen65.js} +1 -1
- package/dist/client/assets/{dialog-DQNNu_f1.js → dialog-D_G_q2H_.js} +1 -1
- package/dist/client/assets/{discover-BfrAOTVO.js → discover-CIRueAEn.js} +1 -1
- package/dist/client/assets/{domain-settings-BEcdmXJZ.js → domain-settings-Dn6pAIBv.js} +1 -1
- package/dist/client/assets/{download-app-dialog-CD7kK8MH.js → download-app-dialog-CwVim3QE.js} +1 -1
- package/dist/client/assets/{drawer-BzY4tdXy.js → drawer-BMyJPw8f.js} +1 -1
- package/dist/client/assets/{editor-CJ05XGg1.js → editor-CC07i4jS.js} +1 -1
- package/dist/client/assets/{empty-state-CadUnitN.js → empty-state-BhiM4v_h.js} +1 -1
- package/dist/client/assets/{empty-state-CtEq3xuD.js → empty-state-Dv55rkxY.js} +1 -1
- package/dist/client/assets/{extract-connection-data-BhLqPUG4.js → extract-connection-data-C_lv-s0C.js} +1 -1
- package/dist/client/assets/{feature-gate-DNLsHU30.js → feature-gate-BdKd2yzJ.js} +1 -1
- package/dist/client/assets/{feature-paywall-D0PH-I-M.js → feature-paywall-B2ts3VFL.js} +1 -1
- package/dist/client/assets/{file-explorer-DLGs4T_f.js → file-explorer-D3DEEAXB.js} +1 -1
- package/dist/client/assets/{file-preview-CigrKhHQ.js → file-preview-DWrjo5-5.js} +1 -1
- package/dist/client/assets/{file-share-button-CIGySu_4.js → file-share-button-DazECMcE.js} +1 -1
- package/dist/client/assets/{file-type-icon-D4fy_gBA.js → file-type-icon-BodjK5PY.js} +1 -1
- package/dist/client/assets/flat-project-ivXXwplJ.js +1 -0
- package/dist/client/assets/{folder-icon-BesYWk0I.js → folder-icon-B00PfMC0.js} +1 -1
- package/dist/client/assets/{form-PPys9GfZ.js → form-Beg2FlFK.js} +1 -1
- package/dist/client/assets/{gateway-client-B_5Pnywu.js → gateway-client-Cb3_gWxK.js} +1 -1
- package/dist/client/assets/{general-CylsKp5I.js → general-DwpPcciu.js} +1 -1
- package/dist/client/assets/{home-BaaBv835.js → home-BOA0Z7y7.js} +1 -1
- package/dist/client/assets/{icon-button-BQIN0baN.js → icon-button-CzJ3nv_m.js} +1 -1
- package/dist/client/assets/{index-C6j8vkbx.js → index-7hWhuiev.js} +1 -1
- package/dist/client/assets/{index-DYebWDZA.js → index-B-4W25Uy.js} +1 -1
- package/dist/client/assets/{index-DHuw79Pq.js → index-B7XoxC72.js} +3 -3
- package/dist/client/assets/{index-DsDNebU_.js → index-BWp2BG8j.js} +1 -1
- package/dist/client/assets/{index-D8-n4neo.js → index-BhpWH9io.js} +1 -1
- package/dist/client/assets/{index-D94jgO7k.js → index-BqAOxvC6.js} +1 -1
- package/dist/client/assets/{index-DR9xwPLz.js → index-Cefc7dpL.js} +1 -1
- package/dist/client/assets/{index-CKELzPxK.js → index-CxHqpHad.js} +1 -1
- package/dist/client/assets/{index-O3cKdi88.js → index-D6807Bz9.js} +1 -1
- package/dist/client/assets/{index-5C5Y6fog.js → index-DdrHtFlh.js} +1 -1
- package/dist/client/assets/{index-CqBgee54.js → index-DpjAZrGV.js} +1 -1
- package/dist/client/assets/{index-Dzu1eSUT.js → index-DuAxrYRg.js} +1 -1
- package/dist/client/assets/{index-DYpm1LTw.js → index-POiIKjgm.js} +1 -1
- package/dist/client/assets/{index-DZBQ5pnK.js → index-SeA1-7VG.js} +2 -2
- package/dist/client/assets/{index-redirect-BnyH-Hi_.js → index-redirect-NhzcL0eP.js} +1 -1
- package/dist/client/assets/{index-CZzS4-kW.js → index-sGwtPWhY.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-Db8Je-eI.js → infiniteQueryObserver-DCnG5Eh_.js} +1 -1
- package/dist/client/assets/{infra-billing-CO97-my3.js → infra-billing-BE4v0YkX.js} +1 -1
- package/dist/client/assets/{input-BiNRWxFp.js → input-1Ptdd5D_.js} +1 -1
- package/dist/client/assets/{input-D7Pveqzt.js → input-Bz897kDv.js} +1 -1
- package/dist/client/assets/{input-5TfImLgg.js → input-CS2pYloZ.js} +3 -3
- package/dist/client/assets/{integration-icon-Dznni3P6.js → integration-icon-BB1ep1sk.js} +1 -1
- package/dist/client/assets/{label-CbGYdCUa.js → label-CexOb-Fs.js} +1 -1
- package/dist/client/assets/{last-preview-page-B66iZ_7L.js → last-preview-page-Dxek1LJf.js} +1 -1
- package/dist/client/assets/{layout-JghjWMYu.js → layout-B1d6yqKY.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-DwiyiXhB.js → legacy-agents-deep-DZ83EN1z.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-vYtsnLSf.js → legacy-main-redirect-Bltboxvn.js} +1 -1
- package/dist/client/assets/library-CKMBrvRl.js +1 -0
- package/dist/client/assets/{library-tab-BXidRO6s.js → library-tab-BM2Uz82l.js} +1 -1
- package/dist/client/assets/{login-BHm4mxjj.js → login-WIs8dW-o.js} +1 -1
- package/dist/client/assets/{markdown-toDOgADF.js → markdown-DoT0mJtP.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-Bom1W11v.js → mcp-app-renderer-_n4Ynb7d.js} +1 -1
- package/dist/client/assets/{mcp-oauth-DMXsQOs9.js → mcp-oauth-DbrES3uk.js} +1 -1
- package/dist/client/assets/{members-DiAGMgH5.js → members-cQsvD1re.js} +1 -1
- package/dist/client/assets/{message-templates-D5rRhch8.js → message-templates-BSqUGcQQ.js} +1 -1
- package/dist/client/assets/{mini-report-page-DjC3-YlE.js → mini-report-page-CWTvIMVP.js} +1 -1
- package/dist/client/assets/{mock-board-CKJpTOR8.js → mock-board-a7UA4thR.js} +1 -1
- package/dist/client/assets/{monaco-editor-XLslvLAa.js → monaco-editor-YwuYmRA1.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-C5wJXWvg.js → monitoring-stats-row-B7hKD76n.js} +1 -1
- package/dist/client/assets/{multi-select-CK1qihl4.js → multi-select-CBylRCF0.js} +1 -1
- package/dist/client/assets/{mustache-DVPV68lR.js → mustache-DZYYziuF.js} +1 -1
- package/dist/client/assets/{new-project-dialog-BkEZfgZM.js → new-project-dialog-g2-Bma2k.js} +1 -1
- package/dist/client/assets/{oauth-callback-DxIQPlFn.js → oauth-callback-BcFmk_z8.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-Cux-r-iC.js → oauth-callback-ai-provider-CDm4_1nu.js} +1 -1
- package/dist/client/assets/{onboarding-D_3hO5Zi.js → onboarding-H9CS8Iay.js} +1 -1
- package/dist/client/assets/{openai-conversation-oM48RqXg.js → openai-conversation-DWPacwzX.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-BxEtZaho.js → optimistic-project-sidebar-views-CKKUobpH.js} +1 -1
- package/dist/client/assets/{org-file-open-context-BkAoUQAN.js → org-file-open-context-D3Ci9oZU.js} +1 -1
- package/dist/client/assets/{organization-choice-B23Ys-4G.js → organization-choice-B0m7g2MO.js} +1 -1
- package/dist/client/assets/{orgs-Bi6PVtkA.js → orgs-BiHWIgTX.js} +1 -1
- package/dist/client/assets/{page-seo-form-gzaghpQQ.js → page-seo-form-C-Y-8Fev.js} +1 -1
- package/dist/client/assets/{pair-C-DSqZ6u.js → pair-Du9GHFu-.js} +1 -1
- package/dist/client/assets/{plan-ladder-BX8e_J6O.js → plan-ladder-DH_CWHw3.js} +1 -1
- package/dist/client/assets/{popover-DHUcPo1r.js → popover-D-fQ3hW5.js} +1 -1
- package/dist/client/assets/{post-calendar-BuVcXO7I.js → post-calendar-D5yjC9lO.js} +1 -1
- package/dist/client/assets/{post-editor-DRKVpniU.js → post-editor-lIVNV5_9.js} +1 -1
- package/dist/client/assets/{preview-content-C2zuZls8.js → preview-content-QEZBCWf1.js} +1 -1
- package/dist/client/assets/{preview-dialog-Div-6vzY.js → preview-dialog-DAwLnUux.js} +1 -1
- package/dist/client/assets/{profile-w-U1YUy-.js → profile-BZfApePi.js} +1 -1
- package/dist/client/assets/{project-app-view-CTkkJXZf.js → project-app-view-DrgopPH-.js} +1 -1
- package/dist/client/assets/{project-feed-CIKKDaUv.js → project-feed-D-5P39Q1.js} +1 -1
- package/dist/client/assets/{project-icon-Dv5T9UXQ.js → project-icon-BHDbxhiz.js} +1 -1
- package/dist/client/assets/project-reports-DM67DFFF.js +1 -0
- package/dist/client/assets/project-tasks-C0PJMJ3b.js +1 -0
- package/dist/client/assets/{projects-0mPeWaUw.js → projects-Dvh3xKKD.js} +1 -1
- package/dist/client/assets/{projects-empty-state-qRbFEP1a.js → projects-empty-state-DlByqyV2.js} +1 -1
- package/dist/client/assets/{prompts-FPQYcY8_.js → prompts-BpLah534.js} +1 -1
- package/dist/client/assets/record-editor-DXcOlOWe.js +1 -0
- package/dist/client/assets/{redirect-editor-DGJ9lwKX.js → redirect-editor-DhQjt4kj.js} +1 -1
- package/dist/client/assets/{reports-BmFsfB-t.js → reports-CzVDDgM1.js} +1 -1
- package/dist/client/assets/reports-DGY72adg.js +1 -0
- package/dist/client/assets/{reports-onboarding-6XVICcRr.js → reports-onboarding-BFR8PnG2.js} +1 -1
- package/dist/client/assets/{reports-tab-CKAtnV_W.js → reports-tab-BY-j2r-Z.js} +2 -2
- package/dist/client/assets/{repositories-Kx63fHV7.js → repositories-BMRv21PC.js} +1 -1
- package/dist/client/assets/{repository-binding-D2nl3E9m.js → repository-binding-BT7A4gb6.js} +1 -1
- package/dist/client/assets/{repository-import-picker-C4UUR7Lt.js → repository-import-picker-BUBz-rKg.js} +1 -1
- package/dist/client/assets/{repository-picker-C9g49n3G.js → repository-picker-BncrVloI.js} +1 -1
- package/dist/client/assets/{require-capability-DGjTQApq.js → require-capability-GFQZqsPD.js} +1 -1
- package/dist/client/assets/{required-auth-layout-DH23GR15.js → required-auth-layout-BJDTl2Qf.js} +1 -1
- package/dist/client/assets/{reset-password-BwSzqw0H.js → reset-password-BQEWbKSr.js} +1 -1
- package/dist/client/assets/{resizable-MsT9Iquy.js → resizable-D6pBUAS8.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-Cx-bOLi-.js → resolve-tab-icon-Cw0eeTdZ.js} +1 -1
- package/dist/client/assets/{review-settings-D9CPsAF9.js → review-settings-Dsd2Bj4H.js} +1 -1
- package/dist/client/assets/{rich-text-link-control-DfuAHVFX.js → rich-text-link-control-Dwi9SnJC.js} +1 -1
- package/dist/client/assets/{roles-DKVk8OJh.js → roles-BP_g5luE.js} +1 -1
- package/dist/client/assets/route-CvTO2_0G.js +1 -0
- package/dist/client/assets/route-Czmthz8Z.js +1 -0
- package/dist/client/assets/{route-cksgldWz.js → route-DqClilbi.js} +1 -1
- package/dist/client/assets/{runnable-block-editor-oGO4SpDx.js → runnable-block-editor-BB5tmnWs.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-DeDlVqJ-.js → sandbox-lifecycle-context-B89gCMcP.js} +1 -1
- package/dist/client/assets/{schema-C5Lr3NgE.js → schema-C9Vqid1E.js} +1 -1
- package/dist/client/assets/{scroll-area-Bjp7MJ8C.js → scroll-area-DAOBWSsU.js} +1 -1
- package/dist/client/assets/{search-input-_rysHpm7.js → search-input-DjXFRhm-.js} +1 -1
- package/dist/client/assets/{search-toggle-D88qbPIv.js → search-toggle-Co5sVTre.js} +1 -1
- package/dist/client/assets/{secret-picker-5ZvS8PcI.js → secret-picker-6VoSbhU6.js} +1 -1
- package/dist/client/assets/{secrets-BR1Uct_E.js → secrets-DO-TaKjp.js} +1 -1
- package/dist/client/assets/{sections-editor-EcDLaZRZ.js → sections-editor-DmH0qDLQ.js} +1 -1
- package/dist/client/assets/{select-Cz-o9PEJ.js → select-kBSp9qrS.js} +1 -1
- package/dist/client/assets/{select-model-BuAbRLcQ.js → select-model-D4Zb1zjh.js} +1 -1
- package/dist/client/assets/{seo-editor-CHNZw1_K.js → seo-editor-BJSpLz2j.js} +1 -1
- package/dist/client/assets/{separator-BkBMsQ_7.js → separator-CG_HkXVJ.js} +1 -1
- package/dist/client/assets/{settings-tab-D9bw6k3t.js → settings-tab-bMUKAPGy.js} +1 -1
- package/dist/client/assets/{sheet-DsThkx1E.js → sheet-CMvEZxPX.js} +1 -1
- package/dist/client/assets/{shell-layout-DBvOp7at.js → shell-layout-D9kxU4hw.js} +1 -1
- package/dist/client/assets/{skills-B_K2qpIo.js → skills-77gfesBl.js} +1 -1
- package/dist/client/assets/{sso-DTHpDJVQ.js → sso-DH19WDd7.js} +1 -1
- package/dist/client/assets/{suggestion-BoL4aGbo.js → suggestion-B-KhIwu9.js} +1 -1
- package/dist/client/assets/{switch-DcWJRerK.js → switch-D8KuILs8.js} +1 -1
- package/dist/client/assets/{synced-repos-CACQuO21.js → synced-repos-CFAQ0toL.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-CtbRVkli.js → tab-icon-glyph-DU3FMgeJ.js} +1 -1
- package/dist/client/assets/{table-wfzNVXjf.js → table-BYLalMqr.js} +1 -1
- package/dist/client/assets/{tabs-Cjw7-YIz.js → tabs-BJupNNSP.js} +1 -1
- package/dist/client/assets/{task-board-UgijzwOv.js → task-board-BT3fE574.js} +1 -1
- package/dist/client/assets/{task-route-BJNk9z_I.js → task-route-Dt9qq9bF.js} +1 -1
- package/dist/client/assets/{task-status-BTLSYdOf.js → task-status-DDTbQ0HY.js} +1 -1
- package/dist/client/assets/{taskboard-analytics-B_uCO32V.js → taskboard-analytics-CSyMUKJe.js} +1 -1
- package/dist/client/assets/{tasks-D-IkMJYR.js → tasks-BzGjVju6.js} +1 -1
- package/dist/client/assets/tasks-J6z-r7Pr.js +1 -0
- package/dist/client/assets/{textarea-yG3fP7UK.js → textarea-B9BRU1bc.js} +1 -1
- package/dist/client/assets/{thread-analytics-BrZzoT4x.js → thread-analytics-5CbKouY6.js} +1 -1
- package/dist/client/assets/{thread-intent-D45ZuXub.js → thread-intent-BUQ1Af7f.js} +1 -1
- package/dist/client/assets/{thread-route-hhzohhx0.js → thread-route-1M9nlDKU.js} +1 -1
- package/dist/client/assets/{thread-route-Cc8Rnkyi.js → thread-route-gvPWKeMT.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-GfOZtMv2.js → thread-sheet-body-DpEStgQy.js} +1 -1
- package/dist/client/assets/{toggle-group-hKLMSDYW.js → toggle-group-Byiht42c.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-CmvWHMWS.js → toolbar-icon-button-BdVkBti4.js} +1 -1
- package/dist/client/assets/{tooltip-V0jMCwI1.js → tooltip-yfjxbibs.js} +1 -1
- package/dist/client/assets/{track-ClA9bvTA.js → track-pJAtjdmk.js} +1 -1
- package/dist/client/assets/{types-Bfx6WemM.js → types-3TrcwJ8y.js} +1 -1
- package/dist/client/assets/{usage-stats-8fJ3lLlx.js → usage-stats-Ca6msRRg.js} +1 -1
- package/dist/client/assets/{use-ai-providers-BiezPBdC.js → use-ai-providers-DnpTy14P.js} +1 -1
- package/dist/client/assets/{use-automations-CzJvLh6y.js → use-automations-DrInOjU2.js} +1 -1
- package/dist/client/assets/{use-autosave-C5AE6tVZ.js → use-autosave-BRPaAETB.js} +1 -1
- package/dist/client/assets/{use-chat-layout-state-Bjv6Kmqp.js → use-chat-layout-state-JcraXfPX.js} +1 -1
- package/dist/client/assets/{use-connect-companion-Edkf4-6e.js → use-connect-companion-Cwc69AkY.js} +1 -1
- package/dist/client/assets/{use-connection-TzIfXScd.js → use-connection-k5_5uR3b.js} +1 -1
- package/dist/client/assets/{use-copy-yiXmKlwe.js → use-copy-BYeZ3Xow.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-B8iud2Sc.js → use-create-virtual-mcp-BbRCT2zC.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-DEFDZEQ8.js → use-date-fns-locale-CJeMfZEM.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-CqmmZdyR.js → use-debounced-autosave-zAtbjiY9.js} +1 -1
- package/dist/client/assets/{use-debounced-value-BeO0DJwg.js → use-debounced-value-PYeb0gKv.js} +1 -1
- package/dist/client/assets/{use-deco-credits-aHYDh6Nu.js → use-deco-credits-D9JLAx0n.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-d7FsiRbY.js → use-decopilot-events-CkMfbWou.js} +1 -1
- package/dist/client/assets/{use-delete-connection-C6-e1hl2.js → use-delete-connection-DIPbOF5U.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-D4Aiw9gd.js → use-deployment-admin-SAcOmsN7.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-C2NMaYVu.js → use-fast-preview-draft-url-DJ6bRt5_.js} +1 -1
- package/dist/client/assets/{use-file-configs-Bb5i5kzp.js → use-file-configs-BzqpeQ0d.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-M-6zbbsB.js → use-infinite-scroll-Dw-y2hfV.js} +1 -1
- package/dist/client/assets/{use-join-requests-DdJv9q2n.js → use-join-requests-C4OTy5lN.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-DfNPCvDK.js → use-main-panel-tabs-jftbJtbr.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-BGPcEhML.js → use-mcp-auth-status--O3HmL_k.js} +1 -1
- package/dist/client/assets/{use-mcp-client-DGrcPC5r.js → use-mcp-client-BAepC6X6.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-IUYMfB-t.js → use-mcp-prompts-Bbbgj-s1.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-CqzyWLqP.js → use-mcp-tools-CfDbxJnV.js} +1 -1
- package/dist/client/assets/{use-members-BFVKg_WJ.js → use-members-DJKE1YkS.js} +1 -1
- package/dist/client/assets/{use-mobile-BbZ9Bk36.js → use-mobile-CDNeDm15.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-v6_M_Lv8.js → use-navigate-to-agent-lo205_xc.js} +1 -1
- package/dist/client/assets/use-new-blocks-editor-Ctggnurf.js +1 -0
- package/dist/client/assets/{use-open-billing-url-CBRV16pr.js → use-open-billing-url-C6Ij9R36.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-s3yV-gCV.js → use-org-auth-client-D7iHD1Ui.js} +1 -1
- package/dist/client/assets/{use-org-fs-DLLHrevC.js → use-org-fs-CWxtqQfG.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-DCNujM3B.js → use-org-repo-syncs-B87b2MgR.js} +1 -1
- package/dist/client/assets/{use-org-sso-GuXeEBOc.js → use-org-sso-DGQcT28G.js} +1 -1
- package/dist/client/assets/{use-organization-roles-ZmVwWDLk.js → use-organization-roles-DbF1ZsIj.js} +1 -1
- package/dist/client/assets/{use-organization-settings-Bud8t-pB.js → use-organization-settings-cowPST4C.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-P-qoUN3Y.js → use-panel-navigate-CNvce5u7.js} +1 -1
- package/dist/client/assets/{use-project-scope-CKrmwpiF.js → use-project-scope-Bwcgkkiq.js} +1 -1
- package/dist/client/assets/{use-releases-C1Rf328o.js → use-releases-B8E-iWd3.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-B1Shnig3.js → use-reports-diagnostic-B6RZRwrm.js} +1 -1
- package/dist/client/assets/{use-secrets-Diaq210I.js → use-secrets-Ck8BOzJB.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-vrUWdFAS.js → use-section-preview-base-C4KKs9Y2.js} +1 -1
- package/dist/client/assets/{use-session-runtime-Dd4IC7IN.js → use-session-runtime-COoJgkGM.js} +1 -1
- package/dist/client/assets/{use-tags-BrQETtMc.js → use-tags-C4YKrn8u.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-C1XXYkja.js → use-task-board-analytics-B7shq_7M.js} +1 -1
- package/dist/client/assets/{use-task-board-events-DW_ymOYd.js → use-task-board-events-BG7W0vtv.js} +1 -1
- package/dist/client/assets/{use-task-metadata-CHJgQsit.js → use-task-metadata-D6LTH6sv.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-XGBihKjG.js → use-thread-analytics-CLiBHaxr.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-CZi91IMj.js → use-thread-outputs-CkHIeKeH.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-CCk_UO9j.js +1 -0
- package/dist/client/assets/{useQueries-Cii8MVzd.js → useQueries-i9XuINKH.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DephcCQc.js +1 -0
- package/dist/client/assets/{users-C-N_QqPz.js → users-DD0v5Paa.js} +1 -1
- package/dist/client/assets/{utils-DdYfsNrk.js → utils-CzMtFgjv.js} +1 -1
- package/dist/client/assets/{variant-calendar-CbolY3W4.js → variant-calendar-DcKqClIs.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-BE-XpZUe.js → variant-matcher-override-B1kmfrw5.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-UcflwKbx.js → view-mode-toggle-C5O8RgD3.js} +1 -1
- package/dist/client/assets/{virtual-mcp-5qC_v8pJ.js → virtual-mcp-C4v9JSEi.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +565 -565
- package/dist/server/migrate-dbos.js +2 -2
- package/dist/server/migrate.js +31 -31
- package/dist/server/server.js +307 -307
- package/package.json +1 -1
- package/dist/client/assets/agent-app-BhmwaXpz.js +0 -1
- package/dist/client/assets/agent-deck-Cyl90eqt.js +0 -1
- package/dist/client/assets/agent-library-Ev_ZnLTN.js +0 -1
- package/dist/client/assets/agent-library-file-CVAOCG3S.js +0 -1
- package/dist/client/assets/agent-settings-Dg4hz_AU.js +0 -1
- package/dist/client/assets/agent-site-editor-code-IIouddwd.js +0 -2
- package/dist/client/assets/agent-view-5kLPHs5Y.js +0 -1
- package/dist/client/assets/api-keys-CNrhvLa5.js +0 -1
- package/dist/client/assets/flat-project-D7xgVWbZ.js +0 -1
- package/dist/client/assets/library-Cj7GFkYr.js +0 -1
- package/dist/client/assets/project-reports-R2nxKE9N.js +0 -1
- package/dist/client/assets/project-tasks-B-TqLh_E.js +0 -1
- package/dist/client/assets/record-editor-BdDJOWw7.js +0 -1
- package/dist/client/assets/reports-DsLoZ4VI.js +0 -1
- package/dist/client/assets/route-CHyxOjjb.js +0 -1
- package/dist/client/assets/route-XD1IeFV8.js +0 -1
- package/dist/client/assets/tasks-BMYAskJr.js +0 -1
- package/dist/client/assets/use-new-blocks-editor-C-Vw3tr-.js +0 -1
- package/dist/client/assets/useInfiniteQuery-Pi2cEwSS.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-3wEhSKVP.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null,x)}var m=(_,x)=>{for(var u in x)GN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:fN.bind(x,u)})};import{Migrator as MN,sql as l}from"kysely";var a_={};m(a_,{up:()=>ON,down:()=>SN});import{sql as eT}from"kysely";async function ON(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",eT`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",eT`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function SN(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var r_={};m(r_,{up:()=>AN,down:()=>
|
|
2
|
+
var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null,x)}var m=(_,x)=>{for(var u in x)GN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:fN.bind(x,u)})};import{Migrator as MN,sql as l}from"kysely";var a_={};m(a_,{up:()=>ON,down:()=>SN});import{sql as eT}from"kysely";async function ON(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",eT`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",eT`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function SN(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var r_={};m(r_,{up:()=>AN,down:()=>IN});import{sql as v}from"kysely";async function AN(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await v`ALTER TABLE organization_settings
|
|
3
3
|
DROP COLUMN IF EXISTS registry_config,
|
|
4
4
|
DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await v`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
|
|
5
5
|
BEGIN RETURN value::jsonb;
|
|
@@ -14,7 +14,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
14
14
|
)`.execute(_),await v`DELETE FROM connections
|
|
15
15
|
WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
|
|
16
16
|
OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
|
|
17
|
-
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function
|
|
17
|
+
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function IN(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var e_={};m(e_,{up:()=>nN,down:()=>wN});import{sql as lT}from"kysely";async function nN(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await lT`
|
|
18
18
|
select organization_id, metadata
|
|
19
19
|
from connections
|
|
20
20
|
where connection_type = 'VIRTUAL'
|
|
@@ -238,7 +238,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
238
238
|
);
|
|
239
239
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
240
240
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
241
|
-
`.execute(_)}async function fE(_){await _.schema.dropTable("github_connect_flows").execute()}var Fx={};m(Fx,{up:()=>OE,down:()=>SE});async function OE(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function SE(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Rx={};m(Rx,{up:()=>AE,down:()=>
|
|
241
|
+
`.execute(_)}async function fE(_){await _.schema.dropTable("github_connect_flows").execute()}var Fx={};m(Fx,{up:()=>OE,down:()=>SE});async function OE(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function SE(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Rx={};m(Rx,{up:()=>AE,down:()=>IE});import{sql as Z_}from"kysely";async function AE(_){await Z_`
|
|
242
242
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
243
243
|
DECLARE
|
|
244
244
|
metadata_json jsonb;
|
|
@@ -294,7 +294,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
294
294
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
295
295
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
296
296
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
297
|
-
`.execute(_)}async function nE(_){await Z_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await Z_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Yx={};m(Yx,{up:()=>IE,down:()=>wE});import{sql as y}from"kysely";async function IE(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function wE(_){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 Hx={};m(Hx,{up:()=>VE,down:()=>kE});import{sql as TK}from"kysely";async function VE(_){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(TK`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(TK`CURRENT_TIMESTAMP`)).execute()}async function kE(_){await _.schema.dropTable("organization_settings").execute()}var Mx={};m(Mx,{up:()=>pE,down:()=>vE});async function pE(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function vE(_){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 Bx={};m(Bx,{up:()=>gE,down:()=>qE});async function gE(_){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 qE(_){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 Gx={};m(Gx,{up:()=>iE,down:()=>tE});async function iE(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function tE(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var yx={};m(yx,{up:()=>hE,down:()=>oE});import{sql as cE}from"kysely";async function hE(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",cE`text`).execute()}async function oE(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var fx={};m(fx,{up:()=>aE,down:()=>rE});async function aE(_){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 rE(_){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 Ox={};m(Ox,{up:()=>eE,down:()=>lE});import{sql as __}from"kysely";async function eE(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function lE(_){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 Sx={};m(Sx,{up:()=>sE,down:()=>bE});import{sql as dE}from"kysely";async function sE(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function bE(_){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(dE`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 Ax={};m(Ax,{up:()=>_z,down:()=>xz});import{sql as W_}from"kysely";async function _z(_){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(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 _.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(W_`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 W_`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 xz(_){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 nx={};m(nx,{up:()=>uz,down:()=>mz});async function uz(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function mz(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Ix={};m(Ix,{up:()=>Cz,down:()=>Tz});import{sql as D_}from"kysely";async function Cz(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await D_`
|
|
297
|
+
`.execute(_)}async function IE(_){await Z_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await Z_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Yx={};m(Yx,{up:()=>nE,down:()=>wE});import{sql as y}from"kysely";async function nE(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function wE(_){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 Hx={};m(Hx,{up:()=>VE,down:()=>kE});import{sql as TK}from"kysely";async function VE(_){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(TK`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(TK`CURRENT_TIMESTAMP`)).execute()}async function kE(_){await _.schema.dropTable("organization_settings").execute()}var Mx={};m(Mx,{up:()=>pE,down:()=>vE});async function pE(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function vE(_){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 Bx={};m(Bx,{up:()=>gE,down:()=>qE});async function gE(_){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 qE(_){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 Gx={};m(Gx,{up:()=>iE,down:()=>tE});async function iE(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function tE(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var yx={};m(yx,{up:()=>hE,down:()=>oE});import{sql as cE}from"kysely";async function hE(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",cE`text`).execute()}async function oE(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var fx={};m(fx,{up:()=>aE,down:()=>rE});async function aE(_){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 rE(_){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 Ox={};m(Ox,{up:()=>eE,down:()=>lE});import{sql as __}from"kysely";async function eE(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function lE(_){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 Sx={};m(Sx,{up:()=>sE,down:()=>bE});import{sql as dE}from"kysely";async function sE(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function bE(_){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(dE`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 Ax={};m(Ax,{up:()=>_z,down:()=>xz});import{sql as W_}from"kysely";async function _z(_){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(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 _.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(W_`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 W_`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 xz(_){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 Ix={};m(Ix,{up:()=>uz,down:()=>mz});async function uz(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function mz(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var nx={};m(nx,{up:()=>Cz,down:()=>Tz});import{sql as D_}from"kysely";async function Cz(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await D_`
|
|
298
298
|
UPDATE gateways
|
|
299
299
|
SET tool_selection_mode = CASE
|
|
300
300
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
@@ -373,7 +373,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
373
373
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
374
374
|
FROM connections
|
|
375
375
|
WHERE connection_type = 'VIRTUAL'
|
|
376
|
-
`.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 ax={};m(ax,{up:()=>Sz,down:()=>Az});async function Sz(_){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 Az(_){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:()=>
|
|
376
|
+
`.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 ax={};m(ax,{up:()=>Sz,down:()=>Az});async function Sz(_){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 Az(_){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:()=>Iz,down:()=>nz});import{sql as f}from"kysely";async function Iz(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(f`CURRENT_TIMESTAMP`)).execute(),await f`
|
|
377
377
|
INSERT INTO connection_aggregations_new (
|
|
378
378
|
id, parent_connection_id, child_connection_id,
|
|
379
379
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -382,7 +382,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
382
382
|
id, parent_connection_id, child_connection_id,
|
|
383
383
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
384
384
|
FROM connection_aggregations
|
|
385
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await f`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await f`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await f`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function
|
|
385
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await f`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await f`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await f`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function nz(_){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(f`CURRENT_TIMESTAMP`)).execute(),await f`
|
|
386
386
|
INSERT INTO connection_aggregations_new (
|
|
387
387
|
id, parent_connection_id, child_connection_id,
|
|
388
388
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -456,7 +456,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
456
456
|
updated_at = CURRENT_TIMESTAMP
|
|
457
457
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
458
458
|
AND app_name = 'deco-registry'
|
|
459
|
-
`.execute(_)}var Nu={};m(Nu,{up:()=>K0,down:()=>N0});import{sql as T0}from"kysely";async function K0(_){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(T0`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 N0(_){await _.schema.dropTable("ai_provider_keys").execute()}var Eu={};m(Eu,{up:()=>z0,down:()=>P0});import{sql as E0}from"kysely";async function z0(_){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(E0`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function P0(_){await _.schema.dropTable("oauth_pkce_states").execute()}var zu={};m(zu,{up:()=>$0,down:()=>U0});import{sql as
|
|
459
|
+
`.execute(_)}var Nu={};m(Nu,{up:()=>K0,down:()=>N0});import{sql as T0}from"kysely";async function K0(_){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(T0`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 N0(_){await _.schema.dropTable("ai_provider_keys").execute()}var Eu={};m(Eu,{up:()=>z0,down:()=>P0});import{sql as E0}from"kysely";async function z0(_){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(E0`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function P0(_){await _.schema.dropTable("oauth_pkce_states").execute()}var zu={};m(zu,{up:()=>$0,down:()=>U0});import{sql as I}from"kysely";async function $0(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(I`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(I`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).execute(),await I`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await I`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await I`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function U0(_){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 Pu={};m(Pu,{up:()=>X0,down:()=>j0});async function X0(_){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 j0(_){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 $u={};m($u,{up:()=>J0,down:()=>Q0});async function J0(_){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 Q0(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Uu={};m(Uu,{up:()=>Z0,down:()=>W0});import{sql as $K}from"kysely";async function Z0(_){await $K`
|
|
460
460
|
UPDATE connections
|
|
461
461
|
SET title = 'CMS MCP',
|
|
462
462
|
tools = NULL,
|
|
@@ -510,12 +510,12 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
510
510
|
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(N)=>N.primaryKey()).addColumn("virtual_mcp_id","text",(N)=>N.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(N)=>N.notNull()).addColumn("connection_id","text",(N)=>N.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(N)=>N.notNull()).addColumn("updated_at","text",(N)=>N.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 N of u)T.set(N.organizationId,N.userId);let C=new Map;for(let N of x){let z=`vir_${q()}`;C.set(N.id,z);let $=N.ui?JSON.parse(N.ui):null,U=JSON.stringify({enabled_plugins:N.enabled_plugins?JSON.parse(N.enabled_plugins):null,ui:$,migrated_from_project:N.id,migrated_project_slug:N.slug}),Q=T.get(N.organization_id);if(!Q)continue;await _.insertInto("connections").values({id:z,organization_id:N.organization_id,created_by:Q,updated_by:null,title:N.name,description:N.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:N.created_at,updated_at:N.updated_at}).execute()}let K=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let N of K){let z=C.get(N.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${q()}`,parent_connection_id:z,child_connection_id:N.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:N.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 N of E){let z=C.get(N.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${q()}`,virtual_mcp_id:z,plugin_id:N.plugin_id,connection_id:N.connection_id,settings:N.settings,created_at:N.created_at,updated_at:N.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function O0(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Du`
|
|
511
511
|
ALTER TABLE connections
|
|
512
512
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
513
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var Fu={};m(Fu,{up:()=>A0,down:()=>
|
|
513
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var Fu={};m(Fu,{up:()=>A0,down:()=>I0});import{sql as S0}from"kysely";async function A0(_){await S0`
|
|
514
514
|
DELETE FROM connections
|
|
515
515
|
WHERE connection_type = 'VIRTUAL'
|
|
516
516
|
AND subtype = 'project'
|
|
517
517
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
518
|
-
`.execute(_)}async function
|
|
518
|
+
`.execute(_)}async function I0(_){}var Ru={};m(Ru,{up:()=>w0,down:()=>V0});import{sql as n0}from"kysely";async function w0(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await n0`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function V0(_){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 Hu={};m(Hu,{up:()=>k0,down:()=>p0});import{sql as Yu}from"kysely";async function k0(_){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(Yu`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Yu`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(Yu`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 p0(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var Mu={};m(Mu,{up:()=>v0,down:()=>g0});async function v0(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function g0(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var Bu={};m(Bu,{up:()=>q0,down:()=>i0});async function q0(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function i0(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var yu={};m(yu,{up:()=>c0,down:()=>h0});import{sql as jK}from"kysely";function Gu(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function t0(_){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 Gu(T)}catch{return Gu(_.connection_url)}if(_.title)return Gu(_.title);return _.id}async function c0(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await jK`
|
|
519
519
|
SELECT id, app_name, connection_url, title FROM connections
|
|
520
520
|
`.execute(_);for(let u of x.rows){let T=t0(u);await jK`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 h0(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var fu={};m(fu,{up:()=>o0,down:()=>a0});import{sql as u_}from"kysely";async function o0(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await u_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await u_`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 a0(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await u_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await u_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await u_`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 Ou={};m(Ou,{up:()=>r0,down:()=>e0});async function r0(_){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 e0(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var Su={};m(Su,{up:()=>l0,down:()=>d0});import{sql as F_}from"kysely";async function l0(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await F_`
|
|
521
521
|
UPDATE threads
|
|
@@ -534,7 +534,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
534
534
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
535
535
|
ELSE '[]'
|
|
536
536
|
END
|
|
537
|
-
`.execute(_),await F_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Au={};m(Au,{up:()=>s0,down:()=>b0});async function s0(_){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 b0(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var
|
|
537
|
+
`.execute(_),await F_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Au={};m(Au,{up:()=>s0,down:()=>b0});async function s0(_){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 b0(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Iu={};m(Iu,{up:()=>_P,down:()=>xP});async function _P(_){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 xP(_){await _.schema.dropTable("kv").execute()}var nu={};m(nu,{up:()=>uP,down:()=>mP});async function uP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function mP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var wu={};m(wu,{up:()=>CP,down:()=>TP});async function CP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function TP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var Vu={};m(Vu,{up:()=>KP,down:()=>NP});import{sql as R}from"kysely";async function KP(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(R`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(R`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await R`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(R`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(R`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await R`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(R`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(R`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(R`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(R`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(R`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function NP(_){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 ku={};m(ku,{up:()=>EP,down:()=>zP});import{sql as i}from"kysely";async function EP(_){await i`
|
|
538
538
|
ALTER TABLE event_subscriptions
|
|
539
539
|
ALTER COLUMN enabled DROP DEFAULT
|
|
540
540
|
`.execute(_),await i`
|
|
@@ -562,13 +562,13 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
562
562
|
metadata = ${$},
|
|
563
563
|
updated_at = NOW()
|
|
564
564
|
WHERE id = ${u.id}
|
|
565
|
-
`.execute(_)}}}async function WP(_){}var qu={};m(qu,{up:()=>LP,down:()=>FP});import{sql as DP}from"kysely";async function LP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(DP`'{}'::jsonb`)).execute()}async function FP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var iu={};m(iu,{up:()=>RP,down:()=>YP});async function RP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function YP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var tu={};m(tu,{up:()=>HP,down:()=>MP});async function HP(_){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 MP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var cu={};m(cu,{up:()=>BP,down:()=>GP});async function BP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function GP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var hu={};m(hu,{up:()=>yP,down:()=>fP});async function yP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function fP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var ou={};m(ou,{up:()=>OP,down:()=>SP});async function OP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function SP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var au={};m(au,{up:()=>
|
|
565
|
+
`.execute(_)}}}async function WP(_){}var qu={};m(qu,{up:()=>LP,down:()=>FP});import{sql as DP}from"kysely";async function LP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(DP`'{}'::jsonb`)).execute()}async function FP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var iu={};m(iu,{up:()=>RP,down:()=>YP});async function RP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function YP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var tu={};m(tu,{up:()=>HP,down:()=>MP});async function HP(_){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 MP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var cu={};m(cu,{up:()=>BP,down:()=>GP});async function BP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function GP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var hu={};m(hu,{up:()=>yP,down:()=>fP});async function yP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function fP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var ou={};m(ou,{up:()=>OP,down:()=>SP});async function OP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function SP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var au={};m(au,{up:()=>IP,down:()=>nP});import{sql as WK}from"kysely";var AP=["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 IP(_){let x=await WK`
|
|
566
566
|
SELECT id, permission FROM "organizationRole"
|
|
567
567
|
`.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 K=C,E=Array.from(new Set([...K,...AP]));if(E.length===K.length)continue;T.self=E;let N=JSON.stringify(T);await WK`
|
|
568
568
|
UPDATE "organizationRole"
|
|
569
569
|
SET permission = ${N}
|
|
570
570
|
WHERE id = ${u.id}
|
|
571
|
-
`.execute(_)}}async function
|
|
571
|
+
`.execute(_)}}async function nP(_){}var ru={};m(ru,{up:()=>wP,down:()=>VP});async function wP(_){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 VP(_){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 eu={};m(eu,{up:()=>kP,down:()=>pP});async function kP(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function pP(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var lu={};m(lu,{up:()=>vP,down:()=>gP});import{sql as m_}from"kysely";async function vP(_){await m_`
|
|
572
572
|
UPDATE automations
|
|
573
573
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
574
574
|
WHERE virtual_mcp_id IS NULL
|
|
@@ -1119,7 +1119,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
1119
1119
|
AND tool_input IS NOT NULL
|
|
1120
1120
|
)
|
|
1121
1121
|
)
|
|
1122
|
-
`.execute(_)}var Wm={};m(Wm,{up:()=>A$,down:()=>
|
|
1122
|
+
`.execute(_)}var Wm={};m(Wm,{up:()=>A$,down:()=>I$});async function A$(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function I$(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var Lm={};m(Lm,{up:()=>n$,down:()=>w$});import{sql as Dm}from"kysely";var B_="local-docker";async function n$(_){await Dm`delete from sandbox_runner_state where sandbox_provider_kind = ${B_}`.execute(_);let x=await Dm`
|
|
1123
1123
|
SELECT id, metadata FROM "connections"
|
|
1124
1124
|
WHERE connection_type = 'VIRTUAL'
|
|
1125
1125
|
AND metadata IS NOT NULL
|
|
@@ -1195,15 +1195,15 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
1195
1195
|
UPDATE sandbox_runner_state
|
|
1196
1196
|
SET sandbox_provider_kind = ${Y}
|
|
1197
1197
|
WHERE sandbox_provider_kind = ${H}
|
|
1198
|
-
`.execute(_),await GK(_,H,Y)}var fm={};m(fm,{up:()=>d$,down:()=>s$});import{sql as
|
|
1198
|
+
`.execute(_),await GK(_,H,Y)}var fm={};m(fm,{up:()=>d$,down:()=>s$});import{sql as n}from"kysely";async function d$(_){await n`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(n`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(n`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(n`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(n`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await n`
|
|
1199
1199
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1200
1200
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1201
1201
|
WHERE deleted_at IS NULL
|
|
1202
|
-
`.execute(_),await
|
|
1202
|
+
`.execute(_),await n`
|
|
1203
1203
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1204
1204
|
ON org_fs_entry (organization_id, volume, size)
|
|
1205
1205
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1206
|
-
`.execute(_)}async function s$(_){await _.schema.dropTable("org_fs_entry").execute(),await
|
|
1206
|
+
`.execute(_)}async function s$(_){await _.schema.dropTable("org_fs_entry").execute(),await n`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var Om={};m(Om,{up:()=>b$,down:()=>_U});async function b$(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function _U(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var Sm={};m(Sm,{up:()=>xU,down:()=>uU});import{sql as yK}from"kysely";async function xU(_){await yK`
|
|
1207
1207
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1208
1208
|
SELECT
|
|
1209
1209
|
'org_orgfs_public_skills',
|
|
@@ -1219,7 +1219,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
1219
1219
|
ON CONFLICT (id) DO NOTHING
|
|
1220
1220
|
`.execute(_)}async function uU(_){await yK`
|
|
1221
1221
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1222
|
-
`.execute(_)}var Am={};m(Am,{up:()=>mU,down:()=>CU});async function mU(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function CU(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var
|
|
1222
|
+
`.execute(_)}var Am={};m(Am,{up:()=>mU,down:()=>CU});async function mU(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function CU(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Im={};m(Im,{up:()=>TU,down:()=>KU});import{sql as fK}from"kysely";async function TU(_){await fK`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function KU(_){await fK`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var nm={};m(nm,{up:()=>EU,down:()=>zU});import{sql as NU}from"kysely";async function EU(_){await NU`
|
|
1223
1223
|
UPDATE downstream_tokens
|
|
1224
1224
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1225
1225
|
WHERE "expiresAt" IS NULL
|
|
@@ -1239,7 +1239,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
1239
1239
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1240
1240
|
ON organization_join_requests (organization_id, user_id)
|
|
1241
1241
|
WHERE status = 'pending'
|
|
1242
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function GU(_){await _.schema.dropTable("organization_join_requests").execute()}var cm={};m(cm,{up:()=>yU,down:()=>fU});async function yU(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function fU(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var hm={};m(hm,{up:()=>OU,down:()=>SU});async function OU(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function SU(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var rm={};m(rm,{up:()=>
|
|
1242
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function GU(_){await _.schema.dropTable("organization_join_requests").execute()}var cm={};m(cm,{up:()=>yU,down:()=>fU});async function yU(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function fU(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var hm={};m(hm,{up:()=>OU,down:()=>SU});async function OU(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function SU(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var rm={};m(rm,{up:()=>nU,splitWebResearchTier:()=>am,down:()=>wU,__testing:()=>IU});function AU(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function om(_){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 am(_){if(!_||om(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,K=null,E=null;if(u)if(AU(u.modelId))E=u;else K=u;return{..._,tiers:{...C,web_search:K,deep_research:E}}}var IU={splitWebResearchTier:am,isAlreadySplit:om};async function nU(_){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(om(T))continue;let C=am(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function wU(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var em={};m(em,{up:()=>VU,down:()=>kU});import{sql as K_}from"kysely";async function VU(_){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(K_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(K_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await K_`
|
|
1243
1243
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1244
1244
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1245
1245
|
WHERE revoked_at IS NULL
|
|
@@ -1329,11 +1329,11 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
1329
1329
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1330
1330
|
on organization_billing (stripe_subscription_id)
|
|
1331
1331
|
where stripe_subscription_id is not null
|
|
1332
|
-
`.execute(_)}async function BX(_){await AK`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var QC={};m(QC,{up:()=>GX,down:()=>yX});async function GX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function yX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var ZC={};m(ZC,{up:()=>fX,down:()=>OX});import{sql as
|
|
1332
|
+
`.execute(_)}async function BX(_){await AK`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var QC={};m(QC,{up:()=>GX,down:()=>yX});async function GX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function yX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var ZC={};m(ZC,{up:()=>fX,down:()=>OX});import{sql as IK}from"kysely";async function fX(_){await IK`
|
|
1333
1333
|
create index idx_org_billing_benefits_pending
|
|
1334
1334
|
on organization_billing (updated_at)
|
|
1335
1335
|
where benefits_reference_id is not null
|
|
1336
|
-
`.execute(_)}async function OX(_){await
|
|
1336
|
+
`.execute(_)}async function OX(_){await IK`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var WC={};m(WC,{up:()=>SX,down:()=>AX});import{sql as nK}from"kysely";async function SX(_){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(nK`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(nK`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 AX(_){await _.schema.dropTable("user_model_preferences").execute()}var DC={};m(DC,{up:()=>IX,down:()=>nX});async function IX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function nX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var LC={};m(LC,{up:()=>wX,down:()=>VX});async function wX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function VX(_){}var FC={};m(FC,{up:()=>kX,down:()=>pX});import{sql as wK}from"kysely";async function kX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await wK`
|
|
1337
1337
|
UPDATE organization_settings
|
|
1338
1338
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1339
1339
|
WHERE reports_only IS NOT NULL
|
|
@@ -1348,7 +1348,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
1348
1348
|
SELECT id, app_name, connection_url, title, slug
|
|
1349
1349
|
FROM connections
|
|
1350
1350
|
WHERE connection_type != 'VIRTUAL'
|
|
1351
|
-
`.execute(_),u=0;for(let T of x.rows){let C=oX(T);if(C===T.slug)continue;await pK`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 rX(){}var yC={};m(yC,{up:()=>lX,down:()=>dX});import{sql as eX}from"kysely";async function lX(_){await eX`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(_)}async function dX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var OC={};m(OC,{up:()=>bX,down:()=>_j,ACTIONS:()=>fC});import{sql as
|
|
1351
|
+
`.execute(_),u=0;for(let T of x.rows){let C=oX(T);if(C===T.slug)continue;await pK`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 rX(){}var yC={};m(yC,{up:()=>lX,down:()=>dX});import{sql as eX}from"kysely";async function lX(_){await eX`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(_)}async function dX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var OC={};m(OC,{up:()=>bX,down:()=>_j,ACTIONS:()=>fC});import{sql as I_}from"kysely";var fC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],sX=new Set(["review_requested","review_approved","review_changes_requested"]);async function bX(_){await vK(_,fC)}async function _j(_){await vK(_,fC.filter((x)=>!sX.has(x)))}async function vK(_,x){await I_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await I_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${I_.join(x.map((u)=>I_.lit(u)))}))`.execute(_)}var SC={};m(SC,{up:()=>uj,down:()=>mj});import{sql as xj}from"kysely";async function uj(_){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(xj`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 mj(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var IC={};m(IC,{up:()=>Tj,down:()=>Kj,ACTIONS:()=>AC});import{sql as n_}from"kysely";var AC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],Cj=new Set(["merge_conflict_resolution"]);async function Tj(_){await gK(_,AC)}async function Kj(_){await gK(_,AC.filter((x)=>!Cj.has(x)))}async function gK(_,x){await n_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await n_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${n_.join(x.map((u)=>n_.lit(u)))}))`.execute(_)}var nC={};m(nC,{up:()=>Nj,down:()=>Ej});import{sql as E_}from"kysely";async function Nj(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await E_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function Ej(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await E_`
|
|
1352
1352
|
create index idx_org_billing_benefits_pending
|
|
1353
1353
|
on organization_billing (updated_at)
|
|
1354
1354
|
where benefits_reference_id is not null
|
|
@@ -1428,7 +1428,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
1428
1428
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1429
1429
|
ON org_repo_sync (organization_id)
|
|
1430
1430
|
WHERE enabled
|
|
1431
|
-
`.execute(_)}async function Sj(_){await oC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var eC={};m(eC,{up:()=>
|
|
1431
|
+
`.execute(_)}async function Sj(_){await oC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var eC={};m(eC,{up:()=>Ij,down:()=>nj,ACTIONS:()=>rC});import{sql as k_}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"],Aj=new Set(["merge_failed"]);async function Ij(_){await hK(_,rC)}async function nj(_){await hK(_,rC.filter((x)=>!Aj.has(x)))}async function hK(_,x){await k_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await k_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${k_.join(x.map((u)=>k_.lit(u)))}))`.execute(_)}var lC={};m(lC,{up:()=>wj,down:()=>Vj});async function wj(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function Vj(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var dC={};m(dC,{up:()=>kj,down:()=>pj});import{sql as h}from"kysely";async function kj(_){await h`
|
|
1432
1432
|
CREATE TABLE org_jira_integrations (
|
|
1433
1433
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1434
1434
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1602,7 +1602,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
1602
1602
|
WHERE status = 'in_review'
|
|
1603
1603
|
AND assignee_id = 'super-agent'
|
|
1604
1604
|
AND dismissed_at IS NULL
|
|
1605
|
-
`.execute(_),await z_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var RT={};m(RT,{up:()=>SJ,down:()=>AJ});import{sql as _N}from"kysely";async function SJ(_){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(_N`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(_N`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 AJ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var HT={};m(HT,{up:()=>
|
|
1605
|
+
`.execute(_),await z_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var RT={};m(RT,{up:()=>SJ,down:()=>AJ});import{sql as _N}from"kysely";async function SJ(_){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(_N`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(_N`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 AJ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var HT={};m(HT,{up:()=>nJ,down:()=>wJ,ACTIONS:()=>YT});import{sql as v_}from"kysely";var YT=["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"],IJ=new Set(["review_verdict_requested"]);async function nJ(_){await xN(_,YT)}async function wJ(_){await xN(_,YT.filter((x)=>!IJ.has(x)))}async function xN(_,x){await v_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await v_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${v_.join(x.map((u)=>v_.lit(u)))}))`.execute(_)}var MT={};m(MT,{up:()=>VJ,down:()=>kJ});import{sql as g_}from"kysely";async function VJ(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await g_`
|
|
1606
1606
|
ALTER TABLE task_board_items
|
|
1607
1607
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1608
1608
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
@@ -1653,7 +1653,7 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
1653
1653
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
1654
1654
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
1655
1655
|
DROP COLUMN IF EXISTS rescan_pending
|
|
1656
|
-
`.execute(_)}async function bJ(){}async function _Q(_,x){await X`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await X`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${X.join(x.map((u)=>X.lit(u)))}))`.execute(_)}var
|
|
1656
|
+
`.execute(_)}async function bJ(){}async function _Q(_,x){await X`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await X`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${X.join(x.map((u)=>X.lit(u)))}))`.execute(_)}var IT={};m(IT,{up:()=>xQ,down:()=>uQ});import{sql as a}from"kysely";async function xQ(_){await a`
|
|
1657
1657
|
ALTER TABLE task_board_items
|
|
1658
1658
|
ADD COLUMN IF NOT EXISTS source text
|
|
1659
1659
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
@@ -1674,14 +1674,14 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
1674
1674
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1675
1675
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
1676
1676
|
)
|
|
1677
|
-
`.execute(_)}async function uQ(_){await a`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await a`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await a`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var
|
|
1677
|
+
`.execute(_)}async function uQ(_){await a`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await a`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await a`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var nT={};m(nT,{up:()=>mQ,down:()=>CQ});import{sql as P_}from"kysely";async function mQ(_){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(P_`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(P_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(P_`now()`)).execute(),await P_`
|
|
1678
1678
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
1679
1679
|
ON organization_notices (organization_id)
|
|
1680
1680
|
WHERE resolved_at IS NULL
|
|
1681
1681
|
`.execute(_),await P_`
|
|
1682
1682
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
1683
1683
|
ON organization_notices (organization_id, created_at DESC)
|
|
1684
|
-
`.execute(_)}async function CQ(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var VT={};m(VT,{up:()=>jQ,down:()=>JQ});import{sql as wT}from"kysely";import{sql as
|
|
1684
|
+
`.execute(_)}async function CQ(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var VT={};m(VT,{up:()=>jQ,down:()=>JQ});import{sql as wT}from"kysely";import{sql as BW}from"kysely";var TN=50000000,TQ=1e5;function KQ(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>TQ)return 1/0;let K=C.pop();if(typeof K==="string")u+=K.length;else if(Array.isArray(K))for(let E of K)C.push(E);else if(K!==null&&typeof K==="object")for(let E of Object.values(K))C.push(E)}return u}var NQ=/\u0000/g,EQ=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,zQ=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,PQ=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,$Q=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function UQ(_){return _.replace(NQ,"").replace(EQ,"\uFFFD").replace(zQ,"$1***@").replace(PQ,"$1***").replace($Q,"[base64 data omitted]")}function XQ(_){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 KN(_){if(KQ(_,TN)>TN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return UQ(u);if(XQ(u))return{type:"text",text:"[image omitted]"};return u})}var NN=20;async function jQ(_){let x=await wT`
|
|
1685
1685
|
SELECT id FROM thread_message_parts
|
|
1686
1686
|
WHERE pg_column_size(payload) > 8192
|
|
1687
1687
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
@@ -2012,19 +2012,19 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
2012
2012
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
2013
2013
|
`.execute(_),await M`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function RQ(_){await M`DROP TABLE IF EXISTS thread_repositories`.execute(_),await M`
|
|
2014
2014
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
2015
|
-
`.execute(_)}var YQ={"001-initial-schema":Yx,"002-organization-settings":Hx,"003-connection-schema-align":Mx,"004-remove-models-binding":Bx,"005-connection-configuration":Gx,"006-add-views-to-settings":yx,"007-monitoring-logs":fx,"008-event-bus":Ox,"009-drop-audit-logs":Sx,"010-gateways":Ax,"011-gateway-icon":nx,"012-gateway-tool-selection-mode":Ix,"013-monitoring-user-agent-gateway":wx,"014-gateway-resources-prompts":Vx,"015-monitoring-properties":kx,"016-downstream-token-client-info":px,"017-downstream-token-remove-userid":vx,"018-drop-gateway-tool-selection-strategy":gx,"019-remove-gateway-is-default":qx,"020-enabled-plugins":ix,"021-threads":tx,"022-rename-gateway-to-virtual-mcp":cx,"023-optimize-thread-indexes":hx,"024-consolidate-virtual-mcp":ox,"025-add-monitoring-virtual-mcp-id":ax,"026-restrict-child-connection-delete":rx,"027-update-management-mcp-url":lx,"028-update-management-mcp-to-self":sx,"029-add-updated-by-to-connections":bx,"030-member-tags":_u,"031-add-dependency-mode":xu,"032-projects":uu,"033-thread-status":mu,"034-monitoring-dashboards":Cu,"035-project-connections":Tu,"036-update-registry-url":Ku,"037-ai-provider-keys":Nu,"038-oauth-pkce-states":Eu,"039-automations":zu,"040-replace-next-run-at-with-last-run-at":Pu,"041-ai-provider-keys-unique-constraint":$u,"042-rename-mesh-mcp-to-cms-mcp":Uu,"043-rename-cms-mcp-to-deco-cms":Xu,"044-drop-connections-tools-column":ju,"045-thread-context-start-message":Ju,"046-remove-object-storage-plugin":Zu,"047-add-next-run-at":Wu,"048-merge-projects-agents":Lu,"049-remove-org-admin-projects":Fu,"050-durable-agent-runs":Ru,"051-org-sso":Hu,"052-thread-agent-ids":Mu,"053-registry-config":Bu,"054-connection-slug":yu,"055-spaces":fu,"056-automation-project-scope":Ou,"057-thread-virtual-mcp-id":Su,"058-trigger-callback-tokens":Au,"059-kv":nu,"060-member-index":Iu,"061-downstream-token-connection-index":wu,"062-private-registry":Vu,"063-event-subscriptions-enabled-boolean":ku,"064-brand-context":pu,"065-organization-domains":vu,"066-brand-context-structured":gu,"067-threads-metadata":qu,"068-threads-branch":iu,"069-sandbox-runner-state":tu,"070-model-categories":cu,"071-default-home-agents":hu,"072-ai-provider-key-preset-id":ou,"073-backfill-basic-usage-roles":au,"074-sandbox-runner-state-handle-nonunique":ru,"075-thread-inflight-async-jobs":eu,"076-automations-drop-agent-json":lu,"077-tier-only-model-selection":su,"078-automation-tool-call-kind":bu,"079-strip-legacy-freestyle-vm-map-entries":_m,"080-async-research-jobs":xm,"081-async-research-jobs-result-content":um,"082-secrets":mm,"083-thread-run-locally":Cm,"084-drop-host-sandbox-rows":Tm,"085-rename-runner-kind":Km,"086-thread-pins-and-vm-map-rekey":Nm,"087-fix-vm-map-rekey":Em,"088-purge-cli-activate-keys":zm,"089-rename-remote-user-to-desktop":Pm,"090-automation-webhook-triggers":$m,"091-organization-domains-allow-multi":Um,"092-sandbox-naming-uniformization":Xm,"093-backfill-global-search-basic-usage":jm,"094-org-file-configs":Qm,"095-remove-automation-tool-call-kind":Zm,"096-org-file-configs-public-url-base":Wm,"097-drop-local-docker-sandbox-state":Lm,"098-thread-message-parts":Fm,"099-run-fence":Rm,"100-link-transport":Ym,"101-cancel-requested-at":Hm,"102-observational-agent":Mm,"103-revert-observational-agent":Bm,"104-agent-sandbox-provider-kind":ym,"105-org-fs":fm,"106-automation-tools":Om,"107-org-fs-public-org":Sm,"108-automation-max-agent-steps":Am,"109-thread-message-parts-per-message-seq":nm,"110-backfill-ghs-token-expiry":Im,"111-org-fs-thread-id":wm,"112-org-file-configs-credential-type":Vm,"113-thread-failure-reason":km,"114-run-acked-seq":pm,"115-thread-projected-seq":vm,"116-org-sites":gm,"117-org-file-configs-site-slug":qm,"118-organization-domains-multi-verify":im,"119-organization-join-requests":tm,"120-org-fs-read-public":cm,"121-org-fs-share-password":hm,"122-split-web-research-tier":rm,"123-connection-credential-vault":em,"124-drop-thread-projected-seq":lm,"125-github-child-single-parent":dm,"126-task-board":bm,"127-task-board-due-date":_C,"128-reports-only":xC,"129-task-board-assigned-by":uC,"130-task-board-thread-id":mC,"131-task-board-thread-link-cascade":CC,"132-task-board-item-prs":TC,"133-dedupe-duplicate-members":KC,"134-drop-task-board-enabled":NC,"135-task-board-item-fk-cascade":EC,"136-task-board-import-idempotency":zC,"137-agent-sandbox-runner-state":PC,"138-agent-sandbox-sessions":$C,"139-organization-billing":UC,"140-seat-change-log":XC,"141-benefits-sync-pending":jC,"142-stripe-event-watermark":JC,"143-armed-report-url":QC,"144-benefits-pending-index":ZC,"145-user-model-preferences":WC,"146-organization-main-agent":DC,"147-drop-agent-sandbox-tables":LC,"148-org-flags":FC,"149-task-board-item-sort-order":RC,"150-task-board-activity":YC,"151-task-board-tags":MC,"152-repair-connection-slug":GC,"153-task-board-latest-assistant-part-index":yC,"154-task-board-qa-activity":OC,"155-task-board-review-claims":SC,"156-task-board-conflict-activity":nC,"157-drop-seat-billing":IC,"158-drop-github-child-single-parent":wC,"159-task-board-comments":VC,"160-task-quota-billing":kC,"161-task-quota-claim-state":vC,"162-claude-subscriptions":gC,"163-task-board-item-dismissed":qC,"164-per-org-task-quota":iC,"165-task-board-pending-review-index":tC,"166-task-board-last-swept-at":cC,"167-task-board-run-retry":hC,"168-org-repo-sync":aC,"169-task-board-merge-failed-activity":eC,"170-task-board-item-repo":lC,"171-jira-integration":dC,"172-task-board-item-key-seq":sC,"173-thread-github-repo-connection-index":bC,"174-thread-message-parts-persisted-at":xT,"175-task-board-sprints":uT,"176-task-board-done-sweep-index":mT,"177-notifications":CT,"178-jira-status-mapping-array":TT,"179-notification-mentioned":NT,"180-task-board-item-type":zT,"181-task-board-item-type-required":PT,"182-task-board-sprints-entities":$T,"183-drop-jira-jql-filter":UT,"184-jira-rescan-after-scope-change":XT,"185-jira-rescan-existing-cards":jT,"186-jira-rescan-pending-flag":QT,"187-task-board-comment-thread":ZT,"188-invitation-auto-accept":WT,"189-task-board-column-automations":LT,"190-task-board-review-cycle-started-at":FT,"191-task-board-columns":RT,"192-task-board-verdict-nudge-activity":HT,"193-task-board-status-column-fk":MT,"194-jira-link-sprint":BT,"195-task-board-sprint-activity":yT,"196-task-board-column-tracker-statuses":fT,"197-task-board-prompts":OT,"198-task-board-external-url":ST,"199-drop-jira-mirror-and-org-columns":AT,"200-jira-run-trigger":nT,"201-organization-notices":IT,"202-redact-base64-thread-parts":VT,"203-task-board-preview-routes":kT,"204-git-provider-accounts-and-repositories":pT,"205-repository-references":vT,"206-repository-consumers":Rx,"207-task-board-prs-repo-idx":Fx,"208-github-connect-flows":Lx,"209-github-installation-authorization":Dx,"210-github-repository-authorization":$x,"211-user-fs-org":Px,"212-coding-agent-mcp-excluded":Ux,"213-bitbucket-git-provider":Xx,"214-connections-sanitized-id-idx":Kx,"215-commerce-discovery-repository":Nx,"216-github-cli-auth":zx,"217-experiments":jx,"218-thread-message-parts-error-idx":Jx,"219-task-board-duplicate-reported-activity":Zx,"220-jira-automation-continue-pr":Wx,"221-remove-private-registry":r_,"222-org-git-credentials":e_,"223-drop-org-main-agent-id":Tx,"224-repository-sandbox-image":l_,"225-thread-analytics-indexes":s_,"226-deco-score-names":_x,"227-task-board-finding-resolved-activity":ux,"228-org-voice-config":a_,"229-jira-automation-from":mx,"230-project-sidebar":Cx},gT=YQ;import{getMigrations as xZ}from"better-auth/db";import{sso as uZ}from"@better-auth/sso";import{organization as mZ}from"@decocms/better-auth/plugins";import{admin as CZ,apiKey as TZ,jwt as KZ,magicLink as NZ,mcp as EZ,openAPI as zZ}from"better-auth/plugins";import{emailOTP as PZ}from"better-auth/plugins/email-otp";import{Kysely as rQ,PostgresDialect as WN}from"kysely";import{Pool as DN}from"pg";import{homedir as HQ}from"os";var MQ=new Set(["all","worker","api"]);function BQ(_){let x=(_??"").trim();return MQ.has(x)?x:"all"}var GQ=new Set(["production","development","test"]);function yQ(_){let x=(_??"").trim();return GQ.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function iT(_,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 B(_,x,u,T){return iT(_,x,T)??u}function fQ(_){let x={};for(let u of(_??"").split(",")){let T=u.trim();if(!T)continue;let C=T.indexOf("="),K=C>0?T.slice(0,C).trim():"",E=C>0?T.slice(C+1).trim():"";if(!K||!E){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${T}" \u2014 expected price_xxx=planId`);continue}x[K]=E}return x}function OQ(_,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 EN(_){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 SQ(_){return _===void 0||_===""||_==="true"||_==="1"}function $_(_,x){return _||x}function zN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${HQ()}/deco`,T=_.localMode,C=_.nodeEnv||yQ(x.NODE_ENV),K=x.NATS_URL||"nats://localhost:4222",E=x.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",N={nodeEnv:C,port:B("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:$_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,voiceConversationProvider:E==="elevenlabs"||E==="openai"?E:null,openaiLiveApiKey:x.OPENAI_LIVE_API_KEY,openaiLiveModel:x.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:x.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:x.ELEVENLABS_API_KEY,elevenlabsVoiceId:x.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:x.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:x.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databasePgSsl:Z(x.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:$_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:Z(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(x.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",x.JIRA_SETTLE_SECONDS,60,3600),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((z)=>z.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((z)=>z.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:iT("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:fQ(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:OQ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(x.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(x.MONITOR_GA),plansEnabled:Z(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:qT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:qT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:SQ(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:iT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:BQ($_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:qT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:$_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:$_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(N.plansEnabled&&!N.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(N.plansEnabled&&!N.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(N.plansEnabled&&!N.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(N.plansEnabled&&Object.keys(N.stripePlanPriceIds).length>0&&!N.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(N.plansEnabled&&Object.keys(N.stripePlanPriceIds).length>1&&!N.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return{settings:N,externalDatabaseUrl:EN(x.DATABASE_URL),externalNatsUrl:EN(K),skipMigrations:_.skipMigrations}}var i_=null;function r(){if(!i_)AQ();return i_}function AQ(){if(i_)return;let _={...process.env},x=zN({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},_);i_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as pQ,metrics as vQ,propagation as cD,ROOT_CONTEXT as hD,SpanStatusCode as oD,trace as gQ}from"@opentelemetry/api";import{logs as qQ,SeverityNumber as tT}from"@opentelemetry/api-logs";import{OTLPLogExporter as eD}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as iQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as sD}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as _2}from"@opentelemetry/instrumentation-runtime-node";import{context as pW,propagation as vW,SpanKind as gW,SpanStatusCode as qW}from"@opentelemetry/api";var tW=globalThis.fetch;import{ExportResultCode as xD}from"@opentelemetry/core";import{ExportResultCode as t_}from"@opentelemetry/core";import{mkdir as nQ,rename as IQ,writeFile as wQ}from"fs/promises";import{join as c_}from"path";class h_{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:t_.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:t_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:t_.FAILED}});return Promise.resolve({code:t_.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 K=x.get(C.partition);if(!K)K=[],x.set(C.partition,K);K.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,K])=>this.writeNDJSON(K,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 K=_.filter((E)=>!C.has(E.partition));this.bufferItems=K.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?c_(this.basePath,x,...T):c_(this.basePath,...T);if(!this.knownDirs.has(C))await nQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let K=`${crypto.randomUUID()}.ndjson`,E=c_(C,`.${K}.tmp`),N=c_(C,K),z=_.join(`
|
|
2015
|
+
`.execute(_)}var YQ={"001-initial-schema":Yx,"002-organization-settings":Hx,"003-connection-schema-align":Mx,"004-remove-models-binding":Bx,"005-connection-configuration":Gx,"006-add-views-to-settings":yx,"007-monitoring-logs":fx,"008-event-bus":Ox,"009-drop-audit-logs":Sx,"010-gateways":Ax,"011-gateway-icon":Ix,"012-gateway-tool-selection-mode":nx,"013-monitoring-user-agent-gateway":wx,"014-gateway-resources-prompts":Vx,"015-monitoring-properties":kx,"016-downstream-token-client-info":px,"017-downstream-token-remove-userid":vx,"018-drop-gateway-tool-selection-strategy":gx,"019-remove-gateway-is-default":qx,"020-enabled-plugins":ix,"021-threads":tx,"022-rename-gateway-to-virtual-mcp":cx,"023-optimize-thread-indexes":hx,"024-consolidate-virtual-mcp":ox,"025-add-monitoring-virtual-mcp-id":ax,"026-restrict-child-connection-delete":rx,"027-update-management-mcp-url":lx,"028-update-management-mcp-to-self":sx,"029-add-updated-by-to-connections":bx,"030-member-tags":_u,"031-add-dependency-mode":xu,"032-projects":uu,"033-thread-status":mu,"034-monitoring-dashboards":Cu,"035-project-connections":Tu,"036-update-registry-url":Ku,"037-ai-provider-keys":Nu,"038-oauth-pkce-states":Eu,"039-automations":zu,"040-replace-next-run-at-with-last-run-at":Pu,"041-ai-provider-keys-unique-constraint":$u,"042-rename-mesh-mcp-to-cms-mcp":Uu,"043-rename-cms-mcp-to-deco-cms":Xu,"044-drop-connections-tools-column":ju,"045-thread-context-start-message":Ju,"046-remove-object-storage-plugin":Zu,"047-add-next-run-at":Wu,"048-merge-projects-agents":Lu,"049-remove-org-admin-projects":Fu,"050-durable-agent-runs":Ru,"051-org-sso":Hu,"052-thread-agent-ids":Mu,"053-registry-config":Bu,"054-connection-slug":yu,"055-spaces":fu,"056-automation-project-scope":Ou,"057-thread-virtual-mcp-id":Su,"058-trigger-callback-tokens":Au,"059-kv":Iu,"060-member-index":nu,"061-downstream-token-connection-index":wu,"062-private-registry":Vu,"063-event-subscriptions-enabled-boolean":ku,"064-brand-context":pu,"065-organization-domains":vu,"066-brand-context-structured":gu,"067-threads-metadata":qu,"068-threads-branch":iu,"069-sandbox-runner-state":tu,"070-model-categories":cu,"071-default-home-agents":hu,"072-ai-provider-key-preset-id":ou,"073-backfill-basic-usage-roles":au,"074-sandbox-runner-state-handle-nonunique":ru,"075-thread-inflight-async-jobs":eu,"076-automations-drop-agent-json":lu,"077-tier-only-model-selection":su,"078-automation-tool-call-kind":bu,"079-strip-legacy-freestyle-vm-map-entries":_m,"080-async-research-jobs":xm,"081-async-research-jobs-result-content":um,"082-secrets":mm,"083-thread-run-locally":Cm,"084-drop-host-sandbox-rows":Tm,"085-rename-runner-kind":Km,"086-thread-pins-and-vm-map-rekey":Nm,"087-fix-vm-map-rekey":Em,"088-purge-cli-activate-keys":zm,"089-rename-remote-user-to-desktop":Pm,"090-automation-webhook-triggers":$m,"091-organization-domains-allow-multi":Um,"092-sandbox-naming-uniformization":Xm,"093-backfill-global-search-basic-usage":jm,"094-org-file-configs":Qm,"095-remove-automation-tool-call-kind":Zm,"096-org-file-configs-public-url-base":Wm,"097-drop-local-docker-sandbox-state":Lm,"098-thread-message-parts":Fm,"099-run-fence":Rm,"100-link-transport":Ym,"101-cancel-requested-at":Hm,"102-observational-agent":Mm,"103-revert-observational-agent":Bm,"104-agent-sandbox-provider-kind":ym,"105-org-fs":fm,"106-automation-tools":Om,"107-org-fs-public-org":Sm,"108-automation-max-agent-steps":Am,"109-thread-message-parts-per-message-seq":Im,"110-backfill-ghs-token-expiry":nm,"111-org-fs-thread-id":wm,"112-org-file-configs-credential-type":Vm,"113-thread-failure-reason":km,"114-run-acked-seq":pm,"115-thread-projected-seq":vm,"116-org-sites":gm,"117-org-file-configs-site-slug":qm,"118-organization-domains-multi-verify":im,"119-organization-join-requests":tm,"120-org-fs-read-public":cm,"121-org-fs-share-password":hm,"122-split-web-research-tier":rm,"123-connection-credential-vault":em,"124-drop-thread-projected-seq":lm,"125-github-child-single-parent":dm,"126-task-board":bm,"127-task-board-due-date":_C,"128-reports-only":xC,"129-task-board-assigned-by":uC,"130-task-board-thread-id":mC,"131-task-board-thread-link-cascade":CC,"132-task-board-item-prs":TC,"133-dedupe-duplicate-members":KC,"134-drop-task-board-enabled":NC,"135-task-board-item-fk-cascade":EC,"136-task-board-import-idempotency":zC,"137-agent-sandbox-runner-state":PC,"138-agent-sandbox-sessions":$C,"139-organization-billing":UC,"140-seat-change-log":XC,"141-benefits-sync-pending":jC,"142-stripe-event-watermark":JC,"143-armed-report-url":QC,"144-benefits-pending-index":ZC,"145-user-model-preferences":WC,"146-organization-main-agent":DC,"147-drop-agent-sandbox-tables":LC,"148-org-flags":FC,"149-task-board-item-sort-order":RC,"150-task-board-activity":YC,"151-task-board-tags":MC,"152-repair-connection-slug":GC,"153-task-board-latest-assistant-part-index":yC,"154-task-board-qa-activity":OC,"155-task-board-review-claims":SC,"156-task-board-conflict-activity":IC,"157-drop-seat-billing":nC,"158-drop-github-child-single-parent":wC,"159-task-board-comments":VC,"160-task-quota-billing":kC,"161-task-quota-claim-state":vC,"162-claude-subscriptions":gC,"163-task-board-item-dismissed":qC,"164-per-org-task-quota":iC,"165-task-board-pending-review-index":tC,"166-task-board-last-swept-at":cC,"167-task-board-run-retry":hC,"168-org-repo-sync":aC,"169-task-board-merge-failed-activity":eC,"170-task-board-item-repo":lC,"171-jira-integration":dC,"172-task-board-item-key-seq":sC,"173-thread-github-repo-connection-index":bC,"174-thread-message-parts-persisted-at":xT,"175-task-board-sprints":uT,"176-task-board-done-sweep-index":mT,"177-notifications":CT,"178-jira-status-mapping-array":TT,"179-notification-mentioned":NT,"180-task-board-item-type":zT,"181-task-board-item-type-required":PT,"182-task-board-sprints-entities":$T,"183-drop-jira-jql-filter":UT,"184-jira-rescan-after-scope-change":XT,"185-jira-rescan-existing-cards":jT,"186-jira-rescan-pending-flag":QT,"187-task-board-comment-thread":ZT,"188-invitation-auto-accept":WT,"189-task-board-column-automations":LT,"190-task-board-review-cycle-started-at":FT,"191-task-board-columns":RT,"192-task-board-verdict-nudge-activity":HT,"193-task-board-status-column-fk":MT,"194-jira-link-sprint":BT,"195-task-board-sprint-activity":yT,"196-task-board-column-tracker-statuses":fT,"197-task-board-prompts":OT,"198-task-board-external-url":ST,"199-drop-jira-mirror-and-org-columns":AT,"200-jira-run-trigger":IT,"201-organization-notices":nT,"202-redact-base64-thread-parts":VT,"203-task-board-preview-routes":kT,"204-git-provider-accounts-and-repositories":pT,"205-repository-references":vT,"206-repository-consumers":Rx,"207-task-board-prs-repo-idx":Fx,"208-github-connect-flows":Lx,"209-github-installation-authorization":Dx,"210-github-repository-authorization":$x,"211-user-fs-org":Px,"212-coding-agent-mcp-excluded":Ux,"213-bitbucket-git-provider":Xx,"214-connections-sanitized-id-idx":Kx,"215-commerce-discovery-repository":Nx,"216-github-cli-auth":zx,"217-experiments":jx,"218-thread-message-parts-error-idx":Jx,"219-task-board-duplicate-reported-activity":Zx,"220-jira-automation-continue-pr":Wx,"221-remove-private-registry":r_,"222-org-git-credentials":e_,"223-drop-org-main-agent-id":Tx,"224-repository-sandbox-image":l_,"225-thread-analytics-indexes":s_,"226-deco-score-names":_x,"227-task-board-finding-resolved-activity":ux,"228-org-voice-config":a_,"229-jira-automation-from":mx,"230-project-sidebar":Cx},gT=YQ;import{getMigrations as uZ}from"better-auth/db";import{sso as mZ}from"@better-auth/sso";import{organization as CZ}from"@decocms/better-auth/plugins";import{admin as TZ,apiKey as KZ,jwt as NZ,magicLink as EZ,mcp as zZ,openAPI as PZ}from"better-auth/plugins";import{emailOTP as $Z}from"better-auth/plugins/email-otp";import{Kysely as rQ,PostgresDialect as WN}from"kysely";import{Pool as DN}from"pg";import{homedir as HQ}from"os";var MQ=new Set(["all","worker","api"]);function BQ(_){let x=(_??"").trim();return MQ.has(x)?x:"all"}var GQ=new Set(["production","development","test"]);function yQ(_){let x=(_??"").trim();return GQ.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function iT(_,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 B(_,x,u,T){return iT(_,x,T)??u}function fQ(_){let x={};for(let u of(_??"").split(",")){let T=u.trim();if(!T)continue;let C=T.indexOf("="),K=C>0?T.slice(0,C).trim():"",E=C>0?T.slice(C+1).trim():"";if(!K||!E){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${T}" \u2014 expected price_xxx=planId`);continue}x[K]=E}return x}function OQ(_,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 EN(_){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 SQ(_){return _===void 0||_===""||_==="true"||_==="1"}function $_(_,x){return _||x}function zN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${HQ()}/deco`,T=_.localMode,C=_.nodeEnv||yQ(x.NODE_ENV),K=x.NATS_URL||"nats://localhost:4222",E=x.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",N={nodeEnv:C,port:B("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:$_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,voiceConversationProvider:E==="elevenlabs"||E==="openai"?E:null,openaiLiveApiKey:x.OPENAI_LIVE_API_KEY,openaiLiveModel:x.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:x.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:x.ELEVENLABS_API_KEY,elevenlabsVoiceId:x.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:x.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:x.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databasePgSsl:Z(x.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:$_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:Z(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(x.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",x.JIRA_SETTLE_SECONDS,60,3600),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((z)=>z.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((z)=>z.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:iT("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:fQ(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:OQ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(x.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(x.MONITOR_GA),plansEnabled:Z(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:qT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:qT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:SQ(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:iT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:BQ($_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:qT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:$_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:$_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(N.plansEnabled&&!N.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(N.plansEnabled&&!N.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(N.plansEnabled&&!N.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(N.plansEnabled&&Object.keys(N.stripePlanPriceIds).length>0&&!N.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(N.plansEnabled&&Object.keys(N.stripePlanPriceIds).length>1&&!N.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return{settings:N,externalDatabaseUrl:EN(x.DATABASE_URL),externalNatsUrl:EN(K),skipMigrations:_.skipMigrations}}var i_=null;function r(){if(!i_)AQ();return i_}function AQ(){if(i_)return;let _={...process.env},x=zN({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},_);i_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as pQ,metrics as vQ,propagation as hD,ROOT_CONTEXT as oD,SpanStatusCode as aD,trace as gQ}from"@opentelemetry/api";import{logs as qQ,SeverityNumber as tT}from"@opentelemetry/api-logs";import{OTLPLogExporter as lD}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as iQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as bD}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as x2}from"@opentelemetry/instrumentation-runtime-node";import{context as vW,propagation as gW,SpanKind as qW,SpanStatusCode as iW}from"@opentelemetry/api";var cW=globalThis.fetch;import{ExportResultCode as uD}from"@opentelemetry/core";import{ExportResultCode as t_}from"@opentelemetry/core";import{mkdir as IQ,rename as nQ,writeFile as wQ}from"fs/promises";import{join as c_}from"path";class h_{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:t_.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:t_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:t_.FAILED}});return Promise.resolve({code:t_.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 K=x.get(C.partition);if(!K)K=[],x.set(C.partition,K);K.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,K])=>this.writeNDJSON(K,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 K=_.filter((E)=>!C.has(E.partition));this.bufferItems=K.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?c_(this.basePath,x,...T):c_(this.basePath,...T);if(!this.knownDirs.has(C))await IQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let K=`${crypto.randomUUID()}.ndjson`,E=c_(C,`.${K}.tmp`),N=c_(C,K),z=_.join(`
|
|
2016
2016
|
`)+`
|
|
2017
|
-
`;await wQ(E,z,{mode:384}),await
|
|
2017
|
+
`;await wQ(E,z,{mode:384}),await nQ(E,N)}}import{ExportResultCode as ND}from"@opentelemetry/core";import{AggregationTemporality as zD,DataPointType as PD}from"@opentelemetry/sdk-metrics";import{ExportResultCode as QD}from"@opentelemetry/core";var LD=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as P2,LoggerProvider as $2}from"@opentelemetry/sdk-logs";import{detectResources as X2,envDetector as j2,hostDetector as J2,osDetector as Q2,processDetector as Z2,resourceFromAttributes as W2}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as L2}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as YD}from"@opentelemetry/api-logs";import{NodeSDK as Y2}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as M2,SamplingDecision as e}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as yD}from"@opentelemetry/api";var tQ="__d",cQ=pQ("Current request"),hQ=1;var $N=(_)=>{let u=new URL(_.url).searchParams.get(tQ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class UN{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,K){let E=_.getValue(cQ);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,K);return{decision:e.RECORD_AND_SAMPLED}}let N=$N(E);if(N)return{decision:e.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":N}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,K);if(z.decision===e.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:e.NOT_RECORD}}toString(){return"DebugSampler"}}class XN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:e.RECORD_AND_SAMPLED};return{decision:e.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var G2=new iQ({preventServerStart:!0}),y2=new UN(new XN(hQ));var PN=gQ.getTracer("studio","1.0.0"),U_=vQ.getMeter("studio","1.0.0"),oQ=qQ.getLogger("studio","1.0.0"),cT=(_,x,u)=>{let T={},C=u,K=u[u.length-1];if(K!==null&&typeof K==="object"&&!Array.isArray(K)&&!(K instanceof Error)&&Object.getPrototypeOf(K)===Object.prototype)T=K,C=u.slice(0,-1);let E=C.map((N)=>{if(N instanceof Error)return`${N.name}: ${N.message}`;if(typeof N==="object")try{return JSON.stringify(N)}catch{return"[Object]"}return String(N)}).join(" ");oQ.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},hT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{cT(tT.ERROR,"ERROR",_),hT.error(..._)};console.warn=(..._)=>{cT(tT.WARN,"WARN",_),hT.warn(..._)};console.debug=(..._)=>{cT(tT.DEBUG,"DEBUG",_),hT.debug(..._)};var oT,jN=0,aT=500;function aQ(){if(oT)return;let _=performance.now()+aT;oT=setInterval(()=>{let x=performance.now();jN=Math.max(0,x-_),_=x+aT},aT),oT.unref?.()}function JN(){return aQ(),jN}var eQ=()=>U_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),QN=()=>U_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),ZN=400,lQ=100,dQ=(_)=>({"db.status":_.level==="error"?"error":"success"}),sQ=(_)=>(x)=>{let u=dQ(x);if(x.queryDurationMillis>ZN){let T=JN(),C=T>ZN/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:o_()}})}if(eQ().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function bQ(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=o_(),K=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((N)=>{let z=performance.now()-T;if(QN().record(z,{"db.pool.outcome":K?"contended":"available"}),z>lQ)if(K)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 N},(N)=>{throw QN().record(performance.now()-T,{"db.pool.outcome":"error"}),N})},_}var LN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function FN(){try{return r().databasePgSsl}catch{return!1}}function o_(){try{return r().databasePoolMax}catch{return 10}}function _Z(_){let x=bQ(new DN({connectionString:_,max:o_(),ssl:FN(),...LN})),u=new WN({pool:x});return{type:"postgres",db:new rQ({dialect:u,log:sQ(x)}),pool:x}}function j_(){return r().databaseUrl}function RN(_){let x=_||j_();return new WN({pool:new DN({connectionString:x,max:o_(),ssl:FN(),...LN})})}function xZ(_){let x=_||j_();return _Z(x)}async function YN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===X_)X_=null}var X_=null;function rT(){if(!X_)X_=xZ(j_());return X_}async function HN(_){let u={database:RN(_||j_()),plugins:[CZ({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),TZ(),KZ(),NZ(),PZ(),zZ({loginPage:"/login"}),mZ(),EZ({sendMagicLink:async()=>{}}),$Z({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:K}=await uZ(u);if(!T.length&&!C.length)return"up to date";return await K(),`${C.length+T.length} table(s) migrated`}async function BN(_,x){return(await l`
|
|
2018
2018
|
SELECT table_name FROM information_schema.tables
|
|
2019
2019
|
WHERE table_schema='public' AND table_name=${x}
|
|
2020
|
-
`.execute(_)).rows.length>0}async function
|
|
2020
|
+
`.execute(_)).rows.length>0}async function UZ(_){if(await BN(_,"plugin_migrations"))return;await l`
|
|
2021
2021
|
CREATE TABLE plugin_migrations (
|
|
2022
2022
|
plugin_id TEXT NOT NULL,
|
|
2023
2023
|
name TEXT NOT NULL,
|
|
2024
2024
|
timestamp TEXT NOT NULL,
|
|
2025
2025
|
PRIMARY KEY (plugin_id, name)
|
|
2026
2026
|
)
|
|
2027
|
-
`.execute(_)}async function
|
|
2027
|
+
`.execute(_)}async function XZ(_){if(!await BN(_,"kysely_migration"))return;let x=await l`
|
|
2028
2028
|
SELECT name, timestamp FROM kysely_migration
|
|
2029
2029
|
WHERE name LIKE '%/%'
|
|
2030
2030
|
`.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 K=C.indexOf("/");if(K===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let E=C.substring(0,K),N=C.substring(K+1);try{await l`
|
|
@@ -2035,4 +2035,4 @@ var GN=Object.defineProperty;var yN=(_)=>_;function fN(_,x){this[_]=yN.bind(null
|
|
|
2035
2035
|
WHERE plugin_id = ${E} AND name = ${N}
|
|
2036
2036
|
`.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${N}, keeping in old table`);continue}}await l`
|
|
2037
2037
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
2038
|
-
`.execute(_)}}async function
|
|
2038
|
+
`.execute(_)}}async function jZ(_){await UZ(_),await XZ(_);let x=new MN({db:_,provider:{getMigrations:()=>Promise.resolve(gT)}}),{error:u,results:T}=await x.migrateToLatest(),C=0;if(T?.forEach((K)=>{if(K.status==="Success")C++;else if(K.status==="Error")console.error(`Failed to execute migration "${K.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function JZ(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await HN();let K=u??rT(),E=async()=>{if(!x&&!u)await YN(K).catch((N)=>{console.warn("Warning: Error closing database:",N)})};try{let N=await jZ(K.db);return await E(),{betterAuth:C,kysely:N}}catch(N){throw await E(),N}}async function C7(){let _=rT(),x=new MN({db:_.db,provider:{getMigrations:()=>Promise.resolve(gT)}}),{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 JZ(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{jZ as runKyselyMigrations,JZ as migrateToLatest,C7 as migrateDown};
|