decocms 4.190.0 → 4.190.2
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-DXED6rBH.js → AlertCircle-CMLxm30E.js} +1 -1
- package/dist/client/assets/{AreaChart-ClPQaVfK.js → AreaChart-yws1S3NI.js} +1 -1
- package/dist/client/assets/{ArrowUp-CzxIfAAL.js → ArrowUp-CsqGhCUD.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-B9MuUChV.js → ArrowUpRight-O6HwYhM4.js} +1 -1
- package/dist/client/assets/{Check-Cv8jJZ08.js → Check-DsbDEHBH.js} +1 -1
- package/dist/client/assets/{CheckCircle-BbQE3ya1.js → CheckCircle-DBJ2rl20.js} +1 -1
- package/dist/client/assets/{ChevronDown-BANYTkpy.js → ChevronDown-CLhGR0s0.js} +1 -1
- package/dist/client/assets/{ChevronRight-DETJ3xj_.js → ChevronRight-Bi1fFibj.js} +1 -1
- package/dist/client/assets/{ChevronUp-wqfkaLS5.js → ChevronUp-Dhngrjh_.js} +1 -1
- package/dist/client/assets/{Copy01-CbGbNUH1.js → Copy01-BQggM03F.js} +1 -1
- package/dist/client/assets/{CpuChip01-Cu-vc03_.js → CpuChip01-CjuFsjEp.js} +1 -1
- package/dist/client/assets/{CreditCard01-CbBbSbmH.js → CreditCard01-P_aF1ftc.js} +1 -1
- package/dist/client/assets/{DotsVertical-BBgRvZBo.js → DotsVertical-Cmr9zAyE.js} +1 -1
- package/dist/client/assets/{Eye-AoGWtBSi.js → Eye-BqyOS6fX.js} +1 -1
- package/dist/client/assets/{FilterLines-BWq7x_Ul.js → FilterLines-BbuyhRkp.js} +1 -1
- package/dist/client/assets/{HardDrive-BLvOShvd.js → HardDrive-qjFd-HJG.js} +1 -1
- package/dist/client/assets/{Key01-mErcgxup.js → Key01-BUFk9PKO.js} +1 -1
- package/dist/client/assets/{LayoutLeft-DBT_IJtF.js → LayoutLeft-BqiK5GRX.js} +1 -1
- package/dist/client/assets/{LinkExternal01-CXhNQP7c.js → LinkExternal01-B9TcT_RE.js} +1 -1
- package/dist/client/assets/{LogOut01-mO0tZsvW.js → LogOut01-D4sU8ddN.js} +1 -1
- package/dist/client/assets/{Monitor01-BZEADwc8.js → Monitor01-CDbhShAp.js} +1 -1
- package/dist/client/assets/{Palette-CnQId6v6.js → Palette-CPH6kIwv.js} +1 -1
- package/dist/client/assets/{Play-B7cP13Me.js → Play-BK7SASTF.js} +1 -1
- package/dist/client/assets/{Plus-DKjrN_YU.js → Plus-CJ6LFLOW.js} +1 -1
- package/dist/client/assets/{SearchLg-DwtISFdA.js → SearchLg-DF3jq4Et.js} +1 -1
- package/dist/client/assets/{SearchMd-CnFLdgrH.js → SearchMd-L_yXOc6F.js} +1 -1
- package/dist/client/assets/{Settings02-CQSeeLoM.js → Settings02-DJawBJ5L.js} +1 -1
- package/dist/client/assets/{Shield01-CntlcGRR.js → Shield01-BvtIyrTG.js} +1 -1
- package/dist/client/assets/{Star01-MMb-rmit.js → Star01-wAMkf-nv.js} +1 -1
- package/dist/client/assets/{Stars01-BShDUy4Y.js → Stars01-DvF3L2kN.js} +1 -1
- package/dist/client/assets/{Stars02-B926KF3Z.js → Stars02-BEmtoQnS.js} +1 -1
- package/dist/client/assets/{Sun-CxglTtSz.js → Sun-D1whpG4N.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-B1X-VtF4.js → SwitchHorizontal01-DLk9LIC-.js} +1 -1
- package/dist/client/assets/{Tool01-CbaEqEhy.js → Tool01-BLMFupl_.js} +1 -1
- package/dist/client/assets/{Tool02-BBAH4fGj.js → Tool02-WmhOvq6D.js} +1 -1
- package/dist/client/assets/{Trash01-BwbIeVja.js → Trash01-DkHxdbaT.js} +1 -1
- package/dist/client/assets/{TrendUp01-Bx1jfyaf.js → TrendUp01-CZHhrfUj.js} +1 -1
- package/dist/client/assets/{Upload01-CVhasQ21.js → Upload01-C5mBB3bw.js} +1 -1
- package/dist/client/assets/{User01-CfaOzYqT.js → User01-Clkv7aoP.js} +1 -1
- package/dist/client/assets/{Users01-Di90kAgB.js → Users01-CzYDT84D.js} +1 -1
- package/dist/client/assets/{Users03-Ciz_K4lk.js → Users03-2CoMHS7_.js} +1 -1
- package/dist/client/assets/{X-C9Eo6bsP.js → X-Bu5tlB1o.js} +1 -1
- package/dist/client/assets/{XCircle-DCx5xBFU.js → XCircle-BXb7jwLK.js} +1 -1
- package/dist/client/assets/{XClose-DUO7rfyU.js → XClose-5OVtDOnp.js} +1 -1
- package/dist/client/assets/{Zap-moyChzSY.js → Zap-D-KV-Ug5.js} +1 -1
- package/dist/client/assets/{ZapSquare-BwgIOjRQ.js → ZapSquare-DorNQr5Z.js} +1 -1
- package/dist/client/assets/{access-gate-DyI_QApY.js → access-gate-BsQ-w4-6.js} +1 -1
- package/dist/client/assets/{agent-icon-CJcwoAuE.js → agent-icon-Bw0G8GJp.js} +1 -1
- package/dist/client/assets/{agents-list-CE1KtlG_.js → agents-list-BX9HxadE.js} +1 -1
- package/dist/client/assets/{ai-providers-9FP8Vgi6.js → ai-providers-BnGH6L4G.js} +1 -1
- package/dist/client/assets/{alert-BgpReGBN.js → alert-DQjbSiKK.js} +1 -1
- package/dist/client/assets/{alert-dialog-Bk0yvpfE.js → alert-dialog-BYVUW59C.js} +1 -1
- package/dist/client/assets/{app-editor-DtoHC0cz.js → app-editor-BrbSv7ix.js} +1 -1
- package/dist/client/assets/{auth-DE4bma7Q.js → auth-Cf1OaV-K.js} +1 -1
- package/dist/client/assets/{auth-catchall-Cl7AYup6.js → auth-catchall-BCXq16s8.js} +1 -1
- package/dist/client/assets/{auth-entry-Bi7CumSs.js → auth-entry-CY2czJTd.js} +1 -1
- package/dist/client/assets/{auth-split-layout-B69Ee6U_.js → auth-split-layout-BRm3PVq1.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-yvVI9G22.js → authenticate-and-persist-oauth-ZLvxNO6q.js} +1 -1
- package/dist/client/assets/{automation-list-row-Cws0lt-9.js → automation-list-row-D1IbXnhd.js} +1 -1
- package/dist/client/assets/{automation-runs-6E4exrgY.js → automation-runs-BT9ykIOP.js} +1 -1
- package/dist/client/assets/{automations-D07mw889.js → automations-7PsWduHL.js} +1 -1
- package/dist/client/assets/{avatar-DJS63fnf.js → avatar-AfnDQclt.js} +1 -1
- package/dist/client/assets/{badge-6rnM0DeY.js → badge-C86dlteU.js} +1 -1
- package/dist/client/assets/{billing-B1H3tqw_.js → billing-Bh6KC4-5.js} +1 -1
- package/dist/client/assets/{block-document-BLKYSplP.js → block-document-D6S3Lk9Z.js} +1 -1
- package/dist/client/assets/{brand-context-uQHwIxqs.js → brand-context-BNjM2WvO.js} +1 -1
- package/dist/client/assets/{buckets-2814OOuy.js → buckets-3QEAo2UM.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-BBnxMkuV.js → bulk-category-panel-C-dk24Tr.js} +1 -1
- package/dist/client/assets/{capability-load-error-9bOhNBbe.js → capability-load-error-CQASQBNW.js} +1 -1
- package/dist/client/assets/{card-CrWtG_oD.js → card-DhOqgXTP.js} +1 -1
- package/dist/client/assets/{category-editor-BZMRXgNg.js → category-editor-TkfUUSYK.js} +1 -1
- package/dist/client/assets/{chat-context-BT2m2n8F.js → chat-context-e8a2MPlG.js} +1 -1
- package/dist/client/assets/{checkbox-fApMVB_C.js → checkbox-CJBpevrm.js} +1 -1
- package/dist/client/assets/{cli-auth-success-Dd6OURUM.js → cli-auth-success-C7VDbgfQ.js} +1 -1
- package/dist/client/assets/{collection-detail-DYNDiF7d.js → collection-detail-4jVHHwYk.js} +1 -1
- package/dist/client/assets/{collection-display-button-BUEdKLAN.js → collection-display-button-BsXhqztU.js} +1 -1
- package/dist/client/assets/{collection-search-BaQxIHXt.js → collection-search-D58diDCj.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-CBokqZrh.js → collection-table-wrapper-BCfsCI9h.js} +1 -1
- package/dist/client/assets/{collection-tabs-vD34oS9A.js → collection-tabs-x__ZRbYW.js} +1 -1
- package/dist/client/assets/{command-D8v_nR97.js → command-CvaF6dZx.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-C2QOTogc.js → commerce-onboarding-CB8Cvdr9.js} +1 -1
- package/dist/client/assets/{connect-BhjYdlYe.js → connect-BH2T7bcu.js} +1 -1
- package/dist/client/assets/{connection-RtmTb73Q.js → connection-CqD4Dxyk.js} +1 -1
- package/dist/client/assets/{connection-card-DyjoSNay.js → connection-card-D-SlRyu0.js} +1 -1
- package/dist/client/assets/{connection-detail-D_psVjHX.js → connection-detail-L8Yjgmp_.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-BIrwRhdD.js → connection-form-helpers-CeBpq4Fp.js} +1 -1
- package/dist/client/assets/{connections-B6P40q80.js → connections-CIsfPL2m.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-B94gAtrR.js → decopilot-sse-pool-CwOMVWUy.js} +1 -1
- package/dist/client/assets/{dialog-p8J7StLH.js → dialog-BSH7Stqi.js} +1 -1
- package/dist/client/assets/{domain-settings-Cir0azXg.js → domain-settings-DSK52NR6.js} +1 -1
- package/dist/client/assets/{drawer-CBT7Eys6.js → drawer-DwL7uc_a.js} +1 -1
- package/dist/client/assets/{dropdown-menu-BrXZ6Vm1.js → dropdown-menu-ClVEYcUr.js} +1 -1
- package/dist/client/assets/{empty-state-B60k1FtN.js → empty-state-DtD9Kd1B.js} +1 -1
- package/dist/client/assets/{extract-connection-data-DPPQjvw0.js → extract-connection-data-ltC_tobe.js} +1 -1
- package/dist/client/assets/{file-explorer-_acp7GfX.js → file-explorer-Dz4wxiH-.js} +1 -1
- package/dist/client/assets/{form-BzB6OSr4.js → form-C38UEgw2.js} +1 -1
- package/dist/client/assets/{general-w04LrnRs.js → general-C8gpapC8.js} +1 -1
- package/dist/client/assets/{github-repo-picker-DtcsOf5_.js → github-repo-picker-BImPaUeK.js} +1 -1
- package/dist/client/assets/{hooks-Bazbp_1N.js → hooks-CQOKsQSV.js} +1 -1
- package/dist/client/assets/{index-CxA3NuXr.js → index-BJzAB3El.js} +1 -1
- package/dist/client/assets/{index-CZvV4EXt.js → index-BOVgN_Kg.js} +1 -1
- package/dist/client/assets/{index-CITe_oq2.js → index-CzgkhiiD.js} +6 -6
- package/dist/client/assets/{index-DTC5AnWE.js → index-DIFs__s9.js} +1 -1
- package/dist/client/assets/{index-B1pamPTG.js → index-DKmueTx5.js} +3 -3
- package/dist/client/assets/{index-_-LfDtEQ.js → index-DgKBkTat.js} +1 -1
- package/dist/client/assets/{index-CcARg5YW.js → index-DoL_wkOB.js} +1 -1
- package/dist/client/assets/{index-CU1ur_bP.js → index-Dqf_UN-V.js} +1 -1
- package/dist/client/assets/{index-C-KqRNgp.js → index-Q0A4wzik.js} +1 -1
- package/dist/client/assets/{index-DVFVwt0t.js → index-U7bDpVbK.js} +1 -1
- package/dist/client/assets/{index-DaAKYWlK.js → index-Y31wAqce.js} +1 -1
- package/dist/client/assets/{index-redirect-Bhh8boBC.js → index-redirect-sc_24jKb.js} +1 -1
- package/dist/client/assets/{input-8KUKm5_e.js → input-CAuBWhlU.js} +1 -1
- package/dist/client/assets/{integration-icon-ByCUiVdJ.js → integration-icon-CQiVR-7c.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-Dvmz_iJM.js → invite-member-dialog-Cj0ogGxH.js} +1 -1
- package/dist/client/assets/{label-B89S6Txq.js → label-BUwUeB1K.js} +1 -1
- package/dist/client/assets/{layout-BZqAHjH_.js → layout-DEp9GnkN.js} +1 -1
- package/dist/client/assets/{login-CabK5JLY.js → login-CRQNO4vt.js} +1 -1
- package/dist/client/assets/{mcp-oauth-Di-ad4PD.js → mcp-oauth-BbXmBqiI.js} +1 -1
- package/dist/client/assets/{members-eHjNNDpv.js → members-DzxxVLEE.js} +1 -1
- package/dist/client/assets/{monaco-editor-DXS6EpEe.js → monaco-editor-D03_u9Rr.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-DMNgnpP1.js → monitoring-stats-row-2aDxDw0N.js} +1 -1
- package/dist/client/assets/{multi-select-DzXLMoLM.js → multi-select-CCW_o69m.js} +1 -1
- package/dist/client/assets/{oauth-callback-hWEALUDd.js → oauth-callback-J8LNv758.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-C7yfrXoI.js → oauth-callback-ai-provider-Bqf_U_d8.js} +1 -1
- package/dist/client/assets/{onboarding-ChVVg5Tt.js → onboarding-CZgQKnVV.js} +1 -1
- package/dist/client/assets/{org-layout-Gs4YXCJU.js → org-layout-C8FphwPp.js} +1 -1
- package/dist/client/assets/{organization-choice-2j0s-URi.js → organization-choice-qxR2IuU_.js} +1 -1
- package/dist/client/assets/{orgs-Bc0T_S8f.js → orgs-FJrwxnxV.js} +1 -1
- package/dist/client/assets/{page-seo-form-Dhp2UaWO.js → page-seo-form-CptQdU2n.js} +1 -1
- package/dist/client/assets/{popover-BH69yCmw.js → popover-ne3WJDBa.js} +1 -1
- package/dist/client/assets/{post-editor-ClPwBicl.js → post-editor-CFs5i102.js} +1 -1
- package/dist/client/assets/{primitives-BW5Yu4EI.js → primitives-VQKU2_3B.js} +1 -1
- package/dist/client/assets/{profile-BztRA1BA.js → profile-DM7LzDpA.js} +1 -1
- package/dist/client/assets/project-app-view-4aNWzQmu.js +1 -0
- package/dist/client/assets/record-editor-DHmaIOVs.js +1 -0
- package/dist/client/assets/{redirect-editor-HMDzyeF7.js → redirect-editor-DqHPtQ5N.js} +1 -1
- package/dist/client/assets/registry-B9JYbFfA.js +2 -0
- package/dist/client/assets/{registry-layout-6ltnB5Yz.js → registry-layout-BGAVBHU1.js} +1 -1
- package/dist/client/assets/{reports-Cxini64Q.js → reports-B6bMBRoj.js} +1 -1
- package/dist/client/assets/{require-capability-f3q71kF5.js → require-capability-BNaoFLw-.js} +1 -1
- package/dist/client/assets/{required-auth-layout-Ds7bjGvL.js → required-auth-layout-Cf57fTJL.js} +1 -1
- package/dist/client/assets/{reset-password-CXbq6Tw-.js → reset-password-Cf8aqhIe.js} +1 -1
- package/dist/client/assets/{roles-CspygFiB.js → roles-BdlOddzf.js} +1 -1
- package/dist/client/assets/{search-input-zK9i-Kh3.js → search-input-CgdPsoUE.js} +1 -1
- package/dist/client/assets/{secrets-L8zybnQm.js → secrets-CGAdy8ca.js} +1 -1
- package/dist/client/assets/{sections-editor-DPOpZ-tE.js → sections-editor-CuRQztTz.js} +1 -1
- package/dist/client/assets/{select-CDC8kviA.js → select-DewTihPD.js} +1 -1
- package/dist/client/assets/{select-model-Bp5Xd4te.js → select-model-SS2wjbcO.js} +1 -1
- package/dist/client/assets/{self-tool-result-Cuj-33nr.js → self-tool-result-DK1a2fXK.js} +1 -1
- package/dist/client/assets/{seo-editor-4TGrgB3S.js → seo-editor-CbO-YwdI.js} +1 -1
- package/dist/client/assets/{settings-layout-DlSc777F.js → settings-layout-CA9mQ3Rt.js} +1 -1
- package/dist/client/assets/{settings-section-D8TGOGYz.js → settings-section-ByXDhV-n.js} +1 -1
- package/dist/client/assets/{shell-controls-CZERq1n5.js → shell-controls-Dxh1TRVD.js} +1 -1
- package/dist/client/assets/{shell-layout-D4_bTkUU.js → shell-layout-Cq6UvNRG.js} +1 -1
- package/dist/client/assets/{sidebar-CZTkBKXl.js → sidebar-Dyce5CNM.js} +1 -1
- package/dist/client/assets/{skeleton-CGHtidUO.js → skeleton-CJtp4VEd.js} +1 -1
- package/dist/client/assets/{spinner-BM_ia_uk.js → spinner-BWGfTKo_.js} +1 -1
- package/dist/client/assets/{sso-C3QdMV1g.js → sso-9BFTrDdZ.js} +1 -1
- package/dist/client/assets/{store-DpxJmuD5.js → store-DtebgGkY.js} +1 -1
- package/dist/client/assets/store-registry-CvinyYdp.js +2 -0
- package/dist/client/assets/{studio-tools-DM-9vWPj.js → studio-tools-BgBu3mEO.js} +1 -1
- package/dist/client/assets/{switch-D4_0M4ba.js → switch-v_76xhJs.js} +1 -1
- package/dist/client/assets/{tab-id-DOUygo4c.js → tab-id-C8PTaw0G.js} +1 -1
- package/dist/client/assets/{table-l5OXWTTW.js → table-C98JQDN-.js} +1 -1
- package/dist/client/assets/{tabs-CZAVib3u.js → tabs-Bihx4cSB.js} +1 -1
- package/dist/client/assets/{textarea-C9hZnZoz.js → textarea-BjjcV9de.js} +1 -1
- package/dist/client/assets/{toggle-group-DKmas1Id.js → toggle-group-B_w-eO8Z.js} +1 -1
- package/dist/client/assets/{toolbar-BvOLPMGj.js → toolbar-D5WjvtFd.js} +1 -1
- package/dist/client/assets/{tooltip-IARwLh0F.js → tooltip-C20LvWX3.js} +1 -1
- package/dist/client/assets/{use-ai-providers-B3l8wwZ5.js → use-ai-providers-BlhYtkwS.js} +1 -1
- package/dist/client/assets/{use-automations-DVulOVRH.js → use-automations-CSPYjmVX.js} +1 -1
- package/dist/client/assets/{use-autosave-BEPEE2EQ.js → use-autosave-BNjqy_38.js} +1 -1
- package/dist/client/assets/{use-capability-DjJpn-d1.js → use-capability-CcL4auVL.js} +1 -1
- package/dist/client/assets/{use-clock-tick-DUclydJW.js → use-clock-tick-B9-NTOWX.js} +1 -1
- package/dist/client/assets/{use-connection-C7KvffTt.js → use-connection-BO0knnZD.js} +1 -1
- package/dist/client/assets/{use-copy-ASUaxQ1g.js → use-copy-BW_weX2K.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-BuMDo7HS.js → use-create-virtual-mcp-CPnhHSBx.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-Dr7OLeNB.js → use-debounced-autosave-Dzzp-JIo.js} +1 -1
- package/dist/client/assets/{use-debounced-value-TXd87EPp.js → use-debounced-value-BTZwIJNv.js} +1 -1
- package/dist/client/assets/{use-deco-credits-DQBmpudk.js → use-deco-credits-EjXxaQ-4.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-BtR8Mqm3.js → use-decopilot-events-C74fEL-P.js} +1 -1
- package/dist/client/assets/{use-delete-connection-DpZ0gvcX.js → use-delete-connection-CiEXhrDp.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-B-a9-Z3F.js → use-deployment-admin-DB1Z5zTg.js} +1 -1
- package/dist/client/assets/{use-file-configs-vPXbDrDt.js → use-file-configs-B2jcQIMx.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-0YyrXUEB.js → use-infinite-scroll-CK1coX-D.js} +1 -1
- package/dist/client/assets/{use-join-requests-L6gA0vgB.js → use-join-requests-BMvo4BGN.js} +1 -1
- package/dist/client/assets/{use-mcp-client-DpgCUtQL.js → use-mcp-client-CKVjF1Ml.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-BpQEjUlC.js → use-mcp-tools-Dnldoxrq.js} +1 -1
- package/dist/client/assets/{use-members-DlNGYhNw.js → use-members-CWyylPMr.js} +1 -1
- package/dist/client/assets/{use-mobile-ADgWnTRh.js → use-mobile-DhvaOhjQ.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-C_I5OT4C.js → use-navigate-to-agent-BdC4Ehtc.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-B4KqcF2I.js → use-open-billing-url-EqJS3juV.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-CJimZSCq.js → use-org-auth-client-9UV5J-qx.js} +1 -1
- package/dist/client/assets/{use-org-sso-k8cw1RWC.js → use-org-sso-CnebI6G0.js} +1 -1
- package/dist/client/assets/{use-organization-roles-3TWNcJlb.js → use-organization-roles-DwWay_yC.js} +1 -1
- package/dist/client/assets/{use-organization-settings-D0OJWoGn.js → use-organization-settings-Dv7jH-AX.js} +1 -1
- package/dist/client/assets/{use-registry-connections-C661e6FH.js → use-registry-connections-C6tcY3w_.js} +1 -1
- package/dist/client/assets/{use-secrets-Cmc4oF-J.js → use-secrets-D7Kz6BX6.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-D7lAQ6j7.js → use-section-preview-base-dl0agl3o.js} +1 -1
- package/dist/client/assets/{use-status-sounds-2TtpMK-C.js → use-status-sounds-DaaGZIJj.js} +1 -1
- package/dist/client/assets/{use-tags-Bd6Uv4oo.js → use-tags-BDNfieGF.js} +1 -1
- package/dist/client/assets/{use-view-mode-CXw_Kvrf.js → use-view-mode-DgOtFqzo.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-CEINdtXi.js → use-virtual-mcp-CCIBOySh.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-CBxGIRPH.js +1 -0
- package/dist/client/assets/{useRouterState-eCBwWfUY.js → useRouterState-C-jnPhVn.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BPFJYUaM.js +1 -0
- package/dist/client/assets/{users-DTuWteU5.js → users-CddXPArr.js} +1 -1
- package/dist/client/assets/{variant-calendar-C_isZHgL.js → variant-calendar-CQn1xMjy.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-mVooQxHk.js → view-mode-toggle-Bzs9zyLR.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +447 -447
- package/dist/server/migrate.js +11 -11
- package/dist/server/server.js +311 -311
- package/package.json +1 -1
- package/dist/client/assets/project-app-view-2l1tg7__.js +0 -1
- package/dist/client/assets/record-editor-DRypaazn.js +0 -1
- package/dist/client/assets/registry-kBVKGTVS.js +0 -2
- package/dist/client/assets/store-registry-DExoSMMF.js +0 -2
- package/dist/client/assets/useInfiniteQuery-CbDX819o.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DbnovJ-n.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -289,18 +289,18 @@ var _m=Object.defineProperty;var um=(t)=>t;function xm(t,n){this[t]=um.bind(null
|
|
|
289
289
|
`.execute(t),await k`
|
|
290
290
|
ALTER TABLE automations
|
|
291
291
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
292
|
-
`.execute(t)}var ln={};u(ln,{up:()=>fy,reshapeSimpleMode:()=>ax,inferAutomationTier:()=>Ex,down:()=>wy,__testing:()=>ey});var Ey={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},Ky=["fast","smart","thinking","image","web_research"];function sn(t){if(!t||typeof t!=="object")return!1;let n=t;if(!("tiers"in n))return!1;let _=n.tiers;if(!_||typeof _!=="object")return!1;return Ky.some((m)=>(m in _))}function ax(t){if(sn(t))return t;let n=t,_=n?.enabled===!0,m=(x)=>x&&x.keyId&&x.modelId?{keyId:x.keyId,modelId:x.modelId,title:x.title}:null;if(!_)return Ey;return{tiers:{fast:m(n?.chat?.fast),smart:m(n?.chat?.smart),thinking:m(n?.chat?.thinking),image:m(n?.image),web_research:m(n?.webResearch)}}}function Ex(t){if(t.tier==="fast"||t.tier==="smart"||t.tier==="thinking")return t.tier;if(t.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Kx(t){if(!(t.tier==="fast"||t.tier==="smart"||t.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((m)=>t[m]===void 0)}var ey={isAlreadyReshapedSimpleMode:sn,isAlreadyReshapedAutomationModels:Kx};async function fy(t){let n=await t.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let m of n){let x=m.simple_mode?typeof m.simple_mode==="string"?JSON.parse(m.simple_mode):m.simple_mode:null;if(sn(x))continue;let i=ax(x);await t.updateTable("organization_settings").set({simple_mode:JSON.stringify(i)}).where("organizationId","=",m.organizationId).execute()}let _=await t.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let m of _){let x;try{x=typeof m.models==="string"?JSON.parse(m.models):m.models}catch{x={}}if(Kx(x))continue;let i=Ex(x);if(await t.updateTable("automations").set({models:JSON.stringify({tier:i})}).where("id","=",m.id).execute(),x.thinking?.capabilities?.image)console.log(`[migration 077] automation ${m.id} previously used an image-only model; mapped to "${i}"`)}}async function wy(t){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var dn={};u(dn,{up:()=>zy,down:()=>Py});import{sql as
|
|
292
|
+
`.execute(t)}var ln={};u(ln,{up:()=>fy,reshapeSimpleMode:()=>ax,inferAutomationTier:()=>Ex,down:()=>wy,__testing:()=>ey});var Ey={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},Ky=["fast","smart","thinking","image","web_research"];function sn(t){if(!t||typeof t!=="object")return!1;let n=t;if(!("tiers"in n))return!1;let _=n.tiers;if(!_||typeof _!=="object")return!1;return Ky.some((m)=>(m in _))}function ax(t){if(sn(t))return t;let n=t,_=n?.enabled===!0,m=(x)=>x&&x.keyId&&x.modelId?{keyId:x.keyId,modelId:x.modelId,title:x.title}:null;if(!_)return Ey;return{tiers:{fast:m(n?.chat?.fast),smart:m(n?.chat?.smart),thinking:m(n?.chat?.thinking),image:m(n?.image),web_research:m(n?.webResearch)}}}function Ex(t){if(t.tier==="fast"||t.tier==="smart"||t.tier==="thinking")return t.tier;if(t.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Kx(t){if(!(t.tier==="fast"||t.tier==="smart"||t.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((m)=>t[m]===void 0)}var ey={isAlreadyReshapedSimpleMode:sn,isAlreadyReshapedAutomationModels:Kx};async function fy(t){let n=await t.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let m of n){let x=m.simple_mode?typeof m.simple_mode==="string"?JSON.parse(m.simple_mode):m.simple_mode:null;if(sn(x))continue;let i=ax(x);await t.updateTable("organization_settings").set({simple_mode:JSON.stringify(i)}).where("organizationId","=",m.organizationId).execute()}let _=await t.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let m of _){let x;try{x=typeof m.models==="string"?JSON.parse(m.models):m.models}catch{x={}}if(Kx(x))continue;let i=Ex(x);if(await t.updateTable("automations").set({models:JSON.stringify({tier:i})}).where("id","=",m.id).execute(),x.thinking?.capabilities?.image)console.log(`[migration 077] automation ${m.id} previously used an image-only model; mapped to "${i}"`)}}async function wy(t){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var dn={};u(dn,{up:()=>zy,down:()=>Py});import{sql as $}from"kysely";async function zy(t){await t.schema.alterTable("automations").addColumn("kind","text",(n)=>n.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await $`
|
|
293
293
|
ALTER TABLE automations
|
|
294
294
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
295
|
-
`.execute(t),await
|
|
295
|
+
`.execute(t),await $`
|
|
296
296
|
ALTER TABLE automations
|
|
297
297
|
ADD CONSTRAINT chk_automation_kind
|
|
298
298
|
CHECK (kind IN ('agent', 'tool_call'))
|
|
299
|
-
`.execute(t),await
|
|
299
|
+
`.execute(t),await $`
|
|
300
300
|
ALTER TABLE automations
|
|
301
301
|
ADD CONSTRAINT chk_automation_agent_fields
|
|
302
302
|
CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
|
|
303
|
-
`.execute(t),await
|
|
303
|
+
`.execute(t),await $`
|
|
304
304
|
ALTER TABLE automations
|
|
305
305
|
ADD CONSTRAINT chk_automation_tool_call_fields
|
|
306
306
|
CHECK (
|
|
@@ -311,7 +311,7 @@ var _m=Object.defineProperty;var um=(t)=>t;function xm(t,n){this[t]=um.bind(null
|
|
|
311
311
|
AND tool_input IS NOT NULL
|
|
312
312
|
)
|
|
313
313
|
)
|
|
314
|
-
`.execute(t)}async function Py(t){await
|
|
314
|
+
`.execute(t)}async function Py(t){await $`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(t),await $`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(t),await $`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(t),await $`DELETE FROM automations WHERE kind = 'tool_call'`.execute(t),await $`
|
|
315
315
|
ALTER TABLE automations
|
|
316
316
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
317
317
|
`.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var bn={};u(bn,{up:()=>oy,down:()=>py});import{sql as ex}from"kysely";var Uy=new Set(["host","docker","agent-sandbox"]);async function oy(t){let n=await ex`
|
|
@@ -799,21 +799,21 @@ var _m=Object.defineProperty;var um=(t)=>t;function xm(t,n){this[t]=um.bind(null
|
|
|
799
799
|
`.execute(t)}}async function dy(t){}var f_={};u(f_,{up:()=>by,down:()=>tC});import{sql as e_}from"kysely";async function by(t){await t.schema.createTable("org_file_configs").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("description","text").addColumn("bucket","text",(n)=>n.notNull()).addColumn("region","text",(n)=>n.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(n)=>n.notNull()).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(e_`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(e_`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await e_`
|
|
800
800
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
801
801
|
ON org_file_configs (organization_id, lower(name))
|
|
802
|
-
`.execute(t)}async function tC(t){await t.schema.dropTable("org_file_configs").execute()}var w_={};u(w_,{up:()=>nC,down:()=>_C});import{sql as
|
|
802
|
+
`.execute(t)}async function tC(t){await t.schema.dropTable("org_file_configs").execute()}var w_={};u(w_,{up:()=>nC,down:()=>_C});import{sql as L}from"kysely";async function nC(t){await L`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(t),await L`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(t),await L`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(t),await L`DELETE FROM automations WHERE kind = 'tool_call'`.execute(t),await L`
|
|
803
803
|
ALTER TABLE automations
|
|
804
804
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
805
|
-
`.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function _C(t){await t.schema.alterTable("automations").addColumn("kind","text",(n)=>n.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await
|
|
805
|
+
`.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function _C(t){await t.schema.alterTable("automations").addColumn("kind","text",(n)=>n.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await L`
|
|
806
806
|
ALTER TABLE automations
|
|
807
807
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
808
|
-
`.execute(t),await
|
|
808
|
+
`.execute(t),await L`
|
|
809
809
|
ALTER TABLE automations
|
|
810
810
|
ADD CONSTRAINT chk_automation_kind
|
|
811
811
|
CHECK (kind IN ('agent', 'tool_call'))
|
|
812
|
-
`.execute(t),await
|
|
812
|
+
`.execute(t),await L`
|
|
813
813
|
ALTER TABLE automations
|
|
814
814
|
ADD CONSTRAINT chk_automation_agent_fields
|
|
815
815
|
CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
|
|
816
|
-
`.execute(t),await
|
|
816
|
+
`.execute(t),await L`
|
|
817
817
|
ALTER TABLE automations
|
|
818
818
|
ADD CONSTRAINT chk_automation_tool_call_fields
|
|
819
819
|
CHECK (
|
|
@@ -1093,7 +1093,7 @@ var _m=Object.defineProperty;var um=(t)=>t;function xm(t,n){this[t]=um.bind(null
|
|
|
1093
1093
|
WHERE status = 'in_review'
|
|
1094
1094
|
AND assignee_id = 'super-agent'
|
|
1095
1095
|
AND dismissed_at IS NULL
|
|
1096
|
-
`.execute(t)}async function sa(t){await t.schema.dropIndex("idx_task_board_items_pending_review").execute()}var la={"001-initial-schema":pt,"002-organization-settings":Jt,"003-connection-schema-align":jt,"004-remove-models-binding":Dt,"005-connection-configuration":$t,"006-add-views-to-settings":Lt,"007-monitoring-logs":Wt,"008-event-bus":Rt,"009-drop-audit-logs":Xt,"010-gateways":Qt,"011-gateway-icon":Zt,"012-gateway-tool-selection-mode":Ft,"013-monitoring-user-agent-gateway":Ht,"014-gateway-resources-prompts":Mt,"015-monitoring-properties":Yt,"016-downstream-token-client-info":Bt,"017-downstream-token-remove-userid":Gt,"018-drop-gateway-tool-selection-strategy":At,"019-remove-gateway-is-default":St,"020-enabled-plugins":Ot,"021-threads":It,"022-rename-gateway-to-virtual-mcp":kt,"023-optimize-thread-indexes":ct,"024-consolidate-virtual-mcp":ht,"025-add-monitoring-virtual-mcp-id":Vt,"026-restrict-child-connection-delete":gt,"027-update-management-mcp-url":qt,"028-update-management-mcp-to-self":st,"029-add-updated-by-to-connections":lt,"030-member-tags":dt,"031-add-dependency-mode":bt,"032-projects":tn,"033-thread-status":nn,"034-monitoring-dashboards":_n,"035-project-connections":un,"036-update-registry-url":xn,"037-ai-provider-keys":mn,"038-oauth-pkce-states":Tn,"039-automations":yn,"040-replace-next-run-at-with-last-run-at":Cn,"041-ai-provider-keys-unique-constraint":Nn,"042-rename-mesh-mcp-to-cms-mcp":an,"043-rename-cms-mcp-to-deco-cms":En,"044-drop-connections-tools-column":Kn,"045-thread-context-start-message":en,"046-remove-object-storage-plugin":wn,"047-add-next-run-at":zn,"048-merge-projects-agents":Un,"049-remove-org-admin-projects":on,"050-durable-agent-runs":pn,"051-org-sso":jn,"052-thread-agent-ids":Dn,"053-registry-config":$n,"054-connection-slug":Wn,"055-spaces":Rn,"056-automation-project-scope":Xn,"057-thread-virtual-mcp-id":Qn,"058-trigger-callback-tokens":Zn,"059-kv":Fn,"060-member-index":Hn,"061-downstream-token-connection-index":Mn,"062-private-registry":Yn,"063-event-subscriptions-enabled-boolean":Bn,"064-brand-context":Gn,"065-organization-domains":An,"066-brand-context-structured":Sn,"067-threads-metadata":On,"068-threads-branch":In,"069-sandbox-runner-state":kn,"070-model-categories":cn,"071-default-home-agents":hn,"072-ai-provider-key-preset-id":Vn,"073-backfill-basic-usage-roles":gn,"074-sandbox-runner-state-handle-nonunique":rn,"075-thread-inflight-async-jobs":qn,"076-automations-drop-agent-json":vn,"077-tier-only-model-selection":ln,"078-automation-tool-call-kind":dn,"079-strip-legacy-freestyle-vm-map-entries":bn,"080-async-research-jobs":t_,"081-async-research-jobs-result-content":n_,"082-secrets":__,"083-thread-run-locally":u_,"084-drop-host-sandbox-rows":x_,"085-rename-runner-kind":m_,"086-thread-pins-and-vm-map-rekey":i_,"087-fix-vm-map-rekey":T_,"088-purge-cli-activate-keys":y_,"089-rename-remote-user-to-desktop":C_,"090-automation-webhook-triggers":N_,"091-organization-domains-allow-multi":a_,"092-sandbox-naming-uniformization":E_,"093-backfill-global-search-basic-usage":K_,"094-org-file-configs":f_,"095-remove-automation-tool-call-kind":w_,"096-org-file-configs-public-url-base":z_,"097-drop-local-docker-sandbox-state":U_,"098-thread-message-parts":o_,"099-run-fence":p_,"100-link-transport":J_,"101-cancel-requested-at":j_,"102-observational-agent":D_,"103-revert-observational-agent":$_,"104-agent-sandbox-provider-kind":W_,"105-org-fs":R_,"106-automation-tools":X_,"107-org-fs-public-org":Q_,"108-automation-max-agent-steps":Z_,"109-thread-message-parts-per-message-seq":F_,"110-backfill-ghs-token-expiry":H_,"111-org-fs-thread-id":M_,"112-org-file-configs-credential-type":Y_,"113-thread-failure-reason":B_,"114-run-acked-seq":G_,"115-thread-projected-seq":A_,"116-org-sites":S_,"117-org-file-configs-site-slug":O_,"118-organization-domains-multi-verify":I_,"119-organization-join-requests":k_,"120-org-fs-read-public":c_,"121-org-fs-share-password":h_,"122-split-web-research-tier":r_,"123-connection-credential-vault":q_,"124-drop-thread-projected-seq":v_,"125-github-child-single-parent":s_,"126-task-board":d_,"127-task-board-due-date":b_,"128-reports-only":tu,"129-task-board-assigned-by":nu,"130-task-board-thread-id":_u,"131-task-board-thread-link-cascade":uu,"132-task-board-item-prs":xu,"133-dedupe-duplicate-members":mu,"134-drop-task-board-enabled":iu,"135-task-board-item-fk-cascade":Tu,"136-task-board-import-idempotency":yu,"137-agent-sandbox-runner-state":Cu,"138-agent-sandbox-sessions":Nu,"139-organization-billing":au,"140-seat-change-log":Eu,"141-benefits-sync-pending":Ku,"142-stripe-event-watermark":eu,"143-armed-report-url":fu,"144-benefits-pending-index":wu,"145-user-model-preferences":zu,"146-organization-main-agent":Pu,"147-drop-agent-sandbox-tables":Uu,"148-org-flags":ou,"149-task-board-item-sort-order":pu,"150-task-board-activity":Ju,"151-task-board-tags":Du,"152-repair-connection-slug":Lu,"153-task-board-latest-assistant-part-index":Wu,"154-task-board-qa-activity":Xu,"155-task-board-review-claims":Qu,"156-task-board-conflict-activity":Fu,"157-drop-seat-billing":Hu,"158-drop-github-child-single-parent":Mu,"159-task-board-comments":Yu,"160-task-quota-billing":Bu,"161-task-quota-claim-state":Au,"162-claude-subscriptions":Su,"163-task-board-item-dismissed":Ou,"164-per-org-task-quota":Iu,"165-task-board-pending-review-index":ku},cu=la;import{getMigrations as ZE}from"better-auth/db";import{sso as FE}from"@better-auth/sso";import{organization as HE}from"@decocms/better-auth/plugins";import{admin as ME,apiKey as YE,jwt as BE,magicLink as GE,mcp as AE,openAPI as SE}from"better-auth/plugins";import{emailOTP as OE}from"better-auth/plugins/email-otp";import{Kysely as DE,PostgresDialect as rx}from"kysely";import{Pool as qx}from"pg";import{homedir as da}from"os";var ba=new Set(["all","worker","api"]);function tE(t){let n=(t??"").trim();return ba.has(n)?n:"all"}var nE=new Set(["production","development","test"]);function _E(t){let n=(t??"").trim();return nE.has(n)?n:"development"}function L(t){return t==="true"||t==="1"}function uE(t){if(t===void 0||t==="")return;return L(t)}function hu(t,n,_){if(n===void 0||n==="")return;let m=Number(n);if(!Number.isSafeInteger(m)||m<=0)throw Error(`${t} must be a positive integer`);if(_!==void 0&&m>_)throw Error(`${t} must be at most ${_}`);return m}function U(t,n,_,m){return hu(t,n,m)??_}function xE(t,n,_,m){if(n===void 0||n==="")return _;let x=Number(n);if(!Number.isSafeInteger(x)||x<0)throw Error(`${t} must be a non-negative integer`);if(m!==void 0&&x>m)throw Error(`${t} must be at most ${m}`);return x}function Bx(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function Gx(t){if(!t)return null;try{let _=new URL(t).hostname.replace(/^\[|\]$/g,"");if(_==="localhost"||_==="127.0.0.1"||_==="::1")return null;return t}catch{return null}}function mE(t){return t===void 0||t===""||t==="true"||t==="1"}function q(t,n){return t||n}var iE=new Set(["agent-sandbox","user-desktop"]);function TE(t){let n=(t??"").trim(),_=n.length>0?n:"user-desktop";if(_==="cluster")return"agent-sandbox";if(!iE.has(_))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return _}function Ax(t,n){let _=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${da()}/deco`,m=t.localMode,x=t.nodeEnv||_E(n.NODE_ENV),i=n.NATS_URL||"nats://localhost:4222",y=uE(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:x,port:U("PORT",t.port||n.PORT,3000,65535),baseUrl:t.baseUrl||n.BASE_URL,publicUrl:q(n.STUDIO_PUBLIC_URL,n.MESH_PUBLIC_URL),dataDir:_,databasePgSsl:L(n.DATABASE_PG_SSL),databasePoolMax:U("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),dbosPoolSize:U("DBOS_POOL_SIZE",n.DBOS_POOL_SIZE,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:q(n.STUDIO_JWT_SECRET,n.MESH_JWT_SECRET),localMode:m,disableRateLimit:L(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((C)=>C.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:hu("CLICKHOUSE_MAX_MEMORY_USAGE",n.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:n.MONITORING_OTLP_ENDPOINT,otelServiceName:n.OTEL_SERVICE_NAME||"studio",natsPublicUrl:n.NATS_PUBLIC_URL,natsTunnelPublicEnabled:y,natsTunnelSessionTtlSeconds:U("NATS_TUNNEL_SESSION_TTL_SECONDS",n.NATS_TUNNEL_SESSION_TTL_SECONDS,900),natsOperatorJwt:n.NATS_OPERATOR_JWT,natsAccountJwt:n.NATS_ACCOUNT_JWT,natsAccountSigningKey:n.NATS_ACCOUNT_SIGNING_KEY,natsCredsPath:n.NATS_CREDS,configPath:n.CONFIG_PATH||"./config.json",aiGatewayEnabled:L(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeOrgPriceId:n.STRIPE_ORG_PRICE_ID,topupFeePercent:xE("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:L(n.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:U("STUDIO_FREE_TASKS",n.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:U("STUDIO_MONTHLY_TASKS",n.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:U("STUDIO_MAX_RUNS_PER_TASK",n.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:L(n.ENABLE_DECO_IMPORT),mcpCacheEnabled:Bx(n.MCP_CACHE_ENABLED,x!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:L(n.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:U("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",n.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:U("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",n.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:Bx(n.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:U("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",n.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:n.S3_ENDPOINT,s3Bucket:n.S3_BUCKET,s3Region:n.S3_REGION||"auto",s3AccessKeyId:n.S3_ACCESS_KEY_ID,s3SecretAccessKey:n.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:mE(n.S3_FORCE_PATH_STYLE),monitoringS3Bucket:n.MONITORING_S3_BUCKET,monitoringS3Endpoint:n.MONITORING_S3_ENDPOINT,monitoringS3Region:n.MONITORING_S3_REGION,monitoringS3AccessKeyId:n.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:n.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:n.MONITORING_S3_PREFIX,duckdbExtensionDirectory:n.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:n.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:hu("DUCKDB_THREADS",n.DUCKDB_THREADS),isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME||crypto.randomUUID(),dispatchRole:tE(q(n.STUDIO_DISPATCH_ROLE,n.MESH_DISPATCH_ROLE)),sandboxProviderKind:TE(n.STUDIO_SANDBOX_PROVIDER),sandboxStickyHeadRefEnabled:L(n.SANDBOX_STICKY_HEAD_REF),sandboxReleaseOnRunEndEnabled:L(n.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:U("SANDBOX_RELEASE_GRACE_MS",n.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,reportsInternalApiUrl:q(n.REPORTS_INTERNAL_API_URL,n.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:q(n.REPORTS_INTERNAL_API_KEY,n.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:n.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:n.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:n.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:n.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:n.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:n.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:n.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:Gx(n.DATABASE_URL),externalNatsUrl:Gx(i),skipMigrations:t.skipMigrations}}var wt=null;function B(){if(!wt)yE();return wt}function yE(){if(wt)return;let t={...process.env},n=Ax({port:t.PORT||"3000",home:t.DATA_DIR||t.DECOCMS_HOME||"",localMode:t.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:t.DECO_NO_TUI==="true",vitePort:t.VITE_PORT,baseUrl:t.BASE_URL},t);wt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((_)=>_.trim()).filter(Boolean)})}import{createContextKey as eE,metrics as fE,propagation as Kw,ROOT_CONTEXT as ew,SpanStatusCode as fw,trace as wE}from"@opentelemetry/api";import{logs as zE,SeverityNumber as Vu}from"@opentelemetry/api-logs";import{OTLPLogExporter as Pw}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as PE}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as pw}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as jw}from"@opentelemetry/instrumentation-runtime-node";import{context as Tf,propagation as yf,SpanKind as Cf,SpanStatusCode as Nf}from"@opentelemetry/api";var Ef=globalThis.fetch;import{ExportResultCode as Df}from"@opentelemetry/core";import{ExportResultCode as zt}from"@opentelemetry/core";import{mkdir as CE,rename as NE,writeFile as aE}from"fs/promises";import{join as Pt}from"path";class Ut{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(t){this.basePath=t.basePath,this.flushThreshold=t.flushThreshold??1000,this.maxBufferBytes=t.maxBufferBytes??10485760,this.partitionKey=t.partitionKey;let n=t.flushIntervalMs??60000;if(n>0&&n<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((_)=>{console.error("[NDJSONExporter] Timer flush failed:",_)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:zt.FAILED});for(let n of t){let _=JSON.stringify(n),m=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:m,json:_}),this.bufferBytes+=Buffer.byteLength(_,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:zt.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:zt.FAILED}});return Promise.resolve({code:zt.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 n=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=n,n}async doFlush(){if(this.bufferItems.length===0)return;let t=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let n=new Map;for(let x of t){let i=n.get(x.partition);if(!i)i=[],n.set(x.partition,i);i.push(x.json)}let _=await Promise.allSettled(Array.from(n.entries()).map(([x,i])=>this.writeNDJSON(i,x).then(()=>x))),m=_.find((x)=>x.status==="rejected");if(m){let x=new Set;for(let y of _)if(y.status==="fulfilled")x.add(y.value);let i=t.filter((y)=>!x.has(y.partition));this.bufferItems=i.concat(this.bufferItems),this.bufferBytes=0;for(let y of this.bufferItems)this.bufferBytes+=Buffer.byteLength(y.json,"utf8")+1;throw m.reason}}async writeNDJSON(t,n){let _=new Date,m=[String(_.getUTCFullYear()),String(_.getUTCMonth()+1).padStart(2,"0"),String(_.getUTCDate()).padStart(2,"0"),String(_.getUTCHours()).padStart(2,"0")],x=n?Pt(this.basePath,n,...m):Pt(this.basePath,...m);if(!this.knownDirs.has(x))await CE(x,{recursive:!0,mode:448}),this.knownDirs.add(x);let i=`${crypto.randomUUID()}.ndjson`,y=Pt(x,`.${i}.tmp`),T=Pt(x,i),C=t.join(`
|
|
1096
|
+
`.execute(t)}async function sa(t){await t.schema.dropIndex("idx_task_board_items_pending_review").execute()}var la={"001-initial-schema":pt,"002-organization-settings":Jt,"003-connection-schema-align":jt,"004-remove-models-binding":Dt,"005-connection-configuration":$t,"006-add-views-to-settings":Lt,"007-monitoring-logs":Wt,"008-event-bus":Rt,"009-drop-audit-logs":Xt,"010-gateways":Qt,"011-gateway-icon":Zt,"012-gateway-tool-selection-mode":Ft,"013-monitoring-user-agent-gateway":Ht,"014-gateway-resources-prompts":Mt,"015-monitoring-properties":Yt,"016-downstream-token-client-info":Bt,"017-downstream-token-remove-userid":Gt,"018-drop-gateway-tool-selection-strategy":At,"019-remove-gateway-is-default":St,"020-enabled-plugins":Ot,"021-threads":It,"022-rename-gateway-to-virtual-mcp":kt,"023-optimize-thread-indexes":ct,"024-consolidate-virtual-mcp":ht,"025-add-monitoring-virtual-mcp-id":Vt,"026-restrict-child-connection-delete":gt,"027-update-management-mcp-url":qt,"028-update-management-mcp-to-self":st,"029-add-updated-by-to-connections":lt,"030-member-tags":dt,"031-add-dependency-mode":bt,"032-projects":tn,"033-thread-status":nn,"034-monitoring-dashboards":_n,"035-project-connections":un,"036-update-registry-url":xn,"037-ai-provider-keys":mn,"038-oauth-pkce-states":Tn,"039-automations":yn,"040-replace-next-run-at-with-last-run-at":Cn,"041-ai-provider-keys-unique-constraint":Nn,"042-rename-mesh-mcp-to-cms-mcp":an,"043-rename-cms-mcp-to-deco-cms":En,"044-drop-connections-tools-column":Kn,"045-thread-context-start-message":en,"046-remove-object-storage-plugin":wn,"047-add-next-run-at":zn,"048-merge-projects-agents":Un,"049-remove-org-admin-projects":on,"050-durable-agent-runs":pn,"051-org-sso":jn,"052-thread-agent-ids":Dn,"053-registry-config":$n,"054-connection-slug":Wn,"055-spaces":Rn,"056-automation-project-scope":Xn,"057-thread-virtual-mcp-id":Qn,"058-trigger-callback-tokens":Zn,"059-kv":Fn,"060-member-index":Hn,"061-downstream-token-connection-index":Mn,"062-private-registry":Yn,"063-event-subscriptions-enabled-boolean":Bn,"064-brand-context":Gn,"065-organization-domains":An,"066-brand-context-structured":Sn,"067-threads-metadata":On,"068-threads-branch":In,"069-sandbox-runner-state":kn,"070-model-categories":cn,"071-default-home-agents":hn,"072-ai-provider-key-preset-id":Vn,"073-backfill-basic-usage-roles":gn,"074-sandbox-runner-state-handle-nonunique":rn,"075-thread-inflight-async-jobs":qn,"076-automations-drop-agent-json":vn,"077-tier-only-model-selection":ln,"078-automation-tool-call-kind":dn,"079-strip-legacy-freestyle-vm-map-entries":bn,"080-async-research-jobs":t_,"081-async-research-jobs-result-content":n_,"082-secrets":__,"083-thread-run-locally":u_,"084-drop-host-sandbox-rows":x_,"085-rename-runner-kind":m_,"086-thread-pins-and-vm-map-rekey":i_,"087-fix-vm-map-rekey":T_,"088-purge-cli-activate-keys":y_,"089-rename-remote-user-to-desktop":C_,"090-automation-webhook-triggers":N_,"091-organization-domains-allow-multi":a_,"092-sandbox-naming-uniformization":E_,"093-backfill-global-search-basic-usage":K_,"094-org-file-configs":f_,"095-remove-automation-tool-call-kind":w_,"096-org-file-configs-public-url-base":z_,"097-drop-local-docker-sandbox-state":U_,"098-thread-message-parts":o_,"099-run-fence":p_,"100-link-transport":J_,"101-cancel-requested-at":j_,"102-observational-agent":D_,"103-revert-observational-agent":$_,"104-agent-sandbox-provider-kind":W_,"105-org-fs":R_,"106-automation-tools":X_,"107-org-fs-public-org":Q_,"108-automation-max-agent-steps":Z_,"109-thread-message-parts-per-message-seq":F_,"110-backfill-ghs-token-expiry":H_,"111-org-fs-thread-id":M_,"112-org-file-configs-credential-type":Y_,"113-thread-failure-reason":B_,"114-run-acked-seq":G_,"115-thread-projected-seq":A_,"116-org-sites":S_,"117-org-file-configs-site-slug":O_,"118-organization-domains-multi-verify":I_,"119-organization-join-requests":k_,"120-org-fs-read-public":c_,"121-org-fs-share-password":h_,"122-split-web-research-tier":r_,"123-connection-credential-vault":q_,"124-drop-thread-projected-seq":v_,"125-github-child-single-parent":s_,"126-task-board":d_,"127-task-board-due-date":b_,"128-reports-only":tu,"129-task-board-assigned-by":nu,"130-task-board-thread-id":_u,"131-task-board-thread-link-cascade":uu,"132-task-board-item-prs":xu,"133-dedupe-duplicate-members":mu,"134-drop-task-board-enabled":iu,"135-task-board-item-fk-cascade":Tu,"136-task-board-import-idempotency":yu,"137-agent-sandbox-runner-state":Cu,"138-agent-sandbox-sessions":Nu,"139-organization-billing":au,"140-seat-change-log":Eu,"141-benefits-sync-pending":Ku,"142-stripe-event-watermark":eu,"143-armed-report-url":fu,"144-benefits-pending-index":wu,"145-user-model-preferences":zu,"146-organization-main-agent":Pu,"147-drop-agent-sandbox-tables":Uu,"148-org-flags":ou,"149-task-board-item-sort-order":pu,"150-task-board-activity":Ju,"151-task-board-tags":Du,"152-repair-connection-slug":Lu,"153-task-board-latest-assistant-part-index":Wu,"154-task-board-qa-activity":Xu,"155-task-board-review-claims":Qu,"156-task-board-conflict-activity":Fu,"157-drop-seat-billing":Hu,"158-drop-github-child-single-parent":Mu,"159-task-board-comments":Yu,"160-task-quota-billing":Bu,"161-task-quota-claim-state":Au,"162-claude-subscriptions":Su,"163-task-board-item-dismissed":Ou,"164-per-org-task-quota":Iu,"165-task-board-pending-review-index":ku},cu=la;import{getMigrations as ZE}from"better-auth/db";import{sso as FE}from"@better-auth/sso";import{organization as HE}from"@decocms/better-auth/plugins";import{admin as ME,apiKey as YE,jwt as BE,magicLink as GE,mcp as AE,openAPI as SE}from"better-auth/plugins";import{emailOTP as OE}from"better-auth/plugins/email-otp";import{Kysely as DE,PostgresDialect as rx}from"kysely";import{Pool as qx}from"pg";import{homedir as da}from"os";var ba=new Set(["all","worker","api"]);function tE(t){let n=(t??"").trim();return ba.has(n)?n:"all"}var nE=new Set(["production","development","test"]);function _E(t){let n=(t??"").trim();return nE.has(n)?n:"development"}function D(t){return t==="true"||t==="1"}function uE(t){if(t===void 0||t==="")return;return D(t)}function hu(t,n,_){if(n===void 0||n==="")return;let m=Number(n);if(!Number.isSafeInteger(m)||m<=0)throw Error(`${t} must be a positive integer`);if(_!==void 0&&m>_)throw Error(`${t} must be at most ${_}`);return m}function U(t,n,_,m){return hu(t,n,m)??_}function xE(t,n,_,m){if(n===void 0||n==="")return _;let x=Number(n);if(!Number.isSafeInteger(x)||x<0)throw Error(`${t} must be a non-negative integer`);if(m!==void 0&&x>m)throw Error(`${t} must be at most ${m}`);return x}function Bx(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function Gx(t){if(!t)return null;try{let _=new URL(t).hostname.replace(/^\[|\]$/g,"");if(_==="localhost"||_==="127.0.0.1"||_==="::1")return null;return t}catch{return null}}function mE(t){return t===void 0||t===""||t==="true"||t==="1"}function q(t,n){return t||n}var iE=new Set(["agent-sandbox","user-desktop"]);function TE(t){let n=(t??"").trim(),_=n.length>0?n:"user-desktop";if(_==="cluster")return"agent-sandbox";if(!iE.has(_))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return _}function Ax(t,n){let _=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${da()}/deco`,m=t.localMode,x=t.nodeEnv||_E(n.NODE_ENV),i=n.NATS_URL||"nats://localhost:4222",y=uE(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:x,port:U("PORT",t.port||n.PORT,3000,65535),baseUrl:t.baseUrl||n.BASE_URL,publicUrl:q(n.STUDIO_PUBLIC_URL,n.MESH_PUBLIC_URL),dataDir:_,databasePgSsl:D(n.DATABASE_PG_SSL),databasePoolMax:U("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),dbosPoolSize:U("DBOS_POOL_SIZE",n.DBOS_POOL_SIZE,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:q(n.STUDIO_JWT_SECRET,n.MESH_JWT_SECRET),localMode:m,disableRateLimit:D(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((C)=>C.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:hu("CLICKHOUSE_MAX_MEMORY_USAGE",n.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:n.MONITORING_OTLP_ENDPOINT,otelServiceName:n.OTEL_SERVICE_NAME||"studio",natsPublicUrl:n.NATS_PUBLIC_URL,natsTunnelPublicEnabled:y,natsTunnelSessionTtlSeconds:U("NATS_TUNNEL_SESSION_TTL_SECONDS",n.NATS_TUNNEL_SESSION_TTL_SECONDS,900),natsOperatorJwt:n.NATS_OPERATOR_JWT,natsAccountJwt:n.NATS_ACCOUNT_JWT,natsAccountSigningKey:n.NATS_ACCOUNT_SIGNING_KEY,natsCredsPath:n.NATS_CREDS,configPath:n.CONFIG_PATH||"./config.json",aiGatewayEnabled:D(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeOrgPriceId:n.STRIPE_ORG_PRICE_ID,topupFeePercent:xE("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:D(n.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:U("STUDIO_FREE_TASKS",n.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:U("STUDIO_MONTHLY_TASKS",n.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:U("STUDIO_MAX_RUNS_PER_TASK",n.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:D(n.ENABLE_DECO_IMPORT),mcpCacheEnabled:Bx(n.MCP_CACHE_ENABLED,x!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:D(n.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:U("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",n.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:U("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",n.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:Bx(n.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:U("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",n.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:n.S3_ENDPOINT,s3Bucket:n.S3_BUCKET,s3Region:n.S3_REGION||"auto",s3AccessKeyId:n.S3_ACCESS_KEY_ID,s3SecretAccessKey:n.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:mE(n.S3_FORCE_PATH_STYLE),monitoringS3Bucket:n.MONITORING_S3_BUCKET,monitoringS3Endpoint:n.MONITORING_S3_ENDPOINT,monitoringS3Region:n.MONITORING_S3_REGION,monitoringS3AccessKeyId:n.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:n.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:n.MONITORING_S3_PREFIX,duckdbExtensionDirectory:n.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:n.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:hu("DUCKDB_THREADS",n.DUCKDB_THREADS),isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME||crypto.randomUUID(),dispatchRole:tE(q(n.STUDIO_DISPATCH_ROLE,n.MESH_DISPATCH_ROLE)),sandboxProviderKind:TE(n.STUDIO_SANDBOX_PROVIDER),sandboxStickyHeadRefEnabled:D(n.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:D(n.TASK_BOARD_RERUN_REUSES_PR_BRANCH),sandboxReleaseOnRunEndEnabled:D(n.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:U("SANDBOX_RELEASE_GRACE_MS",n.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,reportsInternalApiUrl:q(n.REPORTS_INTERNAL_API_URL,n.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:q(n.REPORTS_INTERNAL_API_KEY,n.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:n.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:n.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:n.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:n.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:n.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:n.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:n.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:Gx(n.DATABASE_URL),externalNatsUrl:Gx(i),skipMigrations:t.skipMigrations}}var wt=null;function B(){if(!wt)yE();return wt}function yE(){if(wt)return;let t={...process.env},n=Ax({port:t.PORT||"3000",home:t.DATA_DIR||t.DECOCMS_HOME||"",localMode:t.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:t.DECO_NO_TUI==="true",vitePort:t.VITE_PORT,baseUrl:t.BASE_URL},t);wt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((_)=>_.trim()).filter(Boolean)})}import{createContextKey as eE,metrics as fE,propagation as Kw,ROOT_CONTEXT as ew,SpanStatusCode as fw,trace as wE}from"@opentelemetry/api";import{logs as zE,SeverityNumber as Vu}from"@opentelemetry/api-logs";import{OTLPLogExporter as Pw}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as PE}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as pw}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as jw}from"@opentelemetry/instrumentation-runtime-node";import{context as Tf,propagation as yf,SpanKind as Cf,SpanStatusCode as Nf}from"@opentelemetry/api";var Ef=globalThis.fetch;import{ExportResultCode as Df}from"@opentelemetry/core";import{ExportResultCode as zt}from"@opentelemetry/core";import{mkdir as CE,rename as NE,writeFile as aE}from"fs/promises";import{join as Pt}from"path";class Ut{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(t){this.basePath=t.basePath,this.flushThreshold=t.flushThreshold??1000,this.maxBufferBytes=t.maxBufferBytes??10485760,this.partitionKey=t.partitionKey;let n=t.flushIntervalMs??60000;if(n>0&&n<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((_)=>{console.error("[NDJSONExporter] Timer flush failed:",_)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:zt.FAILED});for(let n of t){let _=JSON.stringify(n),m=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:m,json:_}),this.bufferBytes+=Buffer.byteLength(_,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:zt.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:zt.FAILED}});return Promise.resolve({code:zt.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 n=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=n,n}async doFlush(){if(this.bufferItems.length===0)return;let t=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let n=new Map;for(let x of t){let i=n.get(x.partition);if(!i)i=[],n.set(x.partition,i);i.push(x.json)}let _=await Promise.allSettled(Array.from(n.entries()).map(([x,i])=>this.writeNDJSON(i,x).then(()=>x))),m=_.find((x)=>x.status==="rejected");if(m){let x=new Set;for(let y of _)if(y.status==="fulfilled")x.add(y.value);let i=t.filter((y)=>!x.has(y.partition));this.bufferItems=i.concat(this.bufferItems),this.bufferBytes=0;for(let y of this.bufferItems)this.bufferBytes+=Buffer.byteLength(y.json,"utf8")+1;throw m.reason}}async writeNDJSON(t,n){let _=new Date,m=[String(_.getUTCFullYear()),String(_.getUTCMonth()+1).padStart(2,"0"),String(_.getUTCDate()).padStart(2,"0"),String(_.getUTCHours()).padStart(2,"0")],x=n?Pt(this.basePath,n,...m):Pt(this.basePath,...m);if(!this.knownDirs.has(x))await CE(x,{recursive:!0,mode:448}),this.knownDirs.add(x);let i=`${crypto.randomUUID()}.ndjson`,y=Pt(x,`.${i}.tmp`),T=Pt(x,i),C=t.join(`
|
|
1097
1097
|
`)+`
|
|
1098
1098
|
`;await aE(y,C,{mode:384}),await NE(y,T)}}import{ExportResultCode as Xf}from"@opentelemetry/core";import{AggregationTemporality as Zf,DataPointType as Ff}from"@opentelemetry/sdk-metrics";import{ExportResultCode as Af}from"@opentelemetry/core";var kf=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as Fw,LoggerProvider as Hw}from"@opentelemetry/sdk-logs";import{detectResources as Yw,envDetector as Bw,hostDetector as Gw,osDetector as Aw,processDetector as Sw,resourceFromAttributes as Ow}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as kw}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as Vf}from"@opentelemetry/api-logs";import{NodeSDK as Vw}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as rw,SamplingDecision as G}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as sf}from"@opentelemetry/api";var UE="__d",oE=eE("Current request"),pE=1;var Ox=(t)=>{let _=new URL(t.url).searchParams.get(UE);if(_==="")return crypto.randomUUID();if(!_)_=t.headers.get("x-trace-debug-id");return _};class Ix{inner;constructor(t){this.inner=t}shouldSample(t,n,_,m,x,i){let y=t.getValue(oE);if(!y){if(this.inner)return this.inner.shouldSample(t,n,_,m,x,i);return{decision:G.RECORD_AND_SAMPLED}}let T=Ox(y);if(T)return{decision:G.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":T}};if(this.inner){let C=this.inner.shouldSample(t,n,_,m,x,i);if(C.decision===G.RECORD_AND_SAMPLED){let N=crypto.randomUUID();C.attributes={...C.attributes??{},"trace.debug.id":N}}return C}return{decision:G.NOT_RECORD}}toString(){return"DebugSampler"}}class kx{ratio;constructor(t){this.ratio=t}shouldSample(){if(Math.random()<this.ratio)return{decision:G.RECORD_AND_SAMPLED};return{decision:G.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var vw=new PE({preventServerStart:!0}),sw=new Ix(new kx(pE));var Sx=wE.getTracer("studio","1.0.0"),v=fE.getMeter("studio","1.0.0"),JE=zE.getLogger("studio","1.0.0"),gu=(t,n,_)=>{let m={},x=_,i=_[_.length-1];if(i!==null&&typeof i==="object"&&!Array.isArray(i)&&!(i instanceof Error)&&Object.getPrototypeOf(i)===Object.prototype)m=i,x=_.slice(0,-1);let y=x.map((T)=>{if(T instanceof Error)return`${T.name}: ${T.message}`;if(typeof T==="object")try{return JSON.stringify(T)}catch{return"[Object]"}return String(T)}).join(" ");JE.emit({severityNumber:t,severityText:n,body:y,attributes:{"log.source":"console",...m}})},ru={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...t)=>{gu(Vu.ERROR,"ERROR",t),ru.error(...t)};console.warn=(...t)=>{gu(Vu.WARN,"WARN",t),ru.warn(...t)};console.debug=(...t)=>{gu(Vu.DEBUG,"DEBUG",t),ru.debug(...t)};var qu,cx=0,vu=500;function jE(){if(qu)return;let t=performance.now()+vu;qu=setInterval(()=>{let n=performance.now();cx=Math.max(0,n-t),t=n+vu},vu),qu.unref?.()}function hx(){return jE(),cx}var $E=()=>v.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Vx=()=>v.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),gx=400,LE=100,WE=(t)=>(n)=>{let _={"db.statement":n.query.sql,"db.status":n.level==="error"?"error":"success"};if(n.queryDurationMillis>gx){let m=hx(),x=m>gx/2;console.error(x?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:n.queryDurationMillis,eventLoopLagMs:Math.round(m),sql:n.query.sql,pool:{total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:ot()}})}if($E().record(n.queryDurationMillis,_),n.level==="error")console.error("Query failed:",{durationMs:n.queryDurationMillis,error:n.error,sql:n.query.sql})};function RE(t){let n=t.connect.bind(t);return t.connect=(_)=>{if(typeof _==="function")return n(_);let m=performance.now(),x=ot(),i=t.idleCount===0&&t.totalCount>=x,y=t.idleCount;return n().then((T)=>{let C=performance.now()-m;if(Vx().record(C,{"db.pool.outcome":i?"contended":"available"}),C>LE)if(i)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:C,total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:x});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:C,idleAtStart:y,total:t.totalCount,max:x});return T},(T)=>{throw Vx().record(performance.now()-m,{"db.pool.outcome":"error"}),T})},t}var vx={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function sx(){try{return B().databasePgSsl}catch{return!1}}function ot(){try{return B().databasePoolMax}catch{return 10}}function XE(t){let n=RE(new qx({connectionString:t,max:ot(),ssl:sx(),...vx})),_=new rx({pool:n});return{type:"postgres",db:new DE({dialect:_,log:WE(n)}),pool:n}}function l(){return B().databaseUrl}function lx(t){let n=t||l();return new rx({pool:new qx({connectionString:n,max:ot(),ssl:sx(),...vx})})}function QE(t){let n=t||l();return XE(n)}async function dx(t){if(await t.db.destroy(),!t.pool.ended)await t.pool.end();if(t===s)s=null}var s=null;function su(){if(!s)s=QE(l());return s}async function bx(t){let _={database:lx(t||l()),plugins:[HE({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),ME(),YE(),BE(),SE(),AE({loginPage:"/login"}),FE(),GE({sendMagicLink:async()=>{}}),OE({sendVerificationOTP:async()=>{}})]},{toBeAdded:m,toBeCreated:x,runMigrations:i}=await ZE(_);if(!m.length&&!x.length)return"up to date";return await i(),`${x.length+m.length} table(s) migrated`}async function nm(t,n){return(await A`
|
|
1099
1099
|
SELECT table_name FROM information_schema.tables
|