decocms 4.158.2 → 4.158.4
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-qIC_xSrj.js → AlertCircle-DHgcYhmj.js} +1 -1
- package/dist/client/assets/{AreaChart-HkmLkZy2.js → AreaChart-BEVQvTdB.js} +1 -1
- package/dist/client/assets/{ArrowUp-Dv6dW9X3.js → ArrowUp-BjGiCrXd.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-CQVsRNYA.js → ArrowUpRight-BrtQQBZo.js} +1 -1
- package/dist/client/assets/{Check-Dw0yb53j.js → Check-BUiHazRB.js} +1 -1
- package/dist/client/assets/{CheckCircle-Dud6wUS9.js → CheckCircle-deIb8vfW.js} +1 -1
- package/dist/client/assets/{ChevronDown-DvIRW9jR.js → ChevronDown-DVHT62Jv.js} +1 -1
- package/dist/client/assets/{ChevronRight-C9FO0Ghk.js → ChevronRight-CXtW2QGA.js} +1 -1
- package/dist/client/assets/{ChevronUp-C8zQGFtm.js → ChevronUp-DSV9XoLO.js} +1 -1
- package/dist/client/assets/{Copy01-DBF2xtLX.js → Copy01-BiScKkTl.js} +1 -1
- package/dist/client/assets/{CpuChip01-Bm59eh5F.js → CpuChip01-ymhd_CXE.js} +1 -1
- package/dist/client/assets/{DotsVertical-A7mKqECE.js → DotsVertical-BTRfdTt8.js} +1 -1
- package/dist/client/assets/{Eye-BQPVNie2.js → Eye-2NdB9a3I.js} +1 -1
- package/dist/client/assets/{FilterLines-CLE41-vv.js → FilterLines-D5dkLZLM.js} +1 -1
- package/dist/client/assets/{HardDrive-Iz7lTyC4.js → HardDrive-B0OtmSeU.js} +1 -1
- package/dist/client/assets/{Key01-Dj3z1dEv.js → Key01-YqgoRdYS.js} +1 -1
- package/dist/client/assets/{LayoutLeft-DMB2s9jy.js → LayoutLeft-BgM6Eamn.js} +1 -1
- package/dist/client/assets/{LinkExternal01-BiWFfTiD.js → LinkExternal01-4RYKD6aG.js} +1 -1
- package/dist/client/assets/{LogOut01-CmE_ZaFu.js → LogOut01-kyU9jk8Z.js} +1 -1
- package/dist/client/assets/{Monitor01-DpjnSDYR.js → Monitor01-CkCi418U.js} +1 -1
- package/dist/client/assets/{Palette-Cl97ZzbL.js → Palette-DL8ibZIP.js} +1 -1
- package/dist/client/assets/{Play-BpgcQFKU.js → Play-DXP2nawR.js} +1 -1
- package/dist/client/assets/{Plus-sJs2USHB.js → Plus-s9TXkCXf.js} +1 -1
- package/dist/client/assets/{SearchLg-DEgv-uG-.js → SearchLg-BJZ6HADY.js} +1 -1
- package/dist/client/assets/{SearchMd-D9FDebLE.js → SearchMd-B0b0JvjU.js} +1 -1
- package/dist/client/assets/{Settings02-Bl_0yVE7.js → Settings02-Cik_-8YD.js} +1 -1
- package/dist/client/assets/{Shield01-BO8-H5xY.js → Shield01-DktY1ymp.js} +1 -1
- package/dist/client/assets/{Star01-o2L6nHqw.js → Star01-B7B_Bp4u.js} +1 -1
- package/dist/client/assets/{Stars01-CuVmQ4th.js → Stars01-BuDHdfVJ.js} +1 -1
- package/dist/client/assets/{Stars02-DgSFkiw6.js → Stars02-D3gkU1sm.js} +1 -1
- package/dist/client/assets/{Sun-DL-zXPtw.js → Sun-oATNnXub.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-DC3YBwC_.js → SwitchHorizontal01-BKhUbXg3.js} +1 -1
- package/dist/client/assets/{Tool01-DVkbgDKg.js → Tool01-bycCw6Yq.js} +1 -1
- package/dist/client/assets/{Tool02-GyxJVdhs.js → Tool02-DkWgM-Xb.js} +1 -1
- package/dist/client/assets/{Trash01-IiY64zb7.js → Trash01-OeJHEgLq.js} +1 -1
- package/dist/client/assets/{TrendUp01-BnywZeMt.js → TrendUp01-BNOj1CR7.js} +1 -1
- package/dist/client/assets/{Upload01-CHdkzkYk.js → Upload01-CagMm8l-.js} +1 -1
- package/dist/client/assets/{User01-Dic8NL9t.js → User01-Cl-WHRUM.js} +1 -1
- package/dist/client/assets/{Users01-CxHLm5J9.js → Users01-CdXPM6jQ.js} +1 -1
- package/dist/client/assets/{Users03-C-Rx_Rc3.js → Users03-D81pR5Nu.js} +1 -1
- package/dist/client/assets/{X-DTAX3OCa.js → X-Dlcnc76o.js} +1 -1
- package/dist/client/assets/{XCircle-u8Vikw7a.js → XCircle-B2ilB9Cf.js} +1 -1
- package/dist/client/assets/{XClose-DV1DPWGC.js → XClose-ClDBdatJ.js} +1 -1
- package/dist/client/assets/{Zap-C9po9Mov.js → Zap-DNeYc2oa.js} +1 -1
- package/dist/client/assets/{ZapSquare-yY2i-ZE0.js → ZapSquare-C9GDAGB2.js} +1 -1
- package/dist/client/assets/{access-gate-DKcnqzVk.js → access-gate-DFNR9Fa9.js} +1 -1
- package/dist/client/assets/{add-section-modal-BuZ_NECI.js → add-section-modal-CfAd9-k7.js} +1 -1
- package/dist/client/assets/{agent-icon-DwBPTcr7.js → agent-icon-Bi_etpab.js} +1 -1
- package/dist/client/assets/{agents-list-CNvUWwLk.js → agents-list-w_msxNoQ.js} +1 -1
- package/dist/client/assets/{ai-providers-BjmN_iJH.js → ai-providers-U35HOpCu.js} +1 -1
- package/dist/client/assets/{alert-CiHMyreR.js → alert-CaX780Df.js} +1 -1
- package/dist/client/assets/{alert-dialog-Ds78S35S.js → alert-dialog-8D4mUPqK.js} +1 -1
- package/dist/client/assets/{app-editor-CJiIIYx0.js → app-editor-c-LmG2YO.js} +1 -1
- package/dist/client/assets/{auth-B-WF-Fyk.js → auth-DvTfhvfV.js} +1 -1
- package/dist/client/assets/{auth-catchall-dNvPV8tq.js → auth-catchall-CqRte1cL.js} +1 -1
- package/dist/client/assets/{auth-entry-Dl0epUp1.js → auth-entry-ZakaoK2m.js} +1 -1
- package/dist/client/assets/{auth-split-layout-9KD_aCez.js → auth-split-layout-CelxYjP8.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-BSdP7jbF.js → authenticate-and-persist-oauth-ntAb-cm4.js} +1 -1
- package/dist/client/assets/{automation-list-row-Dwbyv5TT.js → automation-list-row-BEzgaGjj.js} +1 -1
- package/dist/client/assets/{automation-runs-DRI95Blq.js → automation-runs-DxJP2dcs.js} +1 -1
- package/dist/client/assets/{automations-CiegP5qa.js → automations-DfEHpXj-.js} +1 -1
- package/dist/client/assets/{avatar-CksInPMf.js → avatar-ClzxBV9e.js} +1 -1
- package/dist/client/assets/{badge-BQ6hSN97.js → badge-WA1F-Xjd.js} +1 -1
- package/dist/client/assets/{block-document-DtApBc50.js → block-document-D8mWb8_K.js} +1 -1
- package/dist/client/assets/{brand-context-hq-Z_9qV.js → brand-context-C_N6-kYm.js} +1 -1
- package/dist/client/assets/{buckets-DZEZvm_j.js → buckets-4LmeJZ5M.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-_IbwEONi.js → bulk-category-panel-prDaiGMj.js} +1 -1
- package/dist/client/assets/{calendar-Dh6Ay4oq.js → calendar-B5abXP2V.js} +1 -1
- package/dist/client/assets/{capability-load-error-DmwIYHnQ.js → capability-load-error-ChNrkvvm.js} +1 -1
- package/dist/client/assets/{card-CSjRjipe.js → card-LO6dZXil.js} +1 -1
- package/dist/client/assets/{category-editor-BIqEh4Eq.js → category-editor-DTAvnXRa.js} +1 -1
- package/dist/client/assets/{chat-context-D64R7wZr.js → chat-context-zeqQcMti.js} +1 -1
- package/dist/client/assets/{checkbox-CPbhbD1e.js → checkbox-Cw8HKHHi.js} +1 -1
- package/dist/client/assets/{cli-auth-success-CIKWin3h.js → cli-auth-success-CuDoYzaJ.js} +1 -1
- package/dist/client/assets/{collection-detail-Cso7X5xa.js → collection-detail-DbfR6ex-.js} +1 -1
- package/dist/client/assets/{collection-display-button-0fTpEpjG.js → collection-display-button-CiMqtlsV.js} +1 -1
- package/dist/client/assets/{collection-search-BwFX8J9H.js → collection-search-D1_K1UqQ.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-zuHVMAKO.js → collection-table-wrapper-ClCoVIlJ.js} +1 -1
- package/dist/client/assets/{collection-tabs-CvyLDMWR.js → collection-tabs-1SHlsghV.js} +1 -1
- package/dist/client/assets/{command-57yejGBk.js → command-DShS1UxO.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-CfO1R-2I.js → commerce-onboarding-mGrOJZ2Q.js} +1 -1
- package/dist/client/assets/{companions-core-DFao4P_s.js → companions-core-_Z_-cLK0.js} +1 -1
- package/dist/client/assets/{connect-CNm71Hjc.js → connect-8eg4814h.js} +1 -1
- package/dist/client/assets/{connection-QATUkG05.js → connection-C5dpxEWY.js} +1 -1
- package/dist/client/assets/{connection-card-DrJZGb5B.js → connection-card-Dy3kZgzh.js} +1 -1
- package/dist/client/assets/{connection-detail-C5oyVr86.js → connection-detail-C-T65p3D.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-DrZpyl95.js → connection-form-helpers-DzIjKYNM.js} +1 -1
- package/dist/client/assets/{connections-D3o8P-Wb.js → connections-qb_n_b8X.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-s13SK9y4.js → decopilot-sse-pool-UyDKxVe5.js} +1 -1
- package/dist/client/assets/{dialog-C7c6o6FP.js → dialog-DPP64Vmy.js} +1 -1
- package/dist/client/assets/{domain-settings-Mv5ZBGq6.js → domain-settings-qgk3KUji.js} +1 -1
- package/dist/client/assets/{drawer-BKO67Xux.js → drawer-DQBNgMoI.js} +1 -1
- package/dist/client/assets/{dropdown-menu-CbU2D-c0.js → dropdown-menu-_CNw_Rd2.js} +1 -1
- package/dist/client/assets/{empty-state-c2j5Ds6E.js → empty-state-Bo8R97U8.js} +1 -1
- package/dist/client/assets/{extract-connection-data-CHzJzImj.js → extract-connection-data-DJ_27HNh.js} +1 -1
- package/dist/client/assets/{file-explorer-DjGGJJmb.js → file-explorer-DYs3gXnq.js} +1 -1
- package/dist/client/assets/{form-4dv9_c-3.js → form-DN-xptG7.js} +1 -1
- package/dist/client/assets/{general-DmeeYFiw.js → general-Gj6efsET.js} +1 -1
- package/dist/client/assets/{github-repo-picker-BDJbJq_X.js → github-repo-picker-BZvtdGKM.js} +1 -1
- package/dist/client/assets/{hooks-CQZEoVeJ.js → hooks-CIkoIPmU.js} +1 -1
- package/dist/client/assets/{index-Bd5TxvXq.js → index-BJRntjkm.js} +1 -1
- package/dist/client/assets/{index-CCKcgzR3.js → index-BO5x5Pru.js} +3 -3
- package/dist/client/assets/{index-C_siJ8jb.js → index-C1sOBexM.js} +3 -3
- package/dist/client/assets/{index-C02mImEU.js → index-C7as0S1_.js} +1 -1
- package/dist/client/assets/{index-ObaO_KTB.js → index-CUEfZQxJ.js} +1 -1
- package/dist/client/assets/{index-DK327Z1m.js → index-Cywu6UQw.js} +1 -1
- package/dist/client/assets/{index-BUR03TdS.js → index-DH-TcJCw.js} +5 -5
- package/dist/client/assets/{index-BHj_z9is.js → index-DXarGZ3N.js} +1 -1
- package/dist/client/assets/{index-kTQ08f_V.js → index-DrFramxc.js} +1 -1
- package/dist/client/assets/{index-DhhX5FGH.js → index-UlYfRVpK.js} +1 -1
- package/dist/client/assets/{index-DoiyHa2I.js → index-kMUJRxxt.js} +1 -1
- package/dist/client/assets/{index-redirect-BM56RLHI.js → index-redirect-Du6MyR-M.js} +1 -1
- package/dist/client/assets/{input-C0DYQwT4.js → input-BTM0qsuN.js} +1 -1
- package/dist/client/assets/{integration-icon-qI9RoW2h.js → integration-icon-CdhO4lXW.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-BuemHTqS.js → invite-member-dialog-C8tcZa6j.js} +1 -1
- package/dist/client/assets/{label-DwTm1B-u.js → label-BsRu6KPb.js} +1 -1
- package/dist/client/assets/{layout-BdY4uzlC.js → layout-C-4QBfaW.js} +1 -1
- package/dist/client/assets/{login-BdD1Za0l.js → login-CFy9FwMZ.js} +1 -1
- package/dist/client/assets/{mcp-oauth-Che7vtan.js → mcp-oauth-CjkIrNFU.js} +1 -1
- package/dist/client/assets/{members-CymT0WFw.js → members-DfwpiipA.js} +1 -1
- package/dist/client/assets/{monaco-editor-Cyh8g4ki.js → monaco-editor-Duf20mG5.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-ym6EVlnJ.js → monitoring-stats-row-6icDURsL.js} +1 -1
- package/dist/client/assets/{multi-select-D7N-MiN0.js → multi-select-DZpOU5j9.js} +1 -1
- package/dist/client/assets/{oauth-callback-BUEw7QDH.js → oauth-callback-DizBfpG2.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-DRD_6RrT.js → oauth-callback-ai-provider-BnxkGN6L.js} +1 -1
- package/dist/client/assets/{onboarding-r5XtoSLm.js → onboarding-DEaTHfx_.js} +1 -1
- package/dist/client/assets/{org-layout-DC_k-BB6.js → org-layout-Clg5-oLk.js} +1 -1
- package/dist/client/assets/{organization-choice-D7ScNtlb.js → organization-choice-DYWtdMnp.js} +1 -1
- package/dist/client/assets/{orgs-CFErd6sg.js → orgs-IbJZUnEG.js} +1 -1
- package/dist/client/assets/{page-seo-form-hYazo0Jj.js → page-seo-form-B2tQRj6Q.js} +1 -1
- package/dist/client/assets/{popover-Gmg5lY4q.js → popover-Zr_OONk-.js} +1 -1
- package/dist/client/assets/{post-editor-COrFDOZo.js → post-editor-CkLtxn92.js} +1 -1
- package/dist/client/assets/{primitives-CE6etn75.js → primitives-BBu_-gLI.js} +1 -1
- package/dist/client/assets/{profile-C7W3wF9h.js → profile-DnOcgyRH.js} +1 -1
- package/dist/client/assets/project-app-view-DjdVPXJ-.js +1 -0
- package/dist/client/assets/record-editor-2656X6eZ.js +1 -0
- package/dist/client/assets/{redirect-editor-5lNy5HsW.js → redirect-editor-B4QHjtRH.js} +1 -1
- package/dist/client/assets/registry-CyFT1ImX.js +2 -0
- package/dist/client/assets/{registry-layout-CC2oyVmB.js → registry-layout-Bh-Lx1xs.js} +1 -1
- package/dist/client/assets/{reports-DTetgeJj.js → reports-I8qnlpjm.js} +1 -1
- package/dist/client/assets/{require-capability-DMai0dE_.js → require-capability-V9XEXyHx.js} +1 -1
- package/dist/client/assets/{required-auth-layout-BNLV3Z9n.js → required-auth-layout-BkLuz0xG.js} +1 -1
- package/dist/client/assets/{reset-password-BC57Hkeq.js → reset-password-BaJJa7Yt.js} +1 -1
- package/dist/client/assets/{roles-las8u9fW.js → roles-jPb9_FaL.js} +1 -1
- package/dist/client/assets/{search-input-C83eu_0r.js → search-input-DQKtw49i.js} +1 -1
- package/dist/client/assets/{secrets-TEsTjL46.js → secrets-k3uayOP4.js} +1 -1
- package/dist/client/assets/{sections-editor-C2Om6EFx.js → sections-editor-DoF6t-fy.js} +1 -1
- package/dist/client/assets/{select-CBqI6EKt.js → select-CxnnShqp.js} +1 -1
- package/dist/client/assets/{select-model-urZAnlWP.js → select-model-CFSMQJVJ.js} +1 -1
- package/dist/client/assets/{self-tool-result-BU8ra_BU.js → self-tool-result-0ZelGITE.js} +1 -1
- package/dist/client/assets/{seo-editor-CGrEOztm.js → seo-editor-zQDTGem3.js} +1 -1
- package/dist/client/assets/{settings-layout-B6UunhIC.js → settings-layout-BunbY8cn.js} +1 -1
- package/dist/client/assets/{settings-section-BkCa2hSF.js → settings-section-BitTAsAK.js} +1 -1
- package/dist/client/assets/{shell-controls-DvqqvSsN.js → shell-controls-D7oR6bHX.js} +1 -1
- package/dist/client/assets/{shell-layout-DK_eY-ht.js → shell-layout-wdm9O3k_.js} +1 -1
- package/dist/client/assets/{sidebar-DY8K_17u.js → sidebar-Dqgf5Z8w.js} +1 -1
- package/dist/client/assets/{skeleton-DNroJ5d2.js → skeleton-DtkAAnkz.js} +1 -1
- package/dist/client/assets/{spinner-CNTd4wtK.js → spinner-DduBhWu4.js} +1 -1
- package/dist/client/assets/{sso-DbH0TO7h.js → sso-BerwOrrj.js} +1 -1
- package/dist/client/assets/{store-DzjFcyTL.js → store-Dr_ZyF1h.js} +1 -1
- package/dist/client/assets/store-registry-CJbcJ96u.js +2 -0
- package/dist/client/assets/{studio-tools-Dnhpj5qh.js → studio-tools-DVHzOfNB.js} +1 -1
- package/dist/client/assets/{switch-D7HAjvDx.js → switch-DBwbz3Xi.js} +1 -1
- package/dist/client/assets/{tab-id-DxO0cBtb.js → tab-id-DIwNOdlI.js} +1 -1
- package/dist/client/assets/{table-BE4QKzOE.js → table-UWKt5pp7.js} +1 -1
- package/dist/client/assets/{tabs-O9QjcYrv.js → tabs-Cz18-C_m.js} +1 -1
- package/dist/client/assets/{textarea-DFBGfRuK.js → textarea-FkpTRIPl.js} +1 -1
- package/dist/client/assets/{toggle-group-BtPvM55s.js → toggle-group-B1h1YnnN.js} +1 -1
- package/dist/client/assets/{toolbar-Cpvuujer.js → toolbar-Dx-gYRwr.js} +1 -1
- package/dist/client/assets/{tooltip-D9s1yr4p.js → tooltip-ofGcZCQ9.js} +1 -1
- package/dist/client/assets/{use-ai-providers-CQPjpXWl.js → use-ai-providers-fv4N3cN0.js} +1 -1
- package/dist/client/assets/{use-automations-CKUnBMBC.js → use-automations-7DllPAoQ.js} +1 -1
- package/dist/client/assets/{use-autosave-Dg87V8v1.js → use-autosave-DWwd6YYs.js} +1 -1
- package/dist/client/assets/{use-capability-BHSV9gBd.js → use-capability-D0kE_ZCg.js} +1 -1
- package/dist/client/assets/{use-clock-tick-cqkvm-Ef.js → use-clock-tick-qhYBud6o.js} +1 -1
- package/dist/client/assets/{use-connection-Cy658_xM.js → use-connection-B3bJbKLC.js} +1 -1
- package/dist/client/assets/{use-copy-CVhZVr-U.js → use-copy-B5c1UABg.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-Bi8HgMn7.js → use-create-virtual-mcp-Cv8fn_R5.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-Ch2W7ZiY.js → use-debounced-autosave-MkDvOBH_.js} +1 -1
- package/dist/client/assets/{use-debounced-value-DOn4Suao.js → use-debounced-value-B2YQoJvH.js} +1 -1
- package/dist/client/assets/{use-deco-credits-C98B9sz1.js → use-deco-credits-BJ-zfpWl.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-DHxI6exQ.js → use-decopilot-events-Dqe0FXIp.js} +1 -1
- package/dist/client/assets/{use-delete-connection-DJ9n74qf.js → use-delete-connection-BuM_Iq0b.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-BqcUjJTV.js → use-deployment-admin-DVBkVgEx.js} +1 -1
- package/dist/client/assets/{use-file-configs-D9dmpUrg.js → use-file-configs-VF0CPN8y.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-Hu8-0kRx.js → use-infinite-scroll-BGYehp8R.js} +1 -1
- package/dist/client/assets/{use-join-requests-DcUe6bm_.js → use-join-requests-Cn1ZYd0X.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-CkEtujGJ.js → use-mcp-auth-status-Bu0EtkQC.js} +1 -1
- package/dist/client/assets/{use-mcp-client-D51gNtSm.js → use-mcp-client-Bx5rEOWN.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-B1FxPgHp.js → use-mcp-tools-DFFHiaSm.js} +1 -1
- package/dist/client/assets/{use-members-0ZMl36LX.js → use-members-B_BHE6F0.js} +1 -1
- package/dist/client/assets/{use-mobile-Be620oYx.js → use-mobile-DsXjrI_q.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-Czj1eRPz.js → use-navigate-to-agent-CBxVi6Fh.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-J_HWXHei.js → use-org-auth-client-CpjH_OGj.js} +1 -1
- package/dist/client/assets/{use-org-sso-0BdA3rsr.js → use-org-sso-CktOBlhC.js} +1 -1
- package/dist/client/assets/{use-organization-roles-CYDjrcGS.js → use-organization-roles-BVLRjjmy.js} +1 -1
- package/dist/client/assets/{use-organization-settings-Dx8YLTtr.js → use-organization-settings-ClbIG6OQ.js} +1 -1
- package/dist/client/assets/{use-registry-connections-CZVi37FP.js → use-registry-connections-C4l2MQas.js} +1 -1
- package/dist/client/assets/{use-secrets-C2jMKR1n.js → use-secrets-DbZZ7Rsf.js} +1 -1
- package/dist/client/assets/{use-status-sounds-3jCuX-9T.js → use-status-sounds-CdflbWVf.js} +1 -1
- package/dist/client/assets/{use-tags-D6OOOtp7.js → use-tags-DnBvmtgf.js} +1 -1
- package/dist/client/assets/{use-view-mode-CfanfKcA.js → use-view-mode-eqBMFxfR.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-DQmehG0S.js → use-virtual-mcp-DYU8JBzA.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-DBAY8E_5.js +1 -0
- package/dist/client/assets/{useQueries-BRhSLBW5.js → useQueries-CCRzsil3.js} +1 -1
- package/dist/client/assets/{useRouterState-BTPqZkPv.js → useRouterState-w7yN5O6p.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-OxKNQfNq.js +1 -0
- package/dist/client/assets/{users-DetSWk8v.js → users-Dxn47AOx.js} +1 -1
- package/dist/client/assets/{variant-calendar-B7KPrNWl.js → variant-calendar-Bm6nnLeu.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-BmJXsKF6.js → view-mode-toggle-B8Adb4AB.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +404 -404
- package/dist/server/migrate.js +7 -7
- package/dist/server/server.js +282 -282
- package/package.json +1 -1
- package/dist/client/assets/project-app-view-Drm83BNO.js +0 -1
- package/dist/client/assets/record-editor-Cd1O7CW0.js +0 -1
- package/dist/client/assets/registry-CA8KXJkV.js +0 -2
- package/dist/client/assets/store-registry-Bcjy_qj0.js +0 -2
- package/dist/client/assets/useInfiniteQuery-CazF2pt1.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BKzWCoNd.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -148,7 +148,7 @@ var Hi=Object.defineProperty;var Yi=(t)=>t;function ri(t,n){this[t]=Yi.bind(null
|
|
|
148
148
|
id, parent_connection_id, child_connection_id,
|
|
149
149
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
150
150
|
FROM connection_aggregations
|
|
151
|
-
`.execute(t),await t.schema.dropTable("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await t.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var lt={};_(lt,{up:()=>tx,down:()=>nx});import{webcrypto as A_}from"crypto";var B_="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var qe=128,
|
|
151
|
+
`.execute(t),await t.schema.dropTable("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await t.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var lt={};_(lt,{up:()=>tx,down:()=>nx});import{webcrypto as A_}from"crypto";var B_="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var qe=128,W,Q;function le(t){if(!W||W.length<t)W=Buffer.allocUnsafe(t*qe),A_.getRandomValues(W),Q=0;else if(Q+t>W.length)A_.getRandomValues(W),Q=0;Q+=t}function Z(t=21){le(t|=0);let n="";for(let u=Q-t;u<Q;u++)n+=B_[W[u]&63];return n}var de="org-admin",be="Organization Admin";async function tx(t){await t.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await t.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await t.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await t.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await t.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let n=await t.selectFrom("organization").select(["id"]).execute();for(let u of n){let e=new Date().toISOString(),i=`proj_${Z()}`,x=await t.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await t.insertInto("projects").values({id:i,organization_id:u.id,slug:de,name:be,description:null,enabled_plugins:x?.enabled_plugins??null,ui:null,created_at:e,updated_at:e}).execute()}}async function nx(t){await t.schema.dropTable("project_plugin_configs").execute(),await t.schema.dropTable("projects").execute()}var dt={};_(dt,{up:()=>ux,down:()=>_x});async function ux(t){await t.schema.alterTable("threads").addColumn("status","text",(n)=>n.notNull().defaultTo("completed")).execute()}async function _x(t){await t.schema.alterTable("threads").dropColumn("status").execute()}var bt={};_(bt,{up:()=>ix,down:()=>ex});async function ix(t){}async function ex(t){}var tn={};_(tn,{up:()=>xx,down:()=>mx});async function xx(t){await t.schema.createTable("project_connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("project_id","text",(n)=>n.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(n)=>n.notNull()).execute(),await t.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await t.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function mx(t){await t.schema.dropIndex("project_connections_project_id_idx").execute(),await t.schema.dropIndex("project_connections_project_conn_unique").execute(),await t.schema.dropTable("project_connections").execute()}var nn={};_(nn,{up:()=>ax,down:()=>ox});import{sql as S_}from"kysely";async function ax(t){await S_`
|
|
152
152
|
UPDATE connections
|
|
153
153
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
154
154
|
tools = NULL,
|
|
@@ -948,7 +948,7 @@ var Hi=Object.defineProperty;var Yi=(t)=>t;function ri(t,n){this[t]=Yi.bind(null
|
|
|
948
948
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
949
949
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
950
950
|
WHERE revoked_at IS NULL
|
|
951
|
-
`.execute(t),await t.schema.createTable("connection_credential_grants").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(n)=>n.notNull()).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await t.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await t.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function Go(t){await t.schema.dropTable("connection_credential_grants").ifExists().execute(),await t.schema.dropTable("connection_workload_tokens").ifExists().execute()}var gu={};_(gu,{up:()=>Oo,down:()=>ho});async function Oo(t){await t.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function ho(t){await t.schema.alterTable("threads").addColumn("projected_seq","integer",(n)=>n.notNull().defaultTo(0)).execute()}var Vu={};_(Vu,{up:()=>Io,down:()=>go});import{sql as
|
|
951
|
+
`.execute(t),await t.schema.createTable("connection_credential_grants").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(n)=>n.notNull()).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await t.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await t.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function Go(t){await t.schema.dropTable("connection_credential_grants").ifExists().execute(),await t.schema.dropTable("connection_workload_tokens").ifExists().execute()}var gu={};_(gu,{up:()=>Oo,down:()=>ho});async function Oo(t){await t.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function ho(t){await t.schema.alterTable("threads").addColumn("projected_seq","integer",(n)=>n.notNull().defaultTo(0)).execute()}var Vu={};_(Vu,{up:()=>Io,down:()=>go});import{sql as X}from"kysely";async function Io(t){await X`
|
|
952
952
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
953
953
|
RETURNS jsonb AS $fn$
|
|
954
954
|
BEGIN
|
|
@@ -957,7 +957,7 @@ var Hi=Object.defineProperty;var Yi=(t)=>t;function ri(t,n){this[t]=Yi.bind(null
|
|
|
957
957
|
RETURN NULL;
|
|
958
958
|
END;
|
|
959
959
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
960
|
-
`.execute(t),await
|
|
960
|
+
`.execute(t),await X`
|
|
961
961
|
DELETE FROM connection_aggregations a
|
|
962
962
|
USING (
|
|
963
963
|
SELECT
|
|
@@ -981,7 +981,7 @@ var Hi=Object.defineProperty;var Yi=(t)=>t;function ri(t,n){this[t]=Yi.bind(null
|
|
|
981
981
|
WHERE jsonb_typeof(try_parse_jsonb(child.metadata) -> 'repoScope') = 'object'
|
|
982
982
|
) ranked
|
|
983
983
|
WHERE a.id = ranked.id AND ranked.rn > 1;
|
|
984
|
-
`.execute(t),await
|
|
984
|
+
`.execute(t),await X`
|
|
985
985
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
986
986
|
RETURNS trigger AS $fn$
|
|
987
987
|
BEGIN
|
|
@@ -1002,12 +1002,12 @@ var Hi=Object.defineProperty;var Yi=(t)=>t;function ri(t,n){this[t]=Yi.bind(null
|
|
|
1002
1002
|
RETURN NEW;
|
|
1003
1003
|
END;
|
|
1004
1004
|
$fn$ LANGUAGE plpgsql;
|
|
1005
|
-
`.execute(t),await
|
|
1005
|
+
`.execute(t),await X`
|
|
1006
1006
|
CREATE TRIGGER trg_repo_github_child_single_parent
|
|
1007
1007
|
BEFORE INSERT ON connection_aggregations
|
|
1008
1008
|
FOR EACH ROW
|
|
1009
1009
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1010
|
-
`.execute(t)}async function go(t){await
|
|
1010
|
+
`.execute(t)}async function go(t){await X`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(t),await X`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(t),await X`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(t)}var vu={};_(vu,{up:()=>Vo,down:()=>so});import{sql as su}from"kysely";async function Vo(t){await t.schema.createTable("task_board_items").addColumn("id","text",(n)=>n.primaryKey().notNull()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("status","text",(n)=>n.notNull().defaultTo("triage")).addColumn("priority","text",(n)=>n.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(su`now()`)).addColumn("updated_by","text",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(su`now()`)).execute(),await t.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await t.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(n)=>n.notNull().defaultTo(su`false`)).execute()}async function so(t){await t.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await t.schema.dropTable("task_board_items").execute()}var qu={};_(qu,{up:()=>vo,down:()=>qo});async function vo(t){await t.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function qo(t){await t.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var lu={};_(lu,{up:()=>lo,down:()=>bo});async function lo(t){await t.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function bo(t){await t.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var du={};_(du,{up:()=>ty,down:()=>ny});async function ty(t){await t.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function ny(t){await t.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var bu={};_(bu,{up:()=>_y,down:()=>iy});import{sql as uy}from"kysely";async function _y(t){await t.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(n)=>n.notNull()).addColumn("thread_id","text",(n)=>n.notNull()).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(uy`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await t.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await t.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function iy(t){await t.schema.dropTable("task_board_item_threads").execute()}var t_={};_(t_,{up:()=>ey,down:()=>xy});async function ey(t){await t.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(n)=>n.onDelete("cascade")).execute()}async function xy(t){await t.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var n_={};_(n_,{up:()=>ay,down:()=>oy});import{sql as my}from"kysely";async function ay(t){await t.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(n)=>n.notNull()).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("url","text",(n)=>n.notNull()).addColumn("pr_number","integer",(n)=>n.notNull()).addColumn("repo_owner","text",(n)=>n.notNull()).addColumn("repo_name","text",(n)=>n.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(my`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await t.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function oy(t){await t.schema.dropTable("task_board_item_prs").execute()}var u_={};_(u_,{up:()=>Ty,down:()=>Cy});import{sql as yy}from"kysely";async function Ty(t){await yy`
|
|
1011
1011
|
DELETE FROM member
|
|
1012
1012
|
WHERE id IN (
|
|
1013
1013
|
SELECT id FROM (
|
|
@@ -1053,7 +1053,7 @@ var Hi=Object.defineProperty;var Yi=(t)=>t;function ri(t,n){this[t]=Yi.bind(null
|
|
|
1053
1053
|
SELECT id, app_name, connection_url, title, slug
|
|
1054
1054
|
FROM connections
|
|
1055
1055
|
WHERE connection_type != 'VIRTUAL'
|
|
1056
|
-
`.execute(t),u=0;for(let e of n.rows){let i=dy(e);if(i===e.slug)continue;await fi`UPDATE connections SET slug = ${i} WHERE id = ${e.id}`.execute(t),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function tT(){}var j_={};_(j_,{up:()=>uT,down:()=>_T});import{sql as nT}from"kysely";async function uT(t){await nT`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(t)}async function _T(t){await t.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var L_={};_(L_,{up:()=>eT,down:()=>xT,ACTIONS:()=>D_});import{sql as Ct}from"kysely";var D_=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],iT=new Set(["review_requested","review_approved","review_changes_requested"]);async function eT(t){await Ki(t,D_)}async function xT(t){await Ki(t,D_.filter((n)=>!iT.has(n)))}async function Ki(t,n){await Ct`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(t),await Ct`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Ct.join(n.map((u)=>Ct.lit(u)))}))`.execute(t)}var $_={};_($_,{up:()=>aT,down:()=>oT});import{sql as mT}from"kysely";async function aT(t){await t.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(n)=>n.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(n)=>n.notNull()).addColumn("cycle_at","timestamptz",(n)=>n.notNull()).addColumn("token","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(mT`now()`)).addPrimaryKeyConstraint("task_board_review_claims_pkey",["task_board_item_id","reviewer","cycle_at"]).execute(),await t.schema.createIndex("idx_task_board_review_claims_token").on("task_board_review_claims").columns(["task_board_item_id","token"]).execute()}async function oT(t){await t.schema.dropIndex("idx_task_board_review_claims_token").execute(),await t.schema.dropTable("task_board_review_claims").execute()}var yT={"001-initial-schema":pt,"002-organization-settings":ct,"003-connection-schema-align":zt,"004-remove-models-binding":Pt,"005-connection-configuration":Ut,"006-add-views-to-settings":Jt,"007-monitoring-logs":jt,"008-event-bus":Dt,"009-drop-audit-logs":Lt,"010-gateways":$t,"011-gateway-icon":Rt,"012-gateway-tool-selection-mode":Wt,"013-monitoring-user-agent-gateway":Xt,"014-gateway-resources-prompts":Qt,"015-monitoring-properties":Zt,"016-downstream-token-client-info":kt,"017-downstream-token-remove-userid":Ft,"018-drop-gateway-tool-selection-strategy":Mt,"019-remove-gateway-is-default":Ht,"020-enabled-plugins":Yt,"021-threads":rt,"022-rename-gateway-to-virtual-mcp":Bt,"023-optimize-thread-indexes":At,"024-consolidate-virtual-mcp":St,"025-add-monitoring-virtual-mcp-id":Gt,"026-restrict-child-connection-delete":Ot,"027-update-management-mcp-url":It,"028-update-management-mcp-to-self":Vt,"029-add-updated-by-to-connections":st,"030-member-tags":vt,"031-add-dependency-mode":qt,"032-projects":lt,"033-thread-status":dt,"034-monitoring-dashboards":bt,"035-project-connections":tn,"036-update-registry-url":nn,"037-ai-provider-keys":un,"038-oauth-pkce-states":_n,"039-automations":en,"040-replace-next-run-at-with-last-run-at":xn,"041-ai-provider-keys-unique-constraint":mn,"042-rename-mesh-mcp-to-cms-mcp":an,"043-rename-cms-mcp-to-deco-cms":on,"044-drop-connections-tools-column":yn,"045-thread-context-start-message":Tn,"046-remove-object-storage-plugin":Nn,"047-add-next-run-at":En,"048-merge-projects-agents":Kn,"049-remove-org-admin-projects":wn,"050-durable-agent-runs":pn,"051-org-sso":zn,"052-thread-agent-ids":Pn,"053-registry-config":Un,"054-connection-slug":jn,"055-spaces":Dn,"056-automation-project-scope":Ln,"057-thread-virtual-mcp-id":$n,"058-trigger-callback-tokens":Rn,"059-kv":Wn,"060-member-index":Xn,"061-downstream-token-connection-index":Qn,"062-private-registry":Zn,"063-event-subscriptions-enabled-boolean":kn,"064-brand-context":Fn,"065-organization-domains":Mn,"066-brand-context-structured":Hn,"067-threads-metadata":Yn,"068-threads-branch":rn,"069-sandbox-runner-state":Bn,"070-model-categories":An,"071-default-home-agents":Sn,"072-ai-provider-key-preset-id":Gn,"073-backfill-basic-usage-roles":On,"074-sandbox-runner-state-handle-nonunique":hn,"075-thread-inflight-async-jobs":In,"076-automations-drop-agent-json":gn,"077-tier-only-model-selection":sn,"078-automation-tool-call-kind":vn,"079-strip-legacy-freestyle-vm-map-entries":qn,"080-async-research-jobs":ln,"081-async-research-jobs-result-content":dn,"082-secrets":bn,"083-thread-run-locally":tu,"084-drop-host-sandbox-rows":nu,"085-rename-runner-kind":uu,"086-thread-pins-and-vm-map-rekey":_u,"087-fix-vm-map-rekey":iu,"088-purge-cli-activate-keys":eu,"089-rename-remote-user-to-desktop":xu,"090-automation-webhook-triggers":mu,"091-organization-domains-allow-multi":au,"092-sandbox-naming-uniformization":ou,"093-backfill-global-search-basic-usage":yu,"094-org-file-configs":Cu,"095-remove-automation-tool-call-kind":Nu,"096-org-file-configs-public-url-base":Eu,"097-drop-local-docker-sandbox-state":Ku,"098-thread-message-parts":wu,"099-run-fence":pu,"100-link-transport":cu,"101-cancel-requested-at":zu,"102-observational-agent":Pu,"103-revert-observational-agent":Uu,"104-agent-sandbox-provider-kind":ju,"105-org-fs":Du,"106-automation-tools":Lu,"107-org-fs-public-org":$u,"108-automation-max-agent-steps":Ru,"109-thread-message-parts-per-message-seq":Wu,"110-backfill-ghs-token-expiry":Xu,"111-org-fs-thread-id":Qu,"112-org-file-configs-credential-type":Zu,"113-thread-failure-reason":ku,"114-run-acked-seq":Fu,"115-thread-projected-seq":Mu,"116-org-sites":Hu,"117-org-file-configs-site-slug":Yu,"118-organization-domains-multi-verify":ru,"119-organization-join-requests":Bu,"120-org-fs-read-public":Au,"121-org-fs-share-password":Su,"122-split-web-research-tier":hu,"123-connection-credential-vault":Iu,"124-drop-thread-projected-seq":gu,"125-github-child-single-parent":Vu,"126-task-board":vu,"127-task-board-due-date":qu,"128-reports-only":lu,"129-task-board-assigned-by":du,"130-task-board-thread-id":bu,"131-task-board-thread-link-cascade":t_,"132-task-board-item-prs":n_,"133-dedupe-duplicate-members":u_,"134-drop-task-board-enabled":__,"135-task-board-item-fk-cascade":i_,"136-task-board-import-idempotency":e_,"137-agent-sandbox-runner-state":x_,"138-agent-sandbox-sessions":m_,"139-organization-billing":a_,"140-seat-change-log":o_,"141-benefits-sync-pending":y_,"142-stripe-event-watermark":T_,"143-armed-report-url":C_,"144-benefits-pending-index":N_,"145-user-model-preferences":E_,"146-organization-main-agent":f_,"147-drop-agent-sandbox-tables":K_,"148-org-flags":w_,"149-task-board-item-sort-order":p_,"150-task-board-activity":c_,"151-task-board-tags":P_,"152-repair-connection-slug":J_,"153-task-board-latest-assistant-part-index":j_,"154-task-board-qa-activity":L_,"155-task-board-review-claims":$_},R_=yT;import{getMigrations as hT}from"better-auth/db";import{sso as IT}from"@better-auth/sso";import{organization as gT}from"@decocms/better-auth/plugins";import{admin as VT,apiKey as sT,jwt as vT,magicLink as qT,mcp as lT,openAPI as dT}from"better-auth/plugins";import{emailOTP as bT}from"better-auth/plugins/email-otp";import{Kysely as YT,PostgresDialect as $i}from"kysely";import{Pool as Ri}from"pg";import{homedir as TT}from"os";var CT=new Set(["all","worker","api"]);function NT(t){let n=(t??"").trim();return CT.has(n)?n:"all"}var ET=new Set(["production","development","test"]);function fT(t){let n=(t??"").trim();return ET.has(n)?n:"development"}function X(t){return t==="true"||t==="1"}function KT(t){if(t===void 0||t==="")return;return X(t)}function W_(t,n,u){if(n===void 0||n==="")return;let e=Number(n);if(!Number.isSafeInteger(e)||e<=0)throw Error(`${t} must be a positive integer`);if(u!==void 0&&e>u)throw Error(`${t} must be at most ${u}`);return e}function $(t,n,u,e){return W_(t,n,e)??u}function wT(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function wi(t){if(!t)return null;try{let u=new URL(t).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return t}catch{return null}}function pT(t){return t===void 0||t===""||t==="true"||t==="1"}function V(t,n){return t||n}var cT=new Set(["agent-sandbox","user-desktop"]);function zT(t){let n=(t??"").trim(),u=n.length>0?n:"user-desktop";if(u==="cluster")return"agent-sandbox";if(!cT.has(u))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return u}function pi(t,n){let u=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${TT()}/deco`,e=t.localMode,i=t.nodeEnv||fT(n.NODE_ENV),x=n.NATS_URL||"nats://localhost:4222",a=KT(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:i,port:$("PORT",t.port||n.PORT,3000),baseUrl:t.baseUrl||n.BASE_URL,publicUrl:V(n.STUDIO_PUBLIC_URL,n.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:X(n.DATABASE_PG_SSL),databasePoolMax:$("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),dbosPoolSize:$("DBOS_POOL_SIZE",n.DBOS_POOL_SIZE,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:V(n.STUDIO_JWT_SECRET,n.MESH_JWT_SECRET),localMode:e,disableRateLimit:X(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((o)=>o.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:W_("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:a,natsTunnelSessionTtlSeconds:$("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:X(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,seatAllowanceCents:$("STUDIO_SEAT_ALLOWANCE_CENTS",n.STUDIO_SEAT_ALLOWANCE_CENTS,500),stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeSeatPriceId:n.STRIPE_SEAT_PRICE_ID,topupFeePercent:$("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15,100),enableDecoImport:X(n.ENABLE_DECO_IMPORT),billingEnforced:X(n.STUDIO_BILLING_ENFORCED),mcpCacheEnabled:wT(n.MCP_CACHE_ENABLED,i!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:X(n.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:$("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",n.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:$("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",n.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),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:pT(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:W_("DUCKDB_THREADS",n.DUCKDB_THREADS),isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME||crypto.randomUUID(),dispatchRole:NT(V(n.STUDIO_DISPATCH_ROLE,n.MESH_DISPATCH_ROLE)),sandboxProviderKind:zT(n.STUDIO_SANDBOX_PROVIDER),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,reportsInternalApiUrl:V(n.REPORTS_INTERNAL_API_URL,n.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:V(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:wi(n.DATABASE_URL),externalNatsUrl:wi(x),skipMigrations:t.skipMigrations}}var Nt=null;function H(){if(!Nt)PT();return Nt}function PT(){if(Nt)return;let t={...process.env},n=pi({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);Nt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as $T,metrics as RT,propagation as pf,ROOT_CONTEXT as cf,SpanStatusCode as zf,trace as WT}from"@opentelemetry/api";import{logs as XT,SeverityNumber as X_}from"@opentelemetry/api-logs";import{OTLPLogExporter as Jf}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as QT}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Lf}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as Rf}from"@opentelemetry/instrumentation-runtime-node";import{context as TE,propagation as CE,SpanKind as NE,SpanStatusCode as EE}from"@opentelemetry/api";var KE=globalThis.fetch;import{ExportResultCode as RE}from"@opentelemetry/core";import{ExportResultCode as Et}from"@opentelemetry/core";import{mkdir as UT,rename as JT,writeFile as jT}from"fs/promises";import{join as ft}from"path";class Kt{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((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:Et.FAILED});for(let n of t){let u=JSON.stringify(n),e=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:e,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Et.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:Et.FAILED}});return Promise.resolve({code:Et.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 i of t){let x=n.get(i.partition);if(!x)x=[],n.set(i.partition,x);x.push(i.json)}let u=await Promise.allSettled(Array.from(n.entries()).map(([i,x])=>this.writeNDJSON(x,i).then(()=>i))),e=u.find((i)=>i.status==="rejected");if(e){let i=new Set;for(let a of u)if(a.status==="fulfilled")i.add(a.value);let x=t.filter((a)=>!i.has(a.partition));this.bufferItems=x.concat(this.bufferItems),this.bufferBytes=0;for(let a of this.bufferItems)this.bufferBytes+=Buffer.byteLength(a.json,"utf8")+1;throw e.reason}}async writeNDJSON(t,n){let u=new Date,e=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],i=n?ft(this.basePath,n,...e):ft(this.basePath,...e);if(!this.knownDirs.has(i))await UT(i,{recursive:!0,mode:448}),this.knownDirs.add(i);let x=`${crypto.randomUUID()}.ndjson`,a=ft(i,`.${x}.tmp`),m=ft(i,x),o=t.join(`
|
|
1056
|
+
`.execute(t),u=0;for(let e of n.rows){let i=dy(e);if(i===e.slug)continue;await fi`UPDATE connections SET slug = ${i} WHERE id = ${e.id}`.execute(t),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function tT(){}var j_={};_(j_,{up:()=>uT,down:()=>_T});import{sql as nT}from"kysely";async function uT(t){await nT`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(t)}async function _T(t){await t.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var L_={};_(L_,{up:()=>eT,down:()=>xT,ACTIONS:()=>D_});import{sql as Ct}from"kysely";var D_=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],iT=new Set(["review_requested","review_approved","review_changes_requested"]);async function eT(t){await Ki(t,D_)}async function xT(t){await Ki(t,D_.filter((n)=>!iT.has(n)))}async function Ki(t,n){await Ct`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(t),await Ct`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Ct.join(n.map((u)=>Ct.lit(u)))}))`.execute(t)}var $_={};_($_,{up:()=>aT,down:()=>oT});import{sql as mT}from"kysely";async function aT(t){await t.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(n)=>n.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(n)=>n.notNull()).addColumn("cycle_at","timestamptz",(n)=>n.notNull()).addColumn("token","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(mT`now()`)).addPrimaryKeyConstraint("task_board_review_claims_pkey",["task_board_item_id","reviewer","cycle_at"]).execute(),await t.schema.createIndex("idx_task_board_review_claims_token").on("task_board_review_claims").columns(["task_board_item_id","token"]).execute()}async function oT(t){await t.schema.dropIndex("idx_task_board_review_claims_token").execute(),await t.schema.dropTable("task_board_review_claims").execute()}var yT={"001-initial-schema":pt,"002-organization-settings":ct,"003-connection-schema-align":zt,"004-remove-models-binding":Pt,"005-connection-configuration":Ut,"006-add-views-to-settings":Jt,"007-monitoring-logs":jt,"008-event-bus":Dt,"009-drop-audit-logs":Lt,"010-gateways":$t,"011-gateway-icon":Rt,"012-gateway-tool-selection-mode":Wt,"013-monitoring-user-agent-gateway":Xt,"014-gateway-resources-prompts":Qt,"015-monitoring-properties":Zt,"016-downstream-token-client-info":kt,"017-downstream-token-remove-userid":Ft,"018-drop-gateway-tool-selection-strategy":Mt,"019-remove-gateway-is-default":Ht,"020-enabled-plugins":Yt,"021-threads":rt,"022-rename-gateway-to-virtual-mcp":Bt,"023-optimize-thread-indexes":At,"024-consolidate-virtual-mcp":St,"025-add-monitoring-virtual-mcp-id":Gt,"026-restrict-child-connection-delete":Ot,"027-update-management-mcp-url":It,"028-update-management-mcp-to-self":Vt,"029-add-updated-by-to-connections":st,"030-member-tags":vt,"031-add-dependency-mode":qt,"032-projects":lt,"033-thread-status":dt,"034-monitoring-dashboards":bt,"035-project-connections":tn,"036-update-registry-url":nn,"037-ai-provider-keys":un,"038-oauth-pkce-states":_n,"039-automations":en,"040-replace-next-run-at-with-last-run-at":xn,"041-ai-provider-keys-unique-constraint":mn,"042-rename-mesh-mcp-to-cms-mcp":an,"043-rename-cms-mcp-to-deco-cms":on,"044-drop-connections-tools-column":yn,"045-thread-context-start-message":Tn,"046-remove-object-storage-plugin":Nn,"047-add-next-run-at":En,"048-merge-projects-agents":Kn,"049-remove-org-admin-projects":wn,"050-durable-agent-runs":pn,"051-org-sso":zn,"052-thread-agent-ids":Pn,"053-registry-config":Un,"054-connection-slug":jn,"055-spaces":Dn,"056-automation-project-scope":Ln,"057-thread-virtual-mcp-id":$n,"058-trigger-callback-tokens":Rn,"059-kv":Wn,"060-member-index":Xn,"061-downstream-token-connection-index":Qn,"062-private-registry":Zn,"063-event-subscriptions-enabled-boolean":kn,"064-brand-context":Fn,"065-organization-domains":Mn,"066-brand-context-structured":Hn,"067-threads-metadata":Yn,"068-threads-branch":rn,"069-sandbox-runner-state":Bn,"070-model-categories":An,"071-default-home-agents":Sn,"072-ai-provider-key-preset-id":Gn,"073-backfill-basic-usage-roles":On,"074-sandbox-runner-state-handle-nonunique":hn,"075-thread-inflight-async-jobs":In,"076-automations-drop-agent-json":gn,"077-tier-only-model-selection":sn,"078-automation-tool-call-kind":vn,"079-strip-legacy-freestyle-vm-map-entries":qn,"080-async-research-jobs":ln,"081-async-research-jobs-result-content":dn,"082-secrets":bn,"083-thread-run-locally":tu,"084-drop-host-sandbox-rows":nu,"085-rename-runner-kind":uu,"086-thread-pins-and-vm-map-rekey":_u,"087-fix-vm-map-rekey":iu,"088-purge-cli-activate-keys":eu,"089-rename-remote-user-to-desktop":xu,"090-automation-webhook-triggers":mu,"091-organization-domains-allow-multi":au,"092-sandbox-naming-uniformization":ou,"093-backfill-global-search-basic-usage":yu,"094-org-file-configs":Cu,"095-remove-automation-tool-call-kind":Nu,"096-org-file-configs-public-url-base":Eu,"097-drop-local-docker-sandbox-state":Ku,"098-thread-message-parts":wu,"099-run-fence":pu,"100-link-transport":cu,"101-cancel-requested-at":zu,"102-observational-agent":Pu,"103-revert-observational-agent":Uu,"104-agent-sandbox-provider-kind":ju,"105-org-fs":Du,"106-automation-tools":Lu,"107-org-fs-public-org":$u,"108-automation-max-agent-steps":Ru,"109-thread-message-parts-per-message-seq":Wu,"110-backfill-ghs-token-expiry":Xu,"111-org-fs-thread-id":Qu,"112-org-file-configs-credential-type":Zu,"113-thread-failure-reason":ku,"114-run-acked-seq":Fu,"115-thread-projected-seq":Mu,"116-org-sites":Hu,"117-org-file-configs-site-slug":Yu,"118-organization-domains-multi-verify":ru,"119-organization-join-requests":Bu,"120-org-fs-read-public":Au,"121-org-fs-share-password":Su,"122-split-web-research-tier":hu,"123-connection-credential-vault":Iu,"124-drop-thread-projected-seq":gu,"125-github-child-single-parent":Vu,"126-task-board":vu,"127-task-board-due-date":qu,"128-reports-only":lu,"129-task-board-assigned-by":du,"130-task-board-thread-id":bu,"131-task-board-thread-link-cascade":t_,"132-task-board-item-prs":n_,"133-dedupe-duplicate-members":u_,"134-drop-task-board-enabled":__,"135-task-board-item-fk-cascade":i_,"136-task-board-import-idempotency":e_,"137-agent-sandbox-runner-state":x_,"138-agent-sandbox-sessions":m_,"139-organization-billing":a_,"140-seat-change-log":o_,"141-benefits-sync-pending":y_,"142-stripe-event-watermark":T_,"143-armed-report-url":C_,"144-benefits-pending-index":N_,"145-user-model-preferences":E_,"146-organization-main-agent":f_,"147-drop-agent-sandbox-tables":K_,"148-org-flags":w_,"149-task-board-item-sort-order":p_,"150-task-board-activity":c_,"151-task-board-tags":P_,"152-repair-connection-slug":J_,"153-task-board-latest-assistant-part-index":j_,"154-task-board-qa-activity":L_,"155-task-board-review-claims":$_},R_=yT;import{getMigrations as hT}from"better-auth/db";import{sso as IT}from"@better-auth/sso";import{organization as gT}from"@decocms/better-auth/plugins";import{admin as VT,apiKey as sT,jwt as vT,magicLink as qT,mcp as lT,openAPI as dT}from"better-auth/plugins";import{emailOTP as bT}from"better-auth/plugins/email-otp";import{Kysely as YT,PostgresDialect as $i}from"kysely";import{Pool as Ri}from"pg";import{homedir as TT}from"os";var CT=new Set(["all","worker","api"]);function NT(t){let n=(t??"").trim();return CT.has(n)?n:"all"}var ET=new Set(["production","development","test"]);function fT(t){let n=(t??"").trim();return ET.has(n)?n:"development"}function R(t){return t==="true"||t==="1"}function KT(t){if(t===void 0||t==="")return;return R(t)}function W_(t,n,u){if(n===void 0||n==="")return;let e=Number(n);if(!Number.isSafeInteger(e)||e<=0)throw Error(`${t} must be a positive integer`);if(u!==void 0&&e>u)throw Error(`${t} must be at most ${u}`);return e}function $(t,n,u,e){return W_(t,n,e)??u}function wT(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function wi(t){if(!t)return null;try{let u=new URL(t).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return t}catch{return null}}function pT(t){return t===void 0||t===""||t==="true"||t==="1"}function V(t,n){return t||n}var cT=new Set(["agent-sandbox","user-desktop"]);function zT(t){let n=(t??"").trim(),u=n.length>0?n:"user-desktop";if(u==="cluster")return"agent-sandbox";if(!cT.has(u))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return u}function pi(t,n){let u=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${TT()}/deco`,e=t.localMode,i=t.nodeEnv||fT(n.NODE_ENV),x=n.NATS_URL||"nats://localhost:4222",a=KT(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:i,port:$("PORT",t.port||n.PORT,3000),baseUrl:t.baseUrl||n.BASE_URL,publicUrl:V(n.STUDIO_PUBLIC_URL,n.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:R(n.DATABASE_PG_SSL),databasePoolMax:$("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),dbosPoolSize:$("DBOS_POOL_SIZE",n.DBOS_POOL_SIZE,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:V(n.STUDIO_JWT_SECRET,n.MESH_JWT_SECRET),localMode:e,disableRateLimit:R(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((o)=>o.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:W_("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:a,natsTunnelSessionTtlSeconds:$("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:R(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,seatAllowanceCents:$("STUDIO_SEAT_ALLOWANCE_CENTS",n.STUDIO_SEAT_ALLOWANCE_CENTS,500),stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeSeatPriceId:n.STRIPE_SEAT_PRICE_ID,topupFeePercent:$("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15,100),enableDecoImport:R(n.ENABLE_DECO_IMPORT),billingEnforced:R(n.STUDIO_BILLING_ENFORCED),mcpCacheEnabled:wT(n.MCP_CACHE_ENABLED,i!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:R(n.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:$("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",n.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:$("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",n.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),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:pT(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:W_("DUCKDB_THREADS",n.DUCKDB_THREADS),isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME||crypto.randomUUID(),dispatchRole:NT(V(n.STUDIO_DISPATCH_ROLE,n.MESH_DISPATCH_ROLE)),sandboxProviderKind:zT(n.STUDIO_SANDBOX_PROVIDER),sandboxStickyHeadRefEnabled:R(n.SANDBOX_STICKY_HEAD_REF),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,reportsInternalApiUrl:V(n.REPORTS_INTERNAL_API_URL,n.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:V(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:wi(n.DATABASE_URL),externalNatsUrl:wi(x),skipMigrations:t.skipMigrations}}var Nt=null;function H(){if(!Nt)PT();return Nt}function PT(){if(Nt)return;let t={...process.env},n=pi({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);Nt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as $T,metrics as RT,propagation as pf,ROOT_CONTEXT as cf,SpanStatusCode as zf,trace as WT}from"@opentelemetry/api";import{logs as XT,SeverityNumber as X_}from"@opentelemetry/api-logs";import{OTLPLogExporter as Jf}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as QT}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Lf}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as Rf}from"@opentelemetry/instrumentation-runtime-node";import{context as TE,propagation as CE,SpanKind as NE,SpanStatusCode as EE}from"@opentelemetry/api";var KE=globalThis.fetch;import{ExportResultCode as RE}from"@opentelemetry/core";import{ExportResultCode as Et}from"@opentelemetry/core";import{mkdir as UT,rename as JT,writeFile as jT}from"fs/promises";import{join as ft}from"path";class Kt{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((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:Et.FAILED});for(let n of t){let u=JSON.stringify(n),e=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:e,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Et.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:Et.FAILED}});return Promise.resolve({code:Et.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 i of t){let x=n.get(i.partition);if(!x)x=[],n.set(i.partition,x);x.push(i.json)}let u=await Promise.allSettled(Array.from(n.entries()).map(([i,x])=>this.writeNDJSON(x,i).then(()=>i))),e=u.find((i)=>i.status==="rejected");if(e){let i=new Set;for(let a of u)if(a.status==="fulfilled")i.add(a.value);let x=t.filter((a)=>!i.has(a.partition));this.bufferItems=x.concat(this.bufferItems),this.bufferBytes=0;for(let a of this.bufferItems)this.bufferBytes+=Buffer.byteLength(a.json,"utf8")+1;throw e.reason}}async writeNDJSON(t,n){let u=new Date,e=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],i=n?ft(this.basePath,n,...e):ft(this.basePath,...e);if(!this.knownDirs.has(i))await UT(i,{recursive:!0,mode:448}),this.knownDirs.add(i);let x=`${crypto.randomUUID()}.ndjson`,a=ft(i,`.${x}.tmp`),m=ft(i,x),o=t.join(`
|
|
1057
1057
|
`)+`
|
|
1058
1058
|
`;await jT(a,o,{mode:384}),await JT(a,m)}}import{ExportResultCode as kE}from"@opentelemetry/core";import{AggregationTemporality as ME,DataPointType as HE}from"@opentelemetry/sdk-metrics";import{ExportResultCode as GE}from"@opentelemetry/core";var gE=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as Yf,LoggerProvider as rf}from"@opentelemetry/sdk-logs";import{detectResources as Af,envDetector as Sf,hostDetector as Gf,osDetector as Of,processDetector as hf,resourceFromAttributes as If}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as Vf}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as vE}from"@opentelemetry/api-logs";import{NodeSDK as qf}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as df,SamplingDecision as Y}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as tf}from"@opentelemetry/api";var ZT="__d",kT=$T("Current request"),FT=1;var zi=(t)=>{let u=new URL(t.url).searchParams.get(ZT);if(u==="")return crypto.randomUUID();if(!u)u=t.headers.get("x-trace-debug-id");return u};class Pi{inner;constructor(t){this.inner=t}shouldSample(t,n,u,e,i,x){let a=t.getValue(kT);if(!a){if(this.inner)return this.inner.shouldSample(t,n,u,e,i,x);return{decision:Y.RECORD_AND_SAMPLED}}let m=zi(a);if(m)return{decision:Y.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":m}};if(this.inner){let o=this.inner.shouldSample(t,n,u,e,i,x);if(o.decision===Y.RECORD_AND_SAMPLED){let y=crypto.randomUUID();o.attributes={...o.attributes??{},"trace.debug.id":y}}return o}return{decision:Y.NOT_RECORD}}toString(){return"DebugSampler"}}class Ui{ratio;constructor(t){this.ratio=t}shouldSample(){if(Math.random()<this.ratio)return{decision:Y.RECORD_AND_SAMPLED};return{decision:Y.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var tK=new QT({preventServerStart:!0}),nK=new Pi(new Ui(FT));var ci=WT.getTracer("studio","1.0.0"),s=RT.getMeter("studio","1.0.0"),MT=XT.getLogger("studio","1.0.0"),Q_=(t,n,u)=>{let e={},i=u,x=u[u.length-1];if(x!==null&&typeof x==="object"&&!Array.isArray(x)&&!(x instanceof Error)&&Object.getPrototypeOf(x)===Object.prototype)e=x,i=u.slice(0,-1);let a=i.map((m)=>{if(m instanceof Error)return`${m.name}: ${m.message}`;if(typeof m==="object")try{return JSON.stringify(m)}catch{return"[Object]"}return String(m)}).join(" ");MT.emit({severityNumber:t,severityText:n,body:a,attributes:{"log.source":"console",...e}})},Z_={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...t)=>{Q_(X_.ERROR,"ERROR",t),Z_.error(...t)};console.warn=(...t)=>{Q_(X_.WARN,"WARN",t),Z_.warn(...t)};console.debug=(...t)=>{Q_(X_.DEBUG,"DEBUG",t),Z_.debug(...t)};var k_,Ji=0,F_=500;function HT(){if(k_)return;let t=performance.now()+F_;k_=setInterval(()=>{let n=performance.now();Ji=Math.max(0,n-t),t=n+F_},F_),k_.unref?.()}function ji(){return HT(),Ji}var rT=()=>s.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Di=()=>s.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Li=400,BT=100,AT=(t)=>(n)=>{let u={"db.statement":n.query.sql,"db.status":n.level==="error"?"error":"success"};if(n.queryDurationMillis>Li){let e=ji(),i=e>Li/2;console.error(i?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:n.queryDurationMillis,eventLoopLagMs:Math.round(e),sql:n.query.sql,pool:{total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:wt()}})}if(rT().record(n.queryDurationMillis,u),n.level==="error")console.error("Query failed:",{durationMs:n.queryDurationMillis,error:n.error,sql:n.query.sql})};function ST(t){let n=t.connect.bind(t);return t.connect=(u)=>{if(typeof u==="function")return n(u);let e=performance.now(),i=wt(),x=t.idleCount===0&&t.totalCount>=i,a=t.idleCount;return n().then((m)=>{let o=performance.now()-e;if(Di().record(o,{"db.pool.outcome":x?"contended":"available"}),o>BT)if(x)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:o,total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:i});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:o,idleAtStart:a,total:t.totalCount,max:i});return m},(m)=>{throw Di().record(performance.now()-e,{"db.pool.outcome":"error"}),m})},t}var Wi={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Xi(){try{return H().databasePgSsl}catch{return!1}}function wt(){try{return H().databasePoolMax}catch{return 10}}function GT(t){let n=ST(new Ri({connectionString:t,max:wt(),ssl:Xi(),...Wi})),u=new $i({pool:n});return{type:"postgres",db:new YT({dialect:u,log:AT(n)}),pool:n}}function q(){return H().databaseUrl}function Qi(t){let n=t||q();return new $i({pool:new Ri({connectionString:n,max:wt(),ssl:Xi(),...Wi})})}function OT(t){let n=t||q();return GT(n)}async function Zi(t){if(await t.db.destroy(),!t.pool.ended)await t.pool.end();if(t===v)v=null}var v=null;function M_(){if(!v)v=OT(q());return v}async function ki(t){let u={database:Qi(t||q()),plugins:[gT({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),VT(),sT(),vT(),dT(),lT({loginPage:"/login"}),IT(),qT({sendMagicLink:async()=>{}}),bT({sendVerificationOTP:async()=>{}})]},{toBeAdded:e,toBeCreated:i,runMigrations:x}=await hT(u);if(!e.length&&!i.length)return"up to date";return await x(),`${i.length+e.length} table(s) migrated`}async function Mi(t,n){return(await r`
|
|
1059
1059
|
SELECT table_name FROM information_schema.tables
|