decocms 4.323.0 → 4.324.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-CbIethWO.js → AlertCircle-D7yJEpgq.js} +1 -1
- package/dist/client/assets/{AreaChart-BQf75cYf.js → AreaChart-pTiDqJfm.js} +1 -1
- package/dist/client/assets/{ArrowLeft-y7fvMHg1.js → ArrowLeft-kchZqGLb.js} +1 -1
- package/dist/client/assets/{ArrowUp-ClH9KzFx.js → ArrowUp-LJmJ9SbQ.js} +1 -1
- package/dist/client/assets/{Check-CViV2AKw.js → Check-BCb75NOo.js} +1 -1
- package/dist/client/assets/{CheckCircle-BceWKyuF.js → CheckCircle-KXeKRm2T.js} +1 -1
- package/dist/client/assets/{ChevronRight-Ub3Wi__5.js → ChevronRight-B_ryg5GC.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-DYY47Opi.js → ChevronSelectorVertical-B__WBFpy.js} +1 -1
- package/dist/client/assets/{ChevronUp-BZvKWnmE.js → ChevronUp-BtBRAUrF.js} +1 -1
- package/dist/client/assets/{Copy01-CVNVXHfJ.js → Copy01-SPmDY_8r.js} +1 -1
- package/dist/client/assets/{CreditCard01-CMcaGH-G.js → CreditCard01-BmqSzpTc.js} +1 -1
- package/dist/client/assets/{DotsVertical-CUO5Z4B7.js → DotsVertical-BAD5BS1q.js} +1 -1
- package/dist/client/assets/{Download01-C-8_yc1P.js → Download01-CTjUk84_.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-D5mNZU-_.js → ErrorBarContext-2Rz4kE10.js} +1 -1
- package/dist/client/assets/{Eye-CRgiNYAI.js → Eye-ByeRQY33.js} +1 -1
- package/dist/client/assets/{GitBranch01-Cw03iCHW.js → GitBranch01-B8WKWTuc.js} +1 -1
- package/dist/client/assets/{Globe01-BzEZgPZH.js → Globe01-3s9LajuH.js} +1 -1
- package/dist/client/assets/{HardDrive-BShCW8xo.js → HardDrive-CV5QfxOT.js} +1 -1
- package/dist/client/assets/{Image01-BDqKYCHs.js → Image01-D1_yYrkf.js} +1 -1
- package/dist/client/assets/{Key01-BihM9W_4.js → Key01-Cc18Zeye.js} +1 -1
- package/dist/client/assets/{Link01-Bj9F9FFy.js → Link01-Dc9_ASFt.js} +1 -1
- package/dist/client/assets/{LinkExternal01-B-j6voaz.js → LinkExternal01-uzXW7IXY.js} +1 -1
- package/dist/client/assets/{Monitor01-DJok5Oby.js → Monitor01-yO87KRU-.js} +1 -1
- package/dist/client/assets/{Package-DyPeIzqD.js → Package-D7xjgwIt.js} +1 -1
- package/dist/client/assets/{Palette-Di_3G4BB.js → Palette-Dmwx0ksz.js} +1 -1
- package/dist/client/assets/{Play-C-Ctr0Bg.js → Play-Bz2Mgr6W.js} +1 -1
- package/dist/client/assets/{Plus-Dy3OwbdP.js → Plus-nXRBvt7e.js} +1 -1
- package/dist/client/assets/{SearchMd-GhWQt9H_.js → SearchMd-D2BorPlT.js} +1 -1
- package/dist/client/assets/{Sector-B06pf8NJ.js → Sector-z71RcekZ.js} +1 -1
- package/dist/client/assets/{Settings02-Xf5MNOeS.js → Settings02-C8SHvTch.js} +1 -1
- package/dist/client/assets/{Share07-CkZjV7Y4.js → Share07-C6O72dEE.js} +1 -1
- package/dist/client/assets/{Shield01-AHWHm-DS.js → Shield01-B0y6mJu2.js} +1 -1
- package/dist/client/assets/{Stars01-D65oRIoj.js → Stars01-DFyMkbVK.js} +1 -1
- package/dist/client/assets/{Sun-vk_cPGMJ.js → Sun-CvOy3m0U.js} +1 -1
- package/dist/client/assets/{Tool01-C9Fh4pyK.js → Tool01-eulGN8_s.js} +1 -1
- package/dist/client/assets/{Tool02-CZJjuIxA.js → Tool02-B5KfSuXd.js} +1 -1
- package/dist/client/assets/{Trash01-B-u_-iqS.js → Trash01-DoQMmtz0.js} +1 -1
- package/dist/client/assets/{TrendUp01-D_qxLEW7.js → TrendUp01-DSy5DyIi.js} +1 -1
- package/dist/client/assets/{Upload01-CVk2PCsw.js → Upload01-BK4fslp_.js} +1 -1
- package/dist/client/assets/{User01-CAS_KrTr.js → User01-CIKUl5X8.js} +1 -1
- package/dist/client/assets/{UserSquare-BeyEkA5D.js → UserSquare-BNHKRg2I.js} +1 -1
- package/dist/client/assets/{Users01-ub3QFuz_.js → Users01-UODZM4OS.js} +1 -1
- package/dist/client/assets/{Users03-9eRhfMnl.js → Users03-DdSyigI5.js} +1 -1
- package/dist/client/assets/{XCircle-Bd6dXhOj.js → XCircle-3n-4v86l.js} +1 -1
- package/dist/client/assets/{XClose-auuJ_GRB.js → XClose-CIwe2zcz.js} +1 -1
- package/dist/client/assets/{Zap-b3NblJtQ.js → Zap-bfMUJV1G.js} +1 -1
- package/dist/client/assets/{ZoomOut-BQIO6WB6.js → ZoomOut-C1o7ACr8.js} +1 -1
- package/dist/client/assets/{access-gate-YwNE0EiY.js → access-gate-D0XDOk3i.js} +1 -1
- package/dist/client/assets/{agent-icon-_mOvC4lh.js → agent-icon-CeVY56z8.js} +1 -1
- package/dist/client/assets/{agents-list-BuzhpqLT.js → agents-list--o8ZF8ax.js} +1 -1
- package/dist/client/assets/{ai-providers-tOnDEcsq.js → ai-providers-EiyarJ2g.js} +1 -1
- package/dist/client/assets/{alert-Be1JSz0u.js → alert-CqWSyi16.js} +1 -1
- package/dist/client/assets/{alert-dialog-FC7tFvol.js → alert-dialog-CpPO0Plv.js} +1 -1
- package/dist/client/assets/{analytics-tab-rcgtUzan.js → analytics-tab-BzX_AEfZ.js} +1 -1
- package/dist/client/assets/{api-keys-CTBEYMnC.js → api-keys-BWGze1me.js} +1 -1
- package/dist/client/assets/api-keys-CrS8NYWQ.js +1 -0
- package/dist/client/assets/app-editor-wbQkOOa9.js +1 -0
- package/dist/client/assets/{auth-D6hknNuL.js → auth-BLOOX4WA.js} +1 -1
- package/dist/client/assets/{auth-catchall-B4fYfbHP.js → auth-catchall-CChUrFKS.js} +1 -1
- package/dist/client/assets/{auth-entry-C8j1nXjw.js → auth-entry-DfbwFwb5.js} +1 -1
- package/dist/client/assets/{auth-split-layout-CBxH-91G.js → auth-split-layout-CSlFCHak.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-Ca9jI9n9.js → authenticate-and-persist-oauth-7Yo6L4yK.js} +1 -1
- package/dist/client/assets/{automation-list-row-S_f1Oum9.js → automation-list-row-C1wr32-G.js} +1 -1
- package/dist/client/assets/{automation-runs-DTbShgpv.js → automation-runs-BUr4T6Br.js} +1 -1
- package/dist/client/assets/{automations-B754zppB.js → automations-BNbQsI-8.js} +1 -1
- package/dist/client/assets/{avatar-BAJ_UwLY.js → avatar-CUWVL5Wy.js} +1 -1
- package/dist/client/assets/{badge-3ZvX9jce.js → badge-CdPlCLsh.js} +1 -1
- package/dist/client/assets/{block-document-DLV7xODC.js → block-document-BclOwMHB.js} +1 -1
- package/dist/client/assets/{breadcrumb-DHpQRSkO.js → breadcrumb-BwJBpL6v.js} +1 -1
- package/dist/client/assets/{buckets-kBZLIk_3.js → buckets-MHSHEik_.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-CcZ-TeGm.js → bulk-category-panel-xghqI257.js} +1 -1
- package/dist/client/assets/{capability-load-error-o4hp9_9S.js → capability-load-error-aPzWsf2S.js} +1 -1
- package/dist/client/assets/{cards-YJY6OImM.js → cards-B4dwk-9T.js} +1 -1
- package/dist/client/assets/category-editor-BoKgRY3J.js +1 -0
- package/dist/client/assets/{cdn-tab-CD1vNcFc.js → cdn-tab-By7QXWSP.js} +1 -1
- package/dist/client/assets/{chart-DuPWPZVO.js → chart-Cv_Vm7pV.js} +1 -1
- package/dist/client/assets/{chat-context-DoE_-ERG.js → chat-context-uOT-cmKK.js} +1 -1
- package/dist/client/assets/{checkbox-DM__T45b.js → checkbox-Bopyju7x.js} +1 -1
- package/dist/client/assets/{choose-editor-Ceh05UP8.js → choose-editor-DFF0A_R2.js} +1 -1
- package/dist/client/assets/{cli-auth-success-DRCsiyHM.js → cli-auth-success-Ce7Elv6X.js} +1 -1
- package/dist/client/assets/{client-icons-CP-8jMQ6.js → client-icons-Cnx1SikW.js} +1 -1
- package/dist/client/assets/collection-detail-CAK4MdGD.js +1 -0
- package/dist/client/assets/{collection-display-button-D7w8XJnR.js → collection-display-button-WaVC4Pht.js} +1 -1
- package/dist/client/assets/{collection-search-jeWHAmV1.js → collection-search-DuNlsoEJ.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-BEZHi3FT.js → collection-table-wrapper-CUYzZ0NU.js} +1 -1
- package/dist/client/assets/{collection-tabs-BUx5Y6ne.js → collection-tabs-CbH52uar.js} +1 -1
- package/dist/client/assets/command-DplHSBSd.js +1 -0
- package/dist/client/assets/{commerce-onboarding-CKV1VIHd.js → commerce-onboarding-lT-LUHOd.js} +1 -1
- package/dist/client/assets/{connect-DtGLP_di.js → connect-BfuY_EXI.js} +1 -1
- package/dist/client/assets/{connect-layout-CpZLZAi6.js → connect-layout-ufRrjKGg.js} +1 -1
- package/dist/client/assets/{connection-Bpxwt4sD.js → connection-BlDUY6E1.js} +1 -1
- package/dist/client/assets/{connection-card-D0u9_kRo.js → connection-card-BhGsZYCV.js} +1 -1
- package/dist/client/assets/{connection-detail-DKyvL8ps.js → connection-detail-BeHZfvvd.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-Blb0GPpJ.js → connection-form-helpers-CdzfFGVw.js} +1 -1
- package/dist/client/assets/{connections-CBNZEeRd.js → connections-D50mab5y.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-HAvzqd5d.js → create-organization-dialog-BD3CZ_40.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-BT-eLzU1.js → decopilot-sse-pool-BmdxQro0.js} +1 -1
- package/dist/client/assets/{dialog-_eOGpV_R.js → dialog-BBrJpDR-.js} +1 -1
- package/dist/client/assets/{domain-settings-DeuY7PiW.js → domain-settings-WL9y1m7d.js} +1 -1
- package/dist/client/assets/{drawer-BH5TUdft.js → drawer-NconyKwA.js} +1 -1
- package/dist/client/assets/{dropdown-menu-DAkDKRcv.js → dropdown-menu-DGoZniwf.js} +1 -1
- package/dist/client/assets/e2e-tab-DsqfkUps.js +1 -0
- package/dist/client/assets/{editor-Kqw7F1U3.js → editor-DIYKhLB9.js} +1 -1
- package/dist/client/assets/{empty-state-DTiYxZyX.js → empty-state-0ATyTZ2R.js} +1 -1
- package/dist/client/assets/{empty-state-B5IW3FY0.js → empty-state-f8ZKA-8U.js} +1 -1
- package/dist/client/assets/{extract-connection-data-B0tz2bg7.js → extract-connection-data-B1-XDalI.js} +1 -1
- package/dist/client/assets/file-explorer-DMKF5nr0.js +2 -0
- package/dist/client/assets/{file-type-icon-CqqlGtY8.js → file-type-icon-tKZyWgYW.js} +1 -1
- package/dist/client/assets/{folder-icon-WWKk1P4a.js → folder-icon-D1Eo4Qs7.js} +1 -1
- package/dist/client/assets/{form-DVlwcFzf.js → form-BQVPErMY.js} +1 -1
- package/dist/client/assets/{general-BLb79GyS.js → general-DUpAHj9y.js} +1 -1
- package/dist/client/assets/{github-repo-BpKUwJal.js → github-repo-COLY3wWI.js} +1 -1
- package/dist/client/assets/{github-repo-picker-BvXosldt.js → github-repo-picker-BCBGIrIF.js} +1 -1
- package/dist/client/assets/{hooks-C1zHirdm.js → hooks-BF_HxtnT.js} +1 -1
- package/dist/client/assets/{hosting-tab-WXFSVJlX.js → hosting-tab-ByCaAGn9.js} +1 -1
- package/dist/client/assets/{index-BF5Hkav7.js → index-3LJHN42F.js} +1 -1
- package/dist/client/assets/{index-Ds3rGGA1.js → index-BSQOgNWH.js} +66 -66
- package/dist/client/assets/{index-C-AVMdC1.js → index-Bb80cFlQ.js} +1 -1
- package/dist/client/assets/{index-vvsCvtEs.js → index-C31CQZvU.js} +1 -1
- package/dist/client/assets/{index-B1NfLh28.js → index-DbavEff_.js} +4 -4
- package/dist/client/assets/index-DhKXsKZ0.js +1 -0
- package/dist/client/assets/{index-DbYn9c50.js → index-DnTdTRB2.js} +1 -1
- package/dist/client/assets/{index-ByNRxI-W.js → index-Dt8Rmr2O.js} +1 -1
- package/dist/client/assets/{index-DqFuEMY3.js → index-kf4GNqPf.js} +1 -1
- package/dist/client/assets/index-q97dMpfm.js +1 -0
- package/dist/client/assets/{index-redirect-CL2ti6mP.js → index-redirect-BX83TvVK.js} +1 -1
- package/dist/client/assets/{index-6xuv5IBn.css → index-yssuKkag.css} +1 -1
- package/dist/client/assets/{infra-billing-Bqv_tVB5.js → infra-billing-CbY88KSG.js} +1 -1
- package/dist/client/assets/{input-6kxANu4D.js → input-BPK-8DA5.js} +1 -1
- package/dist/client/assets/{integration-icon-Dw9EWqM9.js → integration-icon-cb8ZtkpN.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-CtpRiSXv.js → invite-member-dialog-C5hFXyGY.js} +1 -1
- package/dist/client/assets/{label-W4OZ7SIR.js → label-D9ClAZdf.js} +1 -1
- package/dist/client/assets/{layout-BLJ2rW8z.js → layout--V0mbDn0.js} +1 -1
- package/dist/client/assets/{login-xMe8uq97.js → login-xUXQCdNG.js} +1 -1
- package/dist/client/assets/{markdown-nQrYOrJu.js → markdown-DfRlZnO9.js} +1 -1
- package/dist/client/assets/{mcp-oauth-CH8aXrUS.js → mcp-oauth-_1P6M0ca.js} +1 -1
- package/dist/client/assets/{members-os2LlbCD.js → members-B3VJqWxk.js} +1 -1
- package/dist/client/assets/{monaco-editor-D-OtVr_n.js → monaco-editor-CtSHc59x.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-CisDt-Oh.js → monitoring-stats-row-CcsUjBsQ.js} +1 -1
- package/dist/client/assets/{multi-select-CCFiS0YC.js → multi-select-DkzPNiu_.js} +1 -1
- package/dist/client/assets/{oauth-callback-BwNVh8Ay.js → oauth-callback-CtuTIcFF.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-SsrtddQ7.js → oauth-callback-ai-provider-cxtNwB0q.js} +1 -1
- package/dist/client/assets/{onboarding-1pFeUwfe.js → onboarding-Cu-_114a.js} +1 -1
- package/dist/client/assets/org-layout-BgNJcplw.js +1 -0
- package/dist/client/assets/{organization-choice-CKdaBKmF.js → organization-choice-OiMdbhnh.js} +1 -1
- package/dist/client/assets/{orgs-Cm-yPANa.js → orgs-CO0_iThA.js} +1 -1
- package/dist/client/assets/{page-seo-form-CVhe-B9N.js → page-seo-form-D7BO0QTZ.js} +1 -1
- package/dist/client/assets/{popover-CiSRUL8W.js → popover-BdpJ4Hjl.js} +1 -1
- package/dist/client/assets/post-calendar-DEr6lFs1.js +1 -0
- package/dist/client/assets/post-editor-CgvHHk7v.js +1 -0
- package/dist/client/assets/{primitives-BnQfJsjI.js → primitives-CHUWgtWT.js} +1 -1
- package/dist/client/assets/{profile-BuGbWdFA.js → profile-DtnH04zi.js} +1 -1
- package/dist/client/assets/project-app-view-D8sDZWlF.js +1 -0
- package/dist/client/assets/project-icon-DWLDQtlN.js +1 -0
- package/dist/client/assets/{prompts-C3gNSt_0.js → prompts-cAv0Lg3O.js} +1 -1
- package/dist/client/assets/record-editor-cHd8x7rr.js +1 -0
- package/dist/client/assets/redirect-editor-DT_52fGK.js +1 -0
- package/dist/client/assets/registry-Bv_ljj2t.js +2 -0
- package/dist/client/assets/{registry-layout-ChN51H5w.js → registry-layout-WKfndEsC.js} +1 -1
- package/dist/client/assets/{reports-CYciSEvO.js → reports-BW9-Hd9b.js} +1 -1
- package/dist/client/assets/{require-capability-Bzaxi0tw.js → require-capability-DTyN-fnZ.js} +1 -1
- package/dist/client/assets/{required-auth-layout-B5RfO5xE.js → required-auth-layout-DXtyobQw.js} +1 -1
- package/dist/client/assets/{reset-password-c2RD-cMF.js → reset-password-3UpDs895.js} +1 -1
- package/dist/client/assets/{review-settings-CVRC6VQz.js → review-settings-k-G3mBgu.js} +1 -1
- package/dist/client/assets/{roles-CKg_erdA.js → roles-0mtgJvuk.js} +1 -1
- package/dist/client/assets/{schema-BMBwySNw.js → schema-_QfyLVFz.js} +1 -1
- package/dist/client/assets/{scroll-area-D1O9Z5bn.js → scroll-area-BX4xFc-L.js} +1 -1
- package/dist/client/assets/{search-input-HJiyo5_T.js → search-input-BTXLcg73.js} +1 -1
- package/dist/client/assets/{secrets-yGNqTUjE.js → secrets-u7swtnCD.js} +1 -1
- package/dist/client/assets/{sections-editor-nXz1E_RK.js → sections-editor-CjPJD7w9.js} +1 -1
- package/dist/client/assets/{select-KntX1BWy.js → select-BmsI6lk4.js} +1 -1
- package/dist/client/assets/{select-model-D4UnKm_D.js → select-model-CwRvnDe2.js} +1 -1
- package/dist/client/assets/{self-tool-result-Bw-jg1H9.js → self-tool-result-CBOM474B.js} +1 -1
- package/dist/client/assets/seo-editor-Dv9sTK6_.js +1 -0
- package/dist/client/assets/settings-layout-Dwe2d_Nf.js +1 -0
- package/dist/client/assets/settings-sidebar-2-yc4FPC.js +1 -0
- package/dist/client/assets/{shell-controls-y2P0ze9V.js → shell-controls-BTdCn_5T.js} +1 -1
- package/dist/client/assets/shell-layout-ZxnlsGIb.js +1 -0
- package/dist/client/assets/{skill-preview-DDtUylxS.js → skill-preview-B87SElht.js} +1 -1
- package/dist/client/assets/{skills-C02q4DQE.js → skills-C4IU4_fT.js} +1 -1
- package/dist/client/assets/{sso-E35RJK0S.js → sso-D02-M3RV.js} +1 -1
- package/dist/client/assets/{store-DtCD5trg.js → store-Bdvv0rvG.js} +1 -1
- package/dist/client/assets/store-registry-1PsxsHyl.js +2 -0
- package/dist/client/assets/{switch-RffCohYW.js → switch-CWrwsAyw.js} +1 -1
- package/dist/client/assets/{synced-repos-D746RY0r.js → synced-repos-BXxjvd2m.js} +1 -1
- package/dist/client/assets/{table-DHae8Nm6.js → table-Bs2XgWZw.js} +1 -1
- package/dist/client/assets/{tabs-Bw-iT1Tk.js → tabs-BYaP2c8n.js} +1 -1
- package/dist/client/assets/{task-board-Cpu4KbdQ.js → task-board-dsasoVkN.js} +1 -1
- package/dist/client/assets/task-route-DsKWvJMx.js +1 -0
- package/dist/client/assets/{tasks-O7NdYknu.js → tasks-CpN1gEp1.js} +1 -1
- package/dist/client/assets/{textarea-D69PAPp0.js → textarea-DpkRjShy.js} +1 -1
- package/dist/client/assets/{thread-intent-B9RGGbT7.js → thread-intent-CnMwNyR1.js} +1 -1
- package/dist/client/assets/{thread-route-DghMzEvi.js → thread-route-Q8ksE0mc.js} +1 -1
- package/dist/client/assets/{toggle-group-D2J6TMAE.js → toggle-group-C3OETn2P.js} +1 -1
- package/dist/client/assets/{toolbar-CQKJCOWO.js → toolbar-BZa7aOkU.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-D5UWifRH.js → toolbar-icon-button-DLS3lSy-.js} +1 -1
- package/dist/client/assets/{track-CPuXhWGG.js → track-BMqM3uQW.js} +1 -1
- package/dist/client/assets/{types-D9TUiUC5.js → types-B_DqxPqA.js} +1 -1
- package/dist/client/assets/{use-ai-providers-BDymGfsX.js → use-ai-providers-BLyXcea7.js} +1 -1
- package/dist/client/assets/{use-automations-D-er4402.js → use-automations-DejFYCuF.js} +1 -1
- package/dist/client/assets/{use-autosave-BYuOuBAD.js → use-autosave-Ck4MSays.js} +1 -1
- package/dist/client/assets/{use-connection-DjqJprQ0.js → use-connection-CDwYushX.js} +1 -1
- package/dist/client/assets/{use-copy-Cc5MlhjA.js → use-copy-DNngklmi.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-BpDoBwW0.js → use-create-virtual-mcp-a2Urn4GD.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-ZIgtFc1M.js → use-debounced-autosave-BjpHsqZE.js} +1 -1
- package/dist/client/assets/{use-debounced-value-BSLeeOpX.js → use-debounced-value-DsF3xtnr.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-DJzsWHaW.js → use-decopilot-events-DhdekMcp.js} +1 -1
- package/dist/client/assets/{use-delete-connection-ChV1b6nT.js → use-delete-connection-BnP6BYzV.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-De_oldAV.js → use-deployment-admin-CKIM13V2.js} +1 -1
- package/dist/client/assets/{use-destination-route-CG9NdNN9.js → use-destination-route-FVETkHY_.js} +1 -1
- package/dist/client/assets/{use-file-configs-DXL12ksv.js → use-file-configs-C0PBAMT3.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-D5DcjHPJ.js → use-infinite-scroll-CzQQ1euK.js} +1 -1
- package/dist/client/assets/{use-join-requests-BwgxmP4k.js → use-join-requests-BoKKnMPW.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-BmzTeush.js → use-mcp-auth-status-Ch-Wu1F-.js} +1 -1
- package/dist/client/assets/{use-mcp-client-BsCYwuYG.js → use-mcp-client-DW9-44wA.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-r_b-m13M.js → use-mcp-prompts-WnmvAxxK.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-DFUdHDOx.js → use-mcp-tools-BynKAh3n.js} +1 -1
- package/dist/client/assets/{use-members-uyLHU2hg.js → use-members-vgayqB0r.js} +1 -1
- package/dist/client/assets/use-navigate-to-agent-BZ641H8y.js +1 -0
- package/dist/client/assets/{use-org-auth-client-CRXTM1Db.js → use-org-auth-client-DHky33nc.js} +1 -1
- package/dist/client/assets/{use-org-sso-D2ngO8eF.js → use-org-sso-B8tTzKJi.js} +1 -1
- package/dist/client/assets/{use-organization-roles-E5m8U-S7.js → use-organization-roles-DBxlmJaR.js} +1 -1
- package/dist/client/assets/{use-organization-settings-CVRBbGpW.js → use-organization-settings-JBq4qAO4.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-Cbxz5kt0.js → use-panel-navigate-BXK_-_Rp.js} +1 -1
- package/dist/client/assets/{use-registry-connections-DDAHT7mn.js → use-registry-connections-K09qmLQp.js} +1 -1
- package/dist/client/assets/{use-secrets-CxYf3QgY.js → use-secrets-9k9DYpBd.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-nwXYuQik.js → use-section-preview-base-B3SNVSby.js} +1 -1
- package/dist/client/assets/{use-status-sounds-BsArCG5q.js → use-status-sounds-Du9yqvYB.js} +1 -1
- package/dist/client/assets/{use-tags-7szl89Un.js → use-tags-CmpUDQKg.js} +1 -1
- package/dist/client/assets/{use-view-mode-BCpG25HS.js → use-view-mode-Dgs5f7ts.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-GrNV8gSX.js → use-virtual-mcp-CLk-HH_5.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-Bd5Cr4x9.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-D9jUTedU.js +1 -0
- package/dist/client/assets/{users-t7wRTjGx.js → users-hsV-8-8G.js} +1 -1
- package/dist/client/assets/variant-calendar-D3TQqVRO.js +1 -0
- package/dist/client/assets/{view-mode-toggle-BUL9QJav.js → view-mode-toggle-MKX5cSkK.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/cli.js +1 -1
- package/dist/server/server.js +1 -1
- package/package.json +1 -1
- package/dist/client/assets/api-keys-JtWtYNuu.js +0 -1
- package/dist/client/assets/app-editor-DQYPxUQA.js +0 -1
- package/dist/client/assets/category-editor-BkGCdnTz.js +0 -1
- package/dist/client/assets/collection-detail-CBcNSBGR.js +0 -1
- package/dist/client/assets/command-DYMcXrYb.js +0 -1
- package/dist/client/assets/e2e-tab-B47B8D6p.js +0 -1
- package/dist/client/assets/file-explorer-D6bSC078.js +0 -2
- package/dist/client/assets/index-BaLSCAcE.js +0 -1
- package/dist/client/assets/index-tE-Tf4Hw.js +0 -1
- package/dist/client/assets/org-layout-ByaNaRAg.js +0 -1
- package/dist/client/assets/post-calendar-BlOmmMBz.js +0 -1
- package/dist/client/assets/post-editor-DDFHZpuO.js +0 -1
- package/dist/client/assets/project-app-view-Cw_plhk8.js +0 -1
- package/dist/client/assets/record-editor-DtUJGWvr.js +0 -1
- package/dist/client/assets/redirect-editor-D0vXfu9N.js +0 -1
- package/dist/client/assets/registry-QzkuDmLd.js +0 -2
- package/dist/client/assets/seo-editor-BMV5Py3q.js +0 -1
- package/dist/client/assets/settings-layout-BxW8PXZR.js +0 -1
- package/dist/client/assets/settings-sidebar-C_XqwVow.js +0 -1
- package/dist/client/assets/shell-layout-CYnXtCwc.js +0 -1
- package/dist/client/assets/store-registry-CMA16J1j.js +0 -2
- package/dist/client/assets/task-route-BF9yN3PC.js +0 -1
- package/dist/client/assets/use-navigate-to-agent-IY8mCF-a.js +0 -1
- package/dist/client/assets/use-project-scope-BPel4oYu.js +0 -1
- package/dist/client/assets/useInfiniteQuery-Ba_5G2Dq.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-Day-b8LH.js +0 -1
- package/dist/client/assets/variant-calendar-De-JgJ0u.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as K,b as X,r as Z,j as n,l as rt,a1 as ut,a4 as ht,B as tt,a2 as xt}from"./index-DbavEff_.js";import{y as gt,a4 as at,aF as bt}from"./agent-icon-CeVY56z8.js";import{i as vt}from"./ChevronRight-B_ryg5GC.js";import{L as yt}from"./label-D9ClAZdf.js";import{S as lt}from"./scroll-area-BX4xFc-L.js";import{S as jt}from"./switch-CWrwsAyw.js";import{V as Tt}from"./view-mode-toggle-MKX5cSkK.js";import{bv as ct,bw as mt,bx as Nt,by as _t,bz as kt,bA as U,bB as wt}from"./index-BSQOgNWH.js";import"./AlertCircle-D7yJEpgq.js";import"./Tool01-eulGN8_s.js";import"./ArrowUp-LJmJ9SbQ.js";import"./ArrowLeft-kchZqGLb.js";import"./Tool02-B5KfSuXd.js";import"./XCircle-3n-4v86l.js";import"./TrendUp01-DSy5DyIi.js";import"./ZoomOut-C1o7ACr8.js";import"./Users03-DdSyigI5.js";import"./CheckCircle-KXeKRm2T.js";import"./Check-BCb75NOo.js";import"./ChevronUp-BtBRAUrF.js";import"./ChevronSelectorVertical-B__WBFpy.js";import"./DotsVertical-BAD5BS1q.js";import"./UserSquare-BNHKRg2I.js";import"./Copy01-SPmDY_8r.js";import"./CreditCard01-BmqSzpTc.js";import"./Download01-CTjUk84_.js";import"./Settings02-C8SHvTch.js";import"./Eye-ByeRQY33.js";import"./Share07-C6O72dEE.js";import"./GitBranch01-B8WKWTuc.js";import"./Globe01-3s9LajuH.js";import"./XClose-CIwe2zcz.js";import"./HardDrive-CV5QfxOT.js";import"./Image01-D1_yYrkf.js";import"./Key01-Cc18Zeye.js";import"./Link01-Dc9_ASFt.js";import"./LinkExternal01-uzXW7IXY.js";import"./Monitor01-yO87KRU-.js";import"./Sun-CvOy3m0U.js";import"./Package-D7xjgwIt.js";import"./Palette-Dmwx0ksz.js";import"./Play-Bz2Mgr6W.js";import"./Plus-nXRBvt7e.js";import"./SearchMd-D2BorPlT.js";import"./Shield01-B0y6mJu2.js";import"./Stars01-DFyMkbVK.js";import"./Trash01-DoQMmtz0.js";import"./Upload01-BK4fslp_.js";import"./User01-CIKUl5X8.js";import"./Users01-UODZM4OS.js";import"./Zap-bfMUJV1G.js";import"./select-BmsI6lk4.js";import"./chat-context-uOT-cmKK.js";import"./use-panel-navigate-BXK_-_Rp.js";import"./use-destination-route-FVETkHY_.js";import"./thread-route-Q8ksE0mc.js";import"./dialog-BBrJpDR-.js";import"./constants-DNuUCxmW.js";import"./thread-intent-CnMwNyR1.js";import"./slugify-CEUa2lfQ.js";import"./hooks-BF_HxtnT.js";import"./use-mcp-client-DW9-44wA.js";import"./auth-BLOOX4WA.js";import"./delay-CnY5UFtP.js";import"./backoff-CrEUbyZT.js";import"./decopilot-sse-pool-BmdxQro0.js";import"./task-board-dsasoVkN.js";import"./schema-_QfyLVFz.js";import"./use-is-desktop-app-BNujXJc_.js";import"./use-virtual-mcp-CLk-HH_5.js";import"./use-ai-providers-BLyXcea7.js";import"./location-oTTXFrSF.js";import"./use-decopilot-events-DhdekMcp.js";import"./use-organization-settings-JBq4qAO4.js";import"./automation-runs-BUr4T6Br.js";import"./useInfiniteQuery-Bd5Cr4x9.js";import"./use-infinite-scroll-CzQQ1euK.js";import"./use-connection-CDwYushX.js";import"./table-Bs2XgWZw.js";import"./empty-state-f8ZKA-8U.js";import"./use-members-vgayqB0r.js";import"./use-org-auth-client-DHky33nc.js";import"./use-automations-DejFYCuF.js";import"./useSuspenseInfiniteQuery-D9jUTedU.js";import"./avatar-CUWVL5Wy.js";import"./format-time-BnbuEtat.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-DNngklmi.js";import"./markdown-DfRlZnO9.js";import"./monaco-editor-CtSHc59x.js";import"./editor-DIYKhLB9.js";import"./types-B_DqxPqA.js";import"./shell-layout-ZxnlsGIb.js";import"./project-icon-DWLDQtlN.js";import"./github-repo-COLY3wWI.js";import"./command-DplHSBSd.js";import"./index-Bb80cFlQ.js";import"./required-auth-layout-DXtyobQw.js";import"./use-org-sso-B8tTzKJi.js";import"./integration-icon-cb8ZtkpN.js";import"./use-navigate-to-agent-BZ641H8y.js";import"./use-mcp-prompts-WnmvAxxK.js";import"./form-BQVPErMY.js";import"./input-BPK-8DA5.js";import"./file-type-icon-tKZyWgYW.js";import"./drawer-NconyKwA.js";import"./collection-search-DuNlsoEJ.js";import"./use-mcp-tools-BynKAh3n.js";import"./tabs-BYaP2c8n.js";import"./toggle-group-C3OETn2P.js";import"./task-route-DsKWvJMx.js";import"./toolbar-icon-button-DLS3lSy-.js";import"./popover-BdpJ4Hjl.js";import"./github-repo-picker-BCBGIrIF.js";import"./use-debounced-value-DsF3xtnr.js";import"./authenticate-and-persist-oauth-7Yo6L4yK.js";import"./mcp-oauth-_1P6M0ca.js";import"./extract-connection-data-B1-XDalI.js";import"./metadata-dUsYcpuu.js";import"./connection-BlDUY6E1.js";import"./provision-repo-scoped-github-connection-WQFARyHG.js";import"./connection-card-BhGsZYCV.js";import"./use-registry-connections-K09qmLQp.js";import"./retry-CErkP7V6.js";import"./connection-slug-CITJ0kGN.js";import"./textarea-DpkRjShy.js";import"./connection-form-helpers-CdzfFGVw.js";import"./collection-tabs-CbH52uar.js";import"./badge-CdPlCLsh.js";import"./dropdown-menu-DGoZniwf.js";import"./get-initials-D-f_fDFw.js";import"./select-model-CwRvnDe2.js";import"./checkbox-Bopyju7x.js";import"./ai-providers-logos-DD3qZ33J.js";import"./folder-icon-D1Eo4Qs7.js";import"./question-004-sINsf4GQ.js";import"./use-status-sounds-Du9yqvYB.js";import"./toolbar-BZa7aOkU.js";import"./use-file-configs-C0PBAMT3.js";import"./site-slug-uya6Wp4-.js";import"./skill-preview-B87SElht.js";import"./pt-BR-CLy76QW2.js";import"./alert-dialog-CpPO0Plv.js";import"./use-debounced-autosave-BjpHsqZE.js";import"./search-input-BTXLcg73.js";import"./use-mcp-auth-status-Ch-Wu1F-.js";import"./use-secrets-9k9DYpBd.js";import"./client-icons-Cnx1SikW.js";import"./connect-layout-ufRrjKGg.js";import"./self-tool-result-CBOM474B.js";import"./track-BMqM3uQW.js";import"./use-tags-CmpUDQKg.js";import"./breadcrumb-BwJBpL6v.js";import"./safe-image-url-D5z803Ot.js";import"./automation-list-row-C1wr32-G.js";import"./site-error--i37Vnuw.js";import"./cards-B4dwk-9T.js";const Et=new Set(["website/matchers/date.ts","$live/matchers/MatchDate.ts"]),St=new Set(["website/matchers/multi.ts","$live/matchers/MatchMulti.ts"]),Ct=new Date(-864e13),Mt=new Date(864e13),At=/\/flags\/multivariate(?:\/[^/]+)?\.ts$/,$t=/\/flags\/multivariate\.ts$/;function Lt(e){let t=e;t.startsWith("pages-")&&(t=t.slice(6).replace(/-\d+$/,""));try{t=decodeURIComponent(t)}catch{}return t}function Rt(e){if(!e||typeof e!="object")return null;const{start:t,end:r}=e,o=typeof t=="string",s=typeof r=="string";if(!o&&!s)return null;const i=o?new Date(t):Ct,a=s?new Date(r):Mt;return Number.isNaN(i.getTime())||Number.isNaN(a.getTime())||o&&s&&a.getTime()<=i.getTime()?null:{start:i,end:a,openStart:!o,openEnd:!s}}function pt(e,t){if(!e||typeof e!="object")return;const r=e.__resolveType;if(typeof r=="string"){if(Et.has(r)){const o=Rt(e);o&&t.push(o);return}if(St.has(r)){const o=e.matchers;if(Array.isArray(o))for(const s of o)pt(s,t)}}}function Dt(e){if(!e||typeof e!="object")return!1;const t=e.__resolveType;if(typeof t!="string"||!At.test(t))return!1;const r=e.variants;return Array.isArray(r)}function Ot(e){if(typeof e=="string"){const c=e.trim();if(c.length===0)return null;try{const m=new URL(c).pathname.split("/").filter(Boolean),p=m[m.length-1];if(p)return decodeURIComponent(p)}catch{}return c.length>80?`${c.slice(0,77)}…`:c}if(!e||typeof e!="object")return null;const t=e,r=t.config,s=t.desktop?.media,i=[t.title,t.name,t.label,t.alt,r?.title,r?.name,r?.typeAlert?.message,s?.alt,Array.isArray(t.matcher)?t.matcher[0]:void 0];for(const c of i)if(typeof c=="string"&&c.trim().length>0)return c.trim();const a=t.__resolveType;if(typeof a=="string"){const l=(a.split("/").pop()??a).replace(/\.(tsx?|jsx?)$/i,"");if(l.length>0)return l}return null}function Pt(e){const t=[];for(let r=0;r<e.length;r++){const o=e[r];typeof o=="number"?t.length>0?t[t.length-1]+=`[${o}]`:t.push(`[${o}]`):t.push(o)}return t.join(" · ")}function Q(e,t,r,o,s){if(Dt(e)){const i=e.variants,a=e.__resolveType,c=$t.test(a)?"":Pt(o);i.forEach((l,m)=>{if(!l||typeof l!="object")return;const p=l,h=[];if(pt(p.rule,h),h.length===0)return;const g=Ot(p.value)??(c||r);for(const u of h)s.push({blockKey:t,blockLabel:r,innerPath:c,variantIndex:m,start:u.start,end:u.end,openStart:u.openStart,openEnd:u.openEnd,label:g,flagResolveType:a})});for(let l=0;l<i.length;l++){const m=i[l];m&&typeof m=="object"&&Q(m.value,t,r,[...o,"variants",l,"value"],s)}return}if(Array.isArray(e)){for(let i=0;i<e.length;i++)Q(e[i],t,r,[...o,i],s);return}if(e&&typeof e=="object")for(const[i,a]of Object.entries(e))i!=="__resolveType"&&Q(a,t,r,[...o,i],s)}function It(e){if(!e)return[];const t=[];for(const[r,o]of Object.entries(e))Q(o,r,Lt(r),[],t);return t.sort((r,o)=>r.start.getTime()-o.start.getTime())}function Vt(e){const t=[...new Set(e)].sort(),r=new Map;return t.forEach((o,s)=>{const i=s*137.508%360;r.set(o,{bg:`oklch(0.62 0.14 ${i})`,text:"white",border:`oklch(0.50 0.14 ${i})`})}),r}const Bt={bg:"oklch(0.62 0.14 0)",text:"white",border:"oklch(0.50 0.14 0)"};function dt(e,t){return e.get(t)??Bt}const ot=new Intl.DateTimeFormat("en",{dateStyle:"medium",timeStyle:"short"});function Ht(e,t){const r=e.openStart?t("sandbox.variantCalendar.always"):ot.format(e.start),o=e.openEnd?t("sandbox.variantCalendar.ongoing"):ot.format(e.end);return`${r} → ${o}`}function Ft(e){const t=K.c(18),{variant:r}=e,o=X();let s;t[0]!==r.blockLabel?(s=n.jsx("div",{className:"font-semibold",children:r.blockLabel}),t[0]=r.blockLabel,t[1]=s):s=t[1];let i;t[2]!==r.innerPath?(i=r.innerPath&&n.jsx("div",{className:"text-muted-foreground",children:r.innerPath}),t[2]=r.innerPath,t[3]=i):i=t[3];let a;t[4]!==r.blockLabel||t[5]!==r.innerPath||t[6]!==r.label?(a=r.label!==r.blockLabel&&r.label!==r.innerPath&&n.jsx("div",{className:"text-muted-foreground",children:r.label}),t[4]=r.blockLabel,t[5]=r.innerPath,t[6]=r.label,t[7]=a):a=t[7];let c;t[8]!==o||t[9]!==r?(c=Ht(r,o),t[8]=o,t[9]=r,t[10]=c):c=t[10];let l;t[11]!==c?(l=n.jsx("div",{className:"mt-1",children:c}),t[11]=c,t[12]=l):l=t[12];let m;return t[13]!==s||t[14]!==i||t[15]!==a||t[16]!==l?(m=n.jsx(xt,{children:n.jsxs("div",{className:"text-xs",children:[s,i,a,l]})}),t[13]=s,t[14]=i,t[15]=a,t[16]=l,t[17]=m):m=t[17],m}const nt=16;function zt(e,t){const r=e?"transparent":"#000 0",o=t?"transparent":"#000 100%";if(!(!e&&!t))return`linear-gradient(to right, ${r}, #000 ${nt}px, #000 calc(100% - ${nt}px), ${o})`}function ft(e){const t=K.c(26),{variant:r,color:o,style:s,children:i,fadeStart:a,fadeEnd:c}=e,l=a===void 0?!1:a,m=c===void 0?!1:c;let p;t[0]!==m||t[1]!==l?(p=zt(l,m),t[0]=m,t[1]=l,t[2]=p):p=t[2];const h=p;let f;t[3]!==l?(f=l&&{borderTopLeftRadius:0,borderBottomLeftRadius:0},t[3]=l,t[4]=f):f=t[4];let g;t[5]!==m?(g=m&&{borderTopRightRadius:0,borderBottomRightRadius:0},t[5]=m,t[6]=g):g=t[6];let u;t[7]!==h?(u=h&&{maskImage:h,WebkitMaskImage:h},t[7]=h,t[8]=u):u=t[8];let x;t[9]!==o.bg||t[10]!==o.text||t[11]!==s||t[12]!==f||t[13]!==g||t[14]!==u?(x={background:o.bg,color:o.text,borderRadius:4,...f,...g,...u,...s},t[9]=o.bg,t[10]=o.text,t[11]=s,t[12]=f,t[13]=g,t[14]=u,t[15]=x):x=t[15];let b;t[16]!==i?(b=n.jsx("span",{className:"truncate",children:i}),t[16]=i,t[17]=b):b=t[17];let E;t[18]!==x||t[19]!==b?(E=n.jsx(ut,{asChild:!0,children:n.jsx("div",{className:"absolute flex items-center px-2 text-[11px] font-medium truncate cursor-default",style:x,children:b})}),t[18]=x,t[19]=b,t[20]=E):E=t[20];let T;t[21]!==r?(T=n.jsx(Ft,{variant:r}),t[21]=r,t[22]=T):T=t[22];let d;return t[23]!==T||t[24]!==E?(d=n.jsxs(ht,{children:[E,T]}),t[23]=T,t[24]=E,t[25]=d):d=t[25],d}function tn(e){const t=K.c(72),{decofile:r}=e,o=X(),[s,i]=Z.useState("calendar"),[a,c]=Z.useState(Kt),[l,m]=Z.useState(!1);let p,h,f;if(t[0]!==r||t[1]!==l){const I=It(r);p=I.filter(Ut).length,f=l?I:I.filter(Gt),h=Vt(f.map(Wt)),t[0]=r,t[1]=l,t[2]=p,t[3]=h,t[4]=f}else p=t[2],h=t[3],f=t[4];const g=h;let u;t[5]===Symbol.for("react.memo_cache_sentinel")?(u=()=>c(mt(new Date)),t[5]=u):u=t[5];const x=u;let b;t[6]!==s?(b=()=>c(I=>s==="calendar"?U(I,-1):U(I,-3)),t[6]=s,t[7]=b):b=t[7];const E=b;let T;t[8]!==s?(T=()=>c(I=>s==="calendar"?U(I,1):U(I,3)),t[8]=s,t[9]=T):T=t[9];const d=T;let v;t[10]!==o?(v=o("sandbox.variantCalendar.today"),t[10]=o,t[11]=v):v=t[11];let y;t[12]!==v?(y=n.jsx(tt,{variant:"outline",size:"sm",onClick:x,children:v}),t[12]=v,t[13]=y):y=t[13];let N;t[14]!==o?(N=o("sandbox.variantCalendar.previous"),t[14]=o,t[15]=N):N=t[15];let A;t[16]===Symbol.for("react.memo_cache_sentinel")?(A=n.jsx(gt,{size:16}),t[16]=A):A=t[16];let _;t[17]!==E||t[18]!==N?(_=n.jsx(tt,{variant:"ghost",size:"icon",className:"size-8",onClick:E,"aria-label":N,children:A}),t[17]=E,t[18]=N,t[19]=_):_=t[19];let k;t[20]!==o?(k=o("sandbox.variantCalendar.next"),t[20]=o,t[21]=k):k=t[21];let C;t[22]===Symbol.for("react.memo_cache_sentinel")?(C=n.jsx(vt,{size:16}),t[22]=C):C=t[22];let $;t[23]!==d||t[24]!==k?($=n.jsx(tt,{variant:"ghost",size:"icon",className:"size-8",onClick:d,"aria-label":k,children:C}),t[23]=d,t[24]=k,t[25]=$):$=t[25];const L=ct[a.getMonth()];let M;t[26]!==a?(M=a.getFullYear(),t[26]=a,t[27]=M):M=t[27];let w;t[28]!==L||t[29]!==M?(w=n.jsxs("h2",{className:"ml-2 text-base font-semibold",children:[L," ",M]}),t[28]=L,t[29]=M,t[30]=w):w=t[30];let j;t[31]!==$||t[32]!==w||t[33]!==y||t[34]!==_?(j=n.jsxs("div",{className:"flex items-center gap-2",children:[y,_,$,w]}),t[31]=$,t[32]=w,t[33]=y,t[34]=_,t[35]=j):j=t[35];let R;t[36]!==p||t[37]!==l||t[38]!==o?(R=p>0&&n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(jt,{id:"show-ongoing",checked:l,onCheckedChange:m}),n.jsx(yt,{htmlFor:"show-ongoing",className:"text-xs text-muted-foreground cursor-pointer",children:o("sandbox.variantCalendar.showOngoing",{count:p})})]}),t[36]=p,t[37]=l,t[38]=o,t[39]=R):R=t[39];let H;t[40]===Symbol.for("react.memo_cache_sentinel")?(H=n.jsx(at,{}),t[40]=H):H=t[40];let V;t[41]!==o?(V=o("sandbox.variantCalendar.calendarMode"),t[41]=o,t[42]=V):V=t[42];let S;t[43]!==V?(S={value:"calendar",icon:H,label:V},t[43]=V,t[44]=S):S=t[44];let F;t[45]===Symbol.for("react.memo_cache_sentinel")?(F=n.jsx(bt,{}),t[45]=F):F=t[45];let D;t[46]!==o?(D=o("sandbox.variantCalendar.timelineMode"),t[46]=o,t[47]=D):D=t[47];let O;t[48]!==D?(O={value:"timeline",icon:F,label:D},t[48]=D,t[49]=O):O=t[49];let P;t[50]!==S||t[51]!==O?(P=[S,O],t[50]=S,t[51]=O,t[52]=P):P=t[52];let B;t[53]!==P||t[54]!==s?(B=n.jsx(Tt,{value:s,onValueChange:i,options:P}),t[53]=P,t[54]=s,t[55]=B):B=t[55];let z;t[56]!==R||t[57]!==B?(z=n.jsxs("div",{className:"flex items-center gap-4",children:[R,B]}),t[56]=R,t[57]=B,t[58]=z):z=t[58];let W;t[59]!==j||t[60]!==z?(W=n.jsxs("div",{className:"flex items-center justify-between px-4 h-12 border-b shrink-0",children:[j,z]}),t[59]=j,t[60]=z,t[61]=W):W=t[61];let G;t[62]!==g||t[63]!==a||t[64]!==p||t[65]!==l||t[66]!==f||t[67]!==s?(G=f.length===0?n.jsx(Yt,{hiddenOngoing:l?0:p}):s==="calendar"?n.jsx(Jt,{monthStart:a,variants:f,colorMap:g}):n.jsx(te,{monthStart:a,variants:f,colorMap:g}),t[62]=g,t[63]=a,t[64]=p,t[65]=l,t[66]=f,t[67]=s,t[68]=G):G=t[68];let q;return t[69]!==W||t[70]!==G?(q=n.jsxs("div",{className:"flex h-full w-full flex-col",children:[W,G]}),t[69]=W,t[70]=G,t[71]=q):q=t[71],q}function Wt(e){return e.blockKey}function Gt(e){return!e.openEnd}function Ut(e){return e.openEnd}function Kt(){return mt(new Date)}function Yt(e){const t=K.c(4),{hiddenOngoing:r}=e,o=r===void 0?0:r,s=X();let i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=n.jsx(at,{size:24,className:"text-muted-foreground/60"}),t[0]=i):i=t[0];let a;return t[1]!==o||t[2]!==s?(a=n.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center gap-2 text-center text-sm text-muted-foreground p-6",children:[i,o>0?n.jsxs(n.Fragment,{children:[n.jsx("div",{children:s("sandbox.variantCalendar.noDatedVariants")}),n.jsx("div",{className:"text-xs text-muted-foreground/80",children:s("sandbox.variantCalendar.hiddenOngoingVariants",{count:o})})]}):n.jsxs(n.Fragment,{children:[n.jsx("div",{children:s("sandbox.variantCalendar.noScheduledVariants")}),n.jsx("div",{className:"text-xs text-muted-foreground/80",children:s("sandbox.variantCalendar.dateMatcherInfo")})]})]}),t[1]=o,t[2]=s,t[3]=a):a=t[3],a}const et=20,it=2,st=28,qt=6;function Jt(e){const t=K.c(17),{monthStart:r,variants:o,colorMap:s}=e;let i,a,c,l,m;if(t[0]!==s||t[1]!==r||t[2]!==o){const f=Nt(r),g=_t(new Date);i=lt,m="flex-1 min-h-0",a="min-w-[840px]",t[8]===Symbol.for("react.memo_cache_sentinel")?(c=n.jsx("div",{className:"grid grid-cols-7 border-b text-xs text-muted-foreground sticky top-0 bg-background z-10",children:wt.map(Xt)}),t[8]=c):c=t[8],l=f.map((u,x)=>{const b=kt(u,o),E=b.reduce(Qt,0),T=st+E*(et+it)+8;return n.jsxs("div",{className:"grid grid-cols-7 relative border-b",style:{height:T},children:[u.map((d,v)=>{const y=d.getMonth()===r.getMonth(),N=d.getTime()===g.getTime();return n.jsx("div",{className:rt("border-r last:border-r-0 px-2 pt-1.5 text-xs",y?"bg-background":"bg-muted/30 text-muted-foreground"),children:n.jsx("span",{className:rt("inline-flex h-5 min-w-5 items-center justify-center rounded-full px-1",N&&"bg-primary text-primary-foreground font-semibold"),children:d.getDate()})},v)}),b.map((d,v)=>{const y=dt(s,d.variant.blockKey),N=st+d.lane*(et+it),A=d.leftUnits/7*100,_=d.widthUnits/7*100,k=d.variant.openStart&&x===0,C=d.variant.openEnd&&x===f.length-1;return n.jsxs(ft,{variant:d.variant,color:y,fadeStart:k,fadeEnd:C,style:{top:N,left:`calc(${A}% + 2px)`,width:`calc(${_}% - 4px)`,minWidth:qt,height:et},children:[d.variant.blockLabel,d.variant.label!==d.variant.blockLabel&&n.jsxs("span",{className:"opacity-70",children:[" · ",d.variant.label]})]},`${x}-${v}`)})]},x)}),t[0]=s,t[1]=r,t[2]=o,t[3]=i,t[4]=a,t[5]=c,t[6]=l,t[7]=m}else i=t[3],a=t[4],c=t[5],l=t[6],m=t[7];let p;t[9]!==a||t[10]!==c||t[11]!==l?(p=n.jsxs("div",{className:a,children:[c,l]}),t[9]=a,t[10]=c,t[11]=l,t[12]=p):p=t[12];let h;return t[13]!==i||t[14]!==m||t[15]!==p?(h=n.jsx(i,{className:m,children:p}),t[13]=i,t[14]=m,t[15]=p,t[16]=h):h=t[16],h}function Qt(e,t){return Math.max(e,t.lane+1)}function Xt(e){return n.jsx("div",{className:"px-2 py-2 text-center uppercase tracking-wide",children:e},e)}const J=4,Zt=32,Y=240;function te(e){const t=K.c(23),{monthStart:r,variants:o,colorMap:s}=e,i=r,a=U(r,J),c=new Date,l=new Map;for(const w of o){const j=l.get(w.blockKey)??[];j.push(w),l.set(w.blockKey,j)}const m=Array.from(l.entries()).sort(oe),p=a.getTime()-i.getTime(),h=w=>(Math.max(i.getTime(),Math.min(a.getTime(),w.getTime()))-i.getTime())/p*100;let f;t[0]!==i?(f=(w,j)=>U(i,j),t[0]=i,t[1]=f):f=t[1];const g=Array.from({length:J},f),u=c.getTime()>=i.getTime()&&c.getTime()<=a.getTime()?h(c):null,x=X(),b=lt,E="flex-1 min-h-0",T="min-w-[900px] relative";let d;t[2]===Symbol.for("react.memo_cache_sentinel")?(d={width:Y},t[2]=d):d=t[2];let v;t[3]!==x?(v=x("sandbox.variantCalendar.variantBlock"),t[3]=x,t[4]=v):v=t[4];let y;t[5]!==v?(y=n.jsx("div",{className:"shrink-0 px-3 py-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground border-r",style:d,children:v}),t[5]=v,t[6]=y):y=t[6];let N;t[7]===Symbol.for("react.memo_cache_sentinel")?(N={gridTemplateColumns:`repeat(${J}, minmax(0, 1fr))`},t[7]=N):N=t[7];const A=g.map(re);let _;t[8]!==A?(_=n.jsx("div",{className:"flex-1 grid",style:N,children:A}),t[8]=A,t[9]=_):_=t[9];let k;t[10]!==y||t[11]!==_?(k=n.jsxs("div",{className:"flex border-b sticky top-0 bg-background z-10",children:[y,_]}),t[10]=y,t[11]=_,t[12]=k):k=t[12];let C;t[13]!==x||t[14]!==u?(C=u!==null&&n.jsx("div",{className:"pointer-events-none absolute top-0 bottom-0 w-px bg-primary/70 z-[5]",style:{left:`calc(${Y}px + (100% - ${Y}px) * ${u} / 100)`},children:n.jsx("span",{className:"absolute -top-0.5 -translate-x-1/2 rounded-sm bg-primary px-1.5 py-px text-[10px] font-medium text-primary-foreground",children:x("sandbox.variantCalendar.todayLabel")})}),t[13]=x,t[14]=u,t[15]=C):C=t[15];const $=m.map(w=>{const[j,R]=w,H=dt(s,j),V=R[0]?.blockLabel??j;return n.jsxs("div",{children:[n.jsx("div",{className:"flex items-center bg-muted/40 border-b text-xs font-semibold uppercase tracking-wide text-muted-foreground",style:{height:28},children:n.jsx("div",{className:"px-3 truncate",style:{width:Y},children:V})}),R.map((S,F)=>n.jsxs("div",{className:"flex border-b items-center",style:{height:Zt},children:[n.jsxs("div",{className:"flex items-center gap-2 px-3 text-sm border-r shrink-0",style:{width:Y},children:[n.jsx("span",{className:"inline-block h-2 w-2 rounded-full shrink-0",style:{background:H.bg}}),n.jsx("span",{className:"truncate text-foreground/80",children:S.label})]}),n.jsxs("div",{className:"relative flex-1 h-full",children:[n.jsx("div",{className:"absolute inset-0 grid",style:{gridTemplateColumns:`repeat(${J}, minmax(0, 1fr))`},children:g.map(ee)}),(()=>{const D=Math.max(S.start.getTime(),i.getTime()),O=Math.min(S.end.getTime(),a.getTime());if(O<=D)return null;const P=h(new Date(D)),B=h(new Date(O))-P;return n.jsx(ft,{variant:S,color:H,fadeStart:S.openStart,fadeEnd:S.openEnd,style:{top:"50%",transform:"translateY(-50%)",left:`${P}%`,width:`calc(${B}% - 2px)`,height:22},children:S.label})})()]})]},F))]},j)});let L;t[16]!==k||t[17]!==C||t[18]!==$?(L=n.jsxs("div",{className:T,children:[k,C,$]}),t[16]=k,t[17]=C,t[18]=$,t[19]=L):L=t[19];let M;return t[20]!==b||t[21]!==L?(M=n.jsx(b,{className:E,children:L}),t[20]=b,t[21]=L,t[22]=M):M=t[22],M}function ee(e,t){return n.jsx("div",{className:"border-r last:border-r-0 border-border/40"},t)}function re(e,t){return n.jsxs("div",{className:"px-2 py-2 text-xs uppercase tracking-wide text-muted-foreground border-r last:border-r-0",children:[ct[e.getMonth()]?.slice(0,3)," ",e.getFullYear()]},t)}function oe(e,t){return e[0].localeCompare(t[0])}export{tn as VariantCalendar};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as $,r as C,l as f,j as i,a4 as k,a1 as I,a2 as P}from"./index-
|
|
1
|
+
import{c as $,r as C,l as f,j as i,a4 as k,a1 as I,a2 as P}from"./index-DbavEff_.js";const M={sm:{button:"size-7",buttonWithLabel:"h-7",icon:"size-4"},md:{button:"size-9",buttonWithLabel:"h-9",icon:"size-5"},lg:{button:"size-12",buttonWithLabel:"h-12",icon:"size-6"}};function A(E){const t=$.c(27),{value:s,onValueChange:y,options:o,size:L,fullWidth:R,className:z}=E,_=L===void 0?"sm":L,m=R===void 0?!1:R;let h;t[0]===Symbol.for("react.memo_cache_sentinel")?(h=[],t[0]=h):h=t[0];const T=C.useRef(h);let x;t[1]===Symbol.for("react.memo_cache_sentinel")?(x={left:0,width:0,opacity:0},t[1]=x):x=t[1];const[d,S]=C.useState(x);let g,p;t[2]!==o||t[3]!==s?(g=()=>{const e=o.findIndex(j=>j.value===s),b=T.current[e];b&&S({left:b.offsetLeft,width:b.offsetWidth,opacity:1})},p=[s,o],t[2]=o,t[3]=s,t[4]=g,t[5]=p):(g=t[4],p=t[5]),C.useEffect(g,p);const l=M[_];let n;t[6]!==z?(n=f("relative flex gap-0 bg-muted rounded-lg",z),t[6]=z,t[7]=n):n=t[7];let a;t[8]!==l||t[9]!==m||t[10]!==y||t[11]!==o||t[12]!==s?(a=o.map((e,b)=>{const j=i.jsxs("button",{ref:V=>{T.current[b]=V},type:"button",onClick:()=>y(e.value),"aria-label":e.label,className:f("relative z-10 flex items-center justify-center gap-2 rounded-lg transition-colors [transition-timing-function:var(--ease-out-cubic)] duration-200",m?"flex-1 h-12 px-4":e.label?f(l.buttonWithLabel,"px-3"):l.button),children:[i.jsx("span",{className:f("transition-colors ease-out duration-200 flex items-center justify-center [&>svg]:size-[1em]",l.icon,s===e.value?"text-foreground":"text-muted-foreground"),children:e.icon}),e.label&&i.jsx("span",{className:f("text-xs transition-colors ease-out duration-200 whitespace-nowrap",s===e.value?"text-foreground":"text-muted-foreground"),children:e.label})]},e.value);return e.tooltip?i.jsxs(k,{children:[i.jsx(I,{asChild:!0,children:j}),i.jsx(P,{side:"bottom",children:e.tooltip})]},e.value):j}),t[8]=l,t[9]=m,t[10]=y,t[11]=o,t[12]=s,t[13]=a):a=t[13];const w=m?"h-12":l.button;let r;t[14]!==w?(r=f("absolute z-0 bg-background rounded-lg border-shadow transition-all [transition-timing-function:var(--ease-out-cubic)] duration-200",w),t[14]=w,t[15]=r):r=t[15];const W=`${d.left}px`,N=`${d.width}px`;let c;t[16]!==d.opacity||t[17]!==W||t[18]!==N?(c={left:W,width:N,opacity:d.opacity},t[16]=d.opacity,t[17]=W,t[18]=N,t[19]=c):c=t[19];let u;t[20]!==r||t[21]!==c?(u=i.jsx("div",{className:r,style:c}),t[20]=r,t[21]=c,t[22]=u):u=t[22];let v;return t[23]!==u||t[24]!==n||t[25]!==a?(v=i.jsxs("div",{className:n,children:[a,u]}),t[23]=u,t[24]=n,t[25]=a,t[26]=v):v=t[26],v}export{A as V};
|
package/dist/client/index.html
CHANGED
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
<meta name="twitter:description" content="Hire specialized agents, give them access to your tools, and let them deliver real projects — with planning, verification, and observability built in." />
|
|
51
51
|
<meta name="twitter:image" content="/og-image.png" />
|
|
52
52
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
53
|
-
<script type="module" crossorigin src="/assets/index-
|
|
54
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
53
|
+
<script type="module" crossorigin src="/assets/index-DbavEff_.js"></script>
|
|
54
|
+
<link rel="stylesheet" crossorigin href="/assets/index-yssuKkag.css">
|
|
55
55
|
</head>
|
|
56
56
|
<body>
|
|
57
57
|
<div id="root"></div>
|
package/dist/server/cli.js
CHANGED
|
@@ -1545,7 +1545,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var kn1=L(()=>{Ub()});f
|
|
|
1545
1545
|
`.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await yy`
|
|
1546
1546
|
DELETE FROM kysely_migration WHERE name = ${X}
|
|
1547
1547
|
`.execute($)}}async function vs1($){await Q04($),await Y04($);let Z=new Cs1({db:$,provider:{getMigrations:()=>Promise.resolve(qn0)}}),{error:X,results:Q}=await Z.migrateToLatest(),Y=0;if(Q?.forEach((G)=>{if(G.status==="Success")Y++;else if(G.status==="Error")console.error(`Failed to execute migration "${G.migrationName}"`)}),X)throw console.error("Failed to migrate"),console.error(X),X;return Y}async function G04($){let{keepOpen:Z=!1,database:X,skipBetterAuth:Q=!1}=$??{},Y="skipped";if(!Q&&!X)Y=await Bm0();let G=X??u$(),J=async()=>{if(!Z&&!X)await WO(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await vs1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function J04(){let $=u$(),Z=new Cs1({db:$.db,provider:{getMigrations:()=>Promise.resolve(qn0)}}),{error:X,results:Q}=await Z.migrateDown();if(Q?.forEach((Y)=>{if(Y.status==="Success")console.log(`\u2705 Migration "${Y.migrationName}" rolled back successfully`);else if(Y.status==="Error")console.error(`\u274C Failed to rollback migration "${Y.migrationName}"`)}),X)throw console.error("Failed to rollback migration"),console.error(X),X}var fs1=L(()=>{Ss1();Om0();JX()});async function v70($){let Z={...process.env},X=I80($,Z);console.log(CE1(X.settings.encryptionKey));let Q=X.settings.betterAuthSecret||(X.settings.localMode?Jo1(X.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (yZ0(),bZ0)),{outputs:G,services:J}=await Y({home:X.settings.dataDir,externalDatabaseUrl:X.externalDatabaseUrl,externalNatsUrl:X.externalNatsUrl});if(!X.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (Om0(),Wo1));await W(G.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (JX(),Rt1)),{migrateToLatest:F}=await Promise.resolve().then(() => (fs1(),xs1)),U=H(G.databaseUrl);await F({keepOpen:!0,database:U,skipBetterAuth:!0})}let K={...X.settings,betterAuthSecret:Q,databaseUrl:G.databaseUrl,natsUrls:G.natsUrls,...G.s3?{s3Endpoint:G.s3.endpoint,s3Bucket:G.s3.bucket,s3AccessKeyId:G.s3.accessKeyId,s3SecretAccessKey:G.s3.secretAccessKey,s3ForcePathStyle:G.s3.forcePathStyle}:{}};return Sn1(K),{settings:K,services:J.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:J.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var Mn0=L(()=>{Ub();Ko1();j$()});var hs1={};s(hs1,{updateService:()=>eE,subscribeCliState:()=>Sn0,setTuiConsoleIntercepted:()=>x70,setServerUrl:()=>Cp,setMigrationsDone:()=>Sp,setDevMode:()=>W04,resetCliStateForTests:()=>K04,isTuiConsoleIntercepted:()=>f70,getCliState:()=>kn0,addLogEntry:()=>LO});function bs1(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function ys1(){return{services:bs1(),migrationsStatus:"pending",serverUrl:null,logs:[]}}function K04(){tQ=ys1()}function kp(){for(let $ of Vn0)$()}function kn0(){return tQ}function Sn0($){return Vn0.add($),()=>Vn0.delete($)}function eE($){tQ={...tQ,services:tQ.services.map((Z)=>Z.name===$.name?$:Z)},kp()}function Sp(){tQ={...tQ,migrationsStatus:"done"},kp()}function Cp($){tQ={...tQ,serverUrl:$},kp()}function LO($){let Z=[...tQ.logs,$];tQ={...tQ,logs:Z.length>500?Z.slice(-500):Z},kp()}function W04(){tQ={...tQ,services:[...bs1(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},kp()}function x70($){gs1=$}function f70(){return gs1}var tQ,Vn0,gs1=!1;var $j=L(()=>{tQ=ys1();Vn0=new Set});import{createServer as us1}from"net";function H04($){return new Promise((Z)=>{let X=us1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function _p($){if(await H04($))return $;let Z=await new Promise((X,Q)=>{let Y=us1();Y.once("error",Q),Y.listen(0,"0.0.0.0",()=>{let G=Y.address(),J=typeof G==="object"&&G?G.port:0;Y.close(()=>X(J))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var Cn0=()=>{};var vn0={};s(vn0,{startDevServer:()=>U04,pipeToLogStore:()=>_n0});import{join as F04}from"path";function _n0($){let Z=$.getReader(),X=new TextDecoder,Q="";function Y(){let G=Q.split(`
|
|
1548
|
-
`);Q=G.pop()??"";for(let J of G){let K=Bun.stripANSI(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;LO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}}catch{}if(Q.trim()){let G=Bun.stripANSI(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)LO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function U04($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await _p(Number(Y)+1):await _p(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await v70({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let D of W)eE({name:D.name,status:"ready",port:D.port});Sp();let F=F04(import.meta.dir,"..","..","..","..",".."),U=X===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)_n0(N.stdout),_n0(N.stderr);Cp(G),eE({name:"Vite",status:"ready",port:Number(Y)}),eE({name:"API",status:"ready",port:Number(K.port)});let O=async(D)=>{if(N.kill(D),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (yZ0(),bZ0));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var xn0=L(()=>{Mn0();$j();Cn0()});var b70;var fn0=L(()=>{b70={name:"decocms",version:"4.323.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as B04,Text as cs1}from"ink";import{jsx as O04,jsxs as ls1}from"react/jsx-runtime";function ms1({version:$}){return ls1(B04,{flexDirection:"column",marginTop:1,children:[J70.map((Z,X)=>O04(cs1,{color:K70[X],children:Z},X)),ls1(cs1,{dimColor:!0,children:[" v",$]})]})}var ds1=L(()=>{wp()});import{Box as Zj,Text as DO}from"ink";import{Spinner as L04}from"@inkjs/ui";import{jsx as UG,jsxs as gy}from"react/jsx-runtime";function is1({status:$}){if($==="pending")return UG(L04,{label:""});return UG(DO,{color:"green",children:"\u2713"})}function D04($){return`${$.name}: ${$.port||"...."}`}function ps1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return gy(Zj,{flexDirection:"column",paddingBottom:1,children:[UG(ms1,{version:b70.version}),UG(Zj,{marginBottom:1,children:UG(DO,{dimColor:!0,children:"\u2500".repeat(80)})}),UG(Zj,{children:gy(DO,{dimColor:!0,children:["Home: ",X]})}),gy(Zj,{gap:2,children:[$.map((Y)=>gy(Zj,{gap:1,children:[UG(DO,{children:D04(Y)}),UG(is1,{status:Y.status})]},Y.name)),gy(Zj,{gap:1,children:[UG(DO,{children:"Migrations"}),UG(is1,{status:Z})]})]}),UG(Zj,{children:Q?gy(DO,{children:["Open in browser: ",UG(DO,{color:"cyan",children:Q})]}):UG(DO,{dimColor:!0,children:"Starting..."})})]})}var ns1=L(()=>{fn0();ds1()});import{Box as w04,Text as vp}from"ink";import{jsx as bn0,jsxs as yn0}from"react/jsx-runtime";function E04($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function ts1({logs:$}){return bn0(w04,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return bn0(vp,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return yn0(vp,{children:[yn0(vp,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),bn0(vp,{color:E04(Z.status),children:Z.status}),yn0(vp,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var os1=()=>{};var gn0={};s(gn0,{App:()=>P04});import{Box as j04}from"ink";import{useSyncExternalStore as z04}from"react";import{jsx as rs1,jsxs as A04}from"react/jsx-runtime";function P04({home:$}){let Z=z04(Sn0,kn0);return A04(j04,{flexDirection:"column",children:[rs1(ps1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),rs1(ts1,{logs:Z.logs})]})}var hn0=L(()=>{ns1();os1();$j()});var o3="thread-gate",AU="decopilot-hosted-harness",TU="decopilot-hosted-harness-sandboxed",qJ="automations",wO="background-tools",Xj="task-board-github-reads";var as1="11";function ss1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:as1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var es1=()=>{};import T04 from"pg";async function Ze1($,Z){let{databaseUrl:X,lockTimeoutMs:Q=R04}=$,Y=$.log??((W)=>console.log(W)),G=new T04.Client({connectionString:X});await G.connect();let J=Date.now(),K=!1;try{while(!K){if(K=(await G.query("SELECT pg_try_advisory_lock($1) AS locked",[$e1.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-J>=Q)throw Error(`Timed out after ${Q}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await H$(I04)}let W=Date.now()-J;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await G.query("SELECT pg_advisory_unlock($1)",[$e1.toString()])}catch{}await G.end().catch(()=>{})}}var $e1=8314027461559302n,R04=600000,I04=500;var Xe1=L(()=>{t8()});function q04(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function un0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function Qe1(){let $=q04();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:un0($,"--cpu-prof-dir")??process.cwd(),name:un0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(un0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function Ye1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=oE();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),y70=setInterval(()=>void Z().catch(()=>{}),$),y70.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(y70)clearInterval(y70)}}var y70;var Ge1=()=>{};import*as M04 from"bun:jsc";function Je1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{V04()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=k04()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var V04,k04;var Ke1=L(()=>{({startSamplingProfiler:V04,samplingProfilerStackTraces:k04}=M04)});function We1(){Qe1();let $=[Ye1(),Dt1(),Je1()];return()=>{for(let Z of $)Z()}}var He1=L(()=>{Ym0();Ge1();Ke1()});var Qj=v((Fe1)=>{Object.defineProperty(Fe1,"__esModule",{value:!0});Fe1.RepublishHeaders=Fe1.DirectMsgHeaders=Fe1.JsHeaders=Fe1.AdvisoryKind=void 0;Fe1.isOrderedPushConsumerOptions=S04;Fe1.isPullConsumer=C04;Fe1.isPushConsumer=_04;Fe1.isBoundPushConsumerOptions=v04;function S04($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function C04($){return $.isPullConsumer()}function _04($){return $.isPushConsumer()}function v04($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Fe1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};Fe1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};Fe1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Fe1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var NG=v((Ne1)=>{Object.defineProperty(Ne1,"__esModule",{value:!0});Ne1.TD=Ne1.TE=Ne1.Empty=void 0;Ne1.encode=l04;Ne1.decode=m04;Ne1.Empty=new Uint8Array(0);Ne1.TE=new TextEncoder;Ne1.TD=new TextDecoder;function c04(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function l04(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Ne1.TE.encode($[X]));if(Z.length===0)return Ne1.Empty;if(Z.length===1)return Z[0];return c04(...Z)}function m04($){if(!$||$.length===0)return"";return Ne1.TD.decode($)}});var BG=v((Le1)=>{Object.defineProperty(Le1,"__esModule",{value:!0});Le1.errors=Le1.PermissionViolationError=Le1.NoRespondersError=Le1.TimeoutError=Le1.RequestError=Le1.ProtocolError=Le1.ConnectionError=Le1.DrainingConnectionError=Le1.ClosedConnectionError=Le1.AuthorizationError=Le1.UserAuthenticationExpiredError=Le1.InvalidOperationError=Le1.InvalidArgumentError=Le1.InvalidSubjectError=void 0;class ln0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}Le1.InvalidSubjectError=ln0;class g70 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new g70(`${$} ${Z}`,X)}}Le1.InvalidArgumentError=g70;class mn0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}Le1.InvalidOperationError=mn0;class h70 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new h70($);return null}}Le1.UserAuthenticationExpiredError=h70;class u70 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new u70($);return null}}Le1.AuthorizationError=u70;class dn0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}Le1.ClosedConnectionError=dn0;class in0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}Le1.DrainingConnectionError=in0;class pn0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}Le1.ConnectionError=pn0;class nn0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}Le1.ProtocolError=nn0;class tn0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof c70}}Le1.RequestError=tn0;class on0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}Le1.TimeoutError=on0;class c70 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}Le1.NoRespondersError=c70;class l70 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new l70($,X,Q,Y)}}Le1.PermissionViolationError=l70;Le1.errors={AuthorizationError:u70,ClosedConnectionError:dn0,ConnectionError:pn0,DrainingConnectionError:in0,InvalidArgumentError:g70,InvalidOperationError:mn0,InvalidSubjectError:ln0,NoRespondersError:c70,PermissionViolationError:l70,ProtocolError:nn0,RequestError:tn0,TimeoutError:on0,UserAuthenticationExpiredError:h70}});var r3=v((ze1)=>{Object.defineProperty(ze1,"__esModule",{value:!0});ze1.SimpleMutex=ze1.Perf=void 0;ze1.extend=J14;ze1.render=K14;ze1.timeout=W14;ze1.delay=H14;ze1.deadline=F14;ze1.deferred=an0;ze1.debugDeferred=U14;ze1.shuffle=N14;ze1.collect=B14;ze1.jitter=je1;ze1.backoff=O14;ze1.nanos=L14;ze1.millis=D14;ze1.randomToken=j14;var G14=NG(),rn0=BG();function J14($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function K14($){return G14.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function W14($,Z=!0){let X=Z?new rn0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new rn0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function H14($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function F14($,Z=1000){let X=an0(),Q=setTimeout(()=>{X.reject(new rn0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function an0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function U14(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function N14($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function B14($){let Z=[];for await(let X of $)Z.push(X);return Z}class we1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}ze1.Perf=we1;class Ee1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=an0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}ze1.SimpleMutex=Ee1;function je1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function O14($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return je1(X>Z?$[Z]:$[X])}}}function L14($){return $*1e6}function D14($){return Math.floor($/1e6)}var w14="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",RU=new Uint8Array(62);for(let $=0;$<62;$++)RU[$]=w14.charCodeAt($);var E14=218340105584896;function j14(){let $=Math.floor(Math.random()*E14),Z=$%62,X=RU[Z];$=($-Z)/62,Z=$%62;let Q=RU[Z];$=($-Z)/62,Z=$%62;let Y=RU[Z];$=($-Z)/62,Z=$%62;let G=RU[Z];$=($-Z)/62,Z=$%62;let J=RU[Z];$=($-Z)/62,Z=$%62;let K=RU[Z];$=($-Z)/62,Z=$%62;let W=RU[Z];$=($-Z)/62;let H=RU[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var Ve1=v((qe1)=>{Object.defineProperty(qe1,"__esModule",{value:!0});qe1.nuid=qe1.NuidImpl=void 0;var f14="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",EO=62,d70=12,Re1=10,Ae1=33,b14=333,Te1=d70+Re1,en0=new Uint8Array(EO);for(let $=0;$<EO;$++)en0[$]=f14.charCodeAt($);var m70=4294967296,Ie1=BigInt(EO)**BigInt(Re1),xp=Number(Ie1/(1n<<32n)),sn0=Number(Ie1%(1n<<32n));function y14($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function g14($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else y14($)}class $t0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(Te1),this.cbuf=new Uint8Array(d70),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(xp+1)),this.seqLo=Math.floor(Math.random()*m70);while($++<8&&this.seqHi===xp&&this.seqLo>=sn0);if(this.seqHi===xp&&this.seqLo>=sn0)this.seqLo=0;this.inc=Math.random()*(b14-Ae1)+Ae1|0}setPre(){g14(this.cbuf);for(let $=0;$<d70;$++)this.buf[$]=en0[this.cbuf[$]%EO]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=Te1-1;X>=d70;X--){let Q=Math.floor($/EO),G=($-Q*EO)*m70+Z,J=Math.floor(G/EO),K=G-J*EO;this.buf[X]=en0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=m70)this.seqLo-=m70,this.seqHi+=1;if(this.seqHi>xp||this.seqHi===xp&&this.seqLo>=sn0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}qe1.NuidImpl=$t0;qe1.nuid=new $t0});var _e1=v((Se1)=>{Object.defineProperty(Se1,"__esModule",{value:!0});Se1.nuid=Se1.Nuid=void 0;var ke1=Ve1();Se1.Nuid=ke1.NuidImpl;Se1.nuid=ke1.nuid});var p70=v((i70)=>{Object.defineProperty(i70,"__esModule",{value:!0});i70.nuid=i70.Nuid=void 0;var ve1=_e1();Object.defineProperty(i70,"Nuid",{enumerable:!0,get:function(){return ve1.Nuid}});Object.defineProperty(i70,"nuid",{enumerable:!0,get:function(){return ve1.nuid}})});var jO=v((xe1)=>{Object.defineProperty(xe1,"__esModule",{value:!0});xe1.DEFAULT_HOST=xe1.DEFAULT_PORT=xe1.Match=void 0;xe1.syncIterator=d14;xe1.createInbox=i14;var l14=p70(),m14=BG();xe1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function d14($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function i14($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw m14.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${l14.nuid.next()}`}xe1.DEFAULT_PORT=4222;xe1.DEFAULT_HOST="127.0.0.1"});var fp=v((ge1)=>{Object.defineProperty(ge1,"__esModule",{value:!0});ge1.DataBuffer=void 0;var be1=NG();class ye1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return be1.TE.encode($)}static toAscii($){return be1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}ge1.DataBuffer=ye1});var Yj=v((ce1)=>{Object.defineProperty(ce1,"__esModule",{value:!0});ce1.LF=ce1.CR=ce1.CRLF=ce1.CR_LF_LEN=ce1.CR_LF=void 0;ce1.setTransportFactory=e14;ce1.defaultPort=$$4;ce1.getUrlParseFn=Z$4;ce1.newTransport=X$4;ce1.getResolveFn=Q$4;ce1.protoLen=ue1;ce1.extractProtocolMessage=Y$4;var r14=NG(),a14=jO(),s14=fp(),OG;function e14($){OG=$}function $$4(){return OG!==void 0&&OG.defaultPort!==void 0?OG.defaultPort:a14.DEFAULT_PORT}function Z$4(){return OG!==void 0&&OG.urlParseFn?OG.urlParseFn:void 0}function X$4(){if(!OG||typeof OG.factory!=="function")throw Error("transport fn is not set");return OG.factory()}function Q$4(){return OG!==void 0&&OG.dnsResolveFn?OG.dnsResolveFn:void 0}ce1.CR_LF=`\r
|
|
1548
|
+
`);Q=G.pop()??"";for(let J of G){let K=Bun.stripANSI(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;LO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}}catch{}if(Q.trim()){let G=Bun.stripANSI(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)LO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function U04($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await _p(Number(Y)+1):await _p(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await v70({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let D of W)eE({name:D.name,status:"ready",port:D.port});Sp();let F=F04(import.meta.dir,"..","..","..","..",".."),U=X===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)_n0(N.stdout),_n0(N.stderr);Cp(G),eE({name:"Vite",status:"ready",port:Number(Y)}),eE({name:"API",status:"ready",port:Number(K.port)});let O=async(D)=>{if(N.kill(D),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (yZ0(),bZ0));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var xn0=L(()=>{Mn0();$j();Cn0()});var b70;var fn0=L(()=>{b70={name:"decocms",version:"4.324.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as B04,Text as cs1}from"ink";import{jsx as O04,jsxs as ls1}from"react/jsx-runtime";function ms1({version:$}){return ls1(B04,{flexDirection:"column",marginTop:1,children:[J70.map((Z,X)=>O04(cs1,{color:K70[X],children:Z},X)),ls1(cs1,{dimColor:!0,children:[" v",$]})]})}var ds1=L(()=>{wp()});import{Box as Zj,Text as DO}from"ink";import{Spinner as L04}from"@inkjs/ui";import{jsx as UG,jsxs as gy}from"react/jsx-runtime";function is1({status:$}){if($==="pending")return UG(L04,{label:""});return UG(DO,{color:"green",children:"\u2713"})}function D04($){return`${$.name}: ${$.port||"...."}`}function ps1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return gy(Zj,{flexDirection:"column",paddingBottom:1,children:[UG(ms1,{version:b70.version}),UG(Zj,{marginBottom:1,children:UG(DO,{dimColor:!0,children:"\u2500".repeat(80)})}),UG(Zj,{children:gy(DO,{dimColor:!0,children:["Home: ",X]})}),gy(Zj,{gap:2,children:[$.map((Y)=>gy(Zj,{gap:1,children:[UG(DO,{children:D04(Y)}),UG(is1,{status:Y.status})]},Y.name)),gy(Zj,{gap:1,children:[UG(DO,{children:"Migrations"}),UG(is1,{status:Z})]})]}),UG(Zj,{children:Q?gy(DO,{children:["Open in browser: ",UG(DO,{color:"cyan",children:Q})]}):UG(DO,{dimColor:!0,children:"Starting..."})})]})}var ns1=L(()=>{fn0();ds1()});import{Box as w04,Text as vp}from"ink";import{jsx as bn0,jsxs as yn0}from"react/jsx-runtime";function E04($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function ts1({logs:$}){return bn0(w04,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return bn0(vp,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return yn0(vp,{children:[yn0(vp,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),bn0(vp,{color:E04(Z.status),children:Z.status}),yn0(vp,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var os1=()=>{};var gn0={};s(gn0,{App:()=>P04});import{Box as j04}from"ink";import{useSyncExternalStore as z04}from"react";import{jsx as rs1,jsxs as A04}from"react/jsx-runtime";function P04({home:$}){let Z=z04(Sn0,kn0);return A04(j04,{flexDirection:"column",children:[rs1(ps1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),rs1(ts1,{logs:Z.logs})]})}var hn0=L(()=>{ns1();os1();$j()});var o3="thread-gate",AU="decopilot-hosted-harness",TU="decopilot-hosted-harness-sandboxed",qJ="automations",wO="background-tools",Xj="task-board-github-reads";var as1="11";function ss1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:as1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var es1=()=>{};import T04 from"pg";async function Ze1($,Z){let{databaseUrl:X,lockTimeoutMs:Q=R04}=$,Y=$.log??((W)=>console.log(W)),G=new T04.Client({connectionString:X});await G.connect();let J=Date.now(),K=!1;try{while(!K){if(K=(await G.query("SELECT pg_try_advisory_lock($1) AS locked",[$e1.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-J>=Q)throw Error(`Timed out after ${Q}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await H$(I04)}let W=Date.now()-J;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await G.query("SELECT pg_advisory_unlock($1)",[$e1.toString()])}catch{}await G.end().catch(()=>{})}}var $e1=8314027461559302n,R04=600000,I04=500;var Xe1=L(()=>{t8()});function q04(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function un0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function Qe1(){let $=q04();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:un0($,"--cpu-prof-dir")??process.cwd(),name:un0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(un0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function Ye1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=oE();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),y70=setInterval(()=>void Z().catch(()=>{}),$),y70.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(y70)clearInterval(y70)}}var y70;var Ge1=()=>{};import*as M04 from"bun:jsc";function Je1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{V04()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=k04()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var V04,k04;var Ke1=L(()=>{({startSamplingProfiler:V04,samplingProfilerStackTraces:k04}=M04)});function We1(){Qe1();let $=[Ye1(),Dt1(),Je1()];return()=>{for(let Z of $)Z()}}var He1=L(()=>{Ym0();Ge1();Ke1()});var Qj=v((Fe1)=>{Object.defineProperty(Fe1,"__esModule",{value:!0});Fe1.RepublishHeaders=Fe1.DirectMsgHeaders=Fe1.JsHeaders=Fe1.AdvisoryKind=void 0;Fe1.isOrderedPushConsumerOptions=S04;Fe1.isPullConsumer=C04;Fe1.isPushConsumer=_04;Fe1.isBoundPushConsumerOptions=v04;function S04($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function C04($){return $.isPullConsumer()}function _04($){return $.isPushConsumer()}function v04($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Fe1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};Fe1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};Fe1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Fe1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var NG=v((Ne1)=>{Object.defineProperty(Ne1,"__esModule",{value:!0});Ne1.TD=Ne1.TE=Ne1.Empty=void 0;Ne1.encode=l04;Ne1.decode=m04;Ne1.Empty=new Uint8Array(0);Ne1.TE=new TextEncoder;Ne1.TD=new TextDecoder;function c04(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function l04(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Ne1.TE.encode($[X]));if(Z.length===0)return Ne1.Empty;if(Z.length===1)return Z[0];return c04(...Z)}function m04($){if(!$||$.length===0)return"";return Ne1.TD.decode($)}});var BG=v((Le1)=>{Object.defineProperty(Le1,"__esModule",{value:!0});Le1.errors=Le1.PermissionViolationError=Le1.NoRespondersError=Le1.TimeoutError=Le1.RequestError=Le1.ProtocolError=Le1.ConnectionError=Le1.DrainingConnectionError=Le1.ClosedConnectionError=Le1.AuthorizationError=Le1.UserAuthenticationExpiredError=Le1.InvalidOperationError=Le1.InvalidArgumentError=Le1.InvalidSubjectError=void 0;class ln0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}Le1.InvalidSubjectError=ln0;class g70 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new g70(`${$} ${Z}`,X)}}Le1.InvalidArgumentError=g70;class mn0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}Le1.InvalidOperationError=mn0;class h70 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new h70($);return null}}Le1.UserAuthenticationExpiredError=h70;class u70 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new u70($);return null}}Le1.AuthorizationError=u70;class dn0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}Le1.ClosedConnectionError=dn0;class in0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}Le1.DrainingConnectionError=in0;class pn0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}Le1.ConnectionError=pn0;class nn0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}Le1.ProtocolError=nn0;class tn0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof c70}}Le1.RequestError=tn0;class on0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}Le1.TimeoutError=on0;class c70 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}Le1.NoRespondersError=c70;class l70 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new l70($,X,Q,Y)}}Le1.PermissionViolationError=l70;Le1.errors={AuthorizationError:u70,ClosedConnectionError:dn0,ConnectionError:pn0,DrainingConnectionError:in0,InvalidArgumentError:g70,InvalidOperationError:mn0,InvalidSubjectError:ln0,NoRespondersError:c70,PermissionViolationError:l70,ProtocolError:nn0,RequestError:tn0,TimeoutError:on0,UserAuthenticationExpiredError:h70}});var r3=v((ze1)=>{Object.defineProperty(ze1,"__esModule",{value:!0});ze1.SimpleMutex=ze1.Perf=void 0;ze1.extend=J14;ze1.render=K14;ze1.timeout=W14;ze1.delay=H14;ze1.deadline=F14;ze1.deferred=an0;ze1.debugDeferred=U14;ze1.shuffle=N14;ze1.collect=B14;ze1.jitter=je1;ze1.backoff=O14;ze1.nanos=L14;ze1.millis=D14;ze1.randomToken=j14;var G14=NG(),rn0=BG();function J14($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function K14($){return G14.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function W14($,Z=!0){let X=Z?new rn0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new rn0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function H14($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function F14($,Z=1000){let X=an0(),Q=setTimeout(()=>{X.reject(new rn0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function an0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function U14(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function N14($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function B14($){let Z=[];for await(let X of $)Z.push(X);return Z}class we1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}ze1.Perf=we1;class Ee1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=an0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}ze1.SimpleMutex=Ee1;function je1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function O14($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return je1(X>Z?$[Z]:$[X])}}}function L14($){return $*1e6}function D14($){return Math.floor($/1e6)}var w14="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",RU=new Uint8Array(62);for(let $=0;$<62;$++)RU[$]=w14.charCodeAt($);var E14=218340105584896;function j14(){let $=Math.floor(Math.random()*E14),Z=$%62,X=RU[Z];$=($-Z)/62,Z=$%62;let Q=RU[Z];$=($-Z)/62,Z=$%62;let Y=RU[Z];$=($-Z)/62,Z=$%62;let G=RU[Z];$=($-Z)/62,Z=$%62;let J=RU[Z];$=($-Z)/62,Z=$%62;let K=RU[Z];$=($-Z)/62,Z=$%62;let W=RU[Z];$=($-Z)/62;let H=RU[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var Ve1=v((qe1)=>{Object.defineProperty(qe1,"__esModule",{value:!0});qe1.nuid=qe1.NuidImpl=void 0;var f14="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",EO=62,d70=12,Re1=10,Ae1=33,b14=333,Te1=d70+Re1,en0=new Uint8Array(EO);for(let $=0;$<EO;$++)en0[$]=f14.charCodeAt($);var m70=4294967296,Ie1=BigInt(EO)**BigInt(Re1),xp=Number(Ie1/(1n<<32n)),sn0=Number(Ie1%(1n<<32n));function y14($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function g14($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else y14($)}class $t0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(Te1),this.cbuf=new Uint8Array(d70),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(xp+1)),this.seqLo=Math.floor(Math.random()*m70);while($++<8&&this.seqHi===xp&&this.seqLo>=sn0);if(this.seqHi===xp&&this.seqLo>=sn0)this.seqLo=0;this.inc=Math.random()*(b14-Ae1)+Ae1|0}setPre(){g14(this.cbuf);for(let $=0;$<d70;$++)this.buf[$]=en0[this.cbuf[$]%EO]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=Te1-1;X>=d70;X--){let Q=Math.floor($/EO),G=($-Q*EO)*m70+Z,J=Math.floor(G/EO),K=G-J*EO;this.buf[X]=en0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=m70)this.seqLo-=m70,this.seqHi+=1;if(this.seqHi>xp||this.seqHi===xp&&this.seqLo>=sn0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}qe1.NuidImpl=$t0;qe1.nuid=new $t0});var _e1=v((Se1)=>{Object.defineProperty(Se1,"__esModule",{value:!0});Se1.nuid=Se1.Nuid=void 0;var ke1=Ve1();Se1.Nuid=ke1.NuidImpl;Se1.nuid=ke1.nuid});var p70=v((i70)=>{Object.defineProperty(i70,"__esModule",{value:!0});i70.nuid=i70.Nuid=void 0;var ve1=_e1();Object.defineProperty(i70,"Nuid",{enumerable:!0,get:function(){return ve1.Nuid}});Object.defineProperty(i70,"nuid",{enumerable:!0,get:function(){return ve1.nuid}})});var jO=v((xe1)=>{Object.defineProperty(xe1,"__esModule",{value:!0});xe1.DEFAULT_HOST=xe1.DEFAULT_PORT=xe1.Match=void 0;xe1.syncIterator=d14;xe1.createInbox=i14;var l14=p70(),m14=BG();xe1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function d14($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function i14($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw m14.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${l14.nuid.next()}`}xe1.DEFAULT_PORT=4222;xe1.DEFAULT_HOST="127.0.0.1"});var fp=v((ge1)=>{Object.defineProperty(ge1,"__esModule",{value:!0});ge1.DataBuffer=void 0;var be1=NG();class ye1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return be1.TE.encode($)}static toAscii($){return be1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}ge1.DataBuffer=ye1});var Yj=v((ce1)=>{Object.defineProperty(ce1,"__esModule",{value:!0});ce1.LF=ce1.CR=ce1.CRLF=ce1.CR_LF_LEN=ce1.CR_LF=void 0;ce1.setTransportFactory=e14;ce1.defaultPort=$$4;ce1.getUrlParseFn=Z$4;ce1.newTransport=X$4;ce1.getResolveFn=Q$4;ce1.protoLen=ue1;ce1.extractProtocolMessage=Y$4;var r14=NG(),a14=jO(),s14=fp(),OG;function e14($){OG=$}function $$4(){return OG!==void 0&&OG.defaultPort!==void 0?OG.defaultPort:a14.DEFAULT_PORT}function Z$4(){return OG!==void 0&&OG.urlParseFn?OG.urlParseFn:void 0}function X$4(){if(!OG||typeof OG.factory!=="function")throw Error("transport fn is not set");return OG.factory()}function Q$4(){return OG!==void 0&&OG.dnsResolveFn?OG.dnsResolveFn:void 0}ce1.CR_LF=`\r
|
|
1549
1549
|
`;ce1.CR_LF_LEN=ce1.CR_LF.length;ce1.CRLF=s14.DataBuffer.fromAscii(ce1.CR_LF);ce1.CR=new Uint8Array(ce1.CRLF)[0];ce1.LF=new Uint8Array(ce1.CRLF)[1];function ue1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===ce1.CR&&$[X]===ce1.LF)return X+1}return 0}function Y$4($){let Z=ue1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return r14.TD.decode(Q)}return""}});var Gt0=v((oe1)=>{Object.defineProperty(oe1,"__esModule",{value:!0});oe1.ipV4=pe1;oe1.isIP=L$4;oe1.parseIP=ne1;var bp=4,Gj=16,n70=48,ie1=57,me1=65,B$4=70,de1=97,O$4=102,Yt0=16777215;function pe1($,Z,X,Q){let Y=new Uint8Array(Gj);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((J,K)=>{Y[K]=J}),Y[12]=$,Y[13]=Z,Y[14]=X,Y[15]=Q,Y}function L$4($){return ne1($)!==void 0}function ne1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return te1($);case":":return D$4($)}return}function te1($){let Z=new Uint8Array(bp);for(let X=0;X<bp;X++){if($.length===0)return;if(X>0){if($[0]!==".")return;$=$.substring(1)}let{n:Q,c:Y,ok:G}=w$4($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return pe1(Z[0],Z[1],Z[2],Z[3])}function D$4($){let Z=new Uint8Array(Gj),X=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(X=0,$=$.substring(2),$.length===0)return Z}let Q=0;while(Q<Gj){let{n:Y,c:G,ok:J}=E$4($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=Gj-bp)return;if(Q+bp>Gj)return;let K=te1($);if(K===void 0)return;Z[Q]=K[12],Z[Q+1]=K[13],Z[Q+2]=K[14],Z[Q+3]=K[15],$="",Q+=bp;break}if(Z[Q]=Y>>8,Z[Q+1]=Y,Q+=2,$=$.substring(G),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(X>=0)return;if(X=Q,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(Q<Gj){if(X<0)return;let Y=Gj-Q;for(let G=Q-1;G>=X;G--)Z[G+Y]=Z[G];for(let G=X+Y-1;G>=X;G--)Z[G]=0}else if(X>=0)return;return Z}function w$4($){let Z=0,X=0;for(Z=0;Z<$.length&&n70<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=ie1;Z++)if(X=X*10+($.charCodeAt(Z)-n70),X>=Yt0)return{n:Yt0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:X,c:Z,ok:!0}}function E$4($){let Z=0,X=0;for(X=0;X<$.length;X++){if(n70<=$.charCodeAt(X)&&$.charCodeAt(X)<=ie1)Z*=16,Z+=$.charCodeAt(X)-n70;else if(de1<=$.charCodeAt(X)&&$.charCodeAt(X)<=O$4)Z*=16,Z+=$.charCodeAt(X)-de1+10;else if(me1<=$.charCodeAt(X)&&$.charCodeAt(X)<=B$4)Z*=16,Z+=$.charCodeAt(X)-me1+10;else break;if(Z>=Yt0)return{n:0,c:X,ok:!1}}if(X===0)return{n:0,c:X,ok:!1};return{n:Z,c:X,ok:!0}}});var Ut0=v((ae1)=>{Object.defineProperty(ae1,"__esModule",{value:!0});ae1.Servers=ae1.ServerImpl=void 0;ae1.isIPV4OrHostname=re1;ae1.hostPort=Ft0;var Jt0=Yj(),Kt0=r3(),Wt0=Gt0(),A$4=jO(),T$4=BG();function re1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function Ht0($){return!re1($)}function R$4($){let X=$.toUpperCase().indexOf("::FFFF:");if(X!==-1&&$.indexOf(".")!==-1){let Q=$.substring(X+7);return Q=Q.replace("[",""),Q.replace("]","")}return $}function Ft0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=R$4($),Ht0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=Ht0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):A$4.DEFAULT_PORT,Y=new URL(`${X===80?"https":"http"}://${$}`);Y.port=`${X}`;let G=Y.hostname;if(G.charAt(0)==="[")G=G.substring(1,G.length-1);return{listen:Y.host,hostname:G,port:X}}class hy{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let X=Ft0($);this.listen=X.listen,this.hostname=X.hostname,this.port=X.port,this.didConnect=!1,this.reconnects=0,this.lastConnect=0,this.gossiped=Z}toString(){return this.listen}async resolve($){if(!$.fn||$.resolve===!1)return[this];let Z=[];if((0,Wt0.isIP)(this.hostname))return[this];else{let X=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${X.join(",")}`);for(let Q of X){let Y=this.port===80?"https":"http",G=new URL(`${Y}://${Ht0(Q)?"["+Q+"]":Q}`);G.port=`${this.port}`;let J=new hy(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,Kt0.shuffle)(Z);return this.resolves=Z,Z}}ae1.ServerImpl=hy;class t70{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw T$4.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,Jt0.getUrlParseFn)(),X=new Map;for(let Y of this.servers)X.set(Y.listen,Y);let Q=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:G}=Ft0(Y),J=X.get(G);if(J)J.gossiped=!1,Q.push(J);else Q.push(new hy(Y))}if(this.randomize)(0,Kt0.shuffle)(Q);if(this.servers=Q,this.currentServer===void 0||!Q.includes(this.currentServer))this.currentServer=Q[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,Wt0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let X=(0,Jt0.getUrlParseFn)();$=X?X($):$;let Q=new hy($,Z);if((0,Wt0.isIP)(Q.hostname))Q.tlsName=this.tlsName;this.servers.push(Q)}selectServer(){if(this.firstSelect)return this.firstSelect=!1,this.currentServer;let $=this.servers.shift();if($)this.servers.push($),this.currentServer=$;return $}removeCurrentServer(){this.removeServer(this.currentServer)}removeServer($){if($){let Z=this.servers.indexOf($);this.servers.splice(Z,1)}}snapshot(){return t70.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return t70.freezeAll([$,...this.servers.slice(0,Z),...this.servers.slice(Z+1)])}static freezeAll($){return $.map((Z)=>Object.freeze({hostname:Z.hostname,port:Z.port,listen:Z.listen,src:Z.src,tlsName:Z.tlsName,reconnects:Z.reconnects,lastConnect:Z.lastConnect,gossiped:Z.gossiped,didConnect:Z.didConnect}))}find($){return this.servers.find((Z)=>Z.listen===$.listen)}setCurrent($){this.currentServer=$}length(){return this.servers.length}next(){return this.servers.length?this.servers[0]:void 0}getServers(){return this.servers}update($,Z){let X=[],Q=[],Y=(0,Jt0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new hy(K,!0);G.set(K,W)});let J=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&G.get(H)===void 0)J.push(W);G.delete(H)}),J.reverse(),J.forEach((K)=>{let W=this.servers.splice(K,1);Q=Q.concat(W[0].listen)}),G.forEach((K,W)=>{this.servers.push(K),X.push(W)}),this.randomize&&X.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,Kt0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:X,deleted:Q}}}ae1.Servers=t70});var o70=v((Z0$)=>{Object.defineProperty(Z0$,"__esModule",{value:!0});Z0$.QueuedIteratorImpl=void 0;var Nt0=r3(),ee1=BG();class $0${inflight;processed;received;noIterator;iterClosed;done;signal;yields;filtered;pendingFiltered;ctx;_data;err;time;profile;yielding;didBreak;constructor(){this.inflight=0,this.filtered=0,this.pendingFiltered=0,this.processed=0,this.received=0,this.noIterator=!1,this.done=!1,this.signal=(0,Nt0.deferred)(),this.yields=[],this.iterClosed=(0,Nt0.deferred)(),this.time=0,this.yielding=!1,this.didBreak=!1,this.profile=!1}[Symbol.asyncIterator](){return this.iterate()}push($){if(this.done)return;if(this.didBreak){if(typeof $==="function"){let Z=$;try{Z()}catch(X){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new ee1.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new ee1.InvalidOperationError("iterator is already yielding");this.yielding=!0;try{while(!0){if(this.yields.length===0)await this.signal;if(this.err)throw this.err;let $=this.yields;this.inflight=$.length,this.yields=[];for(let Z=0;Z<$.length;Z++){if(typeof $[Z]==="function"){this.pendingFiltered--;let Q=$[Z];try{Q()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let X=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-X:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,Nt0.deferred)()}}finally{this.didBreak=!0,this.stop()}}stop($){if(this.done)return;this.err=$,this.done=!0,this.signal.resolve(),this.iterClosed.resolve($)}getProcessed(){return this.noIterator?this.received:this.processed}getPending(){return this.yields.length+this.inflight-this.pendingFiltered}getReceived(){return this.received-this.filtered}}Z0$.QueuedIteratorImpl=$0$});var Bt0=v((G0$)=>{Object.defineProperty(G0$,"__esModule",{value:!0});G0$.MuxSubscription=void 0;var V$4=jO(),Q0$=BG();class Y0${baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,V$4.createInbox)($)}.`,this.baseInbox}add($){if(!isNaN($.received))$.received=0;this.reqs.set($.token,$)}get($){return this.reqs.get($)}cancel($){this.reqs.delete($.token)}getToken($){let Z=$.subject||"";if(Z.indexOf(this.baseInbox)===0)return Z.substring(this.baseInbox.length);return null}all(){return Array.from(this.reqs.values())}handleError($,Z){if($)return this.all().forEach((X)=>{X.resolver(Z,{})}),!0;if(Z.operation==="publish"){let X=this.all().find((Q)=>{return Q.requestSubject===Z.subject});if(X)return X.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let X=this.getToken(Z);if(X){let Q=this.get(X);if(Q){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new Q0$.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new Q0$.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}G0$.MuxSubscription=Y0$});var Ot0=v((W0$)=>{Object.defineProperty(W0$,"__esModule",{value:!0});W0$.Heartbeat=void 0;var k$4=r3();class K0${ph;interval;maxOut;timer;pendings;constructor($,Z,X){this.ph=$,this.interval=Z,this.maxOut=X,this.pendings=[]}start(){this.cancel(),this._schedule()}cancel($){if(this.timer)clearTimeout(this.timer),this.timer=void 0;if(this._reset(),$)this.ph.disconnect()}_schedule(){this.timer=setTimeout(()=>{if(this.ph.dispatchStatus({type:"ping",pendingPings:this.pendings.length+1}),this.pendings.length===this.maxOut){this.cancel(!0);return}let $=(0,k$4.deferred)();this.ph.flush($).then(()=>{this._reset()}).catch(()=>{this.cancel()}),this.pendings.push($),this._schedule()},this.interval)}_reset(){this.pendings=this.pendings.filter(($)=>{return $.resolve(),!1})}}W0$.Heartbeat=K0$});var wt0=v((B0$)=>{Object.defineProperty(B0$,"__esModule",{value:!0});B0$.DenoBuffer=B0$.MAX_SIZE=B0$.AssertionError=void 0;B0$.assert=U0$;B0$.concat=N0$;B0$.append=C$4;B0$.readAll=_$4;B0$.writeAll=v$4;var S$4=NG();class Lt0 extends Error{constructor($){super($);this.name="AssertionError"}}B0$.AssertionError=Lt0;function U0$($,Z="Assertion failed."){if(!$)throw new Lt0(Z)}var F0$=32768;B0$.MAX_SIZE=4294967294;function r70($,Z,X=0){let Q=Z.byteLength-X;if($.byteLength>Q)$=$.subarray(0,Q);return Z.set($,X),$.byteLength}function N0$($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let X=new Uint8Array($.length+Z.length);return X.set($,0),X.set(Z,$.length),X}function C$4($,Z){return N0$($,Uint8Array.of(Z))}class Dt0{_buf;_off;constructor($){if(this._off=0,$==null){this._buf=new Uint8Array(0);return}this._buf=new Uint8Array($)}bytes($={copy:!0}){if($.copy===!1)return this._buf.subarray(this._off);return this._buf.slice(this._off)}empty(){return this._buf.byteLength<=this._off}get length(){return this._buf.byteLength-this._off}get capacity(){return this._buf.buffer.byteLength}truncate($){if($===0){this.reset();return}if($<0||$>this.length)throw Error("bytes.Buffer: truncation out of range");this._reslice(this._off+$)}reset(){this._reslice(0),this._off=0}_tryGrowByReslice($){let Z=this._buf.byteLength;if($<=this.capacity-Z)return this._reslice(Z+$),Z;return-1}_reslice($){U0$($<=this._buf.buffer.byteLength),this._buf=new Uint8Array(this._buf.buffer,0,$)}readByte(){let $=new Uint8Array(1);if(this.read($))return $[0];return null}read($){if(this.empty()){if(this.reset(),$.byteLength===0)return 0;return null}let Z=r70(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(S$4.TE.encode($))}write($){let Z=this._grow($.byteLength);return r70($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let X=this._tryGrowByReslice($);if(X>=0)return X;let Q=this.capacity;if($<=Math.floor(Q/2)-Z)r70(this._buf.subarray(this._off),this._buf);else if(Q+$>B0$.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,B0$.MAX_SIZE));r70(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,B0$.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,X=new Uint8Array(F0$);while(!0){let Q=this.capacity-this.length<F0$,Y=Q?X:new Uint8Array(this._buf.buffer,this.length),G=$.read(Y);if(G===null)return Z;if(Q)this.write(Y.subarray(0,G));else this._reslice(this.length+G);Z+=G}}}B0$.DenoBuffer=Dt0;function _$4($){let Z=new Dt0;return Z.readFrom($),Z.bytes()}function v$4($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var zt0=v((E0$)=>{Object.defineProperty(E0$,"__esModule",{value:!0});E0$.cc=E0$.State=E0$.Parser=E0$.Kind=void 0;E0$.describe=u$4;var Et0=wt0(),jt0=NG();E0$.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function u$4($){let Z,X="";switch($.kind){case E0$.Kind.MSG:Z="MSG";break;case E0$.Kind.OK:Z="OK";break;case E0$.Kind.ERR:Z="ERR",X=jt0.TD.decode($.data);break;case E0$.Kind.PING:Z="PING";break;case E0$.Kind.PONG:Z="PONG";break;case E0$.Kind.INFO:Z="INFO",X=jt0.TD.decode($.data)}return`${Z}: ${X}`}function L0$(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var D0$=48,c$4=57,uy=67108864;class w0${dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=E0$.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let X=$[Z];switch(this.state){case E0$.State.OP_START:switch(X){case E0$.cc.M:case E0$.cc.m:this.state=E0$.State.OP_M,this.hdr=-1,this.ma=L0$();break;case E0$.cc.H:case E0$.cc.h:this.state=E0$.State.OP_H,this.hdr=0,this.ma=L0$();break;case E0$.cc.P:case E0$.cc.p:this.state=E0$.State.OP_P;break;case E0$.cc.PLUS:this.state=E0$.State.OP_PLUS;break;case E0$.cc.MINUS:this.state=E0$.State.OP_MINUS;break;case E0$.cc.I:case E0$.cc.i:this.state=E0$.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_H:switch(X){case E0$.cc.M:case E0$.cc.m:this.state=E0$.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_M:switch(X){case E0$.cc.S:case E0$.cc.s:this.state=E0$.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_MS:switch(X){case E0$.cc.G:case E0$.cc.g:this.state=E0$.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_MSG:switch(X){case E0$.cc.SPACE:case E0$.cc.TAB:this.state=E0$.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_MSG_SPC:switch(X){case E0$.cc.SPACE:case E0$.cc.TAB:continue;default:this.state=E0$.State.MSG_ARG,this.as=Z}break;case E0$.State.MSG_ARG:switch(X){case E0$.cc.CR:this.drop=1;break;case E0$.cc.NL:{let Q=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(Q),this.drop=0,this.as=Z+1,this.state=E0$.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case E0$.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:E0$.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=E0$.State.MSG_END}else{let Q=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<Q)Q=Y;if(Q>0)this.msgBuf.write($.subarray(Z,Z+Q)),Z=Z+Q-1;else this.msgBuf.writeByte(X)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:E0$.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=E0$.State.MSG_END;break;case E0$.State.MSG_END:switch(X){case E0$.cc.NL:this.drop=0,this.as=Z+1,this.state=E0$.State.OP_START;break;default:continue}break;case E0$.State.OP_PLUS:switch(X){case E0$.cc.O:case E0$.cc.o:this.state=E0$.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_PLUS_O:switch(X){case E0$.cc.K:case E0$.cc.k:this.state=E0$.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_PLUS_OK:switch(X){case E0$.cc.NL:this.dispatcher.push({kind:E0$.Kind.OK}),this.drop=0,this.state=E0$.State.OP_START;break}break;case E0$.State.OP_MINUS:switch(X){case E0$.cc.E:case E0$.cc.e:this.state=E0$.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_MINUS_E:switch(X){case E0$.cc.R:case E0$.cc.r:this.state=E0$.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_MINUS_ER:switch(X){case E0$.cc.R:case E0$.cc.r:this.state=E0$.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_MINUS_ERR:switch(X){case E0$.cc.SPACE:case E0$.cc.TAB:this.state=E0$.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_MINUS_ERR_SPC:switch(X){case E0$.cc.SPACE:case E0$.cc.TAB:continue;default:this.state=E0$.State.MINUS_ERR_ARG,this.as=Z}break;case E0$.State.MINUS_ERR_ARG:switch(X){case E0$.cc.CR:this.drop=1;break;case E0$.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:E0$.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=E0$.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case E0$.State.OP_P:switch(X){case E0$.cc.I:case E0$.cc.i:this.state=E0$.State.OP_PI;break;case E0$.cc.O:case E0$.cc.o:this.state=E0$.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_PO:switch(X){case E0$.cc.N:case E0$.cc.n:this.state=E0$.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_PON:switch(X){case E0$.cc.G:case E0$.cc.g:this.state=E0$.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_PONG:switch(X){case E0$.cc.NL:this.dispatcher.push({kind:E0$.Kind.PONG}),this.drop=0,this.state=E0$.State.OP_START;break}break;case E0$.State.OP_PI:switch(X){case E0$.cc.N:case E0$.cc.n:this.state=E0$.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_PIN:switch(X){case E0$.cc.G:case E0$.cc.g:this.state=E0$.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_PING:switch(X){case E0$.cc.NL:this.dispatcher.push({kind:E0$.Kind.PING}),this.drop=0,this.state=E0$.State.OP_START;break}break;case E0$.State.OP_I:switch(X){case E0$.cc.N:case E0$.cc.n:this.state=E0$.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_IN:switch(X){case E0$.cc.F:case E0$.cc.f:this.state=E0$.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_INF:switch(X){case E0$.cc.O:case E0$.cc.o:this.state=E0$.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_INFO:switch(X){case E0$.cc.SPACE:case E0$.cc.TAB:this.state=E0$.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case E0$.State.OP_INFO_SPC:switch(X){case E0$.cc.SPACE:case E0$.cc.TAB:continue;default:this.state=E0$.State.INFO_ARG,this.as=Z}break;case E0$.State.INFO_ARG:switch(X){case E0$.cc.CR:this.drop=1;break;case E0$.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:E0$.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=E0$.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===E0$.State.MSG_ARG||this.state===E0$.State.MINUS_ERR_ARG||this.state===E0$.State.INFO_ARG)&&!this.argBuf)this.argBuf=new Et0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===E0$.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new Et0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,X=new Uint8Array($+Z);if(X.set(this.ma.subject),this.ma.reply)X.set(this.ma.reply,$);if(this.argBuf=new Et0.DenoBuffer(X),this.ma.subject=X.subarray(0,$),this.ma.reply)this.ma.reply=X.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case E0$.cc.SPACE:case E0$.cc.TAB:case E0$.cc.CR:case E0$.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 3:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.size=this.protoParseInt(Z[2],uy);break;case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.size=this.protoParseInt(Z[3],uy);break;default:throw this.fail($,"processMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processMsgArgs Bad or Missing Sid Error");if(this.ma.size<0)throw this.fail($,"processMsgArgs Bad or Missing Size Error")}fail($,Z=""){if(!Z)Z=`parse error [${this.state}]`;else Z=`${Z} [${this.state}]`;return Error(`${Z}: ${jt0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case E0$.cc.SPACE:case E0$.cc.TAB:case E0$.cc.CR:case E0$.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.hdr=this.protoParseInt(Z[2],uy),this.ma.size=this.protoParseInt(Z[3],uy);break;case 5:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.hdr=this.protoParseInt(Z[3],uy),this.ma.size=this.protoParseInt(Z[4],uy);break;default:throw this.fail($,"processHeaderMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Sid Error");if(this.ma.hdr<0||this.ma.hdr>this.ma.size)throw this.fail($,"processHeaderMsgArgs Bad or Missing Header Size Error");if(this.ma.size<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Size Error")}protoParseInt($,Z){if($.length===0||$.length>15)return-1;let X=0;for(let Q=0;Q<$.length;Q++){if($[Q]<D0$||$[Q]>c$4)return-1;X=X*10+($[Q]-D0$)}return Z!==void 0&&X>Z?-1:X}}E0$.Parser=w0$;E0$.State={OP_START:0,OP_PLUS:1,OP_PLUS_O:2,OP_PLUS_OK:3,OP_MINUS:4,OP_MINUS_E:5,OP_MINUS_ER:6,OP_MINUS_ERR:7,OP_MINUS_ERR_SPC:8,MINUS_ERR_ARG:9,OP_M:10,OP_MS:11,OP_MSG:12,OP_MSG_SPC:13,MSG_ARG:14,MSG_PAYLOAD:15,MSG_END:16,OP_H:17,OP_P:18,OP_PI:19,OP_PIN:20,OP_PING:21,OP_PO:22,OP_PON:23,OP_PONG:24,OP_I:25,OP_IN:26,OP_INF:27,OP_INFO:28,OP_INFO_SPC:29,INFO_ARG:30};E0$.cc={CR:13,E:69,e:101,F:70,f:102,G:71,g:103,H:72,h:104,I:73,i:105,K:75,k:107,M:77,m:109,MINUS:45,N:78,n:110,NL:10,O:79,o:111,P:80,p:112,PLUS:43,R:82,r:114,S:83,s:115,SPACE:32,TAB:9}});var e70=v((z0$)=>{Object.defineProperty(z0$,"__esModule",{value:!0});z0$.MsgHdrsImpl=void 0;z0$.canonicalMIMEHeaderKey=At0;z0$.headers=d$4;var j0$=NG(),a3=jO(),s70=BG();function At0($){let F=!0,U=Array($.length);for(let N=0;N<$.length;N++){let B=$.charCodeAt(N);if(B===58||B<33||B>126)throw s70.InvalidArgumentError.format("header",`'${$[N]}' is not a valid character in a header name`);if(F&&97<=B&&B<=122)B-=32;else if(!F&&65<=B&&B<=90)B+=32;U[N]=B,F=B==45}return String.fromCharCode(...U)}function d$4($=0,Z=""){if($===0&&Z!=="")throw s70.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw s70.InvalidArgumentError.format("description","is required");return new cy($,Z)}var Pt0="NATS/1.0";class cy{_code;headers;_description;constructor($=0,Z=""){this._code=$,this._description=Z,this.headers=new Map}[Symbol.iterator](){return this.headers.entries()}size(){return this.headers.size}equals($){if($&&this.headers.size===$.headers.size&&this._code===$._code){for(let[Z,X]of this.headers){let Q=$.values(Z);if(X.length!==Q.length)return!1;let Y=[...X].sort(),G=[...Q].sort();for(let J=0;J<Y.length;J++)if(Y[J]!==G[J])return!1}return!0}return!1}static decode($){let Z=new cy,Q=j0$.TD.decode($).split(`\r
|
|
1550
1550
|
`),Y=Q[0];if(Y!==Pt0){let G=Y.replace(Pt0,"").trim();if(G.length>0){if(Z._code=parseInt(G,10),isNaN(Z._code))Z._code=0;let J=Z._code.toString();G=G.replace(J,""),Z._description=G.trim()}}if(Q.length>=1)Q.slice(1).map((G)=>{if(G){let J=G.indexOf(":");if(J>-1){let K=G.slice(0,J),W=G.slice(J+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=Pt0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,X]of this.headers)for(let Q=0;Q<X.length;Q++)$=`${$}\r
|
|
1551
1551
|
${Z}: ${X[Q]}`;return`${$}\r
|
package/dist/server/server.js
CHANGED
|
@@ -2980,7 +2980,7 @@ Respond with ONLY a JSON object of this shape, and nothing else:
|
|
|
2980
2980
|
${G.join(`
|
|
2981
2981
|
`)}`:Y}function bN6($){let Z=new Set;for(let X of $)for(let Q of X.split(`
|
|
2982
2982
|
`)){let Y=Q.trim();if(/^Co-authored-by:\s/i.test(Y))Z.add(Y)}return[...Z]}var Gd$=200,IN6=12,MN6,VN6=300,d71=3;var m71=D(()=>{rD();ST0();MN6={aheadBy:0,behindBy:0,files:[]}});function yN6($){if(!$||$.includes(".."))return!1;return xN6.test($)}function Wd$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!yN6(Z))return null;let{__resolveType:X,...Q}=$;return{resolveType:Z,payload:Q}}function Kd$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var xN6;var Fd$=D(()=>{xN6=/^[\w./@-]+$/});function Is($,Z){let X=$?.githubRepo;if(!X?.owner||!X?.name)return null;if(!X.connectionId)return X;if(!Z.includes(X.connectionId))return null;return X}async function Hd$($,Z,X,Q){if(!Q.connectionId)throw new kv("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let Y=$.organization?.id;if(!Y)throw new kv(F9);await xO({ctx:$,connectionId:Q.connectionId,organizationId:Y,forceRefresh:!0,onLegacyMintError:(H)=>{let U=H instanceof Error?H.message:F9;throw new kv(U)}});let{cloneUrl:G,gitUserName:J,gitUserEmail:W}=await fK(Q.connectionId,Q.owner,Q.name,$.db,$.vault).catch((H)=>{let{code:U,message:N}=O9$(H instanceof Error?H.message:String(H));throw U?new kv(N):H}),K=eu($),F=await Z.proxyDaemonRequest(X,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({git:{repository:{cloneUrl:G},identity:{userName:J,userEmail:W}},...K?{operator:K}:{}})});if(!F.ok){let H=await bO(F,gN6).catch(()=>F.statusText);throw Error(`Failed to refresh sandbox git credentials (${F.status}): ${H}`)}}var gN6=10485760,kv;var i71=D(()=>{KJ();jT0();On();yi0();dy();kv=class kv extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function uN6($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!hN6.test(Z))throw Error(`Invalid branch name: ${$}`)}function Vv($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(cN6)])}async function mN6($,Z){let X=$.var.studioContext,Q=JJ(Z.branch),Y=$.req.query("thread")??Q,G=Y&&Y===Q?Z.branchThread:Y?await X.storage.threads.get(Y).catch(()=>null):null,J=G?.virtual_mcp_id===Z.virtualMcpId?G:null,W=MC(J?.metadata?.runtime);if(W)return W;let K=WD0(Z.virtualMcpMetadata),F=K==="cms"?await I71(X,{claimName:Z.claimName}):"alive",H=K==="cms"&&F!=="alive"?"cms":"sandbox",U=!!J&&(F==="gone"||F==="alive"&&K==="cms");if(U&&J)cn(X,J.id,H);if(K==="cms")console.log("sandbox proxy: no runtime stamp",{route:$.req.path,method:$.req.method,reason:J?"unstamped":"threadless",liveness:F,resolved:H,stamped:U});return H}async function iN6($){let Z=$.get("vmClaim");if(Z.runner)return Z.runner;try{return await KQ($.var.studioContext)}catch{return null}}function Sv($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}async function Yl($){let{virtualMcpMetadata:Z,connectionIds:X}=$.get("vmClaim"),Q=$.var.studioContext,Y=Is(Z,X);if(!Y)throw new d4(404,"AUTH","repo","Project has no GitHub repository");let G=n(Q);return zT0(Q,G.id,Y)}function p71($,Z){if(Z instanceof AA0)return $.json({error:Z.message},429,{...R5,...Z.retryAfterMs===null?{}:{"Retry-After":String(Math.ceil(Z.retryAfterMs/1000))}});if(Z instanceof d4){let Q=Z.status===404?404:Z.status===409||Z.status===422?409:502;return $.json({error:Z.message},Q,R5)}let X=Z instanceof Error?Z.message:String(Z);return $.json({error:X},502,R5)}async function Bd$($,Z,X){let Q;try{Q=await fetch(Z,X)}catch{return $.json({error:"Preview unreachable"},502)}let Y;try{Y=await Q.text()}catch{return $.json({error:"Preview unreachable"},502)}return new Response(Y,{status:Q.status,headers:{"content-type":Q.headers.get("content-type")??"application/json"}})}async function Od$($){try{let Z=await Yl($),X=await CT0(Z,$.get("vmClaim").branch);return $.json(X,200,R5)}catch(Z){return p71($,Z)}}function qs($,Z){let Q=(fT0.get($)??Promise.resolve()).catch(()=>{}).then(Z),Y=Q.catch(()=>{});return fT0.set($,Y),Y.finally(()=>{if(fT0.get($)===Y)fT0.delete($)}),Q}async function aZ($,Z,X){if(!X?.runner&&$.get("vmClaim").runtime==="cms")return $.json({error:"sandbox not found: this session is sandbox-less"},404,R5);let Q=X?.runner??Sv($);if(Q instanceof Response)return Q;let{claimName:Y,userId:G,projectRef:J}=$.get("vmClaim"),W=X?.method??"POST",K=null,F=new Headers;if(X?.jsonBody!==void 0)K=X.jsonBody,F.set("content-type","application/json");else if(X?.forwardJsonBody)K=await $.req.text(),F.set("content-type","application/json");let H=X?.signal,U={method:W,headers:F,body:K,...H?{signal:H}:{}},N=async()=>{let B=await Q.proxyDaemonRequest(Y,Z,U);if(X?.map404to410&&B.status===404){try{await B.body?.cancel()}catch{}if(await Q.adoptLiveClaim({userId:G,projectRef:J},Y))B=await Q.proxyDaemonRequest(Y,Z,U);if(B.status===404){try{await B.body?.cancel()}catch{}return new Response(JSON.stringify({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."}),{status:410,headers:{"content-type":"application/json",...R5}})}}let O=await B.text(),w=X?.redactRepoDir?pN6(O):O,L=B.headers.get("content-type")??"application/json";return new Response(w,{status:B.status,headers:{"content-type":L,...R5}})};try{if(H){let B=N();return B.catch(()=>{}),await Promise.race([B,new Promise((w,L)=>{if(H.aborted)return L(H.reason);H.addEventListener("abort",()=>L(H.reason),{once:!0})})])}return await N()}catch(B){let O=B instanceof Error?B.message:String(B);return $.json({error:`Daemon unreachable: ${O}`},502)}}function pN6($){try{let Z=JSON.parse($);if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&"repoDir"in Z)return JSON.stringify({...Z,repoDir:null})}catch{}return $}async function bT0($,Z,X,Q="GET",Y){let G=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null});if(G.status===404&&Y){try{await G.body?.cancel()}catch{}if(await $.adoptLiveClaim(Y,Z))G=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null})}if(G.status===404){try{await G.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let J=await G.text();if(!G.ok){let W=`Daemon error (${G.status})`;try{W=JSON.parse(J).error??W}catch{}throw Error(W)}return JSON.parse(J)}function nN6($){return Dd$.includes($)}var hN6,Ud$=524288,lN6=65536,cN6=1e4,Nd$=2000,dN6,fT0,R5,Dd$,wd$=()=>{let $=new W1;$.use("/:virtualMcpId/:branch/*",dN6),$.post("/:virtualMcpId/:branch/write",(X)=>aZ(X,"/_sandbox/write",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/unlink",(X)=>aZ(X,"/_sandbox/unlink",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/mkdir",(X)=>aZ(X,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/rename",(X)=>aZ(X,"/_sandbox/rename",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/read",(X)=>aZ(X,"/_sandbox/read",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/glob",(X)=>aZ(X,"/_sandbox/glob",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/grep",(X)=>aZ(X,"/_sandbox/grep",{forwardJsonBody:!0,signal:Vv(X)})),$.post("/:virtualMcpId/:branch/exec/:script",async(X)=>{let Q=X.req.param("script");if(!Q)return X.json({error:"missing script name"},400);return aZ(X,`/_sandbox/exec/${encodeURIComponent(Q)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",async(X)=>{let Q=X.req.param("script");if(!Q)return X.json({error:"missing script name"},400);return aZ(X,`/_sandbox/exec/${encodeURIComponent(Q)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(X)=>aZ(X,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDir:!0})),$.put("/:virtualMcpId/:branch/config",(X)=>aZ(X,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(X)=>{let Q=X.req.param("step");if(!Q||!nN6(Q))return X.json({error:`step must be one of: ${Dd$.join(", ")}`},400);let Y=X.get("vmClaim"),G=await I71(X.var.studioContext,{claimName:Y.claimName})==="gone"?null:await iN6(X);if(!G)return X.json({error:"sandbox not found: nothing is running at this ref"},404,R5);if(Q==="start"){let J=n(X.var.studioContext),W=ly(Y.virtualMcpMetadata);try{await q70({ctx:X.var.studioContext,runner:G,handle:Y.claimName,orgId:J.id,userId:Y.callerUserId,entries:W})}catch(K){let F=K instanceof Error?K.message:String(K);return X.json({error:`Failed to push env to daemon: ${F}`},502)}}return aZ(X,`/_sandbox/setup/${Q}`,{signal:X.req.raw.signal,map404to410:!0,runner:G})}),$.get("/:virtualMcpId/:branch/events",(X)=>{let Q=X.get("vmClaim");if(!Q.runner)return sU(X,async(Y)=>{await Y.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this studio instance."})})});return wc$(X,{ctx:X.var.studioContext,claimName:Q.claimName,runner:Q.runner,virtualMcpId:Q.virtualMcpId,branch:Q.branch,userId:Q.userId,projectRef:Q.projectRef,virtualMcpMetadata:Q.virtualMcpMetadata})}),$.get("/:virtualMcpId/:branch/git/status",(X)=>{if(X.get("vmClaim").runtime==="cms")return Od$(X);return Z(X)});let Z=(X)=>aZ(X,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([X.req.raw.signal,AbortSignal.timeout(Nd$)])});return $.post("/:virtualMcpId/:branch/git/status",(X)=>{if(X.get("vmClaim").runtime==="cms")return Od$(X);return aZ(X,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([X.req.raw.signal,AbortSignal.timeout(Nd$)])})}),$.post("/:virtualMcpId/:branch/git/diff",async(X)=>{let Q=X.get("vmClaim");if(Q.runtime==="cms")try{let Y=await X.req.json().catch(()=>({})),G=await Yl(X),J=await _T0(G,Q.branch,Y.base);return X.json(J,200,R5)}catch(Y){return p71(X,Y)}return aZ(X,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})}),$.post("/:virtualMcpId/:branch/git/publish",async(X)=>{if(X.get("vmClaim").runtime==="cms")return X.json({ok:!0},200,R5);let Q=Sv(X);if(Q instanceof Response)return Q;let{claimName:Y,virtualMcpMetadata:G,connectionIds:J}=X.get("vmClaim"),W=X.var.studioContext;return qs(Y,async()=>{try{await q71(W,Q,Y);let K=Is(G,J);if(K)await Hd$(W,Q,Y,K)}catch(K){if(K instanceof kv)return X.json({error:K.message},403,R5);let F=K instanceof Error?K.message:String(K);return X.json({error:F},502,R5)}return aZ(X,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",async(X)=>{let Q=X.get("vmClaim");if(Q.runtime==="cms")return qs(Q.claimName,async()=>{let Y=await X.req.json().catch(()=>({})),G=Array.isArray(Y.filepaths)?Y.filepaths.filter((J)=>typeof J==="string"):[];if(G.length===0)return X.json({error:"filepaths is required"},400,R5);try{let J=await Yl(X);return await Jd$(J,Q.branch,G),X.json({ok:!0},200,R5)}catch(J){let W=J instanceof d4&&J.status===409?409:502,K=J instanceof Error?J.message:String(J);return X.json({error:K},W,R5)}});return qs(Q.claimName,()=>aZ(X,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(X)=>{let Q=X.get("vmClaim");if(Q.runtime==="cms")return qs(Q.claimName,async()=>{try{let W=await X.req.json().catch(()=>({})),K=await Yl(X),F=W.base??await K.getDefaultBranch();return await vT0(K,Q.branch,F),X.json({ok:!0},200,R5)}catch(W){return p71(X,W)}});let Y=Sv(X);if(Y instanceof Response)return Y;let{claimName:G}=X.get("vmClaim"),J=X.var.studioContext;return qs(G,async()=>{try{await q71(J,Y,G)}catch(W){let K=W instanceof Error?W.message:String(W);return X.json({error:K},502,R5)}return aZ(X,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",r5({maxSize:Ud$,onError:(X)=>X.json({error:"Payload too large"},413,R5)}),async(X)=>{let Q=X.get("vmClaim"),Y=null;if(Q.runtime!=="cms"){let F=Sv(X);if(F instanceof Response)return F;Y=F}let{claimName:G,userId:J,projectRef:W}=Q,K=X.var.studioContext;try{let F=await X.req.json().catch(()=>({})),H=F.status,U=F.diff,N=U!=null&&typeof U.diffs==="object"&&U.diffs!==null,[B,O]=V71(H)&&N?[H,U]:Y?await Promise.all([bT0(Y,G,"/_sandbox/git/status","GET",{userId:J,projectRef:W}),bT0(Y,G,"/_sandbox/git/diff","GET",{userId:J,projectRef:W})]):await(async()=>{let L=await Yl(X);return Promise.all([CT0(L,Q.branch),_T0(L,Q.branch)])})(),w=await Pc$(K,B,O);return X.json(w,200,R5)}catch(F){let H=F instanceof Error?F.message:String(F);if(H==="SANDBOX_GONE")return X.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,R5);return X.json({error:H},502,R5)}}),$.post("/:virtualMcpId/:branch/git/judge-review",r5({maxSize:Ud$,onError:(X)=>X.json({error:"Payload too large"},413,R5)}),async(X)=>{let Q=X.get("vmClaim"),Y=null;if(Q.runtime!=="cms"){let F=Sv(X);if(F instanceof Response)return F;Y=F}let{claimName:G,userId:J,projectRef:W}=Q,K=X.var.studioContext;try{let F=await X.req.json().catch(()=>({})),H=F.status,U=F.diff,N=U!=null&&typeof U.diffs==="object"&&U.diffs!==null,[B,O]=V71(H)&&N?[H,U]:Y?await Promise.all([bT0(Y,G,"/_sandbox/git/status","GET",{userId:J,projectRef:W}),bT0(Y,G,"/_sandbox/git/diff","GET",{userId:J,projectRef:W})]):await(async()=>{let L=await Yl(X);return Promise.all([CT0(L,Q.branch),_T0(L,Q.branch)])})(),w=await Tc$(K,B,O,typeof F.language==="string"?F.language:void 0);return X.json(w,200,R5)}catch(F){let H=F instanceof Error?F.message:String(F);if(H==="SANDBOX_GONE")return X.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,R5);return X.json({error:H},502,R5)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(X)=>{let Q=Sv(X);if(Q instanceof Response)return Q;let{claimName:Y}=X.get("vmClaim"),G=X.req.query("path");if(!G||!G.startsWith("/")||G.startsWith("//")||G.includes("..")||G.includes("\\"))return X.json({error:"Path not allowed"},403);let J;try{J=await Q.getPreviewUrl(Y)}catch{return X.json({error:"Preview not available"},502)}if(!J)return X.json({error:"Preview not available"},502);let W=J.replace(/\/+$/,"");return Bd$(X,`${W}${G}`)}),$.post("/:virtualMcpId/:branch/preview-invoke",r5({maxSize:lN6,onError:(X)=>X.json({error:"Payload too large"},413)}),async(X)=>{let Q=Sv(X);if(Q instanceof Response)return Q;let{claimName:Y}=X.get("vmClaim"),G;try{G=await Q.getPreviewUrl(Y)}catch{return X.json({error:"Preview not available"},502)}if(!G)return X.json({error:"Preview not available"},502);let J;try{J=await X.req.json()}catch{return X.json({error:"Invalid JSON body"},400)}if(!J||typeof J!=="object"||Array.isArray(J))return X.json({error:"Invalid JSON body"},400);let W=Wd$(J);if(!W)return X.json({error:"Invalid or missing __resolveType"},400);let K=Kd$(G,W.resolveType);return Bd$(X,K,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(W.payload),signal:AbortSignal.timeout(30000)})}),$};var Ld$=D(()=>{c$();MF();su();R71();Kn();Bc$();i3();Jg();Oc$();r3();Dc$();Lc$();fi0();Nn();_71();Rc$();f71();rD();m71();Fd$();i71();hN6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;dN6=ET0(async($,Z)=>{let X=$.var.studioContext;try{t(X)}catch{return $.json({error:"Unauthorized"},401)}let Q=t0(X);if(!Q)return $.json({error:"Unauthorized"},401);let Y;try{Y=n(X)}catch{return $.json({error:"Organization scope required"},403)}let G=$.req.param("virtualMcpId"),J=$.req.param("branch");if(!G||!J)return $.json({error:"virtualMcpId and branch are required"},400);try{uN6(J)}catch(w){let L=w instanceof Error?w.message:String(w);return $.json({error:L},400)}let W=await X.storage.virtualMcps.findById(G);if(!W||W.organization_id!==Y.id)return $.json({error:"Virtual MCP not found"},404);let K=Jn({orgId:Y.id,virtualMcpId:G,branch:J}),F=await ki0(X,J),H=Vi0(F,Q),U=Nc$({userId:H,projectRef:K}),N=W.metadata??null,B=await mN6($,{claimName:U,branch:J,virtualMcpId:G,sandboxUserId:H,virtualMcpMetadata:N,branchThread:F});if(B==="cms")return $.set("vmClaim",{claimName:U,callerUserId:Q,runner:null,virtualMcpId:G,branch:J,userId:H,projectRef:K,virtualMcpMetadata:N,connectionIds:W.connections?.map((w)=>w.connection_id)??[],runtime:B}),Z();let O;try{O=await KQ(X)}catch{O=null}if(!O)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:U,callerUserId:Q,runner:O,virtualMcpId:G,branch:J,userId:H,projectRef:K,virtualMcpMetadata:N,connectionIds:W.connections?.map((w)=>w.connection_id)??[],runtime:B}),Z()});fT0=new Map;R5={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};Dd$=["clone","install","start"]});function Ed$($,Z,X){let Q=n71.get($);if(!Q)Q={pending:null,running:!1},n71.set($,Q);if(!Q.pending)Q.pending={set:new Map,del:new Set,deps:Z,resolvers:[],rejecters:[]};let Y=Q.pending;Y.deps=Z;for(let[J,W]of Object.entries(X.set??{}))Y.set.set(J,W),Y.del.delete(J);for(let J of X.delete??[])Y.del.add(J),Y.set.delete(J);let G=new Promise((J,W)=>{Y.resolvers.push(J),Y.rejecters.push(W)});if(!Q.running)oN6($,Q);return G}async function oN6($,Z){Z.running=!0;try{while(Z.pending){let X=Z.pending;Z.pending=null;try{let Q=await rN6(X);for(let Y of X.resolvers)Y(Q)}catch(Q){for(let Y of X.rejecters)Y(Q)}}}finally{if(Z.running=!1,!Z.pending)n71.delete($)}}async function rN6($){let{client:Z,branch:X,packagePath:Q}=$.deps;for(let Y=0;;Y++){let G=await Ql(Z,X),J=await Z.getCommitTreeSha(G),W=await Z.getDecofileTree(J,Q),K=l71(W,Q),F=[],H=new Map(K.map((O)=>[O.path,{stem:O.stem,sha:O.sha}]));for(let[O,w]of $.set){let L=c71(K,O),E=`${JSON.stringify(w,null,2)}
|
|
2983
|
-
`,j=await Z.createBlob(E);await Xd$(Z.owner,Z.repo,j,E);let z=L[0]??`${VT0(Q)}/${x71(O)}.json`;F.push({path:z,mode:"100644",type:"blob",sha:j});let P=z.slice(z.lastIndexOf("/")+1,-5);H.set(z,{stem:P,sha:j,content:E});for(let A of L.slice(1))F.push({path:A,mode:"100644",type:"blob",sha:null}),H.delete(A)}for(let O of $.del)for(let w of c71(K,O))F.push({path:w,mode:"100644",type:"blob",sha:null}),H.delete(w);if(F.length===0)return G;let U=Q?`${Q}/.deco/blocks.gen.json`:".deco/blocks.gen.json";if(W.some((O)=>O.type==="blob"&&O.path===U)){let O=await Promise.all([...H.values()].map(async(j)=>({stem:j.stem,content:j.content??await Z.getBlobText(j.sha)}))),{decofile:w,skipped:L}=Ps(O);if(L.length>0)console.warn("decofile gen: dropped blocks that were not valid JSON",{repo:`${Z.owner}/${Z.repo}`,branch:X,packagePath:Q,blocks:L.map((j)=>j.key)});let E=await Z.createBlob(w);F.push({path:U,mode:"100644",type:"blob",sha:E})}let N=await Z.createTree(J,F),B=await Z.createCommit({message:aN6($),treeSha:N,parentShas:[G]});try{return await Z.updateRef(X,B),B}catch(O){if(!(O instanceof d4&&O.status===422)||Y>=tN6-1)throw O;await L$($7(2000,200,Y,2,0.5))}}}function aN6($){let Z=(Y)=>{let G=Y.slice(0,3).join(", ");return Y.length>3?`${G} (+${Y.length-3} more)`:G},X=[];if($.set.size>0)X.push(`update ${Z([...$.set.keys()])}`);if($.del.size>0)X.push(`delete ${Z([...$.del])}`);let Q=`chore(decofile): ${X.join("; ")}`;return Ei0(Q,$.deps.coAuthor)}var tN6=3,n71;var jd$=D(()=>{P70();AT0();a8();rD();ST0();n71=new Map});import{createHmac as zd$,randomBytes as sN6,timingSafeEqual as eN6}from"crypto";function Pd$(){if(xT0)return xT0;let $;try{let Z=V0();$=Z.studioJwtSecret??Z.betterAuthSecret}catch{$=void 0}return xT0=$?Buffer.from($):sN6(32),xT0}function t71($){let Z=$.nowMs??Date.now(),X={o:$.organizationId,m:$.virtualMcpId,b:$.branch,e:Math.floor((Z+$B6)/1000)},Q=Buffer.from(JSON.stringify(X)).toString("base64url"),Y=zd$("sha256",Pd$()).update(Q).digest("base64url");return`${Q}.${Y}`}function Ad$($,Z){let X=$.indexOf(".");if(X<0)return!1;let Q=$.slice(0,X),Y=Buffer.from($.slice(X+1)),G=Buffer.from(zd$("sha256",Pd$()).update(Q).digest("base64url"));if(Y.length!==G.length||!eN6(Y,G))return!1;let J;try{J=JSON.parse(Buffer.from(Q,"base64url").toString())}catch{return!1}let W=Math.floor((Z.nowMs??Date.now())/1000);return J.o===Z.organizationId&&J.m===Z.virtualMcpId&&J.b===Z.branch&&typeof J.e==="number"&&J.e>=W}var $B6=21600000,xT0=null;var Td$=D(()=>{D$()});import{z as Gl}from"zod";function XB6($){return $.length>0&&$.length<=255&&!$.includes("..")&&!$.endsWith("/")&&!$.endsWith(".lock")&&ZB6.test($)}function kd$($){return $.req.header("x-forwarded-host")??new URL($.req.url).host}async function Ms($){let Z=$.get("decofileScope");return zT0($.var.studioContext,Z.organizationId,Z.githubRepo)}function ks($,Z){if(Z instanceof d4){let Q=Z.status===404?404:Z.status===409?409:Z.status===422?409:502;return $.json({error:Z.message},Q)}let X=Z instanceof Error?Z.message:String(Z);return $.json({error:X},500)}function Vd$(){let $=new W1;return $.use("/:virtualMcpId/:branch",Md$),$.use("/:virtualMcpId/:branch/*",Md$),$.get("/:virtualMcpId/:branch",async(Z)=>{let X=Z.get("decofileScope");try{let Q=await Ms(Z),Y=await Qd$(Q,X.branch,X.packagePath,{createBranchIfMissing:!!X.userId}),G={ETag:`"${Y.sha}"`,"Cache-Control":"no-store","Access-Control-Allow-Origin":"*"};if(Z.req.header("if-none-match")===`"${Y.sha}"`)return Z.body(null,304,G);if(!X.userId)return Z.body(Y.decofile,200,{...G,"content-type":"application/json"});let J=t71({organizationId:X.organizationId,virtualMcpId:X.virtualMcpId,branch:X.branch});return Z.body(`{"version":${JSON.stringify(Y.sha)},"token":${JSON.stringify(J)},"apiHost":${JSON.stringify(kd$(Z))},"decofile":${Y.decofile}}`,200,{...G,"content-type":"application/json"})}catch(Q){return ks(Z,Q)}}),$.get("/:virtualMcpId/:branch/meta",async(Z)=>{let X=Z.get("decofileScope"),Q=X.packagePath?`${X.packagePath}/.deco/meta.gen.json`:".deco/meta.gen.json";try{let Y=await Ms(Z),G=await Y.getFileTextAtRef(X.branch,Q);if(G===null){let J=await Y.getDefaultBranch();if(J!==X.branch)G=await Y.getFileTextAtRef(J,Q)}if(G===null)return Z.json({error:"meta.gen.json not committed"},404);return Z.body(G,200,{"content-type":"application/json","Cache-Control":"no-store","Access-Control-Allow-Origin":"*"})}catch(Y){return ks(Z,Y)}}),$.patch("/:virtualMcpId/:branch",YB6,async(Z)=>{let X=Z.get("decofileScope"),Q=Z.var.studioContext,Y=GB6.safeParse(await Z.req.json().catch(()=>null));if(!Y.success)return Z.json({error:"Invalid body",details:Y.error.issues},400);let G=Y.data;for(let J of[...Object.keys(G.set??{}),...G.delete??[]])try{PT0(J)}catch(W){let K=W instanceof Error?W.message:String(W);return Z.json({error:K},400)}for(let[J,W]of Object.entries(G.set??{})){if(typeof W!=="object"||W===null||Array.isArray(W))return Z.json({error:`Block "${J}" must be a JSON object`},400);if(b71(J))return Z.json({error:`Block key "${J}" collides with a framework resolver module and cannot be written`},400)}try{let J=await Ms(Z),W=await Ed$(`${X.organizationId}/${X.virtualMcpId}/${X.branch}`,{client:J,branch:X.branch,packagePath:X.packagePath,coAuthor:eu(Q)},G),K=t71({organizationId:X.organizationId,virtualMcpId:X.virtualMcpId,branch:X.branch});return Z.json({version:W,token:K,apiHost:kd$(Z)})}catch(J){return ks(Z,J)}}),$.post("/:virtualMcpId/:branch/publish",async(Z)=>{let X=Z.get("decofileScope");try{let Q=await Ms(Z),Y=await Q.getDefaultBranch();if(Y===X.branch)return Z.json({error:"Branch is already the default branch"},400);let G=`chore(decofile): publish ${X.branch}`;try{let J;try{J=await Q.mergeBranch(Y,X.branch,G)}catch(W){if(!(W instanceof d4&&W.status===409))throw W;await vT0(Q,X.branch,Y),J=await Q.mergeBranch(Y,X.branch,G)}return J?Z.json({result:"merged",sha:J}):Z.json({result:"up-to-date"})}catch(J){if(J instanceof d4&&J.status===409)return Z.json({error:"merge-conflict"},409);if(J instanceof d4&&J.status===405){let K=await Q.findOpenPullRequest(Y,X.branch)??await Q.createPullRequest({base:Y,head:X.branch,title:`Publish ${X.branch}`});return Z.json({result:"pull-request",number:K.number,url:K.html_url})}throw J}}catch(Q){return ks(Z,Q)}}),$.get("/:virtualMcpId/:branch/status",async(Z)=>{let X=Z.get("decofileScope");try{let Q=await Ms(Z),Y=await Q.getDefaultBranch();if(Y===X.branch)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});try{let[{aheadBy:G,behindBy:J},W]=await Promise.all([Q.compare(Y,X.branch),Q.getBranchHead(X.branch)]);return Z.json({baseBranch:Y,aheadBy:G,behindBy:J,lastCommitAt:W.committedAt})}catch(G){if(G instanceof d4&&G.status===404)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});throw G}}catch(Q){return ks(Z,Q)}}),$}var ZB6,Rd$=500,Id$=1048576,qd$=1024,QB6=8388608,YB6,GB6,Md$;var Sd$=D(()=>{Xt0();AT0();c$();MF();R71();jT0();i71();f71();jd$();Td$();m71();rD();ST0();ZB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;YB6=r5({maxSize:QB6,onError:($)=>$.json({error:"Payload too large"},413)}),GB6=Gl.object({set:Gl.record(Gl.string(),Gl.unknown()).optional(),delete:Gl.array(Gl.string()).optional()}).refine(($)=>Object.keys($.set??{}).length>0||($.delete?.length??0)>0,{message:"Patch must set or delete at least one block"}).refine(($)=>Object.keys($.set??{}).length+($.delete?.length??0)<=Rd$,{message:`Patch cannot touch more than ${Rd$} blocks`}).refine(($)=>Object.values($.set??{}).every((Z)=>JSON.stringify(Z).length<=Id$),{message:`Each block must be at most ${Id$} bytes`}).refine(($)=>[...Object.keys($.set??{}),...$.delete??[]].every((Z)=>Z.length<=qd$),{message:`Each block key must be at most ${qd$} characters`}),Md$=ET0(async($,Z)=>{let X=$.var.studioContext,Q=X.organization;if(!Q)return $.json({error:"Organization scope required"},500);let Y=$.req.param("virtualMcpId"),G=$.req.param("branch");if(!Y||!G)return $.json({error:"virtualMcpId and branch are required"},400);if(!XB6(G))return $.json({error:`Invalid branch name: ${G}`},400);let J=X.auth?.user?.id??null;if(!J){let B=$.req.query("token");if(!($.req.method==="GET"&&!$.req.path.match(/\/(publish|status)$/)))return $.json({error:"Unauthorized"},401);if(!B||!Ad$(B,{organizationId:Q.id,virtualMcpId:Y,branch:G}))return $.json({error:"Unauthorized"},401)}let W=await X.storage.virtualMcps.findById(Y);if(!W||W.organization_id!==Q.id)return $.json({error:"Virtual MCP not found"},404);let K=W.metadata??null;if(!JD0(K))return $.json({error:"Project has no preview server configured"},404);let H=W.connections?.map((B)=>B.connection_id)??[],U=Is(K,H);if(!U)return $.json({error:"Project has no GitHub repository"},404);let N=K?.runtime;return $.set("decofileScope",{organizationId:Q.id,virtualMcpId:Y,branch:G,packagePath:N?.path?.replace(/^\/+|\/+$/g,"")||null,githubRepo:U,userId:J}),Z()})});var Cd$=($)=>{let Z=new W1;if(Z.use("*",wv),Z.route("/",_A0()),Z.route("/",ng$()),Z.route("/",el$()),Z.route("/",rl$()),Z.route("/",DT0()),Z.route("/tools",Jc$()),Z.route("/",Qc$()),Z.route("/",Vl$({kvStorage:$.kvStorage})),Z.route("/",Ml$()),Z.route("/fs",dl$({getConnection:$.getNatsConnection})),Z.route("/sandbox",wd$()),Z.route("/decofile",Vd$()),Z.route("/",nl$()),Z.route("/deco-sites",fA0()),Z.route("/hosting",xg$()),Z.route("/monitor",dg$()),Z.route("/sso",qA0()),Z.route("/",wT0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",Cg$()),$.mountDevAssets)Z.route("/dev-assets",gA0({orgFromPath:!0}));return Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth),Z.use("/mcp/task-run/:threadId",$.mcpAuth),Z.route("/",$x$()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler),Z.route("/mcp/task-run",il$()),Z.route("/mcp",bL0()),Z.route("/mcp/self",OT0()),Z.route("/mcp",gL0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var _d$=D(()=>{c$();zA0();_g$();t91();yg$();mg$();hA0();na();d91();kl$();Sl$();ml$();tt();y91();hL0();L71();pl$();tl$();al$();$c$();Yc$();j71();Wc$();z71();xL0();Ld$();Sd$()});function JB6($){return $.filter((Z)=>Z.vendors?.alias).map((Z)=>({name:Z.name,title:Z.title,description:Z.description,logo:Z.logo,category:Z.category,vendor:{alias:Z.vendors.alias,url:Z.vendors.url}}))}var WB6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},vd$=()=>{let $=new W1;return $.use("*",WB6),$.get("/",async(Z)=>{let X=V0(),Q=X.decoSupabaseUrl,Y=X.decoSupabaseServiceKey;if(!Q||!Y)return Z.json({apps:[]});try{let G=await zY(Q,Y,"apps?select=name,title,description,logo,category,vendors(alias,url)");return Z.json({apps:JB6(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var fd$=D(()=>{c$();D$();VP0()});import{z as q1}from"zod";function vF($,Z="invalid_request_error",X=null,Q=null){return{error:{message:$,type:Z,param:X,code:Q}}}function LB6($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let X=$.substring(0,Z),Q=$.substring(Z+1);if(!X||!Q)return null;return{credentialId:X,modelId:Q}}function EB6($,Z,X){try{return JSON.parse($)}catch{throw new yd$(`Invalid JSON in tool call arguments for function '${X}' (tool_call_id: ${Z}): ${$}`)}}function jB6($){let Z={};for(let X of $)if(X.role==="assistant"&&X.tool_calls)for(let Q of X.tool_calls)Z[Q.id]=Q.function.name;return $.map((X)=>{switch(X.role){case"system":return{role:"system",content:X.content};case"user":if(typeof X.content==="string")return{role:"user",content:X.content};return{role:"user",content:X.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(X.tool_calls&&X.tool_calls.length>0)return{role:"assistant",content:X.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:EB6(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:X.content??""};case"tool":let Q=Z[X.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:X.tool_call_id,toolName:Q,output:{type:"text",value:X.content}}]}}})}function zB6($){let Z=$.map((X)=>{let Q=X.function.parameters?aY(X.function.parameters):aY({type:"object",properties:{}});return[X.function.name,V$({description:X.function.description,inputSchema:Q})]});return Object.fromEntries(Z)}function PB6($){if(!$)return;return{openai:{response_format:$}}}function AB6(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function bd$($,Z,X,Q,Y,G){let J={model:$,messages:Z,tools:X,temperature:Q.temperature,maxTokens:Q.max_tokens,topP:Q.top_p,frequencyPenalty:Q.frequency_penalty,presencePenalty:Q.presence_penalty,stopSequences:Q.stop?Array.isArray(Q.stop)?Q.stop:[Q.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function xd$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var KB6=256,FB6,HB6,UB6,NB6,BB6,OB6,DB6,wB6,yd$,gd$,hd$;var ud$=D(()=>{g4();c$();su();SU();FB6=q1.object({type:q1.literal("function"),function:q1.object({name:q1.string(),description:q1.string().optional(),parameters:q1.record(q1.string(),q1.unknown()).optional()})}),HB6=q1.object({id:q1.string(),type:q1.literal("function"),function:q1.object({name:q1.string(),arguments:q1.string()})}),UB6=q1.discriminatedUnion("role",[q1.object({role:q1.literal("system"),content:q1.string(),name:q1.string().optional()}),q1.object({role:q1.literal("user"),content:q1.union([q1.string(),q1.array(q1.union([q1.object({type:q1.literal("text"),text:q1.string()}),q1.object({type:q1.literal("image_url"),image_url:q1.object({url:q1.string(),detail:q1.string().optional()})})]))]),name:q1.string().optional()}),q1.object({role:q1.literal("assistant"),content:q1.string().nullable().optional(),name:q1.string().optional(),tool_calls:q1.array(HB6).optional()}),q1.object({role:q1.literal("tool"),content:q1.string(),tool_call_id:q1.string()})]),NB6=q1.object({type:q1.literal("text")}),BB6=q1.object({type:q1.literal("json_object")}),OB6=q1.object({type:q1.literal("json_schema"),json_schema:q1.object({name:q1.string(),description:q1.string().optional(),schema:q1.record(q1.string(),q1.unknown()),strict:q1.boolean().optional()})}),DB6=q1.union([NB6,BB6,OB6]),wB6=q1.object({model:q1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:q1.array(UB6),stream:q1.boolean().optional().default(!1),temperature:q1.number().min(0).max(2).optional(),max_tokens:q1.number().positive().optional(),top_p:q1.number().min(0).max(1).optional(),frequency_penalty:q1.number().min(-2).max(2).optional(),presence_penalty:q1.number().min(-2).max(2).optional(),stop:q1.union([q1.string(),q1.array(q1.string())]).optional(),tools:q1.array(FB6).optional(),tool_choice:q1.union([q1.literal("auto"),q1.literal("none"),q1.literal("required"),q1.object({type:q1.literal("function"),function:q1.object({name:q1.string()})})]).optional(),response_format:DB6.optional(),user:q1.string().optional()});yd$=class yd$ extends Error{constructor($){super($);this.name="MessageConversionError"}};gd$=new W1;gd$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),X=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(vF("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(vF("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==X)return $.json(vF("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Q=await $.req.json(),Y=wB6.safeParse(Q);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(vF(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=LB6(G.model);if(!J)return $.json(vF("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=J,{modelId:K}=J;if(!W){let E=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((j)=>BL(j.providerId));if(!E)return $.json(vF("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=E.id}let F;try{F=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(vF(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let H=F.aiSdk.languageModel(K),U=jB6(G.messages),N=G.tools?zB6(G.tools):void 0,B=PB6(G.response_format),O=AB6(),w=Math.floor(Date.now()/1000);if(G.stream)return sU($,async(L)=>{let E=bd$(H,U,N,G,B,$.req.raw.signal);try{let j=SO(E),z=!1,P=0,A="",I=async()=>{if(A.length===0)return;let k=A;A="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{content:k},finish_reason:null}]})})};for await(let k of j.fullStream){if(!z&&(k.type==="text-delta"||k.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(A+=k.text,A.length>=KB6)await I()}else if(k.type==="tool-call"){await I();let M=P++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:M,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await I(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{},finish_reason:xd$(k.finishReason)}],usage:k.totalUsage?{prompt_tokens:k.totalUsage.inputTokens??0,completion_tokens:k.totalUsage.outputTokens??0,total_tokens:k.totalUsage.totalTokens??0}:void 0})})}await I(),await L.writeSSE({data:"[DONE]"})}catch(j){let z=j;console.error("[openai-compat:stream] Error:",z.message),await L.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let L=bd$(H,U,N,G,B,$.req.raw.signal),E=await kO(L),j={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)j.tool_calls=E.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),j.content=null;return $.json({id:O,object:"chat.completion",created:w,model:G.model,choices:[{index:0,message:j,finish_reason:xd$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(Q){let Y=Q;if(Y.name==="AbortError")return $.json(vF("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(vF(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(vF(Y.message,"server_error"),500)}});hd$=gd$});function TB6($){if(typeof $!=="object"||$===null)return!1;let X=$.githubRepo?.url;return typeof X==="string"&&X.length>0}function ld$(){let $=new W1;return $.use("*",async(Z,X)=>{await X(),Z.header("Cache-Control","private, no-store"),Z.header("Vary","Cookie")}),$.get("/",async(Z)=>{let X=Z.get("studioContext"),Q=t0(X);if(!Q)return Z.json({error:"Authentication required"},401);let G=(Z.req.query("site")??"").trim().toLowerCase();if(!aX(G))return Z.json({error:"Invalid site slug"},400);let J=await X.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.id as id","organization.slug as slug","organization.name as name","organization.metadata as metadata"]).where("member.userId","=",Q).execute(),W=[];for(let F of J){if(!F.slug||m9(F))continue;let H=await X.storage.virtualMcps.list(F.id);for(let U of H){if(ge1(U)!==G)continue;if(!TB6(U.metadata))continue;W.push({orgSlug:F.slug,orgName:F.name??F.slug,project:{id:U.id,title:U.title,icon:U.icon??null}})}}let K={matches:W};return Z.json(K)}),$}var cd$=D(()=>{c$();hH()});var md$;var dd$=D(()=>{md$={name:"decocms",version:"4.323.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function qB6(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??IB6}}var id$,IB6="https://ph.studio.decocms.com",pd$;var nd$=D(()=>{c$();$90();eC();h5();D$();I91();dd$();id$=new W1;id$.get("/",($)=>{let Z={version:md$.version,theme:$p1(),..._H().logo&&{logo:_H().logo},...LU()&&{internalUrl:q_1()},...V0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!V0().firecrawlApiKey,hostingEnabled:!!V0().controlplaneRestUrl&&!!V0().controlplaneServiceToken,hostingControlPlaneGa:V0().hostingControlPlaneGa,monitorEnabled:!!V0().clickhouseAnalyticsUrl&&!!V0().clickhouseAnalyticsPassword,monitorGa:V0().monitorGa,auth:xy$(),posthog:qB6(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:xs()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});pd$=id$});function Jl($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function o71($){return(Jl($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")}function od$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(Jl($))}&sz=${Z}`}function td$($,Z){let X=$.trim();if(X.length<=Z)return X;let Q=X.slice(0,Z-1),Y=Q.lastIndexOf(" ");return`${(Y>Z*0.6?Q.slice(0,Y):Q).trimEnd()}\u2026`}function rd$($){let{brand:Z,domain:X,score:Q,verdict:Y}=$,G=typeof Q==="number"?`${Z} commerce report \u2014 ${Math.round(Q)}/100 \xB7 decocms`:`${Z} commerce report \xB7 decocms`,J=`See the full ${Z} scorecard \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,W=Y?.trim()?td$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):td$(`How does ${X} really perform? ${J}`,200);return{title:G,description:W}}import{z as u0}from"zod";var Cv,MB6,kB6,VB6,SB6,ad$;var sd$=D(()=>{Cv=u0.enum(["good","bad","neutral"]),MB6=u0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((X)=>X!==null&&typeof X!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},u0.object({kind:u0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:u0.coerce.string().optional(),tone:Cv.optional(),muted:u0.boolean().optional(),delta:u0.coerce.string().optional(),deltaDir:u0.enum(["up","down","neutral"]).optional(),points:u0.array(u0.coerce.number()).optional(),label:u0.coerce.string().optional()}).transform(($)=>{if($.kind==="badge"&&$.label==null)$.label=$.value??"";if($.kind==="score"){let Z=Number($.value);if(Number.isNaN(Z))return{...$,kind:"text"}}return $})),kB6=u0.preprocess(($)=>{let Z=$;if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Array.isArray(Z.cells))Z=Z.cells;if(Array.isArray(Z)&&Z.length===1&&Array.isArray(Z[0]))Z=Z[0];if(Array.isArray(Z))return Z;if(Z&&typeof Z==="object")return Object.values(Z);return Z},u0.array(MB6)),VB6={key:u0.coerce.string(),title:u0.coerce.string(),eyebrow:u0.coerce.string().optional(),headline:u0.coerce.string(),annotation:u0.coerce.string().optional(),methodology:u0.coerce.string().optional(),sources:u0.array(u0.object({name:u0.coerce.string(),logoUrl:u0.coerce.string()})).optional()},SB6=u0.discriminatedUnion("template",[u0.object({template:u0.literal("cover"),score:u0.object({value:u0.coerce.number(),max:u0.coerce.number().optional(),grade:u0.coerce.string().optional(),label:u0.coerce.string().optional()}).optional(),brandImage:u0.coerce.string().optional(),screenshot:u0.coerce.string().optional(),mobileScreenshot:u0.coerce.string().optional()}),u0.object({template:u0.literal("cta"),ctaUrl:u0.coerce.string().optional(),ctaLabel:u0.coerce.string().optional(),bullets:u0.array(u0.coerce.string()).optional()}),u0.object({template:u0.literal("series"),points:u0.array(u0.coerce.number()).min(2),xLabels:u0.array(u0.coerce.string()).min(1),unit:u0.coerce.string().optional(),callout:u0.object({index:u0.coerce.number(),value:u0.coerce.string(),tone:Cv.optional()})}),u0.object({template:u0.literal("threshold"),value:u0.coerce.string().default(""),metricLabel:u0.coerce.string().optional(),ratio:u0.coerce.number(),thresholdRatio:u0.coerce.number().optional(),thresholdLabel:u0.coerce.string().default(""),tone:Cv.optional()}),u0.object({template:u0.literal("stats"),stats:u0.array(u0.object({value:u0.coerce.string(),label:u0.coerce.string(),tone:Cv.optional()})).min(1)}),u0.object({template:u0.literal("bars"),items:u0.array(u0.object({value:u0.coerce.string(),label:u0.coerce.string(),ratio:u0.coerce.number(),tone:Cv.optional()})).min(1)}),u0.object({template:u0.literal("gauges"),gauges:u0.array(u0.object({label:u0.coerce.string(),value:u0.coerce.string(),status:u0.enum(["good","warn","bad"]).catch("warn"),caption:u0.coerce.string().optional(),ratio:u0.coerce.number().optional()})).min(1)}),u0.object({template:u0.literal("checklist"),checks:u0.array(u0.object({label:u0.coerce.string(),status:u0.enum(["pass","fail","warn"]).catch("fail"),value:u0.coerce.string().optional()})).min(1)}),u0.object({template:u0.literal("table"),columns:u0.array(u0.object({label:u0.coerce.string(),align:u0.enum(["left","right"]).optional()})).min(1),rows:u0.array(kB6).min(1),highlightRow:u0.coerce.number().optional()}),u0.object({template:u0.literal("products"),products:u0.array(u0.object({name:u0.coerce.string(),price:u0.coerce.string().optional(),image:u0.coerce.string().optional(),url:u0.coerce.string().optional()})).min(1)}),u0.object({template:u0.literal("list"),entries:u0.array(u0.object({label:u0.coerce.string(),severity:u0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:u0.coerce.number().optional()}),u0.object({template:u0.literal("keywords"),volumeLabel:u0.coerce.string().optional(),keywords:u0.array(u0.object({term:u0.coerce.string(),volume:u0.coerce.string(),position:u0.coerce.number().catch(0)})).min(1)}),u0.object({template:u0.literal("competitor"),metricLabel:u0.coerce.string().optional(),competitors:u0.array(u0.object({name:u0.coerce.string(),value:u0.coerce.string(),tone:Cv.optional(),isYou:u0.boolean().optional()})).min(1)}),u0.object({template:u0.literal("scorecard"),rivalLabel:u0.coerce.string().optional(),dimensions:u0.array(u0.object({label:u0.coerce.string(),you:u0.coerce.string(),rival:u0.coerce.string().optional(),rivalName:u0.coerce.string().optional(),tone:Cv.optional()})).min(1)})]),ad$=u0.object({...VB6,template:SB6})});function yT0($){let Z=[],X=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=ad$.safeParse(Y.props);if(G.success)return G.data;let J=G.error.issues[0];return Z.push({section_type:Y.section_type,position:Y.position,reason:J?`${J.path.join(".")||"(root)"}: ${J.message}`:"contract violation"}),null}).filter((Y)=>Y!==null),Q=X.filter((Y)=>Y.template.template!=="cover"&&Y.template.template!=="cta").map((Y)=>({key:Y.key,title:Y.title}));return{deck:{meta:{...$.meta,scores:$.summary?.scores,scannedAt:$.scanned_at,toc:Q},slides:X},drops:Z}}var r71=D(()=>{sd$()});import{join as ed$}from"path";async function _B6($){try{let Z=await fetch(`${DK({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(CB6)});if(!Z.ok)return null;let X=await Z.json(),{deck:Q}=yT0(X);if(!Q.slides.length)return null;let Y=Q.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:Q.meta.brand?.trim()||o71($),score:Q.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function TG($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function vB6($,Z){let X=Jl($),Q=Z?.brand?.trim()||o71(X),Y=od$(X,128),J=`${(V0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(X)}`,{title:W,description:K}=rd$({brand:Q,domain:X,score:Z?.score,verdict:Z?.verdict}),F=`${J}/og.png`,H=`${Q} commerce report by decocms`;return[`<title>${TG(W)}</title>`,`<meta name="description" content="${TG(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${TG(W)}" />`,`<meta property="og:description" content="${TG(K)}" />`,`<meta property="og:url" content="${TG(J)}" />`,`<meta property="og:image" content="${TG(F)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${TG(H)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${TG(W)}" />`,`<meta name="twitter:description" content="${TG(K)}" />`,`<meta name="twitter:image" content="${TG(F)}" />`,`<meta name="twitter:image:alt" content="${TG(H)}" />`,`<link rel="canonical" href="${TG(J)}" />`,`<link rel="icon" href="${TG(Y)}" sizes="any" />`].join(`
|
|
2983
|
+
`,j=await Z.createBlob(E);await Xd$(Z.owner,Z.repo,j,E);let z=L[0]??`${VT0(Q)}/${x71(O)}.json`;F.push({path:z,mode:"100644",type:"blob",sha:j});let P=z.slice(z.lastIndexOf("/")+1,-5);H.set(z,{stem:P,sha:j,content:E});for(let A of L.slice(1))F.push({path:A,mode:"100644",type:"blob",sha:null}),H.delete(A)}for(let O of $.del)for(let w of c71(K,O))F.push({path:w,mode:"100644",type:"blob",sha:null}),H.delete(w);if(F.length===0)return G;let U=Q?`${Q}/.deco/blocks.gen.json`:".deco/blocks.gen.json";if(W.some((O)=>O.type==="blob"&&O.path===U)){let O=await Promise.all([...H.values()].map(async(j)=>({stem:j.stem,content:j.content??await Z.getBlobText(j.sha)}))),{decofile:w,skipped:L}=Ps(O);if(L.length>0)console.warn("decofile gen: dropped blocks that were not valid JSON",{repo:`${Z.owner}/${Z.repo}`,branch:X,packagePath:Q,blocks:L.map((j)=>j.key)});let E=await Z.createBlob(w);F.push({path:U,mode:"100644",type:"blob",sha:E})}let N=await Z.createTree(J,F),B=await Z.createCommit({message:aN6($),treeSha:N,parentShas:[G]});try{return await Z.updateRef(X,B),B}catch(O){if(!(O instanceof d4&&O.status===422)||Y>=tN6-1)throw O;await L$($7(2000,200,Y,2,0.5))}}}function aN6($){let Z=(Y)=>{let G=Y.slice(0,3).join(", ");return Y.length>3?`${G} (+${Y.length-3} more)`:G},X=[];if($.set.size>0)X.push(`update ${Z([...$.set.keys()])}`);if($.del.size>0)X.push(`delete ${Z([...$.del])}`);let Q=`chore(decofile): ${X.join("; ")}`;return Ei0(Q,$.deps.coAuthor)}var tN6=3,n71;var jd$=D(()=>{P70();AT0();a8();rD();ST0();n71=new Map});import{createHmac as zd$,randomBytes as sN6,timingSafeEqual as eN6}from"crypto";function Pd$(){if(xT0)return xT0;let $;try{let Z=V0();$=Z.studioJwtSecret??Z.betterAuthSecret}catch{$=void 0}return xT0=$?Buffer.from($):sN6(32),xT0}function t71($){let Z=$.nowMs??Date.now(),X={o:$.organizationId,m:$.virtualMcpId,b:$.branch,e:Math.floor((Z+$B6)/1000)},Q=Buffer.from(JSON.stringify(X)).toString("base64url"),Y=zd$("sha256",Pd$()).update(Q).digest("base64url");return`${Q}.${Y}`}function Ad$($,Z){let X=$.indexOf(".");if(X<0)return!1;let Q=$.slice(0,X),Y=Buffer.from($.slice(X+1)),G=Buffer.from(zd$("sha256",Pd$()).update(Q).digest("base64url"));if(Y.length!==G.length||!eN6(Y,G))return!1;let J;try{J=JSON.parse(Buffer.from(Q,"base64url").toString())}catch{return!1}let W=Math.floor((Z.nowMs??Date.now())/1000);return J.o===Z.organizationId&&J.m===Z.virtualMcpId&&J.b===Z.branch&&typeof J.e==="number"&&J.e>=W}var $B6=21600000,xT0=null;var Td$=D(()=>{D$()});import{z as Gl}from"zod";function XB6($){return $.length>0&&$.length<=255&&!$.includes("..")&&!$.endsWith("/")&&!$.endsWith(".lock")&&ZB6.test($)}function kd$($){return $.req.header("x-forwarded-host")??new URL($.req.url).host}async function Ms($){let Z=$.get("decofileScope");return zT0($.var.studioContext,Z.organizationId,Z.githubRepo)}function ks($,Z){if(Z instanceof d4){let Q=Z.status===404?404:Z.status===409?409:Z.status===422?409:502;return $.json({error:Z.message},Q)}let X=Z instanceof Error?Z.message:String(Z);return $.json({error:X},500)}function Vd$(){let $=new W1;return $.use("/:virtualMcpId/:branch",Md$),$.use("/:virtualMcpId/:branch/*",Md$),$.get("/:virtualMcpId/:branch",async(Z)=>{let X=Z.get("decofileScope");try{let Q=await Ms(Z),Y=await Qd$(Q,X.branch,X.packagePath,{createBranchIfMissing:!!X.userId}),G={ETag:`"${Y.sha}"`,"Cache-Control":"no-store","Access-Control-Allow-Origin":"*"};if(Z.req.header("if-none-match")===`"${Y.sha}"`)return Z.body(null,304,G);if(!X.userId)return Z.body(Y.decofile,200,{...G,"content-type":"application/json"});let J=t71({organizationId:X.organizationId,virtualMcpId:X.virtualMcpId,branch:X.branch});return Z.body(`{"version":${JSON.stringify(Y.sha)},"token":${JSON.stringify(J)},"apiHost":${JSON.stringify(kd$(Z))},"decofile":${Y.decofile}}`,200,{...G,"content-type":"application/json"})}catch(Q){return ks(Z,Q)}}),$.get("/:virtualMcpId/:branch/meta",async(Z)=>{let X=Z.get("decofileScope"),Q=X.packagePath?`${X.packagePath}/.deco/meta.gen.json`:".deco/meta.gen.json";try{let Y=await Ms(Z),G=await Y.getFileTextAtRef(X.branch,Q);if(G===null){let J=await Y.getDefaultBranch();if(J!==X.branch)G=await Y.getFileTextAtRef(J,Q)}if(G===null)return Z.json({error:"meta.gen.json not committed"},404);return Z.body(G,200,{"content-type":"application/json","Cache-Control":"no-store","Access-Control-Allow-Origin":"*"})}catch(Y){return ks(Z,Y)}}),$.patch("/:virtualMcpId/:branch",YB6,async(Z)=>{let X=Z.get("decofileScope"),Q=Z.var.studioContext,Y=GB6.safeParse(await Z.req.json().catch(()=>null));if(!Y.success)return Z.json({error:"Invalid body",details:Y.error.issues},400);let G=Y.data;for(let J of[...Object.keys(G.set??{}),...G.delete??[]])try{PT0(J)}catch(W){let K=W instanceof Error?W.message:String(W);return Z.json({error:K},400)}for(let[J,W]of Object.entries(G.set??{})){if(typeof W!=="object"||W===null||Array.isArray(W))return Z.json({error:`Block "${J}" must be a JSON object`},400);if(b71(J))return Z.json({error:`Block key "${J}" collides with a framework resolver module and cannot be written`},400)}try{let J=await Ms(Z),W=await Ed$(`${X.organizationId}/${X.virtualMcpId}/${X.branch}`,{client:J,branch:X.branch,packagePath:X.packagePath,coAuthor:eu(Q)},G),K=t71({organizationId:X.organizationId,virtualMcpId:X.virtualMcpId,branch:X.branch});return Z.json({version:W,token:K,apiHost:kd$(Z)})}catch(J){return ks(Z,J)}}),$.post("/:virtualMcpId/:branch/publish",async(Z)=>{let X=Z.get("decofileScope");try{let Q=await Ms(Z),Y=await Q.getDefaultBranch();if(Y===X.branch)return Z.json({error:"Branch is already the default branch"},400);let G=`chore(decofile): publish ${X.branch}`;try{let J;try{J=await Q.mergeBranch(Y,X.branch,G)}catch(W){if(!(W instanceof d4&&W.status===409))throw W;await vT0(Q,X.branch,Y),J=await Q.mergeBranch(Y,X.branch,G)}return J?Z.json({result:"merged",sha:J}):Z.json({result:"up-to-date"})}catch(J){if(J instanceof d4&&J.status===409)return Z.json({error:"merge-conflict"},409);if(J instanceof d4&&J.status===405){let K=await Q.findOpenPullRequest(Y,X.branch)??await Q.createPullRequest({base:Y,head:X.branch,title:`Publish ${X.branch}`});return Z.json({result:"pull-request",number:K.number,url:K.html_url})}throw J}}catch(Q){return ks(Z,Q)}}),$.get("/:virtualMcpId/:branch/status",async(Z)=>{let X=Z.get("decofileScope");try{let Q=await Ms(Z),Y=await Q.getDefaultBranch();if(Y===X.branch)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});try{let[{aheadBy:G,behindBy:J},W]=await Promise.all([Q.compare(Y,X.branch),Q.getBranchHead(X.branch)]);return Z.json({baseBranch:Y,aheadBy:G,behindBy:J,lastCommitAt:W.committedAt})}catch(G){if(G instanceof d4&&G.status===404)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});throw G}}catch(Q){return ks(Z,Q)}}),$}var ZB6,Rd$=500,Id$=1048576,qd$=1024,QB6=8388608,YB6,GB6,Md$;var Sd$=D(()=>{Xt0();AT0();c$();MF();R71();jT0();i71();f71();jd$();Td$();m71();rD();ST0();ZB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;YB6=r5({maxSize:QB6,onError:($)=>$.json({error:"Payload too large"},413)}),GB6=Gl.object({set:Gl.record(Gl.string(),Gl.unknown()).optional(),delete:Gl.array(Gl.string()).optional()}).refine(($)=>Object.keys($.set??{}).length>0||($.delete?.length??0)>0,{message:"Patch must set or delete at least one block"}).refine(($)=>Object.keys($.set??{}).length+($.delete?.length??0)<=Rd$,{message:`Patch cannot touch more than ${Rd$} blocks`}).refine(($)=>Object.values($.set??{}).every((Z)=>JSON.stringify(Z).length<=Id$),{message:`Each block must be at most ${Id$} bytes`}).refine(($)=>[...Object.keys($.set??{}),...$.delete??[]].every((Z)=>Z.length<=qd$),{message:`Each block key must be at most ${qd$} characters`}),Md$=ET0(async($,Z)=>{let X=$.var.studioContext,Q=X.organization;if(!Q)return $.json({error:"Organization scope required"},500);let Y=$.req.param("virtualMcpId"),G=$.req.param("branch");if(!Y||!G)return $.json({error:"virtualMcpId and branch are required"},400);if(!XB6(G))return $.json({error:`Invalid branch name: ${G}`},400);let J=X.auth?.user?.id??null;if(!J){let B=$.req.query("token");if(!($.req.method==="GET"&&!$.req.path.match(/\/(publish|status)$/)))return $.json({error:"Unauthorized"},401);if(!B||!Ad$(B,{organizationId:Q.id,virtualMcpId:Y,branch:G}))return $.json({error:"Unauthorized"},401)}let W=await X.storage.virtualMcps.findById(Y);if(!W||W.organization_id!==Q.id)return $.json({error:"Virtual MCP not found"},404);let K=W.metadata??null;if(!JD0(K))return $.json({error:"Project has no preview server configured"},404);let H=W.connections?.map((B)=>B.connection_id)??[],U=Is(K,H);if(!U)return $.json({error:"Project has no GitHub repository"},404);let N=K?.runtime;return $.set("decofileScope",{organizationId:Q.id,virtualMcpId:Y,branch:G,packagePath:N?.path?.replace(/^\/+|\/+$/g,"")||null,githubRepo:U,userId:J}),Z()})});var Cd$=($)=>{let Z=new W1;if(Z.use("*",wv),Z.route("/",_A0()),Z.route("/",ng$()),Z.route("/",el$()),Z.route("/",rl$()),Z.route("/",DT0()),Z.route("/tools",Jc$()),Z.route("/",Qc$()),Z.route("/",Vl$({kvStorage:$.kvStorage})),Z.route("/",Ml$()),Z.route("/fs",dl$({getConnection:$.getNatsConnection})),Z.route("/sandbox",wd$()),Z.route("/decofile",Vd$()),Z.route("/",nl$()),Z.route("/deco-sites",fA0()),Z.route("/hosting",xg$()),Z.route("/monitor",dg$()),Z.route("/sso",qA0()),Z.route("/",wT0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",Cg$()),$.mountDevAssets)Z.route("/dev-assets",gA0({orgFromPath:!0}));return Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth),Z.use("/mcp/task-run/:threadId",$.mcpAuth),Z.route("/",$x$()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler),Z.route("/mcp/task-run",il$()),Z.route("/mcp",bL0()),Z.route("/mcp/self",OT0()),Z.route("/mcp",gL0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var _d$=D(()=>{c$();zA0();_g$();t91();yg$();mg$();hA0();na();d91();kl$();Sl$();ml$();tt();y91();hL0();L71();pl$();tl$();al$();$c$();Yc$();j71();Wc$();z71();xL0();Ld$();Sd$()});function JB6($){return $.filter((Z)=>Z.vendors?.alias).map((Z)=>({name:Z.name,title:Z.title,description:Z.description,logo:Z.logo,category:Z.category,vendor:{alias:Z.vendors.alias,url:Z.vendors.url}}))}var WB6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},vd$=()=>{let $=new W1;return $.use("*",WB6),$.get("/",async(Z)=>{let X=V0(),Q=X.decoSupabaseUrl,Y=X.decoSupabaseServiceKey;if(!Q||!Y)return Z.json({apps:[]});try{let G=await zY(Q,Y,"apps?select=name,title,description,logo,category,vendors(alias,url)");return Z.json({apps:JB6(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var fd$=D(()=>{c$();D$();VP0()});import{z as q1}from"zod";function vF($,Z="invalid_request_error",X=null,Q=null){return{error:{message:$,type:Z,param:X,code:Q}}}function LB6($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let X=$.substring(0,Z),Q=$.substring(Z+1);if(!X||!Q)return null;return{credentialId:X,modelId:Q}}function EB6($,Z,X){try{return JSON.parse($)}catch{throw new yd$(`Invalid JSON in tool call arguments for function '${X}' (tool_call_id: ${Z}): ${$}`)}}function jB6($){let Z={};for(let X of $)if(X.role==="assistant"&&X.tool_calls)for(let Q of X.tool_calls)Z[Q.id]=Q.function.name;return $.map((X)=>{switch(X.role){case"system":return{role:"system",content:X.content};case"user":if(typeof X.content==="string")return{role:"user",content:X.content};return{role:"user",content:X.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(X.tool_calls&&X.tool_calls.length>0)return{role:"assistant",content:X.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:EB6(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:X.content??""};case"tool":let Q=Z[X.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:X.tool_call_id,toolName:Q,output:{type:"text",value:X.content}}]}}})}function zB6($){let Z=$.map((X)=>{let Q=X.function.parameters?aY(X.function.parameters):aY({type:"object",properties:{}});return[X.function.name,V$({description:X.function.description,inputSchema:Q})]});return Object.fromEntries(Z)}function PB6($){if(!$)return;return{openai:{response_format:$}}}function AB6(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function bd$($,Z,X,Q,Y,G){let J={model:$,messages:Z,tools:X,temperature:Q.temperature,maxTokens:Q.max_tokens,topP:Q.top_p,frequencyPenalty:Q.frequency_penalty,presencePenalty:Q.presence_penalty,stopSequences:Q.stop?Array.isArray(Q.stop)?Q.stop:[Q.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function xd$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var KB6=256,FB6,HB6,UB6,NB6,BB6,OB6,DB6,wB6,yd$,gd$,hd$;var ud$=D(()=>{g4();c$();su();SU();FB6=q1.object({type:q1.literal("function"),function:q1.object({name:q1.string(),description:q1.string().optional(),parameters:q1.record(q1.string(),q1.unknown()).optional()})}),HB6=q1.object({id:q1.string(),type:q1.literal("function"),function:q1.object({name:q1.string(),arguments:q1.string()})}),UB6=q1.discriminatedUnion("role",[q1.object({role:q1.literal("system"),content:q1.string(),name:q1.string().optional()}),q1.object({role:q1.literal("user"),content:q1.union([q1.string(),q1.array(q1.union([q1.object({type:q1.literal("text"),text:q1.string()}),q1.object({type:q1.literal("image_url"),image_url:q1.object({url:q1.string(),detail:q1.string().optional()})})]))]),name:q1.string().optional()}),q1.object({role:q1.literal("assistant"),content:q1.string().nullable().optional(),name:q1.string().optional(),tool_calls:q1.array(HB6).optional()}),q1.object({role:q1.literal("tool"),content:q1.string(),tool_call_id:q1.string()})]),NB6=q1.object({type:q1.literal("text")}),BB6=q1.object({type:q1.literal("json_object")}),OB6=q1.object({type:q1.literal("json_schema"),json_schema:q1.object({name:q1.string(),description:q1.string().optional(),schema:q1.record(q1.string(),q1.unknown()),strict:q1.boolean().optional()})}),DB6=q1.union([NB6,BB6,OB6]),wB6=q1.object({model:q1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:q1.array(UB6),stream:q1.boolean().optional().default(!1),temperature:q1.number().min(0).max(2).optional(),max_tokens:q1.number().positive().optional(),top_p:q1.number().min(0).max(1).optional(),frequency_penalty:q1.number().min(-2).max(2).optional(),presence_penalty:q1.number().min(-2).max(2).optional(),stop:q1.union([q1.string(),q1.array(q1.string())]).optional(),tools:q1.array(FB6).optional(),tool_choice:q1.union([q1.literal("auto"),q1.literal("none"),q1.literal("required"),q1.object({type:q1.literal("function"),function:q1.object({name:q1.string()})})]).optional(),response_format:DB6.optional(),user:q1.string().optional()});yd$=class yd$ extends Error{constructor($){super($);this.name="MessageConversionError"}};gd$=new W1;gd$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),X=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(vF("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(vF("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==X)return $.json(vF("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Q=await $.req.json(),Y=wB6.safeParse(Q);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(vF(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=LB6(G.model);if(!J)return $.json(vF("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=J,{modelId:K}=J;if(!W){let E=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((j)=>BL(j.providerId));if(!E)return $.json(vF("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=E.id}let F;try{F=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(vF(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let H=F.aiSdk.languageModel(K),U=jB6(G.messages),N=G.tools?zB6(G.tools):void 0,B=PB6(G.response_format),O=AB6(),w=Math.floor(Date.now()/1000);if(G.stream)return sU($,async(L)=>{let E=bd$(H,U,N,G,B,$.req.raw.signal);try{let j=SO(E),z=!1,P=0,A="",I=async()=>{if(A.length===0)return;let k=A;A="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{content:k},finish_reason:null}]})})};for await(let k of j.fullStream){if(!z&&(k.type==="text-delta"||k.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(A+=k.text,A.length>=KB6)await I()}else if(k.type==="tool-call"){await I();let M=P++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:M,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await I(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{},finish_reason:xd$(k.finishReason)}],usage:k.totalUsage?{prompt_tokens:k.totalUsage.inputTokens??0,completion_tokens:k.totalUsage.outputTokens??0,total_tokens:k.totalUsage.totalTokens??0}:void 0})})}await I(),await L.writeSSE({data:"[DONE]"})}catch(j){let z=j;console.error("[openai-compat:stream] Error:",z.message),await L.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let L=bd$(H,U,N,G,B,$.req.raw.signal),E=await kO(L),j={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)j.tool_calls=E.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),j.content=null;return $.json({id:O,object:"chat.completion",created:w,model:G.model,choices:[{index:0,message:j,finish_reason:xd$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(Q){let Y=Q;if(Y.name==="AbortError")return $.json(vF("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(vF(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(vF(Y.message,"server_error"),500)}});hd$=gd$});function TB6($){if(typeof $!=="object"||$===null)return!1;let X=$.githubRepo?.url;return typeof X==="string"&&X.length>0}function ld$(){let $=new W1;return $.use("*",async(Z,X)=>{await X(),Z.header("Cache-Control","private, no-store"),Z.header("Vary","Cookie")}),$.get("/",async(Z)=>{let X=Z.get("studioContext"),Q=t0(X);if(!Q)return Z.json({error:"Authentication required"},401);let G=(Z.req.query("site")??"").trim().toLowerCase();if(!aX(G))return Z.json({error:"Invalid site slug"},400);let J=await X.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.id as id","organization.slug as slug","organization.name as name","organization.metadata as metadata"]).where("member.userId","=",Q).execute(),W=[];for(let F of J){if(!F.slug||m9(F))continue;let H=await X.storage.virtualMcps.list(F.id);for(let U of H){if(ge1(U)!==G)continue;if(!TB6(U.metadata))continue;W.push({orgSlug:F.slug,orgName:F.name??F.slug,project:{id:U.id,title:U.title,icon:U.icon??null}})}}let K={matches:W};return Z.json(K)}),$}var cd$=D(()=>{c$();hH()});var md$;var dd$=D(()=>{md$={name:"decocms",version:"4.324.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function qB6(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??IB6}}var id$,IB6="https://ph.studio.decocms.com",pd$;var nd$=D(()=>{c$();$90();eC();h5();D$();I91();dd$();id$=new W1;id$.get("/",($)=>{let Z={version:md$.version,theme:$p1(),..._H().logo&&{logo:_H().logo},...LU()&&{internalUrl:q_1()},...V0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!V0().firecrawlApiKey,hostingEnabled:!!V0().controlplaneRestUrl&&!!V0().controlplaneServiceToken,hostingControlPlaneGa:V0().hostingControlPlaneGa,monitorEnabled:!!V0().clickhouseAnalyticsUrl&&!!V0().clickhouseAnalyticsPassword,monitorGa:V0().monitorGa,auth:xy$(),posthog:qB6(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:xs()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});pd$=id$});function Jl($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function o71($){return(Jl($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")}function od$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(Jl($))}&sz=${Z}`}function td$($,Z){let X=$.trim();if(X.length<=Z)return X;let Q=X.slice(0,Z-1),Y=Q.lastIndexOf(" ");return`${(Y>Z*0.6?Q.slice(0,Y):Q).trimEnd()}\u2026`}function rd$($){let{brand:Z,domain:X,score:Q,verdict:Y}=$,G=typeof Q==="number"?`${Z} commerce report \u2014 ${Math.round(Q)}/100 \xB7 decocms`:`${Z} commerce report \xB7 decocms`,J=`See the full ${Z} scorecard \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,W=Y?.trim()?td$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):td$(`How does ${X} really perform? ${J}`,200);return{title:G,description:W}}import{z as u0}from"zod";var Cv,MB6,kB6,VB6,SB6,ad$;var sd$=D(()=>{Cv=u0.enum(["good","bad","neutral"]),MB6=u0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((X)=>X!==null&&typeof X!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},u0.object({kind:u0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:u0.coerce.string().optional(),tone:Cv.optional(),muted:u0.boolean().optional(),delta:u0.coerce.string().optional(),deltaDir:u0.enum(["up","down","neutral"]).optional(),points:u0.array(u0.coerce.number()).optional(),label:u0.coerce.string().optional()}).transform(($)=>{if($.kind==="badge"&&$.label==null)$.label=$.value??"";if($.kind==="score"){let Z=Number($.value);if(Number.isNaN(Z))return{...$,kind:"text"}}return $})),kB6=u0.preprocess(($)=>{let Z=$;if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Array.isArray(Z.cells))Z=Z.cells;if(Array.isArray(Z)&&Z.length===1&&Array.isArray(Z[0]))Z=Z[0];if(Array.isArray(Z))return Z;if(Z&&typeof Z==="object")return Object.values(Z);return Z},u0.array(MB6)),VB6={key:u0.coerce.string(),title:u0.coerce.string(),eyebrow:u0.coerce.string().optional(),headline:u0.coerce.string(),annotation:u0.coerce.string().optional(),methodology:u0.coerce.string().optional(),sources:u0.array(u0.object({name:u0.coerce.string(),logoUrl:u0.coerce.string()})).optional()},SB6=u0.discriminatedUnion("template",[u0.object({template:u0.literal("cover"),score:u0.object({value:u0.coerce.number(),max:u0.coerce.number().optional(),grade:u0.coerce.string().optional(),label:u0.coerce.string().optional()}).optional(),brandImage:u0.coerce.string().optional(),screenshot:u0.coerce.string().optional(),mobileScreenshot:u0.coerce.string().optional()}),u0.object({template:u0.literal("cta"),ctaUrl:u0.coerce.string().optional(),ctaLabel:u0.coerce.string().optional(),bullets:u0.array(u0.coerce.string()).optional()}),u0.object({template:u0.literal("series"),points:u0.array(u0.coerce.number()).min(2),xLabels:u0.array(u0.coerce.string()).min(1),unit:u0.coerce.string().optional(),callout:u0.object({index:u0.coerce.number(),value:u0.coerce.string(),tone:Cv.optional()})}),u0.object({template:u0.literal("threshold"),value:u0.coerce.string().default(""),metricLabel:u0.coerce.string().optional(),ratio:u0.coerce.number(),thresholdRatio:u0.coerce.number().optional(),thresholdLabel:u0.coerce.string().default(""),tone:Cv.optional()}),u0.object({template:u0.literal("stats"),stats:u0.array(u0.object({value:u0.coerce.string(),label:u0.coerce.string(),tone:Cv.optional()})).min(1)}),u0.object({template:u0.literal("bars"),items:u0.array(u0.object({value:u0.coerce.string(),label:u0.coerce.string(),ratio:u0.coerce.number(),tone:Cv.optional()})).min(1)}),u0.object({template:u0.literal("gauges"),gauges:u0.array(u0.object({label:u0.coerce.string(),value:u0.coerce.string(),status:u0.enum(["good","warn","bad"]).catch("warn"),caption:u0.coerce.string().optional(),ratio:u0.coerce.number().optional()})).min(1)}),u0.object({template:u0.literal("checklist"),checks:u0.array(u0.object({label:u0.coerce.string(),status:u0.enum(["pass","fail","warn"]).catch("fail"),value:u0.coerce.string().optional()})).min(1)}),u0.object({template:u0.literal("table"),columns:u0.array(u0.object({label:u0.coerce.string(),align:u0.enum(["left","right"]).optional()})).min(1),rows:u0.array(kB6).min(1),highlightRow:u0.coerce.number().optional()}),u0.object({template:u0.literal("products"),products:u0.array(u0.object({name:u0.coerce.string(),price:u0.coerce.string().optional(),image:u0.coerce.string().optional(),url:u0.coerce.string().optional()})).min(1)}),u0.object({template:u0.literal("list"),entries:u0.array(u0.object({label:u0.coerce.string(),severity:u0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:u0.coerce.number().optional()}),u0.object({template:u0.literal("keywords"),volumeLabel:u0.coerce.string().optional(),keywords:u0.array(u0.object({term:u0.coerce.string(),volume:u0.coerce.string(),position:u0.coerce.number().catch(0)})).min(1)}),u0.object({template:u0.literal("competitor"),metricLabel:u0.coerce.string().optional(),competitors:u0.array(u0.object({name:u0.coerce.string(),value:u0.coerce.string(),tone:Cv.optional(),isYou:u0.boolean().optional()})).min(1)}),u0.object({template:u0.literal("scorecard"),rivalLabel:u0.coerce.string().optional(),dimensions:u0.array(u0.object({label:u0.coerce.string(),you:u0.coerce.string(),rival:u0.coerce.string().optional(),rivalName:u0.coerce.string().optional(),tone:Cv.optional()})).min(1)})]),ad$=u0.object({...VB6,template:SB6})});function yT0($){let Z=[],X=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=ad$.safeParse(Y.props);if(G.success)return G.data;let J=G.error.issues[0];return Z.push({section_type:Y.section_type,position:Y.position,reason:J?`${J.path.join(".")||"(root)"}: ${J.message}`:"contract violation"}),null}).filter((Y)=>Y!==null),Q=X.filter((Y)=>Y.template.template!=="cover"&&Y.template.template!=="cta").map((Y)=>({key:Y.key,title:Y.title}));return{deck:{meta:{...$.meta,scores:$.summary?.scores,scannedAt:$.scanned_at,toc:Q},slides:X},drops:Z}}var r71=D(()=>{sd$()});import{join as ed$}from"path";async function _B6($){try{let Z=await fetch(`${DK({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(CB6)});if(!Z.ok)return null;let X=await Z.json(),{deck:Q}=yT0(X);if(!Q.slides.length)return null;let Y=Q.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:Q.meta.brand?.trim()||o71($),score:Q.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function TG($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function vB6($,Z){let X=Jl($),Q=Z?.brand?.trim()||o71(X),Y=od$(X,128),J=`${(V0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(X)}`,{title:W,description:K}=rd$({brand:Q,domain:X,score:Z?.score,verdict:Z?.verdict}),F=`${J}/og.png`,H=`${Q} commerce report by decocms`;return[`<title>${TG(W)}</title>`,`<meta name="description" content="${TG(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${TG(W)}" />`,`<meta property="og:description" content="${TG(K)}" />`,`<meta property="og:url" content="${TG(J)}" />`,`<meta property="og:image" content="${TG(F)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${TG(H)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${TG(W)}" />`,`<meta name="twitter:description" content="${TG(K)}" />`,`<meta name="twitter:image" content="${TG(F)}" />`,`<meta name="twitter:image:alt" content="${TG(H)}" />`,`<link rel="canonical" href="${TG(J)}" />`,`<link rel="icon" href="${TG(Y)}" sizes="any" />`].join(`
|
|
2984
2984
|
`)}function fB6($,Z){return $.replace(/<title>[\s\S]*?<\/title>\s*/i,"").replace(/<meta\s+name="(?:description|twitter:[^"]*)"[^>]*>\s*/gi,"").replace(/<meta\s+property="og:[^"]*"[^>]*>\s*/gi,"").replace(/<link\s+rel="icon"[^>]*>\s*/gi,"").replace("</head>",` ${Z}
|
|
2985
2985
|
</head>`)}function $m$($){let Z=new W1;return Z.get("/:domain/og.png",async(X)=>{let Q=Jl(X.req.param("domain")),Y=async()=>{let G=$?Bun.file(ed$($,"report-og-fallback.png")):null;if(!G||!await G.exists())return X.notFound();return X.body(new Uint8Array(await G.arrayBuffer()),200,{"Content-Type":"image/png","Cache-Control":"public, max-age=0, s-maxage=3600"})};try{let G=await fetch(`${DK({})}/api/v2/public/diagnostics/${encodeURIComponent(Q)}/og.png`,{signal:AbortSignal.timeout(bB6)}),J=G.headers.get("content-type")??"";if(!G.ok||!J.startsWith("image/")||!G.body)return Y();return X.body(G.body,200,{"Content-Type":J,"Cache-Control":"public, max-age=0, s-maxage=604800"})}catch{return Y()}}),Z.get("/:domain",async(X)=>{let Q=X.req.param("domain"),Y=$?ed$($,"index.html"):null,G=Y?Bun.file(Y):null;if(!G||!await G.exists())return X.notFound();let J=await G.text();try{let W=await _B6(Jl(Q)),K=vB6(Q,W);return X.html(fB6(J,K),200,{"Cache-Control":"public, max-age=0, s-maxage=300"})}catch{return X.html(J)}}),Z}var CB6=2500,bB6=1e4;var Zm$=D(()=>{c$();r71();EE();D$()});function Vs($,Z){return fetch(`${DK({})}${$}`,Z)}async function xB6($,Z,X){let Q=new URLSearchParams;if(Z)Q.set("pw",Z);if(X)Q.set("lang",X);let Y=Q.toString()?`?${Q.toString()}`:"",G=await Vs(`/api/v2/public/diagnostics/${encodeURIComponent($)}${Y}`,{headers:{Accept:"application/json"}});if(G.status===404)return{status:"not_found",deck:null,scanned_at:null,drops:[]};if(!G.ok)throw Error(`report read HTTP ${G.status}`);let J=await G.json(),{deck:W,drops:K}=yT0(J);return{status:W.slides.length?"ready":"empty",deck:W,scanned_at:J.scanned_at,drops:K}}var yB6,$N,Xm$=async($,Z)=>{if(!$.get("reportUser"))return $.json({error:"Authentication required"},401);await Z();return},Qm$;var Ym$=D(()=>{c$();nY();EE();r71();yB6=new Set(["complete","errored","terminated","unknown"]),$N=new W1;$N.use("*",async($,Z)=>{let X=await e$.api.getSession({headers:$.req.raw.headers});$.set("reportUser",X?.user?.id?{email:X.user.email}:void 0),await Z(),$.header("Cache-Control","private, no-store"),$.header("Vary","Cookie");return});$N.use("/link-token/*",Xm$);$N.use("/suggest",Xm$);$N.get("/site/:domain",async($)=>{let Z=$.req.param("domain").trim();if(!Z)return $.json({error:"domain is required"},400);let X=$.get("reportUser"),Q=$.req.query("key")?.trim()||void 0,Y=$.req.query("lang")?.trim()||void 0;try{let G=await xB6(Z,Q,Y);if($.header("Cache-Control","private, no-store"),X||!G.deck)return $.json(G);return $.json({...G,deck:{...G.deck,slides:G.deck.slides.slice(0,1)},truncated:G.status==="ready"})}catch{return $.json({error:"report read failed"},502)}});$N.post("/run",async($)=>{let Z=$.get("reportUser"),X;try{X=await $.req.json()}catch{return $.json({error:"invalid JSON"},400)}let Q=typeof X.domain==="string"?X.domain.trim():"";if(!Q)return $.json({error:"domain is required"},400);let Y=Z?.email,G=typeof X.distinctId==="string"&&X.distinctId.trim()&&X.distinctId.length<=200?X.distinctId.trim():void 0;try{let J=await Vs("/api/v2/diagnostics/run",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${LE({})}`},body:JSON.stringify({url:Q,...Y?{email:Y}:{},distinct_id:G})});if(!J.ok)return $.json({error:`run HTTP ${J.status}`},502);let W=await J.json(),K=W.blocked?{state:"blocked"}:W.status==="fresh"?{state:"fresh"}:W.mode==="sync"?{state:"sync"}:{state:"running",id:W.id??null};return $.json(K)}catch{return $.json({error:"run failed"},502)}});$N.get("/status",async($)=>{let Z=$.req.query("id");if(!Z)return $.json({error:"id is required"},400);try{let X=await Vs(`/api/v2/diagnostics/status?id=${encodeURIComponent(Z)}`,{headers:{Authorization:`Bearer ${LE({})}`}});if(!X.ok)return $.json({error:`status HTTP ${X.status}`},502);let Y=(await X.json()).status??"unknown",G={done:yB6.has(Y),status:Y};return $.json(G)}catch{return $.json({error:"status failed"},502)}});$N.get("/link-token/:id",async($)=>{let Z=$.req.param("id");try{let X=await Vs(`/api/v2/public/link-tokens/${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(X.status===404)return $.json(null);if(!X.ok)return $.json({error:`link token HTTP ${X.status}`},502);return $.json(await X.json())}catch{return $.json({error:"link token resolve failed"},502)}});$N.get("/suggest",async($)=>{let Z=($.req.query("q")??"").trim().slice(0,64);if(Z.length<2)return $.json({suggestions:[]});try{let X=await Vs(`/api/v2/public/suggest?q=${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(!X.ok)return $.json({suggestions:[]});let Q=await X.json();return $.json({suggestions:Array.isArray(Q.suggestions)?Q.suggestions:[]})}catch{return $.json({suggestions:[]})}});Qm$=$N});import{createHmac as gB6,timingSafeEqual as hB6}from"crypto";function Jm$($,Z,X,Q=Date.now()){if(!Z||!X)return!1;let Y,G=[];for(let F of Z.split(",")){let H=F.indexOf("=");if(H<=0)continue;let U=F.slice(0,H).trim(),N=F.slice(H+1).trim();if(U==="t")Y=N;else if(U==="v1")G.push(N)}if(!Y||G.length===0)return!1;let J=Number(Y);if(!Number.isFinite(J)||Math.abs(Q/1000-J)>uB6)return!1;let W=gB6("sha256",X).update(`${Y}.${$}`).digest("hex"),K=Buffer.from(W,"hex");return G.some((F)=>{let H=Buffer.from(F,"hex");return K.length===H.length&&hB6(K,H)})}function Wm$($){let Z;try{Z=JSON.parse($)}catch{return null}let X=cJ(Z),Q=cJ(cJ(X?.data)?.object);if(!X||typeof X.type!=="string"||!Q)return null;return{id:fF(X.id),type:X.type,created:typeof X.created==="number"?X.created:void 0,livemode:typeof X.livemode==="boolean"?X.livemode:void 0,data:{object:Q}}}function Km$($){switch($){case"active":case"trialing":return"active";case"past_due":return"past_due";default:return"canceled"}}function fF($){return typeof $==="string"?$:void 0}function cJ($){return typeof $==="object"&&$!==null?$:void 0}function gT0($){return typeof $==="number"?new Date($*1000):null}function e71($){return fF($)??fF(cJ($)?.id)}function lB6($){return e71($.subscription)??fF(cJ(cJ($.parent)?.subscription_details)?.subscription)}function cB6($){let Z=gT0($.current_period_end);if(Z)return Z;let X=cJ($.items)?.data;if(!Array.isArray(X))return null;let Q=0;for(let Y of X){let G=cJ(Y)?.current_period_end;if(typeof G==="number"&&G>Q)Q=G}return Q>0?new Date(Q*1000):null}function a71($,Z){let X=gT0($.created);return!!X&&!!Z.lastStripeEventAt&&X<Z.lastStripeEventAt}function s71($,Z){let X=gT0($.created);if(!X)return;return Z.lastStripeEventAt&&Z.lastStripeEventAt>X?void 0:X}async function dB6($,Z){let X=Z.data.object;switch(Z.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":{let Q=fF(cJ(X.metadata)?.orgId);if(!Q)return{handled:!1,reason:"no orgId"};if(fF(cJ(X.metadata)?.kind)==="topup"){if(X.mode!=="payment")return{handled:!1,reason:"topup with wrong mode"};if(fF(X.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let J=fF(X.id);if(!J)return console.error("stripe webhook: topup session without id",{eventId:Z.id,organizationId:Q}),{handled:!1,reason:"topup session without id"};let W=Number(cJ(X.metadata)?.creditCents);if(!Number.isInteger(W)||W<=0)return console.error("stripe webhook: paid topup with bad metadata \u2014 credit NOT applied",{eventId:Z.id,organizationId:Q,creditCents:cJ(X.metadata)?.creditCents}),{handled:!1,reason:"bad topup metadata"};return{handled:!0,organizationId:Q,topUp:{creditCents:W,referenceId:`stripe-topup:${J}`}}}if(X.mode!=="subscription")return{handled:!1,reason:"not a subscription checkout"};if(fF(X.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let Y=await $.getBilling(Q);if(!Y)return{handled:!1,reason:"unknown org"};let G=e71(X.subscription);if(Y.stripeSubscriptionId&&G&&Y.stripeSubscriptionId!==G)return console.error("stripe webhook: refused checkout rebind",{organizationId:Q,eventId:Z.id}),{handled:!1,reason:"org already bound to another subscription",orphanSubscriptionId:G};if(a71(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Q,{stripeCustomerId:e71(X.customer),stripeSubscriptionId:G,status:"active",lastStripeEventAt:s71(Z,Y)}),{handled:!0,organizationId:Q}}case"customer.subscription.updated":case"customer.subscription.deleted":{let Q=fF(X.id);if(!Q)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(Q);if(!Y)return{handled:!1,reason:"unknown subscription"};let G=Z.type==="customer.subscription.deleted";if(!G&&a71(Z,Y))return{handled:!1,reason:"stale event"};let J=G?"canceled":Km$(X.status);return await $.updateStripeState(Y.organizationId,{status:J,currentPeriodEnd:cB6(X),...G&&{stripeSubscriptionId:null},lastStripeEventAt:s71(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}case"invoice.paid":{let Q=lB6(X);if(!Q)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(Q);if(!Y)return{handled:!1,reason:"unknown subscription"};if(a71(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Y.organizationId,{status:"active",currentPeriodEnd:gT0(X.period_end),lastStripeEventAt:s71(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}default:return{handled:!1,reason:`unhandled event ${Z.type}`}}}function mB6($,Z){if(!Z.handled||$.livemode===!1)return null;let X=$.data.object;if(Z.topUp)return{name:"credits_topup_succeeded",organizationId:Z.organizationId,properties:{credit_cents:Z.topUp.creditCents}};switch($.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":return{name:"subscription_started",organizationId:Z.organizationId,properties:{}};case"customer.subscription.deleted":return{name:"subscription_canceled",organizationId:Z.organizationId,properties:{}};case"customer.subscription.updated":return{name:"subscription_updated",organizationId:Z.organizationId,properties:{status:Km$(X.status),...typeof X.cancel_at_period_end==="boolean"?{cancel_at_period_end:X.cancel_at_period_end}:{}}};case"invoice.paid":if(X.billing_reason==="subscription_create")return null;return{name:"subscription_renewed",organizationId:Z.organizationId,properties:{}};default:return null}}function Gm$($,Z){let X=mB6($,Z);if(!X)return;dY({event:X.name,organizationId:X.organizationId,...$.id?{uuid:Kt1(`stripe:${$.id}:${X.name}`)}:{},...$.created?{timestamp:new Date($.created*1000)}:{},properties:X.properties})}async function Fm$($){let Z=new UK(B8().db),X=await dB6(Z,$);if(!(X.handled&&X.topUp))Gm$($,X);if(X.handled&&X.topUp)await qj$({organizationId:X.organizationId,amountCents:X.topUp.creditCents,referenceId:X.topUp.referenceId}),Gm$($,X);if(!X.handled&&X.orphanSubscriptionId)try{await y0$(X.orphanSubscriptionId),console.error("stripe webhook: canceled orphan subscription",{subscriptionId:X.orphanSubscriptionId,eventId:$.id})}catch(Q){if(!(Q instanceof tY&&(Q.status===400||Q.status===404)))throw Q}return X}var uB6=300;var Hm$=D(()=>{rG();v4();v50();SE();J11()});var iB6=1048576,$X1;var Um$=D(()=>{c$();MF();D$();Hm$();$X1=new W1;$X1.post("/webhook",r5({maxSize:iB6,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=V0().stripeWebhookSecret;if(!Z)return $.json({error:"stripe billing not configured"},503);let X=await $.req.text();if(!Jm$(X,$.req.header("stripe-signature"),Z))return $.json({error:"invalid signature"},400);let Y=Wm$(X);if(!Y)return $.json({error:"invalid payload"},400);let G=await Fm$(Y);return console.log("stripe webhook",{eventId:Y.id,type:Y.type,livemode:Y.livemode,...G}),$.json({received:!0})})});import{timingSafeEqual as pB6}from"crypto";function tB6($,Z,X){if(!Z?.startsWith("sha256="))return!1;let Q=new Bun.CryptoHasher("sha256",X).update($).digest("hex"),Y=Z.slice(7);if(Y.length!==Q.length)return!1;return pB6(Buffer.from(Y),Buffer.from(Q))}var nB6=5242880,ZX1;var Nm$=D(()=>{c$();MF();r3();ZX1=new W1;ZX1.post("/webhook",r5({maxSize:nB6,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=process.env.GITHUB_WEBHOOK_SECRET;if(!Z)return $.json({error:"github webhook not configured"},503);let X=await $.req.text();if(!tB6(X,$.req.header("x-hub-signature-256"),Z))return $.json({error:"invalid signature"},400);if($.req.header("x-github-event")!=="push")return $.json({ok:!0,ignored:"event"});let Q;try{Q=JSON.parse(X)}catch{return $.json({error:"invalid payload"},400)}let Y=Q.ref,G=Q.repository?.full_name;if(!Y||!G)return $.json({ok:!0,ignored:"shape"});let W=(await $t0())?.markTenantPoolsDirty(G,Y)??[];return $.json({ok:!0,pools:W})})});function Bm$($){let Z=new cU($.db,new gX($.encryptionKey)),X=new W1;return X.get("/attachments/:token",async(Q)=>{let Y=SK$(Q.req.param("token"));if(!Y)return Q.json({error:"Invalid or expired link"},404);let G=await Z.getByOrg(Y.organizationId);if(!G)return Q.json({error:"Jira is not connected"},404);let W=await new GG(G.siteUrl,G.email,G.apiToken).downloadAttachment(Y.attachmentId);if(!W.ok||!W.body)return Q.json({error:"Jira refused the download"},502);let K=new Headers;for(let F of["content-type","content-length","content-disposition"]){let H=W.headers.get(F);if(H)K.set(F,H)}return K.set("cache-control","no-store"),new Response(W.body,{status:200,headers:K})}),X}var Om$=D(()=>{c$();iN();at0();gC()});function Dm$($){if(typeof $!=="object"||$===null)return null;let Z=$;if(Z.webhookEvent!=="jira:issue_updated")return null;let X=Z.issue?.id,Q=Z.issue?.key,Y=Z.changelog?.id;if(typeof X!=="string"&&typeof X!=="number"||typeof Q!=="string"||typeof Y!=="string"&&typeof Y!=="number")return null;let G=Z.changelog?.items?.find((J)=>J.field==="status");if(!G||typeof G.toString!=="string")return null;return{issueId:String(X),issueKey:Q,toStatus:G.toString,changelogId:String(Y)}}function wm$($,Z,X){let Q=[];for(let Y of Z){if(new Date(Y.created).getTime()<X.getTime())continue;let G=Y.items.find((J)=>J.field==="status");if(!G||typeof G.toString!=="string")continue;Q.push({issueId:$.id,issueKey:$.key,toStatus:G.toString,changelogId:Y.id})}return Q.sort((Y,G)=>Number(Y.changelogId)-Number(G.changelogId))}function aB6($){return`Jira ${$.key}: ${$.summary}`}async function hT0($,Z,X){if(!Z.enabled)return"disabled";let Q=Z.organizationId,Y=await $.storage.jiraIntegrations.getAutomation(Q,X.toStatus);if(!Y)return"no_rule";let G=new GG(Z.siteUrl,Z.email,Z.apiToken),J=await eD0(G,Z.siteUrl,X.issueId),W=await sB6($,Z,X,J);if(!await $.storage.jiraIntegrations.claimTrigger(Q,X.issueId,X.changelogId))return"duplicate";let F=await $.storage.taskBoard.update(W.id,Q,{assigneeId:d$,assignedBy:Z.createdBy},Z.createdBy);try{await ZW($,F,{instruction:Y.prompt??oB6,source:{kind:"jira",issueKey:J.key,title:aB6(J),body:`${$w0(J)}
|
|
2986
2986
|
|