decocms 4.177.1 → 4.177.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-2-mxfrk9.js → AlertCircle-CujrPwsm.js} +1 -1
- package/dist/client/assets/{AreaChart-CChVOUx8.js → AreaChart-C4YZ0_gL.js} +1 -1
- package/dist/client/assets/{ArrowUp-DyT7XZqG.js → ArrowUp-FnZCEJcp.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-CPOOO4oW.js → ArrowUpRight-lowWG_1J.js} +1 -1
- package/dist/client/assets/{Check-Be-5GGRs.js → Check-DW10Q148.js} +1 -1
- package/dist/client/assets/{CheckCircle-DzGlrSK2.js → CheckCircle-CBMEXt7L.js} +1 -1
- package/dist/client/assets/{ChevronDown-DdxMzC59.js → ChevronDown-DwAvDKTl.js} +1 -1
- package/dist/client/assets/{ChevronRight-DJwM5k09.js → ChevronRight-C99dote8.js} +1 -1
- package/dist/client/assets/{ChevronUp-DiAqu8Yi.js → ChevronUp-dfA-SOdk.js} +1 -1
- package/dist/client/assets/{Copy01-B6_TvfNX.js → Copy01-Bl940Z4D.js} +1 -1
- package/dist/client/assets/{CpuChip01-82yYPYT-.js → CpuChip01-Bhz7W_CJ.js} +1 -1
- package/dist/client/assets/{DotsVertical-BHvMVqac.js → DotsVertical-CDBkc6O0.js} +1 -1
- package/dist/client/assets/{Eye-3cJGdK2e.js → Eye-DMdNnBvv.js} +1 -1
- package/dist/client/assets/{FilterLines-Dsffjh6h.js → FilterLines-YmmO5qI8.js} +1 -1
- package/dist/client/assets/{HardDrive-B9OsWbwr.js → HardDrive-HviCuJpo.js} +1 -1
- package/dist/client/assets/{Key01-Df2BRxE-.js → Key01-DSUIGNWV.js} +1 -1
- package/dist/client/assets/{LayoutLeft-1UT5iG3d.js → LayoutLeft-BR9yVote.js} +1 -1
- package/dist/client/assets/{LinkExternal01-5BvhBbAT.js → LinkExternal01-CqPsuF15.js} +1 -1
- package/dist/client/assets/{LogOut01-BKkPGm2P.js → LogOut01-D3C7qX0q.js} +1 -1
- package/dist/client/assets/{Monitor01-DHcySRr0.js → Monitor01-D2efweSf.js} +1 -1
- package/dist/client/assets/{Palette-uU-43vio.js → Palette-ChIl58Yp.js} +1 -1
- package/dist/client/assets/{Play-D3ny8hKS.js → Play-ChZsTLeU.js} +1 -1
- package/dist/client/assets/{Plus-DMtkW9dt.js → Plus-CCnPd46p.js} +1 -1
- package/dist/client/assets/{SearchLg-DM31eGyS.js → SearchLg-DddoQMLM.js} +1 -1
- package/dist/client/assets/{SearchMd-D4qusMiJ.js → SearchMd-BwelsClN.js} +1 -1
- package/dist/client/assets/{Settings02-7vGrIrBN.js → Settings02-BChcxi54.js} +1 -1
- package/dist/client/assets/{Shield01-BcO35Tj0.js → Shield01-DZW5Me3r.js} +1 -1
- package/dist/client/assets/{Star01-DwCsggBK.js → Star01-BgvVTS-Z.js} +1 -1
- package/dist/client/assets/{Stars01-tnb0apDe.js → Stars01-BY24v2c2.js} +1 -1
- package/dist/client/assets/{Stars02-7HP6N02B.js → Stars02-B4uUiiNp.js} +1 -1
- package/dist/client/assets/{Sun-B9IYF_rw.js → Sun-DHBNEW-T.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-CGiPnyuY.js → SwitchHorizontal01-DuMmTKcr.js} +1 -1
- package/dist/client/assets/{Tool01-R3K_Thtw.js → Tool01-B-2jpyWm.js} +1 -1
- package/dist/client/assets/{Tool02-DFJAwjIN.js → Tool02-Cwn7DNuf.js} +1 -1
- package/dist/client/assets/{Trash01-D1KG_3tD.js → Trash01-du7dJ8xM.js} +1 -1
- package/dist/client/assets/{TrendUp01-7TEuXkqk.js → TrendUp01-BBNr9I0n.js} +1 -1
- package/dist/client/assets/{Upload01-D9SqYEtC.js → Upload01-Bqvc-5mY.js} +1 -1
- package/dist/client/assets/{User01-OX0_Z8wV.js → User01-DC9ZgZwF.js} +1 -1
- package/dist/client/assets/{Users01-DUMizSVY.js → Users01-6KiAb6vQ.js} +1 -1
- package/dist/client/assets/{Users03-lZ1LleYF.js → Users03-B183ejmS.js} +1 -1
- package/dist/client/assets/{X-CCi-VQZa.js → X-BoVJVvaY.js} +1 -1
- package/dist/client/assets/{XCircle-B0MfX4-G.js → XCircle-GALqPCo7.js} +1 -1
- package/dist/client/assets/{XClose-DKqvkrIA.js → XClose-BlYRHguW.js} +1 -1
- package/dist/client/assets/{Zap-CqFv29Bj.js → Zap-RUps3lz8.js} +1 -1
- package/dist/client/assets/{ZapSquare-rt2_eN-x.js → ZapSquare-CyvjvqAw.js} +1 -1
- package/dist/client/assets/{access-gate-DK2WT23M.js → access-gate-DbgH0ewd.js} +1 -1
- package/dist/client/assets/{add-section-modal-CiE32p1F.js → add-section-modal-CZa7qWCu.js} +1 -1
- package/dist/client/assets/{agent-icon-B973VM7Z.js → agent-icon-BMPeJ6Tx.js} +1 -1
- package/dist/client/assets/{agents-list-CufEIuCm.js → agents-list-AcVHPoUd.js} +1 -1
- package/dist/client/assets/{ai-providers-k5zu4eqF.js → ai-providers-DBv8sZkN.js} +1 -1
- package/dist/client/assets/{alert-BLf9YI2F.js → alert-B1785G2V.js} +1 -1
- package/dist/client/assets/{alert-dialog-DVkWGoFg.js → alert-dialog-D-tTwfMD.js} +1 -1
- package/dist/client/assets/{app-editor-DCq5-a25.js → app-editor-DaQzCq59.js} +1 -1
- package/dist/client/assets/{auth-Bkca6AT7.js → auth-BhtO9so7.js} +1 -1
- package/dist/client/assets/{auth-catchall-Dq6_ojsa.js → auth-catchall-BdRdM3sF.js} +1 -1
- package/dist/client/assets/{auth-entry-C7vqV_nj.js → auth-entry-DofrUAja.js} +1 -1
- package/dist/client/assets/{auth-split-layout-C7q02dly.js → auth-split-layout-CnLziHxl.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-BxoxqCLU.js → authenticate-and-persist-oauth-C2B1tJCP.js} +1 -1
- package/dist/client/assets/{automation-list-row-B5nf-Khk.js → automation-list-row-bRQihJQD.js} +1 -1
- package/dist/client/assets/{automation-runs-j_hLwqX9.js → automation-runs-CdGVJ8Sz.js} +1 -1
- package/dist/client/assets/{automations-BIUyz6BG.js → automations-bCY1z19t.js} +1 -1
- package/dist/client/assets/{avatar-BnU49HmK.js → avatar-CObcTP4f.js} +1 -1
- package/dist/client/assets/{badge-CDGc7KqH.js → badge-DdDa_GtZ.js} +1 -1
- package/dist/client/assets/{block-document-CVZGNHqv.js → block-document-CSaRdwWC.js} +1 -1
- package/dist/client/assets/{brand-context-nrK28_bL.js → brand-context-BpPk1nMw.js} +1 -1
- package/dist/client/assets/{buckets-BkLNLMph.js → buckets-B3DheidT.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-CKw0kRYF.js → bulk-category-panel-Dzc0EShH.js} +1 -1
- package/dist/client/assets/{calendar-CmW85elm.js → calendar-CovrFJTt.js} +1 -1
- package/dist/client/assets/{capability-load-error-BEjVgkS3.js → capability-load-error-DjZIo_C_.js} +1 -1
- package/dist/client/assets/{card-BQzdZBkG.js → card-DAaI9RTM.js} +1 -1
- package/dist/client/assets/{category-editor-DjKy2DN_.js → category-editor-ChAcbCsE.js} +1 -1
- package/dist/client/assets/{chat-context-gg75OlIn.js → chat-context-ERPXBA0s.js} +1 -1
- package/dist/client/assets/{checkbox-B040Lq8L.js → checkbox-DAUIgwuw.js} +1 -1
- package/dist/client/assets/{cli-auth-success-l_KLTWnW.js → cli-auth-success-hDWXtD4S.js} +1 -1
- package/dist/client/assets/{collection-detail-DwGC9WJH.js → collection-detail-BOUnDCvA.js} +1 -1
- package/dist/client/assets/{collection-display-button-Bfkoy0fk.js → collection-display-button-BENWxcm4.js} +1 -1
- package/dist/client/assets/{collection-search-fjCBsqB7.js → collection-search-BlNDygrc.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-DOLdfzl9.js → collection-table-wrapper-DPox8fo6.js} +1 -1
- package/dist/client/assets/{collection-tabs-ekbc4tUg.js → collection-tabs-BSSb4AZC.js} +1 -1
- package/dist/client/assets/{command-CRNXe9en.js → command-BEpWU-1L.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-DM46iyU7.js → commerce-onboarding-C9Q9VjxB.js} +1 -1
- package/dist/client/assets/{companions-core-DGONnZ5h.js → companions-core-0oq_tfkI.js} +1 -1
- package/dist/client/assets/{connect-BKTGO1az.js → connect-iZ4LTygU.js} +1 -1
- package/dist/client/assets/{connection-DViY8K-f.js → connection-CkQo38cz.js} +1 -1
- package/dist/client/assets/{connection-card-DDzniH8k.js → connection-card-b35csTCR.js} +1 -1
- package/dist/client/assets/{connection-detail-DK1UpsnS.js → connection-detail-adCmFdi7.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-DfAOxx9H.js → connection-form-helpers-BkXVPTbv.js} +1 -1
- package/dist/client/assets/{connections-WLJtD4O2.js → connections-CaFvLnYI.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-D6OCyxRv.js → decopilot-sse-pool-BbIjYqiX.js} +1 -1
- package/dist/client/assets/{dialog-BkFNCqxC.js → dialog-CQcBtvt8.js} +1 -1
- package/dist/client/assets/{domain-settings-BUjqxaaC.js → domain-settings-CZ6dtis6.js} +1 -1
- package/dist/client/assets/{drawer-CTa-9li9.js → drawer-F6H0xJ0z.js} +1 -1
- package/dist/client/assets/{dropdown-menu-D8kA38kN.js → dropdown-menu-PUstJqfa.js} +1 -1
- package/dist/client/assets/{empty-state-CNaIPLCP.js → empty-state-ydg5A2lP.js} +1 -1
- package/dist/client/assets/{extract-connection-data-CODveZYI.js → extract-connection-data-D5zkdWp6.js} +1 -1
- package/dist/client/assets/{file-explorer-QXFsz3Lx.js → file-explorer-QWgUHJm2.js} +1 -1
- package/dist/client/assets/{form-CV8T3-1y.js → form-CYg1X62e.js} +1 -1
- package/dist/client/assets/{general-DC18oSpb.js → general-BC6Pn8f3.js} +1 -1
- package/dist/client/assets/{github-repo-picker-DnJfTnjE.js → github-repo-picker-CbfDOIS8.js} +1 -1
- package/dist/client/assets/{hooks-BGhyFnHc.js → hooks-ICnM50KY.js} +1 -1
- package/dist/client/assets/{index-C_JXYoTu.js → index-B_YrTjFp.js} +3 -3
- package/dist/client/assets/{index-C2hEQwHA.js → index-C0T1hmdF.js} +3 -3
- package/dist/client/assets/{index-CLj357TJ.js → index-C64gDBqP.js} +1 -1
- package/dist/client/assets/{index-D9R7ENz9.js → index-CTXrzWE3.js} +1 -1
- package/dist/client/assets/{index-KiepMOd5.js → index-CogONXY3.js} +1 -1
- package/dist/client/assets/{index-2Wm27vot.js → index-DGtLsih-.js} +5 -5
- package/dist/client/assets/{index-CmORqTfw.js → index-DTKxs-S7.js} +1 -1
- package/dist/client/assets/{index-BHODagqu.js → index-Dh0rlGnt.js} +1 -1
- package/dist/client/assets/{index-Bnih_jI8.js → index-DyU5pY4M.js} +1 -1
- package/dist/client/assets/{index-CffTKEM4.js → index-phz-230y.js} +1 -1
- package/dist/client/assets/{index-redirect-BFCdVsIR.js → index-redirect-BWDkY4rF.js} +1 -1
- package/dist/client/assets/{index-CnIdntdB.js → index-zU_jaCez.js} +1 -1
- package/dist/client/assets/{input-C-fnbqCO.js → input-BwUUit92.js} +1 -1
- package/dist/client/assets/{integration-icon-BNEpN8aI.js → integration-icon-BFo-PHxO.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-BosLzFXT.js → invite-member-dialog-D656VjLM.js} +1 -1
- package/dist/client/assets/{label-C-72R2Q-.js → label-B3a5p1s9.js} +1 -1
- package/dist/client/assets/{layout-DpxTSJfG.js → layout-Cn56VQ6G.js} +1 -1
- package/dist/client/assets/{login--KAGBLLo.js → login-cPNYiFuS.js} +1 -1
- package/dist/client/assets/{mcp-oauth-fo8kiS7W.js → mcp-oauth-BDfRuNJK.js} +1 -1
- package/dist/client/assets/{members-BAv5AyeN.js → members-YaHo9Z1K.js} +1 -1
- package/dist/client/assets/{monaco-editor-CgTxlXJg.js → monaco-editor-MvIeuW9Z.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-DOHkUO1M.js → monitoring-stats-row-f0fcio-Q.js} +1 -1
- package/dist/client/assets/{multi-select-CuCrQ3s2.js → multi-select-Dw5tEWO8.js} +1 -1
- package/dist/client/assets/{oauth-callback-sc38TlKp.js → oauth-callback-BdcyypBc.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-BihD6SNV.js → oauth-callback-ai-provider-CA2jZj0U.js} +1 -1
- package/dist/client/assets/{onboarding-DOTmf_gU.js → onboarding-BgTGJw-k.js} +1 -1
- package/dist/client/assets/{org-layout-CvafgmK5.js → org-layout-BXg9tLfW.js} +1 -1
- package/dist/client/assets/{organization-choice-DuT0OJf3.js → organization-choice-D0NSHL9c.js} +1 -1
- package/dist/client/assets/{orgs-47suEXQs.js → orgs-CXB95D12.js} +1 -1
- package/dist/client/assets/{page-seo-form-m3QKhh8z.js → page-seo-form-BUb8iQTM.js} +1 -1
- package/dist/client/assets/{popover-Cwxn_DCv.js → popover-CyEka9gd.js} +1 -1
- package/dist/client/assets/{post-editor-BxdsEBBa.js → post-editor-YnbE47kj.js} +1 -1
- package/dist/client/assets/{primitives-DlTxAIok.js → primitives-tbS7oGeZ.js} +1 -1
- package/dist/client/assets/{profile-BNjTQJAH.js → profile-R9UezYAm.js} +1 -1
- package/dist/client/assets/project-app-view-DImGW7uo.js +1 -0
- package/dist/client/assets/record-editor-46LrU8Hi.js +1 -0
- package/dist/client/assets/{redirect-editor-BdiDwKDt.js → redirect-editor-CTgoJBkC.js} +1 -1
- package/dist/client/assets/registry-EmOl-ab7.js +2 -0
- package/dist/client/assets/{registry-layout-DHGHMlNa.js → registry-layout-CqGxou07.js} +1 -1
- package/dist/client/assets/{reports-Qopna_Xs.js → reports-CupQmvvk.js} +1 -1
- package/dist/client/assets/{require-capability-ByG0Extp.js → require-capability-CqMS9LF0.js} +1 -1
- package/dist/client/assets/{required-auth-layout-p5sjxAvg.js → required-auth-layout-B5ZP-bdh.js} +1 -1
- package/dist/client/assets/{reset-password-rRtlbf0u.js → reset-password-CWePAZox.js} +1 -1
- package/dist/client/assets/{roles-Pn010-bu.js → roles-BfSn_ery.js} +1 -1
- package/dist/client/assets/{search-input-DEUIKB6l.js → search-input-Bmeuo26r.js} +1 -1
- package/dist/client/assets/{secrets-BQqovdvw.js → secrets-DI65zBJS.js} +1 -1
- package/dist/client/assets/{sections-editor-Ddcc_TXp.js → sections-editor-fnI_N0SI.js} +1 -1
- package/dist/client/assets/{select-C-MMr0I_.js → select-CLrLhta0.js} +1 -1
- package/dist/client/assets/{select-model-Dl-Lm1PR.js → select-model-CUCry6UP.js} +1 -1
- package/dist/client/assets/{self-tool-result-Ddbtg1Nf.js → self-tool-result-QW6bBNH2.js} +1 -1
- package/dist/client/assets/{seo-editor-Db3q0z0D.js → seo-editor-ByQabh_u.js} +1 -1
- package/dist/client/assets/{settings-layout-DHuQqB1t.js → settings-layout-CzRK7jt8.js} +1 -1
- package/dist/client/assets/{settings-section-2g-GqRT7.js → settings-section-BgDhwHL-.js} +1 -1
- package/dist/client/assets/{shell-controls-DBuvOWF9.js → shell-controls-D_hP6i1L.js} +1 -1
- package/dist/client/assets/{shell-layout-CRLbZ7Lc.js → shell-layout-CrMHbF0K.js} +1 -1
- package/dist/client/assets/{sidebar--Jli8_vV.js → sidebar-YjDzShe_.js} +1 -1
- package/dist/client/assets/{skeleton-BBLZ-nGG.js → skeleton-d8EyA0Kx.js} +1 -1
- package/dist/client/assets/{spinner-CJPAjIJo.js → spinner-D7-lIYk0.js} +1 -1
- package/dist/client/assets/{sso-CX11L0X4.js → sso-Dw5vonNc.js} +1 -1
- package/dist/client/assets/{store-BaRzz_Ai.js → store-BOJou9V1.js} +1 -1
- package/dist/client/assets/store-registry-DKi5hfWO.js +2 -0
- package/dist/client/assets/{studio-tools-28EhT0BO.js → studio-tools-DCEUmDPI.js} +1 -1
- package/dist/client/assets/{switch-Ct3V8oBb.js → switch-BMm8PSFu.js} +1 -1
- package/dist/client/assets/{tab-id-CZS91f0S.js → tab-id-4cSyEvZh.js} +1 -1
- package/dist/client/assets/{table-C4_pqLBf.js → table-BXZe_mum.js} +1 -1
- package/dist/client/assets/{tabs-DSJwK5c4.js → tabs-CGoN27LY.js} +1 -1
- package/dist/client/assets/{textarea-DXhnnQdn.js → textarea-7b843g0T.js} +1 -1
- package/dist/client/assets/{toggle-group-rZRtXF7Z.js → toggle-group-fXQ6QX6R.js} +1 -1
- package/dist/client/assets/{toolbar-DH0DjOiV.js → toolbar-sfGeLlSJ.js} +1 -1
- package/dist/client/assets/{tooltip-CpHHAk2J.js → tooltip-iml8LvPc.js} +1 -1
- package/dist/client/assets/{use-ai-providers-DwTn40nT.js → use-ai-providers-BmtjtxZy.js} +1 -1
- package/dist/client/assets/{use-automations-CCdzDAqr.js → use-automations-DMMc9cWI.js} +1 -1
- package/dist/client/assets/{use-autosave-AEY_LBRM.js → use-autosave-CqpmBsnY.js} +1 -1
- package/dist/client/assets/{use-capability-BmMqfYBZ.js → use-capability-DHy-BnJq.js} +1 -1
- package/dist/client/assets/{use-clock-tick-D6sKdl8i.js → use-clock-tick-CdU40SLs.js} +1 -1
- package/dist/client/assets/{use-connection-PQdoseET.js → use-connection-C0g1qMbt.js} +1 -1
- package/dist/client/assets/{use-copy-B2d8HXEr.js → use-copy-CxIukilP.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-DcmJyE3F.js → use-create-virtual-mcp-C1JrOV3A.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-BIsaq734.js → use-debounced-autosave-CkuMDiRK.js} +1 -1
- package/dist/client/assets/{use-debounced-value-DkvcGcXD.js → use-debounced-value-HAYQ7BUk.js} +1 -1
- package/dist/client/assets/{use-deco-credits-CQTfkP6t.js → use-deco-credits-BBX_NvNP.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-Bu4li_Kw.js → use-decopilot-events-BODwr9Av.js} +1 -1
- package/dist/client/assets/{use-delete-connection-CM7OzN2z.js → use-delete-connection-BQIj2_1n.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-CINzFnZ8.js → use-deployment-admin-Ct-3W00G.js} +1 -1
- package/dist/client/assets/{use-file-configs-DxidAf4I.js → use-file-configs-BqfM02Y8.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-Ck40sRdW.js → use-infinite-scroll-ByMdAZfX.js} +1 -1
- package/dist/client/assets/{use-join-requests-Dtu9BDNR.js → use-join-requests-DRtVtv8g.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-CkblF-6k.js → use-mcp-auth-status-C__j-cX6.js} +1 -1
- package/dist/client/assets/{use-mcp-client-Dn7AJCox.js → use-mcp-client-Os3WISQ7.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-Chaqjyi4.js → use-mcp-tools-Cqtii-BH.js} +1 -1
- package/dist/client/assets/{use-members-Uuwx-sEr.js → use-members-CwYCNjN8.js} +1 -1
- package/dist/client/assets/{use-mobile-D62IT3sR.js → use-mobile-f2A-YGHZ.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-B-Osy1cg.js → use-navigate-to-agent-BYU4pHk5.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-DuSOWyxe.js → use-org-auth-client-78hc5tZr.js} +1 -1
- package/dist/client/assets/{use-org-sso-CXoKTr3S.js → use-org-sso-jUgkZckC.js} +1 -1
- package/dist/client/assets/{use-organization-roles-D_rCFTW_.js → use-organization-roles-qaxMca2d.js} +1 -1
- package/dist/client/assets/{use-organization-settings-BCCgRBeV.js → use-organization-settings-CAjKqcdX.js} +1 -1
- package/dist/client/assets/{use-registry-connections-DOJD57ws.js → use-registry-connections-_aQP169R.js} +1 -1
- package/dist/client/assets/{use-secrets-BguPJ3cT.js → use-secrets-5pFvjn9g.js} +1 -1
- package/dist/client/assets/{use-status-sounds-BZN_H008.js → use-status-sounds-DsJk8IAV.js} +1 -1
- package/dist/client/assets/{use-tags-K0KZ6UkP.js → use-tags-D3Ojs8FP.js} +1 -1
- package/dist/client/assets/{use-view-mode-lq_qIRrU.js → use-view-mode-BietNG32.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-DsD1JZ2j.js → use-virtual-mcp-DMQ6qusi.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-CGXVV3AW.js +1 -0
- package/dist/client/assets/{useQueries-BfWi4zNC.js → useQueries-DEBifvHi.js} +1 -1
- package/dist/client/assets/{useRouterState-tKZBLbIg.js → useRouterState-DJFwCWcS.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-C79RU5LF.js +1 -0
- package/dist/client/assets/{users-DE8cqWNg.js → users-BXk_XHMc.js} +1 -1
- package/dist/client/assets/{variant-calendar-Dc16VLtk.js → variant-calendar-DbevQtk2.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-Dyr3AnIy.js → view-mode-toggle-B8X6cl1e.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/project-app-view-BvWGuQWX.js +0 -1
- package/dist/client/assets/record-editor-Cvoeqas7.js +0 -1
- package/dist/client/assets/registry-QhOwVdle.js +0 -2
- package/dist/client/assets/store-registry-CEnZlA-O.js +0 -2
- package/dist/client/assets/useInfiniteQuery-FeHDwsAH.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BF4TEIT_.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -1286,7 +1286,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var Wu1=O(()=>{Fv()});f
|
|
|
1286
1286
|
`.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await hf`
|
|
1287
1287
|
DELETE FROM kysely_migration WHERE name = ${X}
|
|
1288
1288
|
`.execute($)}}async function Om1($){await Vg6($),await Cg6($);let Z=new wm1({db:$,provider:{getMigrations:()=>Promise.resolve(rc0)}}),{error:X,results:Q}=await Z.migrateToLatest(),Y=0;if(Q?.forEach((G)=>{if(G.status==="Success")Y++;else if(G.status==="Error")console.error(`Failed to execute migration "${G.migrationName}"`)}),X)throw console.error("Failed to migrate"),console.error(X),X;return Y}async function _g6($){let{keepOpen:Z=!1,database:X,skipBetterAuth:Q=!1}=$??{},Y="skipped";if(!Q&&!X)Y=await Vg0();let G=X??w6(),J=async()=>{if(!Z&&!X)await sF(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await Om1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function xg6(){let $=w6(),Z=new wm1({db:$.db,provider:{getMigrations:()=>Promise.resolve(rc0)}}),{error:X,results:Q}=await Z.migrateDown();if(Q?.forEach((Y)=>{if(Y.status==="Success")console.log(`\u2705 Migration "${Y.migrationName}" rolled back successfully`);else if(Y.status==="Error")console.error(`\u274C Failed to rollback migration "${Y.migrationName}"`)}),X)throw console.error("Failed to rollback migration"),console.error(X),X}var Dm1=O(()=>{Fm1();Cg0();m7()});async function I50($){let Z={...process.env},X=j00($,Z);console.log(lN1(X.settings.encryptionKey));let{ensureServices:Q}=await Promise.resolve().then(() => (y$0(),b$0)),{outputs:Y,services:G}=await Q({home:X.settings.dataDir,externalDatabaseUrl:X.externalDatabaseUrl,externalNatsUrl:X.externalNatsUrl});if(!X.skipMigrations){let{migrateBetterAuth:K}=await Promise.resolve().then(() => (Cg0(),hc1));await K(Y.databaseUrl);let{createDatabase:W}=await Promise.resolve().then(() => (m7(),Qc1)),{migrateToLatest:H}=await Promise.resolve().then(() => (Dm1(),Lm1)),N=W(Y.databaseUrl);await H({keepOpen:!0,database:N,skipBetterAuth:!0})}let J={...X.settings,databaseUrl:Y.databaseUrl,natsUrls:Y.natsUrls,...Y.s3?{s3Endpoint:Y.s3.endpoint,s3Bucket:Y.s3.bucket,s3AccessKeyId:Y.s3.accessKeyId,s3SecretAccessKey:Y.s3.secretAccessKey,s3ForcePathStyle:Y.s3.forcePathStyle}:{},...Y.natsTunnel?{natsPublicUrl:Y.natsTunnel.publicUrl,natsAccountJwt:Y.natsTunnel.accountJwt,natsAccountSigningKey:Y.natsTunnel.accountSigningKey,natsOperatorJwt:Y.natsTunnel.operatorJwt,natsTunnelPublicEnabled:!0,natsCredsPath:Y.natsTunnel.credsPath}:{}};return Hu1(J),{settings:J,services:G.map((K)=>({name:K.name==="PostgreSQL"?"Postgres":K.name,port:K.port})),managedServiceNames:G.filter((K)=>K.owner==="managed").map((K)=>K.name)}}var ac0=O(()=>{Fv();y8()});var jm1={};E0(jm1,{updateService:()=>vD,subscribeCliState:()=>$l0,setTuiConsoleIntercepted:()=>q50,setServerUrl:()=>Fm,setMigrationsDone:()=>Um,setDevMode:()=>bg6,resetCliStateForTests:()=>vg6,isTuiConsoleIntercepted:()=>M50,getCliState:()=>ec0,addLogEntry:()=>Qw});function Em1(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function vg6(){qQ=Em1()}function fg6(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function Nm(){for(let $ of sc0)$()}function ec0(){return qQ}function $l0($){return sc0.add($),()=>sc0.delete($)}function vD($){qQ={...qQ,services:qQ.services.map((Z)=>Z.name===$.name?$:Z)},Nm()}function Um(){qQ={...qQ,migrationsStatus:"done"},Nm()}function Fm($){qQ={...qQ,serverUrl:$},Nm()}function Qw($){let Z=[...qQ.logs,$];qQ={...qQ,logs:Z.length>500?Z.slice(-500):Z},Nm()}function bg6(){qQ={...qQ,services:[...fg6(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},Nm()}function q50($){zm1=$}function M50(){return zm1}var qQ,sc0,zm1=!1;var fD=O(()=>{qQ=Em1();sc0=new Set});import{createServer as Pm1}from"net";function yg6($){return new Promise((Z)=>{let X=Pm1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function wm($){if(await yg6($))return $;let Z=await new Promise((X,Q)=>{let Y=Pm1();Y.once("error",Q),Y.listen(0,"0.0.0.0",()=>{let G=Y.address(),J=typeof G==="object"&&G?G.port:0;Y.close(()=>X(J))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var Zl0=()=>{};function Bm($){return $.replace(/\x1b\[[0-9;]*m/g,"")}var Xl0={};E0(Xl0,{startDevServer:()=>hg6});import{join as gg6}from"path";function Am1($){let Z=$.getReader(),X=new TextDecoder,Q="";function Y(){let G=Q.split(`
|
|
1289
|
-
`);Q=G.pop()??"";for(let J of G){let K=Bm(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;Qw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=Bm(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)Qw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function hg6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await wm(Number(Y)+1):await wm(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await I50({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)vD({name:L.name,status:"ready",port:L.port});Um();let N=gg6(import.meta.dir,"..","..","..","..",".."),U=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:N,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.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.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)Am1(F.stdout),Am1(F.stderr);Fm(G),vD({name:"Vite",status:"ready",port:Number(Y)}),vD({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (y$0(),b$0));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var Ql0=O(()=>{ac0();fD();Zl0()});var k50;var Yl0=O(()=>{k50={name:"decocms",version:"4.177.1",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",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as cg6,Text as Tm1}from"ink";import{jsx as lg6,jsxs as Rm1}from"react/jsx-runtime";function Im1({version:$}){return Rm1(cg6,{flexDirection:"column",marginTop:1,children:[Y50.map((Z,X)=>lg6(Tm1,{color:G50[X],children:Z},X)),Rm1(Tm1,{dimColor:!0,children:[" v",$]})]})}var qm1=O(()=>{ed()});import{Box as bD,Text as Yw}from"ink";import{Spinner as dg6}from"@inkjs/ui";import{jsx as vY,jsxs as uf}from"react/jsx-runtime";function Mm1({status:$}){if($==="pending")return vY(dg6,{label:""});return vY(Yw,{color:"green",children:"\u2713"})}function mg6($){return`${$.name}: ${$.port||"...."}`}function km1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return uf(bD,{flexDirection:"column",paddingBottom:1,children:[vY(Im1,{version:k50.version}),vY(bD,{marginBottom:1,children:vY(Yw,{dimColor:!0,children:"\u2500".repeat(80)})}),vY(bD,{children:uf(Yw,{dimColor:!0,children:["Home: ",X]})}),uf(bD,{gap:2,children:[$.map((Y)=>uf(bD,{gap:1,children:[vY(Yw,{children:mg6(Y)}),vY(Mm1,{status:Y.status})]},Y.name)),uf(bD,{gap:1,children:[vY(Yw,{children:"Migrations"}),vY(Mm1,{status:Z})]})]}),vY(bD,{children:Q?uf(Yw,{children:["Open in browser: ",vY(Yw,{color:"cyan",children:Q})]}):vY(Yw,{dimColor:!0,children:"Starting..."})})]})}var Sm1=O(()=>{Yl0();qm1()});import{Box as ig6,Text as Om}from"ink";import{jsx as Gl0,jsxs as Jl0}from"react/jsx-runtime";function ng6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Vm1({logs:$}){return Gl0(ig6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Gl0(Om,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Jl0(Om,{children:[Jl0(Om,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Gl0(Om,{color:ng6(Z.status),children:Z.status}),Jl0(Om,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var Cm1=()=>{};var Kl0={};E0(Kl0,{App:()=>og6});import{Box as pg6}from"ink";import{useSyncExternalStore as tg6}from"react";import{jsx as _m1,jsxs as rg6}from"react/jsx-runtime";function og6({home:$}){let Z=tg6($l0,ec0);return rg6(pg6,{flexDirection:"column",children:[_m1(km1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),_m1(Vm1,{logs:Z.logs})]})}var Wl0=O(()=>{Sm1();Cm1();fD()});var YJ="thread-gate",DN="decopilot-hosted-harness",cG="automations",Gw="background-tools";var xm1="7";function vm1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:xm1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var fm1=()=>{};function ag6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Hl0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function bm1(){let $=ag6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Hl0($,"--cpu-prof-dir")??process.cwd(),name:Hl0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Hl0($,"--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 ym1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=VD();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),S50=setInterval(()=>void Z().catch(()=>{}),$),S50.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(S50)clearInterval(S50)}}var S50;var gm1=()=>{};import*as sg6 from"bun:jsc";function hm1(){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{eg6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=$h6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let N of K){let U=N.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??N.frames[0];if(!U)continue;let F=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${U.name??"?"} @ ${F}:${U.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((N,U)=>U[1]-N[1]).slice(0,8).map(([N,U])=>({frame:N,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var eg6,$h6;var um1=O(()=>{({startSamplingProfiler:eg6,samplingProfilerStackTraces:$h6}=sg6)});function cm1(){bm1();let $=[ym1(),ou1(),hm1()];return()=>{for(let Z of $)Z()}}var lm1=O(()=>{jg0();gm1();um1()});var yD=_((dm1)=>{Object.defineProperty(dm1,"__esModule",{value:!0});dm1.RepublishHeaders=dm1.DirectMsgHeaders=dm1.JsHeaders=dm1.AdvisoryKind=void 0;dm1.isOrderedPushConsumerOptions=Zh6;dm1.isPullConsumer=Xh6;dm1.isPushConsumer=Qh6;dm1.isBoundPushConsumerOptions=Yh6;function Zh6($){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 Xh6($){return $.isPullConsumer()}function Qh6($){return $.isPushConsumer()}function Yh6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}dm1.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"};dm1.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"};dm1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};dm1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var fY=_((im1)=>{Object.defineProperty(im1,"__esModule",{value:!0});im1.TD=im1.TE=im1.Empty=void 0;im1.encode=wh6;im1.decode=Bh6;im1.Empty=new Uint8Array(0);im1.TE=new TextEncoder;im1.TD=new TextDecoder;function Fh6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function wh6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(im1.TE.encode($[X]));if(Z.length===0)return im1.Empty;if(Z.length===1)return Z[0];return Fh6(...Z)}function Bh6($){if(!$||$.length===0)return"";return im1.TD.decode($)}});var bY=_((tm1)=>{Object.defineProperty(tm1,"__esModule",{value:!0});tm1.errors=tm1.PermissionViolationError=tm1.NoRespondersError=tm1.TimeoutError=tm1.RequestError=tm1.ProtocolError=tm1.ConnectionError=tm1.DrainingConnectionError=tm1.ClosedConnectionError=tm1.AuthorizationError=tm1.UserAuthenticationExpiredError=tm1.InvalidOperationError=tm1.InvalidArgumentError=tm1.InvalidSubjectError=void 0;class Ul0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}tm1.InvalidSubjectError=Ul0;class V50 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new V50(`${$} ${Z}`,X)}}tm1.InvalidArgumentError=V50;class Fl0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}tm1.InvalidOperationError=Fl0;class C50 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new C50($);return null}}tm1.UserAuthenticationExpiredError=C50;class _50 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new _50($);return null}}tm1.AuthorizationError=_50;class wl0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}tm1.ClosedConnectionError=wl0;class Bl0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}tm1.DrainingConnectionError=Bl0;class Ol0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}tm1.ConnectionError=Ol0;class Ll0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}tm1.ProtocolError=Ll0;class Dl0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof x50}}tm1.RequestError=Dl0;class El0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}tm1.TimeoutError=El0;class x50 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}tm1.NoRespondersError=x50;class v50 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new v50($,X,Q,Y)}}tm1.PermissionViolationError=v50;tm1.errors={AuthorizationError:_50,ClosedConnectionError:wl0,ConnectionError:Ol0,DrainingConnectionError:Bl0,InvalidArgumentError:V50,InvalidOperationError:Fl0,InvalidSubjectError:Ul0,NoRespondersError:x50,PermissionViolationError:v50,ProtocolError:Ll0,RequestError:Dl0,TimeoutError:El0,UserAuthenticationExpiredError:C50}});var GJ=_((em1)=>{Object.defineProperty(em1,"__esModule",{value:!0});em1.SimpleMutex=em1.Perf=void 0;em1.extend=Ch6;em1.render=_h6;em1.timeout=xh6;em1.delay=vh6;em1.deadline=fh6;em1.deferred=jl0;em1.debugDeferred=bh6;em1.shuffle=yh6;em1.collect=gh6;em1.jitter=sm1;em1.backoff=hh6;em1.nanos=uh6;em1.millis=ch6;em1.randomToken=mh6;var Vh6=fY(),zl0=bY();function Ch6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function _h6($){return Vh6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function xh6($,Z=!0){let X=Z?new zl0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new zl0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function vh6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function fh6($,Z=1000){let X=jl0(),Q=setTimeout(()=>{X.reject(new zl0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function jl0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function bh6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function yh6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function gh6($){let Z=[];for await(let X of $)Z.push(X);return Z}class rm1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}em1.Perf=rm1;class am1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=jl0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}em1.SimpleMutex=am1;function sm1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function hh6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return sm1(X>Z?$[Z]:$[X])}}}function uh6($){return $*1e6}function ch6($){return Math.floor($/1e6)}var lh6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",EN=new Uint8Array(62);for(let $=0;$<62;$++)EN[$]=lh6.charCodeAt($);var dh6=218340105584896;function mh6(){let $=Math.floor(Math.random()*dh6),Z=$%62,X=EN[Z];$=($-Z)/62,Z=$%62;let Q=EN[Z];$=($-Z)/62,Z=$%62;let Y=EN[Z];$=($-Z)/62,Z=$%62;let G=EN[Z];$=($-Z)/62,Z=$%62;let J=EN[Z];$=($-Z)/62,Z=$%62;let K=EN[Z];$=($-Z)/62,Z=$%62;let W=EN[Z];$=($-Z)/62;let H=EN[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var Ki1=_((Gi1)=>{Object.defineProperty(Gi1,"__esModule",{value:!0});Gi1.nuid=Gi1.NuidImpl=void 0;var Ju6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Jw=62,b50=12,Qi1=10,Zi1=33,Ku6=333,Xi1=b50+Qi1,Al0=new Uint8Array(Jw);for(let $=0;$<Jw;$++)Al0[$]=Ju6.charCodeAt($);var f50=4294967296,Yi1=BigInt(Jw)**BigInt(Qi1),Lm=Number(Yi1/(1n<<32n)),Pl0=Number(Yi1%(1n<<32n));function Wu6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Hu6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Wu6($)}class Tl0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(Xi1),this.cbuf=new Uint8Array(b50),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Lm+1)),this.seqLo=Math.floor(Math.random()*f50);while($++<8&&this.seqHi===Lm&&this.seqLo>=Pl0);if(this.seqHi===Lm&&this.seqLo>=Pl0)this.seqLo=0;this.inc=Math.random()*(Ku6-Zi1)+Zi1|0}setPre(){Hu6(this.cbuf);for(let $=0;$<b50;$++)this.buf[$]=Al0[this.cbuf[$]%Jw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=Xi1-1;X>=b50;X--){let Q=Math.floor($/Jw),G=($-Q*Jw)*f50+Z,J=Math.floor(G/Jw),K=G-J*Jw;this.buf[X]=Al0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=f50)this.seqLo-=f50,this.seqHi+=1;if(this.seqHi>Lm||this.seqHi===Lm&&this.seqLo>=Pl0)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()}}Gi1.NuidImpl=Tl0;Gi1.nuid=new Tl0});var Ui1=_((Hi1)=>{Object.defineProperty(Hi1,"__esModule",{value:!0});Hi1.nuid=Hi1.Nuid=void 0;var Wi1=Ki1();Hi1.Nuid=Wi1.NuidImpl;Hi1.nuid=Wi1.nuid});var g50=_((y50)=>{Object.defineProperty(y50,"__esModule",{value:!0});y50.nuid=y50.Nuid=void 0;var Fi1=Ui1();Object.defineProperty(y50,"Nuid",{enumerable:!0,get:function(){return Fi1.Nuid}});Object.defineProperty(y50,"nuid",{enumerable:!0,get:function(){return Fi1.nuid}})});var Kw=_((wi1)=>{Object.defineProperty(wi1,"__esModule",{value:!0});wi1.DEFAULT_HOST=wi1.DEFAULT_PORT=wi1.Match=void 0;wi1.syncIterator=Ou6;wi1.createInbox=Lu6;var wu6=g50(),Bu6=bY();wi1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Ou6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function Lu6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Bu6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${wu6.nuid.next()}`}wi1.DEFAULT_PORT=4222;wi1.DEFAULT_HOST="127.0.0.1"});var Dm=_((Di1)=>{Object.defineProperty(Di1,"__esModule",{value:!0});Di1.DataBuffer=void 0;var Oi1=fY();class Li1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return Oi1.TE.encode($)}static toAscii($){return Oi1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}Di1.DataBuffer=Li1});var gD=_((ji1)=>{Object.defineProperty(ji1,"__esModule",{value:!0});ji1.LF=ji1.CR=ji1.CRLF=ji1.CR_LF_LEN=ji1.CR_LF=void 0;ji1.setTransportFactory=Ru6;ji1.defaultPort=Iu6;ji1.getUrlParseFn=qu6;ji1.newTransport=Mu6;ji1.getResolveFn=ku6;ji1.protoLen=zi1;ji1.extractProtocolMessage=Su6;var Pu6=fY(),Au6=Kw(),Tu6=Dm(),yY;function Ru6($){yY=$}function Iu6(){return yY!==void 0&&yY.defaultPort!==void 0?yY.defaultPort:Au6.DEFAULT_PORT}function qu6(){return yY!==void 0&&yY.urlParseFn?yY.urlParseFn:void 0}function Mu6(){if(!yY||typeof yY.factory!=="function")throw Error("transport fn is not set");return yY.factory()}function ku6(){return yY!==void 0&&yY.dnsResolveFn?yY.dnsResolveFn:void 0}ji1.CR_LF=`\r
|
|
1289
|
+
`);Q=G.pop()??"";for(let J of G){let K=Bm(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;Qw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=Bm(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)Qw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function hg6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await wm(Number(Y)+1):await wm(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await I50({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)vD({name:L.name,status:"ready",port:L.port});Um();let N=gg6(import.meta.dir,"..","..","..","..",".."),U=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:N,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.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.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)Am1(F.stdout),Am1(F.stderr);Fm(G),vD({name:"Vite",status:"ready",port:Number(Y)}),vD({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (y$0(),b$0));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var Ql0=O(()=>{ac0();fD();Zl0()});var k50;var Yl0=O(()=>{k50={name:"decocms",version:"4.177.2",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",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as cg6,Text as Tm1}from"ink";import{jsx as lg6,jsxs as Rm1}from"react/jsx-runtime";function Im1({version:$}){return Rm1(cg6,{flexDirection:"column",marginTop:1,children:[Y50.map((Z,X)=>lg6(Tm1,{color:G50[X],children:Z},X)),Rm1(Tm1,{dimColor:!0,children:[" v",$]})]})}var qm1=O(()=>{ed()});import{Box as bD,Text as Yw}from"ink";import{Spinner as dg6}from"@inkjs/ui";import{jsx as vY,jsxs as uf}from"react/jsx-runtime";function Mm1({status:$}){if($==="pending")return vY(dg6,{label:""});return vY(Yw,{color:"green",children:"\u2713"})}function mg6($){return`${$.name}: ${$.port||"...."}`}function km1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return uf(bD,{flexDirection:"column",paddingBottom:1,children:[vY(Im1,{version:k50.version}),vY(bD,{marginBottom:1,children:vY(Yw,{dimColor:!0,children:"\u2500".repeat(80)})}),vY(bD,{children:uf(Yw,{dimColor:!0,children:["Home: ",X]})}),uf(bD,{gap:2,children:[$.map((Y)=>uf(bD,{gap:1,children:[vY(Yw,{children:mg6(Y)}),vY(Mm1,{status:Y.status})]},Y.name)),uf(bD,{gap:1,children:[vY(Yw,{children:"Migrations"}),vY(Mm1,{status:Z})]})]}),vY(bD,{children:Q?uf(Yw,{children:["Open in browser: ",vY(Yw,{color:"cyan",children:Q})]}):vY(Yw,{dimColor:!0,children:"Starting..."})})]})}var Sm1=O(()=>{Yl0();qm1()});import{Box as ig6,Text as Om}from"ink";import{jsx as Gl0,jsxs as Jl0}from"react/jsx-runtime";function ng6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Vm1({logs:$}){return Gl0(ig6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Gl0(Om,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Jl0(Om,{children:[Jl0(Om,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Gl0(Om,{color:ng6(Z.status),children:Z.status}),Jl0(Om,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var Cm1=()=>{};var Kl0={};E0(Kl0,{App:()=>og6});import{Box as pg6}from"ink";import{useSyncExternalStore as tg6}from"react";import{jsx as _m1,jsxs as rg6}from"react/jsx-runtime";function og6({home:$}){let Z=tg6($l0,ec0);return rg6(pg6,{flexDirection:"column",children:[_m1(km1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),_m1(Vm1,{logs:Z.logs})]})}var Wl0=O(()=>{Sm1();Cm1();fD()});var YJ="thread-gate",DN="decopilot-hosted-harness",cG="automations",Gw="background-tools";var xm1="7";function vm1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:xm1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var fm1=()=>{};function ag6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Hl0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function bm1(){let $=ag6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Hl0($,"--cpu-prof-dir")??process.cwd(),name:Hl0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Hl0($,"--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 ym1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=VD();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),S50=setInterval(()=>void Z().catch(()=>{}),$),S50.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(S50)clearInterval(S50)}}var S50;var gm1=()=>{};import*as sg6 from"bun:jsc";function hm1(){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{eg6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=$h6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let N of K){let U=N.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??N.frames[0];if(!U)continue;let F=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${U.name??"?"} @ ${F}:${U.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((N,U)=>U[1]-N[1]).slice(0,8).map(([N,U])=>({frame:N,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var eg6,$h6;var um1=O(()=>{({startSamplingProfiler:eg6,samplingProfilerStackTraces:$h6}=sg6)});function cm1(){bm1();let $=[ym1(),ou1(),hm1()];return()=>{for(let Z of $)Z()}}var lm1=O(()=>{jg0();gm1();um1()});var yD=_((dm1)=>{Object.defineProperty(dm1,"__esModule",{value:!0});dm1.RepublishHeaders=dm1.DirectMsgHeaders=dm1.JsHeaders=dm1.AdvisoryKind=void 0;dm1.isOrderedPushConsumerOptions=Zh6;dm1.isPullConsumer=Xh6;dm1.isPushConsumer=Qh6;dm1.isBoundPushConsumerOptions=Yh6;function Zh6($){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 Xh6($){return $.isPullConsumer()}function Qh6($){return $.isPushConsumer()}function Yh6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}dm1.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"};dm1.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"};dm1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};dm1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var fY=_((im1)=>{Object.defineProperty(im1,"__esModule",{value:!0});im1.TD=im1.TE=im1.Empty=void 0;im1.encode=wh6;im1.decode=Bh6;im1.Empty=new Uint8Array(0);im1.TE=new TextEncoder;im1.TD=new TextDecoder;function Fh6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function wh6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(im1.TE.encode($[X]));if(Z.length===0)return im1.Empty;if(Z.length===1)return Z[0];return Fh6(...Z)}function Bh6($){if(!$||$.length===0)return"";return im1.TD.decode($)}});var bY=_((tm1)=>{Object.defineProperty(tm1,"__esModule",{value:!0});tm1.errors=tm1.PermissionViolationError=tm1.NoRespondersError=tm1.TimeoutError=tm1.RequestError=tm1.ProtocolError=tm1.ConnectionError=tm1.DrainingConnectionError=tm1.ClosedConnectionError=tm1.AuthorizationError=tm1.UserAuthenticationExpiredError=tm1.InvalidOperationError=tm1.InvalidArgumentError=tm1.InvalidSubjectError=void 0;class Ul0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}tm1.InvalidSubjectError=Ul0;class V50 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new V50(`${$} ${Z}`,X)}}tm1.InvalidArgumentError=V50;class Fl0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}tm1.InvalidOperationError=Fl0;class C50 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new C50($);return null}}tm1.UserAuthenticationExpiredError=C50;class _50 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new _50($);return null}}tm1.AuthorizationError=_50;class wl0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}tm1.ClosedConnectionError=wl0;class Bl0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}tm1.DrainingConnectionError=Bl0;class Ol0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}tm1.ConnectionError=Ol0;class Ll0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}tm1.ProtocolError=Ll0;class Dl0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof x50}}tm1.RequestError=Dl0;class El0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}tm1.TimeoutError=El0;class x50 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}tm1.NoRespondersError=x50;class v50 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new v50($,X,Q,Y)}}tm1.PermissionViolationError=v50;tm1.errors={AuthorizationError:_50,ClosedConnectionError:wl0,ConnectionError:Ol0,DrainingConnectionError:Bl0,InvalidArgumentError:V50,InvalidOperationError:Fl0,InvalidSubjectError:Ul0,NoRespondersError:x50,PermissionViolationError:v50,ProtocolError:Ll0,RequestError:Dl0,TimeoutError:El0,UserAuthenticationExpiredError:C50}});var GJ=_((em1)=>{Object.defineProperty(em1,"__esModule",{value:!0});em1.SimpleMutex=em1.Perf=void 0;em1.extend=Ch6;em1.render=_h6;em1.timeout=xh6;em1.delay=vh6;em1.deadline=fh6;em1.deferred=jl0;em1.debugDeferred=bh6;em1.shuffle=yh6;em1.collect=gh6;em1.jitter=sm1;em1.backoff=hh6;em1.nanos=uh6;em1.millis=ch6;em1.randomToken=mh6;var Vh6=fY(),zl0=bY();function Ch6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function _h6($){return Vh6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function xh6($,Z=!0){let X=Z?new zl0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new zl0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function vh6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function fh6($,Z=1000){let X=jl0(),Q=setTimeout(()=>{X.reject(new zl0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function jl0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function bh6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function yh6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function gh6($){let Z=[];for await(let X of $)Z.push(X);return Z}class rm1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}em1.Perf=rm1;class am1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=jl0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}em1.SimpleMutex=am1;function sm1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function hh6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return sm1(X>Z?$[Z]:$[X])}}}function uh6($){return $*1e6}function ch6($){return Math.floor($/1e6)}var lh6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",EN=new Uint8Array(62);for(let $=0;$<62;$++)EN[$]=lh6.charCodeAt($);var dh6=218340105584896;function mh6(){let $=Math.floor(Math.random()*dh6),Z=$%62,X=EN[Z];$=($-Z)/62,Z=$%62;let Q=EN[Z];$=($-Z)/62,Z=$%62;let Y=EN[Z];$=($-Z)/62,Z=$%62;let G=EN[Z];$=($-Z)/62,Z=$%62;let J=EN[Z];$=($-Z)/62,Z=$%62;let K=EN[Z];$=($-Z)/62,Z=$%62;let W=EN[Z];$=($-Z)/62;let H=EN[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var Ki1=_((Gi1)=>{Object.defineProperty(Gi1,"__esModule",{value:!0});Gi1.nuid=Gi1.NuidImpl=void 0;var Ju6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Jw=62,b50=12,Qi1=10,Zi1=33,Ku6=333,Xi1=b50+Qi1,Al0=new Uint8Array(Jw);for(let $=0;$<Jw;$++)Al0[$]=Ju6.charCodeAt($);var f50=4294967296,Yi1=BigInt(Jw)**BigInt(Qi1),Lm=Number(Yi1/(1n<<32n)),Pl0=Number(Yi1%(1n<<32n));function Wu6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Hu6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Wu6($)}class Tl0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(Xi1),this.cbuf=new Uint8Array(b50),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Lm+1)),this.seqLo=Math.floor(Math.random()*f50);while($++<8&&this.seqHi===Lm&&this.seqLo>=Pl0);if(this.seqHi===Lm&&this.seqLo>=Pl0)this.seqLo=0;this.inc=Math.random()*(Ku6-Zi1)+Zi1|0}setPre(){Hu6(this.cbuf);for(let $=0;$<b50;$++)this.buf[$]=Al0[this.cbuf[$]%Jw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=Xi1-1;X>=b50;X--){let Q=Math.floor($/Jw),G=($-Q*Jw)*f50+Z,J=Math.floor(G/Jw),K=G-J*Jw;this.buf[X]=Al0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=f50)this.seqLo-=f50,this.seqHi+=1;if(this.seqHi>Lm||this.seqHi===Lm&&this.seqLo>=Pl0)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()}}Gi1.NuidImpl=Tl0;Gi1.nuid=new Tl0});var Ui1=_((Hi1)=>{Object.defineProperty(Hi1,"__esModule",{value:!0});Hi1.nuid=Hi1.Nuid=void 0;var Wi1=Ki1();Hi1.Nuid=Wi1.NuidImpl;Hi1.nuid=Wi1.nuid});var g50=_((y50)=>{Object.defineProperty(y50,"__esModule",{value:!0});y50.nuid=y50.Nuid=void 0;var Fi1=Ui1();Object.defineProperty(y50,"Nuid",{enumerable:!0,get:function(){return Fi1.Nuid}});Object.defineProperty(y50,"nuid",{enumerable:!0,get:function(){return Fi1.nuid}})});var Kw=_((wi1)=>{Object.defineProperty(wi1,"__esModule",{value:!0});wi1.DEFAULT_HOST=wi1.DEFAULT_PORT=wi1.Match=void 0;wi1.syncIterator=Ou6;wi1.createInbox=Lu6;var wu6=g50(),Bu6=bY();wi1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Ou6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function Lu6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Bu6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${wu6.nuid.next()}`}wi1.DEFAULT_PORT=4222;wi1.DEFAULT_HOST="127.0.0.1"});var Dm=_((Di1)=>{Object.defineProperty(Di1,"__esModule",{value:!0});Di1.DataBuffer=void 0;var Oi1=fY();class Li1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return Oi1.TE.encode($)}static toAscii($){return Oi1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}Di1.DataBuffer=Li1});var gD=_((ji1)=>{Object.defineProperty(ji1,"__esModule",{value:!0});ji1.LF=ji1.CR=ji1.CRLF=ji1.CR_LF_LEN=ji1.CR_LF=void 0;ji1.setTransportFactory=Ru6;ji1.defaultPort=Iu6;ji1.getUrlParseFn=qu6;ji1.newTransport=Mu6;ji1.getResolveFn=ku6;ji1.protoLen=zi1;ji1.extractProtocolMessage=Su6;var Pu6=fY(),Au6=Kw(),Tu6=Dm(),yY;function Ru6($){yY=$}function Iu6(){return yY!==void 0&&yY.defaultPort!==void 0?yY.defaultPort:Au6.DEFAULT_PORT}function qu6(){return yY!==void 0&&yY.urlParseFn?yY.urlParseFn:void 0}function Mu6(){if(!yY||typeof yY.factory!=="function")throw Error("transport fn is not set");return yY.factory()}function ku6(){return yY!==void 0&&yY.dnsResolveFn?yY.dnsResolveFn:void 0}ji1.CR_LF=`\r
|
|
1290
1290
|
`;ji1.CR_LF_LEN=ji1.CR_LF.length;ji1.CRLF=Tu6.DataBuffer.fromAscii(ji1.CR_LF);ji1.CR=new Uint8Array(ji1.CRLF)[0];ji1.LF=new Uint8Array(ji1.CRLF)[1];function zi1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===ji1.CR&&$[X]===ji1.LF)return X+1}return 0}function Su6($){let Z=zi1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return Pu6.TD.decode(Q)}return""}});var kl0=_((ki1)=>{Object.defineProperty(ki1,"__esModule",{value:!0});ki1.ipV4=Ii1;ki1.isIP=uu6;ki1.parseIP=qi1;var Em=4,hD=16,h50=48,Ri1=57,Ai1=65,gu6=70,Ti1=97,hu6=102,Ml0=16777215;function Ii1($,Z,X,Q){let Y=new Uint8Array(hD);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((J,K)=>{Y[K]=J}),Y[12]=$,Y[13]=Z,Y[14]=X,Y[15]=Q,Y}function uu6($){return qi1($)!==void 0}function qi1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return Mi1($);case":":return cu6($)}return}function Mi1($){let Z=new Uint8Array(Em);for(let X=0;X<Em;X++){if($.length===0)return;if(X>0){if($[0]!==".")return;$=$.substring(1)}let{n:Q,c:Y,ok:G}=lu6($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return Ii1(Z[0],Z[1],Z[2],Z[3])}function cu6($){let Z=new Uint8Array(hD),X=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(X=0,$=$.substring(2),$.length===0)return Z}let Q=0;while(Q<hD){let{n:Y,c:G,ok:J}=du6($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=hD-Em)return;if(Q+Em>hD)return;let K=Mi1($);if(K===void 0)return;Z[Q]=K[12],Z[Q+1]=K[13],Z[Q+2]=K[14],Z[Q+3]=K[15],$="",Q+=Em;break}if(Z[Q]=Y>>8,Z[Q+1]=Y,Q+=2,$=$.substring(G),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(X>=0)return;if(X=Q,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(Q<hD){if(X<0)return;let Y=hD-Q;for(let G=Q-1;G>=X;G--)Z[G+Y]=Z[G];for(let G=X+Y-1;G>=X;G--)Z[G]=0}else if(X>=0)return;return Z}function lu6($){let Z=0,X=0;for(Z=0;Z<$.length&&h50<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=Ri1;Z++)if(X=X*10+($.charCodeAt(Z)-h50),X>=Ml0)return{n:Ml0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:X,c:Z,ok:!0}}function du6($){let Z=0,X=0;for(X=0;X<$.length;X++){if(h50<=$.charCodeAt(X)&&$.charCodeAt(X)<=Ri1)Z*=16,Z+=$.charCodeAt(X)-h50;else if(Ti1<=$.charCodeAt(X)&&$.charCodeAt(X)<=hu6)Z*=16,Z+=$.charCodeAt(X)-Ti1+10;else if(Ai1<=$.charCodeAt(X)&&$.charCodeAt(X)<=gu6)Z*=16,Z+=$.charCodeAt(X)-Ai1+10;else break;if(Z>=Ml0)return{n:0,c:X,ok:!1}}if(X===0)return{n:0,c:X,ok:!1};return{n:Z,c:X,ok:!0}}});var vl0=_((Vi1)=>{Object.defineProperty(Vi1,"__esModule",{value:!0});Vi1.Servers=Vi1.ServerImpl=void 0;Vi1.isIPV4OrHostname=Si1;Vi1.hostPort=xl0;var Sl0=gD(),Vl0=GJ(),Cl0=kl0(),pu6=Kw(),tu6=bY();function Si1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function _l0($){return!Si1($)}function ou6($){let X=$.toUpperCase().indexOf("::FFFF:");if(X!==-1&&$.indexOf(".")!==-1){let Q=$.substring(X+7);return Q=Q.replace("[",""),Q.replace("]","")}return $}function xl0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=ou6($),_l0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=_l0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):pu6.DEFAULT_PORT,Y=new URL(`${X===80?"https":"http"}://${$}`);Y.port=`${X}`;let G=Y.hostname;if(G.charAt(0)==="[")G=G.substring(1,G.length-1);return{listen:Y.host,hostname:G,port:X}}class cf{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let X=xl0($);this.listen=X.listen,this.hostname=X.hostname,this.port=X.port,this.didConnect=!1,this.reconnects=0,this.lastConnect=0,this.gossiped=Z}toString(){return this.listen}async resolve($){if(!$.fn||$.resolve===!1)return[this];let Z=[];if((0,Cl0.isIP)(this.hostname))return[this];else{let X=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${X.join(",")}`);for(let Q of X){let Y=this.port===80?"https":"http",G=new URL(`${Y}://${_l0(Q)?"["+Q+"]":Q}`);G.port=`${this.port}`;let J=new cf(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,Vl0.shuffle)(Z);return this.resolves=Z,Z}}Vi1.ServerImpl=cf;class u50{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw tu6.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,Sl0.getUrlParseFn)(),X=new Map;for(let Y of this.servers)X.set(Y.listen,Y);let Q=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:G}=xl0(Y),J=X.get(G);if(J)J.gossiped=!1,Q.push(J);else Q.push(new cf(Y))}if(this.randomize)(0,Vl0.shuffle)(Q);if(this.servers=Q,this.currentServer===void 0||!Q.includes(this.currentServer))this.currentServer=Q[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,Cl0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let X=(0,Sl0.getUrlParseFn)();$=X?X($):$;let Q=new cf($,Z);if((0,Cl0.isIP)(Q.hostname))Q.tlsName=this.tlsName;this.servers.push(Q)}selectServer(){if(this.firstSelect)return this.firstSelect=!1,this.currentServer;let $=this.servers.shift();if($)this.servers.push($),this.currentServer=$;return $}removeCurrentServer(){this.removeServer(this.currentServer)}removeServer($){if($){let Z=this.servers.indexOf($);this.servers.splice(Z,1)}}snapshot(){return u50.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return u50.freezeAll([$,...this.servers.slice(0,Z),...this.servers.slice(Z+1)])}static freezeAll($){return $.map((Z)=>Object.freeze({hostname:Z.hostname,port:Z.port,listen:Z.listen,src:Z.src,tlsName:Z.tlsName,reconnects:Z.reconnects,lastConnect:Z.lastConnect,gossiped:Z.gossiped,didConnect:Z.didConnect}))}find($){return this.servers.find((Z)=>Z.listen===$.listen)}setCurrent($){this.currentServer=$}length(){return this.servers.length}next(){return this.servers.length?this.servers[0]:void 0}getServers(){return this.servers}update($,Z){let X=[],Q=[],Y=(0,Sl0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new cf(K,!0);G.set(K,W)});let J=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&G.get(H)===void 0)J.push(W);G.delete(H)}),J.reverse(),J.forEach((K)=>{let W=this.servers.splice(K,1);Q=Q.concat(W[0].listen)}),G.forEach((K,W)=>{this.servers.push(K),X.push(W)}),this.randomize&&X.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,Vl0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:X,deleted:Q}}}Vi1.Servers=u50});var c50=_((vi1)=>{Object.defineProperty(vi1,"__esModule",{value:!0});vi1.QueuedIteratorImpl=void 0;var fl0=GJ(),_i1=bY();class xi1{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,fl0.deferred)(),this.yields=[],this.iterClosed=(0,fl0.deferred)(),this.time=0,this.yielding=!1,this.didBreak=!1,this.profile=!1}[Symbol.asyncIterator](){return this.iterate()}push($){if(this.done)return;if(this.didBreak){if(typeof $==="function"){let Z=$;try{Z()}catch(X){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new _i1.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new _i1.InvalidOperationError("iterator is already yielding");this.yielding=!0;try{while(!0){if(this.yields.length===0)await this.signal;if(this.err)throw this.err;let $=this.yields;this.inflight=$.length,this.yields=[];for(let Z=0;Z<$.length;Z++){if(typeof $[Z]==="function"){this.pendingFiltered--;let Q=$[Z];try{Q()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let X=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-X:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,fl0.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}}vi1.QueuedIteratorImpl=xi1});var bl0=_((gi1)=>{Object.defineProperty(gi1,"__esModule",{value:!0});gi1.MuxSubscription=void 0;var eu6=Kw(),bi1=bY();class yi1{baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,eu6.createInbox)($)}.`,this.baseInbox}add($){if(!isNaN($.received))$.received=0;this.reqs.set($.token,$)}get($){return this.reqs.get($)}cancel($){this.reqs.delete($.token)}getToken($){let Z=$.subject||"";if(Z.indexOf(this.baseInbox)===0)return Z.substring(this.baseInbox.length);return null}all(){return Array.from(this.reqs.values())}handleError($,Z){if($)return this.all().forEach((X)=>{X.resolver(Z,{})}),!0;if(Z.operation==="publish"){let X=this.all().find((Q)=>{return Q.requestSubject===Z.subject});if(X)return X.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let X=this.getToken(Z);if(X){let Q=this.get(X);if(Q){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new bi1.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new bi1.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}gi1.MuxSubscription=yi1});var yl0=_((ci1)=>{Object.defineProperty(ci1,"__esModule",{value:!0});ci1.Heartbeat=void 0;var $c6=GJ();class ui1{ph;interval;maxOut;timer;pendings;constructor($,Z,X){this.ph=$,this.interval=Z,this.maxOut=X,this.pendings=[]}start(){this.cancel(),this._schedule()}cancel($){if(this.timer)clearTimeout(this.timer),this.timer=void 0;if(this._reset(),$)this.ph.disconnect()}_schedule(){this.timer=setTimeout(()=>{if(this.ph.dispatchStatus({type:"ping",pendingPings:this.pendings.length+1}),this.pendings.length===this.maxOut){this.cancel(!0);return}let $=(0,$c6.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})}}ci1.Heartbeat=ui1});var ul0=_((ni1)=>{Object.defineProperty(ni1,"__esModule",{value:!0});ni1.DenoBuffer=ni1.MAX_SIZE=ni1.AssertionError=void 0;ni1.assert=mi1;ni1.concat=ii1;ni1.append=Xc6;ni1.readAll=Qc6;ni1.writeAll=Yc6;var Zc6=fY();class gl0 extends Error{constructor($){super($);this.name="AssertionError"}}ni1.AssertionError=gl0;function mi1($,Z="Assertion failed."){if(!$)throw new gl0(Z)}var di1=32768;ni1.MAX_SIZE=4294967294;function l50($,Z,X=0){let Q=Z.byteLength-X;if($.byteLength>Q)$=$.subarray(0,Q);return Z.set($,X),$.byteLength}function ii1($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let X=new Uint8Array($.length+Z.length);return X.set($,0),X.set(Z,$.length),X}function Xc6($,Z){return ii1($,Uint8Array.of(Z))}class hl0{_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($){mi1($<=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=l50(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(Zc6.TE.encode($))}write($){let Z=this._grow($.byteLength);return l50($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let X=this._tryGrowByReslice($);if(X>=0)return X;let Q=this.capacity;if($<=Math.floor(Q/2)-Z)l50(this._buf.subarray(this._off),this._buf);else if(Q+$>ni1.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,ni1.MAX_SIZE));l50(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,ni1.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,X=new Uint8Array(di1);while(!0){let Q=this.capacity-this.length<di1,Y=Q?X:new Uint8Array(this._buf.buffer,this.length),G=$.read(Y);if(G===null)return Z;if(Q)this.write(Y.subarray(0,G));else this._reslice(this.length+G);Z+=G}}}ni1.DenoBuffer=hl0;function Qc6($){let Z=new hl0;return Z.readFrom($),Z.bytes()}function Yc6($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var dl0=_((ai1)=>{Object.defineProperty(ai1,"__esModule",{value:!0});ai1.cc=ai1.State=ai1.Parser=ai1.Kind=void 0;ai1.describe=Uc6;var cl0=ul0(),ll0=fY();ai1.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function Uc6($){let Z,X="";switch($.kind){case ai1.Kind.MSG:Z="MSG";break;case ai1.Kind.OK:Z="OK";break;case ai1.Kind.ERR:Z="ERR",X=ll0.TD.decode($.data);break;case ai1.Kind.PING:Z="PING";break;case ai1.Kind.PONG:Z="PONG";break;case ai1.Kind.INFO:Z="INFO",X=ll0.TD.decode($.data)}return`${Z}: ${X}`}function ti1(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var oi1=48,Fc6=57,lf=67108864;class ri1{dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=ai1.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let X=$[Z];switch(this.state){case ai1.State.OP_START:switch(X){case ai1.cc.M:case ai1.cc.m:this.state=ai1.State.OP_M,this.hdr=-1,this.ma=ti1();break;case ai1.cc.H:case ai1.cc.h:this.state=ai1.State.OP_H,this.hdr=0,this.ma=ti1();break;case ai1.cc.P:case ai1.cc.p:this.state=ai1.State.OP_P;break;case ai1.cc.PLUS:this.state=ai1.State.OP_PLUS;break;case ai1.cc.MINUS:this.state=ai1.State.OP_MINUS;break;case ai1.cc.I:case ai1.cc.i:this.state=ai1.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_H:switch(X){case ai1.cc.M:case ai1.cc.m:this.state=ai1.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_M:switch(X){case ai1.cc.S:case ai1.cc.s:this.state=ai1.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_MS:switch(X){case ai1.cc.G:case ai1.cc.g:this.state=ai1.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_MSG:switch(X){case ai1.cc.SPACE:case ai1.cc.TAB:this.state=ai1.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_MSG_SPC:switch(X){case ai1.cc.SPACE:case ai1.cc.TAB:continue;default:this.state=ai1.State.MSG_ARG,this.as=Z}break;case ai1.State.MSG_ARG:switch(X){case ai1.cc.CR:this.drop=1;break;case ai1.cc.NL:{let Q=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(Q),this.drop=0,this.as=Z+1,this.state=ai1.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case ai1.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:ai1.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=ai1.State.MSG_END}else{let Q=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<Q)Q=Y;if(Q>0)this.msgBuf.write($.subarray(Z,Z+Q)),Z=Z+Q-1;else this.msgBuf.writeByte(X)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:ai1.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=ai1.State.MSG_END;break;case ai1.State.MSG_END:switch(X){case ai1.cc.NL:this.drop=0,this.as=Z+1,this.state=ai1.State.OP_START;break;default:continue}break;case ai1.State.OP_PLUS:switch(X){case ai1.cc.O:case ai1.cc.o:this.state=ai1.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_PLUS_O:switch(X){case ai1.cc.K:case ai1.cc.k:this.state=ai1.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_PLUS_OK:switch(X){case ai1.cc.NL:this.dispatcher.push({kind:ai1.Kind.OK}),this.drop=0,this.state=ai1.State.OP_START;break}break;case ai1.State.OP_MINUS:switch(X){case ai1.cc.E:case ai1.cc.e:this.state=ai1.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_MINUS_E:switch(X){case ai1.cc.R:case ai1.cc.r:this.state=ai1.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_MINUS_ER:switch(X){case ai1.cc.R:case ai1.cc.r:this.state=ai1.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_MINUS_ERR:switch(X){case ai1.cc.SPACE:case ai1.cc.TAB:this.state=ai1.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_MINUS_ERR_SPC:switch(X){case ai1.cc.SPACE:case ai1.cc.TAB:continue;default:this.state=ai1.State.MINUS_ERR_ARG,this.as=Z}break;case ai1.State.MINUS_ERR_ARG:switch(X){case ai1.cc.CR:this.drop=1;break;case ai1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:ai1.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=ai1.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case ai1.State.OP_P:switch(X){case ai1.cc.I:case ai1.cc.i:this.state=ai1.State.OP_PI;break;case ai1.cc.O:case ai1.cc.o:this.state=ai1.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_PO:switch(X){case ai1.cc.N:case ai1.cc.n:this.state=ai1.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_PON:switch(X){case ai1.cc.G:case ai1.cc.g:this.state=ai1.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_PONG:switch(X){case ai1.cc.NL:this.dispatcher.push({kind:ai1.Kind.PONG}),this.drop=0,this.state=ai1.State.OP_START;break}break;case ai1.State.OP_PI:switch(X){case ai1.cc.N:case ai1.cc.n:this.state=ai1.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_PIN:switch(X){case ai1.cc.G:case ai1.cc.g:this.state=ai1.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_PING:switch(X){case ai1.cc.NL:this.dispatcher.push({kind:ai1.Kind.PING}),this.drop=0,this.state=ai1.State.OP_START;break}break;case ai1.State.OP_I:switch(X){case ai1.cc.N:case ai1.cc.n:this.state=ai1.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_IN:switch(X){case ai1.cc.F:case ai1.cc.f:this.state=ai1.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_INF:switch(X){case ai1.cc.O:case ai1.cc.o:this.state=ai1.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_INFO:switch(X){case ai1.cc.SPACE:case ai1.cc.TAB:this.state=ai1.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case ai1.State.OP_INFO_SPC:switch(X){case ai1.cc.SPACE:case ai1.cc.TAB:continue;default:this.state=ai1.State.INFO_ARG,this.as=Z}break;case ai1.State.INFO_ARG:switch(X){case ai1.cc.CR:this.drop=1;break;case ai1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:ai1.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=ai1.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===ai1.State.MSG_ARG||this.state===ai1.State.MINUS_ERR_ARG||this.state===ai1.State.INFO_ARG)&&!this.argBuf)this.argBuf=new cl0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===ai1.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new cl0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,X=new Uint8Array($+Z);if(X.set(this.ma.subject),this.ma.reply)X.set(this.ma.reply,$);if(this.argBuf=new cl0.DenoBuffer(X),this.ma.subject=X.subarray(0,$),this.ma.reply)this.ma.reply=X.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case ai1.cc.SPACE:case ai1.cc.TAB:case ai1.cc.CR:case ai1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 3:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.size=this.protoParseInt(Z[2],lf);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],lf);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}: ${ll0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case ai1.cc.SPACE:case ai1.cc.TAB:case ai1.cc.CR:case ai1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.hdr=this.protoParseInt(Z[2],lf),this.ma.size=this.protoParseInt(Z[3],lf);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],lf),this.ma.size=this.protoParseInt(Z[4],lf);break;default:throw this.fail($,"processHeaderMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Sid Error");if(this.ma.hdr<0||this.ma.hdr>this.ma.size)throw this.fail($,"processHeaderMsgArgs Bad or Missing Header Size Error");if(this.ma.size<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Size Error")}protoParseInt($,Z){if($.length===0||$.length>15)return-1;let X=0;for(let Q=0;Q<$.length;Q++){if($[Q]<oi1||$[Q]>Fc6)return-1;X=X*10+($[Q]-oi1)}return Z!==void 0&&X>Z?-1:X}}ai1.Parser=ri1;ai1.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};ai1.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 i50=_((ei1)=>{Object.defineProperty(ei1,"__esModule",{value:!0});ei1.MsgHdrsImpl=void 0;ei1.canonicalMIMEHeaderKey=il0;ei1.headers=Oc6;var si1=fY(),JJ=Kw(),m50=bY();function il0($){let N=!0,U=Array($.length);for(let F=0;F<$.length;F++){let w=$.charCodeAt(F);if(w===58||w<33||w>126)throw m50.InvalidArgumentError.format("header",`'${$[F]}' is not a valid character in a header name`);if(N&&97<=w&&w<=122)w-=32;else if(!N&&65<=w&&w<=90)w+=32;U[F]=w,N=w==45}return String.fromCharCode(...U)}function Oc6($=0,Z=""){if($===0&&Z!=="")throw m50.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw m50.InvalidArgumentError.format("description","is required");return new df($,Z)}var ml0="NATS/1.0";class df{_code;headers;_description;constructor($=0,Z=""){this._code=$,this._description=Z,this.headers=new Map}[Symbol.iterator](){return this.headers.entries()}size(){return this.headers.size}equals($){if($&&this.headers.size===$.headers.size&&this._code===$._code){for(let[Z,X]of this.headers){let Q=$.values(Z);if(X.length!==Q.length)return!1;let Y=[...X].sort(),G=[...Q].sort();for(let J=0;J<Y.length;J++)if(Y[J]!==G[J])return!1}return!0}return!1}static decode($){let Z=new df,Q=si1.TD.decode($).split(`\r
|
|
1291
1291
|
`),Y=Q[0];if(Y!==ml0){let G=Y.replace(ml0,"").trim();if(G.length>0){if(Z._code=parseInt(G,10),isNaN(Z._code))Z._code=0;let J=Z._code.toString();G=G.replace(J,""),Z._description=G.trim()}}if(Q.length>=1)Q.slice(1).map((G)=>{if(G){let J=G.indexOf(":");if(J>-1){let K=G.slice(0,J),W=G.slice(J+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=ml0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,X]of this.headers)for(let Q=0;Q<X.length;Q++)$=`${$}\r
|
|
1292
1292
|
${Z}: ${X[Q]}`;return`${$}\r
|
|
@@ -2777,7 +2777,7 @@ ${Z}
|
|
|
2777
2777
|
|
|
2778
2778
|
Use this to continue with the user's request \u2014 do NOT call subtask again for this.`:`The background subtask you started completed but produced no usable output${X==="length"?" (it hit its step limit)":""}. Continue with the user's request without calling subtask again for this.`;return{models:Q,reactionNudge:G}}}};uO.registerWorkflow(du4,{name:"backgroundToolWorkflow"})});async function mu4($,Z,X){let Q=await oh({kind:X.kind,ctx:$,organization:Z,virtualMcp:X.virtualMcp,mcpClient:X.mcpClient,provider:X.provider,models:X.models,messages:X.messages,abortSignal:X.abortSignal,temperature:X.temperature,planMode:X.planMode,isDecopilot:X.isDecopilot,systemAgentInstructions:X.systemAgentInstructions,currentThreadId:X.currentThreadId,user:X.user,userContext:X.userContext,codingWorkspace:X.codingWorkspace,writer:X.writer,subtaskParams:{provider:X.provider,organization:Z,models:X.models,codingWorkspace:X.codingWorkspace},prepareStep:X.prepareStep,onStepFinish:X.onStepFinish,passthroughClient:X.passthroughClient,connectionsData:X.connectionsData,extraTools:X.extraTools,toolOutputMap:X.toolOutputMap,additionalSystemMessages:X.additionalSystemMessages,activeToolNames:X.activeToolNames,stepLimit:X.stepLimit});return{result:Q.result,error:Q.error,span:Q.span,assembledSystemMessages:Q.assembledSystemMessages}}function OV8($){let{ctx:Z,organization:X,modelRuntime:Q,sideChannel:Y,cleanup:G}=$,J=XV8(Z,Y.writer),K=$V8(Z);return{toolRuntime:{buildEnvironmentTools:async({input:N,onChildUsage:U})=>{let F=mh(N),w=new Map,B=[],{resolveArgs:L,onToolCalled:D,onPrOpened:E}=uj0(Z,N.threadId),z=await oS8(N,Z,{writer:Y.writer,toolOutputMap:w,pendingImages:B,threadId:N.threadId,resolveArgs:L,onToolCalled:D,onPrOpened:E,mcpForAgent:async(A,P)=>{let I=F.virtualMcp,k=null;if(I.id&&N.user.id&&m5(I.metadata)[N.user.id])k=await C_(Z,I.id,N.user.id,F.branch??void 0).catch(()=>null);return HU(I,Z,P?.superUser??!1,{listTimeoutMs:P?.listTimeoutMs,includeSkillsCatalog:!0,additionalConnections:k?[k]:[]})},provider:Q.thinking.provider,imageProvider:Q.image?.provider??Q.thinking.provider,webSearchProvider:Q.webSearch?.provider??Q.thinking.provider,deepResearchProvider:Q.deepResearch?.provider??Q.thinking.provider,backgroundDispatcher:BV8({threadId:N.threadId,orgId:N.organizationId,userId:N.user.id,agentId:N.agent.id,temperature:N.temperature,toolApprovalLevel:N.toolApprovalLevel,branch:F.branch??null,runMetadata:Z.metadata.runMetadata}),htmlArtifactBuffer:K,onChildUsage:U}),j={tools:z.tools,passthroughTools:z.passthroughTools,builtInTools:z.builtInTools,connectionsBlockTools:z.connectionsBlockTools,toolAnnotations:z.toolAnnotations,connectionTitleMap:z.connectionTitleMap,serverInstructions:z.serverInstructions,passthroughClient:z.passthroughClient,toolOutputMap:w,writer:Y.writer,pendingImages:B,sideChunks:Y.stream,closeSideChunks:Y.close,onStepFinish:async()=>{await K.flush(),await J.sweep()},close:z.close};return G.close=z.close,j},runEngine:(N)=>mu4(Z,X,N)},telemetry:{recordLlmCall:(N)=>dM8({ctx:Z,...N}),monitorLlmCall:(N)=>cM8({ctx:Z,...N,requestId:Z.metadata.requestId,userAgent:Z.metadata.userAgent??null})}}}var LV8=O(()=>{lM8();mM8();Wh();Ij0();YY();rS8();b51();ZV8();QV8();cj0();YP0();ih()});function GP0($){if($.providerId==="openai-compatible")try{let Z=JSON.parse($.apiKey);return{kind:"secret",providerId:$.providerId,apiKey:Z.apiKey??"",modelId:$.modelId,...Z.baseUrl?{baseUrl:Z.baseUrl}:{}}}catch{return{kind:"secret",providerId:$.providerId,apiKey:$.apiKey,modelId:$.modelId}}return{kind:"secret",providerId:$.providerId,apiKey:$.apiKey,modelId:$.modelId}}var DV8=O(()=>{OW();ob()});var EV8=O(()=>{DV8()});var zV8=O(()=>{L51();LV8();EV8();CM8(($)=>{let Z=$.ctx;return OV8({...$,ctx:Z,organization:Z.organization})})});function JP0(){return crypto.randomUUID()}function cO($,Z){return`error-${$}:${Z}`}class jV8{thread;organization_id;storage;defaultWindowSize;constructor($){this.thread=$.thread,this.organization_id=$.thread.organization_id,this.storage=$.storage,this.defaultWindowSize=$.defaultWindowSize??50}async loadHistory($){let Z=$??this.defaultWindowSize,{chronological:X,isWindowed:Q}=this.thread.message_storage_version===2?await this.loadWindowedFromParts(Z):await this.loadWindowedFromMessages(Z),Y=X.find((W)=>W.role!=="system");if(!Y||Y.role==="user")return X;let G=Y,J=Q?"[Context: earlier turns in this conversation were truncated. The messages below continue the thread \u2014 pick up from there.]":"[Context: this thread opens with your message \u2014 you spoke first to greet the user, and the user has not spoken before it. Their reply follows.]";return[{id:`${this.thread.id}-msg-prefix`,thread_id:this.thread.id,role:"user",parts:[{type:"text",text:J}],metadata:void 0,created_at:G.created_at,updated_at:G.updated_at},...X]}async loadWindowedFromMessages($){let{messages:Z,total:X}=await this.storage.listMessages(this.thread.id,{limit:$,sort:"desc"});return{chronological:[...Z].reverse(),isWindowed:X>Z.length}}async loadWindowedFromParts($){let{messages:Z,total:X}=await this.storage.messageParts().loadWindow(this.thread.id,{limit:$});return{chronological:Z.map((Y)=>({id:Y.id,thread_id:this.thread.id,role:Y.role,parts:Y.parts,metadata:Y.metadata??void 0,created_at:Y.created_at,updated_at:Y.created_at})),isWindowed:X>Z.length}}}async function KP0($,Z){let{thread_id:X,defaultWindowSize:Q}=Z;if(!X)throw Error("createMemory: thread_id is required");let Y=await $.get(X);if(!Y)throw Error(`Thread not found: ${X}`);return new jV8({thread:Y,storage:$,defaultWindowSize:Q})}function iu4($,Z){let X=$.filter((G)=>G.parts&&G.parts.length>0),Q=X.findIndex((G)=>G.id===Z.id);return Q>=0?[...X.slice(0,Q),Z]:[...X,Z]}async function nu4($){return[...$.systemMessages,...iu4($.history,$.userMessage)]}async function PV8($){let Z=$.isSubagent?[]:await(await KP0($.ctx.storage.threads,{thread_id:$.threadId,organization_id:$.ctx.organization?.id??"",userId:$.ctx.auth.user?.id??"",defaultWindowSize:$.windowSize??Q3})).loadHistory($.windowSize??Q3),X=await nu4({history:Z,userMessage:$.userMessage,systemMessages:$.systemMessages});return fj0(X,$.ctx)}var AV8=O(()=>{MB();ph()});function WP0($){return{id:$.id,role:$.role,parts:$.parts,metadata:$.metadata??void 0}}var O91=()=>{};function TV8($,Z){let X=$.thinking.capabilities;if(!((X?.vision??!1)||(X?.file??!1))){if(Z.some((G)=>G.parts?.some((J)=>J.type==="file")))throw new H8(400,{message:"This model does not support file uploads. Please change the model and try again."})}}var RV8=O(()=>{EJ()});function HP0($){return $.sandboxProviderKind==="agent-sandbox"&&$.harnessId==="decopilot"}function IV8($){return $.harnessId==="decopilot"&&($.sandboxProviderKind==null||$.sandboxProviderKind==="agent-sandbox")}function tu4($){return{type:"data-run-status",id:"run-status",data:{stage:$}}}function qV8($){if(!$||typeof $!=="object")return!1;return $.type==="data-run-status"}async function UK($,Z,X){if(!$)return;try{await $.publishRawChunk(Z,tu4(X))}catch{}}var pu4,Fa,sZZ;var $u=O(()=>{pu4=["waiting-runner","starting-run","waiting-capacity","gathering-context","preparing-tools","starting-assistant","analyzing-scope"],Fa=["gathering-context","preparing-tools","starting-assistant","analyzing-scope"],sZZ=new Set(pu4)});function ou4($){return{type:"data-user-message",data:$}}function MV8($){if(!$||typeof $!=="object")return!1;return $.type==="data-user-message"}async function kV8($,Z,X){if(!$)return;try{await $.publishRawChunk(Z,ou4(X))}catch{}}class wa{intervalMs;emitFn;sleepFn;controller=null;stopped=!1;constructor($){this.intervalMs=$.intervalMs??ru4,this.emitFn=$.emit,this.sleepFn=$.sleepFn??h8}arm(){if(this.stopped)return;this.controller?.abort();let $=new AbortController;this.controller=$,this.wait($.signal)}async wait($){try{await this.sleepFn(this.intervalMs,{signal:$})}catch{return}if(this.stopped||$.aborted)return;try{await this.emitFn()}catch{this.stop();return}if(!this.stopped&&!$.aborted)this.arm()}stop(){if(this.stopped)return;this.stopped=!0,this.controller?.abort(),this.controller=null}}function SV8($=Date.now){return{type:"data-liveness",data:{t:$()},transient:!0}}var ru4=30000;var L91=O(()=>{s$()});function au4($=Date.now){return SV8($)}async function*VV8($,Z={}){let X=()=>au4(Z.now),Q=null,Y=new wa({intervalMs:Z.intervalMs,sleepFn:Z.sleepFn,emit:()=>Q?.()}),G=$[Symbol.asyncIterator](),J=G.next();try{Y.arm();while(!0){let K=new Promise((H)=>{Q=()=>H("heartbeat")}),W=await Promise.race([J.then((H)=>({kind:"chunk",r:H})),K.then((H)=>({kind:H}))]);if(Q=null,W.kind==="heartbeat"){yield X();continue}if(Y.arm(),W.r.done)return;yield W.r.value,J=G.next()}}finally{Y.stop(),await G.return?.(void 0).catch(()=>{})}}var CV8=O(()=>{L91()});function su4($){if(!$)return;if(!("models"in $))return;return $.models??void 0}function _V8($,Z){if(!$)return!0;if($.includes("*:*"))return!0;return $.some((X)=>X.startsWith(`${Z}:`))}function FK($,Z,X){if(!$)return!0;return $.includes("*:*")||$.includes(`${Z}:*`)||$.includes(`${Z}:${X}`)}function NP0($,Z){if($===void 0)return Z;let X=Z;if(X.image&&!FK($,X.image.credentialId,X.image.id)){let{image:Q,...Y}=X;X=Y}if(X.webSearch&&!FK($,X.webSearch.credentialId,X.webSearch.id)){let{webSearch:Q,...Y}=X;X=Y}if(X.deepResearch&&!FK($,X.deepResearch.credentialId,X.deepResearch.id)){let{deepResearch:Q,...Y}=X;X=Y}return X}function xV8($){if(!$)return{allowAll:!0,models:{}};if($.includes("*:*"))return{allowAll:!0,models:{}};let Z={};for(let X of $){let Q=X.indexOf(":");if(Q===-1)continue;let Y=X.slice(0,Q),G=X.slice(Q+1);if(!Z[Y])Z[Y]=[];Z[Y].push(G)}return{allowAll:!1,models:Z}}function eu4($){if($.some((X)=>X===void 0))return;let Z=new Set;for(let X of $)for(let Q of X??[])Z.add(Q);return[...Z]}async function wK($,Z,X){if(!X||Z3(X))return;let Q=X.split(","),Y=await $.selectFrom("organizationRole").select(["role","permission"]).where("organizationId","=",Z).where("role","in",Q).execute(),G=new Map(Y.map((K)=>[K.role,K.permission])),J=Q.map((K)=>{let W=G.get(K);if(!W)return;try{let H=JSON.parse(W);return su4(H)}catch{return console.error(`[model-permissions] Failed to parse permissions for role: ${K}`),[]}});return eu4(J)}var Zu=O(()=>{X3()});function Xu($,Z){let X=$.capabilities?{...$.capabilities.vision!==void 0?{vision:$.capabilities.vision}:{},...$.capabilities.text!==void 0?{text:$.capabilities.text}:{},...$.capabilities.reasoning!==void 0?{reasoning:$.capabilities.reasoning}:{}}:void 0;return{id:$.id,...$.title!==void 0?{title:$.title}:{},...$.provider!==void 0?{provider:$.provider}:{},credentialId:Z,...$.limits?{limits:$.limits}:{},...X&&Object.keys(X).length>0?{capabilities:X}:{}}}function vV8($){let Z=$.credentialId,X=Xu($.thinking,Z);return{thinking:{...X,title:X.title??X.id},...$.fast?{fast:Xu($.fast,Z)}:{},...$.smart?{smart:Xu($.smart,Z)}:{},...$.image?{image:Xu($.image,$.image.credentialId??Z)}:{},...$.webSearch?{webSearch:Xu($.webSearch,$.webSearch.credentialId??Z)}:{},...$.deepResearch?{deepResearch:Xu($.deepResearch,$.deepResearch.credentialId??Z)}:{}}}function $c4($,Z=[]){if($==="stop")return"completed";if($==="tool-calls"){let X=Z.some((Y)=>Y.type==="tool-user_ask"&&Y.state==="input-available"),Q=Z.some((Y)=>Y.state==="approval-requested");return X||Q?"requires_action":"completed"}return"failed"}function UP0($,Z=[]){if($==null)return"completed";return $c4($,Z)}function D91(){return Q1().podName}var fV8=O(()=>{y8()});function Zc4($){let Z=null;return new ReadableStream({async pull(X){try{Z??=$().getReader();let{done:Q,value:Y}=await Z.read();if(Q)X.close();else X.enqueue(Y)}catch(Q){X.error(Q)}},async cancel(X){await Z?.cancel(X)}},{highWaterMark:0})}function Xc4($){let Z=$.startSeq??0;async function*X(){for await(let Q of $.chunks)yield{seq:++Z,chunk:Q}}return new ReadableStream({async start(Q){try{let Y=await $.loadOriginalMessages?.();await $P0({runId:$.runId,fenceToken:$.fenceToken,chunks:X(),errorMessageId:$.errorMessageId,originalMessages:Y,...$.initialAckSeq!==void 0?{initialAckSeq:$.initialAckSeq}:{},...$.onPublished?{onPublished:$.onPublished}:{}},{streamBuffer:$.streamBuffer,hooks:$.hooks,title:$.title}),Q.close()}catch(Y){Q.error(Y)}}})}async function Qc4($,Z,X,Q,Y){let{keyInfo:G,apiKey:J}=await $.storage.aiProviderKeys.resolve(X,Z),K=rq8(GP0({providerId:G.providerId,apiKey:J,modelId:Q}),Y);if(K.providerId==="openrouter"||K.providerId==="deco")return{...K,extraHeaders:{...K.extraHeaders,"HTTP-Referer":"https://studio.decocms.com","X-Title":"deco"}};return K}function E91($){if(!gV8.includes($))throw Error(`hosted dispatch requires one of ${gV8.join(", ")}; got ${JSON.stringify($)}`)}function hV8($){return!("messages"in $)}function uV8($,Z){if(!$.taskId)throw Error("buildDurableDispatchInput: taskId is required");let X=$.messages.filter((Q)=>Q.role==="system").flatMap((Q)=>Q.parts).filter((Q)=>Q.type==="text"&&typeof Q.text==="string").map((Q)=>Q.text).join(`
|
|
2779
2779
|
|
|
2780
|
-
`).trim();return{models:$.models,agent:$.agent,temperature:$.temperature,toolApprovalLevel:$.toolApprovalLevel,...$.toolAllowlist!==void 0?{toolAllowlist:$.toolAllowlist}:{},...$.maxAgentSteps!==void 0?{maxAgentSteps:$.maxAgentSteps}:{},...$.isSubagent!==void 0?{isSubagent:$.isSubagent}:{},...$.subtaskJobId!==void 0?{subtaskJobId:$.subtaskJobId}:{},...$.resumedFromBackground!==void 0?{resumedFromBackground:$.resumedFromBackground}:{},mode:$.mode,...$.windowSize!==void 0?{windowSize:$.windowSize}:{},...$.triggerId!==void 0?{triggerId:$.triggerId}:{},...$.runMetadata!==void 0?{runMetadata:$.runMetadata}:{},branch:Z.branch??$.branch??null,sandboxProviderKind:$.sandboxProviderKind,harnessId:$.harnessId,organizationId:$.organizationId,userId:$.userId,taskId:$.taskId,messageId:Z.messageId,...Z.runFenceToken!==void 0?{runFenceToken:Z.runFenceToken}:{},...$.isResume!==void 0?{isResume:$.isResume}:{},...X?{systemContext:X}:{}}}function Yc4($,Z){let X=$.find((Q)=>Q.id===Z);if(!X)throw new vO("empty_request",`Persisted request message missing for messageId=${Z}`);if(X.role==="system")throw new vO("empty_request",`Persisted message ${Z} has role=system; expected non-system request message`);return X}function Gc4($){let Z=$.models;return{"decopilot.agent.id":$.agent.id,"decopilot.model.id":Z.thinking.id,"decopilot.credential.id":Z.credentialId,"decopilot.organization.id":$.organizationId,"decopilot.user.id":$.userId,"decopilot.thread.id":$.taskId??""}}async function cV8($,Z,X){return cu1("decopilot.dispatchRunAndWait",async(Q)=>{let{taskId:Y,uiStream:G,registrySignal:J}=await Wc4($,Z,X,Q),K=X.streamBuffer,W=K?await K.createTailStream(Y,$.abortSignal,{deliverPolicy:"new",closeOnDone:!0}):null;if(K&&W){let H=K.pump(G,Y,J,$.organizationId);H.catch(()=>{});let N=W.getReader();try{while(!0){let{done:U}=await N.read();if(U)break}}finally{N.releaseLock()}await H}else{if(K)console.warn(JSON.stringify({msg:"decopilot-stream-diag",event:"producer-fallback-no-pump",taskId:Y,hasTail:!!W,note:"createTailStream returned null \u2014 draining producer stream directly; projector persistence depends on streamBuffer publish health"}));let H=G.getReader();try{while(!0){let{done:N}=await H.read();if(N)break}}finally{H.releaseLock()}}return{taskId:Y}},Gc4($))}async function Jc4($,Z,X,Q){let[Y,G,J]=await Promise.all([$.storage.threads.list(Q,{limit:9,agentId:X}).catch(()=>null),$.storage.interests.getForAgent(Z,X,Q).catch(()=>null),$.storage.virtualMcps.list(Z).catch(()=>null)]),K={};if(Y&&Y.total>0)K.recentThreads={total:Y.total,threads:Y.threads.map((W)=>({id:W.id,title:W.title,updated_at:W.updated_at}))};if(G&&G.interests.length>0)K.interests=G.interests.map((W)=>({title:W.title,summary:W.summary}));if(J)K.agents=J.map((W)=>({id:W.id,name:W.title,description:W.description,status:W.status}));return K}async function Kc4({virtualMcp:$,agentId:Z,organizationId:X,ctx:Q}){return jX0({virtualMcp:$,agentId:Z,organizationId:X,ctx:Q})}async function Wc4($,Z,X,Q){let{runRegistry:Y,streamBuffer:G}=X;E91($.harnessId);let J=$.harnessId;if(!hV8($))$={...$,messages:$.messages.map((H)=>H.id?H:{...H,id:tp()})};let K=!1,W;try{let H=$.models;Q.setAttribute("decopilot.harnessId",J),Z.sandboxPreference="agent-sandbox",Q.setAttribute("decopilot.dispatchTarget.sandboxProviderKind","agent-sandbox");let N=HP0({harnessId:J,sandboxProviderKind:"agent-sandbox"}),U=vV8(H),F=await wK(Z.db,$.organizationId,Z.organization?.role??Z.auth.user?.role);if(!FK(F,U.thinking.credentialId,U.thinking.id))throw Error("Model not allowed for your role");U=NP0(F,U);let w=$.windowSize??Q3;if(!$.taskId)throw Error("dispatchRunAndWait: taskId is required");if(N)await UK(G,$.taskId,Fa[0]);let B=await oq8(Z,$.organizationId,Z.metadata?.runMetadata),L=(a)=>a?Qc4(Z,$.organizationId,a.credentialId,a.id,B):Promise.resolve(void 0),[D,E,z,j,A,P,I,k,M]=await Promise.all([Z.storage.virtualMcps.findById($.agent.id,$.organizationId),L(U.thinking),L(U.fast),L(U.smart),L(U.image),L(U.webSearch),L(U.deepResearch),KP0(Z.storage.threads,{organization_id:$.organizationId,thread_id:$.taskId,userId:$.userId,defaultWindowSize:w}),Jc4(Z,$.organizationId,$.agent.id,$.userId)]);if(N)await UK(G,$.taskId,Fa[1]);let C=E?{thinking:E,...z?{fast:z}:{},...j?{smart:j}:{},...A?{image:A}:{},...P?{webSearch:P}:{},...I?{deepResearch:I}:{}}:void 0,m=E?zj0(E):null;if(W=k.thread.id,Z.metadata.threadId=k.thread.id,Q.setAttribute("decopilot.thread.id",k.thread.id),k.thread.created_by!==$.userId)throw Error("You are not allowed to write to this thread because you are not the owner");if(m?.asyncResearch){let a=[["thinking",U.thinking.id]];if(U.fast)a.push(["fast",U.fast.id]);if(U.smart)a.push(["smart",U.smart.id]);if(U.image)a.push(["image",U.image.id]);for(let[W0,K1]of a)if(m.asyncResearch.canHandle(K1))throw Error(`Model "${K1}" can only be used as a Deep Research model. It is not usable as the ${W0} model \u2014 set it in the Deep Research slot instead.`)}let b=k.thread.message_storage_version===2?new jX({storage:Z.storage.threads.messageParts(),orgId:$.organizationId,threadId:k.thread.id,runId:k.thread.id}):null;if(!D)throw new vO("agent_not_found","Agent not found");let t=await Kc4({virtualMcp:D,agentId:$.agent.id,organizationId:$.organizationId,ctx:Z});if($.isResume)await Y.execute({type:"RESUME",taskId:k.thread.id,orgId:$.organizationId,userId:$.userId,abortController:new AbortController,podId:D91()});else await Y.execute({type:"START",taskId:k.thread.id,orgId:$.organizationId,userId:$.userId,abortController:new AbortController,podId:D91(),runConfig:{models:$.models,agent:$.agent,temperature:$.temperature,toolApprovalLevel:$.toolApprovalLevel,mode:$.mode,windowSize:$.windowSize,triggerId:$.triggerId},messageId:$.messageId});K=!0,await Z.storage.threads.clearCancelRequested(k.thread.id);let y;if($.runFenceToken)y=$.runFenceToken;else y=JP0(),await Z.storage.threads.setRunFence(k.thread.id,y);let Z0=Y.getAbortSignal(k.thread.id);if(!Z0)throw await Y.execute({type:"FINISH",taskId:k.thread.id,threadStatus:"failed"}),Error("Run was cancelled immediately after starting");if($.abortSignal){let a=$.abortSignal;if(a.aborted)await Y.execute({type:"CANCEL",taskId:k.thread.id});else a.addEventListener("abort",()=>{Y.execute({type:"CANCEL",taskId:k.thread.id}).catch(()=>{})},{once:!0})}if(!$.isResume)G?.purge(k.thread.id);let B0=[],q0,$0;if(hV8($)){if($0=await k.loadHistory(w),q0=Yc4($0,$.messageId),$.systemContext)B0=[{id:`system-${$.messageId}`,role:"system",parts:[{type:"text",text:$.systemContext}]}]}else{B0=$.messages.filter((W0)=>W0.role==="system");let a=$.messages.find((W0)=>W0.role!=="system");if(q0=a?(await vj0([a],Z,{threadId:k.thread.id})).find((W0)=>W0.role!=="system"):void 0,!$.isResume){if(!q0)throw new vO("empty_request","No user message found in input \u2014 expected at least one non-system message");if(b)await b.emitUserMessage(q0).catch((W0)=>{console.error("[decopilot:stream] v2 user-message emit failed",W0)})}}if(q0)await kV8(G,k.thread.id,q0);let e=[],R0=Z.organization,Q0=Date.now(),I0=q0?(await fj0([q0],Z))[0]:void 0;if(!I0||!q0)throw new vO("empty_request","No user message found in input \u2014 expected at least one non-system message");TV8($.models,[I0]);let n0=await PV8({ctx:Z,threadId:k.thread.id,userMessage:q0,windowSize:w,isSubagent:$.isSubagent===!0,systemMessages:B0}),a0={url:"",headers:{},expiresAt:0},H0=void 0,S0=void 0,C0={cwd:null},M0=typeof t.metadata?.instructions==="string"?t.metadata.instructions:void 0,X0={taskId:$.taskId,isSubagent:$.isSubagent,subtaskJobId:$.subtaskJobId,resumedFromBackground:$.resumedFromBackground,virtualMcp:t,branch:$.branch,messages:n0,modelSources:C,mcpSource:H0,objectStorageSource:S0,userContext:M},N0={harnessId:J,threadId:k.thread.id,userMessage:I0,harness:{sessionId:void 0},workspace:C0,models:U,mcp:a0,mode:$.mode,temperature:$.temperature,toolApprovalLevel:$.toolApprovalLevel,toolAllowlist:$.toolAllowlist??null,maxAgentSteps:$.maxAgentSteps,user:{id:$.userId,email:Z.auth.user?.email??""},organizationId:$.organizationId,organizationSlug:R0.slug,agent:{id:$.agent.id,instructions:M0},triggerId:$.triggerId,currentThreadTitle:k.thread.title,runFenceToken:y};if(N)await UK(G,$.taskId,Fa[2]);let g0=fO(J),F0=g0?await Z.storage.threads.getAckedSeq(k.thread.id):0;if(F0>0)console.log("[dispatch] resuming a sandbox-hosted turn",{runId:k.thread.id,fromSeq:F0});let P0=g0?await Z.storage.claudeSubscriptions.findLiveToken($.userId):null,k1=async function*(){let a={...N0,signal:Z0};if(w51(a,X0),N)await UK(G,k.thread.id,Fa[3]);yield*(g0?new j51({ctx:Z,harnessId:J,virtualMcpId:t.id,...F0>0?{resume:{reason:"the Studio process driving the previous attempt stopped"}}:{},branch:await Gq8(Z,{threadId:k.thread.id,agentRepo:t.metadata?.githubRepo,runBranch:$.branch}),credential:P0?{providerId:vM8,apiKey:P0}:E?{providerId:E.providerId,apiKey:E.apiKey,...E.baseUrl?{baseUrl:E.baseUrl}:{}}:null}):new D51({ctx:Z,harnessId:J})).dispatch(a)},Y1=Zc4(()=>Xc4({runId:k.thread.id,fenceToken:y,streamBuffer:G??{publishRawChunk:async()=>!1,publishDone:async()=>!1},chunks:VV8(k1()),...g0?{startSeq:F0,initialAckSeq:F0,onPublished:(a)=>Z.storage.threads.bumpAckedSeq(k.thread.id,y,a)}:{},errorMessageId:cO(k.thread.id,y),loadOriginalMessages:b?async()=>(await Z.storage.threads.messageParts().loadWindow(k.thread.id,{limit:1})).messages.map(WP0):void 0,title:{currentThreadTitle:k.thread.title,threadId:k.thread.id,persistTitle:async(a,W0)=>{await Z.storage.threads.update(a,{title:W0})}},hooks:{onStep:()=>{let a=Y.dispatch({type:"STEP_DONE",taskId:k.thread.id});e.push(Y.react(a).catch((W0)=>{console.error("[decopilot:stream] onStepFinish reactor failed",W0)}))},onFinish:async(a,W0)=>{let K1=e.length,D1=performance.now();if(await Promise.allSettled(e),bV8.record(performance.now()-D1,{phase:"settle"}),Z0.aborted)return;await h8(0);let n1=yV8?VD():null,p0=performance.now(),m1=UP0(W0,a?.parts);await Y.execute({type:"FINISH",taskId:k.thread.id,threadStatus:m1});let f8=performance.now()-p0;if(bV8.record(f8,{phase:"save"}),yV8&&n1){let d4=VD()??n1,I$=-1;try{I$=JSON.stringify(a)?.length??-1}catch{}console.warn(JSON.stringify({msg:"decopilot-finish-trace",threadId:k.thread.id,pendingOps:K1,saveMs:Math.round(f8),parts:a?.parts?.length??0,messageBytes:I$,rssDelta:d4.rss-n1.rss,heapUsedDelta:d4.heapUsed-n1.heapUsed,externalDelta:d4.external-n1.external}))}},onError:(a)=>{if(Z0.aborted){i1.capture({distinctId:$.userId,event:"chat_message_aborted",groups:{organization:$.organizationId},properties:{organization_id:$.organizationId,thread_id:k.thread.id,agent_id:$.agent.id,model_id:U.thinking.id,mode:$.mode,duration_ms:Date.now()-Q0,is_resume:$.isResume??!1}});return}console.error("[decopilot] stream error:",SU(a)),Y.execute({type:"FINISH",taskId:k.thread.id,threadStatus:"failed"}).catch((W0)=>{console.error("[decopilot:stream] onError reactor failed",W0)})}}}));return{taskId:k.thread.id,uiStream:Y1,registrySignal:Z0}}catch(H){if(K&&W)Y.execute({type:"FINISH",taskId:W,threadStatus:"failed"}).catch((N)=>{console.error("[decopilot:stream] catch-block reactor failed",N)});throw H}}var bV8,yV8,gV8;var FP0=O(()=>{$a();X51();V$();xM8();z51();Rj0();NK();Hy();zV8();ih();Q51();MB();AV8();hO();O91();ph();RV8();$u();F91();CV8();Zu();R5();fV8();s$();bV8=D6.createHistogram("decopilot.finish.duration",{description:"Wall time of onFinish flush segments, tagged by phase",unit:"ms"}),yV8=process.env.DECOPILOT_FINISH_TRACE==="1";gV8=["decopilot","claude-code"]});function lV8($){return qV8($)||MV8($)}async function Hc4($){let Z=$.getReader();try{while(!0){let{done:X}=await Z.read();if(X)break}}finally{Z.releaseLock()}}function Nc4($,Z){let X=$.getReader(),Q=!1,Y=()=>{if(Q)return;Q=!0,X.releaseLock()};return new ReadableStream({async pull(G){try{let{done:J,value:K}=await X.read();if(J)Y(),G.close();else G.enqueue(K)}catch(J){Z(J),Y(),G.error(J)}},async cancel(G){await X.cancel(G),Y()}})}async function dV8($){if(!$.chunks&&!$.chunkStream)throw Error("projectChunks requires chunks or chunkStream");let Z=null,X=!1,Q=void 0,Y={inputTokens:0,outputTokens:0,totalTokens:0},G=[],J=null,K=(B)=>{if(J===null)J=B;throw B},W=$.chunks?async function*(){try{for await(let B of $.chunks){if(lV8(B))continue;yield B}}catch(B){throw Z=B,B}}():void 0,H=$.chunkStream?Nc4($.chunkStream,(B)=>{Z=B}).pipeThrough(new TransformStream({transform(B,L){if(!lV8(B))L.enqueue(B)}})):void 0,N={emitStepParts:(B)=>$.persistence.emitStepParts(B).catch(K),emitFinal:(B)=>$.persistence.emitFinal(B).catch(K),emitError:(B,L)=>$.persistence.emitError(B,L).catch(K)},{uiStream:U,whenComplete:F}=ej0({chunks:W,chunkStream:H,originalMessages:$.originalMessages??[],title:$.title?{currentThreadTitle:$.title.currentThreadTitle,threadId:$.title.threadId,persistTitle:$.title.persistTitle}:{currentThreadTitle:void 0,threadId:"projector",persistTitle:async()=>{}},persistence:N,sanitizeErrorText:$.sanitizeErrorText,errorMessageId:$.errorMessageId,generateMessageId:$.generateMessageId,hooks:{onUsage:(B)=>{Y={inputTokens:B.inputTokens,outputTokens:B.outputTokens,totalTokens:B.totalTokens}},onError:()=>{X=!0},onFinish:(B,L)=>{Q=L,G=Array.isArray(B.parts)?B.parts.filter((D)=>D!=null&&typeof D==="object"&&("type"in D)):[]}}});if(await Hc4(U).catch(()=>{}),await F,J!==null)throw J;if(Z!==null)throw Z;return{failed:X&&Q===void 0,finishReason:Q,usage:Y,finalParts:G}}var mV8=O(()=>{U91();$u()});var Ba=786432;function Fc4($){if(/[.*>\s]/.test($))throw Error("Invalid NATS subject token")}function lO($){return Fc4($),`${wP0}.${$}`}function iV8($){let Z=`${$.runId}:${$.fenceToken}:${$.seq}`;return $.fragmentIndex===void 0?Z:`${Z}:frag:${$.fragmentIndex}`}function wc4($){return`${$.runId}:${$.fenceToken}:done:${$.finalSeq}`}function nV8($){if(!$)return null;let Z=Number($);return Number.isInteger(Z)&&Z>0?Z:null}function Bc4($){if(!$)return null;let Z=Number($);return Number.isInteger(Z)&&Z>=0?Z:null}function Oc4($){if(!$)return null;let Z=$.split(":"),[X,Q,Y,G,J]=Z;if(!X||!Q||!Y)return null;if(Y==="done"){let W=nV8(G);return Z.length===4&&W!==null?{kind:"done",runId:X,fenceToken:Q,finalSeq:W}:null}if(Y==="ckpt")return null;let K=nV8(Y);if(K===null)return null;if(Z.length===3)return{kind:"chunk",runId:X,fenceToken:Q,seq:K,fragmentIndex:null};if(Z.length===5&&G==="frag"){let W=Bc4(J);return W===null?null:{kind:"chunk",runId:X,fenceToken:Q,seq:K,fragmentIndex:W}}return null}function j91($,Z){let X=lO(Z.runId),Q=z91.encode(JSON.stringify({p:$}));if(Q.length>Uc4)return[];if(Q.length<=Ba)return[{subject:X,data:Q,msgId:Z.dedup?iV8({runId:Z.runId,...Z.dedup}):void 0}];let Y=Math.ceil(Q.length/Ba),G=[];for(let J=0;J<Y;J++)G.push({subject:X,data:Q.slice(J*Ba,(J+1)*Ba),headers:{[pV8]:String(J),[tV8]:String(Y)},msgId:Z.dedup?iV8({runId:Z.runId,...Z.dedup,fragmentIndex:J}):void 0});return G}function oV8($){return{subject:lO($.runId),data:z91.encode(JSON.stringify({done:!0,finalSeq:$.finalSeq})),msgId:wc4($)}}function rV8($){return{subject:lO($),data:z91.encode(JSON.stringify({done:!0}))}}function Lc4($){let Z=$.reduce((Y,G)=>Y+(G?.length??0),0),X=new Uint8Array(Z),Q=0;for(let Y of $){if(!Y)continue;X.set(Y,Q),Q+=Y.length}return X}function BP0(){let $=null;return new TransformStream({transform(Z,X){let Q=Z.headers?.get(tV8);if(!Q){X.enqueue(Z);return}let Y=Number(Q),G=Number(Z.headers?.get(pV8)??"0");if(G===0)$={total:Y,received:0,parts:Array(Y)};else if(!$||$.total!==Y)return;if(!$.parts[G])$.received++;if($.parts[G]=Z.data,$.received<$.total)return;let J=Lc4($.parts);$=null,X.enqueue({subject:Z.subject,data:J,headers:Z.headers})}})}function Dc4($){return typeof $==="number"&&Number.isInteger($)&&$>0}function zc4($){let Z=Oc4($.headers?.get("Nats-Msg-Id")||void 0),X;try{X=JSON.parse(Ec4.decode($.data))}catch{return null}if(!X||typeof X!=="object")return null;let Q=X;if(Q.done===!0)return{kind:"done",runId:Z?.kind==="done"?Z.runId:null,fenceToken:Z?.kind==="done"?Z.fenceToken:null,envelopeFinalSeq:Dc4(Q.finalSeq)?Q.finalSeq:null,msgIdFinalSeq:Z?.kind==="done"?Z.finalSeq:null};if("p"in Q)return{kind:"chunk",seq:Z?.kind==="chunk"?Z.seq:null,runId:Z?.kind==="chunk"?Z.runId:null,fenceToken:Z?.kind==="chunk"?Z.fenceToken:null,chunk:Q.p};return null}function OP0(){return new TransformStream({transform($,Z){let X=zc4($);if(X)Z.enqueue(X)}})}var wP0="decopilot.stream",pV8="Dp-Frag-Idx",tV8="Dp-Frag-Total",Uc4=33554432,z91,Ec4;var aV8=O(()=>{z91=new TextEncoder;Ec4=new TextDecoder});var LP0=O(()=>{aV8()});var _U="DECOPILOT_STREAMS";var P91=O(()=>{LP0()});function sV8($,Z){return new TransformStream({transform(X,Q){if(X.runId!==$||X.fenceToken!==Z)return;Q.enqueue(X)}})}function eV8(){let $=1;return new TransformStream({transform(Z,X){if(Z.kind==="done"){X.enqueue(Z);return}if(Z.seq===null){X.error(Error("projector chunk missing seq"));return}if(Z.seq<$)return;if(Z.seq>$){X.error(new Oa($,Z.seq));return}$++,X.enqueue(Z)}})}function $C8($){let Z=$.getReader(),X=!1,Q=0,Y=()=>{if(X)return;X=!0,Z.releaseLock()};return new ReadableStream({async pull(G){for(;;){let{done:J,value:K}=await Z.read();if(J){await Z.cancel(),Y(),G.error(Error("reader stopped before done"));return}let W=K;if(W.kind==="done"){if(!(W.envelopeFinalSeq!=null&&W.envelopeFinalSeq===W.msgIdFinalSeq))continue;if(W.envelopeFinalSeq!==Q){await Z.cancel(),Y(),G.error(new Oa(Q+1,null));return}await Z.cancel(),Y(),G.close();return}Q=W.seq??Q,G.enqueue(W.chunk);return}},async cancel(G){await Z.cancel(G),Y()}})}function jc4($){if(Symbol.asyncIterator in $)return $[Symbol.asyncIterator]();let Z=$[Symbol.iterator]();return{next:async()=>Z.next(),return:async(X)=>Z.return?Z.return(X):{done:!0,value:X}}}function EP0($){let Z=jc4($.messages),X=$.idleTimeoutMs,Q=!1,Y=(G)=>{if(Q)return;Q=!0,Z.return?.(G).catch(()=>{}),$.onCancel?.()};return new ReadableStream({async pull(G){if(X===void 0){let{done:N,value:U}=await Z.next();if(N){G.close();return}G.enqueue(U);return}let J=new AbortController,K=Z.next().then((N)=>{return J.abort(),N}),W=h8(X,{signal:J.signal}).then(()=>"idle").catch(()=>"cancelled"),H=await Promise.race([K,W]);if(H==="idle"){G.error(new DP0(X));return}if(H==="cancelled")return;if(H.done){G.close();return}G.enqueue(H.value)},async cancel(G){Y(G)}})}var DP0,Oa;var zP0=O(()=>{s$();DP0=class DP0 extends Error{idleTimeoutMs;constructor($){super("producer produced no output before timeout");this.idleTimeoutMs=$;this.name="StreamIdleTimeoutError"}};Oa=class Oa extends Error{expectedSeq;gotSeq;constructor($,Z){super(Z===null?`missing seq ${$} (stream ended at the fenced done)`:`missing seq ${$} (next delivered is ${Z})`);this.expectedSeq=$;this.gotSeq=Z;this.name="StreamGapError"}}});function Pc4($){let X=EP0({messages:$.messages,idleTimeoutMs:$.idleTimeoutMs,onCancel:$.onDone}).pipeThrough(BP0()).pipeThrough(OP0()).pipeThrough(sV8($.runId,$.fenceToken)).pipeThrough(eV8());return $C8(X)}async function XC8($){let X=await(await $.js.consumers.get(_U,{filter_subjects:lO($.runId),deliver_policy:ZC8.DeliverPolicy.All})).consume();async function*Q(){try{for await(let Y of X)yield{subject:Y.subject,data:Y.data,headers:Y.headers}}finally{X.stop()}}return Pc4({messages:Q(),runId:$.runId,fenceToken:$.fenceToken,idleTimeoutMs:$.idleTimeoutMs,onDone:()=>X.stop()})}var ZC8;var QC8=O(()=>{P91();zP0();LP0();ZC8=S(tD(),1)});async function Ac4($){let X=($.requestMessageId?await $.messageParts.maxCreatedAtMsForMessage($.runId,$.requestMessageId):null)??await $.messageParts.maxCreatedAtMsForRun($.runId);return new jX({storage:$.messageParts,orgId:$.orgId,threadId:$.runId,runId:$.runId,baseTimeMs:(X??Date.now())+1})}async function YC8($){let Z=await Ac4($),X=$.replaceFinal?(Q)=>Z.replaceFinal(Q):(Q)=>Z.emitFinal(Q);return{emitStepParts:(Q)=>Z.emitStepParts(Q),emitFinal:X,emitError:(Q,Y)=>Z.emitError(Q,Y)}}var GC8=O(()=>{hO()});function jP0($,Z){Tc4.add(1,{"org.id":Z??"unknown"})}var Tc4;var JC8=O(()=>{R5();Tc4=D6.createCounter("decopilot.projector.poison_runs",{description:"Number of decopilot runs that exhausted retries and were sent to the DLQ",unit:"{runs}"})});class A91{intervalMs;lastBumpMs=new Map;constructor($=3000){this.intervalMs=$}shouldBump($,Z=Date.now()){let X=this.lastBumpMs.get($);if(X!==void 0&&Z-X<this.intervalMs)return!1;return this.lastBumpMs.set($,Z),!0}clear($){this.lastBumpMs.delete($)}}function KC8($,Z,X,Q){return $.pipeThrough(new TransformStream({transform(Y,G){if(X.shouldBump(Z))Q();G.enqueue(Y)},flush(){X.clear(Z)}}))}function Rc4($){return`liveness: no stream events for ${Math.round($/60000)}m`}function R91($){return $.runFenceToken!==null&&$.runFenceToken!==$.fenceToken}function HC8($){T91=$}function NC8(){if(!T91)throw Error("[projector-workflow] runtime not initialized \u2014 setProjectorWorkflowRuntime() must run before workflows fire");return T91}function UC8(){return NC8()}async function FC8($,Z,X){let Q=NC8(),Y=Q.getJetStream();if(!Y)throw Error("JetStream unavailable");let G=(await Q.messageParts.loadWindow($.runId,{limit:500})).messages.map(WP0);return{chunkCount:0,attempts:1,outcome:await dV8({chunkStream:KC8(await XC8({js:Y,runId:$.runId,fenceToken:$.fenceToken,idleTimeoutMs:$.idleTimeoutMs}),$.runId,Ic4,()=>{Q.bumpProgress({runId:$.runId,orgId:Z}).catch(()=>{})}),persistence:await YC8({messageParts:Q.messageParts,orgId:Z,runId:$.runId,requestMessageId:$.messageId,replaceFinal:!0}),originalMessages:G,errorMessageId:cO($.runId,$.fenceToken),title:{threadId:$.runId,currentThreadTitle:X,persistTitle:async(K,W)=>{await Q.persistTitle($.runId,Z,W),await Q.onTitleUpdated({runId:$.runId,orgId:Z,title:W})}}})}}async function WC8($,Z,X){let Q=await $.resolveRun(Z).catch(()=>null);return Q!==null&&Q.runFenceToken===X&&["completed","failed","requires_action"].includes(Q.status)}async function wC8($,Z,X){let Q=await qc4($,Z);if("skip"in Q)return;let Y=Q.row.orgId,G=Q.row.createdBy??$.runId,J=Q.row.title;try{let{outcome:K}=await X($,Y,J),W=K?.failed?"failed":UP0(K?.finishReason,K?.finalParts);if(W==="failed"){let H=K?.finishReason?`harness reported an error: ${K.finishReason}`:"harness reported an error";if(jP0($.runId,Y),await Z.markRunFailed($.runId,Y,H,"harness"))await Z.recordFailed({runId:$.runId,orgId:Y,distinctId:G,reason:H,kind:"harness"})}else if(W==="requires_action")await Z.markRunRequiresAction($.runId,Y),await Z.clearSynthesizedError($.runId,$.fenceToken);else{if(await Z.completeRunIfNotCompleted($.runId,Y))await Z.recordCompleted({runId:$.runId,orgId:Y,distinctId:G,usage:K?.usage??{inputTokens:0,outputTokens:0,totalTokens:0}});await Z.clearSynthesizedError($.runId,$.fenceToken)}await Z.purgeRun($.runId,$.fenceToken)}catch(K){if(K instanceof Oa){if(await WC8(Z,$.runId,$.fenceToken)){await Z.clearSynthesizedError($.runId,$.fenceToken),await Z.purgeRun($.runId,$.fenceToken);return}let F=`stream truncated before projection could replay it: ${K.message}`;if(jP0($.runId,Y),await Z.markRunFailed($.runId,Y,F,"projection"))await Z.recordFailed({runId:$.runId,orgId:Y,distinctId:G,reason:F,kind:"projection"});await Z.purgeRun($.runId,$.fenceToken);return}let W=K instanceof DP0;if(W&&await WC8(Z,$.runId,$.fenceToken)){await Z.purgeRun($.runId,$.fenceToken);return}let H=W?Rc4(K.idleTimeoutMs):K instanceof Error?K.message:String(K),N=W?"liveness":"projection";if(jP0($.runId,Y),await Z.markRunFailed($.runId,Y,H,N))await Z.recordFailed({runId:$.runId,orgId:Y,distinctId:G,reason:H,kind:N});if(W)await Z.clearSynthesizedError($.runId,$.fenceToken);throw K}}async function qc4($,Z){let X=await Z.resolveRun($.runId);if(!X)return{skip:"missing"};if(R91({status:X.status,runFenceToken:X.runFenceToken,fenceToken:$.fenceToken}))return{skip:"stale",row:X};if(X.version!==2)return{skip:"legacy-v1",row:X};return{row:X}}var T91=null,Ic4;var I91=O(()=>{mV8();QC8();zP0();GC8();JC8();O91();Ic4=new A91});function BC8($,Z){switch($.type){case"START":{let X={type:"RUN_STARTED",taskId:$.taskId,orgId:$.orgId,userId:$.userId,abortController:$.abortController,runConfig:$.runConfig,podId:$.podId,messageId:$.messageId};if(Z?.status.tag==="running")return[{type:"PREVIOUS_RUN_ABORTED",taskId:$.taskId,orgId:Z.orgId},X];return[X]}case"STEP_DONE":{if(Z?.status.tag!=="running")return[];return[{type:"STEP_COMPLETED",taskId:$.taskId,orgId:Z.orgId,stepCount:Z.status.stepCount+1}]}case"FINISH":{if(Z==null||Z.status.tag!=="running")return[];let{stepCount:X}=Z.status;if($.threadStatus==="completed")return[{type:"RUN_COMPLETED",taskId:$.taskId,orgId:Z.orgId,stepCount:X}];if($.threadStatus==="requires_action")return[{type:"RUN_REQUIRES_ACTION",taskId:$.taskId,orgId:Z.orgId,stepCount:X}];return[{type:"RUN_FAILED",taskId:$.taskId,orgId:Z.orgId,reason:"error"}]}case"CANCEL":{if(Z?.status.tag!=="running")return[];return[{type:"RUN_FAILED",taskId:$.taskId,orgId:Z.orgId,reason:"cancelled"}]}case"RESUME":{if(Z?.status.tag==="running")return[];return[{type:"RUN_RESUMED",taskId:$.taskId,orgId:$.orgId,userId:$.userId,abortController:$.abortController,podId:$.podId}]}case"FORCE_FAIL":{if($.reason==="ghost")return[{type:"RUN_FAILED",taskId:$.taskId,orgId:Z?.orgId??$.orgId,reason:$.reason,expectedFenceToken:$.expectedFenceToken??null}];if(Z?.status.tag!=="running")return[];return[{type:"RUN_FAILED",taskId:$.taskId,orgId:Z.orgId,reason:$.reason}]}}}function OC8($,Z,X=new Date){switch(Z.type){case"RUN_STARTED":return{taskId:Z.taskId,orgId:Z.orgId,userId:Z.userId,status:{tag:"running",abortController:Z.abortController,stepCount:0,startedAt:X}};case"RUN_RESUMED":return{taskId:Z.taskId,orgId:Z.orgId,userId:Z.userId,status:{tag:"running",abortController:Z.abortController,stepCount:0,startedAt:X}};case"STEP_COMPLETED":if($?.status.tag!=="running")return $;return{...$,status:{...$.status,stepCount:Z.stepCount}};case"RUN_COMPLETED":return;case"RUN_REQUIRES_ACTION":return;case"RUN_FAILED":return;case"PREVIOUS_RUN_ABORTED":return}}async function LC8($,Z,X,Q){let{storage:Y,sseHub:G}=Q,J=await Y.get($,Z);G.emit(Z,JW($,X,{virtualMcpId:J?.virtual_mcp_id??void 0,createdBy:J?.created_by,triggerId:J?.trigger_id,title:J?.title,branch:J?.branch??null,harnessId:J?.harness_id??void 0,createdAt:J?.created_at,updatedAt:J?.updated_at})),G.emit(Z,p90($,X))}async function kc4($,Z){let{storage:X,sseHub:Q}=Z;switch($.type){case"RUN_STARTED":{await X.update($.taskId,$.orgId,{status:"in_progress",run_config:$.runConfig??null,run_started_at:new Date().toISOString(),last_progress_at:null,failure_reason:null,failure_kind:null});let Y=await X.get($.taskId,$.orgId);Q.emit($.orgId,JW($.taskId,"in_progress",{virtualMcpId:Y?.virtual_mcp_id??void 0,createdBy:Y?.created_by,triggerId:Y?.trigger_id,title:Y?.title,branch:Y?.branch??null,harnessId:Y?.harness_id??void 0,createdAt:Y?.created_at,updatedAt:Y?.updated_at,messageId:$.messageId}));return}case"RUN_RESUMED":{await X.update($.taskId,$.orgId,{status:"in_progress",run_started_at:new Date().toISOString(),last_progress_at:null,failure_reason:null,failure_kind:null});let Y=await X.get($.taskId,$.orgId);Q.emit($.orgId,JW($.taskId,"in_progress",{virtualMcpId:Y?.virtual_mcp_id??void 0,createdBy:Y?.created_by,triggerId:Y?.trigger_id,title:Y?.title,branch:Y?.branch??null,harnessId:Y?.harness_id??void 0,createdAt:Y?.created_at,updatedAt:Y?.updated_at}));return}case"STEP_COMPLETED":Q.emit($.orgId,gm0($.taskId,$.stepCount));return;case"RUN_COMPLETED":await LC8($.taskId,$.orgId,"completed",Z);return;case"RUN_REQUIRES_ACTION":await LC8($.taskId,$.orgId,"requires_action",Z);return;case"RUN_FAILED":{if($.reason==="ghost"){if(!await X.forceFailIfInProgress($.taskId,$.orgId,$.expectedFenceToken))return;await X.update($.taskId,$.orgId,{run_config:null,run_started_at:null})}else{if(!await X.forceFailIfInProgress($.taskId,$.orgId))return;await X.update($.taskId,$.orgId,{run_config:null,run_started_at:null,...$.reason==="reaped"?{failure_reason:Mc4,failure_kind:"stall"}:{}})}let Y=await X.get($.taskId,$.orgId);Q.emit($.orgId,JW($.taskId,"failed",{virtualMcpId:Y?.virtual_mcp_id??void 0,createdBy:Y?.created_by,triggerId:Y?.trigger_id,title:Y?.title,branch:Y?.branch??null,harnessId:Y?.harness_id??void 0,createdAt:Y?.created_at,updatedAt:Y?.updated_at})),Q.emit($.orgId,p90($.taskId,"failed"));return}case"PREVIOUS_RUN_ABORTED":return}}async function DC8($,Z){for(let{event:X}of $)await kc4(X,Z)}var Mc4="Run stalled \u2014 no progress within the idle timeout window";var EC8=O(()=>{R6()});function zC8($){return $.now-$.lastProgressAt>$.idleTimeoutMs}function jC8($){return Math.max($.persistedLastProgressAt??Number.NEGATIVE_INFINITY,$.currentRunStartedAt)}class M91{deps;clock;states=new Map;reaperTimer=null;constructor($,Z=()=>new Date){this.deps=$;this.clock=Z;this.reaperTimer=setInterval(()=>{this.reapStaleRuns().catch((X)=>{console.error("[RunRegistry] Reaper sweep failed",X)})},Sc4)}async execute($){let Z=this.dispatch($);return await this.react(Z),Z}dispatch($){let Z=this.states.get($.taskId),X=BC8($,Z),Q=[];for(let Y of X){let G=this.states.get(Y.taskId);if(Y.type==="PREVIOUS_RUN_ABORTED"||Y.type==="RUN_FAILED"){if(G?.status.tag==="running")G.status.abortController.abort()}let J=OC8(G,Y,this.clock());if(J===void 0)this.states.delete(Y.taskId);else this.states.set(Y.taskId,J);if(Q.push({event:Y,state:J}),Vc4.has(Y.type))PC8().add(1,{"org.id":Y.orgId});else if(Cc4.has(Y.type)&&G?.status.tag==="running")PC8().add(-1,{"org.id":Y.orgId})}return Q}react($){return DC8($,this.deps)}getAbortSignal($){let Z=this.states.get($);if(Z?.status.tag==="running")return Z.status.abortController.signal;return null}isRunning($){return this.states.get($)?.status.tag==="running"}async stopAll(){for(let[,$]of this.states)if($.status.tag==="running")$.status.abortController.abort();this.states.clear()}dispose(){if(this.reaperTimer)clearInterval(this.reaperTimer),this.reaperTimer=null}async reapStaleRuns(){let $=this.clock().getTime(),Z=[...this.states].filter(([,X])=>X.status.tag==="running");for(let[X,Q]of Z){if(this.states.get(X)?.status.tag!=="running")continue;let G;try{let K=await this.deps.storage.getProgress(X,Q.orgId);G=jC8({persistedLastProgressAt:K?.lastProgressAt??null,currentRunStartedAt:Q.status.startedAt.getTime()})}catch(K){console.warn(`[RunRegistry] Reaper progress read failed for ${X}; skipping`,K);continue}if(!zC8({lastProgressAt:G,now:$,idleTimeoutMs:PP0}))continue;let J=await this.deps.storage.get(X,Q.orgId).catch(()=>null);if(J&&J.status!=="in_progress"){let K=this.states.get(X);if(K?.status.tag==="running")K.status.abortController.abort();this.states.delete(X);continue}console.warn(`[RunRegistry] Reaping stuck run for thread ${X} (idle > ${PP0/60000}m) ...`),_c4().add(1,{"org.id":Q.orgId,reason:"idle_timeout"}),await this.execute({type:"FORCE_FAIL",taskId:X,reason:"reaped"}).catch((K)=>{console.error("[RunRegistry] Reaper execute failed",K)})}}}var Sc4=300000,q91,PP0,Vc4,Cc4,AC8=($)=>{let Z;return()=>Z??=$()},PC8,_c4;var k91=O(()=>{EC8();R5();q91=Number(process.env.RUN_IDLE_TIMEOUT_MS),PP0=Number.isFinite(q91)&&q91>0?q91:600000,Vc4=new Set(["RUN_STARTED","RUN_RESUMED"]),Cc4=new Set(["RUN_COMPLETED","RUN_FAILED","RUN_REQUIRES_ACTION","PREVIOUS_RUN_ABORTED"]),PC8=AC8(()=>D6.createUpDownCounter("decopilot.stream.inflight",{description:"Number of in-flight decopilot stream requests",unit:"{requests}"})),_c4=AC8(()=>D6.createCounter("decopilot.run.reaped",{description:"Number of decopilot runs force-failed by the progress-based reaper",unit:"{runs}"}))});async function TC8($){let{runId:Z}=$,X=UC8(),Q=await X.resolveRun(Z),Y=$.fenceToken??Q?.runFenceToken;if(!Q||Q.version!==2||Y==null)return;if(R91({status:Q.status,runFenceToken:Q.runFenceToken,fenceToken:Y}))return;if(!X.getJetStream())throw Error("JetStream unavailable for consume step");await wC8({runId:Z,fenceToken:Y,messageId:$.messageId,idleTimeoutMs:$.idleTimeoutMs??PP0},X,FC8)}var RC8=O(()=>{I91();k91()});var AP0,dO,IC8=()=>({active:dO.active,pending:dO.pending,max:AP0}),qC8=($)=>{if(dO.active>=AP0)console.log("[hostedHarness] run parked at concurrency cap",{active:dO.active,pending:dO.pending,max:AP0}),$?.();return dO.acquire()};var S91=O(()=>{h51();y8();R5();AP0=Q1().decopilotMaxConcurrentHostedRuns,dO=g51(AP0);D6.createObservableGauge("hosted_runs.active",{description:"Hosted agent-loop runs executing on this pod",unit:"{runs}"}).addCallback(($)=>$.observe(dO.active));D6.createObservableGauge("hosted_runs.pending",{description:"Hosted agent-loop runs parked waiting for a slot on this pod",unit:"{runs}"}).addCallback(($)=>$.observe(dO.pending))});import{DBOS as c_}from"@dbos-inc/dbos-sdk";function _91($){V91=$}function kC8(){if(!V91)throw Error("[hostedHarness] runtime not initialized \u2014 setHostedHarnessRuntime() must run before workflows fire");return V91}async function xc4($,Z){let X=kC8(),{request:Q}=$,Y=Z??await X.studioContextFactory(Q.organizationId,Q.userId);if(!Y)throw Error("user membership lost mid-dispatch");if(Q.runMetadata)Y.metadata.runMetadata=Q.runMetadata;let G=new AbortController,J=!1,K=new wa({emit:()=>MC8(X,$)}),W=await qC8(()=>{J=!0,MC8(X,$),K.arm()}).finally(()=>K.stop());try{if(J&&await vc4($))throw Error("run cancelled while queued for a free runner");if(th(Y,"in_progress",$.threadId),!Q.runMetadata?.taskBoardItemId)GS8(Y,$.threadId);await X.dispatchRunFn({...Q,abortSignal:G.signal},Y,X.deps)}finally{W()}}async function vc4($){try{return(await c_.getWorkflowStatus(x91($.runId,$.fenceToken)))?.status==="CANCELLED"}catch(Z){return console.error(`[hostedHarness] could not read child status for run=${$.runId} fence=${$.fenceToken}`,Z),!1}}function fc4($,Z,X,Q=1){let Y=X instanceof Error?X.message:String(X);return{messageId:cO($,Z),errorChunk:{type:"error",errorText:Y},seq:Q,finalSeq:Q}}function bc4($){if(!($ instanceof Error))return;let Z=$.lastAckSeq;return typeof Z==="number"?Z+1:void 0}async function yc4($,Z){let X=kC8(),{streamBuffer:Q}=X.deps,{messageId:Y,errorChunk:G,seq:J,finalSeq:K}=fc4($.runId,$.fenceToken,Z,bc4(Z));if(!Q){console.error(`[hostedHarness] no streamBuffer configured; dropping terminal error for run=${$.runId} fence=${$.fenceToken} messageId=${Y}`);return}if(!await Q.publishRawChunk($.runId,G,{fenceToken:$.fenceToken,seq:J})){console.error(`[hostedHarness] failed to publish terminal error chunk for run=${$.runId} fence=${$.fenceToken} messageId=${Y}`);return}await Q.publishDone($.runId,$.fenceToken,K)}async function gc4($){try{await c_.runStep(()=>xc4($),{name:"runHostedHarness",retriesAllowed:!1})}catch(Z){await c_.runStep(()=>yc4($,Z),{name:"publishHostedHarnessFailure",retriesAllowed:!0}).catch((X)=>{console.error(`[hostedHarness] could not publish terminal error for run=${$.runId} fence=${$.fenceToken}`,X)})}}function x91($,Z){return`decopilot-hosted:${$}:${Z}`}async function SC8($){return{workflowID:(await c_.startWorkflow(hc4,{workflowID:x91($.runId,$.fenceToken),queueName:DN,enqueueOptions:{queuePartitionKey:$.threadId}})($)).workflowID}}async function v91($,Z){await c_.cancelWorkflow(x91($,Z))}var C91=1,V91=null,MC8=($,Z)=>UK($.deps.streamBuffer,Z.runId,"waiting-capacity"),hc4;var f91=O(()=>{L91();$u();S91();HQ();hc4=c_.registerWorkflow(gc4,{name:"hostedHarnessWorkflow",maxRecoveryAttempts:1000})});import{DBOS as Qu}from"@dbos-inc/dbos-sdk";function g91($){E91($)}function h91($){b91=$}function uc4(){if(!b91)throw Error("[threadGate] runtime not initialized \u2014 setThreadGateRuntime() must run before workflows fire");return b91}function cc4($,Z=JP0){let X=$.runFenceToken;if(X)return{runFenceToken:X,claimedRequest:$,shouldPersistFence:!1};let Q=Z();return{runFenceToken:Q,claimedRequest:{...$,runFenceToken:Q},shouldPersistFence:!0}}async function lc4($){let Z=uc4(),{request:X}=$,Q=X.taskId??$.threadId;if(IV8({harnessId:X.harnessId}))await UK(Z.deps.streamBuffer,Q,"starting-run");let Y=await Z.studioContextFactory(X.organizationId,X.userId);if(!Y)throw Error("user membership lost mid-dispatch");g91(X.harnessId);let G=X.taskId??$.threadId,{runFenceToken:J,claimedRequest:K,shouldPersistFence:W}=cc4(X);if(W)await Y.storage.threads.setRunFence(G,J);return{runFenceToken:J,hostedEnqueue:{runId:Q,fenceToken:J,threadId:$.threadId,request:K}}}async function dc4($){if($.source!=="user-message")return;let{request:Z}=$;i1.capture({distinctId:Z.userId,event:"chat_message_started",groups:{organization:Z.organizationId},properties:{organization_id:Z.organizationId,agent_id:Z.agent,mode:Z.mode,thread_id:Z.taskId??$.threadId,credential_id:Z.models.credentialId}})}async function mc4($,Z){if($.source!=="user-message")return;let{request:X}=$;i1.capture({distinctId:X.userId,event:"chat_message_failed",groups:{organization:X.organizationId},properties:{organization_id:X.organizationId,thread_id:X.taskId??$.threadId,agent_id:X.agent,model_id:X.models.thinking.id,mode:X.mode,error_category:"setup",error_message:Z}})}async function TP0($){g91($.request.harnessId),await Qu.runStep(()=>dc4($),{name:"trackMessageStarted"});let Z;try{Z=await Qu.runStep(()=>lc4($),{name:"dispatchRunAndWait",retriesAllowed:!0}),await SC8(Z.hostedEnqueue)}catch(Y){let G=Y instanceof Error?Y.message:String(Y);throw await Qu.runStep(()=>mc4($,G),{name:"trackMessageFailed"}),Y}let X=$.request.taskId??$.threadId,Q="messages"in $.request?void 0:$.request.messageId;return await Qu.runStep(()=>TC8({runId:X,fenceToken:Z.runFenceToken,messageId:Q}),{name:"consumeRunProjection"}),{taskId:$.request.taskId??$.threadId}}async function ic4($){return TP0($)}async function CU($,Z){return g91($.request.harnessId),{workflowID:(await Qu.startWorkflow(nc4,{queueName:YJ,enqueueOptions:{queuePartitionKey:$.threadId},workflowID:Z?.workflowID})($)).workflowID}}var y91=1,b91=null,nc4;var VC8=O(()=>{FP0();V$();$u();RC8();f91();nc4=Qu.registerWorkflow(ic4,{name:"threadGateWorkflow",maxRecoveryAttempts:1000})});var u_=O(()=>{VC8();f91()});async function La($,Z,X){let Q=Z.organizationId,Y=Z.assignedBy??Z.createdBy,G=X.harnessId??"decopilot",J=await EX($,"smart"),K=$E(Q),W=await $.storage.threads.create({organization_id:Q,title:X.title,status:"in_progress",virtual_mcp_id:K,message_storage_version:2,harness_id:G,sandbox_provider_kind:"agent-sandbox",created_by:Y}),H={...W.metadata??{},...fO(G)?{read_only:!0}:{},...X.repo?{githubRepo:{url:X.repo.url,owner:X.repo.owner,name:X.repo.name,installationId:X.repo.installationId,connectionId:X.repo.connectionId}}:{}},N=X.repo?HK(W.id,X.repo.connectionId):fO(G)?HK(W.id):null;await $.storage.threads.update(W.id,{metadata:H,...N?{branch:N}:{},updated_by:Y}),await $.storage.taskBoard.linkThread(Z.id,W.id,Q);let U={id:crypto.randomUUID(),role:"user",parts:[{type:"text",text:X.prompt}]};return await new jX({storage:$.storage.threads.messageParts(),orgId:Q,threadId:W.id,runId:W.id}).emitRequestMessage(U),await CU({threadId:W.id,source:"background-tool",request:{messages:[U],models:{credentialId:J.credentialId,thinking:{id:J.modelId,title:J.modelMeta.title}},agent:{id:K},temperature:X.temperature,toolApprovalLevel:"auto",mode:"default",organizationId:Q,userId:Y,harnessId:G,sandboxProviderKind:"agent-sandbox",...X.repo?{}:N?{branch:N}:{},taskId:W.id,runMetadata:Dj0(Z)}}),{threadId:W.id}}var u91=O(()=>{$a();xO();u_();hO();R6();NK();Rj0()});function pc4($){let Z=new Map($.map((G)=>[G.id,G])),X=new Map;for(let G of ch($)){let J=CC8(G.owner,G.repo);X.set(J,[...X.get(J)??[],G])}if(X.size!==1)return null;let Q=[...X.values()][0],Y=Q.find((G)=>{let J=Z.get(G.connectionId);return J?Yh(J):!1})??Q[0];return{connectionId:Y.connectionId,owner:Y.owner,name:Y.repo,installationId:Y.installationId,url:`https://github.com/${Y.owner}/${Y.repo}`}}async function _C8($,Z){try{let{items:X}=await $.storage.connections.list(Z,{slug:"mcp-github"}),Q=pc4(X);if(Q)return{repo:Q};let Y=new Map;for(let J of ch(X)){let K=CC8(J.owner,J.repo);if(!Y.has(K))Y.set(K,{connectionId:J.connectionId,repo:`${J.owner}/${J.repo}`})}let G=Y;if(G.size===0)return console.warn(`[task-board] claude-code skipped for org ${Z}: `+"no importable repos \u2014 running Decopilot"),null;return console.warn(`[task-board] claude-code for org ${Z}: ${G.size} importable repos \u2014 the run picks one with TASK_ADD_REPO`),{choices:[...G.values()]}}catch(X){return console.warn("[task-board] repo lookup for claude-code failed",X),null}}function xC8($,Z,X){let Q=["You've been assigned this task. Complete it and finish with a pull request.","","You are running AUTONOMOUSLY \u2014 no human is watching, so drive this to "+"completion yourself. Make reasonable decisions and move on; do not stop to ask for confirmation.","",`Title: ${$.title}`];if($.description)Q.push("","Description:",$.description);if(Q.push("",Z?`The repository ${Z.owner}/${Z.name} is already cloned at your working directory, on its own branch. \`git\` and \`gh\` are authenticated.`:["Your working directory is EMPTY: this organization has several repositories, so nothing has been cloned yet. FIRST call `mcp__studio__TASK_ADD_REPO` with the connectionId of the repository this task is about. It clones that repository into your working directory and waits for the checkout, so once it returns the repository is there on its own branch and `git` and `gh` are authenticated. Do not read files, run `git`, or run `gh` before it returns; there is nothing there yet.","","Repositories in this organization:",...(X?.repoChoices??[]).map((Y)=>`- ${Y.repo} (connectionId: ${Y.connectionId})`),X?.repoChoices?.length?"Pick the one the task is about. If the task doesn't say and the names don't settle it, take the first.":"Call `mcp__studio__TASK_ADD_REPO` with no arguments to list them."].join(`
|
|
2780
|
+
`).trim();return{models:$.models,agent:$.agent,temperature:$.temperature,toolApprovalLevel:$.toolApprovalLevel,...$.toolAllowlist!==void 0?{toolAllowlist:$.toolAllowlist}:{},...$.maxAgentSteps!==void 0?{maxAgentSteps:$.maxAgentSteps}:{},...$.isSubagent!==void 0?{isSubagent:$.isSubagent}:{},...$.subtaskJobId!==void 0?{subtaskJobId:$.subtaskJobId}:{},...$.resumedFromBackground!==void 0?{resumedFromBackground:$.resumedFromBackground}:{},mode:$.mode,...$.windowSize!==void 0?{windowSize:$.windowSize}:{},...$.triggerId!==void 0?{triggerId:$.triggerId}:{},...$.runMetadata!==void 0?{runMetadata:$.runMetadata}:{},branch:Z.branch??$.branch??null,sandboxProviderKind:$.sandboxProviderKind,harnessId:$.harnessId,organizationId:$.organizationId,userId:$.userId,taskId:$.taskId,messageId:Z.messageId,...Z.runFenceToken!==void 0?{runFenceToken:Z.runFenceToken}:{},...$.isResume!==void 0?{isResume:$.isResume}:{},...X?{systemContext:X}:{}}}function Yc4($,Z){let X=$.find((Q)=>Q.id===Z);if(!X)throw new vO("empty_request",`Persisted request message missing for messageId=${Z}`);if(X.role==="system")throw new vO("empty_request",`Persisted message ${Z} has role=system; expected non-system request message`);return X}function Gc4($){let Z=$.models;return{"decopilot.agent.id":$.agent.id,"decopilot.model.id":Z.thinking.id,"decopilot.credential.id":Z.credentialId,"decopilot.organization.id":$.organizationId,"decopilot.user.id":$.userId,"decopilot.thread.id":$.taskId??""}}async function cV8($,Z,X){return cu1("decopilot.dispatchRunAndWait",async(Q)=>{let{taskId:Y,uiStream:G,registrySignal:J}=await Wc4($,Z,X,Q),K=X.streamBuffer,W=K?await K.createTailStream(Y,$.abortSignal,{deliverPolicy:"new",closeOnDone:!0}):null;if(K&&W){let H=K.pump(G,Y,J,$.organizationId);H.catch(()=>{});let N=W.getReader();try{while(!0){let{done:U}=await N.read();if(U)break}}finally{N.releaseLock()}await H}else{if(K)console.warn(JSON.stringify({msg:"decopilot-stream-diag",event:"producer-fallback-no-pump",taskId:Y,hasTail:!!W,note:"createTailStream returned null \u2014 draining producer stream directly; projector persistence depends on streamBuffer publish health"}));let H=G.getReader();try{while(!0){let{done:N}=await H.read();if(N)break}}finally{H.releaseLock()}}return{taskId:Y}},Gc4($))}async function Jc4($,Z,X,Q){let[Y,G,J]=await Promise.all([$.storage.threads.list(Q,{limit:9,agentId:X}).catch(()=>null),$.storage.interests.getForAgent(Z,X,Q).catch(()=>null),$.storage.virtualMcps.list(Z).catch(()=>null)]),K={};if(Y&&Y.total>0)K.recentThreads={total:Y.total,threads:Y.threads.map((W)=>({id:W.id,title:W.title,updated_at:W.updated_at}))};if(G&&G.interests.length>0)K.interests=G.interests.map((W)=>({title:W.title,summary:W.summary}));if(J)K.agents=J.map((W)=>({id:W.id,name:W.title,description:W.description,status:W.status}));return K}async function Kc4({virtualMcp:$,agentId:Z,organizationId:X,ctx:Q}){return jX0({virtualMcp:$,agentId:Z,organizationId:X,ctx:Q})}async function Wc4($,Z,X,Q){let{runRegistry:Y,streamBuffer:G}=X;E91($.harnessId);let J=$.harnessId;if(!hV8($))$={...$,messages:$.messages.map((H)=>H.id?H:{...H,id:tp()})};let K=!1,W;try{let H=$.models;Q.setAttribute("decopilot.harnessId",J),Z.sandboxPreference="agent-sandbox",Q.setAttribute("decopilot.dispatchTarget.sandboxProviderKind","agent-sandbox");let N=HP0({harnessId:J,sandboxProviderKind:"agent-sandbox"}),U=vV8(H),F=await wK(Z.db,$.organizationId,Z.organization?.role??Z.auth.user?.role);if(!FK(F,U.thinking.credentialId,U.thinking.id))throw Error("Model not allowed for your role");U=NP0(F,U);let w=$.windowSize??Q3;if(!$.taskId)throw Error("dispatchRunAndWait: taskId is required");if(N)await UK(G,$.taskId,Fa[0]);let B=await oq8(Z,$.organizationId,Z.metadata?.runMetadata),L=(a)=>a?Qc4(Z,$.organizationId,a.credentialId,a.id,B):Promise.resolve(void 0),[D,E,z,j,A,P,I,k,M]=await Promise.all([Z.storage.virtualMcps.findById($.agent.id,$.organizationId),L(U.thinking),L(U.fast),L(U.smart),L(U.image),L(U.webSearch),L(U.deepResearch),KP0(Z.storage.threads,{organization_id:$.organizationId,thread_id:$.taskId,userId:$.userId,defaultWindowSize:w}),Jc4(Z,$.organizationId,$.agent.id,$.userId)]);if(N)await UK(G,$.taskId,Fa[1]);let C=E?{thinking:E,...z?{fast:z}:{},...j?{smart:j}:{},...A?{image:A}:{},...P?{webSearch:P}:{},...I?{deepResearch:I}:{}}:void 0,m=E?zj0(E):null;if(W=k.thread.id,Z.metadata.threadId=k.thread.id,Q.setAttribute("decopilot.thread.id",k.thread.id),k.thread.created_by!==$.userId)throw Error("You are not allowed to write to this thread because you are not the owner");if(m?.asyncResearch){let a=[["thinking",U.thinking.id]];if(U.fast)a.push(["fast",U.fast.id]);if(U.smart)a.push(["smart",U.smart.id]);if(U.image)a.push(["image",U.image.id]);for(let[W0,K1]of a)if(m.asyncResearch.canHandle(K1))throw Error(`Model "${K1}" can only be used as a Deep Research model. It is not usable as the ${W0} model \u2014 set it in the Deep Research slot instead.`)}let b=k.thread.message_storage_version===2?new jX({storage:Z.storage.threads.messageParts(),orgId:$.organizationId,threadId:k.thread.id,runId:k.thread.id}):null;if(!D)throw new vO("agent_not_found","Agent not found");let t=await Kc4({virtualMcp:D,agentId:$.agent.id,organizationId:$.organizationId,ctx:Z});if($.isResume)await Y.execute({type:"RESUME",taskId:k.thread.id,orgId:$.organizationId,userId:$.userId,abortController:new AbortController,podId:D91()});else await Y.execute({type:"START",taskId:k.thread.id,orgId:$.organizationId,userId:$.userId,abortController:new AbortController,podId:D91(),runConfig:{models:$.models,agent:$.agent,temperature:$.temperature,toolApprovalLevel:$.toolApprovalLevel,mode:$.mode,windowSize:$.windowSize,triggerId:$.triggerId},messageId:$.messageId});K=!0,await Z.storage.threads.clearCancelRequested(k.thread.id);let y;if($.runFenceToken)y=$.runFenceToken;else y=JP0(),await Z.storage.threads.setRunFence(k.thread.id,y);let Z0=Y.getAbortSignal(k.thread.id);if(!Z0)throw await Y.execute({type:"FINISH",taskId:k.thread.id,threadStatus:"failed"}),Error("Run was cancelled immediately after starting");if($.abortSignal){let a=$.abortSignal;if(a.aborted)await Y.execute({type:"CANCEL",taskId:k.thread.id});else a.addEventListener("abort",()=>{Y.execute({type:"CANCEL",taskId:k.thread.id}).catch(()=>{})},{once:!0})}if(!$.isResume)G?.purge(k.thread.id);let B0=[],q0,$0;if(hV8($)){if($0=await k.loadHistory(w),q0=Yc4($0,$.messageId),$.systemContext)B0=[{id:`system-${$.messageId}`,role:"system",parts:[{type:"text",text:$.systemContext}]}]}else{B0=$.messages.filter((W0)=>W0.role==="system");let a=$.messages.find((W0)=>W0.role!=="system");if(q0=a?(await vj0([a],Z,{threadId:k.thread.id})).find((W0)=>W0.role!=="system"):void 0,!$.isResume){if(!q0)throw new vO("empty_request","No user message found in input \u2014 expected at least one non-system message");if(b)await b.emitUserMessage(q0).catch((W0)=>{console.error("[decopilot:stream] v2 user-message emit failed",W0)})}}if(q0)await kV8(G,k.thread.id,q0);let e=[],R0=Z.organization,Q0=Date.now(),I0=q0?(await fj0([q0],Z))[0]:void 0;if(!I0||!q0)throw new vO("empty_request","No user message found in input \u2014 expected at least one non-system message");TV8($.models,[I0]);let n0=await PV8({ctx:Z,threadId:k.thread.id,userMessage:q0,windowSize:w,isSubagent:$.isSubagent===!0,systemMessages:B0}),a0={url:"",headers:{},expiresAt:0},H0=void 0,S0=void 0,C0={cwd:null},M0=typeof t.metadata?.instructions==="string"?t.metadata.instructions:void 0,X0={taskId:$.taskId,isSubagent:$.isSubagent,subtaskJobId:$.subtaskJobId,resumedFromBackground:$.resumedFromBackground,virtualMcp:t,branch:$.branch,messages:n0,modelSources:C,mcpSource:H0,objectStorageSource:S0,userContext:M},N0={harnessId:J,threadId:k.thread.id,userMessage:I0,harness:{sessionId:void 0},workspace:C0,models:U,mcp:a0,mode:$.mode,temperature:$.temperature,toolApprovalLevel:$.toolApprovalLevel,toolAllowlist:$.toolAllowlist??null,maxAgentSteps:$.maxAgentSteps,user:{id:$.userId,email:Z.auth.user?.email??""},organizationId:$.organizationId,organizationSlug:R0.slug,agent:{id:$.agent.id,instructions:M0},triggerId:$.triggerId,currentThreadTitle:k.thread.title,runFenceToken:y};if(N)await UK(G,$.taskId,Fa[2]);let g0=fO(J),F0=g0?await Z.storage.threads.getAckedSeq(k.thread.id):0;if(F0>0)console.log("[dispatch] resuming a sandbox-hosted turn",{runId:k.thread.id,fromSeq:F0});let P0=g0?await Z.storage.claudeSubscriptions.findLiveToken($.userId).catch((a)=>{return console.warn("[dispatch] claude subscription lookup failed",a),null}):null,k1=async function*(){let a={...N0,signal:Z0};if(w51(a,X0),N)await UK(G,k.thread.id,Fa[3]);yield*(g0?new j51({ctx:Z,harnessId:J,virtualMcpId:t.id,...F0>0?{resume:{reason:"the Studio process driving the previous attempt stopped"}}:{},branch:await Gq8(Z,{threadId:k.thread.id,agentRepo:t.metadata?.githubRepo,runBranch:$.branch}),credential:P0?{providerId:vM8,apiKey:P0}:E?{providerId:E.providerId,apiKey:E.apiKey,...E.baseUrl?{baseUrl:E.baseUrl}:{}}:null}):new D51({ctx:Z,harnessId:J})).dispatch(a)},Y1=Zc4(()=>Xc4({runId:k.thread.id,fenceToken:y,streamBuffer:G??{publishRawChunk:async()=>!1,publishDone:async()=>!1},chunks:VV8(k1()),...g0?{startSeq:F0,initialAckSeq:F0,onPublished:(a)=>Z.storage.threads.bumpAckedSeq(k.thread.id,y,a)}:{},errorMessageId:cO(k.thread.id,y),loadOriginalMessages:b?async()=>(await Z.storage.threads.messageParts().loadWindow(k.thread.id,{limit:1})).messages.map(WP0):void 0,title:{currentThreadTitle:k.thread.title,threadId:k.thread.id,persistTitle:async(a,W0)=>{await Z.storage.threads.update(a,{title:W0})}},hooks:{onStep:()=>{let a=Y.dispatch({type:"STEP_DONE",taskId:k.thread.id});e.push(Y.react(a).catch((W0)=>{console.error("[decopilot:stream] onStepFinish reactor failed",W0)}))},onFinish:async(a,W0)=>{let K1=e.length,D1=performance.now();if(await Promise.allSettled(e),bV8.record(performance.now()-D1,{phase:"settle"}),Z0.aborted)return;await h8(0);let n1=yV8?VD():null,p0=performance.now(),m1=UP0(W0,a?.parts);await Y.execute({type:"FINISH",taskId:k.thread.id,threadStatus:m1});let f8=performance.now()-p0;if(bV8.record(f8,{phase:"save"}),yV8&&n1){let d4=VD()??n1,I$=-1;try{I$=JSON.stringify(a)?.length??-1}catch{}console.warn(JSON.stringify({msg:"decopilot-finish-trace",threadId:k.thread.id,pendingOps:K1,saveMs:Math.round(f8),parts:a?.parts?.length??0,messageBytes:I$,rssDelta:d4.rss-n1.rss,heapUsedDelta:d4.heapUsed-n1.heapUsed,externalDelta:d4.external-n1.external}))}},onError:(a)=>{if(Z0.aborted){i1.capture({distinctId:$.userId,event:"chat_message_aborted",groups:{organization:$.organizationId},properties:{organization_id:$.organizationId,thread_id:k.thread.id,agent_id:$.agent.id,model_id:U.thinking.id,mode:$.mode,duration_ms:Date.now()-Q0,is_resume:$.isResume??!1}});return}console.error("[decopilot] stream error:",SU(a)),Y.execute({type:"FINISH",taskId:k.thread.id,threadStatus:"failed"}).catch((W0)=>{console.error("[decopilot:stream] onError reactor failed",W0)})}}}));return{taskId:k.thread.id,uiStream:Y1,registrySignal:Z0}}catch(H){if(K&&W)Y.execute({type:"FINISH",taskId:W,threadStatus:"failed"}).catch((N)=>{console.error("[decopilot:stream] catch-block reactor failed",N)});throw H}}var bV8,yV8,gV8;var FP0=O(()=>{$a();X51();V$();xM8();z51();Rj0();NK();Hy();zV8();ih();Q51();MB();AV8();hO();O91();ph();RV8();$u();F91();CV8();Zu();R5();fV8();s$();bV8=D6.createHistogram("decopilot.finish.duration",{description:"Wall time of onFinish flush segments, tagged by phase",unit:"ms"}),yV8=process.env.DECOPILOT_FINISH_TRACE==="1";gV8=["decopilot","claude-code"]});function lV8($){return qV8($)||MV8($)}async function Hc4($){let Z=$.getReader();try{while(!0){let{done:X}=await Z.read();if(X)break}}finally{Z.releaseLock()}}function Nc4($,Z){let X=$.getReader(),Q=!1,Y=()=>{if(Q)return;Q=!0,X.releaseLock()};return new ReadableStream({async pull(G){try{let{done:J,value:K}=await X.read();if(J)Y(),G.close();else G.enqueue(K)}catch(J){Z(J),Y(),G.error(J)}},async cancel(G){await X.cancel(G),Y()}})}async function dV8($){if(!$.chunks&&!$.chunkStream)throw Error("projectChunks requires chunks or chunkStream");let Z=null,X=!1,Q=void 0,Y={inputTokens:0,outputTokens:0,totalTokens:0},G=[],J=null,K=(B)=>{if(J===null)J=B;throw B},W=$.chunks?async function*(){try{for await(let B of $.chunks){if(lV8(B))continue;yield B}}catch(B){throw Z=B,B}}():void 0,H=$.chunkStream?Nc4($.chunkStream,(B)=>{Z=B}).pipeThrough(new TransformStream({transform(B,L){if(!lV8(B))L.enqueue(B)}})):void 0,N={emitStepParts:(B)=>$.persistence.emitStepParts(B).catch(K),emitFinal:(B)=>$.persistence.emitFinal(B).catch(K),emitError:(B,L)=>$.persistence.emitError(B,L).catch(K)},{uiStream:U,whenComplete:F}=ej0({chunks:W,chunkStream:H,originalMessages:$.originalMessages??[],title:$.title?{currentThreadTitle:$.title.currentThreadTitle,threadId:$.title.threadId,persistTitle:$.title.persistTitle}:{currentThreadTitle:void 0,threadId:"projector",persistTitle:async()=>{}},persistence:N,sanitizeErrorText:$.sanitizeErrorText,errorMessageId:$.errorMessageId,generateMessageId:$.generateMessageId,hooks:{onUsage:(B)=>{Y={inputTokens:B.inputTokens,outputTokens:B.outputTokens,totalTokens:B.totalTokens}},onError:()=>{X=!0},onFinish:(B,L)=>{Q=L,G=Array.isArray(B.parts)?B.parts.filter((D)=>D!=null&&typeof D==="object"&&("type"in D)):[]}}});if(await Hc4(U).catch(()=>{}),await F,J!==null)throw J;if(Z!==null)throw Z;return{failed:X&&Q===void 0,finishReason:Q,usage:Y,finalParts:G}}var mV8=O(()=>{U91();$u()});var Ba=786432;function Fc4($){if(/[.*>\s]/.test($))throw Error("Invalid NATS subject token")}function lO($){return Fc4($),`${wP0}.${$}`}function iV8($){let Z=`${$.runId}:${$.fenceToken}:${$.seq}`;return $.fragmentIndex===void 0?Z:`${Z}:frag:${$.fragmentIndex}`}function wc4($){return`${$.runId}:${$.fenceToken}:done:${$.finalSeq}`}function nV8($){if(!$)return null;let Z=Number($);return Number.isInteger(Z)&&Z>0?Z:null}function Bc4($){if(!$)return null;let Z=Number($);return Number.isInteger(Z)&&Z>=0?Z:null}function Oc4($){if(!$)return null;let Z=$.split(":"),[X,Q,Y,G,J]=Z;if(!X||!Q||!Y)return null;if(Y==="done"){let W=nV8(G);return Z.length===4&&W!==null?{kind:"done",runId:X,fenceToken:Q,finalSeq:W}:null}if(Y==="ckpt")return null;let K=nV8(Y);if(K===null)return null;if(Z.length===3)return{kind:"chunk",runId:X,fenceToken:Q,seq:K,fragmentIndex:null};if(Z.length===5&&G==="frag"){let W=Bc4(J);return W===null?null:{kind:"chunk",runId:X,fenceToken:Q,seq:K,fragmentIndex:W}}return null}function j91($,Z){let X=lO(Z.runId),Q=z91.encode(JSON.stringify({p:$}));if(Q.length>Uc4)return[];if(Q.length<=Ba)return[{subject:X,data:Q,msgId:Z.dedup?iV8({runId:Z.runId,...Z.dedup}):void 0}];let Y=Math.ceil(Q.length/Ba),G=[];for(let J=0;J<Y;J++)G.push({subject:X,data:Q.slice(J*Ba,(J+1)*Ba),headers:{[pV8]:String(J),[tV8]:String(Y)},msgId:Z.dedup?iV8({runId:Z.runId,...Z.dedup,fragmentIndex:J}):void 0});return G}function oV8($){return{subject:lO($.runId),data:z91.encode(JSON.stringify({done:!0,finalSeq:$.finalSeq})),msgId:wc4($)}}function rV8($){return{subject:lO($),data:z91.encode(JSON.stringify({done:!0}))}}function Lc4($){let Z=$.reduce((Y,G)=>Y+(G?.length??0),0),X=new Uint8Array(Z),Q=0;for(let Y of $){if(!Y)continue;X.set(Y,Q),Q+=Y.length}return X}function BP0(){let $=null;return new TransformStream({transform(Z,X){let Q=Z.headers?.get(tV8);if(!Q){X.enqueue(Z);return}let Y=Number(Q),G=Number(Z.headers?.get(pV8)??"0");if(G===0)$={total:Y,received:0,parts:Array(Y)};else if(!$||$.total!==Y)return;if(!$.parts[G])$.received++;if($.parts[G]=Z.data,$.received<$.total)return;let J=Lc4($.parts);$=null,X.enqueue({subject:Z.subject,data:J,headers:Z.headers})}})}function Dc4($){return typeof $==="number"&&Number.isInteger($)&&$>0}function zc4($){let Z=Oc4($.headers?.get("Nats-Msg-Id")||void 0),X;try{X=JSON.parse(Ec4.decode($.data))}catch{return null}if(!X||typeof X!=="object")return null;let Q=X;if(Q.done===!0)return{kind:"done",runId:Z?.kind==="done"?Z.runId:null,fenceToken:Z?.kind==="done"?Z.fenceToken:null,envelopeFinalSeq:Dc4(Q.finalSeq)?Q.finalSeq:null,msgIdFinalSeq:Z?.kind==="done"?Z.finalSeq:null};if("p"in Q)return{kind:"chunk",seq:Z?.kind==="chunk"?Z.seq:null,runId:Z?.kind==="chunk"?Z.runId:null,fenceToken:Z?.kind==="chunk"?Z.fenceToken:null,chunk:Q.p};return null}function OP0(){return new TransformStream({transform($,Z){let X=zc4($);if(X)Z.enqueue(X)}})}var wP0="decopilot.stream",pV8="Dp-Frag-Idx",tV8="Dp-Frag-Total",Uc4=33554432,z91,Ec4;var aV8=O(()=>{z91=new TextEncoder;Ec4=new TextDecoder});var LP0=O(()=>{aV8()});var _U="DECOPILOT_STREAMS";var P91=O(()=>{LP0()});function sV8($,Z){return new TransformStream({transform(X,Q){if(X.runId!==$||X.fenceToken!==Z)return;Q.enqueue(X)}})}function eV8(){let $=1;return new TransformStream({transform(Z,X){if(Z.kind==="done"){X.enqueue(Z);return}if(Z.seq===null){X.error(Error("projector chunk missing seq"));return}if(Z.seq<$)return;if(Z.seq>$){X.error(new Oa($,Z.seq));return}$++,X.enqueue(Z)}})}function $C8($){let Z=$.getReader(),X=!1,Q=0,Y=()=>{if(X)return;X=!0,Z.releaseLock()};return new ReadableStream({async pull(G){for(;;){let{done:J,value:K}=await Z.read();if(J){await Z.cancel(),Y(),G.error(Error("reader stopped before done"));return}let W=K;if(W.kind==="done"){if(!(W.envelopeFinalSeq!=null&&W.envelopeFinalSeq===W.msgIdFinalSeq))continue;if(W.envelopeFinalSeq!==Q){await Z.cancel(),Y(),G.error(new Oa(Q+1,null));return}await Z.cancel(),Y(),G.close();return}Q=W.seq??Q,G.enqueue(W.chunk);return}},async cancel(G){await Z.cancel(G),Y()}})}function jc4($){if(Symbol.asyncIterator in $)return $[Symbol.asyncIterator]();let Z=$[Symbol.iterator]();return{next:async()=>Z.next(),return:async(X)=>Z.return?Z.return(X):{done:!0,value:X}}}function EP0($){let Z=jc4($.messages),X=$.idleTimeoutMs,Q=!1,Y=(G)=>{if(Q)return;Q=!0,Z.return?.(G).catch(()=>{}),$.onCancel?.()};return new ReadableStream({async pull(G){if(X===void 0){let{done:N,value:U}=await Z.next();if(N){G.close();return}G.enqueue(U);return}let J=new AbortController,K=Z.next().then((N)=>{return J.abort(),N}),W=h8(X,{signal:J.signal}).then(()=>"idle").catch(()=>"cancelled"),H=await Promise.race([K,W]);if(H==="idle"){G.error(new DP0(X));return}if(H==="cancelled")return;if(H.done){G.close();return}G.enqueue(H.value)},async cancel(G){Y(G)}})}var DP0,Oa;var zP0=O(()=>{s$();DP0=class DP0 extends Error{idleTimeoutMs;constructor($){super("producer produced no output before timeout");this.idleTimeoutMs=$;this.name="StreamIdleTimeoutError"}};Oa=class Oa extends Error{expectedSeq;gotSeq;constructor($,Z){super(Z===null?`missing seq ${$} (stream ended at the fenced done)`:`missing seq ${$} (next delivered is ${Z})`);this.expectedSeq=$;this.gotSeq=Z;this.name="StreamGapError"}}});function Pc4($){let X=EP0({messages:$.messages,idleTimeoutMs:$.idleTimeoutMs,onCancel:$.onDone}).pipeThrough(BP0()).pipeThrough(OP0()).pipeThrough(sV8($.runId,$.fenceToken)).pipeThrough(eV8());return $C8(X)}async function XC8($){let X=await(await $.js.consumers.get(_U,{filter_subjects:lO($.runId),deliver_policy:ZC8.DeliverPolicy.All})).consume();async function*Q(){try{for await(let Y of X)yield{subject:Y.subject,data:Y.data,headers:Y.headers}}finally{X.stop()}}return Pc4({messages:Q(),runId:$.runId,fenceToken:$.fenceToken,idleTimeoutMs:$.idleTimeoutMs,onDone:()=>X.stop()})}var ZC8;var QC8=O(()=>{P91();zP0();LP0();ZC8=S(tD(),1)});async function Ac4($){let X=($.requestMessageId?await $.messageParts.maxCreatedAtMsForMessage($.runId,$.requestMessageId):null)??await $.messageParts.maxCreatedAtMsForRun($.runId);return new jX({storage:$.messageParts,orgId:$.orgId,threadId:$.runId,runId:$.runId,baseTimeMs:(X??Date.now())+1})}async function YC8($){let Z=await Ac4($),X=$.replaceFinal?(Q)=>Z.replaceFinal(Q):(Q)=>Z.emitFinal(Q);return{emitStepParts:(Q)=>Z.emitStepParts(Q),emitFinal:X,emitError:(Q,Y)=>Z.emitError(Q,Y)}}var GC8=O(()=>{hO()});function jP0($,Z){Tc4.add(1,{"org.id":Z??"unknown"})}var Tc4;var JC8=O(()=>{R5();Tc4=D6.createCounter("decopilot.projector.poison_runs",{description:"Number of decopilot runs that exhausted retries and were sent to the DLQ",unit:"{runs}"})});class A91{intervalMs;lastBumpMs=new Map;constructor($=3000){this.intervalMs=$}shouldBump($,Z=Date.now()){let X=this.lastBumpMs.get($);if(X!==void 0&&Z-X<this.intervalMs)return!1;return this.lastBumpMs.set($,Z),!0}clear($){this.lastBumpMs.delete($)}}function KC8($,Z,X,Q){return $.pipeThrough(new TransformStream({transform(Y,G){if(X.shouldBump(Z))Q();G.enqueue(Y)},flush(){X.clear(Z)}}))}function Rc4($){return`liveness: no stream events for ${Math.round($/60000)}m`}function R91($){return $.runFenceToken!==null&&$.runFenceToken!==$.fenceToken}function HC8($){T91=$}function NC8(){if(!T91)throw Error("[projector-workflow] runtime not initialized \u2014 setProjectorWorkflowRuntime() must run before workflows fire");return T91}function UC8(){return NC8()}async function FC8($,Z,X){let Q=NC8(),Y=Q.getJetStream();if(!Y)throw Error("JetStream unavailable");let G=(await Q.messageParts.loadWindow($.runId,{limit:500})).messages.map(WP0);return{chunkCount:0,attempts:1,outcome:await dV8({chunkStream:KC8(await XC8({js:Y,runId:$.runId,fenceToken:$.fenceToken,idleTimeoutMs:$.idleTimeoutMs}),$.runId,Ic4,()=>{Q.bumpProgress({runId:$.runId,orgId:Z}).catch(()=>{})}),persistence:await YC8({messageParts:Q.messageParts,orgId:Z,runId:$.runId,requestMessageId:$.messageId,replaceFinal:!0}),originalMessages:G,errorMessageId:cO($.runId,$.fenceToken),title:{threadId:$.runId,currentThreadTitle:X,persistTitle:async(K,W)=>{await Q.persistTitle($.runId,Z,W),await Q.onTitleUpdated({runId:$.runId,orgId:Z,title:W})}}})}}async function WC8($,Z,X){let Q=await $.resolveRun(Z).catch(()=>null);return Q!==null&&Q.runFenceToken===X&&["completed","failed","requires_action"].includes(Q.status)}async function wC8($,Z,X){let Q=await qc4($,Z);if("skip"in Q)return;let Y=Q.row.orgId,G=Q.row.createdBy??$.runId,J=Q.row.title;try{let{outcome:K}=await X($,Y,J),W=K?.failed?"failed":UP0(K?.finishReason,K?.finalParts);if(W==="failed"){let H=K?.finishReason?`harness reported an error: ${K.finishReason}`:"harness reported an error";if(jP0($.runId,Y),await Z.markRunFailed($.runId,Y,H,"harness"))await Z.recordFailed({runId:$.runId,orgId:Y,distinctId:G,reason:H,kind:"harness"})}else if(W==="requires_action")await Z.markRunRequiresAction($.runId,Y),await Z.clearSynthesizedError($.runId,$.fenceToken);else{if(await Z.completeRunIfNotCompleted($.runId,Y))await Z.recordCompleted({runId:$.runId,orgId:Y,distinctId:G,usage:K?.usage??{inputTokens:0,outputTokens:0,totalTokens:0}});await Z.clearSynthesizedError($.runId,$.fenceToken)}await Z.purgeRun($.runId,$.fenceToken)}catch(K){if(K instanceof Oa){if(await WC8(Z,$.runId,$.fenceToken)){await Z.clearSynthesizedError($.runId,$.fenceToken),await Z.purgeRun($.runId,$.fenceToken);return}let F=`stream truncated before projection could replay it: ${K.message}`;if(jP0($.runId,Y),await Z.markRunFailed($.runId,Y,F,"projection"))await Z.recordFailed({runId:$.runId,orgId:Y,distinctId:G,reason:F,kind:"projection"});await Z.purgeRun($.runId,$.fenceToken);return}let W=K instanceof DP0;if(W&&await WC8(Z,$.runId,$.fenceToken)){await Z.purgeRun($.runId,$.fenceToken);return}let H=W?Rc4(K.idleTimeoutMs):K instanceof Error?K.message:String(K),N=W?"liveness":"projection";if(jP0($.runId,Y),await Z.markRunFailed($.runId,Y,H,N))await Z.recordFailed({runId:$.runId,orgId:Y,distinctId:G,reason:H,kind:N});if(W)await Z.clearSynthesizedError($.runId,$.fenceToken);throw K}}async function qc4($,Z){let X=await Z.resolveRun($.runId);if(!X)return{skip:"missing"};if(R91({status:X.status,runFenceToken:X.runFenceToken,fenceToken:$.fenceToken}))return{skip:"stale",row:X};if(X.version!==2)return{skip:"legacy-v1",row:X};return{row:X}}var T91=null,Ic4;var I91=O(()=>{mV8();QC8();zP0();GC8();JC8();O91();Ic4=new A91});function BC8($,Z){switch($.type){case"START":{let X={type:"RUN_STARTED",taskId:$.taskId,orgId:$.orgId,userId:$.userId,abortController:$.abortController,runConfig:$.runConfig,podId:$.podId,messageId:$.messageId};if(Z?.status.tag==="running")return[{type:"PREVIOUS_RUN_ABORTED",taskId:$.taskId,orgId:Z.orgId},X];return[X]}case"STEP_DONE":{if(Z?.status.tag!=="running")return[];return[{type:"STEP_COMPLETED",taskId:$.taskId,orgId:Z.orgId,stepCount:Z.status.stepCount+1}]}case"FINISH":{if(Z==null||Z.status.tag!=="running")return[];let{stepCount:X}=Z.status;if($.threadStatus==="completed")return[{type:"RUN_COMPLETED",taskId:$.taskId,orgId:Z.orgId,stepCount:X}];if($.threadStatus==="requires_action")return[{type:"RUN_REQUIRES_ACTION",taskId:$.taskId,orgId:Z.orgId,stepCount:X}];return[{type:"RUN_FAILED",taskId:$.taskId,orgId:Z.orgId,reason:"error"}]}case"CANCEL":{if(Z?.status.tag!=="running")return[];return[{type:"RUN_FAILED",taskId:$.taskId,orgId:Z.orgId,reason:"cancelled"}]}case"RESUME":{if(Z?.status.tag==="running")return[];return[{type:"RUN_RESUMED",taskId:$.taskId,orgId:$.orgId,userId:$.userId,abortController:$.abortController,podId:$.podId}]}case"FORCE_FAIL":{if($.reason==="ghost")return[{type:"RUN_FAILED",taskId:$.taskId,orgId:Z?.orgId??$.orgId,reason:$.reason,expectedFenceToken:$.expectedFenceToken??null}];if(Z?.status.tag!=="running")return[];return[{type:"RUN_FAILED",taskId:$.taskId,orgId:Z.orgId,reason:$.reason}]}}}function OC8($,Z,X=new Date){switch(Z.type){case"RUN_STARTED":return{taskId:Z.taskId,orgId:Z.orgId,userId:Z.userId,status:{tag:"running",abortController:Z.abortController,stepCount:0,startedAt:X}};case"RUN_RESUMED":return{taskId:Z.taskId,orgId:Z.orgId,userId:Z.userId,status:{tag:"running",abortController:Z.abortController,stepCount:0,startedAt:X}};case"STEP_COMPLETED":if($?.status.tag!=="running")return $;return{...$,status:{...$.status,stepCount:Z.stepCount}};case"RUN_COMPLETED":return;case"RUN_REQUIRES_ACTION":return;case"RUN_FAILED":return;case"PREVIOUS_RUN_ABORTED":return}}async function LC8($,Z,X,Q){let{storage:Y,sseHub:G}=Q,J=await Y.get($,Z);G.emit(Z,JW($,X,{virtualMcpId:J?.virtual_mcp_id??void 0,createdBy:J?.created_by,triggerId:J?.trigger_id,title:J?.title,branch:J?.branch??null,harnessId:J?.harness_id??void 0,createdAt:J?.created_at,updatedAt:J?.updated_at})),G.emit(Z,p90($,X))}async function kc4($,Z){let{storage:X,sseHub:Q}=Z;switch($.type){case"RUN_STARTED":{await X.update($.taskId,$.orgId,{status:"in_progress",run_config:$.runConfig??null,run_started_at:new Date().toISOString(),last_progress_at:null,failure_reason:null,failure_kind:null});let Y=await X.get($.taskId,$.orgId);Q.emit($.orgId,JW($.taskId,"in_progress",{virtualMcpId:Y?.virtual_mcp_id??void 0,createdBy:Y?.created_by,triggerId:Y?.trigger_id,title:Y?.title,branch:Y?.branch??null,harnessId:Y?.harness_id??void 0,createdAt:Y?.created_at,updatedAt:Y?.updated_at,messageId:$.messageId}));return}case"RUN_RESUMED":{await X.update($.taskId,$.orgId,{status:"in_progress",run_started_at:new Date().toISOString(),last_progress_at:null,failure_reason:null,failure_kind:null});let Y=await X.get($.taskId,$.orgId);Q.emit($.orgId,JW($.taskId,"in_progress",{virtualMcpId:Y?.virtual_mcp_id??void 0,createdBy:Y?.created_by,triggerId:Y?.trigger_id,title:Y?.title,branch:Y?.branch??null,harnessId:Y?.harness_id??void 0,createdAt:Y?.created_at,updatedAt:Y?.updated_at}));return}case"STEP_COMPLETED":Q.emit($.orgId,gm0($.taskId,$.stepCount));return;case"RUN_COMPLETED":await LC8($.taskId,$.orgId,"completed",Z);return;case"RUN_REQUIRES_ACTION":await LC8($.taskId,$.orgId,"requires_action",Z);return;case"RUN_FAILED":{if($.reason==="ghost"){if(!await X.forceFailIfInProgress($.taskId,$.orgId,$.expectedFenceToken))return;await X.update($.taskId,$.orgId,{run_config:null,run_started_at:null})}else{if(!await X.forceFailIfInProgress($.taskId,$.orgId))return;await X.update($.taskId,$.orgId,{run_config:null,run_started_at:null,...$.reason==="reaped"?{failure_reason:Mc4,failure_kind:"stall"}:{}})}let Y=await X.get($.taskId,$.orgId);Q.emit($.orgId,JW($.taskId,"failed",{virtualMcpId:Y?.virtual_mcp_id??void 0,createdBy:Y?.created_by,triggerId:Y?.trigger_id,title:Y?.title,branch:Y?.branch??null,harnessId:Y?.harness_id??void 0,createdAt:Y?.created_at,updatedAt:Y?.updated_at})),Q.emit($.orgId,p90($.taskId,"failed"));return}case"PREVIOUS_RUN_ABORTED":return}}async function DC8($,Z){for(let{event:X}of $)await kc4(X,Z)}var Mc4="Run stalled \u2014 no progress within the idle timeout window";var EC8=O(()=>{R6()});function zC8($){return $.now-$.lastProgressAt>$.idleTimeoutMs}function jC8($){return Math.max($.persistedLastProgressAt??Number.NEGATIVE_INFINITY,$.currentRunStartedAt)}class M91{deps;clock;states=new Map;reaperTimer=null;constructor($,Z=()=>new Date){this.deps=$;this.clock=Z;this.reaperTimer=setInterval(()=>{this.reapStaleRuns().catch((X)=>{console.error("[RunRegistry] Reaper sweep failed",X)})},Sc4)}async execute($){let Z=this.dispatch($);return await this.react(Z),Z}dispatch($){let Z=this.states.get($.taskId),X=BC8($,Z),Q=[];for(let Y of X){let G=this.states.get(Y.taskId);if(Y.type==="PREVIOUS_RUN_ABORTED"||Y.type==="RUN_FAILED"){if(G?.status.tag==="running")G.status.abortController.abort()}let J=OC8(G,Y,this.clock());if(J===void 0)this.states.delete(Y.taskId);else this.states.set(Y.taskId,J);if(Q.push({event:Y,state:J}),Vc4.has(Y.type))PC8().add(1,{"org.id":Y.orgId});else if(Cc4.has(Y.type)&&G?.status.tag==="running")PC8().add(-1,{"org.id":Y.orgId})}return Q}react($){return DC8($,this.deps)}getAbortSignal($){let Z=this.states.get($);if(Z?.status.tag==="running")return Z.status.abortController.signal;return null}isRunning($){return this.states.get($)?.status.tag==="running"}async stopAll(){for(let[,$]of this.states)if($.status.tag==="running")$.status.abortController.abort();this.states.clear()}dispose(){if(this.reaperTimer)clearInterval(this.reaperTimer),this.reaperTimer=null}async reapStaleRuns(){let $=this.clock().getTime(),Z=[...this.states].filter(([,X])=>X.status.tag==="running");for(let[X,Q]of Z){if(this.states.get(X)?.status.tag!=="running")continue;let G;try{let K=await this.deps.storage.getProgress(X,Q.orgId);G=jC8({persistedLastProgressAt:K?.lastProgressAt??null,currentRunStartedAt:Q.status.startedAt.getTime()})}catch(K){console.warn(`[RunRegistry] Reaper progress read failed for ${X}; skipping`,K);continue}if(!zC8({lastProgressAt:G,now:$,idleTimeoutMs:PP0}))continue;let J=await this.deps.storage.get(X,Q.orgId).catch(()=>null);if(J&&J.status!=="in_progress"){let K=this.states.get(X);if(K?.status.tag==="running")K.status.abortController.abort();this.states.delete(X);continue}console.warn(`[RunRegistry] Reaping stuck run for thread ${X} (idle > ${PP0/60000}m) ...`),_c4().add(1,{"org.id":Q.orgId,reason:"idle_timeout"}),await this.execute({type:"FORCE_FAIL",taskId:X,reason:"reaped"}).catch((K)=>{console.error("[RunRegistry] Reaper execute failed",K)})}}}var Sc4=300000,q91,PP0,Vc4,Cc4,AC8=($)=>{let Z;return()=>Z??=$()},PC8,_c4;var k91=O(()=>{EC8();R5();q91=Number(process.env.RUN_IDLE_TIMEOUT_MS),PP0=Number.isFinite(q91)&&q91>0?q91:600000,Vc4=new Set(["RUN_STARTED","RUN_RESUMED"]),Cc4=new Set(["RUN_COMPLETED","RUN_FAILED","RUN_REQUIRES_ACTION","PREVIOUS_RUN_ABORTED"]),PC8=AC8(()=>D6.createUpDownCounter("decopilot.stream.inflight",{description:"Number of in-flight decopilot stream requests",unit:"{requests}"})),_c4=AC8(()=>D6.createCounter("decopilot.run.reaped",{description:"Number of decopilot runs force-failed by the progress-based reaper",unit:"{runs}"}))});async function TC8($){let{runId:Z}=$,X=UC8(),Q=await X.resolveRun(Z),Y=$.fenceToken??Q?.runFenceToken;if(!Q||Q.version!==2||Y==null)return;if(R91({status:Q.status,runFenceToken:Q.runFenceToken,fenceToken:Y}))return;if(!X.getJetStream())throw Error("JetStream unavailable for consume step");await wC8({runId:Z,fenceToken:Y,messageId:$.messageId,idleTimeoutMs:$.idleTimeoutMs??PP0},X,FC8)}var RC8=O(()=>{I91();k91()});var AP0,dO,IC8=()=>({active:dO.active,pending:dO.pending,max:AP0}),qC8=($)=>{if(dO.active>=AP0)console.log("[hostedHarness] run parked at concurrency cap",{active:dO.active,pending:dO.pending,max:AP0}),$?.();return dO.acquire()};var S91=O(()=>{h51();y8();R5();AP0=Q1().decopilotMaxConcurrentHostedRuns,dO=g51(AP0);D6.createObservableGauge("hosted_runs.active",{description:"Hosted agent-loop runs executing on this pod",unit:"{runs}"}).addCallback(($)=>$.observe(dO.active));D6.createObservableGauge("hosted_runs.pending",{description:"Hosted agent-loop runs parked waiting for a slot on this pod",unit:"{runs}"}).addCallback(($)=>$.observe(dO.pending))});import{DBOS as c_}from"@dbos-inc/dbos-sdk";function _91($){V91=$}function kC8(){if(!V91)throw Error("[hostedHarness] runtime not initialized \u2014 setHostedHarnessRuntime() must run before workflows fire");return V91}async function xc4($,Z){let X=kC8(),{request:Q}=$,Y=Z??await X.studioContextFactory(Q.organizationId,Q.userId);if(!Y)throw Error("user membership lost mid-dispatch");if(Q.runMetadata)Y.metadata.runMetadata=Q.runMetadata;let G=new AbortController,J=!1,K=new wa({emit:()=>MC8(X,$)}),W=await qC8(()=>{J=!0,MC8(X,$),K.arm()}).finally(()=>K.stop());try{if(J&&await vc4($))throw Error("run cancelled while queued for a free runner");if(th(Y,"in_progress",$.threadId),!Q.runMetadata?.taskBoardItemId)GS8(Y,$.threadId);await X.dispatchRunFn({...Q,abortSignal:G.signal},Y,X.deps)}finally{W()}}async function vc4($){try{return(await c_.getWorkflowStatus(x91($.runId,$.fenceToken)))?.status==="CANCELLED"}catch(Z){return console.error(`[hostedHarness] could not read child status for run=${$.runId} fence=${$.fenceToken}`,Z),!1}}function fc4($,Z,X,Q=1){let Y=X instanceof Error?X.message:String(X);return{messageId:cO($,Z),errorChunk:{type:"error",errorText:Y},seq:Q,finalSeq:Q}}function bc4($){if(!($ instanceof Error))return;let Z=$.lastAckSeq;return typeof Z==="number"?Z+1:void 0}async function yc4($,Z){let X=kC8(),{streamBuffer:Q}=X.deps,{messageId:Y,errorChunk:G,seq:J,finalSeq:K}=fc4($.runId,$.fenceToken,Z,bc4(Z));if(!Q){console.error(`[hostedHarness] no streamBuffer configured; dropping terminal error for run=${$.runId} fence=${$.fenceToken} messageId=${Y}`);return}if(!await Q.publishRawChunk($.runId,G,{fenceToken:$.fenceToken,seq:J})){console.error(`[hostedHarness] failed to publish terminal error chunk for run=${$.runId} fence=${$.fenceToken} messageId=${Y}`);return}await Q.publishDone($.runId,$.fenceToken,K)}async function gc4($){try{await c_.runStep(()=>xc4($),{name:"runHostedHarness",retriesAllowed:!1})}catch(Z){await c_.runStep(()=>yc4($,Z),{name:"publishHostedHarnessFailure",retriesAllowed:!0}).catch((X)=>{console.error(`[hostedHarness] could not publish terminal error for run=${$.runId} fence=${$.fenceToken}`,X)})}}function x91($,Z){return`decopilot-hosted:${$}:${Z}`}async function SC8($){return{workflowID:(await c_.startWorkflow(hc4,{workflowID:x91($.runId,$.fenceToken),queueName:DN,enqueueOptions:{queuePartitionKey:$.threadId}})($)).workflowID}}async function v91($,Z){await c_.cancelWorkflow(x91($,Z))}var C91=1,V91=null,MC8=($,Z)=>UK($.deps.streamBuffer,Z.runId,"waiting-capacity"),hc4;var f91=O(()=>{L91();$u();S91();HQ();hc4=c_.registerWorkflow(gc4,{name:"hostedHarnessWorkflow",maxRecoveryAttempts:1000})});import{DBOS as Qu}from"@dbos-inc/dbos-sdk";function g91($){E91($)}function h91($){b91=$}function uc4(){if(!b91)throw Error("[threadGate] runtime not initialized \u2014 setThreadGateRuntime() must run before workflows fire");return b91}function cc4($,Z=JP0){let X=$.runFenceToken;if(X)return{runFenceToken:X,claimedRequest:$,shouldPersistFence:!1};let Q=Z();return{runFenceToken:Q,claimedRequest:{...$,runFenceToken:Q},shouldPersistFence:!0}}async function lc4($){let Z=uc4(),{request:X}=$,Q=X.taskId??$.threadId;if(IV8({harnessId:X.harnessId}))await UK(Z.deps.streamBuffer,Q,"starting-run");let Y=await Z.studioContextFactory(X.organizationId,X.userId);if(!Y)throw Error("user membership lost mid-dispatch");g91(X.harnessId);let G=X.taskId??$.threadId,{runFenceToken:J,claimedRequest:K,shouldPersistFence:W}=cc4(X);if(W)await Y.storage.threads.setRunFence(G,J);return{runFenceToken:J,hostedEnqueue:{runId:Q,fenceToken:J,threadId:$.threadId,request:K}}}async function dc4($){if($.source!=="user-message")return;let{request:Z}=$;i1.capture({distinctId:Z.userId,event:"chat_message_started",groups:{organization:Z.organizationId},properties:{organization_id:Z.organizationId,agent_id:Z.agent,mode:Z.mode,thread_id:Z.taskId??$.threadId,credential_id:Z.models.credentialId}})}async function mc4($,Z){if($.source!=="user-message")return;let{request:X}=$;i1.capture({distinctId:X.userId,event:"chat_message_failed",groups:{organization:X.organizationId},properties:{organization_id:X.organizationId,thread_id:X.taskId??$.threadId,agent_id:X.agent,model_id:X.models.thinking.id,mode:X.mode,error_category:"setup",error_message:Z}})}async function TP0($){g91($.request.harnessId),await Qu.runStep(()=>dc4($),{name:"trackMessageStarted"});let Z;try{Z=await Qu.runStep(()=>lc4($),{name:"dispatchRunAndWait",retriesAllowed:!0}),await SC8(Z.hostedEnqueue)}catch(Y){let G=Y instanceof Error?Y.message:String(Y);throw await Qu.runStep(()=>mc4($,G),{name:"trackMessageFailed"}),Y}let X=$.request.taskId??$.threadId,Q="messages"in $.request?void 0:$.request.messageId;return await Qu.runStep(()=>TC8({runId:X,fenceToken:Z.runFenceToken,messageId:Q}),{name:"consumeRunProjection"}),{taskId:$.request.taskId??$.threadId}}async function ic4($){return TP0($)}async function CU($,Z){return g91($.request.harnessId),{workflowID:(await Qu.startWorkflow(nc4,{queueName:YJ,enqueueOptions:{queuePartitionKey:$.threadId},workflowID:Z?.workflowID})($)).workflowID}}var y91=1,b91=null,nc4;var VC8=O(()=>{FP0();V$();$u();RC8();f91();nc4=Qu.registerWorkflow(ic4,{name:"threadGateWorkflow",maxRecoveryAttempts:1000})});var u_=O(()=>{VC8();f91()});async function La($,Z,X){let Q=Z.organizationId,Y=Z.assignedBy??Z.createdBy,G=X.harnessId??"decopilot",J=await EX($,"smart"),K=$E(Q),W=await $.storage.threads.create({organization_id:Q,title:X.title,status:"in_progress",virtual_mcp_id:K,message_storage_version:2,harness_id:G,sandbox_provider_kind:"agent-sandbox",created_by:Y}),H={...W.metadata??{},...fO(G)?{read_only:!0}:{},...X.repo?{githubRepo:{url:X.repo.url,owner:X.repo.owner,name:X.repo.name,installationId:X.repo.installationId,connectionId:X.repo.connectionId}}:{}},N=X.repo?HK(W.id,X.repo.connectionId):fO(G)?HK(W.id):null;await $.storage.threads.update(W.id,{metadata:H,...N?{branch:N}:{},updated_by:Y}),await $.storage.taskBoard.linkThread(Z.id,W.id,Q);let U={id:crypto.randomUUID(),role:"user",parts:[{type:"text",text:X.prompt}]};return await new jX({storage:$.storage.threads.messageParts(),orgId:Q,threadId:W.id,runId:W.id}).emitRequestMessage(U),await CU({threadId:W.id,source:"background-tool",request:{messages:[U],models:{credentialId:J.credentialId,thinking:{id:J.modelId,title:J.modelMeta.title}},agent:{id:K},temperature:X.temperature,toolApprovalLevel:"auto",mode:"default",organizationId:Q,userId:Y,harnessId:G,sandboxProviderKind:"agent-sandbox",...X.repo?{}:N?{branch:N}:{},taskId:W.id,runMetadata:Dj0(Z)}}),{threadId:W.id}}var u91=O(()=>{$a();xO();u_();hO();R6();NK();Rj0()});function pc4($){let Z=new Map($.map((G)=>[G.id,G])),X=new Map;for(let G of ch($)){let J=CC8(G.owner,G.repo);X.set(J,[...X.get(J)??[],G])}if(X.size!==1)return null;let Q=[...X.values()][0],Y=Q.find((G)=>{let J=Z.get(G.connectionId);return J?Yh(J):!1})??Q[0];return{connectionId:Y.connectionId,owner:Y.owner,name:Y.repo,installationId:Y.installationId,url:`https://github.com/${Y.owner}/${Y.repo}`}}async function _C8($,Z){try{let{items:X}=await $.storage.connections.list(Z,{slug:"mcp-github"}),Q=pc4(X);if(Q)return{repo:Q};let Y=new Map;for(let J of ch(X)){let K=CC8(J.owner,J.repo);if(!Y.has(K))Y.set(K,{connectionId:J.connectionId,repo:`${J.owner}/${J.repo}`})}let G=Y;if(G.size===0)return console.warn(`[task-board] claude-code skipped for org ${Z}: `+"no importable repos \u2014 running Decopilot"),null;return console.warn(`[task-board] claude-code for org ${Z}: ${G.size} importable repos \u2014 the run picks one with TASK_ADD_REPO`),{choices:[...G.values()]}}catch(X){return console.warn("[task-board] repo lookup for claude-code failed",X),null}}function xC8($,Z,X){let Q=["You've been assigned this task. Complete it and finish with a pull request.","","You are running AUTONOMOUSLY \u2014 no human is watching, so drive this to "+"completion yourself. Make reasonable decisions and move on; do not stop to ask for confirmation.","",`Title: ${$.title}`];if($.description)Q.push("","Description:",$.description);if(Q.push("",Z?`The repository ${Z.owner}/${Z.name} is already cloned at your working directory, on its own branch. \`git\` and \`gh\` are authenticated.`:["Your working directory is EMPTY: this organization has several repositories, so nothing has been cloned yet. FIRST call `mcp__studio__TASK_ADD_REPO` with the connectionId of the repository this task is about. It clones that repository into your working directory and waits for the checkout, so once it returns the repository is there on its own branch and `git` and `gh` are authenticated. Do not read files, run `git`, or run `gh` before it returns; there is nothing there yet.","","Repositories in this organization:",...(X?.repoChoices??[]).map((Y)=>`- ${Y.repo} (connectionId: ${Y.connectionId})`),X?.repoChoices?.length?"Pick the one the task is about. If the task doesn't say and the names don't settle it, take the first.":"Call `mcp__studio__TASK_ADD_REPO` with no arguments to list them."].join(`
|
|
2781
2781
|
`),""),X?.resolveConflict&&X.pr)Q.push(`Pull request #${X.pr.number} (${X.pr.url}) is approved but has a MERGE CONFLICT with its base branch.`,`Check that branch out (\`gh pr checkout ${X.pr.number}\`), merge or rebase the base branch into it, resolve the conflicts, and push to update the SAME pull request \u2014 do NOT open a new one. Resolve by preserving BOTH sides' intent; never blindly discard either side, and change only what the conflict requires.`,"");else if(X?.feedback)Q.push(X.pr?`A reviewer requested changes on pull request #${X.pr.number} (${X.pr.url}):`:"A reviewer requested changes on your previous work:",X.feedback,X.pr?`Check that branch out (\`gh pr checkout ${X.pr.number}\`) before editing, address the feedback, then push to update the SAME pull request \u2014 do NOT open a new one.`:"Address this feedback.","");return Q.push("How to finish:","- Make the change, commit it, push the branch, and open a pull request"+(X?.pr?" \u2014 or push to the existing one, per the instruction above.":"."),"- Change only what the task needs. Don't refactor around it.",`- Then move this task to review on the board: call \`mcp__studio__TASK_BOARD_ITEM_UPDATE\` with id "${$.id}" and status "in_review". Pass ONLY the fields you are changing.`,"- If the task turns out to need no code change, say why in your final message and move it to review anyway so a human can close it out.",`- Anything a reviewer should know (a decision you made, something you found and deliberately left alone, a question) goes on the task as a comment: \`mcp__studio__TASK_BOARD_COMMENT_CREATE\` with taskBoardItemId "${$.id}". Read what's already there first with \`mcp__studio__TASK_BOARD_COMMENT_LIST\` \u2014 a comment may be addressed to you.`,"",`(task id: ${$.id})`),Q.join(`
|
|
2782
2782
|
`)}var CC8=($,Z)=>`${$}/${Z}`.toLowerCase();var vC8=O(()=>{Bj0();lW()});async function Yu($,Z){if(Z.assigneeId!==B5)return;await Da($,Z).catch((X)=>{if(X instanceof R3)throw X;console.error("[task-board] Super Agent enqueue failed",X)})}function tc4($,Z){return["You've been assigned this task. Complete it.","","You are running AUTONOMOUSLY \u2014 no human is watching this run, so drive it "+"to completion on your own. Use `user_ask` ONLY for a genuine, unresolvable blocker a human must clear (a missing credential/secret, or "+"a decision so ambiguous you truly cannot proceed) \u2014 that should be rare. "+"Do not ask for confirmation of a reasonable choice; make it and move on.","",`Title: ${$.title}`,$.description?`
|
|
2783
2783
|
Description:
|