decocms 4.422.3 → 4.423.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-CVtZx7OF.js → AlertCircle-D0TICR09.js} +1 -1
- package/dist/client/assets/{AreaChart-BhhKa5WC.js → AreaChart-CUuPNxtW.js} +1 -1
- package/dist/client/assets/{ArrowLeft-BCkbM4b4.js → ArrowLeft-Dv3ikfi_.js} +1 -1
- package/dist/client/assets/{ArrowRight-BBBInn6h.js → ArrowRight-BQg5v3sE.js} +1 -1
- package/dist/client/assets/{ArrowUp-DA3O9Q_5.js → ArrowUp-C_r8kJvP.js} +1 -1
- package/dist/client/assets/{CartesianChart-Dz5ej5Gk.js → CartesianChart-B5NKYnaV.js} +1 -1
- package/dist/client/assets/{Check-FcxjuFt6.js → Check-DDyUnfea.js} +1 -1
- package/dist/client/assets/{CheckCircle-BO45x9RP.js → CheckCircle-BZhzC-Lq.js} +1 -1
- package/dist/client/assets/{ChevronUp-CFC5Ebq0.js → ChevronUp-BmwN74sN.js} +1 -1
- package/dist/client/assets/{Copy01-C6Pi2Z_V.js → Copy01-Bi7e8qbR.js} +1 -1
- package/dist/client/assets/{CreditCard01-C5pPfXKY.js → CreditCard01-BlzZxZGz.js} +1 -1
- package/dist/client/assets/{DotsVertical-BLLrg_XP.js → DotsVertical-CRH2eH5L.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-KVNuaRbI.js → ErrorBarContext-VP9i5poF.js} +1 -1
- package/dist/client/assets/{Image01-B1u2Kql2.js → Image01-DsgyycUs.js} +1 -1
- package/dist/client/assets/{Key01-ClN_3drg.js → Key01-t8EGrvYD.js} +1 -1
- package/dist/client/assets/{Line-CZINWoIp.js → Line-DkJ87hSW.js} +1 -1
- package/dist/client/assets/{Link01-Vtq2lkbp.js → Link01-DzFHL2_V.js} +1 -1
- package/dist/client/assets/{LinkExternal01-F44g-br4.js → LinkExternal01-DBlSGtF-.js} +1 -1
- package/dist/client/assets/{Monitor01-DzDXiiSe.js → Monitor01-Dvmyu6xs.js} +1 -1
- package/dist/client/assets/{Palette-mWfzFBxF.js → Palette-DM4OkfOP.js} +1 -1
- package/dist/client/assets/{Plus-KRmPLJ6h.js → Plus-D-aW7BG5.js} +1 -1
- package/dist/client/assets/{SearchMd-V0a6RI0u.js → SearchMd-DevJYZC1.js} +1 -1
- package/dist/client/assets/{Sector-DOnsMWPN.js → Sector-CKl2jljC.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-CgMyE5tG.js → ShoppingBag01-CuixQdYE.js} +1 -1
- package/dist/client/assets/{Sun-BsSXClq1.js → Sun-BWHbsIL3.js} +1 -1
- package/dist/client/assets/{Tool01-DAEtx7Sx.js → Tool01-C5pi_vGi.js} +1 -1
- package/dist/client/assets/{Trash01-Cakv0Q_K.js → Trash01-DrcSVy6P.js} +1 -1
- package/dist/client/assets/{Upload01-CTQz1wiD.js → Upload01-pJceAyOc.js} +1 -1
- package/dist/client/assets/{User01-P9l9chQ8.js → User01-D8tGA0Jb.js} +1 -1
- package/dist/client/assets/{UserSquare-C8CLmWk7.js → UserSquare-DgkWkJkZ.js} +1 -1
- package/dist/client/assets/{Users01-CNwYnNBC.js → Users01-BSBGKa20.js} +1 -1
- package/dist/client/assets/{X-CKGbxNhB.js → X-A-UL58H4.js} +1 -1
- package/dist/client/assets/{XAxis-BtS9K8bJ.js → XAxis-D89vWOWA.js} +1 -1
- package/dist/client/assets/{XClose-YtRhiE3L.js → XClose-Dn0gx7Na.js} +1 -1
- package/dist/client/assets/{ZoomOut-C-nvVeIw.js → ZoomOut-B4sCUtCp.js} +1 -1
- package/dist/client/assets/{access-gate-D2ZebaFO.js → access-gate-DlGPo8aX.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-4toRZZCj.js → add-connection-dialog-CTh7cHEg.js} +1 -1
- package/dist/client/assets/{agent-analytics-BcI4DPVo.js → agent-analytics-B58hQWNu.js} +1 -1
- package/dist/client/assets/agent-app-L3JRjTa3.js +1 -0
- package/dist/client/assets/{agent-assets-oonhj5GS.js → agent-assets-CkVVtUw_.js} +1 -1
- package/dist/client/assets/{agent-automation-BJHlaGQQ.js → agent-automation-BdSzFJj6.js} +1 -1
- package/dist/client/assets/{agent-automations-CesK4r4W.js → agent-automations-B6FFvd5m.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-CCZJyALU.js → agent-connect-sources-BnHiJmOd.js} +1 -1
- package/dist/client/assets/agent-deck-CBt0aaNZ.js +1 -0
- package/dist/client/assets/{agent-e2e-DuBrWECi.js → agent-e2e-CKNT90cg.js} +1 -1
- package/dist/client/assets/{agent-experiments-vLmcxuue.js → agent-experiments-B8Yc7kgq.js} +1 -1
- package/dist/client/assets/{agent-file-BjwSU2v3.js → agent-file-DhlyKJJM.js} +1 -1
- package/dist/client/assets/{agent-git-CFegXvbB.js → agent-git-CyEYfBlL.js} +1 -1
- package/dist/client/assets/{agent-hosting-Bg7A-Ube.js → agent-hosting-DnSGlh2l.js} +1 -1
- package/dist/client/assets/{agent-icon-BwVu9Y1n.js → agent-icon-GDusCEJg.js} +1 -1
- package/dist/client/assets/agent-library-CUC9c6dQ.js +1 -0
- package/dist/client/assets/agent-library-file-ECX-lgwB.js +1 -0
- package/dist/client/assets/{agent-monitor-dV--q695.js → agent-monitor-Bf2Zgfl3.js} +1 -1
- package/dist/client/assets/{agent-overview-CKjEypvF.js → agent-overview-hgwqj49s.js} +1 -1
- package/dist/client/assets/agent-settings-BYVNZq5L.js +1 -0
- package/dist/client/assets/{agent-site-editor-DVoJkMOH.js → agent-site-editor-Cmi2iC7F.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-CxT-Xy8m.js +2 -0
- package/dist/client/assets/{agent-site-editor-content-DyztC_34.js → agent-site-editor-content-CgN2Bl5z.js} +3 -3
- package/dist/client/assets/{agent-site-editor-preview-iKb4i4S0.js → agent-site-editor-preview-DVtIxaHO.js} +3 -3
- package/dist/client/assets/agent-view-DDfsOy9P.js +1 -0
- package/dist/client/assets/{agent-view-guard-CczFiEQW.js → agent-view-guard-3BeMVm55.js} +1 -1
- package/dist/client/assets/{agents-list-Cx-MnAIR.js → agents-list-DdTFqub_.js} +1 -1
- package/dist/client/assets/{ai-providers-aCtxSLrJ.js → ai-providers-Bi7kgm6O.js} +1 -1
- package/dist/client/assets/{alert-BMhd1qkv.js → alert-BbDy7NFP.js} +1 -1
- package/dist/client/assets/{alert-dialog-BIKJBSWY.js → alert-dialog-HLOSkZOB.js} +1 -1
- package/dist/client/assets/{analytics-sections-B9AYAPpL.js → analytics-sections-BnLt9P-W.js} +1 -1
- package/dist/client/assets/api-keys-7bI6CAoW.js +1 -0
- package/dist/client/assets/{api-keys-BiSnsj4I.js → api-keys-Bk80HITt.js} +1 -1
- package/dist/client/assets/app-editor-DEiWnBTk.js +1 -0
- package/dist/client/assets/{asset-utils-DJ6ftbPl.js → asset-utils-DDVlLbj_.js} +1 -1
- package/dist/client/assets/{auth-Dy0n9IyK.js → auth-CALutWht.js} +1 -1
- package/dist/client/assets/{auth-catchall-CjRy2Hgy.js → auth-catchall-C_BAbNn3.js} +1 -1
- package/dist/client/assets/{auth-entry-C3yDP8t5.js → auth-entry-aofXC5nA.js} +1 -1
- package/dist/client/assets/{auth-split-layout-DyTMFK4R.js → auth-split-layout-CuREcF4n.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-B-9NlA8S.js → authenticate-and-persist-oauth-DfKlt3xD.js} +1 -1
- package/dist/client/assets/{automation-list-row-BcGgpCA_.js → automation-list-row-D8CVaUdf.js} +1 -1
- package/dist/client/assets/{automation-runs-CjxY4TUG.js → automation-runs-DUukTG2T.js} +1 -1
- package/dist/client/assets/{automations-UCKOjbB9.js → automations-bQGjEBPE.js} +1 -1
- package/dist/client/assets/{autosend-VbZkWu24.js → autosend-DBBJpuZK.js} +1 -1
- package/dist/client/assets/{avatar-CRdtD8pR.js → avatar-0ovcLe8b.js} +1 -1
- package/dist/client/assets/{badge-bFS7pJ24.js → badge-BGrZM0So.js} +1 -1
- package/dist/client/assets/{block-document-B_MVuzvl.js → block-document-sk39HpuP.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-CKUsc--e.js → blocks-preview-workspace-context-nXmBmkTH.js} +1 -1
- package/dist/client/assets/{buckets-DH_9H2lm.js → buckets-DLj2exnW.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-B2nzL_xr.js → build-improve-prompt-doc-B_lvpn4v.js} +1 -1
- package/dist/client/assets/{calendar-ehgWJLe7.js → calendar-DA3gfeRa.js} +1 -1
- package/dist/client/assets/{capability-load-error-DjYRR0Ds.js → capability-load-error-Dm1P3T-o.js} +1 -1
- package/dist/client/assets/{category-editor-C7ndb-3d.js → category-editor-DW03sNpU.js} +1 -1
- package/dist/client/assets/{chart-S-xxRWdH.js → chart-z9wY0-_H.js} +1 -1
- package/dist/client/assets/{chat-context-DgElWmma.js → chat-context-CUwGD452.js} +1 -1
- package/dist/client/assets/{chat-draft-Dm7KATsP.js → chat-draft-DIgJNtqC.js} +1 -1
- package/dist/client/assets/{checkbox-DY0rH-TX.js → checkbox-BLKiy7C5.js} +1 -1
- package/dist/client/assets/{choose-editor-BIPaWgYh.js → choose-editor-CJlnqjac.js} +1 -1
- package/dist/client/assets/{claim-phase-copy-CUWSS9Lf.js → claim-phase-copy-TfGEQkwA.js} +1 -1
- package/dist/client/assets/{cli-auth-success-5WpzIU3O.js → cli-auth-success-DHNia8-l.js} +1 -1
- package/dist/client/assets/{client-icons-MslZBuS6.js → client-icons-Dwd-oboA.js} +1 -1
- package/dist/client/assets/{collapsible-CHNqG-q-.js → collapsible-BgmBB7Gz.js} +1 -1
- package/dist/client/assets/{collection-detail-PSCqQ-Ir.js → collection-detail-DJCSYhwi.js} +1 -1
- package/dist/client/assets/{collection-display-button-CZEgfpX9.js → collection-display-button-BPKqpQBE.js} +1 -1
- package/dist/client/assets/{collection-search-BnXIXF-r.js → collection-search-BdTXFJja.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-8Z-CE056.js → collection-table-wrapper-BN0O4w0C.js} +1 -1
- package/dist/client/assets/{collection-tabs-Bky3kPsU.js → collection-tabs-Cmv8XuYL.js} +1 -1
- package/dist/client/assets/{combobox-CVLqBXTa.js → combobox-BZSLHRWD.js} +1 -1
- package/dist/client/assets/{command-CGF9V6Vl.js → command-Cl75qfzh.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-DXACuT5k.js → companion-mcps-section-Udx3tCqA.js} +1 -1
- package/dist/client/assets/{config-HRkFT4Cj.js → config-RxJhwfwr.js} +1 -1
- package/dist/client/assets/{connect-CT9ioKHl.js → connect-Cj8AtpGm.js} +1 -1
- package/dist/client/assets/{connect-layout-BOxr1i7G.js → connect-layout-CVg-QJiz.js} +1 -1
- package/dist/client/assets/{connection-0cqQcMBd.js → connection-Cd7KAC3j.js} +1 -1
- package/dist/client/assets/{connection-card-CVXElGSe.js → connection-card-CZd-8cKO.js} +1 -1
- package/dist/client/assets/{connection-detail-hNgr8XT5.js → connection-detail-ChNYmubK.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-ktc30XoJ.js → connection-form-helpers-BnHkbPOO.js} +1 -1
- package/dist/client/assets/{connections-DmEMDA2h.js → connections-5bsit95q.js} +1 -1
- package/dist/client/assets/{context-CP59lD4S.js → context-CY0-OS_-.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-PFEV7FIE.js → create-organization-dialog-BJI-syVb.js} +1 -1
- package/dist/client/assets/{decopilot-B7MHJNrn.js → decopilot-CwpEPcBM.js} +1 -1
- package/dist/client/assets/{dialog-jyWPb2tC.js → dialog-T1cF4Isz.js} +1 -1
- package/dist/client/assets/{discover-DKjnWS0t.js → discover-B8Vb6QFe.js} +1 -1
- package/dist/client/assets/{domain-settings-Dg0qQkrr.js → domain-settings-ZoMDZWb-.js} +1 -1
- package/dist/client/assets/{download-app-dialog-C5cTfPYs.js → download-app-dialog-CX5J4JHu.js} +1 -1
- package/dist/client/assets/{drawer-CxXWX_ie.js → drawer-CS9toniF.js} +1 -1
- package/dist/client/assets/{editor-DOUtwOEV.js → editor-C1P2LdDc.js} +1 -1
- package/dist/client/assets/{empty-state-CcOT7JmW.js → empty-state-C1TaDB8L.js} +1 -1
- package/dist/client/assets/{empty-state-pG1Fwit8.js → empty-state-DwT2yPBl.js} +1 -1
- package/dist/client/assets/{extract-connection-data-D5OmU01k.js → extract-connection-data-Bf1KweVH.js} +1 -1
- package/dist/client/assets/{feature-gate-D_-FZKAB.js → feature-gate-BRt8aqDb.js} +1 -1
- package/dist/client/assets/{feature-paywall-BptzLvdT.js → feature-paywall-C3Zu8182.js} +1 -1
- package/dist/client/assets/{file-explorer-t_EBQrR9.js → file-explorer-Bwhswy6L.js} +1 -1
- package/dist/client/assets/{file-preview-CETzBHJs.js → file-preview-YmeS7nib.js} +1 -1
- package/dist/client/assets/{file-share-button-CSpaHWIA.js → file-share-button-CuDoLSJI.js} +1 -1
- package/dist/client/assets/{file-type-icon-DOStMe7n.js → file-type-icon-Cq8DL7tW.js} +1 -1
- package/dist/client/assets/flat-project-Re8UW3fv.js +1 -0
- package/dist/client/assets/{folder-icon-Jx8GrJQl.js → folder-icon-DLVYyJvv.js} +1 -1
- package/dist/client/assets/{form-cnyZOBcC.js → form-CJazv5A2.js} +1 -1
- package/dist/client/assets/{gateway-client-IjNlqnM5.js → gateway-client-BsTCs10O.js} +1 -1
- package/dist/client/assets/{general-CqUUipBz.js → general-DQGhVKwN.js} +1 -1
- package/dist/client/assets/{home-RbvSpTmv.js → home-B3L6MzZI.js} +1 -1
- package/dist/client/assets/{index-Dd54RIq4.js → index-BCc2phaK.js} +1 -1
- package/dist/client/assets/{index-CAk57bVW.js → index-BTXUwB17.js} +1 -1
- package/dist/client/assets/{index-b8fp8LDt.js → index-BUsd5vyL.js} +2 -2
- package/dist/client/assets/{index-eyrB46Vy.js → index-C2eJS_b3.js} +1 -1
- package/dist/client/assets/{index-BdZDESUI.js → index-C3Jv2iyx.js} +1 -1
- package/dist/client/assets/{index-DYUG2RXM.js → index-CLDjs018.js} +1 -1
- package/dist/client/assets/{index-DcP5acbo.js → index-CLaPEdI0.js} +1 -1
- package/dist/client/assets/{index-D40dM9_G.js → index-CSZksa1l.js} +1 -1
- package/dist/client/assets/{index-OnxdjRP9.js → index-CaV75E0f.js} +1 -1
- package/dist/client/assets/{index-DYOIplpK.js → index-CbcOwDLn.js} +1 -1
- package/dist/client/assets/{index-DwDe_p-O.js → index-CvbzlKcn.js} +3 -3
- package/dist/client/assets/{index-4_tDDtww.js → index-Cw3vmSDe.js} +1 -1
- package/dist/client/assets/{index-C39MmaGO.js → index-DQKHdsJz.js} +1 -1
- package/dist/client/assets/{index-rpTqXmHS.js → index-DzvXOJ5M.js} +1 -1
- package/dist/client/assets/{index-BOY7zOPH.js → index-k5I82W0k.js} +1 -1
- package/dist/client/assets/{index-redirect-7mEnGUFH.js → index-redirect-Drj4S5CT.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-gIFPF-Q5.js → infiniteQueryObserver-8G_eafwS.js} +1 -1
- package/dist/client/assets/{infra-billing-BA22s6Vk.js → infra-billing-BqpkpOgg.js} +1 -1
- package/dist/client/assets/{input-Ch2ik4AP.js → input-CGJ8ukKo.js} +3 -3
- package/dist/client/assets/{input-DDkZ4YtM.js → input-CamhPcKT.js} +1 -1
- package/dist/client/assets/{input-Dhqv4uND.js → input-hVeLxGkN.js} +1 -1
- package/dist/client/assets/{integration-icon-BqF75Sx2.js → integration-icon-CE3zgH2m.js} +1 -1
- package/dist/client/assets/{label-CD-3KHsU.js → label-Dt_HMVkI.js} +1 -1
- package/dist/client/assets/{last-preview-page-CES2mhUS.js → last-preview-page-CvAhJevo.js} +1 -1
- package/dist/client/assets/{layout-zn8XiMmQ.js → layout-61ZcFPNp.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-CRrvqgvY.js → legacy-agents-deep-Bet9Cb1f.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-C5owTiPN.js → legacy-main-redirect-mHxj8mDt.js} +1 -1
- package/dist/client/assets/library-DbQhbhR2.js +1 -0
- package/dist/client/assets/{library-tab-LDdmtC3E.js → library-tab-Drb2tX_t.js} +1 -1
- package/dist/client/assets/{login-CzZNFZzZ.js → login-axDhhx7c.js} +1 -1
- package/dist/client/assets/{markdown-C2wmhZNE.js → markdown-Yd6HeyVW.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-Bfgic9Y6.js → mcp-app-renderer-Diq_XjH6.js} +1 -1
- package/dist/client/assets/{mcp-oauth-btOLn9Vw.js → mcp-oauth-pCVJlh0m.js} +1 -1
- package/dist/client/assets/{members-BjeV4aYZ.js → members-C8hfs5Al.js} +1 -1
- package/dist/client/assets/{message-templates-37PCcMuN.js → message-templates-GGyzkY4C.js} +1 -1
- package/dist/client/assets/{mini-report-page-Cpy1UAyy.js → mini-report-page-B-HFlq8d.js} +1 -1
- package/dist/client/assets/{mock-board-BVug8wD7.js → mock-board-B_x1Ufog.js} +1 -1
- package/dist/client/assets/{monaco-editor-l78K65MA.js → monaco-editor-BdMniITa.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-Bb0H1Rix.js → monitoring-stats-row-CM0eJ-oE.js} +1 -1
- package/dist/client/assets/{multi-select-RaNmnU24.js → multi-select-hFwt4PUr.js} +1 -1
- package/dist/client/assets/{mustache-DqgZNsks.js → mustache-DA_4QKEE.js} +1 -1
- package/dist/client/assets/{new-project-dialog-1J2k2mif.js → new-project-dialog-D-m_RFrz.js} +1 -1
- package/dist/client/assets/{oauth-callback-W8QHmpa4.js → oauth-callback-DpKdha_b.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-KD5D3EIS.js → oauth-callback-ai-provider-DWIKA2IO.js} +1 -1
- package/dist/client/assets/{onboarding-cHYr2QVc.js → onboarding-qTe6hbgS.js} +1 -1
- package/dist/client/assets/{openai-conversation-BIn1UYeU.js → openai-conversation-BSgfgZST.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-CkEUPeDa.js → optimistic-project-sidebar-views-DoVsicr5.js} +1 -1
- package/dist/client/assets/{org-file-open-context-De0SRuVZ.js → org-file-open-context-cFWij3_W.js} +1 -1
- package/dist/client/assets/{organization-choice-X7ttK6bk.js → organization-choice-Dy2jD1J4.js} +1 -1
- package/dist/client/assets/{orgs-xczr9FEW.js → orgs-vqrI07jL.js} +1 -1
- package/dist/client/assets/{page-seo-form-B_DGL-5l.js → page-seo-form-BtLDzg2b.js} +1 -1
- package/dist/client/assets/{pair-De735f7F.js → pair-CSM2Yjvs.js} +1 -1
- package/dist/client/assets/{plan-ladder-DOpWTd4w.js → plan-ladder-CQAXX8Ai.js} +1 -1
- package/dist/client/assets/{popover-CrMowaoE.js → popover-Dw-ACWw4.js} +1 -1
- package/dist/client/assets/{post-calendar-BWaqiPVX.js → post-calendar-zrpJaqcn.js} +1 -1
- package/dist/client/assets/{post-editor-DqTAcHZP.js → post-editor-DiKHksYc.js} +1 -1
- package/dist/client/assets/{preview-content-DG2TyiDA.js → preview-content-CvBZhQMI.js} +1 -1
- package/dist/client/assets/{preview-dialog-CGk8g9sa.js → preview-dialog-BS7EG0jc.js} +1 -1
- package/dist/client/assets/{profile-DtU4frmg.js → profile-C2BRrQgV.js} +1 -1
- package/dist/client/assets/{project-app-view-Dzxt7FUO.js → project-app-view-CC9NS9Th.js} +1 -1
- package/dist/client/assets/{project-feed-i3l9B4EK.js → project-feed-DVhU-WLA.js} +1 -1
- package/dist/client/assets/{project-icon-DsbzSgwK.js → project-icon-BPFnqDzO.js} +1 -1
- package/dist/client/assets/project-reports-DOmhSvz5.js +1 -0
- package/dist/client/assets/project-tasks-DB5k90HT.js +1 -0
- package/dist/client/assets/{projects-Dx-XXRrs.js → projects-C5gwXosm.js} +1 -1
- package/dist/client/assets/{projects-empty-state-DO7zF9CF.js → projects-empty-state-DoFaZFIV.js} +1 -1
- package/dist/client/assets/{prompts-CiuEgK_n.js → prompts-BvjsTd2s.js} +1 -1
- package/dist/client/assets/record-editor-Dg8aDtzh.js +1 -0
- package/dist/client/assets/{redirect-editor-oGDYVob4.js → redirect-editor-QrYJHohG.js} +1 -1
- package/dist/client/assets/reports-Cto_AfP7.js +1 -0
- package/dist/client/assets/{reports-DUKjGsub.js → reports-Yq4JQd7h.js} +1 -1
- package/dist/client/assets/{reports-onboarding-Cn1Pt5RV.js → reports-onboarding-Di_Ko0hL.js} +1 -1
- package/dist/client/assets/{reports-tab-DVHMgSaX.js → reports-tab-izCMVgfu.js} +2 -2
- package/dist/client/assets/{repositories-DdIRhlQT.js → repositories-BxbLvx84.js} +1 -1
- package/dist/client/assets/{repository-binding-55R_NO8O.js → repository-binding-B13LVmY3.js} +1 -1
- package/dist/client/assets/{repository-import-picker-CWfeZJ7D.js → repository-import-picker-BSeU92PL.js} +1 -1
- package/dist/client/assets/{repository-picker-CuBjKX0n.js → repository-picker-C8wpFdxo.js} +1 -1
- package/dist/client/assets/{require-capability-D-8Ab_Tx.js → require-capability-D4pjnW4a.js} +1 -1
- package/dist/client/assets/{required-auth-layout-JHtblyUI.js → required-auth-layout-CHVCu6-R.js} +1 -1
- package/dist/client/assets/{reset-password-B-zxfe28.js → reset-password-T8CFnkkw.js} +1 -1
- package/dist/client/assets/{resizable-CKFWp7Oe.js → resizable-BTDafq5j.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-rlvTUfeF.js → resolve-tab-icon-CgQIt8gp.js} +1 -1
- package/dist/client/assets/{review-settings-OjIn4a5N.js → review-settings-BrQnQcu4.js} +1 -1
- package/dist/client/assets/{rich-text-link-control-B2vsYy1E.js → rich-text-link-control-CE19fL3t.js} +1 -1
- package/dist/client/assets/{roles-BEFxXVjZ.js → roles-8Ckwq0zE.js} +1 -1
- package/dist/client/assets/{route-BuhReajl.js → route-7yEUIeSq.js} +1 -1
- package/dist/client/assets/route-DAU0wrAb.js +1 -0
- package/dist/client/assets/{route-CBVJ52nh.js → route-DgHD04wl.js} +1 -1
- package/dist/client/assets/{runnable-block-editor-DX7F5x5Z.js → runnable-block-editor-C2YwpBp2.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-3b2Ggym7.js → sandbox-lifecycle-context-BBPjPwnO.js} +1 -1
- package/dist/client/assets/{schema-NHiqAi8o.js → schema-DCW8VMPg.js} +1 -1
- package/dist/client/assets/{scroll-area-COFydPyl.js → scroll-area-DoIL-J7_.js} +1 -1
- package/dist/client/assets/{search-input-DtchHiLr.js → search-input-BY0KMdVO.js} +1 -1
- package/dist/client/assets/{search-toggle-fuY2-Hrd.js → search-toggle-C7qdc90f.js} +1 -1
- package/dist/client/assets/{secret-picker-53Y713pM.js → secret-picker-B7Q7bjk-.js} +1 -1
- package/dist/client/assets/{secrets-B55lT9Jq.js → secrets-BfwTP-o8.js} +1 -1
- package/dist/client/assets/{sections-editor-BQGJ5syj.js → sections-editor-Dpw1cpoD.js} +1 -1
- package/dist/client/assets/{select-CMOLfTUd.js → select-BmdOxcpM.js} +1 -1
- package/dist/client/assets/{select-model-D3yjsL9p.js → select-model-Bs5l1Uxo.js} +1 -1
- package/dist/client/assets/{seo-editor-BHnzEyxm.js → seo-editor-_DZGDn5m.js} +1 -1
- package/dist/client/assets/{separator-Hq7O1iJL.js → separator-DAHx7BVp.js} +1 -1
- package/dist/client/assets/{settings-tab-CZGv2Tk2.js → settings-tab-BZ2PypA4.js} +1 -1
- package/dist/client/assets/{sheet-C50lnPyk.js → sheet-CZBVpfdy.js} +1 -1
- package/dist/client/assets/{shell-layout-CdyVKBx2.js → shell-layout-Bfgq6G4r.js} +1 -1
- package/dist/client/assets/{skills-D-nKBqvh.js → skills-OhHrOnPe.js} +1 -1
- package/dist/client/assets/{sso-B0rQBNs2.js → sso-DoJQIF4-.js} +1 -1
- package/dist/client/assets/{suggestion-C9LFtFjS.js → suggestion-Com9RJW5.js} +1 -1
- package/dist/client/assets/{switch-BDTLPd_5.js → switch-yidpNHeO.js} +1 -1
- package/dist/client/assets/{synced-repos-DtyQovA-.js → synced-repos-fC7R2k2e.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-D06mui8p.js → tab-icon-glyph-C3vU34Uf.js} +1 -1
- package/dist/client/assets/{table-DEMhEl9n.js → table-CFDX0POV.js} +1 -1
- package/dist/client/assets/{tabs-BcDaFfJS.js → tabs-DNrA3FC_.js} +1 -1
- package/dist/client/assets/{task-board-Qc5P6Y-B.js → task-board-j2guF3qd.js} +1 -1
- package/dist/client/assets/{task-route-BDuG5mFb.js → task-route-DrBYdKfz.js} +1 -1
- package/dist/client/assets/{task-status-gBMnpCuT.js → task-status-BcuvoR6R.js} +1 -1
- package/dist/client/assets/{taskboard-analytics-CHiAQUS0.js → taskboard-analytics-DntKh4ie.js} +1 -1
- package/dist/client/assets/{tasks-DbomCk4g.js → tasks-BIyUZ5os.js} +1 -1
- package/dist/client/assets/tasks-DDFIbaZ6.js +1 -0
- package/dist/client/assets/{textarea-DCQxd4Ep.js → textarea-B93EqQC1.js} +1 -1
- package/dist/client/assets/{thread-analytics-CpoE5ieH.js → thread-analytics-DElSqS0X.js} +1 -1
- package/dist/client/assets/{thread-button-ehR7Dlp_.js → thread-button-CFfrQX-Q.js} +1 -1
- package/dist/client/assets/{thread-intent-CRqPosFZ.js → thread-intent-CpofUpw9.js} +1 -1
- package/dist/client/assets/{thread-route-CwwNa7rG.js → thread-route-3dqbM9EF.js} +1 -1
- package/dist/client/assets/{thread-route-BrcWXGFH.js → thread-route-BKCVVcFy.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-CCzVo7LK.js → thread-sheet-body-B61ODskP.js} +1 -1
- package/dist/client/assets/{toggle-group-JvUFZ5EE.js → toggle-group-CFSVnMSk.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-B6sD_AsQ.js → toolbar-icon-button-DyrDd5vW.js} +1 -1
- package/dist/client/assets/{tooltip-Bi7JdvkB.js → tooltip-BYRrMdTU.js} +1 -1
- package/dist/client/assets/{track-v0KVSx34.js → track-CUAOEDdq.js} +1 -1
- package/dist/client/assets/{types-C6rRSCQU.js → types-DxHf7m50.js} +1 -1
- package/dist/client/assets/{usage-stats-CuEYS-wZ.js → usage-stats-BjDhXobA.js} +1 -1
- package/dist/client/assets/{use-ai-providers-BtMw9gwm.js → use-ai-providers-BdefOf99.js} +1 -1
- package/dist/client/assets/{use-automations-C8zovgC-.js → use-automations-CNSCOWtp.js} +1 -1
- package/dist/client/assets/{use-autosave-B-NujlgN.js → use-autosave-DqxE3Iz-.js} +1 -1
- package/dist/client/assets/{use-chat-layout-state-CN6yuxIZ.js → use-chat-layout-state-CH5zZDy9.js} +1 -1
- package/dist/client/assets/{use-connect-companion-CEePh-_4.js → use-connect-companion-BVItJgjz.js} +1 -1
- package/dist/client/assets/{use-connection-Dow_xwpS.js → use-connection-CKRpxkSv.js} +1 -1
- package/dist/client/assets/{use-copy-COrhGZKC.js → use-copy-Dmaq1WUu.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-B140hp4e.js → use-create-virtual-mcp-CxAkX5Jw.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-xhHRXAbX.js → use-date-fns-locale-CeT5Twer.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-Djt-umpU.js → use-debounced-autosave-QZ1AhMoL.js} +1 -1
- package/dist/client/assets/{use-debounced-value-B8lQINn7.js → use-debounced-value-BiZFIMbE.js} +1 -1
- package/dist/client/assets/{use-deco-credits-B8qqCrVJ.js → use-deco-credits-BCSC-uQL.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-CveMqPsg.js → use-decopilot-events-CkPqvJsK.js} +1 -1
- package/dist/client/assets/{use-delete-connection-SeG3ePOh.js → use-delete-connection-CSRsZdqa.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-BUnxG0jx.js → use-deployment-admin-BF_XVx3H.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-Caoiz4Wa.js → use-fast-preview-draft-url-B__gsqLe.js} +1 -1
- package/dist/client/assets/{use-file-configs-D3-24XdK.js → use-file-configs-wcjoasdo.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-D7ld_EUt.js → use-infinite-scroll-DjT8c39O.js} +1 -1
- package/dist/client/assets/{use-join-requests-Bp-z6Voq.js → use-join-requests-BW5Nj6aD.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-Hokx6WHS.js → use-main-panel-tabs-DMgSUsdq.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-CmbIVFHS.js → use-mcp-auth-status-BfVlKEEO.js} +1 -1
- package/dist/client/assets/{use-mcp-client-D71dVc6F.js → use-mcp-client-CG8sd7Ov.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-5J9nyt1f.js → use-mcp-prompts-D6GxlnK6.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-CotgwWio.js → use-mcp-tools-rUvRF73D.js} +1 -1
- package/dist/client/assets/{use-members-DpznZCfa.js → use-members-CnAdIXEN.js} +1 -1
- package/dist/client/assets/{use-mobile-gFkCJFqu.js → use-mobile-D4eGDsYT.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-CKGWZY5B.js → use-navigate-to-agent-Bi-jClYv.js} +1 -1
- package/dist/client/assets/use-new-blocks-editor-BYIZFokZ.js +1 -0
- package/dist/client/assets/{use-open-billing-url-PTsUxw4z.js → use-open-billing-url-CX2irC1Y.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-CV7Jx-D7.js → use-org-auth-client-DOudeu1v.js} +1 -1
- package/dist/client/assets/{use-org-fs-BA8EDTNB.js → use-org-fs-BDJuIwsC.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-BzITnjia.js → use-org-repo-syncs-DjYSYWYF.js} +1 -1
- package/dist/client/assets/{use-org-sso-4TSO8HVM.js → use-org-sso-D9HEs20Y.js} +1 -1
- package/dist/client/assets/{use-organization-roles-BX_jzStw.js → use-organization-roles-DiB9rEkA.js} +1 -1
- package/dist/client/assets/{use-organization-settings-DHUs001C.js → use-organization-settings-BfWZAwmL.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-D3FhRJpf.js → use-panel-navigate-DxarUOIX.js} +1 -1
- package/dist/client/assets/{use-project-native-view-presence-Bm3KpKbG.js → use-project-native-view-presence-Bo8f4TNZ.js} +1 -1
- package/dist/client/assets/{use-project-scope-B0nCeJeZ.js → use-project-scope-SYyMWNQi.js} +1 -1
- package/dist/client/assets/{use-releases-BHojzkRf.js → use-releases-CGYl1Jwh.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-ClFQn1-r.js → use-reports-diagnostic-DLQDomu6.js} +1 -1
- package/dist/client/assets/{use-secrets-CLdLiqbt.js → use-secrets-BZlkv3Wi.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-D1HQsXgu.js → use-section-preview-base-CfFKe_kR.js} +1 -1
- package/dist/client/assets/{use-session-runtime-D4ohi0Ue.js → use-session-runtime-DDkOQbaJ.js} +1 -1
- package/dist/client/assets/{use-tags-Ct_zjiKI.js → use-tags-4xKtOqYb.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-DMpZjl1x.js → use-task-board-analytics-CFDXveTE.js} +1 -1
- package/dist/client/assets/{use-task-metadata-C8cu9VOd.js → use-task-metadata-r6lrI9oV.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-DyiU89Jz.js → use-thread-analytics-kDUcKJx0.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-D6266alc.js → use-thread-outputs-Bs1NtIov.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-CiSINUTR.js +1 -0
- package/dist/client/assets/{useQueries-BTLfD8PB.js → useQueries-mGoGxNFu.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DzB7QwWs.js +1 -0
- package/dist/client/assets/{users-zGePYZ2o.js → users-CfBwz20x.js} +1 -1
- package/dist/client/assets/{utils-BIme68Ov.js → utils-Cxj5BVDm.js} +1 -1
- package/dist/client/assets/{variant-calendar-B6xlCfDG.js → variant-calendar-D4HFAHxI.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-BQVeN4Ol.js → variant-matcher-override-hQHWeiZz.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-BzJ8plfm.js → view-mode-toggle-DuBDAhYw.js} +1 -1
- package/dist/client/assets/{virtual-mcp-D0krbeEv.js → virtual-mcp-BWnYwTvo.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +2 -2
- package/dist/server/server.js +2 -2
- package/package.json +1 -1
- package/dist/client/assets/agent-app-CDw9NPar.js +0 -1
- package/dist/client/assets/agent-deck-BQTunqEK.js +0 -1
- package/dist/client/assets/agent-library-CmLN_5gu.js +0 -1
- package/dist/client/assets/agent-library-file-exMsSt_M.js +0 -1
- package/dist/client/assets/agent-settings-j2_eVJKl.js +0 -1
- package/dist/client/assets/agent-site-editor-code-DDFejzkU.js +0 -2
- package/dist/client/assets/agent-view-CBFrWHB9.js +0 -1
- package/dist/client/assets/api-keys-B9-V0bqA.js +0 -1
- package/dist/client/assets/app-editor-DSMfMFFh.js +0 -1
- package/dist/client/assets/flat-project-B7sqVExw.js +0 -1
- package/dist/client/assets/library-BZeSnq8u.js +0 -1
- package/dist/client/assets/project-reports-B2OszKpU.js +0 -1
- package/dist/client/assets/project-tasks-BDPijl-K.js +0 -1
- package/dist/client/assets/record-editor-DfoUR1C9.js +0 -1
- package/dist/client/assets/reports-fyqF0S5-.js +0 -1
- package/dist/client/assets/route-v5ayl4uV.js +0 -1
- package/dist/client/assets/tasks-4RXJBJM9.js +0 -1
- package/dist/client/assets/use-new-blocks-editor-_HCBNSrv.js +0 -1
- package/dist/client/assets/useInfiniteQuery-CzSAJb3p.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-Bpkp3-ow.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -2178,7 +2178,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var QZ$=L(()=>{hu()});f
|
|
|
2178
2178
|
`.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${G}/${K}, keeping in old table`);continue}}await Nc`
|
|
2179
2179
|
DELETE FROM kysely_migration WHERE name = ${Q}
|
|
2180
2180
|
`.execute($)}}async function lJ$($){await ID4($),await VD4($);let Z=new hJ$({db:$,provider:{getMigrations:()=>Promise.resolve(f81)}}),{error:Q,results:X}=await Z.migrateToLatest(),Y=0;if(X?.forEach((J)=>{if(J.status==="Success")Y++;else if(J.status==="Error")console.error(`Failed to execute migration "${J.migrationName}"`)}),Q)throw console.error("Failed to migrate"),console.error(Q),Q;return Y}async function kD4($){let{keepOpen:Z=!1,database:Q,skipBetterAuth:X=!1}=$??{},Y="skipped";if(!X&&!Q)Y=await gs0();let J=Q??$8(),G=async()=>{if(!Z&&!Q)await Sw(J).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await lJ$(J.db);return await G(),{betterAuth:Y,kysely:K}}catch(K){throw await G(),K}}async function CD4(){let $=$8(),Z=new hJ$({db:$.db,provider:{getMigrations:()=>Promise.resolve(f81)}}),{error:Q,results:X}=await Z.migrateDown();if(X?.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}"`)}),Q)throw console.error("Failed to rollback migration"),console.error(Q),Q}var mJ$=L(()=>{gJ$();hs0();fQ()});async function YW0($){let Z={...process.env},Q=pQ0($,Z);console.log(Y_1(Q.settings.encryptionKey));let X=Q.settings.betterAuthSecret||(Q.settings.localMode?x7$(Q.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (YK0(),XK0)),{outputs:J,services:G}=await Y({home:Q.settings.dataDir,externalDatabaseUrl:Q.externalDatabaseUrl,externalNatsUrl:Q.externalNatsUrl});if(!Q.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (hs0(),b7$));await W(J.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (fQ(),sZ$)),{migrateToLatest:F}=await Promise.resolve().then(() => (mJ$(),cJ$)),U=H(J.databaseUrl);await F({keepOpen:!0,database:U,skipBetterAuth:!0})}let K={...Q.settings,betterAuthSecret:X,databaseUrl:J.databaseUrl,natsUrls:J.natsUrls,...J.s3?{s3Endpoint:J.s3.endpoint,s3Bucket:J.s3.bucket,s3AccessKeyId:J.s3.accessKeyId,s3SecretAccessKey:J.s3.secretAccessKey,s3ForcePathStyle:J.s3.forcePathStyle}:{}};return XZ$(K),{settings:K,services:G.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:G.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var b81=L(()=>{hu();f7$();X$()});var nJ$={};G0(nJ$,{updateService:()=>QT,subscribeCliState:()=>h81,setTuiConsoleIntercepted:()=>JW0,setServerUrl:()=>ws,setMigrationsDone:()=>Os,setDevMode:()=>_D4,resetCliStateForTests:()=>SD4,isTuiConsoleIntercepted:()=>GW0,getCliState:()=>g81,addLogEntry:()=>yw});function dJ$(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function iJ$(){return{services:dJ$(),migrationsStatus:"pending",serverUrl:null,logs:[]}}function SD4(){kJ=iJ$()}function Ds(){for(let $ of y81)$()}function g81(){return kJ}function h81($){return y81.add($),()=>y81.delete($)}function QT($){kJ={...kJ,services:kJ.services.map((Z)=>Z.name===$.name?$:Z)},Ds()}function Os(){kJ={...kJ,migrationsStatus:"done"},Ds()}function ws($){kJ={...kJ,serverUrl:$},Ds()}function yw($){let Z=[...kJ.logs,$];kJ={...kJ,logs:Z.length>500?Z.slice(-500):Z},Ds()}function _D4(){kJ={...kJ,services:[...dJ$(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},Ds()}function JW0($){pJ$=$}function GW0(){return pJ$}var kJ,y81,pJ$=!1;var XT=L(()=>{kJ=iJ$();y81=new Set});import{createServer as tJ$}from"net";function vD4($){return new Promise((Z)=>{let Q=tJ$();Q.once("error",()=>Z(!1)),Q.listen($,"0.0.0.0",()=>{Q.close(()=>Z(!0))})})}async function js($){if(await vD4($))return $;let Z=await new Promise((Q,X)=>{let Y=tJ$();Y.once("error",X),Y.listen(0,"0.0.0.0",()=>{let J=Y.address(),G=typeof J==="object"&&J?J.port:0;Y.close(()=>Q(G))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var u81=()=>{};var c81={};G0(c81,{startDevServer:()=>fD4,pipeToLogStore:()=>l81});import{join as xD4}from"path";function l81($){let Z=$.getReader(),Q=new TextDecoder,X="";function Y(){let J=X.split(`
|
|
2181
|
-
`);X=J.pop()??"";for(let G of J){let K=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;yw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:J,value:G}=await Z.read();if(J)break;X+=Q.decode(G,{stream:!0}),Y()}}catch{}if(X.trim()){let J=Bun.stripANSI(X).replace(/^\[\d+\]\s*/,"").trim();if(J)yw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function fD4($){let{baseUrl:Z,noTui:Q}=$,X=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=X?process.env.PORT:$.vitePort,J=Z||`http://localhost:${Y}`,G=X?await js(Number(Y)+1):await js(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await YW0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let O of W)QT({name:O.name,status:"ready",port:O.port});Os();let F=xD4(import.meta.dir,"..","..","..","..",".."),U=Q===!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:J,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)l81(N.stdout),l81(N.stderr);ws(J),QT({name:"Vite",status:"ready",port:Number(Y)}),QT({name:"API",status:"ready",port:Number(K.port)});let D=async(O)=>{if(N.kill(O),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (YK0(),XK0));await w(K.dataDir)}};return process.on("SIGINT",()=>D("SIGINT")),process.on("SIGTERM",()=>D("SIGTERM")),{port:Number(Y),process:N}}var m81=L(()=>{b81();XT();u81()});var KW0;var d81=L(()=>{KW0={name:"decocms",version:"4.422.3",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":"^4.0.58","@ai-sdk/google":"^4.0.76","@ai-sdk/openai":"^4.0.71","@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":"^3.1.0","@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":"^4.0.17","@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:"^7.0.107","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 yD4,Text as oJ$}from"ink";import{jsx as gD4,jsxs as rJ$}from"react/jsx-runtime";function aJ$({version:$}){return rJ$(yD4,{flexDirection:"column",marginTop:1,children:[IK0.map((Z,Q)=>gD4(oJ$,{color:VK0[Q],children:Z},Q)),rJ$(oJ$,{dimColor:!0,children:[" v",$]})]})}var sJ$=L(()=>{ea()});import{Box as YT,Text as gw}from"ink";import{Spinner as hD4}from"@inkjs/ui";import{jsx as aG,jsxs as Bc}from"react/jsx-runtime";function eJ$({status:$}){if($==="pending")return aG(hD4,{label:""});return aG(gw,{color:"green",children:"\u2713"})}function uD4($){return`${$.name}: ${$.port||"...."}`}function $G$({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return Bc(YT,{flexDirection:"column",paddingBottom:1,children:[aG(aJ$,{version:KW0.version}),aG(YT,{marginBottom:1,children:aG(gw,{dimColor:!0,children:"\u2500".repeat(80)})}),aG(YT,{children:Bc(gw,{dimColor:!0,children:["Home: ",Q]})}),Bc(YT,{gap:2,children:[$.map((Y)=>Bc(YT,{gap:1,children:[aG(gw,{children:uD4(Y)}),aG(eJ$,{status:Y.status})]},Y.name)),Bc(YT,{gap:1,children:[aG(gw,{children:"Migrations"}),aG(eJ$,{status:Z})]})]}),aG(YT,{children:X?Bc(gw,{children:["Open in browser: ",aG(gw,{color:"cyan",children:X})]}):aG(gw,{dimColor:!0,children:"Starting..."})})]})}var ZG$=L(()=>{d81();sJ$()});import{Box as lD4,Text as Es}from"ink";import{jsx as i81,jsxs as p81}from"react/jsx-runtime";function cD4($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function QG$({logs:$}){return i81(lD4,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return i81(Es,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return p81(Es,{children:[p81(Es,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),i81(Es,{color:cD4(Z.status),children:Z.status}),p81(Es,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var XG$=()=>{};var n81={};G0(n81,{App:()=>iD4});import{Box as mD4}from"ink";import{useSyncExternalStore as dD4}from"react";import{jsx as YG$,jsxs as pD4}from"react/jsx-runtime";function iD4({home:$}){let Z=dD4(h81,g81);return pD4(mD4,{flexDirection:"column",children:[YG$($G$,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),YG$(QG$,{logs:Z.logs})]})}var t81=L(()=>{ZG$();XG$();XT()});var CK="thread-gate",LL="decopilot-hosted-harness",DL="decopilot-hosted-harness-sandboxed",SK="automations",hw="background-tools",JT="task-board-github-reads";var JG$="13";function GG$($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:JG$,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var KG$=()=>{};import nD4 from"pg";async function HG$($,Z){let{databaseUrl:Q,lockTimeoutMs:X=tD4}=$,Y=$.log??((W)=>console.log(W)),J=new nD4.Client({connectionString:Q});await J.connect();let G=Date.now(),K=!1;try{while(!K){if(K=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[WG$.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-G>=X)throw Error(`Timed out after ${X}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await $$(oD4)}let W=Date.now()-G;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await J.query("SELECT pg_advisory_unlock($1)",[WG$.toString()])}catch{}await J.end().catch(()=>{})}}var WG$=8314027461559302n,tD4=600000,oD4=500;var FG$=L(()=>{X8()});function rD4(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function o81($,Z){for(let Q=0;Q<$.length;Q++){let X=$[Q];if(X===void 0)continue;if(X===Z)return $[Q+1];if(X.startsWith(`${Z}=`))return X.slice(Z.length+1)}return}function UG$(){let $=rD4();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:o81($,"--cpu-prof-dir")??process.cwd(),name:o81($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(o81($,"--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 NG$(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=s2();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),WW0=setInterval(()=>void Z().catch(()=>{}),$),WW0.unref?.(),process.on("SIGUSR2",()=>{try{let Q=Bun.generateHeapSnapshot("v8"),X=typeof Q==="string"?Q:JSON.stringify(Q),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,X),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(Q){console.error("[heap-watch] snapshot failed:",Q)}}),()=>{if(WW0)clearInterval(WW0)}}var WW0;var BG$=()=>{};import*as aD4 from"bun:jsc";function LG$(){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{sD4()}catch(J){return console.error("[stall-watchdog] failed to start sampling profiler:",J),()=>{}}let Q,X=performance.now()+Z,Y=()=>{let J=performance.now(),G=J-X;X=J+Z;let K=[];try{K=eD4()?.traces??[]}catch{}if(G>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((D)=>D.sourceURL&&!/Unknown Executable/.test(D.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(G),samplesInWindow:K.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var sD4,eD4;var DG$=L(()=>{({startSamplingProfiler:sD4,samplingProfilerStackTraces:eD4}=aD4)});function OG$(){UG$();let $=[NG$(),dZ$(),LG$()];return()=>{for(let Z of $)Z()}}var wG$=L(()=>{Cs0();BG$();DG$()});var GT=b((jG$)=>{Object.defineProperty(jG$,"__esModule",{value:!0});jG$.RepublishHeaders=jG$.DirectMsgHeaders=jG$.JsHeaders=jG$.AdvisoryKind=void 0;jG$.isOrderedPushConsumerOptions=$O4;jG$.isPullConsumer=ZO4;jG$.isPushConsumer=QO4;jG$.isBoundPushConsumerOptions=XO4;function $O4($){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 ZO4($){return $.isPullConsumer()}function QO4($){return $.isPushConsumer()}function XO4($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}jG$.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"};jG$.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"};jG$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};jG$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var sG=b((zG$)=>{Object.defineProperty(zG$,"__esModule",{value:!0});zG$.TD=zG$.TE=zG$.Empty=void 0;zG$.encode=NO4;zG$.decode=BO4;zG$.Empty=new Uint8Array(0);zG$.TE=new TextEncoder;zG$.TD=new TextDecoder;function UO4(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}function NO4(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(zG$.TE.encode($[Q]));if(Z.length===0)return zG$.Empty;if(Z.length===1)return Z[0];return UO4(...Z)}function BO4($){if(!$||$.length===0)return"";return zG$.TD.decode($)}});var eG=b((AG$)=>{Object.defineProperty(AG$,"__esModule",{value:!0});AG$.errors=AG$.PermissionViolationError=AG$.NoRespondersError=AG$.TimeoutError=AG$.RequestError=AG$.ProtocolError=AG$.ConnectionError=AG$.DrainingConnectionError=AG$.ClosedConnectionError=AG$.AuthorizationError=AG$.UserAuthenticationExpiredError=AG$.InvalidOperationError=AG$.InvalidArgumentError=AG$.InvalidSubjectError=void 0;class a81 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}AG$.InvalidSubjectError=a81;class HW0 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,Q){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((X)=>`'${X}'`),$=$.join(",");else $=`'${$}'`;return new HW0(`${$} ${Z}`,Q)}}AG$.InvalidArgumentError=HW0;class s81 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}AG$.InvalidOperationError=s81;class FW0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new FW0($);return null}}AG$.UserAuthenticationExpiredError=FW0;class UW0 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],Q=$.toLowerCase();for(let X=0;X<Z.length;X++)if(Q.indexOf(Z[X])!==-1)return new UW0($);return null}}AG$.AuthorizationError=UW0;class e81 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}AG$.ClosedConnectionError=e81;class $41 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}AG$.DrainingConnectionError=$41;class Z41 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}AG$.ConnectionError=Z41;class Q41 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}AG$.ProtocolError=Q41;class X41 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof NW0}}AG$.RequestError=X41;class Y41 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}AG$.TimeoutError=Y41;class NW0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}AG$.NoRespondersError=NW0;class BW0 extends Error{operation;subject;queue;constructor($,Z,Q,X,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=Q,this.queue=X}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let Q="publish",X="",Y=void 0,J=$.match(/(Publish|Subscription) to "(\S+)"/);if(J){if(Q=J[1].toLowerCase(),X=J[2],Q==="subscription"){let G=$.match(/using queue "(\S+)"/);if(G)Y=G[1]}}return new BW0($,Q,X,Y)}}AG$.PermissionViolationError=BW0;AG$.errors={AuthorizationError:UW0,ClosedConnectionError:e81,ConnectionError:Z41,DrainingConnectionError:$41,InvalidArgumentError:HW0,InvalidOperationError:s81,InvalidSubjectError:a81,NoRespondersError:NW0,PermissionViolationError:BW0,ProtocolError:Q41,RequestError:X41,TimeoutError:Y41,UserAuthenticationExpiredError:FW0}});var DH=b((VG$)=>{Object.defineProperty(VG$,"__esModule",{value:!0});VG$.SimpleMutex=VG$.Perf=void 0;VG$.extend=CO4;VG$.render=SO4;VG$.timeout=_O4;VG$.delay=vO4;VG$.deadline=xO4;VG$.deferred=G41;VG$.debugDeferred=fO4;VG$.shuffle=bO4;VG$.collect=yO4;VG$.jitter=IG$;VG$.backoff=gO4;VG$.nanos=hO4;VG$.millis=uO4;VG$.randomToken=mO4;var kO4=sG(),J41=eG();function CO4($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function SO4($){return kO4.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function _O4($,Z=!0){let Q=Z?new J41.TimeoutError:null,X,Y,J=new Promise((G,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new J41.TimeoutError);else K(Q)},$)});return Object.assign(J,X)}function vO4($=0){let Z,Q=new Promise((X)=>{let Y=setTimeout(()=>{X()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),X()}}});return Object.assign(Q,Z)}async function xO4($,Z=1000){let Q=G41(),X=setTimeout(()=>{Q.reject(new J41.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function G41(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function fO4(){let $={},Z=new Promise((Q,X)=>{$={resolve:(Y)=>{console.trace("resolve",Y),Q(Y)},reject:(Y)=>{console.trace("reject"),X(Y)}}});return Object.assign(Z,$)}function bO4($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function yO4($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class qG${timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,Q){let X=this.timers.get(Z);if(X===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(Q);if(Y===void 0)throw Error(`${Q} is not defined`);this.measures.set($,Y-X)}getEntries(){let $=[];return this.measures.forEach((Z,Q)=>{$.push({name:Q,duration:Z})}),$}}VG$.Perf=qG$;class MG${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=G41();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}VG$.SimpleMutex=MG$;function IG$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function gO4($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(Q){return IG$(Q>Z?$[Z]:$[Q])}}}function hO4($){return $*1e6}function uO4($){return Math.floor($/1e6)}var lO4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",OL=new Uint8Array(62);for(let $=0;$<62;$++)OL[$]=lO4.charCodeAt($);var cO4=218340105584896;function mO4(){let $=Math.floor(Math.random()*cO4),Z=$%62,Q=OL[Z];$=($-Z)/62,Z=$%62;let X=OL[Z];$=($-Z)/62,Z=$%62;let Y=OL[Z];$=($-Z)/62,Z=$%62;let J=OL[Z];$=($-Z)/62,Z=$%62;let G=OL[Z];$=($-Z)/62,Z=$%62;let K=OL[Z];$=($-Z)/62,Z=$%62;let W=OL[Z];$=($-Z)/62;let H=OL[$];return String.fromCharCode(Q,X,Y,J,G,K,W,H)}});var bG$=b((xG$)=>{Object.defineProperty(xG$,"__esModule",{value:!0});xG$.nuid=xG$.NuidImpl=void 0;var Jw4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",uw=62,DW0=12,_G$=10,CG$=33,Gw4=333,SG$=DW0+_G$,W41=new Uint8Array(uw);for(let $=0;$<uw;$++)W41[$]=Jw4.charCodeAt($);var LW0=4294967296,vG$=BigInt(uw)**BigInt(_G$),zs=Number(vG$/(1n<<32n)),K41=Number(vG$%(1n<<32n));function Kw4($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Ww4($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Kw4($)}class H41{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(SG$),this.cbuf=new Uint8Array(DW0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(zs+1)),this.seqLo=Math.floor(Math.random()*LW0);while($++<8&&this.seqHi===zs&&this.seqLo>=K41);if(this.seqHi===zs&&this.seqLo>=K41)this.seqLo=0;this.inc=Math.random()*(Gw4-CG$)+CG$|0}setPre(){Ww4(this.cbuf);for(let $=0;$<DW0;$++)this.buf[$]=W41[this.cbuf[$]%uw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=SG$-1;Q>=DW0;Q--){let X=Math.floor($/uw),J=($-X*uw)*LW0+Z,G=Math.floor(J/uw),K=J-G*uw;this.buf[Q]=W41[K],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=LW0)this.seqLo-=LW0,this.seqHi+=1;if(this.seqHi>zs||this.seqHi===zs&&this.seqLo>=K41)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()}}xG$.NuidImpl=H41;xG$.nuid=new H41});var uG$=b((gG$)=>{Object.defineProperty(gG$,"__esModule",{value:!0});gG$.nuid=gG$.Nuid=void 0;var yG$=bG$();gG$.Nuid=yG$.NuidImpl;gG$.nuid=yG$.nuid});var wW0=b((OW0)=>{Object.defineProperty(OW0,"__esModule",{value:!0});OW0.nuid=OW0.Nuid=void 0;var lG$=uG$();Object.defineProperty(OW0,"Nuid",{enumerable:!0,get:function(){return lG$.Nuid}});Object.defineProperty(OW0,"nuid",{enumerable:!0,get:function(){return lG$.nuid}})});var lw=b((cG$)=>{Object.defineProperty(cG$,"__esModule",{value:!0});cG$.DEFAULT_HOST=cG$.DEFAULT_PORT=cG$.Match=void 0;cG$.syncIterator=Lw4;cG$.createInbox=Dw4;var Nw4=wW0(),Bw4=eG();cG$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Lw4($){let Z=$[Symbol.asyncIterator]();return{async next(){let Q=await Z.next();if(Q.done)return Promise.resolve(null);return Promise.resolve(Q.value)}}}function Dw4($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Bw4.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Nw4.nuid.next()}`}cG$.DEFAULT_PORT=4222;cG$.DEFAULT_HOST="127.0.0.1"});var Ps=b((pG$)=>{Object.defineProperty(pG$,"__esModule",{value:!0});pG$.DataBuffer=void 0;var dG$=sG();class iG${buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}static fromAscii($){if(!$)$="";return dG$.TE.encode($)}static toAscii($){return dG$.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 Q=0;Q<this.buffers.length;Q++)$.set(this.buffers[Q],Z),Z+=this.buffers[Q].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 Q=this.byteLength;if($===void 0||$>Q)$=Q;let X=Z.subarray(0,$);if(Q>$)this.buffers.push(Z.subarray($));return this.byteLength=Q-$,X}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let Q=0;Q<Z.length;Q++)if(Z[Q]&&Z[Q].length)this.buffers.push(Z[Q]),this.byteLength+=Z[Q].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}}pG$.DataBuffer=iG$});var KT=b((oG$)=>{Object.defineProperty(oG$,"__esModule",{value:!0});oG$.LF=oG$.CR=oG$.CRLF=oG$.CR_LF_LEN=oG$.CR_LF=void 0;oG$.setTransportFactory=Aw4;oG$.defaultPort=Rw4;oG$.getUrlParseFn=qw4;oG$.newTransport=Mw4;oG$.getResolveFn=Iw4;oG$.protoLen=tG$;oG$.extractProtocolMessage=Vw4;var zw4=sG(),Pw4=lw(),Tw4=Ps(),$3;function Aw4($){$3=$}function Rw4(){return $3!==void 0&&$3.defaultPort!==void 0?$3.defaultPort:Pw4.DEFAULT_PORT}function qw4(){return $3!==void 0&&$3.urlParseFn?$3.urlParseFn:void 0}function Mw4(){if(!$3||typeof $3.factory!=="function")throw Error("transport fn is not set");return $3.factory()}function Iw4(){return $3!==void 0&&$3.dnsResolveFn?$3.dnsResolveFn:void 0}oG$.CR_LF=`\r
|
|
2181
|
+
`);X=J.pop()??"";for(let G of J){let K=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;yw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:J,value:G}=await Z.read();if(J)break;X+=Q.decode(G,{stream:!0}),Y()}}catch{}if(X.trim()){let J=Bun.stripANSI(X).replace(/^\[\d+\]\s*/,"").trim();if(J)yw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function fD4($){let{baseUrl:Z,noTui:Q}=$,X=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=X?process.env.PORT:$.vitePort,J=Z||`http://localhost:${Y}`,G=X?await js(Number(Y)+1):await js(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await YW0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let O of W)QT({name:O.name,status:"ready",port:O.port});Os();let F=xD4(import.meta.dir,"..","..","..","..",".."),U=Q===!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:J,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)l81(N.stdout),l81(N.stderr);ws(J),QT({name:"Vite",status:"ready",port:Number(Y)}),QT({name:"API",status:"ready",port:Number(K.port)});let D=async(O)=>{if(N.kill(O),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (YK0(),XK0));await w(K.dataDir)}};return process.on("SIGINT",()=>D("SIGINT")),process.on("SIGTERM",()=>D("SIGTERM")),{port:Number(Y),process:N}}var m81=L(()=>{b81();XT();u81()});var KW0;var d81=L(()=>{KW0={name:"decocms",version:"4.423.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":"^4.0.58","@ai-sdk/google":"^4.0.76","@ai-sdk/openai":"^4.0.71","@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":"^3.1.0","@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":"^4.0.17","@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:"^7.0.107","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 yD4,Text as oJ$}from"ink";import{jsx as gD4,jsxs as rJ$}from"react/jsx-runtime";function aJ$({version:$}){return rJ$(yD4,{flexDirection:"column",marginTop:1,children:[IK0.map((Z,Q)=>gD4(oJ$,{color:VK0[Q],children:Z},Q)),rJ$(oJ$,{dimColor:!0,children:[" v",$]})]})}var sJ$=L(()=>{ea()});import{Box as YT,Text as gw}from"ink";import{Spinner as hD4}from"@inkjs/ui";import{jsx as aG,jsxs as Bc}from"react/jsx-runtime";function eJ$({status:$}){if($==="pending")return aG(hD4,{label:""});return aG(gw,{color:"green",children:"\u2713"})}function uD4($){return`${$.name}: ${$.port||"...."}`}function $G$({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return Bc(YT,{flexDirection:"column",paddingBottom:1,children:[aG(aJ$,{version:KW0.version}),aG(YT,{marginBottom:1,children:aG(gw,{dimColor:!0,children:"\u2500".repeat(80)})}),aG(YT,{children:Bc(gw,{dimColor:!0,children:["Home: ",Q]})}),Bc(YT,{gap:2,children:[$.map((Y)=>Bc(YT,{gap:1,children:[aG(gw,{children:uD4(Y)}),aG(eJ$,{status:Y.status})]},Y.name)),Bc(YT,{gap:1,children:[aG(gw,{children:"Migrations"}),aG(eJ$,{status:Z})]})]}),aG(YT,{children:X?Bc(gw,{children:["Open in browser: ",aG(gw,{color:"cyan",children:X})]}):aG(gw,{dimColor:!0,children:"Starting..."})})]})}var ZG$=L(()=>{d81();sJ$()});import{Box as lD4,Text as Es}from"ink";import{jsx as i81,jsxs as p81}from"react/jsx-runtime";function cD4($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function QG$({logs:$}){return i81(lD4,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return i81(Es,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return p81(Es,{children:[p81(Es,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),i81(Es,{color:cD4(Z.status),children:Z.status}),p81(Es,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var XG$=()=>{};var n81={};G0(n81,{App:()=>iD4});import{Box as mD4}from"ink";import{useSyncExternalStore as dD4}from"react";import{jsx as YG$,jsxs as pD4}from"react/jsx-runtime";function iD4({home:$}){let Z=dD4(h81,g81);return pD4(mD4,{flexDirection:"column",children:[YG$($G$,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),YG$(QG$,{logs:Z.logs})]})}var t81=L(()=>{ZG$();XG$();XT()});var CK="thread-gate",LL="decopilot-hosted-harness",DL="decopilot-hosted-harness-sandboxed",SK="automations",hw="background-tools",JT="task-board-github-reads";var JG$="13";function GG$($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:JG$,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var KG$=()=>{};import nD4 from"pg";async function HG$($,Z){let{databaseUrl:Q,lockTimeoutMs:X=tD4}=$,Y=$.log??((W)=>console.log(W)),J=new nD4.Client({connectionString:Q});await J.connect();let G=Date.now(),K=!1;try{while(!K){if(K=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[WG$.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-G>=X)throw Error(`Timed out after ${X}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await $$(oD4)}let W=Date.now()-G;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await J.query("SELECT pg_advisory_unlock($1)",[WG$.toString()])}catch{}await J.end().catch(()=>{})}}var WG$=8314027461559302n,tD4=600000,oD4=500;var FG$=L(()=>{X8()});function rD4(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function o81($,Z){for(let Q=0;Q<$.length;Q++){let X=$[Q];if(X===void 0)continue;if(X===Z)return $[Q+1];if(X.startsWith(`${Z}=`))return X.slice(Z.length+1)}return}function UG$(){let $=rD4();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:o81($,"--cpu-prof-dir")??process.cwd(),name:o81($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(o81($,"--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 NG$(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=s2();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),WW0=setInterval(()=>void Z().catch(()=>{}),$),WW0.unref?.(),process.on("SIGUSR2",()=>{try{let Q=Bun.generateHeapSnapshot("v8"),X=typeof Q==="string"?Q:JSON.stringify(Q),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,X),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(Q){console.error("[heap-watch] snapshot failed:",Q)}}),()=>{if(WW0)clearInterval(WW0)}}var WW0;var BG$=()=>{};import*as aD4 from"bun:jsc";function LG$(){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{sD4()}catch(J){return console.error("[stall-watchdog] failed to start sampling profiler:",J),()=>{}}let Q,X=performance.now()+Z,Y=()=>{let J=performance.now(),G=J-X;X=J+Z;let K=[];try{K=eD4()?.traces??[]}catch{}if(G>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((D)=>D.sourceURL&&!/Unknown Executable/.test(D.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(G),samplesInWindow:K.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var sD4,eD4;var DG$=L(()=>{({startSamplingProfiler:sD4,samplingProfilerStackTraces:eD4}=aD4)});function OG$(){UG$();let $=[NG$(),dZ$(),LG$()];return()=>{for(let Z of $)Z()}}var wG$=L(()=>{Cs0();BG$();DG$()});var GT=b((jG$)=>{Object.defineProperty(jG$,"__esModule",{value:!0});jG$.RepublishHeaders=jG$.DirectMsgHeaders=jG$.JsHeaders=jG$.AdvisoryKind=void 0;jG$.isOrderedPushConsumerOptions=$O4;jG$.isPullConsumer=ZO4;jG$.isPushConsumer=QO4;jG$.isBoundPushConsumerOptions=XO4;function $O4($){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 ZO4($){return $.isPullConsumer()}function QO4($){return $.isPushConsumer()}function XO4($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}jG$.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"};jG$.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"};jG$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};jG$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var sG=b((zG$)=>{Object.defineProperty(zG$,"__esModule",{value:!0});zG$.TD=zG$.TE=zG$.Empty=void 0;zG$.encode=NO4;zG$.decode=BO4;zG$.Empty=new Uint8Array(0);zG$.TE=new TextEncoder;zG$.TD=new TextDecoder;function UO4(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}function NO4(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(zG$.TE.encode($[Q]));if(Z.length===0)return zG$.Empty;if(Z.length===1)return Z[0];return UO4(...Z)}function BO4($){if(!$||$.length===0)return"";return zG$.TD.decode($)}});var eG=b((AG$)=>{Object.defineProperty(AG$,"__esModule",{value:!0});AG$.errors=AG$.PermissionViolationError=AG$.NoRespondersError=AG$.TimeoutError=AG$.RequestError=AG$.ProtocolError=AG$.ConnectionError=AG$.DrainingConnectionError=AG$.ClosedConnectionError=AG$.AuthorizationError=AG$.UserAuthenticationExpiredError=AG$.InvalidOperationError=AG$.InvalidArgumentError=AG$.InvalidSubjectError=void 0;class a81 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}AG$.InvalidSubjectError=a81;class HW0 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,Q){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((X)=>`'${X}'`),$=$.join(",");else $=`'${$}'`;return new HW0(`${$} ${Z}`,Q)}}AG$.InvalidArgumentError=HW0;class s81 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}AG$.InvalidOperationError=s81;class FW0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new FW0($);return null}}AG$.UserAuthenticationExpiredError=FW0;class UW0 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],Q=$.toLowerCase();for(let X=0;X<Z.length;X++)if(Q.indexOf(Z[X])!==-1)return new UW0($);return null}}AG$.AuthorizationError=UW0;class e81 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}AG$.ClosedConnectionError=e81;class $41 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}AG$.DrainingConnectionError=$41;class Z41 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}AG$.ConnectionError=Z41;class Q41 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}AG$.ProtocolError=Q41;class X41 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof NW0}}AG$.RequestError=X41;class Y41 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}AG$.TimeoutError=Y41;class NW0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}AG$.NoRespondersError=NW0;class BW0 extends Error{operation;subject;queue;constructor($,Z,Q,X,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=Q,this.queue=X}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let Q="publish",X="",Y=void 0,J=$.match(/(Publish|Subscription) to "(\S+)"/);if(J){if(Q=J[1].toLowerCase(),X=J[2],Q==="subscription"){let G=$.match(/using queue "(\S+)"/);if(G)Y=G[1]}}return new BW0($,Q,X,Y)}}AG$.PermissionViolationError=BW0;AG$.errors={AuthorizationError:UW0,ClosedConnectionError:e81,ConnectionError:Z41,DrainingConnectionError:$41,InvalidArgumentError:HW0,InvalidOperationError:s81,InvalidSubjectError:a81,NoRespondersError:NW0,PermissionViolationError:BW0,ProtocolError:Q41,RequestError:X41,TimeoutError:Y41,UserAuthenticationExpiredError:FW0}});var DH=b((VG$)=>{Object.defineProperty(VG$,"__esModule",{value:!0});VG$.SimpleMutex=VG$.Perf=void 0;VG$.extend=CO4;VG$.render=SO4;VG$.timeout=_O4;VG$.delay=vO4;VG$.deadline=xO4;VG$.deferred=G41;VG$.debugDeferred=fO4;VG$.shuffle=bO4;VG$.collect=yO4;VG$.jitter=IG$;VG$.backoff=gO4;VG$.nanos=hO4;VG$.millis=uO4;VG$.randomToken=mO4;var kO4=sG(),J41=eG();function CO4($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function SO4($){return kO4.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function _O4($,Z=!0){let Q=Z?new J41.TimeoutError:null,X,Y,J=new Promise((G,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new J41.TimeoutError);else K(Q)},$)});return Object.assign(J,X)}function vO4($=0){let Z,Q=new Promise((X)=>{let Y=setTimeout(()=>{X()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),X()}}});return Object.assign(Q,Z)}async function xO4($,Z=1000){let Q=G41(),X=setTimeout(()=>{Q.reject(new J41.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function G41(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function fO4(){let $={},Z=new Promise((Q,X)=>{$={resolve:(Y)=>{console.trace("resolve",Y),Q(Y)},reject:(Y)=>{console.trace("reject"),X(Y)}}});return Object.assign(Z,$)}function bO4($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function yO4($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class qG${timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,Q){let X=this.timers.get(Z);if(X===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(Q);if(Y===void 0)throw Error(`${Q} is not defined`);this.measures.set($,Y-X)}getEntries(){let $=[];return this.measures.forEach((Z,Q)=>{$.push({name:Q,duration:Z})}),$}}VG$.Perf=qG$;class MG${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=G41();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}VG$.SimpleMutex=MG$;function IG$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function gO4($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(Q){return IG$(Q>Z?$[Z]:$[Q])}}}function hO4($){return $*1e6}function uO4($){return Math.floor($/1e6)}var lO4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",OL=new Uint8Array(62);for(let $=0;$<62;$++)OL[$]=lO4.charCodeAt($);var cO4=218340105584896;function mO4(){let $=Math.floor(Math.random()*cO4),Z=$%62,Q=OL[Z];$=($-Z)/62,Z=$%62;let X=OL[Z];$=($-Z)/62,Z=$%62;let Y=OL[Z];$=($-Z)/62,Z=$%62;let J=OL[Z];$=($-Z)/62,Z=$%62;let G=OL[Z];$=($-Z)/62,Z=$%62;let K=OL[Z];$=($-Z)/62,Z=$%62;let W=OL[Z];$=($-Z)/62;let H=OL[$];return String.fromCharCode(Q,X,Y,J,G,K,W,H)}});var bG$=b((xG$)=>{Object.defineProperty(xG$,"__esModule",{value:!0});xG$.nuid=xG$.NuidImpl=void 0;var Jw4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",uw=62,DW0=12,_G$=10,CG$=33,Gw4=333,SG$=DW0+_G$,W41=new Uint8Array(uw);for(let $=0;$<uw;$++)W41[$]=Jw4.charCodeAt($);var LW0=4294967296,vG$=BigInt(uw)**BigInt(_G$),zs=Number(vG$/(1n<<32n)),K41=Number(vG$%(1n<<32n));function Kw4($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Ww4($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Kw4($)}class H41{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(SG$),this.cbuf=new Uint8Array(DW0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(zs+1)),this.seqLo=Math.floor(Math.random()*LW0);while($++<8&&this.seqHi===zs&&this.seqLo>=K41);if(this.seqHi===zs&&this.seqLo>=K41)this.seqLo=0;this.inc=Math.random()*(Gw4-CG$)+CG$|0}setPre(){Ww4(this.cbuf);for(let $=0;$<DW0;$++)this.buf[$]=W41[this.cbuf[$]%uw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=SG$-1;Q>=DW0;Q--){let X=Math.floor($/uw),J=($-X*uw)*LW0+Z,G=Math.floor(J/uw),K=J-G*uw;this.buf[Q]=W41[K],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=LW0)this.seqLo-=LW0,this.seqHi+=1;if(this.seqHi>zs||this.seqHi===zs&&this.seqLo>=K41)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()}}xG$.NuidImpl=H41;xG$.nuid=new H41});var uG$=b((gG$)=>{Object.defineProperty(gG$,"__esModule",{value:!0});gG$.nuid=gG$.Nuid=void 0;var yG$=bG$();gG$.Nuid=yG$.NuidImpl;gG$.nuid=yG$.nuid});var wW0=b((OW0)=>{Object.defineProperty(OW0,"__esModule",{value:!0});OW0.nuid=OW0.Nuid=void 0;var lG$=uG$();Object.defineProperty(OW0,"Nuid",{enumerable:!0,get:function(){return lG$.Nuid}});Object.defineProperty(OW0,"nuid",{enumerable:!0,get:function(){return lG$.nuid}})});var lw=b((cG$)=>{Object.defineProperty(cG$,"__esModule",{value:!0});cG$.DEFAULT_HOST=cG$.DEFAULT_PORT=cG$.Match=void 0;cG$.syncIterator=Lw4;cG$.createInbox=Dw4;var Nw4=wW0(),Bw4=eG();cG$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Lw4($){let Z=$[Symbol.asyncIterator]();return{async next(){let Q=await Z.next();if(Q.done)return Promise.resolve(null);return Promise.resolve(Q.value)}}}function Dw4($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Bw4.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Nw4.nuid.next()}`}cG$.DEFAULT_PORT=4222;cG$.DEFAULT_HOST="127.0.0.1"});var Ps=b((pG$)=>{Object.defineProperty(pG$,"__esModule",{value:!0});pG$.DataBuffer=void 0;var dG$=sG();class iG${buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}static fromAscii($){if(!$)$="";return dG$.TE.encode($)}static toAscii($){return dG$.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 Q=0;Q<this.buffers.length;Q++)$.set(this.buffers[Q],Z),Z+=this.buffers[Q].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 Q=this.byteLength;if($===void 0||$>Q)$=Q;let X=Z.subarray(0,$);if(Q>$)this.buffers.push(Z.subarray($));return this.byteLength=Q-$,X}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let Q=0;Q<Z.length;Q++)if(Z[Q]&&Z[Q].length)this.buffers.push(Z[Q]),this.byteLength+=Z[Q].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}}pG$.DataBuffer=iG$});var KT=b((oG$)=>{Object.defineProperty(oG$,"__esModule",{value:!0});oG$.LF=oG$.CR=oG$.CRLF=oG$.CR_LF_LEN=oG$.CR_LF=void 0;oG$.setTransportFactory=Aw4;oG$.defaultPort=Rw4;oG$.getUrlParseFn=qw4;oG$.newTransport=Mw4;oG$.getResolveFn=Iw4;oG$.protoLen=tG$;oG$.extractProtocolMessage=Vw4;var zw4=sG(),Pw4=lw(),Tw4=Ps(),$3;function Aw4($){$3=$}function Rw4(){return $3!==void 0&&$3.defaultPort!==void 0?$3.defaultPort:Pw4.DEFAULT_PORT}function qw4(){return $3!==void 0&&$3.urlParseFn?$3.urlParseFn:void 0}function Mw4(){if(!$3||typeof $3.factory!=="function")throw Error("transport fn is not set");return $3.factory()}function Iw4(){return $3!==void 0&&$3.dnsResolveFn?$3.dnsResolveFn:void 0}oG$.CR_LF=`\r
|
|
2182
2182
|
`;oG$.CR_LF_LEN=oG$.CR_LF.length;oG$.CRLF=Tw4.DataBuffer.fromAscii(oG$.CR_LF);oG$.CR=new Uint8Array(oG$.CRLF)[0];oG$.LF=new Uint8Array(oG$.CRLF)[1];function tG$($){for(let Z=0;Z<$.length;Z++){let Q=Z+1;if($.byteLength>Q&&$[Z]===oG$.CR&&$[Q]===oG$.LF)return Q+1}return 0}function Vw4($){let Z=tG$($);if(Z>0){let X=new Uint8Array($).slice(0,Z);return zw4.TD.decode(X)}return""}});var L41=b((X3$)=>{Object.defineProperty(X3$,"__esModule",{value:!0});X3$.ipV4=$3$;X3$.isIP=hw4;X3$.parseIP=Z3$;var Ts=4,WT=16,jW0=48,eG$=57,aG$=65,yw4=70,sG$=97,gw4=102,B41=16777215;function $3$($,Z,Q,X){let Y=new Uint8Array(WT);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((G,K)=>{Y[K]=G}),Y[12]=$,Y[13]=Z,Y[14]=Q,Y[15]=X,Y}function hw4($){return Z3$($)!==void 0}function Z3$($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return Q3$($);case":":return uw4($)}return}function Q3$($){let Z=new Uint8Array(Ts);for(let Q=0;Q<Ts;Q++){if($.length===0)return;if(Q>0){if($[0]!==".")return;$=$.substring(1)}let{n:X,c:Y,ok:J}=lw4($);if(!J||X>255)return;$=$.substring(Y),Z[Q]=X}return $3$(Z[0],Z[1],Z[2],Z[3])}function uw4($){let Z=new Uint8Array(WT),Q=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(Q=0,$=$.substring(2),$.length===0)return Z}let X=0;while(X<WT){let{n:Y,c:J,ok:G}=cw4($);if(!G||Y>65535)return;if(J<$.length&&$[J]==="."){if(Q<0&&X!=WT-Ts)return;if(X+Ts>WT)return;let K=Q3$($);if(K===void 0)return;Z[X]=K[12],Z[X+1]=K[13],Z[X+2]=K[14],Z[X+3]=K[15],$="",X+=Ts;break}if(Z[X]=Y>>8,Z[X+1]=Y,X+=2,$=$.substring(J),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(Q>=0)return;if(Q=X,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(X<WT){if(Q<0)return;let Y=WT-X;for(let J=X-1;J>=Q;J--)Z[J+Y]=Z[J];for(let J=Q+Y-1;J>=Q;J--)Z[J]=0}else if(Q>=0)return;return Z}function lw4($){let Z=0,Q=0;for(Z=0;Z<$.length&&jW0<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=eG$;Z++)if(Q=Q*10+($.charCodeAt(Z)-jW0),Q>=B41)return{n:B41,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:Q,c:Z,ok:!0}}function cw4($){let Z=0,Q=0;for(Q=0;Q<$.length;Q++){if(jW0<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=eG$)Z*=16,Z+=$.charCodeAt(Q)-jW0;else if(sG$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=gw4)Z*=16,Z+=$.charCodeAt(Q)-sG$+10;else if(aG$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=yw4)Z*=16,Z+=$.charCodeAt(Q)-aG$+10;else break;if(Z>=B41)return{n:0,c:Q,ok:!1}}if(Q===0)return{n:0,c:Q,ok:!1};return{n:Z,c:Q,ok:!0}}});var z41=b((J3$)=>{Object.defineProperty(J3$,"__esModule",{value:!0});J3$.Servers=J3$.ServerImpl=void 0;J3$.isIPV4OrHostname=Y3$;J3$.hostPort=E41;var D41=KT(),O41=DH(),w41=L41(),pw4=lw(),nw4=eG();function Y3$($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function j41($){return!Y3$($)}function tw4($){let Q=$.toUpperCase().indexOf("::FFFF:");if(Q!==-1&&$.indexOf(".")!==-1){let X=$.substring(Q+7);return X=X.replace("[",""),X.replace("]","")}return $}function E41($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=tw4($),j41($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=j41($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),Q=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):pw4.DEFAULT_PORT,Y=new URL(`${Q===80?"https":"http"}://${$}`);Y.port=`${Q}`;let J=Y.hostname;if(J.charAt(0)==="[")J=J.substring(1,J.length-1);return{listen:Y.host,hostname:J,port:Q}}class Lc{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let Q=E41($);this.listen=Q.listen,this.hostname=Q.hostname,this.port=Q.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,w41.isIP)(this.hostname))return[this];else{let Q=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${Q.join(",")}`);for(let X of Q){let Y=this.port===80?"https":"http",J=new URL(`${Y}://${j41(X)?"["+X+"]":X}`);J.port=`${this.port}`;let G=new Lc(J.host,!1);G.tlsName=this.hostname,Z.push(G)}}if($.randomize)(0,O41.shuffle)(Z);return this.resolves=Z,Z}}J3$.ServerImpl=Lc;class EW0{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw nw4.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,D41.getUrlParseFn)(),Q=new Map;for(let Y of this.servers)Q.set(Y.listen,Y);let X=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:J}=E41(Y),G=Q.get(J);if(G)G.gossiped=!1,X.push(G);else X.push(new Lc(Y))}if(this.randomize)(0,O41.shuffle)(X);if(this.servers=X,this.currentServer===void 0||!X.includes(this.currentServer))this.currentServer=X[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,w41.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let Q=(0,D41.getUrlParseFn)();$=Q?Q($):$;let X=new Lc($,Z);if((0,w41.isIP)(X.hostname))X.tlsName=this.tlsName;this.servers.push(X)}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 EW0.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return EW0.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 Q=[],X=[],Y=(0,D41.getUrlParseFn)(),J=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new Lc(K,!0);J.set(K,W)});let G=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&J.get(H)===void 0)G.push(W);J.delete(H)}),G.reverse(),G.forEach((K)=>{let W=this.servers.splice(K,1);X=X.concat(W[0].listen)}),J.forEach((K,W)=>{this.servers.push(K),Q.push(W)}),this.randomize&&Q.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,O41.shuffle)(W),this.servers=K?[K,...W]:W}return{added:Q,deleted:X}}}J3$.Servers=EW0});var zW0=b((H3$)=>{Object.defineProperty(H3$,"__esModule",{value:!0});H3$.QueuedIteratorImpl=void 0;var P41=DH(),K3$=eG();class W3${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,P41.deferred)(),this.yields=[],this.iterClosed=(0,P41.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(Q){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new K3$.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new K3$.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 X=$[Z];try{X()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let Q=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-Q:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,P41.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}}H3$.QueuedIteratorImpl=W3$});var T41=b((B3$)=>{Object.defineProperty(B3$,"__esModule",{value:!0});B3$.MuxSubscription=void 0;var sw4=lw(),U3$=eG();class N3${baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,sw4.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((Q)=>{Q.resolver(Z,{})}),!0;if(Z.operation==="publish"){let Q=this.all().find((X)=>{return X.requestSubject===Z.subject});if(Q)return Q.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let Q=this.getToken(Z);if(Q){let X=this.get(Q);if(X){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new U3$.NoRespondersError(X.requestSubject):null;X.resolver($,Z)}}}}close(){let $=new U3$.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}B3$.MuxSubscription=N3$});var A41=b((O3$)=>{Object.defineProperty(O3$,"__esModule",{value:!0});O3$.Heartbeat=void 0;var ew4=DH();class D3${ph;interval;maxOut;timer;pendings;constructor($,Z,Q){this.ph=$,this.interval=Z,this.maxOut=Q,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,ew4.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})}}O3$.Heartbeat=D3$});var M41=b((P3$)=>{Object.defineProperty(P3$,"__esModule",{value:!0});P3$.DenoBuffer=P3$.MAX_SIZE=P3$.AssertionError=void 0;P3$.assert=E3$;P3$.concat=z3$;P3$.append=Zj4;P3$.readAll=Qj4;P3$.writeAll=Xj4;var $j4=sG();class R41 extends Error{constructor($){super($);this.name="AssertionError"}}P3$.AssertionError=R41;function E3$($,Z="Assertion failed."){if(!$)throw new R41(Z)}var j3$=32768;P3$.MAX_SIZE=4294967294;function PW0($,Z,Q=0){let X=Z.byteLength-Q;if($.byteLength>X)$=$.subarray(0,X);return Z.set($,Q),$.byteLength}function z3$($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let Q=new Uint8Array($.length+Z.length);return Q.set($,0),Q.set(Z,$.length),Q}function Zj4($,Z){return z3$($,Uint8Array.of(Z))}class q41{_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($){E3$($<=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=PW0(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write($j4.TE.encode($))}write($){let Z=this._grow($.byteLength);return PW0($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let Q=this._tryGrowByReslice($);if(Q>=0)return Q;let X=this.capacity;if($<=Math.floor(X/2)-Z)PW0(this._buf.subarray(this._off),this._buf);else if(X+$>P3$.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*X+$,P3$.MAX_SIZE));PW0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,P3$.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,Q=new Uint8Array(j3$);while(!0){let X=this.capacity-this.length<j3$,Y=X?Q:new Uint8Array(this._buf.buffer,this.length),J=$.read(Y);if(J===null)return Z;if(X)this.write(Y.subarray(0,J));else this._reslice(this.length+J);Z+=J}}}P3$.DenoBuffer=q41;function Qj4($){let Z=new q41;return Z.readFrom($),Z.bytes()}function Xj4($,Z){let Q=0;while(Q<Z.length)Q+=$.write(Z.subarray(Q))}});var k41=b((M3$)=>{Object.defineProperty(M3$,"__esModule",{value:!0});M3$.cc=M3$.State=M3$.Parser=M3$.Kind=void 0;M3$.describe=Fj4;var I41=M41(),V41=sG();M3$.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function Fj4($){let Z,Q="";switch($.kind){case M3$.Kind.MSG:Z="MSG";break;case M3$.Kind.OK:Z="OK";break;case M3$.Kind.ERR:Z="ERR",Q=V41.TD.decode($.data);break;case M3$.Kind.PING:Z="PING";break;case M3$.Kind.PONG:Z="PONG";break;case M3$.Kind.INFO:Z="INFO",Q=V41.TD.decode($.data)}return`${Z}: ${Q}`}function A3$(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var R3$=48,Uj4=57,Dc=67108864;class q3${dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=M3$.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let Q=$[Z];switch(this.state){case M3$.State.OP_START:switch(Q){case M3$.cc.M:case M3$.cc.m:this.state=M3$.State.OP_M,this.hdr=-1,this.ma=A3$();break;case M3$.cc.H:case M3$.cc.h:this.state=M3$.State.OP_H,this.hdr=0,this.ma=A3$();break;case M3$.cc.P:case M3$.cc.p:this.state=M3$.State.OP_P;break;case M3$.cc.PLUS:this.state=M3$.State.OP_PLUS;break;case M3$.cc.MINUS:this.state=M3$.State.OP_MINUS;break;case M3$.cc.I:case M3$.cc.i:this.state=M3$.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_H:switch(Q){case M3$.cc.M:case M3$.cc.m:this.state=M3$.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_M:switch(Q){case M3$.cc.S:case M3$.cc.s:this.state=M3$.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_MS:switch(Q){case M3$.cc.G:case M3$.cc.g:this.state=M3$.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_MSG:switch(Q){case M3$.cc.SPACE:case M3$.cc.TAB:this.state=M3$.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_MSG_SPC:switch(Q){case M3$.cc.SPACE:case M3$.cc.TAB:continue;default:this.state=M3$.State.MSG_ARG,this.as=Z}break;case M3$.State.MSG_ARG:switch(Q){case M3$.cc.CR:this.drop=1;break;case M3$.cc.NL:{let X=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(X),this.drop=0,this.as=Z+1,this.state=M3$.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;case M3$.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let X=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:M3$.Kind.MSG,msg:this.ma,data:X}),this.argBuf=void 0,this.msgBuf=void 0,this.state=M3$.State.MSG_END}else{let X=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<X)X=Y;if(X>0)this.msgBuf.write($.subarray(Z,Z+X)),Z=Z+X-1;else this.msgBuf.writeByte(Q)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:M3$.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=M3$.State.MSG_END;break;case M3$.State.MSG_END:switch(Q){case M3$.cc.NL:this.drop=0,this.as=Z+1,this.state=M3$.State.OP_START;break;default:continue}break;case M3$.State.OP_PLUS:switch(Q){case M3$.cc.O:case M3$.cc.o:this.state=M3$.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_PLUS_O:switch(Q){case M3$.cc.K:case M3$.cc.k:this.state=M3$.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_PLUS_OK:switch(Q){case M3$.cc.NL:this.dispatcher.push({kind:M3$.Kind.OK}),this.drop=0,this.state=M3$.State.OP_START;break}break;case M3$.State.OP_MINUS:switch(Q){case M3$.cc.E:case M3$.cc.e:this.state=M3$.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_MINUS_E:switch(Q){case M3$.cc.R:case M3$.cc.r:this.state=M3$.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_MINUS_ER:switch(Q){case M3$.cc.R:case M3$.cc.r:this.state=M3$.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_MINUS_ERR:switch(Q){case M3$.cc.SPACE:case M3$.cc.TAB:this.state=M3$.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_MINUS_ERR_SPC:switch(Q){case M3$.cc.SPACE:case M3$.cc.TAB:continue;default:this.state=M3$.State.MINUS_ERR_ARG,this.as=Z}break;case M3$.State.MINUS_ERR_ARG:switch(Q){case M3$.cc.CR:this.drop=1;break;case M3$.cc.NL:{let X;if(this.argBuf)X=this.argBuf.bytes(),this.argBuf=void 0;else X=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:M3$.Kind.ERR,data:X}),this.drop=0,this.as=Z+1,this.state=M3$.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(Q))}break;case M3$.State.OP_P:switch(Q){case M3$.cc.I:case M3$.cc.i:this.state=M3$.State.OP_PI;break;case M3$.cc.O:case M3$.cc.o:this.state=M3$.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_PO:switch(Q){case M3$.cc.N:case M3$.cc.n:this.state=M3$.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_PON:switch(Q){case M3$.cc.G:case M3$.cc.g:this.state=M3$.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_PONG:switch(Q){case M3$.cc.NL:this.dispatcher.push({kind:M3$.Kind.PONG}),this.drop=0,this.state=M3$.State.OP_START;break}break;case M3$.State.OP_PI:switch(Q){case M3$.cc.N:case M3$.cc.n:this.state=M3$.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_PIN:switch(Q){case M3$.cc.G:case M3$.cc.g:this.state=M3$.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_PING:switch(Q){case M3$.cc.NL:this.dispatcher.push({kind:M3$.Kind.PING}),this.drop=0,this.state=M3$.State.OP_START;break}break;case M3$.State.OP_I:switch(Q){case M3$.cc.N:case M3$.cc.n:this.state=M3$.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_IN:switch(Q){case M3$.cc.F:case M3$.cc.f:this.state=M3$.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_INF:switch(Q){case M3$.cc.O:case M3$.cc.o:this.state=M3$.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_INFO:switch(Q){case M3$.cc.SPACE:case M3$.cc.TAB:this.state=M3$.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case M3$.State.OP_INFO_SPC:switch(Q){case M3$.cc.SPACE:case M3$.cc.TAB:continue;default:this.state=M3$.State.INFO_ARG,this.as=Z}break;case M3$.State.INFO_ARG:switch(Q){case M3$.cc.CR:this.drop=1;break;case M3$.cc.NL:{let X;if(this.argBuf)X=this.argBuf.bytes(),this.argBuf=void 0;else X=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:M3$.Kind.INFO,data:X}),this.drop=0,this.as=Z+1,this.state=M3$.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;default:throw this.fail($.subarray(Z))}}if((this.state===M3$.State.MSG_ARG||this.state===M3$.State.MINUS_ERR_ARG||this.state===M3$.State.INFO_ARG)&&!this.argBuf)this.argBuf=new I41.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===M3$.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new I41.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,Q=new Uint8Array($+Z);if(Q.set(this.ma.subject),this.ma.reply)Q.set(this.ma.reply,$);if(this.argBuf=new I41.DenoBuffer(Q),this.ma.subject=Q.subarray(0,$),this.ma.reply)this.ma.reply=Q.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case M3$.cc.SPACE:case M3$.cc.TAB:case M3$.cc.CR:case M3$.cc.NL:if(Q>=0)Z.push($.subarray(Q,X)),Q=-1;break;default:if(Q<0)Q=X}if(Q>=0)Z.push($.subarray(Q));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],Dc);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],Dc);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}: ${V41.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case M3$.cc.SPACE:case M3$.cc.TAB:case M3$.cc.CR:case M3$.cc.NL:if(Q>=0)Z.push($.subarray(Q,X)),Q=-1;break;default:if(Q<0)Q=X}if(Q>=0)Z.push($.subarray(Q));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],Dc),this.ma.size=this.protoParseInt(Z[3],Dc);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],Dc),this.ma.size=this.protoParseInt(Z[4],Dc);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 Q=0;for(let X=0;X<$.length;X++){if($[X]<R3$||$[X]>Uj4)return-1;Q=Q*10+($[X]-R3$)}return Z!==void 0&&Q>Z?-1:Q}}M3$.Parser=q3$;M3$.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};M3$.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 RW0=b((V3$)=>{Object.defineProperty(V3$,"__esModule",{value:!0});V3$.MsgHdrsImpl=void 0;V3$.canonicalMIMEHeaderKey=S41;V3$.headers=Lj4;var I3$=sG(),OH=lw(),AW0=eG();function S41($){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 AW0.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 Lj4($=0,Z=""){if($===0&&Z!=="")throw AW0.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw AW0.InvalidArgumentError.format("description","is required");return new Oc($,Z)}var C41="NATS/1.0";class Oc{_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,Q]of this.headers){let X=$.values(Z);if(Q.length!==X.length)return!1;let Y=[...Q].sort(),J=[...X].sort();for(let G=0;G<Y.length;G++)if(Y[G]!==J[G])return!1}return!0}return!1}static decode($){let Z=new Oc,X=I3$.TD.decode($).split(`\r
|
|
2183
2183
|
`),Y=X[0];if(Y!==C41){let J=Y.replace(C41,"").trim();if(J.length>0){if(Z._code=parseInt(J,10),isNaN(Z._code))Z._code=0;let G=Z._code.toString();J=J.replace(G,""),Z._description=J.trim()}}if(X.length>=1)X.slice(1).map((J)=>{if(J){let G=J.indexOf(":");if(G>-1){let K=J.slice(0,G),W=J.slice(G+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=C41;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,Q]of this.headers)for(let X=0;X<Q.length;X++)$=`${$}\r
|
|
2184
2184
|
${Z}: ${Q[X]}`;return`${$}\r
|
|
@@ -3465,7 +3465,7 @@ Use git CLI for local working tree, branch, history, rebase, commit, and push op
|
|
|
3465
3465
|
Use the tools for the checkout's actual git provider for pull or merge requests, reviews, comments, issues, and remote repository operations. Inspect \`git remote get-url origin\` before choosing a provider CLI; GitHub uses \`gh\`, GitLab uses \`glab\`, and Bitbucket uses its API.${Y}${$?.isDecoSite?`
|
|
3466
3466
|
|
|
3467
3467
|
${dM6}`:""}
|
|
3468
|
-
</coding-workspace>`}var dM6="This is a Deco CMS site (its repository contains a `.deco/` directory). These rules apply to content changes (page copy, section props, loader config, site settings):\n\n- CMS content lives in `.deco/blocks/<encoded-key>.json` \u2014 one JSON file per block, filename is the URI-encoded block key. Edit ONLY the matching `.deco/blocks/*.json` file(s).\n- NEVER edit generated artifacts: `blocks.gen.json`, `blocks.gen.ts`, `meta.gen.json`, or any other `*.gen.*` file. They are regenerated from `.deco/blocks/` by the dev server and by every production build \u2014 an edit there looks correct in the preview but is silently discarded on deploy.\n- Do not touch any other file to make a content change visible: the dev server watches `.deco/blocks/` and hot-reloads the preview, and production builds/content syncs read `.deco/blocks/` directly. Committing the `.deco/blocks/*.json` change is all that is needed.\n- After making a CMS content change, check the repo's AGENTS.md: if it is missing or does not document these `.deco/` content rules, add a short \"Deco CMS content\" section (creating AGENTS.md if needed) so other tools working in this repo follow the same rules. If AGENTS.md already documents them, leave it untouched.";function iM6($){return(typeof $.timeout==="number"&&$.timeout>0?Math.min($.timeout,120000):30000)+15000}function pM6($,Z){if($.aborted)return Z.catch(()=>{}),Promise.reject($.reason??Error("aborted"));return new Promise((Q,X)=>{let Y=()=>{Z.catch(()=>{}),X($.reason??Error("aborted"))};$.addEventListener("abort",Y,{once:!0}),Z.then(Q,X).finally(()=>{$.removeEventListener("abort",Y)})})}async function nM6($,Z,Q,X,Y){let J=Y?.timeoutMs??iM6(X),G=AbortSignal.timeout(J),K=Y?.signal?AbortSignal.any([Y.signal,G]):G,W,H;try{let U=new Headers({"content-type":"application/json"});if(Y?.threadId)U.set("x-thread-id",Y.threadId);let N={method:"POST",headers:U,body:JSON.stringify(X),signal:K};({res:W,rawText:H}=await pM6(K,(async()=>{let B=await $.proxyDaemonRequest(Z,Q,N);return{res:B,rawText:await B.text()}})()))}catch(U){if(Y?.signal?.aborted)throw U;if(G.aborted)throw Error(`Sandbox POST ${Q} timed out after ${Math.round(J/1000)}s \u2014 the sandbox may be overloaded or its filesystem stalled. Retry, or use a smaller operation.`);throw new G50(U)}let F;try{F=JSON.parse(H)}catch{console.error("[sandbox-fs-hooks] Failed to parse JSON response provider=agent-sandbox path=%s status=%d rawText=%s",Q,W.status,H.slice(0,2000));let U=W.status>=500?" (server error)":W.status===0?" (no response)":"";throw Error(`Daemon ${Q} returned invalid JSON (HTTP ${W.status}${U}): ${H.slice(0,800)}`)}if(!W.ok){console.error("[sandbox-fs-hooks] Non-OK response provider=agent-sandbox path=%s status=%d body=%s",Q,W.status,H.slice(0,2000));let U=F.error??`Daemon ${Q} failed (${W.status})`;if(W.status===404&&U==="sandbox not found")throw new G50(Error(U),!0);throw Error(U)}return F}function HD1($,Z){let{ensureHandle:Q,invalidateHandle:X,canAutoRestart:Y}=Z,J=0,G=(H)=>{let F=Date.now();if(F-J<300000)return;J=F,$.renewTtl(H).catch((U)=>{console.warn(`[sandbox-fs-hooks] TTL renew failed for ${H}: ${U instanceof Error?U.message:String(U)}`)})},K=(H)=>{let F=H instanceof Error?H.message:String(H);return Y?`Sandbox is unreachable and auto-restart did not recover it: ${F}`:"The sandbox is not running. Ask the user to start it by clicking the server button (left side of the header bar)."},W=async(H,F,U)=>{let N=async(D)=>nM6($,D,H,F,{signal:U,timeoutMs:Z.opTimeoutMs,threadId:Z.threadId}),B=await Q();G(B);try{return await N(B)}catch(D){if(!(D instanceof G50))throw D;if(!Y&&!D.gone)throw Error(K(D.cause??D));console.warn(`[sandbox-fs-hooks] daemon ${H} unreachable \u2014 reaping sandbox and retrying once`,D.cause??D);try{await X({force:D.gone})}catch(w){console.warn("[sandbox-fs-hooks] invalidateHandle failed",w)}let O;try{O=await Q()}catch(w){throw Error(`Failed to restart sandbox: ${w instanceof Error?w.message:String(w)}`)}try{return await N(O)}catch(w){if(w instanceof G50)throw Error(K(w.cause??w));throw w}}};return{onProxy:(H,F,U)=>W(H,F,U),onBash:async(H,F)=>{return await W("/_sandbox/bash",{command:H,...F?.cwd!==void 0?{cwd:F.cwd}:{},...F?.timeoutMs!==void 0?{timeout:F.timeoutMs}:{}})}}}var G50;var $88=L(()=>{G50=class G50 extends Error{code="DAEMON_UNREACHABLE";gone;constructor($,Z=!1){super($ instanceof Error?$.message:"Daemon proxy failed");if(this.gone=Z,$ instanceof Error)this.cause=$}}});var ep=L(()=>{qp();vC0();$88()});function tM6($){let{publicUrl:Z,agentId:Q,organization:X,target:Y,threadId:J}=$;if(Y==="agent-tools")return`${Z}/mcp/virtual-mcp/${encodeURIComponent(Q)}`;if(!X.slug)throw new Q88(X.id,Y);if(Y==="task-run"){if(!J)throw Error("a task-run MCP endpoint is scoped to a run: threadId is required");return`${Z}/api/${X.slug}/mcp/task-run/${encodeURIComponent(J)}`}return`${Z}/api/${X.slug}/mcp/self`}async function hS0($,Z,Q,X,Y="agent-tools",J,G={"*":["*"]}){let K=tM6({publicUrl:t5(),agentId:Z,organization:Q,target:Y,...J?{threadId:J}:{}}),W=await $.boundAuth.apiKey.create({name:X,permissions:G,expiresIn:Z88,metadata:{organization:{id:Q.id,slug:Q.slug,name:Q.name}}});return{url:K,headers:{Authorization:`Bearer ${W.key}`,"x-org-id":Q.id},expiresAt:Date.now()+Z88*1000}}function X88($){let{publicUrl:Z,organizationSlug:Q,headers:X,connections:Y}=$,J=new Set;return Y.map((G)=>{let K=oM6(G.slug??G.title??"")||"mcp",W=K;for(let H=2;J.has(W);H++)W=`${K}-${H}`;return J.add(W),{name:W,url:`${Z}/api/${Q}/mcp/${encodeURIComponent(G.id)}`,headers:X}})}function oM6($){return $.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Y88($){return{self:[...$.toolNames],...$.grants}}var Z88=3600,Q88;var FD1=L(()=>{T9();Q88=class Q88 extends Error{constructor($,Z){super(`cannot mint a "${Z}" MCP endpoint for organization "${$}": the org-scoped path needs the org slug, which was not loaded.`);this.name="MissingOrganizationSlugError"}}});var K50;var UD1=L(()=>{K50={npm:{install:"npm install",run:($)=>`npm run ${$}`,runtime:"node"},pnpm:{install:"pnpm install",run:($)=>`pnpm run ${$}`,runtime:"node"},yarn:{install:"yarn install",run:($)=>`yarn run ${$}`,runtime:"node"},bun:{install:"bun install",run:($)=>`bun run ${$}`,runtime:"bun"},deno:{install:"deno install",run:($)=>`deno task ${$}`,runtime:"deno"}}});function $n($){if(!$)return null;let Z=$.runtime;if(!Z||typeof Z!=="object")return null;let Q=Z.env;if(!Array.isArray(Q))return null;let X=[];for(let Y of Q){if(!Y||typeof Y!=="object")continue;let J=Y;if(typeof J.key!=="string"||!YH0.test(J.key))continue;if(J.kind==="literal"&&typeof J.value==="string"){X.push({key:J.key,kind:"literal",value:J.value});continue}if(J.kind==="secret"&&typeof J.secretId==="string"&&J.secretId.length>0)X.push({key:J.key,kind:"secret",secretId:J.secretId})}return X.length===0?null:X}async function J88($,Z){o(Z);let Q=W0(Z);await Z.access.check();let X=p0(Z);if(!X)throw Error("User ID required");let Y=await Z.storage.virtualMcps.findById($.virtualMcpId);if(!Y||Y.organization_id!==Q.id)throw Error("Virtual MCP not found");let J=Y.metadata??{},G=WZ(J),K=await zg(Z,$.branch,X),W=zF(G,K,$.branch);return{virtualMcp:Y,metadata:J,userId:X,sandboxUserId:K,entry:W,organization:Q}}function rM6($){if($===null||!/^\d+$/.test($))return null;let Z=Number($);return Z>=1&&Z<=65535?$:null}function G88($){let Z=$.runtime??null,X=Z?.selected??null,Y=rM6(Z?.port??null),J=Z?.path??null;if(!X||!(X in K50))return{packageManager:null,runtime:null,port:Y,packageManagerPath:J,runtimeBinPath:null};let G=K50[X].runtime;return{packageManager:X,runtime:G,port:Y,packageManagerPath:J,runtimeBinPath:G==="deno"?"/opt/deno/bin":G==="bun"?"/opt/bun/bin":null}}var W50=L(()=>{a8();UD1();DG();RW()});async function cz($,Z){let Q=$.body?.getReader();if(!Q)return $.text();let X=new TextDecoder,Y="",J=0;for(;;){let{done:G,value:K}=await Q.read();if(G)break;if(J+=K.byteLength,J>Z)throw await Q.cancel().catch(()=>{}),new K88(`Upstream response exceeded ${Z} bytes`);Y+=X.decode(K,{stream:!0})}return Y+=X.decode(),Y}var K88;var H50=L(()=>{K88=class K88 extends Error{}});async function uS0({ctx:$,runner:Z,handle:Q,orgId:X,userId:Y,entries:J}){if(!J||J.length===0)return;let G={};for(let W of J){if(W.kind==="literal"){G[W.key]=W.value;continue}try{let{value:H}=await $.storage.secrets.resolveById(W.secretId,X,Y);G[W.key]=H}catch(H){if(H instanceof AW||H instanceof _z){console.warn(`[SANDBOX_START] skipping env ${W.key}: ${H.message}. Re-link or recreate the secret to restore.`);continue}throw H}}if(Object.keys(G).length===0)return;let K=await Z.proxyDaemonRequest(Q,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({env:G})});if(!K.ok){let W=await cz(K,aM6).catch(()=>K.statusText);console.warn(`[SANDBOX_START] daemon rejected env patch (${K.status}): ${W}`)}}var aM6=10485760;var ND1=L(()=>{I60();H50()});async function F88($,Z,Q,X,Y){let J=await y3({connectionId:$,tokenStorage:new I9(X,Y)});if(!J.accessToken)return null;return N88(Z,Q,J.accessToken)}function U88($,Z){return N88($,Z,null)}async function N88($,Z,Q){let X=new Map,Y=new Set(W88.map((W)=>W.path));for(let W of Object.values(H88))for(let H of W??[])Y.add(H);await Promise.all(Array.from(Y).map(async(W)=>{X.set(W,await eM6($,Z,W,Q))}));let J=W88.find(({path:W})=>X.get(W)!==null);if(!J)return null;let G=H88[J.pm]??[],K=null;for(let W of G)if(K=$I6(X.get(W)??null),K)break;return{packageManager:J.pm,devPort:K}}async function eM6($,Z,Q,X){let Y=`https://api.github.com/repos/${$}/${Z}/contents/${encodeURIComponent(Q)}`;try{let J={Accept:"application/vnd.github+json","User-Agent":"studio-runtime-detect"};if(X)J.Authorization=`token ${X}`;let G=await fetch(Y,{headers:J,signal:AbortSignal.timeout(5000)});if(!G.ok)return null;let K=await G.json();if(!K.content||K.encoding!=="base64")return null;return Buffer.from(K.content,"base64").toString("utf8")}catch{return null}}function $I6($){if(!$)return null;try{let Z=JSON.parse($),Q=Z.tasks??Z.scripts??{},Y=(Q.dev??Q.start??"").match(sM6)?.[1]??null;if(!Y)return null;let J=Number(Y);return J>=1&&J<=65535?Y:null}catch{return null}}var W88,H88,sM6;var B88=L(()=>{NW();WF();W88=[{path:"deno.json",pm:"deno"},{path:"deno.jsonc",pm:"deno"},{path:"bun.lock",pm:"bun"},{path:"bunfig.toml",pm:"bun"},{path:"pnpm-lock.yaml",pm:"pnpm"},{path:"yarn.lock",pm:"yarn"},{path:"package-lock.json",pm:"npm"},{path:"package.json",pm:"bun"}],H88={deno:["deno.json","deno.jsonc"],bun:["package.json"],pnpm:["package.json"],yarn:["package.json"],npm:["package.json"]},sM6=/(?:--port|PORT=|:)(\d{4,5})/});function ZI6($){return($??"").normalize("NFKD").replace(/[\u0300-\u036F]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"user"}function lS0($){return $?.name||$?.email?.split("@")[0]||void 0}function cS0($){let Z=ZI6($),Q=Date.now().toString(36).split("").reverse().join("");return`${Z}-${Q}`}async function O88($,Z){L88??=Y$.createHistogram("studio.sandbox.provision.duration_ms",{description:"Wall-clock time of one sandbox ensure, by provider (runner_kind), outcome, the provider a fallback left (fallback_from), and whether a sandbox was already recorded (start=resume) or not (start=fresh).",unit:"ms",advice:{explicitBucketBoundaries:[500,1000,2000,5000,1e4,20000,30000,60000,120000,300000,600000]}}),D88??=Y$.createCounter("studio.sandbox.placement",{description:"Sandbox ensures by the provider that served them (runner_kind) and why it was chosen (reason)."});let Q=performance.now(),X=(Y,J,G)=>L88?.record(performance.now()-Q,{...$,runner_kind:Y?yD[Y]:"unknown",outcome:J,...G&&{fallback_from:yD[G]}});try{let Y=await Z();if(X(Y.provider,"ok",Y.placement?.fallbackFrom),Y.placement)D88.add(1,{runner_kind:yD[Y.provider],reason:Y.placement.reason});return Y}catch(Y){throw X(TB1(Y),"error"),Y}}var L88,D88;var w88=L(()=>{ep();f6()});async function F50($,Z,Q){try{await $.storage.threads.stampRuntimeIfAbsent(Z,Q)}catch(X){console.warn(`[stampRuntimeIfAbsent] ${Z}: ${X instanceof Error?X.message:String(X)}`)}}function j88($){let Z=$?.trim();if(!Z)return null;try{let Q=new URL(Z);if(Q.protocol!=="http:"&&Q.protocol!=="https:")return null;return Q.href}catch{return null}}function Zn($){return j88($?.previewServerUrl)??j88($?.productionUrl)}var mS0=()=>{};function Vg($){return $==="cms"||$==="sandbox"?$:null}function QI6($){return!!Zn($)&&$?.fastPreview===!0}function dS0($){return QI6($)?"cms":"sandbox"}var BD1;var Qn=L(()=>{mS0();BD1=["cms","sandbox"]});import{z as pN}from"zod";async function Xn($,Z){o(Z);let Q=W0(Z),X=p0(Z);if(!X)throw Error("User ID required");let Y=await Z.storage.virtualMcps.findById($.virtualMcpId);if(!Y||Y.organization_id!==Q.id)throw Error("Virtual MCP not found");let J=Y.metadata??{},G=await zg(Z,$.branch,X),K=zF(WZ(J),G,$.branch),W=await WJ(Z);if(K){if(await W.alive(K.sandboxHandle).catch(()=>!0))return K;await vz(Z.storage.virtualMcps,$.virtualMcpId,X,G,$.branch).catch((O)=>{console.warn("[ensureSandbox] failed to reap stale entry",O)})}let H=uN($.branch)??Z.metadata?.threadId;if(H)F50(Z,H,"sandbox");let U=await lN(Z,H)??J.repository??null;await $.onColdStart?.().catch(()=>{});let{entry:N,warmPoolAdopted:B}=await P88({ctx:Z,userId:X,sandboxUserId:G,orgId:Q.id,virtualMcpId:$.virtualMcpId,branch:$.branch,metadata:J,repository:U,threadRepos:await gB1(Z,H),existing:null,runner:W,...$.purpose?{purpose:$.purpose}:{}});return $.onBound?.({warmPoolAdopted:B}),N}async function z88($,Z,Q){if(!Z)return null;if(Z.accountId===null&&!Q&&!Z.legacyConnectionId)return Z;return await VD($.storage,Z)?Z:null}async function XI6($){let Z=$.repos.filter((Y)=>!$.primary||!kL(Y,$.primary)),Q=C60(Z),X=[];for(let[Y,J]of Z.entries())try{let G=await Oz($.ctx.storage,$.orgId,J),K=await z88($.ctx,G,J.connectionId),W=J.connectionId??G?.legacyConnectionId;if(!K&&!W)continue;let{cloneUrl:H,expiresAt:F}=K?await kN($.ctx,K,{forceRefresh:!0}):await SN(W,J.owner,J.name,$.ctx.db,$.ctx.vault);X.push({cloneUrl:H,credentialExpiresAt:hN1(F),...K?{repositoryId:K.id}:{connectionId:W},userName:$.gitUserName,userEmail:$.gitUserEmail,displayName:K?K.path:`${J.owner}/${J.name}`,directoryName:Q[Y],submoduleCredentials:$.submoduleCredentials})}catch(G){console.warn(`[provisionSandbox] skipping secondary ${J.owner}/${J.name}:`,G instanceof Error?G.message:G)}return X}async function P88($){let{ctx:Z,userId:Q,sandboxUserId:X,orgId:Y,virtualMcpId:J,branch:G,metadata:K,threadRepos:W,existing:H,runner:F,purpose:U,provider:N}=$,B=U==="harness-run",D="default",O=$.repository?await YI6({ctx:Z,orgId:Y,virtualMcpId:J,userId:Q,repository:$.repository}):null,{runtime:w,packageManager:j,port:E,packageManagerPath:z}=G88(K),A=await Z.storage.organizationSettings.get(Y),P=await uC0({ctx:Z,orgId:Y,userId:Q,entries:A?.submodule_credentials}),T;if(O){let e=await Oz(Z.storage,Y,O);D=e?.sandboxImage??"default";let s=await z88(Z,e,O.connectionId),J0=O.connectionId??e?.legacyConnectionId??void 0;if(!s&&J0)await Gp({ctx:Z,connectionId:J0,organizationId:Y,forceRefresh:!0,onLegacyMintError:(o0)=>{console.error("[provisionSandbox] repo-scoped legacy token mint failed",{connectionId:J0,error:o0.message})}});let{cloneUrl:c0,gitUserName:x0,gitUserEmail:O1,expiresAt:n0}=s?await HI6(Z,s):J0?await SN(J0,O.owner,O.name,Z.db,Z.vault):ru$(O.owner,O.name);if(!j&&!s){let o0=J0?await F88(J0,O.owner,O.name,Z.db,Z.vault):await U88(O.owner,O.name);if(o0)j=o0.packageManager,w=K50[o0.packageManager].runtime,E=o0.devPort??E,await JI6(Z,J,Q,o0.packageManager,o0.devPort)}let z0=P0().sandboxStickyHeadRefEnabled,T0=yO0({branch:G,derivedRef:PF(G,{flat:Eg(e?.provider)}),recordedHeadRef:z0?await lC0(Z,uN(G)):null,sticky:z0});T={cloneUrl:c0,credentialExpiresAt:hN1(n0),...s?{repositoryId:s.id}:J0?{connectionId:J0}:{},userName:x0,userEmail:O1,branch:T0,displayName:s?s.path:`${O.owner}/${O.name}`,submoduleCredentials:P}}let q=await XI6({ctx:Z,orgId:Y,repos:W??[],primary:O,gitUserName:T?.userName??"",gitUserEmail:T?.userEmail??"",submoduleCredentials:P}),f=w&&j&&!B?{runtime:w,packageManager:j,...E!==null?{devPort:Number(E)}:{},...z?{packageManagerPath:z}:{}}:void 0,S=N60({orgId:Y,virtualMcpId:J,branch:G}),V=!P0().orgFsMountsDisabled,h;if(V){let e=Z.organization?.slug??(await Z.db.selectFrom("organization").select(["slug"]).where("id","=",Y).executeTakeFirst())?.slug;if(e)h=await dO0(Z,{orgSlug:e,orgId:Y,baseUrl:t5()})}await WI6(F);let g=await O88({start:H?"resume":"fresh",purpose:U??"interactive"},()=>KI6(F,{userId:X,projectRef:S},{branch:G,repo:T,extraRepos:q,workload:f,cloneOnly:B,...U?{purpose:U}:{},...N?{provider:N}:{},...D!=="default"?{sandboxImage:D}:{},tenant:{orgId:Y,userId:X,...Z.organization?.slug?{orgSlug:Z.organization.slug}:{},...Z.organization?.name?{orgName:Z.organization.name}:{},...Z.auth.user?.email?{userEmail:Z.auth.user.email}:{},...Z.auth.user?.name?{userName:Z.auth.user.name}:{}},...h?{orgFsConfigJson:h}:{}})),l=$n(K);await uS0({ctx:Z,runner:F,handle:g.handle,orgId:Y,userId:Q,entries:l});let m=!!H&&H.sandboxHandle===g.handle&&H?.createdAt?H.createdAt:Date.now(),Y0=K.runtime?.selected??null,N0=K.runtime?.port??null,X0=K.runtime?.path??null,D0={sandboxHandle:g.handle,previewUrl:g.previewUrl,createdAt:m,startedWith:{packageManager:Y0,port:N0,path:X0}};await Nr$(Z.storage.virtualMcps,J,Q,X,G,D0);let Q0=uN(G)??Z.metadata?.threadId;if(Q0)await Lr$(Z,Q0,X,G,D0);let n=!H||H.sandboxHandle!==g.handle;return{entry:D0,isNewVm:n,warmPoolAdopted:g.warmPoolAdopted}}async function YI6($){let{ctx:Z,orgId:Q,virtualMcpId:X,userId:Y,repository:J}=$;if(!J.connectionId)return J;if(await Z.storage.connections.findById(J.connectionId,Q))return J;let{items:K}=await Z.storage.connections.list(Q),W=QO0(K,J.owner,J.name);if(!W)return console.warn("[provisionSandbox] recorded repo connection no longer exists and no live connection covers the repo",{virtualMcpId:X,connectionId:J.connectionId}),J;console.warn("[provisionSandbox] healed dangling repo connection",{virtualMcpId:X,staleConnectionId:J.connectionId,connectionId:W.id});try{let F=(await Z.storage.virtualMcps.findById(X))?.metadata??{},U=F.repository;if(U?.connectionId===J.connectionId){let N=YZ(W);await Z.storage.virtualMcps.update(X,Y,{metadata:{...F,repository:{...U,connectionId:W.id,...N?{installationId:N.installationId}:{}}}})}}catch(H){console.warn("[provisionSandbox] failed to persist healed repo connection",{virtualMcpId:X,error:H.message})}return{...J,connectionId:W.id}}async function JI6($,Z,Q,X,Y){let J=await $.storage.virtualMcps.findById(Z);if(!J)return;let G=J.metadata??{};await $.storage.virtualMcps.update(Z,Q,{metadata:{...G,runtime:{selected:X,port:Y}}})}async function KI6($,...Z){try{return await $.ensure(...Z)}catch(Q){if(!(Q instanceof jF))throw Q;throw Error(`sandbox provisioning failed: the sandbox pod rejected the bootstrap handshake (HTTP ${Q.status}). The claim was released; retrying gets a different pod.`,{cause:Q})}}async function WI6($){let Z=Date.now()+E88,Q=!1;while(!await $.hasSchedulableCapacity()){if(Date.now()>=Z)throw Error(`sandbox provisioning failed: the cluster has had no room to schedule another sandbox for ${Math.round(E88/1000)}s`);if(!Q)Q=!0,console.warn("[ensureSandbox] waiting for cluster capacity \u2014 a sandbox pod cannot be scheduled right now");await $$(GI6)}}async function HI6($,Z){try{return await kN($,Z,{forceRefresh:!0})}catch(Q){if(Q instanceof g0){let X=Q.status===404?bR.githubConnectionMissing:bR.githubNotAuthenticated;throw Error(b40(X,Q.message))}throw Q}}var LD1,E88=150000,GI6=5000;var U50=L(()=>{ep();Ng();cB1();X8();v0();W50();ND1();vB1();DG();GG();y40();B88();UD1();TW();w88();Qn();RW();gO0();X$();T9();jz();DG();N7();C5();IC0();iO0();LD1=p({name:"SANDBOX_START",description:"Start a sandbox with the connected repository and dev server.",annotations:{title:"Start VM Preview",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0},_meta:{ui:{visibility:"app"}},inputSchema:pN.object({virtualMcpId:pN.string().describe("Virtual MCP ID"),branch:pN.string().min(1).optional().describe("Git branch to check out. Pass the thread's branch whenever the caller has one: when omitted the handler mints a fresh `<user-slug>-<timestamp>` name, which becomes a SEPARATE sandbox from the one the thread's own branch resolves to. The resolved branch is returned in the response so callers can persist it."),threadId:pN.string().optional().describe("The session asking for a sandbox. A thread stamped `cms` is refused \u2014 that session reads and writes over the decofile API and a pod would be invisible to it. Optional: an unstamped (legacy) thread is always allowed, and so is a caller with no thread."),provider:pN.enum(["kubernetes","freestyle"]).optional().describe("Where to run a NEW sandbox, when that provider is configured and can run it; otherwise the other one is used. An existing sandbox stays where it is. Omitted: Kubernetes while it has room, else Freestyle.")}),outputSchema:pN.object({previewUrl:pN.string().nullable(),sandboxHandle:pN.string(),branch:pN.string(),isNewVm:pN.boolean()}),handler:async($,Z)=>{o(Z);let Q=W0(Z);await Z.access.check();let X=$.branch??cS0(lS0(Z.auth.user)),Y=uN(X)??$.threadId??Z.metadata?.threadId;if(Y){let O=await Z.storage.threads.get(Y).catch(()=>null);if(Vg(O?.metadata?.runtime)==="cms")throw Error("This chat is a CMS session and does not use a sandbox. Start a coding session to get one.")}let J=p0(Z);if(!J)throw Error("User ID required");let G=await zg(Z,X,J),K=await Z.storage.virtualMcps.findById($.virtualMcpId);if(!K||K.organization_id!==Q.id)throw Error("Virtual MCP not found");let W=K.metadata??{},H=await WJ(Z),F=zF(WZ(W),G,X),N=await lN(Z,Y)??W.repository??null,{entry:B,isNewVm:D}=await P88({ctx:Z,userId:J,sandboxUserId:G,orgId:Q.id,virtualMcpId:$.virtualMcpId,branch:X,metadata:W,repository:N,threadRepos:await gB1(Z,Y),existing:F,runner:H,...$.provider?{provider:$.provider}:{}});if(Y)F50(Z,Y,"sandbox");return{...B,branch:X,isNewVm:D}}})});async function FI6($,Z,Q,X){try{let Y=$.organization;if(!Y)return;let J=await hS0($,X.virtualMcpId,Y,"tool-scripting"),G=await Z.proxyDaemonRequest(Q,"/_sandbox/tools/sync",{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(J)});if(!G.ok)console.warn("[agent-sandbox-fs] tools/sync failed",G.status,await G.text().catch(()=>""))}catch(Y){console.warn("[agent-sandbox-fs] tools/sync failed",Y)}}async function Yn($,Z){let Q=await WJ($),X=null,Y=()=>{if(!X){if(X=Xn({virtualMcpId:Z.virtualMcpId,branch:Z.branch},$).then((K)=>K.sandboxHandle),X.catch(()=>{X=null}),Z.syncTools)X.then((K)=>FI6($,Q,K,{virtualMcpId:Z.virtualMcpId})).catch(()=>{})}return X},J=Z.branch==="ephemeral";return HD1(Q,{ensureHandle:Y,invalidateHandle:async(K)=>{if(X=null,!J&&!K?.force)return;try{await vz($.storage.virtualMcps,Z.virtualMcpId,Z.userId,Z.userId,Z.branch)}catch(W){console.warn("[agent-sandbox-fs] failed to reap vmMap entry",W)}},canAutoRestart:J,threadId:Z.threadId})}async function T88($,Z){try{let Q=await Yn($,Z),{stdout:X}=await Q.onBash("test -d .deco && echo __DECO_SITE__");return X.includes("__DECO_SITE__")}catch(Q){return console.warn("[agent-sandbox-fs] .deco probe failed; assuming deco site",Q),!0}}var iS0=L(()=>{ep();FD1();TW();U50();DG()});function DD1($){let Z=$.toISOString();return`<current-context>
|
|
3468
|
+
</coding-workspace>`}var dM6="This is a Deco CMS site (its repository contains a `.deco/` directory). These rules apply to content changes (page copy, section props, loader config, site settings):\n\n- CMS content lives in `.deco/blocks/<encoded-key>.json` \u2014 one JSON file per block, filename is the URI-encoded block key. Edit ONLY the matching `.deco/blocks/*.json` file(s).\n- NEVER edit generated artifacts: `blocks.gen.json`, `blocks.gen.ts`, `meta.gen.json`, or any other `*.gen.*` file. They are regenerated from `.deco/blocks/` by the dev server and by every production build \u2014 an edit there looks correct in the preview but is silently discarded on deploy.\n- Do not touch any other file to make a content change visible: the dev server watches `.deco/blocks/` and hot-reloads the preview, and production builds/content syncs read `.deco/blocks/` directly. Committing the `.deco/blocks/*.json` change is all that is needed.\n- After making a CMS content change, check the repo's AGENTS.md: if it is missing or does not document these `.deco/` content rules, add a short \"Deco CMS content\" section (creating AGENTS.md if needed) so other tools working in this repo follow the same rules. If AGENTS.md already documents them, leave it untouched.";function iM6($){return(typeof $.timeout==="number"&&$.timeout>0?Math.min($.timeout,120000):30000)+15000}function pM6($,Z){if($.aborted)return Z.catch(()=>{}),Promise.reject($.reason??Error("aborted"));return new Promise((Q,X)=>{let Y=()=>{Z.catch(()=>{}),X($.reason??Error("aborted"))};$.addEventListener("abort",Y,{once:!0}),Z.then(Q,X).finally(()=>{$.removeEventListener("abort",Y)})})}async function nM6($,Z,Q,X,Y){let J=Y?.timeoutMs??iM6(X),G=AbortSignal.timeout(J),K=Y?.signal?AbortSignal.any([Y.signal,G]):G,W,H;try{let U=new Headers({"content-type":"application/json"});if(Y?.threadId)U.set("x-thread-id",Y.threadId);let N={method:"POST",headers:U,body:JSON.stringify(X),signal:K};({res:W,rawText:H}=await pM6(K,(async()=>{let B=await $.proxyDaemonRequest(Z,Q,N);return{res:B,rawText:await B.text()}})()))}catch(U){if(Y?.signal?.aborted)throw U;if(G.aborted)throw Error(`Sandbox POST ${Q} timed out after ${Math.round(J/1000)}s \u2014 the sandbox may be overloaded or its filesystem stalled. Retry, or use a smaller operation.`);throw new G50(U)}let F;try{F=JSON.parse(H)}catch{console.error("[sandbox-fs-hooks] Failed to parse JSON response provider=agent-sandbox path=%s status=%d rawText=%s",Q,W.status,H.slice(0,2000));let U=W.status>=500?" (server error)":W.status===0?" (no response)":"";throw Error(`Daemon ${Q} returned invalid JSON (HTTP ${W.status}${U}): ${H.slice(0,800)}`)}if(!W.ok){console.error("[sandbox-fs-hooks] Non-OK response provider=agent-sandbox path=%s status=%d body=%s",Q,W.status,H.slice(0,2000));let U=F.error??`Daemon ${Q} failed (${W.status})`;if(W.status===404&&U==="sandbox not found")throw new G50(Error(U),!0);throw Error(U)}return F}function HD1($,Z){let{ensureHandle:Q,invalidateHandle:X,canAutoRestart:Y}=Z,J=0,G=(H)=>{let F=Date.now();if(F-J<300000)return;J=F,$.renewTtl(H).catch((U)=>{console.warn(`[sandbox-fs-hooks] TTL renew failed for ${H}: ${U instanceof Error?U.message:String(U)}`)})},K=(H)=>{let F=H instanceof Error?H.message:String(H);return Y?`Sandbox is unreachable and auto-restart did not recover it: ${F}`:"The sandbox is not running. Ask the user to start it by clicking the server button (left side of the header bar)."},W=async(H,F,U)=>{let N=async(D)=>nM6($,D,H,F,{signal:U,timeoutMs:Z.opTimeoutMs,threadId:Z.threadId}),B=await Q();G(B);try{return await N(B)}catch(D){if(!(D instanceof G50))throw D;if(!Y&&!D.gone)throw Error(K(D.cause??D));console.warn(`[sandbox-fs-hooks] daemon ${H} unreachable \u2014 reaping sandbox and retrying once`,D.cause??D);try{await X({force:D.gone})}catch(w){console.warn("[sandbox-fs-hooks] invalidateHandle failed",w)}let O;try{O=await Q()}catch(w){throw Error(`Failed to restart sandbox: ${w instanceof Error?w.message:String(w)}`)}try{return await N(O)}catch(w){if(w instanceof G50)throw Error(K(w.cause??w));throw w}}};return{onProxy:(H,F,U)=>W(H,F,U),onBash:async(H,F)=>{return await W("/_sandbox/bash",{command:H,...F?.cwd!==void 0?{cwd:F.cwd}:{},...F?.timeoutMs!==void 0?{timeout:F.timeoutMs}:{}})}}}var G50;var $88=L(()=>{G50=class G50 extends Error{code="DAEMON_UNREACHABLE";gone;constructor($,Z=!1){super($ instanceof Error?$.message:"Daemon proxy failed");if(this.gone=Z,$ instanceof Error)this.cause=$}}});var ep=L(()=>{qp();vC0();$88()});function tM6($){let{publicUrl:Z,agentId:Q,organization:X,target:Y,threadId:J}=$;if(Y==="agent-tools")return`${Z}/mcp/virtual-mcp/${encodeURIComponent(Q)}`;if(!X.slug)throw new Q88(X.id,Y);if(Y==="task-run"){if(!J)throw Error("a task-run MCP endpoint is scoped to a run: threadId is required");return`${Z}/api/${X.slug}/mcp/task-run/${encodeURIComponent(J)}`}return`${Z}/api/${X.slug}/mcp/self`}async function hS0($,Z,Q,X,Y="agent-tools",J,G={"*":["*"]}){let K=tM6({publicUrl:t5(),agentId:Z,organization:Q,target:Y,...J?{threadId:J}:{}}),W=await $.boundAuth.apiKey.create({name:X,permissions:G,expiresIn:Z88,metadata:{organization:{id:Q.id,slug:Q.slug,name:Q.name}}});return{url:K,headers:{Authorization:`Bearer ${W.key}`,"x-org-id":Q.id},expiresAt:Date.now()+Z88*1000}}function X88($){let{publicUrl:Z,organizationSlug:Q,headers:X,connections:Y}=$,J=new Set;return Y.map((G)=>{let K=oM6(G.slug??G.title??"")||"mcp",W=K;for(let H=2;J.has(W);H++)W=`${K}-${H}`;return J.add(W),{name:W,url:`${Z}/api/${Q}/mcp/${encodeURIComponent(G.id)}`,headers:X}})}function oM6($){return $.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Y88($){return{self:[...$.toolNames],...$.grants}}var Z88=3600,Q88;var FD1=L(()=>{T9();Q88=class Q88 extends Error{constructor($,Z){super(`cannot mint a "${Z}" MCP endpoint for organization "${$}": the org-scoped path needs the org slug, which was not loaded.`);this.name="MissingOrganizationSlugError"}}});var K50;var UD1=L(()=>{K50={npm:{install:"npm install",run:($)=>`npm run ${$}`,runtime:"node"},pnpm:{install:"pnpm install",run:($)=>`pnpm run ${$}`,runtime:"node"},yarn:{install:"yarn install",run:($)=>`yarn run ${$}`,runtime:"node"},bun:{install:"bun install",run:($)=>`bun run ${$}`,runtime:"bun"},deno:{install:"deno install",run:($)=>`deno task ${$}`,runtime:"deno"}}});function $n($){if(!$)return null;let Z=$.runtime;if(!Z||typeof Z!=="object")return null;let Q=Z.env;if(!Array.isArray(Q))return null;let X=[];for(let Y of Q){if(!Y||typeof Y!=="object")continue;let J=Y;if(typeof J.key!=="string"||!YH0.test(J.key))continue;if(J.kind==="literal"&&typeof J.value==="string"){X.push({key:J.key,kind:"literal",value:J.value});continue}if(J.kind==="secret"&&typeof J.secretId==="string"&&J.secretId.length>0)X.push({key:J.key,kind:"secret",secretId:J.secretId})}return X.length===0?null:X}async function J88($,Z){o(Z);let Q=W0(Z);await Z.access.check();let X=p0(Z);if(!X)throw Error("User ID required");let Y=await Z.storage.virtualMcps.findById($.virtualMcpId);if(!Y||Y.organization_id!==Q.id)throw Error("Virtual MCP not found");let J=Y.metadata??{},G=WZ(J),K=await zg(Z,$.branch,X),W=zF(G,K,$.branch);return{virtualMcp:Y,metadata:J,userId:X,sandboxUserId:K,entry:W,organization:Q}}function rM6($){if($===null||!/^\d+$/.test($))return null;let Z=Number($);return Z>=1&&Z<=65535?$:null}function G88($){let Z=$.runtime??null,X=Z?.selected??null,Y=rM6(Z?.port??null),J=Z?.path??null;if(!X||!(X in K50))return{packageManager:null,runtime:null,port:Y,packageManagerPath:J,runtimeBinPath:null};let G=K50[X].runtime;return{packageManager:X,runtime:G,port:Y,packageManagerPath:J,runtimeBinPath:G==="deno"?"/opt/deno/bin":G==="bun"?"/opt/bun/bin":null}}var W50=L(()=>{a8();UD1();DG();RW()});async function cz($,Z){let Q=$.body?.getReader();if(!Q)return $.text();let X=new TextDecoder,Y="",J=0;for(;;){let{done:G,value:K}=await Q.read();if(G)break;if(J+=K.byteLength,J>Z)throw await Q.cancel().catch(()=>{}),new K88(`Upstream response exceeded ${Z} bytes`);Y+=X.decode(K,{stream:!0})}return Y+=X.decode(),Y}var K88;var H50=L(()=>{K88=class K88 extends Error{}});async function uS0({ctx:$,runner:Z,handle:Q,orgId:X,userId:Y,entries:J}){if(!J||J.length===0)return;let G={};for(let W of J){if(W.kind==="literal"){G[W.key]=W.value;continue}try{let{value:H}=await $.storage.secrets.resolveById(W.secretId,X,Y);G[W.key]=H}catch(H){if(H instanceof AW||H instanceof _z){console.warn(`[SANDBOX_START] skipping env ${W.key}: ${H.message}. Re-link or recreate the secret to restore.`);continue}throw H}}if(Object.keys(G).length===0)return;let K=await Z.proxyDaemonRequest(Q,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({env:G})});if(!K.ok){let W=await cz(K,aM6).catch(()=>K.statusText);console.warn(`[SANDBOX_START] daemon rejected env patch (${K.status}): ${W}`)}}var aM6=10485760;var ND1=L(()=>{I60();H50()});async function F88($,Z,Q,X,Y){let J=await y3({connectionId:$,tokenStorage:new I9(X,Y)});if(!J.accessToken)return null;return N88(Z,Q,J.accessToken)}function U88($,Z){return N88($,Z,null)}async function N88($,Z,Q){let X=new Map,Y=new Set(W88.map((W)=>W.path));for(let W of Object.values(H88))for(let H of W??[])Y.add(H);await Promise.all(Array.from(Y).map(async(W)=>{X.set(W,await eM6($,Z,W,Q))}));let J=W88.find(({path:W})=>X.get(W)!==null);if(!J)return null;let G=H88[J.pm]??[],K=null;for(let W of G)if(K=$I6(X.get(W)??null),K)break;return{packageManager:J.pm,devPort:K}}async function eM6($,Z,Q,X){let Y=`https://api.github.com/repos/${$}/${Z}/contents/${encodeURIComponent(Q)}`;try{let J={Accept:"application/vnd.github+json","User-Agent":"studio-runtime-detect"};if(X)J.Authorization=`token ${X}`;let G=await fetch(Y,{headers:J,signal:AbortSignal.timeout(5000)});if(!G.ok)return null;let K=await G.json();if(!K.content||K.encoding!=="base64")return null;return Buffer.from(K.content,"base64").toString("utf8")}catch{return null}}function $I6($){if(!$)return null;try{let Z=JSON.parse($),Q=Z.tasks??Z.scripts??{},Y=(Q.dev??Q.start??"").match(sM6)?.[1]??null;if(!Y)return null;let J=Number(Y);return J>=1&&J<=65535?Y:null}catch{return null}}var W88,H88,sM6;var B88=L(()=>{NW();WF();W88=[{path:"deno.json",pm:"deno"},{path:"deno.jsonc",pm:"deno"},{path:"bun.lock",pm:"bun"},{path:"bunfig.toml",pm:"bun"},{path:"pnpm-lock.yaml",pm:"pnpm"},{path:"yarn.lock",pm:"yarn"},{path:"package-lock.json",pm:"npm"},{path:"package.json",pm:"bun"}],H88={deno:["deno.json","deno.jsonc"],bun:["package.json"],pnpm:["package.json"],yarn:["package.json"],npm:["package.json"]},sM6=/(?:--port|PORT=|:)(\d{4,5})/});function ZI6($){return($??"").normalize("NFKD").replace(/[\u0300-\u036F]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"user"}function lS0($){return $?.name||$?.email?.split("@")[0]||void 0}function cS0($){let Z=ZI6($),Q=Date.now().toString(36).split("").reverse().join("");return`${Z}-${Q}`}async function O88($,Z){L88??=Y$.createHistogram("studio.sandbox.provision.duration_ms",{description:"Wall-clock time of one sandbox ensure, by provider (runner_kind), outcome, the provider a fallback left (fallback_from), whether a warm-pool pod was claimed (warm_pool), and whether a sandbox was already recorded (start=resume) or not (start=fresh).",unit:"ms",advice:{explicitBucketBoundaries:[500,1000,2000,5000,1e4,20000,30000,60000,120000,300000,600000]}}),D88??=Y$.createCounter("studio.sandbox.placement",{description:"Sandbox ensures by the provider that served them (runner_kind) and why it was chosen (reason)."});let Q=performance.now(),X=(Y,J,G={})=>L88?.record(performance.now()-Q,{...$,runner_kind:Y?yD[Y]:"unknown",outcome:J,...G});try{let Y=await Z(),J=Y.placement?.fallbackFrom;if(X(Y.provider,"ok",{warm_pool:String(Y.warmPoolAdopted),...J&&{fallback_from:yD[J]}}),Y.placement)D88.add(1,{runner_kind:yD[Y.provider],reason:Y.placement.reason});return Y}catch(Y){throw X(TB1(Y),"error"),Y}}var L88,D88;var w88=L(()=>{ep();f6()});async function F50($,Z,Q){try{await $.storage.threads.stampRuntimeIfAbsent(Z,Q)}catch(X){console.warn(`[stampRuntimeIfAbsent] ${Z}: ${X instanceof Error?X.message:String(X)}`)}}function j88($){let Z=$?.trim();if(!Z)return null;try{let Q=new URL(Z);if(Q.protocol!=="http:"&&Q.protocol!=="https:")return null;return Q.href}catch{return null}}function Zn($){return j88($?.previewServerUrl)??j88($?.productionUrl)}var mS0=()=>{};function Vg($){return $==="cms"||$==="sandbox"?$:null}function QI6($){return!!Zn($)&&$?.fastPreview===!0}function dS0($){return QI6($)?"cms":"sandbox"}var BD1;var Qn=L(()=>{mS0();BD1=["cms","sandbox"]});import{z as pN}from"zod";async function Xn($,Z){o(Z);let Q=W0(Z),X=p0(Z);if(!X)throw Error("User ID required");let Y=await Z.storage.virtualMcps.findById($.virtualMcpId);if(!Y||Y.organization_id!==Q.id)throw Error("Virtual MCP not found");let J=Y.metadata??{},G=await zg(Z,$.branch,X),K=zF(WZ(J),G,$.branch),W=await WJ(Z);if(K){if(await W.alive(K.sandboxHandle).catch(()=>!0))return K;await vz(Z.storage.virtualMcps,$.virtualMcpId,X,G,$.branch).catch((O)=>{console.warn("[ensureSandbox] failed to reap stale entry",O)})}let H=uN($.branch)??Z.metadata?.threadId;if(H)F50(Z,H,"sandbox");let U=await lN(Z,H)??J.repository??null;await $.onColdStart?.().catch(()=>{});let{entry:N,warmPoolAdopted:B}=await P88({ctx:Z,userId:X,sandboxUserId:G,orgId:Q.id,virtualMcpId:$.virtualMcpId,branch:$.branch,metadata:J,repository:U,threadRepos:await gB1(Z,H),existing:null,runner:W,...$.purpose?{purpose:$.purpose}:{}});return $.onBound?.({warmPoolAdopted:B}),N}async function z88($,Z,Q){if(!Z)return null;if(Z.accountId===null&&!Q&&!Z.legacyConnectionId)return Z;return await VD($.storage,Z)?Z:null}async function XI6($){let Z=$.repos.filter((Y)=>!$.primary||!kL(Y,$.primary)),Q=C60(Z),X=[];for(let[Y,J]of Z.entries())try{let G=await Oz($.ctx.storage,$.orgId,J),K=await z88($.ctx,G,J.connectionId),W=J.connectionId??G?.legacyConnectionId;if(!K&&!W)continue;let{cloneUrl:H,expiresAt:F}=K?await kN($.ctx,K,{forceRefresh:!0}):await SN(W,J.owner,J.name,$.ctx.db,$.ctx.vault);X.push({cloneUrl:H,credentialExpiresAt:hN1(F),...K?{repositoryId:K.id}:{connectionId:W},userName:$.gitUserName,userEmail:$.gitUserEmail,displayName:K?K.path:`${J.owner}/${J.name}`,directoryName:Q[Y],submoduleCredentials:$.submoduleCredentials})}catch(G){console.warn(`[provisionSandbox] skipping secondary ${J.owner}/${J.name}:`,G instanceof Error?G.message:G)}return X}async function P88($){let{ctx:Z,userId:Q,sandboxUserId:X,orgId:Y,virtualMcpId:J,branch:G,metadata:K,threadRepos:W,existing:H,runner:F,purpose:U,provider:N}=$,B=U==="harness-run",D="default",O=$.repository?await YI6({ctx:Z,orgId:Y,virtualMcpId:J,userId:Q,repository:$.repository}):null,{runtime:w,packageManager:j,port:E,packageManagerPath:z}=G88(K),A=await Z.storage.organizationSettings.get(Y),P=await uC0({ctx:Z,orgId:Y,userId:Q,entries:A?.submodule_credentials}),T;if(O){let e=await Oz(Z.storage,Y,O);D=e?.sandboxImage??"default";let s=await z88(Z,e,O.connectionId),J0=O.connectionId??e?.legacyConnectionId??void 0;if(!s&&J0)await Gp({ctx:Z,connectionId:J0,organizationId:Y,forceRefresh:!0,onLegacyMintError:(o0)=>{console.error("[provisionSandbox] repo-scoped legacy token mint failed",{connectionId:J0,error:o0.message})}});let{cloneUrl:c0,gitUserName:x0,gitUserEmail:O1,expiresAt:n0}=s?await HI6(Z,s):J0?await SN(J0,O.owner,O.name,Z.db,Z.vault):ru$(O.owner,O.name);if(!j&&!s){let o0=J0?await F88(J0,O.owner,O.name,Z.db,Z.vault):await U88(O.owner,O.name);if(o0)j=o0.packageManager,w=K50[o0.packageManager].runtime,E=o0.devPort??E,await JI6(Z,J,Q,o0.packageManager,o0.devPort)}let z0=P0().sandboxStickyHeadRefEnabled,T0=yO0({branch:G,derivedRef:PF(G,{flat:Eg(e?.provider)}),recordedHeadRef:z0?await lC0(Z,uN(G)):null,sticky:z0});T={cloneUrl:c0,credentialExpiresAt:hN1(n0),...s?{repositoryId:s.id}:J0?{connectionId:J0}:{},userName:x0,userEmail:O1,branch:T0,displayName:s?s.path:`${O.owner}/${O.name}`,submoduleCredentials:P}}let q=await XI6({ctx:Z,orgId:Y,repos:W??[],primary:O,gitUserName:T?.userName??"",gitUserEmail:T?.userEmail??"",submoduleCredentials:P}),f=w&&j&&!B?{runtime:w,packageManager:j,...E!==null?{devPort:Number(E)}:{},...z?{packageManagerPath:z}:{}}:void 0,S=N60({orgId:Y,virtualMcpId:J,branch:G}),V=!P0().orgFsMountsDisabled,h;if(V){let e=Z.organization?.slug??(await Z.db.selectFrom("organization").select(["slug"]).where("id","=",Y).executeTakeFirst())?.slug;if(e)h=await dO0(Z,{orgSlug:e,orgId:Y,baseUrl:t5()})}let g=await O88({start:H?"resume":"fresh",purpose:U??"interactive"},async()=>{return await WI6(F),KI6(F,{userId:X,projectRef:S},{branch:G,repo:T,extraRepos:q,workload:f,cloneOnly:B,...U?{purpose:U}:{},...N?{provider:N}:{},...D!=="default"?{sandboxImage:D}:{},tenant:{orgId:Y,userId:X,...Z.organization?.slug?{orgSlug:Z.organization.slug}:{},...Z.organization?.name?{orgName:Z.organization.name}:{},...Z.auth.user?.email?{userEmail:Z.auth.user.email}:{},...Z.auth.user?.name?{userName:Z.auth.user.name}:{}},...h?{orgFsConfigJson:h}:{}})}),l=$n(K);await uS0({ctx:Z,runner:F,handle:g.handle,orgId:Y,userId:Q,entries:l});let m=!!H&&H.sandboxHandle===g.handle&&H?.createdAt?H.createdAt:Date.now(),Y0=K.runtime?.selected??null,N0=K.runtime?.port??null,X0=K.runtime?.path??null,D0={sandboxHandle:g.handle,previewUrl:g.previewUrl,createdAt:m,startedWith:{packageManager:Y0,port:N0,path:X0}};await Nr$(Z.storage.virtualMcps,J,Q,X,G,D0);let Q0=uN(G)??Z.metadata?.threadId;if(Q0)await Lr$(Z,Q0,X,G,D0);let n=!H||H.sandboxHandle!==g.handle;return{entry:D0,isNewVm:n,warmPoolAdopted:g.warmPoolAdopted}}async function YI6($){let{ctx:Z,orgId:Q,virtualMcpId:X,userId:Y,repository:J}=$;if(!J.connectionId)return J;if(await Z.storage.connections.findById(J.connectionId,Q))return J;let{items:K}=await Z.storage.connections.list(Q),W=QO0(K,J.owner,J.name);if(!W)return console.warn("[provisionSandbox] recorded repo connection no longer exists and no live connection covers the repo",{virtualMcpId:X,connectionId:J.connectionId}),J;console.warn("[provisionSandbox] healed dangling repo connection",{virtualMcpId:X,staleConnectionId:J.connectionId,connectionId:W.id});try{let F=(await Z.storage.virtualMcps.findById(X))?.metadata??{},U=F.repository;if(U?.connectionId===J.connectionId){let N=YZ(W);await Z.storage.virtualMcps.update(X,Y,{metadata:{...F,repository:{...U,connectionId:W.id,...N?{installationId:N.installationId}:{}}}})}}catch(H){console.warn("[provisionSandbox] failed to persist healed repo connection",{virtualMcpId:X,error:H.message})}return{...J,connectionId:W.id}}async function JI6($,Z,Q,X,Y){let J=await $.storage.virtualMcps.findById(Z);if(!J)return;let G=J.metadata??{};await $.storage.virtualMcps.update(Z,Q,{metadata:{...G,runtime:{selected:X,port:Y}}})}async function KI6($,...Z){try{return await $.ensure(...Z)}catch(Q){if(!(Q instanceof jF))throw Q;throw Error(`sandbox provisioning failed: the sandbox pod rejected the bootstrap handshake (HTTP ${Q.status}). The claim was released; retrying gets a different pod.`,{cause:Q})}}async function WI6($){let Z=Date.now()+E88,Q=!1;while(!await $.hasSchedulableCapacity()){if(Date.now()>=Z)throw Error(`sandbox provisioning failed: the cluster has had no room to schedule another sandbox for ${Math.round(E88/1000)}s`);if(!Q)Q=!0,console.warn("[ensureSandbox] waiting for cluster capacity \u2014 a sandbox pod cannot be scheduled right now");await $$(GI6)}}async function HI6($,Z){try{return await kN($,Z,{forceRefresh:!0})}catch(Q){if(Q instanceof g0){let X=Q.status===404?bR.githubConnectionMissing:bR.githubNotAuthenticated;throw Error(b40(X,Q.message))}throw Q}}var LD1,E88=150000,GI6=5000;var U50=L(()=>{ep();Ng();cB1();X8();v0();W50();ND1();vB1();DG();GG();y40();B88();UD1();TW();w88();Qn();RW();gO0();X$();T9();jz();DG();N7();C5();IC0();iO0();LD1=p({name:"SANDBOX_START",description:"Start a sandbox with the connected repository and dev server.",annotations:{title:"Start VM Preview",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0},_meta:{ui:{visibility:"app"}},inputSchema:pN.object({virtualMcpId:pN.string().describe("Virtual MCP ID"),branch:pN.string().min(1).optional().describe("Git branch to check out. Pass the thread's branch whenever the caller has one: when omitted the handler mints a fresh `<user-slug>-<timestamp>` name, which becomes a SEPARATE sandbox from the one the thread's own branch resolves to. The resolved branch is returned in the response so callers can persist it."),threadId:pN.string().optional().describe("The session asking for a sandbox. A thread stamped `cms` is refused \u2014 that session reads and writes over the decofile API and a pod would be invisible to it. Optional: an unstamped (legacy) thread is always allowed, and so is a caller with no thread."),provider:pN.enum(["kubernetes","freestyle"]).optional().describe("Where to run a NEW sandbox, when that provider is configured and can run it; otherwise the other one is used. An existing sandbox stays where it is. Omitted: Kubernetes while it has room, else Freestyle.")}),outputSchema:pN.object({previewUrl:pN.string().nullable(),sandboxHandle:pN.string(),branch:pN.string(),isNewVm:pN.boolean()}),handler:async($,Z)=>{o(Z);let Q=W0(Z);await Z.access.check();let X=$.branch??cS0(lS0(Z.auth.user)),Y=uN(X)??$.threadId??Z.metadata?.threadId;if(Y){let O=await Z.storage.threads.get(Y).catch(()=>null);if(Vg(O?.metadata?.runtime)==="cms")throw Error("This chat is a CMS session and does not use a sandbox. Start a coding session to get one.")}let J=p0(Z);if(!J)throw Error("User ID required");let G=await zg(Z,X,J),K=await Z.storage.virtualMcps.findById($.virtualMcpId);if(!K||K.organization_id!==Q.id)throw Error("Virtual MCP not found");let W=K.metadata??{},H=await WJ(Z),F=zF(WZ(W),G,X),N=await lN(Z,Y)??W.repository??null,{entry:B,isNewVm:D}=await P88({ctx:Z,userId:J,sandboxUserId:G,orgId:Q.id,virtualMcpId:$.virtualMcpId,branch:X,metadata:W,repository:N,threadRepos:await gB1(Z,Y),existing:F,runner:H,...$.provider?{provider:$.provider}:{}});if(Y)F50(Z,Y,"sandbox");return{...B,branch:X,isNewVm:D}}})});async function FI6($,Z,Q,X){try{let Y=$.organization;if(!Y)return;let J=await hS0($,X.virtualMcpId,Y,"tool-scripting"),G=await Z.proxyDaemonRequest(Q,"/_sandbox/tools/sync",{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify(J)});if(!G.ok)console.warn("[agent-sandbox-fs] tools/sync failed",G.status,await G.text().catch(()=>""))}catch(Y){console.warn("[agent-sandbox-fs] tools/sync failed",Y)}}async function Yn($,Z){let Q=await WJ($),X=null,Y=()=>{if(!X){if(X=Xn({virtualMcpId:Z.virtualMcpId,branch:Z.branch},$).then((K)=>K.sandboxHandle),X.catch(()=>{X=null}),Z.syncTools)X.then((K)=>FI6($,Q,K,{virtualMcpId:Z.virtualMcpId})).catch(()=>{})}return X},J=Z.branch==="ephemeral";return HD1(Q,{ensureHandle:Y,invalidateHandle:async(K)=>{if(X=null,!J&&!K?.force)return;try{await vz($.storage.virtualMcps,Z.virtualMcpId,Z.userId,Z.userId,Z.branch)}catch(W){console.warn("[agent-sandbox-fs] failed to reap vmMap entry",W)}},canAutoRestart:J,threadId:Z.threadId})}async function T88($,Z){try{let Q=await Yn($,Z),{stdout:X}=await Q.onBash("test -d .deco && echo __DECO_SITE__");return X.includes("__DECO_SITE__")}catch(Q){return console.warn("[agent-sandbox-fs] .deco probe failed; assuming deco site",Q),!0}}var iS0=L(()=>{ep();FD1();TW();U50();DG()});function DD1($){let Z=$.toISOString();return`<current-context>
|
|
3469
3469
|
Current date: ${Z.slice(0,10)}
|
|
3470
3470
|
Current time: ${Z.slice(11,16)} UTC
|
|
3471
3471
|
</current-context>`}var A88,R88;var OD1=L(()=>{A88={type:"ephemeral",ttl:"5m"},R88={openrouter:{cache_control:{type:"ephemeral",ttl:"5m"}}}});function q88($,Z){let Q=[],X=$.length-1,Y=$.length-2;for(let J=0;J<$.length;J++){let G=J===Y||J===X;Q.push({role:"system",content:$[J],...G?{providerOptions:UI6}:{}})}return Q.push({role:"system",content:DD1(Z)}),Q}var UI6;var M88=L(()=>{OD1();UI6={anthropic:{cacheControl:A88}}});function I88($){if($.length===0)return null;return`
|