decocms 4.329.7 → 4.329.9
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-B02pIqyO.js → AlertCircle-C3LoifMU.js} +1 -1
- package/dist/client/assets/{AreaChart-DKEbxn8Y.js → AreaChart-CDm5bL_P.js} +1 -1
- package/dist/client/assets/{ArrowLeft-DzuSLuVr.js → ArrowLeft-B1xlMMf7.js} +1 -1
- package/dist/client/assets/{ArrowUp-CQ6SET-t.js → ArrowUp-ClAJQium.js} +1 -1
- package/dist/client/assets/{Check-CnxYOeJk.js → Check-CRib0DYD.js} +1 -1
- package/dist/client/assets/{CheckCircle-Bs1i8n8R.js → CheckCircle-CqjXQQar.js} +1 -1
- package/dist/client/assets/{ChevronRight-Bo_7PLYL.js → ChevronRight-D1ZP1lTE.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-BWdGiimP.js → ChevronSelectorVertical-CtALiTfe.js} +1 -1
- package/dist/client/assets/{ChevronUp-CDlju1TC.js → ChevronUp-DMr_Wd-m.js} +1 -1
- package/dist/client/assets/{Copy01-D5Ill_kE.js → Copy01-CqZdC3Iz.js} +1 -1
- package/dist/client/assets/{CreditCard01-NbxHy6Lv.js → CreditCard01-B_93t25t.js} +1 -1
- package/dist/client/assets/{DotsVertical-DRP3CifW.js → DotsVertical-Cm1eM3WR.js} +1 -1
- package/dist/client/assets/{Download01-DoUNzBPU.js → Download01-DWG0sleJ.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-B06vTGLd.js → ErrorBarContext-C6tA_A4b.js} +1 -1
- package/dist/client/assets/{Eye-COu8umtC.js → Eye-DTZwtLhN.js} +1 -1
- package/dist/client/assets/{GitBranch01-idBGys5s.js → GitBranch01-CaAHRAAs.js} +1 -1
- package/dist/client/assets/{Globe01-CtD7u0-k.js → Globe01-DLIxci_G.js} +1 -1
- package/dist/client/assets/{HardDrive-BVnECxVe.js → HardDrive-Uu4_IDmh.js} +1 -1
- package/dist/client/assets/{Image01-Cy8ZoIiy.js → Image01-uIGiropd.js} +1 -1
- package/dist/client/assets/{Key01-DoBw9G0M.js → Key01-rPnY8MXp.js} +1 -1
- package/dist/client/assets/{Link01-u2EoXuNT.js → Link01-BR5WsLAe.js} +1 -1
- package/dist/client/assets/{LinkExternal01-CBhAp9XW.js → LinkExternal01-DmLtBDzc.js} +1 -1
- package/dist/client/assets/{Monitor01-DmqpK-8S.js → Monitor01-BdeUVVjA.js} +1 -1
- package/dist/client/assets/{Package-CcAuJGku.js → Package-dd8Ej5fp.js} +1 -1
- package/dist/client/assets/{Palette-BOxVbiJL.js → Palette-DeAY5oYq.js} +1 -1
- package/dist/client/assets/{Play-DG2731JJ.js → Play-Btz8ch8N.js} +1 -1
- package/dist/client/assets/{Plus-npiI5-7X.js → Plus-DuAHW1Gi.js} +1 -1
- package/dist/client/assets/{SearchMd-DM9iwGft.js → SearchMd-DwtkgExc.js} +1 -1
- package/dist/client/assets/{Sector-D81Ps0-O.js → Sector-CQ1UQxx5.js} +1 -1
- package/dist/client/assets/{Settings02-C0EhiTe4.js → Settings02-BBjxFEhG.js} +1 -1
- package/dist/client/assets/{Share07-Cp3sAWWN.js → Share07-BqnpVx68.js} +1 -1
- package/dist/client/assets/{Shield01-B0ob1ipu.js → Shield01-D5teTWzy.js} +1 -1
- package/dist/client/assets/{Stars01-BgKhcopx.js → Stars01-_V6kPVkS.js} +1 -1
- package/dist/client/assets/{Sun-e_DnDd3f.js → Sun-CN8rCL7E.js} +1 -1
- package/dist/client/assets/{Tool01-DpeMCocB.js → Tool01-Cfifxqbk.js} +1 -1
- package/dist/client/assets/{Tool02-DMSvrhPC.js → Tool02-DbxYQXJB.js} +1 -1
- package/dist/client/assets/{Trash01-C64jvZUr.js → Trash01-CeiHA_Cf.js} +1 -1
- package/dist/client/assets/{TrendUp01-DBKvZ-DZ.js → TrendUp01-wKu74L0k.js} +1 -1
- package/dist/client/assets/{Upload01-CZcQRY37.js → Upload01-CHJWPT7q.js} +1 -1
- package/dist/client/assets/{User01-DvzdeHqd.js → User01-BDiBNFRN.js} +1 -1
- package/dist/client/assets/{UserSquare-jm1EvWHs.js → UserSquare-BKKMbWcC.js} +1 -1
- package/dist/client/assets/{Users01-HKHLFhfO.js → Users01-DTNX_nQZ.js} +1 -1
- package/dist/client/assets/{Users03-BTZsMKrW.js → Users03-Et2Iq-LT.js} +1 -1
- package/dist/client/assets/{XCircle-DC63K01N.js → XCircle-C8jIOZwA.js} +1 -1
- package/dist/client/assets/{XClose-VJXgkRtY.js → XClose-Xm8e9o2O.js} +1 -1
- package/dist/client/assets/{Zap-Buyt_ZmJ.js → Zap-CydiGRzM.js} +1 -1
- package/dist/client/assets/{ZoomOut-Du-2I-dz.js → ZoomOut-wA1AxiJ4.js} +1 -1
- package/dist/client/assets/{access-gate-CDET83Ra.js → access-gate-Cq4IMSa2.js} +1 -1
- package/dist/client/assets/{agent-icon-Cm-rraMc.js → agent-icon-CPE8YyuT.js} +1 -1
- package/dist/client/assets/{agents-list-B5SZzu6A.js → agents-list-Dtmme4F_.js} +1 -1
- package/dist/client/assets/{ai-providers-CHx-06O5.js → ai-providers-BZazhfxl.js} +1 -1
- package/dist/client/assets/{alert-BDwew5st.js → alert-1d_si55t.js} +1 -1
- package/dist/client/assets/{alert-dialog-EueylpK5.js → alert-dialog-DD8gmLEV.js} +1 -1
- package/dist/client/assets/{analytics-tab-ryTT4iyx.js → analytics-tab-DL1OjuDO.js} +1 -1
- package/dist/client/assets/{api-keys-7J7aATeq.js → api-keys-CpAxzi4a.js} +1 -1
- package/dist/client/assets/api-keys-DJrTLD2M.js +1 -0
- package/dist/client/assets/{app-editor-Lpb2KUNV.js → app-editor-DRQY_wGe.js} +1 -1
- package/dist/client/assets/{auth-BfPf7zhg.js → auth-CKSU3JsT.js} +1 -1
- package/dist/client/assets/{auth-catchall-BMHDjmYl.js → auth-catchall-BsTYpTDz.js} +1 -1
- package/dist/client/assets/{auth-entry-CGeKty09.js → auth-entry-OOarbR_P.js} +1 -1
- package/dist/client/assets/{auth-split-layout-BtoAQGpk.js → auth-split-layout-BTGfNyXQ.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-hh7nuAWR.js → authenticate-and-persist-oauth-05_Aj2HR.js} +1 -1
- package/dist/client/assets/{automation-list-row-B7bEWOhz.js → automation-list-row-DZHqRqWd.js} +1 -1
- package/dist/client/assets/{automation-runs-CkSYrEGR.js → automation-runs-3ggKqNs7.js} +49 -49
- package/dist/client/assets/automations-BlLAqIe8.js +1 -0
- package/dist/client/assets/{avatar-DVuZ2F_T.js → avatar-BS0IyPAV.js} +1 -1
- package/dist/client/assets/{badge-FcNiwbMm.js → badge-CtAQawYl.js} +1 -1
- package/dist/client/assets/{block-document-CHDLnJJB.js → block-document-CjZVKj0w.js} +1 -1
- package/dist/client/assets/{breadcrumb-CWoWChjJ.js → breadcrumb-BCL2Kwa4.js} +1 -1
- package/dist/client/assets/{buckets-C8qQEl1X.js → buckets-CtppbAIz.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-DpDJKk2S.js → bulk-category-panel-DKLu3ji6.js} +1 -1
- package/dist/client/assets/{capability-load-error-DNqhm16P.js → capability-load-error-DIIALIs2.js} +1 -1
- package/dist/client/assets/{cards-Ta4bCObM.js → cards-CBsYAM47.js} +1 -1
- package/dist/client/assets/{category-editor-C96Lbqi0.js → category-editor-Bm8XKvhm.js} +1 -1
- package/dist/client/assets/{cdn-tab-BLY6nu0I.js → cdn-tab-BMufGN6k.js} +1 -1
- package/dist/client/assets/{chart-3ItyUqrn.js → chart-DpOfrAMr.js} +1 -1
- package/dist/client/assets/{chat-context-CALwiBF_.js → chat-context-DylitU6A.js} +1 -1
- package/dist/client/assets/{checkbox-BmYwx8kR.js → checkbox-BXjIirqE.js} +1 -1
- package/dist/client/assets/{choose-editor-57QsZhYS.js → choose-editor-4sfwDsGQ.js} +1 -1
- package/dist/client/assets/{cli-auth-success-mUvYAJQJ.js → cli-auth-success-CwHUCiHn.js} +1 -1
- package/dist/client/assets/{client-icons-CxvuXLIW.js → client-icons-D4B8Mz13.js} +1 -1
- package/dist/client/assets/{collection-detail-DlNIkUmi.js → collection-detail-DHhSzlUe.js} +1 -1
- package/dist/client/assets/{collection-display-button-DYWols_3.js → collection-display-button-BioCX_AB.js} +1 -1
- package/dist/client/assets/{collection-search-BvGAgDld.js → collection-search-DO_p4EqG.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-dVk84KQ8.js → collection-table-wrapper-C7uBo59c.js} +1 -1
- package/dist/client/assets/{collection-tabs-Cd4Vv0EE.js → collection-tabs-FQDiUPHt.js} +1 -1
- package/dist/client/assets/{command-BYns7CwK.js → command-DeVA58FJ.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-8FWzFt9V.js → commerce-onboarding-BKX7YdsD.js} +1 -1
- package/dist/client/assets/{connect-CQyw1evj.js → connect-BRY5NS1A.js} +1 -1
- package/dist/client/assets/{connect-layout-U7Ps2Adr.js → connect-layout-CZzvRMqx.js} +1 -1
- package/dist/client/assets/{connection-CXkee5u6.js → connection-CtWb4rTZ.js} +1 -1
- package/dist/client/assets/{connection-card-CWUJLExI.js → connection-card-sSkeOh9M.js} +1 -1
- package/dist/client/assets/{connection-detail-BSvpvNFK.js → connection-detail-DFoIn0E6.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-D7wCXBEQ.js → connection-form-helpers-CjCc6frD.js} +1 -1
- package/dist/client/assets/{connections-CPI7uE_z.js → connections-Ce1XTF4A.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-DA4SxHbD.js → create-organization-dialog-C_kWgH_k.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-BDzoef2l.js → decopilot-sse-pool-Dc_oXr8h.js} +1 -1
- package/dist/client/assets/{dialog-C9fBgi3G.js → dialog-BIFznZm3.js} +1 -1
- package/dist/client/assets/{domain-settings-DxjLWoQG.js → domain-settings-2op7kQxI.js} +1 -1
- package/dist/client/assets/{download-app-dialog-B6fQdqDO.js → download-app-dialog-BA4Zg8f-.js} +1 -1
- package/dist/client/assets/{drawer-OLnwjI2K.js → drawer-CtAdPy7J.js} +1 -1
- package/dist/client/assets/{dropdown-menu-tC5c5wq-.js → dropdown-menu-C37VfJ59.js} +1 -1
- package/dist/client/assets/{e2e-tab-CqS9P7Hc.js → e2e-tab-WXvENx_8.js} +1 -1
- package/dist/client/assets/{editor-BjHf7-wi.js → editor-DyArv3FJ.js} +1 -1
- package/dist/client/assets/{empty-state-DgedPbF9.js → empty-state--OBkbBal.js} +1 -1
- package/dist/client/assets/{empty-state-S-1xJrE6.js → empty-state-DSmLsgCN.js} +1 -1
- package/dist/client/assets/{extract-connection-data-CDeabBWK.js → extract-connection-data-wF3Br-pC.js} +1 -1
- package/dist/client/assets/{file-explorer-DJnvxauy.js → file-explorer-Tz4oZVnj.js} +1 -1
- package/dist/client/assets/{file-type-icon-CzKQjLvK.js → file-type-icon-CX9ORitn.js} +1 -1
- package/dist/client/assets/{folder-icon-CA44zIJR.js → folder-icon-BUAMuIJo.js} +1 -1
- package/dist/client/assets/{form-BXpGp03G.js → form-CK_lIk7s.js} +1 -1
- package/dist/client/assets/{general-bt8cU3dV.js → general-uOO6AYK8.js} +1 -1
- package/dist/client/assets/{github-repo-picker-Bo27g0p4.js → github-repo-picker-TX2CWT3P.js} +1 -1
- package/dist/client/assets/{hooks-CV5SIncY.js → hooks-Dv3PpADk.js} +1 -1
- package/dist/client/assets/{hosting-tab-CsMIP4FI.js → hosting-tab-DTF_9cjU.js} +1 -1
- package/dist/client/assets/{index-BraqwIq2.js → index-9xpznWaq.js} +1 -1
- package/dist/client/assets/{index-BqzhWoLb.js → index-BaLS9mjA.js} +1 -1
- package/dist/client/assets/{index-D-HXwBw8.js → index-C1ThefqC.js} +1 -1
- package/dist/client/assets/{index-B0rGGILq.js → index-CMu2jKL9.js} +1 -1
- package/dist/client/assets/{index-0aQAAJf0.js → index-ClRahW5l.js} +1 -1
- package/dist/client/assets/{index-CNfEIUn0.js → index-DIoG5Nzm.js} +2 -2
- package/dist/client/assets/{index-CrPwkVjC.js → index-DrWCPBsu.js} +1 -1
- package/dist/client/assets/{index-BoFDLZ6p.js → index-EEBcPxzK.js} +6 -6
- package/dist/client/assets/{index-Dr2i8l8p.js → index-d_2S8ony.js} +1 -1
- package/dist/client/assets/{index-redirect-CXMszyV9.js → index-redirect-DSiIg2Aa.js} +1 -1
- package/dist/client/assets/{index-CReyG0_9.js → index-zmYpYC9e.js} +1 -1
- package/dist/client/assets/{infra-billing-B9EzHEgn.js → infra-billing-69mIk1VP.js} +1 -1
- package/dist/client/assets/{input-CxZ-2GPj.js → input-B3ER89GU.js} +1 -1
- package/dist/client/assets/{integration-icon-BRZ0l9mu.js → integration-icon-Dhw6uO2L.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-DT1qyQ4y.js → invite-member-dialog-8SU0VJal.js} +1 -1
- package/dist/client/assets/{label-BBk0UNMj.js → label-BCOu20U5.js} +1 -1
- package/dist/client/assets/{layout-Bzk-ee8j.js → layout-Cvs_I42t.js} +1 -1
- package/dist/client/assets/{login-Dukc_kdh.js → login-P7bQsRN6.js} +1 -1
- package/dist/client/assets/{markdown-CBbWAQAJ.js → markdown-B1UHHM2w.js} +1 -1
- package/dist/client/assets/{mcp-oauth-BTxNcy48.js → mcp-oauth-3DlwOsvC.js} +1 -1
- package/dist/client/assets/{members-C8NuwGvm.js → members-PuWi75Iq.js} +1 -1
- package/dist/client/assets/{monaco-editor-DazsPMf1.js → monaco-editor-C35vQ6TU.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-CF0wwnO8.js → monitoring-stats-row-Cyyvr64v.js} +1 -1
- package/dist/client/assets/{multi-select-D8btj7Ad.js → multi-select-CSpGSNnV.js} +1 -1
- package/dist/client/assets/{oauth-callback-TXOLa-g7.js → oauth-callback-H6KXAZUX.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-D7uzBtqi.js → oauth-callback-ai-provider-Bnd7NmMV.js} +1 -1
- package/dist/client/assets/{onboarding-Dcdgez7W.js → onboarding-Ci8NOzEM.js} +1 -1
- package/dist/client/assets/org-layout-DElTO9q0.js +1 -0
- package/dist/client/assets/{organization-choice-lamU-teH.js → organization-choice-CCvKP5-m.js} +1 -1
- package/dist/client/assets/{orgs-D3W0G3Lo.js → orgs-Fs1TSSXd.js} +1 -1
- package/dist/client/assets/{page-seo-form-Ctlc9vTL.js → page-seo-form-DIStXbQF.js} +1 -1
- package/dist/client/assets/{popover-CxFVXm-T.js → popover-CMt7ScML.js} +1 -1
- package/dist/client/assets/{post-calendar-vz5_mjGB.js → post-calendar-BXASG_XF.js} +1 -1
- package/dist/client/assets/{post-editor-BIYWa81Q.js → post-editor-usPnnznb.js} +1 -1
- package/dist/client/assets/{primitives-wsknTEcb.js → primitives-CGvINqkE.js} +1 -1
- package/dist/client/assets/{profile-CCYT_2sA.js → profile-CHhLzHqm.js} +1 -1
- package/dist/client/assets/{project-app-view-CLQMFT-S.js → project-app-view-DKsoF9KE.js} +1 -1
- package/dist/client/assets/{project-icon-Da5qBAn7.js → project-icon-zQ71aK6_.js} +1 -1
- package/dist/client/assets/{prompts-zFhQIBym.js → prompts-Dxu8B2jv.js} +1 -1
- package/dist/client/assets/record-editor-fS_XUrDG.js +1 -0
- package/dist/client/assets/{redirect-editor-Dnqqv4DM.js → redirect-editor-B0GL2-VI.js} +1 -1
- package/dist/client/assets/registry-BaeKs9f0.js +2 -0
- package/dist/client/assets/{registry-layout-DHuWNN39.js → registry-layout-C968nUGe.js} +1 -1
- package/dist/client/assets/{reports-BtLy2yaF.js → reports-DGXzAhUl.js} +1 -1
- package/dist/client/assets/{require-capability-DYq0fdEP.js → require-capability-D-jq44dD.js} +1 -1
- package/dist/client/assets/{required-auth-layout-BH79UCBF.js → required-auth-layout-Cb1jXi5Q.js} +1 -1
- package/dist/client/assets/{reset-password-CtDPHNXj.js → reset-password-ClAymL8k.js} +1 -1
- package/dist/client/assets/{review-settings-BB2nSALo.js → review-settings-hu-gYYYY.js} +1 -1
- package/dist/client/assets/{roles-CXSZQVw3.js → roles-C2D1oNwm.js} +1 -1
- package/dist/client/assets/{schema-DO9s-3_3.js → schema-Dk7DmR5a.js} +1 -1
- package/dist/client/assets/{scroll-area-Bga4xYk7.js → scroll-area-DBm8Zg_x.js} +1 -1
- package/dist/client/assets/{search-input-CNFZM5Ki.js → search-input-C33OeTuG.js} +1 -1
- package/dist/client/assets/{secrets-BUpBecaC.js → secrets-BcRhexXX.js} +1 -1
- package/dist/client/assets/{sections-editor-laKQjgs_.js → sections-editor-Dz0cOD7v.js} +1 -1
- package/dist/client/assets/{select-D5c8Otgi.js → select-O-Se58mM.js} +1 -1
- package/dist/client/assets/{select-model-B4IX9QyY.js → select-model-Cd6ICjyE.js} +1 -1
- package/dist/client/assets/{self-tool-result-PbyB4K2F.js → self-tool-result-BhjRI4OY.js} +1 -1
- package/dist/client/assets/{seo-editor-C-OX56j8.js → seo-editor-BUIpJLVV.js} +1 -1
- package/dist/client/assets/settings-layout-CSkBbDyt.js +1 -0
- package/dist/client/assets/{settings-sidebar-BedGL_Ku.js → settings-sidebar-CQ1aAA-S.js} +1 -1
- package/dist/client/assets/{shell-controls-DT_IXnne.js → shell-controls-BlbYUBa1.js} +1 -1
- package/dist/client/assets/{shell-layout-zuPHJJxr.js → shell-layout-C_TEKmkm.js} +1 -1
- package/dist/client/assets/{skill-preview-Cds7l0IB.js → skill-preview-DTwyXcxp.js} +1 -1
- package/dist/client/assets/{skills-p_SYs6Ch.js → skills-CQg-jY0q.js} +1 -1
- package/dist/client/assets/{sso-JyaPp7fH.js → sso-BTGZw929.js} +1 -1
- package/dist/client/assets/{store-Bgn_Isxj.js → store-Duwv96-m.js} +1 -1
- package/dist/client/assets/store-registry-CjeaHFsT.js +2 -0
- package/dist/client/assets/{switch-C3EYj7hN.js → switch-DN6L7pZ8.js} +1 -1
- package/dist/client/assets/{synced-repos-BmK-DcLv.js → synced-repos-C_ygkA-Z.js} +1 -1
- package/dist/client/assets/{table-DEic8MLd.js → table-DGED2-oV.js} +1 -1
- package/dist/client/assets/{tabs-iA_HLM1O.js → tabs-qHv1d8oo.js} +1 -1
- package/dist/client/assets/{task-board-Cw4I7XsI.js → task-board-k97eyP2H.js} +1 -1
- package/dist/client/assets/{task-route-C2MKBcLF.js → task-route-BERNM1EV.js} +1 -1
- package/dist/client/assets/{tasks-Dt9zTeRV.js → tasks-O1E9rRmi.js} +1 -1
- package/dist/client/assets/{textarea-BsDleKsG.js → textarea-BbMVdhTn.js} +1 -1
- package/dist/client/assets/{toggle-group-CTRGHvcL.js → toggle-group-qR7WwCzn.js} +1 -1
- package/dist/client/assets/{toolbar-RiMn7tp7.js → toolbar-BPBaAXqU.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-BJhOiNGi.js → toolbar-icon-button-BJozCrFv.js} +1 -1
- package/dist/client/assets/{track-DeADh2iG.js → track-CG4JE7lp.js} +1 -1
- package/dist/client/assets/{types-BXQK2N0O.js → types-CFUtvqwZ.js} +1 -1
- package/dist/client/assets/{use-ai-providers-DfC2UWvW.js → use-ai-providers-DL0YRrHe.js} +1 -1
- package/dist/client/assets/{use-automations-4iFK5nkE.js → use-automations-Ds4HjjM1.js} +1 -1
- package/dist/client/assets/{use-autosave-B8HtQ_kf.js → use-autosave-BUi_34XG.js} +1 -1
- package/dist/client/assets/{use-connection-DNt4swpy.js → use-connection-1ZElPQlS.js} +1 -1
- package/dist/client/assets/{use-copy-BXRFLn2M.js → use-copy-DwaiWxiT.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-D6-1K6Y8.js → use-create-virtual-mcp-DBiPMj7Z.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-BzJT5pgf.js → use-debounced-autosave-CrlGGbA0.js} +1 -1
- package/dist/client/assets/{use-debounced-value-Df4IN6g1.js → use-debounced-value-BkHp8ZQC.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-jW8Ieour.js → use-decopilot-events-D2a6ajEJ.js} +1 -1
- package/dist/client/assets/{use-delete-connection-ByExgudV.js → use-delete-connection-B379gXvX.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-DPPYgxrx.js → use-deployment-admin-CfDE9qIF.js} +1 -1
- package/dist/client/assets/{use-destination-route-2_Kd2h4X.js → use-destination-route-BlILx1Gc.js} +1 -1
- package/dist/client/assets/{use-file-configs-CNLxYc3F.js → use-file-configs-BfdHEl9C.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-Br6HoOld.js → use-infinite-scroll-DwV9LPlS.js} +1 -1
- package/dist/client/assets/{use-join-requests-CNFJW1O4.js → use-join-requests-CETprio3.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-B8KMbW6d.js → use-mcp-auth-status-DeDl63Lc.js} +1 -1
- package/dist/client/assets/{use-mcp-client-CgA8PWhj.js → use-mcp-client-Da8e-_d8.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-CG2uZJ9H.js → use-mcp-prompts-CLFow0WP.js} +1 -1
- package/dist/client/assets/{use-members-4CiFzvQG.js → use-members-DlyrPYOE.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-BhLZN4vX.js → use-navigate-to-agent-EQeauX1Q.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-B2H7C6Ln.js → use-org-auth-client-BfsZ-M6z.js} +1 -1
- package/dist/client/assets/{use-org-sso-CYEN5nc1.js → use-org-sso-J995Ng6-.js} +1 -1
- package/dist/client/assets/{use-organization-roles-du03Yb4v.js → use-organization-roles-EQ3qWfHU.js} +1 -1
- package/dist/client/assets/{use-organization-settings-BRf1OrEm.js → use-organization-settings-DenVKwFP.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-CypROp-b.js → use-panel-navigate-xY92PiXA.js} +1 -1
- package/dist/client/assets/{use-registry-connections-C524bvTW.js → use-registry-connections-BTqpii1e.js} +1 -1
- package/dist/client/assets/{use-secrets-DJHtvR4D.js → use-secrets-Dn6GUcMj.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-DLw35Lgq.js → use-section-preview-base-OA2RwVZn.js} +1 -1
- package/dist/client/assets/{use-status-sounds-v0k0tR6A.js → use-status-sounds-C0H9gTlC.js} +1 -1
- package/dist/client/assets/{use-tags-gMOyjsIi.js → use-tags-Dj5fhd_Z.js} +1 -1
- package/dist/client/assets/{use-view-mode-CR8Vsk8K.js → use-view-mode-8gUnp8xY.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-XPauNnS5.js → use-virtual-mcp-BdzzM_-Q.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-C_Sj0Ine.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-DjGFzQWy.js +1 -0
- package/dist/client/assets/{users-D3_VWp5E.js → users-Ct5OViZj.js} +1 -1
- package/dist/client/assets/{variant-calendar-CLTs6LWA.js → variant-calendar-D0qqLCLI.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-VRf3IsoS.js → view-mode-toggle-Bnltru_2.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +3 -3
- package/dist/server/server.js +3 -3
- package/package.json +1 -1
- package/dist/client/assets/api-keys-BvHSvKut.js +0 -1
- package/dist/client/assets/automations-Dej3hvWY.js +0 -1
- package/dist/client/assets/org-layout-DGy9Vle2.js +0 -1
- package/dist/client/assets/record-editor-bcL0jXd2.js +0 -1
- package/dist/client/assets/registry-37zG_yfw.js +0 -2
- package/dist/client/assets/settings-layout-CVdat1As.js +0 -1
- package/dist/client/assets/store-registry-D9Jao96C.js +0 -2
- package/dist/client/assets/useInfiniteQuery-D4DO3KqU.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-Ccvsai-C.js +0 -1
package/dist/server/server.js
CHANGED
|
@@ -940,7 +940,7 @@ ${F}`:F;return{...J,description:H,inputExamples:Q?void 0:J.inputExamples}});retu
|
|
|
940
940
|
`).trimEnd()}function r74($){let Z=$.userName.trim(),Q=$.userEmail?.trim();if(Q)return`Co-authored-by: ${Z} <${Q}>`;return`Co-authored-by: ${Z}`}function Ci0($,Z){let Q=py(Z);if(!Q)return $;let X=F9$($),Y=r74(Q);if(X.includes(Y))return X;let G=X.trimEnd();return G.length>0?`${G}
|
|
941
941
|
|
|
942
942
|
${Y}`:Y}var K9$,o74;var _i0=D(()=>{K9$=/[\r\n<>]/,o74=/^[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+$/});function V70($){let Z=$.repo,Q=Z?{repository:{cloneUrl:Z.cloneUrl,repoName:Z.displayName??a74(Z.cloneUrl),...Z.branch?{branch:Z.branch}:{},submoduleCredentials:Z.submoduleCredentials??[]},repositories:($.extraRepos??[]).filter((K)=>!!K.directoryName).map((K)=>({cloneUrl:K.cloneUrl,repoName:K.directoryName,...K.branch?{branch:K.branch}:{},submoduleCredentials:K.submoduleCredentials??[]})),...Z.userName.trim()||Z.userEmail.trim()?{identity:{userName:Z.userName,userEmail:Z.userEmail}}:{}}:void 0,X=$.tenant,Y=py({userName:X?.userName,userEmail:X?.userEmail})??void 0,G=$.packageManager?{name:$.packageManager.name,...$.packageManager.path?{path:$.packageManager.path}:{}}:void 0,J=G?{packageManager:G,runtime:$.runtime,...$.port!==void 0?{port:$.port}:{}}:void 0,W=X?.orgId;if(!Q&&!J&&!Y&&$.cloneOnly===void 0&&!W)return null;return{...Q?{git:Q}:{},...Y?{operator:Y}:{},...W?{orgId:W}:{},...$.cloneOnly!==void 0?{cloneOnly:$.cloneOnly}:{},...J?{application:J}:{}}}function a74($){try{let Z=new URL($);return Z.pathname.replace(/^\/+/,"").replace(/\.git$/,"")||Z.hostname}catch{return $}}var H9$=D(()=>{_i0()});function s74($){try{return new URL($).username.length>0}catch{return!1}}function vi0($){let Z=$.repo?.cloneUrl;if(!Z||!s74(Z))return null;return{git:{repository:{cloneUrl:Z}}}}var fi0=D(()=>{W9$();H9$()});function e74($){return(typeof $.timeout==="number"&&$.timeout>0?Math.min($.timeout,120000):30000)+15000}function $Q4($,Z){if($.aborted)return Z.catch(()=>{}),Promise.reject($.reason??Error("aborted"));return new Promise((Q,X)=>{let Y=()=>{Z.catch(()=>{}),X($.reason??Error("aborted"))};$.addEventListener("abort",Y,{once:!0}),Z.then(Q,X).finally(()=>{$.removeEventListener("abort",Y)})})}async function ZQ4($,Z,Q,X,Y){let G=Y?.timeoutMs??e74(X),J=AbortSignal.timeout(G),W=Y?.signal?AbortSignal.any([Y.signal,J]):J,K,F;try{let U=new Headers({"content-type":"application/json"});if(Y?.threadId)U.set("x-thread-id",Y.threadId);let N={method:"POST",headers:U,body:JSON.stringify(X),signal:W};({res:K,rawText:F}=await $Q4(W,(async()=>{let B=await $.proxyDaemonRequest(Z,Q,N);return{res:B,rawText:await B.text()}})()))}catch(U){if(Y?.signal?.aborted)throw U;if(J.aborted)throw Error(`Sandbox POST ${Q} timed out after ${Math.round(G/1000)}s \u2014 the sandbox may be overloaded or its filesystem stalled. Retry, or use a smaller operation.`);throw new wn(U)}let H;try{H=JSON.parse(F)}catch{console.error("[sandbox-fs-hooks] Failed to parse JSON response provider=agent-sandbox path=%s status=%d rawText=%s",Q,K.status,F.slice(0,2000));let U=K.status>=500?" (server error)":K.status===0?" (no response)":"";throw Error(`Daemon ${Q} returned invalid JSON (HTTP ${K.status}${U}): ${F.slice(0,800)}`)}if(!K.ok){console.error("[sandbox-fs-hooks] Non-OK response provider=agent-sandbox path=%s status=%d body=%s",Q,K.status,F.slice(0,2000));let U=H.error??`Daemon ${Q} failed (${K.status})`;if(K.status===404&&U==="sandbox not found")throw new wn(Error(U),!0);throw Error(U)}return H}function bi0($,Z){let{ensureHandle:Q,invalidateHandle:X,canAutoRestart:Y}=Z,G=0,J=(F)=>{let H=Date.now();if(H-G<300000)return;G=H,$.renewTtl(F).catch((U)=>{console.warn(`[sandbox-fs-hooks] TTL renew failed for ${F}: ${U instanceof Error?U.message:String(U)}`)})},W=(F)=>{let H=F instanceof Error?F.message:String(F);return Y?`Sandbox is unreachable and auto-restart did not recover it: ${H}`:"The sandbox is not running. Ask the user to start it by clicking the server button (left side of the header bar)."},K=async(F,H,U)=>{let N=async(O)=>ZQ4($,O,F,H,{signal:U,timeoutMs:Z.opTimeoutMs,threadId:Z.threadId}),B=await Q();J(B);try{return await N(B)}catch(O){if(!(O instanceof wn))throw O;if(!Y&&!O.gone)throw Error(W(O.cause??O));console.warn(`[sandbox-fs-hooks] daemon ${F} unreachable \u2014 reaping sandbox and retrying once`,O.cause??O);try{await X({force:O.gone})}catch(L){console.warn("[sandbox-fs-hooks] invalidateHandle failed",L)}let w;try{w=await Q()}catch(L){throw Error(`Failed to restart sandbox: ${L instanceof Error?L.message:String(L)}`)}try{return await N(w)}catch(L){if(L instanceof wn)throw Error(W(L.cause??L));throw L}}};return{onProxy:(F,H,U)=>K(F,H,U),onBash:async(F,H)=>{return await K("/_sandbox/bash",{command:F,...H?.cwd!==void 0?{cwd:H.cwd}:{},...H?.timeoutMs!==void 0?{timeout:H.timeoutMs}:{}})}}}var wn;var U9$=D(()=>{wn=class wn extends Error{code="DAEMON_UNREACHABLE";gone;constructor($,Z=!1){super($ instanceof Error?$.message:"Daemon proxy failed");if(this.gone=Z,$ instanceof Error)this.cause=$}}});var Ln=D(()=>{fi0();U9$()});var S70=D(()=>{a8();_i0()});function QQ4($){if($ instanceof TypeError)return!0;if($ instanceof Error&&!($ instanceof DOMException)&&typeof $.code==="string")return!0;if($ instanceof DOMException&&$.name==="AbortError")return!0;return!1}async function xi0($,Z,Q,X){try{return await Z6(async()=>{let G=await fetch($,{...Z,signal:AbortSignal.timeout(X)});return{status:G.status,ok:G.ok,body:await G.text()}},{maxAttempts:3,minTimeout:50,maxTimeout:500,multiplier:2,jitter:0.5,isRetriable:QQ4})}catch(Y){let G=Y instanceof Error?Y.message:String(Y);throw Error(`[SANDBOX_UNREACHABLE] sandbox daemon ${Q} request failed: ${G}`,{cause:Y})}}async function C70($){try{let Z=await fetch(`${$}/health`,{signal:AbortSignal.timeout(XQ4)});if(!Z.ok){try{await Z.text()}catch{}return null}let Q=await Z.json();if(typeof Q==="object"&&Q!==null&&typeof Q.bootId==="string"&&typeof Q.ready==="boolean"&&Q.setup&&typeof Q.setup.running==="boolean"&&typeof Q.setup.done==="boolean")return Q;return null}catch{return null}}async function gi0($){for(let Z=0;Z<N9$;Z++){if(await C70($)!==null)return;let Q=(Math.random()*2-1)*YQ4;await L$(B9$+Q)}throw Error(`sandbox daemon at ${$} did not respond on /health within ${N9$*B9$/1000}s`)}async function sE($,Z,Q,X,Y){return GQ4($,Z,"POST",Q,X,Y)}async function GQ4($,Z,Q,X,Y,G){let J={...X};if(Y&&Y.rotateToken!==void 0)J.auth=Y;let W=await xi0(`${$}/_sandbox/config`,{method:Q,headers:{"Content-Type":"application/json",Authorization:`Bearer ${Z}`},body:JSON.stringify(J)},"/_sandbox/config",G?.timeoutMs??yi0);if(!W.ok)throw new aE(W.status,W.body);return w9$(W.body,"/_sandbox/config")}async function O9$($,Z,Q){let X=await xi0(`${$}/_sandbox/setup/${Q}`,{method:"POST",headers:{Authorization:`Bearer ${Z}`}},`/_sandbox/setup/${Q}`,yi0);if(!X.ok)throw Error(`sandbox daemon /_sandbox/setup/${Q} returned ${X.status}: ${X.body}`)}async function D9$($,Z,Q){let X=await xi0(`${$}/_sandbox/orgfs-config`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Z}`},body:Q},"/_sandbox/orgfs-config",yi0);if(!X.ok)throw Error(`sandbox daemon /_sandbox/orgfs-config returned ${X.status}: ${X.body}`);return w9$(X.body,"/_sandbox/orgfs-config")}function w9$($,Z){try{return JSON.parse($)}catch(Q){throw Error(`sandbox daemon ${Z} returned a malformed JSON body: ${$.slice(0,200)}`,{cause:Q})}}async function En($,Z,Q,X){let Y=new Headers(X.headers);for(let W of JQ4)Y.delete(W);Y.set("authorization",`Bearer ${Z}`);let G=X.method!=="GET"&&X.method!=="HEAD",J=`${$}${Q.startsWith("/")?Q:`/${Q}`}`;return fetch(J,{method:X.method,headers:Y,body:G?X.body:void 0,redirect:"manual",signal:X.signal,duplex:G?"half":void 0})}var aE,XQ4=500,yi0=30000,N9$=25,B9$=200,YQ4=50,JQ4;var hi0=D(()=>{S70();a8();aE=class aE extends Error{status;constructor($,Z){super(`sandbox daemon /_sandbox/config returned ${$}: ${Z}`);this.status=$;this.name="ConfigRequestError"}};JQ4=["cookie","host","connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","accept-encoding","content-length"]});function jn($){let Z=new Set($.map((Y)=>Y.name.toLowerCase()).filter((Y,G,J)=>J.indexOf(Y)!==G)),Q=$.map((Y)=>Z.has(Y.name.toLowerCase())),X=(Y)=>{let G=$[Y];return L9$(Q[Y]?`${G.owner}-${G.name}`:G.name).toLowerCase()};for(let Y=0;Y<$.length;Y++){let G=new Map,J=!1;for(let W=0;W<$.length;W++){let K=X(W),F=G.get(K);if(F!==void 0){if(!Q[W])Q[W]=!0,J=!0;if(!Q[F])Q[F]=!0,J=!0}G.set(K,W)}if(!J)break}return $.map((Y,G)=>L9$(Q[G]?`${Y.owner}-${Y.name}`:Y.name))}function E9$($,Z){let Q=`${Z.owner}/${Z.name}`.toLowerCase(),X=$.findIndex((Y)=>`${Y.owner}/${Y.name}`.toLowerCase()===Q);return X===-1?null:jn($)[X]??null}function L9$($){return $.replace(/[^A-Za-z0-9._-]/g,"-").replace(/^[^A-Za-z0-9]+/,"")||"repo"}var zn;var ui0=D(()=>{zn={npm:{install:"npm install",run:($)=>`npm run ${$}`,runtime:"node"},pnpm:{install:"pnpm install",run:($)=>`pnpm run ${$}`,runtime:"node"},yarn:{install:"yarn install",run:($)=>`yarn run ${$}`,runtime:"node"},bun:{install:"bun install",run:($)=>`bun run ${$}`,runtime:"bun"},deno:{install:"deno install",run:($)=>`deno task ${$}`,runtime:"deno"}}});function eH($,Z){return Z?`thread:${$}/${Z}`:`thread:${$}`}function $U($){return`sandbox/thread-${$.replace(/^thread:/,"").replace(/\//g,"-")}`}function WJ($){if(!$||!$.startsWith("thread:"))return null;return $.slice(7).split("/")[0]||null}async function eE($,Z,Q){return ci0(await li0($,Z),Q)}async function li0($,Z){let Q=WJ(Z);if(!Q)return null;return await $.storage.threads.get(Q).catch(()=>null)}function ci0($,Z){return $?.created_by??Z}async function xO($,Z){if(!Z)return null;let Q=await $.storage.threads.get(Z).catch(()=>null);if(!Q)return null;return Q.metadata??{}}async function j9$($,Z){let X=(await xO($,Z))?.headRef;return typeof X==="string"&&X.length>0?X:null}async function z9$($,Z,Q){let X=await xO($,Z);if(!X)return;if(X.headRef===Q)return;await $.storage.threads.update(Z,{metadata:{...X,headRef:Q}}).catch((Y)=>console.warn("[thread-repo] setThreadHeadRef failed",Y))}function WQ4($,Z){let Q=yZ0(Z,$.owner,$.name);if(!Q||Q.id===$.connectionId)return null;let X=C5(Q);return{...$,connectionId:Q.id,...X?.installationId?{installationId:X.installationId}:{}}}async function di0($,Z){let X=(await xO($,Z))?.githubRepos;return Array.isArray(X)?X.filter((Y)=>Y?.owner&&Y?.name):[]}async function yO($,Z){let Q=await xO($,Z),X=Q?.githubRepo??null;if(!Z||!Q||!X?.connectionId)return X;try{let Y=$.storage.threads.getOrganizationId();if(!Y)return X;if(await $.storage.connections.findById(X.connectionId,Y))return X;let{items:G}=await $.storage.connections.list(Y),J=WQ4(X,G);if(!J)return X;return await $.storage.threads.update(Z,{metadata:{...Q,githubRepo:J}}),console.warn("[thread-repo] re-pointed thread at a live repo connection",{threadId:Z,from:X.connectionId,to:J.connectionId}),J}catch(Y){return console.warn("[thread-repo] repoint check failed",Y),X}}function mi0($){if($.pinnedRef)return $.pinnedRef;if($.runBranch&&$.runBranch===eH($.threadId))return $.runBranch;if($.threadRepo)return eH($.threadId,$.threadRepo.connectionId);if(!$.agentRepo)return"ephemeral";return $.runBranch??`thread:${$.threadId}`}async function ii0($,Z){let X=(await xO($,Z))?.pinnedRef;return typeof X==="string"&&X.length>0?X:null}async function _70($,Z){let[Q,X]=await Promise.all([yO($,Z.threadId),ii0($,Z.threadId)]);return mi0({...Z,threadRepo:Q,pinnedRef:X})}async function P9$($,Z,Q,X,Y){let G=await xO($,Z);if(!G)return;let J=On(S9(G),Q,X,Y);await $.storage.threads.update(Z,{metadata:{...G,sandboxMap:J}}).catch((W)=>console.warn("[thread-repo] setThreadSandboxMapEntry failed",W))}async function v70($,Z){return S9(await xO($,Z))}async function A9$($,Z,Q,X){let Y=await xO($,Z);if(!Y)return;let G=Si0(S9(Y),Q,X);if(!G)return;await $.storage.threads.update(Z,{metadata:{...Y,sandboxMap:G}}).catch((J)=>console.warn("[thread-repo] removeThreadSandboxMapEntry failed",J))}var n3=D(()=>{hX();aX()});function ny($){if(!$)return null;let Z=$.runtime;if(!Z||typeof Z!=="object")return null;let Q=Z.env;if(!Array.isArray(Q))return null;let X=[];for(let Y of Q){if(!Y||typeof Y!=="object")continue;let G=Y;if(typeof G.key!=="string"||!n80.test(G.key))continue;if(G.kind==="literal"&&typeof G.value==="string"){X.push({key:G.key,kind:"literal",value:G.value});continue}if(G.kind==="secret"&&typeof G.secretId==="string"&&G.secretId.length>0)X.push({key:G.key,kind:"secret",secretId:G.secretId})}return X.length===0?null:X}function T9$($){if(!$)return null;let Z=$.runtime;if(!Z||typeof Z!=="object")return null;let Q=Z.submoduleCredentials;if(!Array.isArray(Q))return null;let X=[];for(let Y of Q){if(!Y||typeof Y!=="object")continue;let G=Y;if(typeof G.host==="string"&&G.host.length>0&&typeof G.secretId==="string"&&G.secretId.length>0)X.push({host:G.host,secretId:G.secretId})}return X}async function R9$($,Z){t(Z);let Q=n(Z);await Z.access.check();let X=t0(Z);if(!X)throw Error("User ID required");let Y=await Z.storage.virtualMcps.findById($.virtualMcpId);if(!Y||Y.organization_id!==Q.id)throw Error("Virtual MCP not found");let G=Y.metadata??{},J=S9(G),W=await eE(Z,$.branch,X),K=bK(J,W,$.branch);return{virtualMcp:Y,metadata:G,userId:X,sandboxUserId:W,entry:K,organization:Q}}function KQ4($){if($===null||!/^\d+$/.test($))return null;let Z=Number($);return Z>=1&&Z<=65535?$:null}function I9$($){let Z=$.runtime??null,X=Z?.selected??null,Y=KQ4(Z?.port??null),G=Z?.path??null;if(!X||!(X in zn))return{packageManager:null,runtime:null,port:Y,packageManagerPath:G,runtimeBinPath:null};let J=zn[X].runtime;return{packageManager:X,runtime:J,port:Y,packageManagerPath:G,runtimeBinPath:J==="deno"?"/opt/deno/bin":J==="bun"?"/opt/bun/bin":null}}var Pn=D(()=>{I8();ui0();aX();n3()});import{sql as FQ4}from"kysely";function q9$($){return $ instanceof Date?$.toISOString():String($)}class pi0{db;vault;constructor($,Z){this.db=$;this.vault=Z}rowToInfo($){return{id:$.id,organizationId:$.organization_id,scope:$.scope,userId:$.user_id,name:$.name,description:$.description,createdBy:$.created_by,createdAt:q9$($.created_at),updatedBy:$.updated_by,updatedAt:q9$($.updated_at)}}assertVisible($,Z){if($.scope==="user"&&$.user_id!==Z)throw new gO($.id)}async create($){let Z=R8("sec"),Q=await this.vault.encrypt($.value),X=new Date,Y=await this.db.insertInto("secrets").values({id:Z,organization_id:$.organizationId,scope:$.scope.kind,user_id:$.scope.kind==="user"?$.scope.userId:null,name:$.name,encrypted_value:Q,description:$.description??null,created_by:$.createdBy,created_at:X,updated_by:$.createdBy,updated_at:X}).returning(f70).executeTakeFirstOrThrow();return this.rowToInfo(Y)}async update($){let Z=await this.db.selectFrom("secrets").where("id","=",$.id).where("organization_id","=",$.organizationId).select(["id","scope","user_id"]).executeTakeFirst();if(!Z)throw new KJ($.id);this.assertVisible(Z,$.callerUserId);let Q={updated_by:$.updatedBy,updated_at:new Date};if($.value!==void 0)Q.encrypted_value=await this.vault.encrypt($.value);if($.description!==void 0)Q.description=$.description;let X=await this.db.updateTable("secrets").set(Q).where("id","=",$.id).where("organization_id","=",$.organizationId).returning(f70).executeTakeFirstOrThrow();return this.rowToInfo(X)}async delete($,Z,Q){let X=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(["id","scope","user_id"]).executeTakeFirst();if(!X)throw new KJ($);this.assertVisible(X,Q),await this.db.deleteFrom("secrets").where("id","=",$).where("organization_id","=",Z).execute()}async list($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).select(f70);if($.scope?.kind==="user")Z=Z.where("scope","=","user").where("user_id","=",$.scope.userId);else if($.scope?.kind==="organization")Z=Z.where("scope","=","organization");else Z=Z.where((X)=>X.or([X("scope","=","organization"),X.and([X("scope","=","user"),X("user_id","=",$.callerUserId)])]));return(await Z.orderBy("created_at","desc").execute()).map((X)=>this.rowToInfo(X))}async findById($,Z,Q){let X=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).select(f70).executeTakeFirst();if(!X)throw new KJ($);return this.assertVisible(X,Q),this.rowToInfo(X)}async resolveById($,Z,Q){let X=await this.db.selectFrom("secrets").where("id","=",$).where("organization_id","=",Z).selectAll().executeTakeFirst();if(!X)throw new KJ($);this.assertVisible(X,Q);let Y=await this.vault.decrypt(X.encrypted_value);return{info:this.rowToInfo(X),value:Y}}async resolveByName($){let Z=this.db.selectFrom("secrets").where("organization_id","=",$.organizationId).where("scope","=",$.scope.kind).where(FQ4`lower(name) = lower(${$.name})`).selectAll();if($.scope.kind==="user")Z=Z.where("user_id","=",$.scope.userId);let Q=await Z.executeTakeFirst();if(!Q)throw new KJ(`${$.scope.kind}:${$.name}`);let X=await this.vault.decrypt(Q.encrypted_value);return{info:this.rowToInfo(Q),value:X}}}var f70,KJ,gO;var An=D(()=>{r7();f70=["id","organization_id","scope","user_id","name","description","created_by","created_at","updated_by","updated_at"];KJ=class KJ extends Error{constructor($){super(`Secret ${$} not found`);this.name="SecretNotFoundError"}};gO=class gO extends Error{constructor($){super(`Access denied for secret ${$}`);this.name="SecretAccessDeniedError"}}});async function hO($,Z){let Q=$.body?.getReader();if(!Q)return $.text();let X=new TextDecoder,Y="",G=0;for(;;){let{done:J,value:W}=await Q.read();if(J)break;if(G+=W.byteLength,G>Z)throw await Q.cancel().catch(()=>{}),new M9$(`Upstream response exceeded ${Z} bytes`);Y+=X.decode(W,{stream:!0})}return Y+=X.decode(),Y}var M9$;var Tn=D(()=>{M9$=class M9$ extends Error{}});async function b70({ctx:$,runner:Z,handle:Q,orgId:X,userId:Y,entries:G}){if(!G||G.length===0)return;let J={};for(let K of G){if(K.kind==="literal"){J[K.key]=K.value;continue}try{let{value:F}=await $.storage.secrets.resolveById(K.secretId,X,Y);J[K.key]=F}catch(F){if(F instanceof KJ||F instanceof gO){console.warn(`[SANDBOX_START] skipping env ${K.key}: ${F.message}. Re-link or recreate the secret to restore.`);continue}throw F}}if(Object.keys(J).length===0)return;let W=await Z.proxyDaemonRequest(Q,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({env:J})});if(!W.ok){let K=await hO(W,HQ4).catch(()=>W.statusText);console.warn(`[SANDBOX_START] daemon rejected env patch (${W.status}): ${K}`)}}var HQ4=10485760;var ni0=D(()=>{An();Tn()});async function k9$({ctx:$,orgId:Z,userId:Q,entries:X}){if(!X||X.length===0)return[];let Y=[];for(let G of X)try{let{value:J}=await $.storage.secrets.resolveById(G.secretId,Z,Q);Y.push({host:G.host,token:J})}catch(J){if(J instanceof KJ||J instanceof gO){console.warn(`[SANDBOX_START] skipping submodule credential for ${G.host}: ${J.message}. Re-link or recreate the secret to restore.`);continue}throw J}return Y}var V9$=D(()=>{An()});async function UQ4($,Z){let Q=$.organization?.id;if(!Q)throw Error(H9);if(!Z.sourceConnectionId)throw Error(H9);let X=await $.storage.connections.findById(Z.sourceConnectionId,Q);if(!X)throw Error(H9);let{clientFromConnection:Y}=await Promise.resolve().then(() => (jp(),_9$)),G=await Y(X,$,!0);try{let{result:J}=await K0$((F)=>G.callTool({name:"MINT_REPO_TOKEN",arguments:{installationId:Z.installationId,owner:Z.owner,repo:Z.repo,permissions:F}}),W0$(Z.permissions)),W=J.structuredContent?.token;if(J.isError||!W)throw Error(H9);let K=J.structuredContent?.expiresAt;return{accessToken:W,expiresAt:K?new Date(K):null}}finally{await G.close().catch(()=>{})}}function NQ4($,Z){return($?.getTime()??0)>Z?$:new Date(Z+C9$)}async function BQ4($,Z,Q,X){let Y=Date.now(),G=await UQ4($,Q),J=NQ4(G.expiresAt,Y);try{await X.upsert({connectionId:Z,accessToken:G.accessToken,refreshToken:null,scope:null,expiresAt:J,clientId:null,clientSecret:null,tokenEndpoint:null})}catch(W){console.warn("[GithubMint] failed to persist minted token",{connectionId:Z,message:W instanceof Error?W.message:String(W)})}return G.accessToken}async function Rn($,Z,Q){let X=C5(Z);if(!X)throw Error("Connection is not repo-scoped");if(!X.sourceConnectionId)throw Error(H9);let Y=new t6($.db,$.vault),G=await Y.get(Z.id);if(!Q?.forceRefresh&&G&&!Y.isExpired(G,In))return G.accessToken;let J=ti0.get(Z.id);if(J)return J;let W=BQ4($,Z.id,X,Y).finally(()=>{ti0.delete(Z.id)});return ti0.set(Z.id,W),W}function S9$($){return $.slug==="mcp-github"}async function $j($,Z,Q){if(C5(Z)?.sourceConnectionId)return Rn($,Z,Q);return(await $G({connectionId:Z.id,connectionUrl:Z.connection_url,tokenStorage:new t6($.db,$.vault),force:Q?.forceRefresh})).accessToken}var ti0;var ty=D(()=>{FJ();hX();ZJ();ti0=new Map});function oi0($,Z){return`${$}::${Z}`}function v9$($){let Z=$.indexOf("::");if(Z>0){let Q=$.slice(0,Z);if(Object.values(x70).includes(Q))return{code:Q,message:$.slice(Z+2)}}return{code:null,message:$}}var x70;var ri0=D(()=>{x70={githubNotAuthenticated:"GITHUB_NOT_AUTHENTICATED",githubConnectionMissing:"GITHUB_CONNECTION_MISSING"}});function f9$($,Z){return{cloneUrl:`https://github.com/${$}/${Z}.git`,gitUserName:y70.name,gitUserEmail:y70.email}}async function uO($){let Z=await $.ctx.storage.connections.findById($.connectionId,$.organizationId),Q=Z?C5(Z):null;if(!Z||!Q?.sourceConnectionId)return;try{await Rn($.ctx,Z,{forceRefresh:$.forceRefresh})}catch(X){$.onLegacyMintError?.(X)}}async function xK($,Z,Q,X,Y,G){if(!await X.selectFrom("connections").select("id").where("id","=",$).executeTakeFirst())throw Error(oi0(x70.githubConnectionMissing,`GitHub connection ${$} no longer exists. Link ${Z}/${Q} again.`));let W=new t6(X,Y),K=await $G({connectionId:$,tokenStorage:W,bufferMs:G?.bufferMs});if(!K.accessToken)throw Error(oi0(x70.githubNotAuthenticated,K.state==="refresh_failed"?H9:"No GitHub token found. Ensure the mcp-github connection is authenticated."));let F=K.accessToken,H=`https://x-access-token:${F}@github.com/${Z}/${Q}.git`,U=y70.name,N=y70.email;if(!F.startsWith("ghs_"))try{let B=await fetch("https://api.github.com/user",{headers:{Authorization:`token ${F}`,Accept:"application/vnd.github+json"}});if(B.ok){let O=await B.json();U=O.name||O.login,N=O.email||`${O.login}@users.noreply.github.com`}}catch{}return{cloneUrl:H,gitUserName:U,gitUserEmail:N}}var y70;var oy=D(()=>{ty();ZJ();FJ();hX();ri0();y70={name:"Deco Bot",email:"114028756+decobot@users.noreply.github.com"}});async function y9$($,Z,Q,X,Y){let G=await $G({connectionId:$,tokenStorage:new t6(X,Y)});if(!G.accessToken)return null;return h9$(Z,Q,G.accessToken)}function g9$($,Z){return h9$($,Z,null)}async function h9$($,Z,Q){let X=new Map,Y=new Set(b9$.map((K)=>K.path));for(let K of Object.values(x9$))for(let F of K??[])Y.add(F);await Promise.all(Array.from(Y).map(async(K)=>{X.set(K,await DQ4($,Z,K,Q))}));let G=b9$.find(({path:K})=>X.get(K)!==null);if(!G)return null;let J=x9$[G.pm]??[],W=null;for(let K of J)if(W=wQ4(X.get(K)??null),W)break;return{packageManager:G.pm,devPort:W}}async function DQ4($,Z,Q,X){let Y=`https://api.github.com/repos/${$}/${Z}/contents/${encodeURIComponent(Q)}`;try{let G={Accept:"application/vnd.github+json","User-Agent":"studio-runtime-detect"};if(X)G.Authorization=`token ${X}`;let J=await fetch(Y,{headers:G,signal:AbortSignal.timeout(5000)});if(!J.ok)return null;let W=await J.json();if(!W.content||W.encoding!=="base64")return null;return Buffer.from(W.content,"base64").toString("utf8")}catch{return null}}function wQ4($){if(!$)return null;try{let Z=JSON.parse($),Q=Z.tasks??Z.scripts??{},Y=(Q.dev??Q.start??"").match(OQ4)?.[1]??null;if(!Y)return null;let G=Number(Y);return G>=1&&G<=65535?Y:null}catch{return null}}var b9$,x9$,OQ4;var u9$=D(()=>{FJ();ZJ();b9$=[{path:"deno.json",pm:"deno"},{path:"deno.jsonc",pm:"deno"},{path:"bun.lock",pm:"bun"},{path:"bunfig.toml",pm:"bun"},{path:"pnpm-lock.yaml",pm:"pnpm"},{path:"yarn.lock",pm:"yarn"},{path:"package-lock.json",pm:"npm"},{path:"package.json",pm:"bun"}],x9$={deno:["deno.json","deno.jsonc"],bun:["package.json"],pnpm:["package.json"],yarn:["package.json"],npm:["package.json"]},OQ4=/(?:--port|PORT=|:)(\d{4,5})/});function LQ4($){return($??"").normalize("NFKD").replace(/[\u0300-\u036F]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"user"}function g70($){return $?.name||$?.email?.split("@")[0]||void 0}function h70($){let Z=LQ4($),Q=Date.now().toString(36).split("").reverse().join("");return`${Z}-${Q}`}import{hash as EQ4}from"crypto";import{sql as u70}from"kysely";function jQ4($){return EQ4("sha256",`${$.userId}\x00${$.projectRef}\x00${ry}`,"buffer").readBigInt64BE(0)}async function c9$($,Z){let Q=await $.selectFrom("sandbox_runner_state").select(["handle","state","updated_at"]).where("user_id","=",Z.userId).where("project_ref","=",Z.projectRef).where("sandbox_provider_kind","=",ry).executeTakeFirst();if(!Q)return null;return{handle:Q.handle,state:Q.state,updatedAt:Q.updated_at}}async function d9$($,Z){let Q=await $.selectFrom("sandbox_runner_state").select(["user_id","project_ref","handle","state","updated_at"]).where("sandbox_provider_kind","=",ry).where("handle","=",Z).executeTakeFirst();if(!Q)return null;return{id:{userId:Q.user_id,projectRef:Q.project_ref},handle:Q.handle,state:Q.state,updatedAt:Q.updated_at}}async function m9$($,Z,Q){let X=JSON.stringify(Q.state),Y=new Date().toISOString();await $.insertInto("sandbox_runner_state").values({user_id:Z.userId,project_ref:Z.projectRef,sandbox_provider_kind:ry,handle:Q.handle,state:X,updated_at:Y}).onConflict((G)=>G.columns(["user_id","project_ref","sandbox_provider_kind"]).doUpdateSet({handle:Q.handle,state:X,updated_at:Y})).execute()}async function i9$($,Z){await $.deleteFrom("sandbox_runner_state").where("user_id","=",Z.userId).where("project_ref","=",Z.projectRef).where("sandbox_provider_kind","=",ry).execute()}async function p9$($,Z){await $.deleteFrom("sandbox_runner_state").where("sandbox_provider_kind","=",ry).where("handle","=",Z).execute()}function zQ4($){return{get:(Z)=>c9$($,Z),getByHandle:(Z)=>d9$($,Z),put:(Z,Q)=>m9$($,Z,Q),delete:(Z)=>i9$($,Z),deleteByHandle:(Z)=>p9$($,Z)}}class qn{db;constructor($){this.db=$}get($){return c9$(this.db,$)}getByHandle($){return d9$(this.db,$)}put($,Z){return m9$(this.db,$,Z)}delete($){return i9$(this.db,$)}deleteByHandle($){return p9$(this.db,$)}async withLock($,Z){let Q=jQ4($);return this.db.transaction().execute(async(X)=>{try{await u70`set local statement_timeout = ${u70.lit(l9$)}`.execute(X),await u70`select pg_advisory_xact_lock(${Q}::bigint)`.execute(X)}catch(Y){if(PQ4(Y))throw Error(`sandbox advisory lock busy >${l9$}ms for user=${$.userId} projectRef=${$.projectRef} \u2014 provisioner is slow or stuck; retry shortly`);throw Y}return await u70`set local statement_timeout = 0`.execute(X),Z(zQ4(X))})}}function PQ4($){if(!($ instanceof Error))return!1;return $.code==="57014"||/statement timeout/i.test($.message)}var ry="agent-sandbox",l9$=90000;var ai0=()=>{};function n9$($){try{let[Z,Q]=new URL($).pathname.replace(/^\//,"").split("/"),X=Q?.replace(/\.git$/,"");return Z&&X?{owner:Z,name:X}:null}catch{return null}}var Zj="home";var l70=()=>{};function c70($){if(!mN($))return`Invalid volume name ${JSON.stringify($)} \u2014 use 1-128 chars of letters, digits, "_", "-" or "."`;if(AQ4.has($))return`Volume "${$}" is reserved`;if(iW($))return'Volume names starting with "public-" are reserved for shared skill sets';if($.startsWith("."))return'Volume names starting with "." are reserved';if(!/^[A-Za-z0-9]/.test($))return"Volume names must start with a letter or digit";return null}async function d70($,Z){try{let Q=await $.storage.connections.findById(Z.connectionId,Z.organizationId);if(!Q)throw Error("sync connection not found in this organization");await uO({ctx:$,connectionId:Q.id,organizationId:Z.organizationId,onLegacyMintError:(J)=>console.warn("[org-repo-sync] repo-scoped mint failed",{configId:Z.id,error:J instanceof Error?J.message:String(J)})});let X=await $G({connectionId:Q.id,tokenStorage:new t6($.db,$.vault)});if(!X.accessToken)throw Error("No GitHub token for the sync connection \u2014 reconnect the mcp-github integration.");let Y=X.accessToken,G=await Ab0($.db,{orgId:Z.organizationId,baseUrl:$.baseUrl,volume:Z.volume,source:{repo:`${Z.repoOwner}/${Z.repoName}`,ref:Z.ref,paths:Z.paths},authToken:Y,skipVolumeQuota:!1});return await $.storage.orgRepoSyncs.recordSyncResult(Z.id,{error:null}).catch(()=>{}),{id:Z.id,volume:Z.volume,...G}}catch(Q){let X=Q instanceof Error?Q.message:String(Q);return await $.storage.orgRepoSyncs.recordSyncResult(Z.id,{error:X}).catch(()=>{}),{id:Z.id,volume:Z.volume,error:X}}}var AQ4,si0=10;var m70=D(()=>{oy();FJ();ZJ();Ub();DL();M80();AQ4=new Set(["home","outputs","uploads","public","output","upload"])});function yK($,Z){let Q;if($==="home")Q=`org/${Zj}`;else if($==="outputs")Q=`org/${t9$}`;else if($==="uploads")Q=`org/${o9$}`;else if(iW($))Q=`org/public/${$.slice(7)}`;else Q=`org/${$}`;return Z?`${Q}/${Z}`:Q}function RQ4($){return{baseUrl:$.baseUrl.replace(/\/+$/,""),orgSlug:$.orgSlug,token:$.token,mounts:[{volume:"home",path:Zj},...TQ4.map((Z)=>({...Z})),...($.publicSets??[]).map((Z)=>({volume:pN(Z),path:`public/${Z}`,readonly:!0})),...($.syncedVolumes??[]).filter((Z)=>c70(Z)===null).map((Z)=>({volume:Z,path:Z,readonly:!0}))]}}async function i70($,Z){try{let Q=await $.boundAuth.apiKey.create({name:`orgfs-${Z.orgSlug}`,permissions:{self:["ORG_FS_READ","ORG_FS_WRITE"]},expiresIn:IQ4,metadata:{organization:{id:Z.orgId,slug:Z.orgSlug}}}),X=await $.storage.orgRepoSyncs.listEnabledVolumes(Z.orgId).catch(()=>[]);return JSON.stringify(RQ4({baseUrl:Z.baseUrl,orgSlug:Z.orgSlug,token:Q.key,publicSets:gG().map((Y)=>Y.set),syncedVolumes:X}))}catch(Q){console.warn("[org-fs] token mint failed; mounts disabled for this sandbox",Q);return}}var t9$=".outputs",o9$=".uploads",TQ4,IQ4=604800;var Qj=D(()=>{l70();m70();DL();TQ4=[{volume:"outputs",path:t9$},{volume:"uploads",path:o9$}]});function ei0($){return $ instanceof Date?$.toISOString():String($)}function Mn($){return{id:$.id,organizationId:$.organization_id,connectionId:$.connection_id,repoOwner:$.repo_owner,repoName:$.repo_name,ref:$.ref,paths:$.paths,volume:$.volume,enabled:$.enabled,lastSyncedAt:$.last_synced_at?ei0($.last_synced_at):null,lastSyncError:$.last_sync_error,createdBy:$.created_by,createdAt:ei0($.created_at),updatedAt:ei0($.updated_at)}}class Xj{db;constructor($){this.db=$}async create($){let Z=await this.db.insertInto("org_repo_sync").values({organization_id:$.organizationId,connection_id:$.connectionId,repo_owner:$.repoOwner,repo_name:$.repoName,ref:$.ref,paths:JSON.stringify($.paths),volume:$.volume,created_by:$.createdBy}).returningAll().executeTakeFirstOrThrow();return Mn(Z)}async get($,Z){let Q=await this.db.selectFrom("org_repo_sync").selectAll().where("id","=",$).where("organization_id","=",Z).executeTakeFirst();return Q?Mn(Q):null}async listByOrg($){return(await this.db.selectFrom("org_repo_sync").selectAll().where("organization_id","=",$).orderBy("created_at","asc").execute()).map(Mn)}async countByOrg($){let Z=await this.db.selectFrom("org_repo_sync").select((Q)=>Q.fn.countAll().as("count")).where("organization_id","=",$).executeTakeFirstOrThrow();return Number(Z.count)}async listEnabled(){return(await this.db.selectFrom("org_repo_sync").selectAll().where("enabled","=",!0).orderBy("created_at","asc").execute()).map(Mn)}async listEnabledVolumes($){return(await this.db.selectFrom("org_repo_sync").select("volume").where("organization_id","=",$).where("enabled","=",!0).orderBy("volume","asc").execute()).map((Q)=>Q.volume)}async isSyncVolume($,Z){return await this.db.selectFrom("org_repo_sync").select("id").where("organization_id","=",$).where("volume","=",Z).executeTakeFirst()!==void 0}async update($,Z,Q){let X=await this.db.updateTable("org_repo_sync").set({...Q.enabled!==void 0?{enabled:Q.enabled}:{},...Q.ref!==void 0?{ref:Q.ref}:{},...Q.paths!==void 0?{paths:JSON.stringify(Q.paths)}:{},updated_at:new Date}).where("id","=",$).where("organization_id","=",Z).returningAll().executeTakeFirst();return X?Mn(X):null}async delete($,Z){return(await this.db.deleteFrom("org_repo_sync").where("id","=",$).where("organization_id","=",Z).executeTakeFirst()).numDeletedRows>0n}async recordSyncResult($,Z){await this.db.updateTable("org_repo_sync").set({last_synced_at:new Date,last_sync_error:Z.error,updated_at:new Date}).where("id","=",$).execute()}}var U9,wZ,kn,Vn;var p70=D(()=>{U9={CLAIM_API_GROUP:"extensions.agents.x-k8s.io",CLAIM_API_VERSION:"v1alpha1",CLAIM_PLURAL:"sandboxclaims",TEMPLATE_PLURAL:"sandboxtemplates",SANDBOX_API_GROUP:"agents.x-k8s.io",SANDBOX_API_VERSION:"v1alpha1",SANDBOX_PLURAL:"sandboxes",POD_NAME_ANNOTATION:"agents.x-k8s.io/pod-name",MAIN_CONTAINER_NAME:"sandbox"};wZ=class wZ extends Error{cause;constructor($,Z){super($);if(this.name="SandboxError",this.cause=Z,Z instanceof Error&&Z.stack)this.stack=`${this.stack}
|
|
943
|
-
Caused by: ${Z.stack}`}};kn=class kn extends wZ{constructor($,Z){super($,Z);this.name="SandboxTimeoutError"}};Vn=class Vn extends wZ{constructor($,Z){super($,Z);this.name="SandboxAlreadyExistsError"}}});async function qQ4($){let Z=$.getCurrentCluster();if(!Z)throw new wZ("No active cluster in kubeconfig");let Q={};await $.applyToHTTPSOptions(Q);let X={},Y=Q.headers??{};for(let[G,J]of Object.entries(Y))if(Array.isArray(J))X[G]=J.join(", ");else if(J!==void 0)X[G]=String(J);if(typeof Q.auth==="string"&&!X.Authorization)X.Authorization=`Basic ${Buffer.from(Q.auth).toString("base64")}`;return{server:Z.server.replace(/\/+$/,""),headers:X,tls:{cert:$p0(Q.cert),key:$p0(Q.key),ca:$p0(Q.ca),rejectUnauthorized:Z.skipTLSVerify?!1:void 0}}}function $p0($){if($==null)return;if(typeof $==="string")return $;if(Buffer.isBuffer($))return $.toString("utf8");return String($)}async function ZG($,Z){let Q=await qQ4($),X={...Q.headers,...Z.headers};if(Z.method==="PATCH")X["content-type"]=Z.patchType==="apply"?"application/apply-patch+yaml":Z.patchType==="strategic-merge"?"application/strategic-merge-patch+json":"application/merge-patch+json";else if(Z.body!==void 0&&!("content-type"in X))X["content-type"]="application/json";let Y={method:Z.method,headers:X,body:Z.body===void 0?void 0:JSON.stringify(Z.body),signal:Z.signal,tls:Q.tls,...Z.stream?{timeout:!1}:{}};return fetch(`${Q.server}${Z.path}`,Y)}async function Zp0($){try{return await $.json()}catch{return null}}async function Sn($,Z){if($.ok)return;let Q=await Zp0($),X=Q?.message??`${Z} failed: ${$.status} ${$.statusText}`;throw new r9$($.status,Q,X)}async function Cn($,Z,Q,X,Y="none"){try{let G=await ZG($,Z);if(G.status===404)return null;if(await Sn(G,Q),Y==="json")return await G.json();return null}catch(G){throw new wZ(X,G)}}async function a9$($,Z,Q){let X=`${n70}/${encodeURIComponent(Z)}/${U9.TEMPLATE_PLURAL}/${encodeURIComponent(Q)}`;try{let Y=await ZG($,{method:"GET",path:X});if(Y.status===404||Y.status===403)return!1;return await Sn(Y,"sandboxTemplateExists"),!0}catch(Y){throw new wZ(`Failed to get SandboxTemplate: ${Q}`,Y)}}async function Qp0($,Z,Q){let X=`${n70}/${encodeURIComponent(Z)}/${U9.CLAIM_PLURAL}`,Y;try{Y=await ZG($,{method:"POST",path:X,body:Q})}catch(F){let H=F instanceof Error?F.message:String(F);throw console.warn(`[agent-sandbox/client] createSandboxClaim ${Q.metadata.name} transport error: ${H}`),new wZ(`Failed to create SandboxClaim: ${Q.metadata.name} (transport error: ${H})`,F)}if(Y.ok)return;let G=await Zp0(Y),J=G?.reason?` ${G.reason}`:"",W=G?.message??Y.statusText,K=`Failed to create SandboxClaim: ${Q.metadata.name} (${Y.status}${J}: ${W})`;if(console.warn(`[agent-sandbox/client] createSandboxClaim ${Q.metadata.name} rejected: status=${Y.status} reason=${G?.reason??"<none>"} message=${W}`),Y.status===409)throw new Vn(K);throw new wZ(K)}async function t70($,Z,Q,X=60000){let Y=Date.now()+X,G=500,J;while(!0){let W=await ZU($,Z,Q).catch(()=>{return});if(!W)return;if(J=W,Date.now()>=Y){let K=J.metadata?.finalizers??[],F=J.metadata?.deletionTimestamp??"<unknown>";throw new kn(`SandboxClaim ${Q} still terminating after ${X}ms (deletionTimestamp=${F}, finalizers=[${K.join(", ")}])`)}await L$(500)}}function Xp0($,Z){return`${n70}/${encodeURIComponent($)}/${U9.CLAIM_PLURAL}/${encodeURIComponent(Z)}`}async function o70($,Z,Q,X){await Cn($,{method:"PATCH",path:Xp0(Z,Q),patchType:"merge",body:{spec:{lifecycle:{shutdownPolicy:"Delete",shutdownTime:X}}}},"patchSandboxClaimShutdown",`Failed to patch SandboxClaim shutdownTime: ${Q}`)}async function ay($,Z,Q){await Cn($,{method:"DELETE",path:Xp0(Z,Q)},"deleteSandboxClaim",`Failed to delete SandboxClaim: ${Q}`)}async function ZU($,Z,Q){return await Cn($,{method:"GET",path:Xp0(Z,Q)},"getSandboxClaim",`Failed to get SandboxClaim: ${Q}`,"json")??void 0}async function s9$($,Z,Q,X=60){let Y=Date.now()+X*1000,G=200;while(Date.now()<Y){let W=(await ZU($,Z,Q).catch(()=>{return}))?.status?.sandbox?.name;if(W)return W;await L$(200)}throw new kn(`SandboxClaim ${Q} did not record an adopted Sandbox (status.sandbox.name) within ${X}s`)}async function e9$($,Z,Q){let Y=(await Cn($,{method:"GET",path:`${n70}/${encodeURIComponent(Z)}/sandboxwarmpools/${encodeURIComponent(Q)}`},"getSandboxWarmPool",`Failed to get SandboxWarmPool: ${Q}`,"json"))?.status?.selector;if(!Y)return null;let G=await ZG($,{method:"GET",path:`/api/v1/namespaces/${encodeURIComponent(Z)}/pods?labelSelector=${encodeURIComponent(Y)}`});return await Sn(G,"listWarmPoolPods"),((await G.json()).items??[]).filter((W)=>W.status?.phase==="Running").flatMap((W)=>W.metadata?.name&&W.metadata.uid?[{name:W.metadata.name,uid:W.metadata.uid,labels:W.metadata.labels??{}}]:[])}async function $Z$($,Z,Q,X){try{let Y=await ZG($,{method:"GET",path:`/api/v1/namespaces/${encodeURIComponent(Z)}/pods/${encodeURIComponent(Q)}`});if(!Y.ok)return!1;return!(await Y.json()).metadata?.labels?.[X]}catch{return!1}}async function ZZ$($,Z,Q,X,Y){try{let G=await ZG($,{method:"GET",path:`/api/v1/namespaces/${encodeURIComponent(Z)}/pods?labelSelector=${encodeURIComponent(`${Q}=${X}`)}`});if(!G.ok)return null;let W=((await G.json()).items??[]).reduce((K,F)=>K===null||(F.metadata?.creationTimestamp??"")>(K.metadata?.creationTimestamp??"")?F:K,null);return W?MQ4(W,Y):null}catch{return null}}function MQ4($,Z){let Q=($.status?.containerStatuses??[]).find((G)=>G.name===Z),X=Q?.state?.terminated??Q?.lastState?.terminated;if(!X?.reason)return null
|
|
943
|
+
Caused by: ${Z.stack}`}};kn=class kn extends wZ{constructor($,Z){super($,Z);this.name="SandboxTimeoutError"}};Vn=class Vn extends wZ{constructor($,Z){super($,Z);this.name="SandboxAlreadyExistsError"}}});async function qQ4($){let Z=$.getCurrentCluster();if(!Z)throw new wZ("No active cluster in kubeconfig");let Q={};await $.applyToHTTPSOptions(Q);let X={},Y=Q.headers??{};for(let[G,J]of Object.entries(Y))if(Array.isArray(J))X[G]=J.join(", ");else if(J!==void 0)X[G]=String(J);if(typeof Q.auth==="string"&&!X.Authorization)X.Authorization=`Basic ${Buffer.from(Q.auth).toString("base64")}`;return{server:Z.server.replace(/\/+$/,""),headers:X,tls:{cert:$p0(Q.cert),key:$p0(Q.key),ca:$p0(Q.ca),rejectUnauthorized:Z.skipTLSVerify?!1:void 0}}}function $p0($){if($==null)return;if(typeof $==="string")return $;if(Buffer.isBuffer($))return $.toString("utf8");return String($)}async function ZG($,Z){let Q=await qQ4($),X={...Q.headers,...Z.headers};if(Z.method==="PATCH")X["content-type"]=Z.patchType==="apply"?"application/apply-patch+yaml":Z.patchType==="strategic-merge"?"application/strategic-merge-patch+json":"application/merge-patch+json";else if(Z.body!==void 0&&!("content-type"in X))X["content-type"]="application/json";let Y={method:Z.method,headers:X,body:Z.body===void 0?void 0:JSON.stringify(Z.body),signal:Z.signal,tls:Q.tls,...Z.stream?{timeout:!1}:{}};return fetch(`${Q.server}${Z.path}`,Y)}async function Zp0($){try{return await $.json()}catch{return null}}async function Sn($,Z){if($.ok)return;let Q=await Zp0($),X=Q?.message??`${Z} failed: ${$.status} ${$.statusText}`;throw new r9$($.status,Q,X)}async function Cn($,Z,Q,X,Y="none"){try{let G=await ZG($,Z);if(G.status===404)return null;if(await Sn(G,Q),Y==="json")return await G.json();return null}catch(G){throw new wZ(X,G)}}async function a9$($,Z,Q){let X=`${n70}/${encodeURIComponent(Z)}/${U9.TEMPLATE_PLURAL}/${encodeURIComponent(Q)}`;try{let Y=await ZG($,{method:"GET",path:X});if(Y.status===404||Y.status===403)return!1;return await Sn(Y,"sandboxTemplateExists"),!0}catch(Y){throw new wZ(`Failed to get SandboxTemplate: ${Q}`,Y)}}async function Qp0($,Z,Q){let X=`${n70}/${encodeURIComponent(Z)}/${U9.CLAIM_PLURAL}`,Y;try{Y=await ZG($,{method:"POST",path:X,body:Q})}catch(F){let H=F instanceof Error?F.message:String(F);throw console.warn(`[agent-sandbox/client] createSandboxClaim ${Q.metadata.name} transport error: ${H}`),new wZ(`Failed to create SandboxClaim: ${Q.metadata.name} (transport error: ${H})`,F)}if(Y.ok)return;let G=await Zp0(Y),J=G?.reason?` ${G.reason}`:"",W=G?.message??Y.statusText,K=`Failed to create SandboxClaim: ${Q.metadata.name} (${Y.status}${J}: ${W})`;if(console.warn(`[agent-sandbox/client] createSandboxClaim ${Q.metadata.name} rejected: status=${Y.status} reason=${G?.reason??"<none>"} message=${W}`),Y.status===409)throw new Vn(K);throw new wZ(K)}async function t70($,Z,Q,X=60000){let Y=Date.now()+X,G=500,J;while(!0){let W=await ZU($,Z,Q).catch(()=>{return});if(!W)return;if(J=W,Date.now()>=Y){let K=J.metadata?.finalizers??[],F=J.metadata?.deletionTimestamp??"<unknown>";throw new kn(`SandboxClaim ${Q} still terminating after ${X}ms (deletionTimestamp=${F}, finalizers=[${K.join(", ")}])`)}await L$(500)}}function Xp0($,Z){return`${n70}/${encodeURIComponent($)}/${U9.CLAIM_PLURAL}/${encodeURIComponent(Z)}`}async function o70($,Z,Q,X){await Cn($,{method:"PATCH",path:Xp0(Z,Q),patchType:"merge",body:{spec:{lifecycle:{shutdownPolicy:"Delete",shutdownTime:X}}}},"patchSandboxClaimShutdown",`Failed to patch SandboxClaim shutdownTime: ${Q}`)}async function ay($,Z,Q){await Cn($,{method:"DELETE",path:Xp0(Z,Q)},"deleteSandboxClaim",`Failed to delete SandboxClaim: ${Q}`)}async function ZU($,Z,Q){return await Cn($,{method:"GET",path:Xp0(Z,Q)},"getSandboxClaim",`Failed to get SandboxClaim: ${Q}`,"json")??void 0}async function s9$($,Z,Q,X=60){let Y=Date.now()+X*1000,G=200;while(Date.now()<Y){let W=(await ZU($,Z,Q).catch(()=>{return}))?.status?.sandbox?.name;if(W)return W;await L$(200)}throw new kn(`SandboxClaim ${Q} did not record an adopted Sandbox (status.sandbox.name) within ${X}s`)}async function e9$($,Z,Q){let Y=(await Cn($,{method:"GET",path:`${n70}/${encodeURIComponent(Z)}/sandboxwarmpools/${encodeURIComponent(Q)}`},"getSandboxWarmPool",`Failed to get SandboxWarmPool: ${Q}`,"json"))?.status?.selector;if(!Y)return null;let G=await ZG($,{method:"GET",path:`/api/v1/namespaces/${encodeURIComponent(Z)}/pods?labelSelector=${encodeURIComponent(Y)}`});return await Sn(G,"listWarmPoolPods"),((await G.json()).items??[]).filter((W)=>W.status?.phase==="Running").flatMap((W)=>W.metadata?.name&&W.metadata.uid?[{name:W.metadata.name,uid:W.metadata.uid,labels:W.metadata.labels??{}}]:[])}async function $Z$($,Z,Q,X){try{let Y=await ZG($,{method:"GET",path:`/api/v1/namespaces/${encodeURIComponent(Z)}/pods/${encodeURIComponent(Q)}`});if(!Y.ok)return!1;return!(await Y.json()).metadata?.labels?.[X]}catch{return!1}}async function ZZ$($,Z,Q,X,Y){try{let G=await ZG($,{method:"GET",path:`/api/v1/namespaces/${encodeURIComponent(Z)}/pods?labelSelector=${encodeURIComponent(`${Q}=${X}`)}`});if(!G.ok)return null;let W=((await G.json()).items??[]).reduce((K,F)=>K===null||(F.metadata?.creationTimestamp??"")>(K.metadata?.creationTimestamp??"")?F:K,null);return W?MQ4(W,Y):null}catch{return null}}function MQ4($,Z){let Q=($.status?.containerStatuses??[]).find((G)=>G.name===Z),X=Q?.state?.terminated??Q?.lastState?.terminated;if(!X?.reason){if($.status?.reason==="Evicted")return{reason:"Evicted",oomKilled:!1,...$.status.message===void 0?{}:{evictionMessage:$.status.message}};return null}let Y=($.spec?.containers??[]).find((G)=>G.name===Z)?.resources?.limits?.memory;return{reason:X.reason,oomKilled:X.reason==="OOMKilled",...X.exitCode===void 0?{}:{exitCode:X.exitCode},...Y===void 0?{}:{memoryLimit:Y}}}function GZ$($,Z){return`${kQ4}/${encodeURIComponent($)}/${YZ$}/${encodeURIComponent(Z)}`}async function JZ$($,Z,Q){let X=new URLSearchParams({fieldManager:KZ$,force:"true"}),Y=`${GZ$(Z,Q.metadata.name)}?${X}`;try{let G=await ZG($,{method:"PATCH",path:Y,patchType:"apply",body:Q});await Sn(G,"applyHttpRoute")}catch(G){throw new wZ(`Failed to apply HTTPRoute: ${Q.metadata.name}`,G)}}async function WZ$($,Z,Q){await Cn($,{method:"DELETE",path:GZ$(Z,Q)},"deleteHttpRoute",`Failed to delete HTTPRoute: ${Q}`)}async function FZ$($,Z,Q,X){let Y={apiVersion:"v1",kind:"Service",metadata:{name:Q},spec:{ports:[{name:X.name,port:X.port,targetPort:X.targetPort,protocol:X.protocol??"TCP"}]}},G=new URLSearchParams({fieldManager:KZ$,force:"true"}),J=`/api/v1/namespaces/${encodeURIComponent(Z)}/services/${encodeURIComponent(Q)}?${G}`;try{let W=await ZG($,{method:"PATCH",path:J,patchType:"apply",body:Y});await Sn(W,"ensureServicePort")}catch(W){throw new wZ(`Failed to apply Service ports: ${Q}`,W)}}function HZ$($,Z,Q,X=180){let Y=`/apis/${U9.SANDBOX_API_GROUP}/${U9.SANDBOX_API_VERSION}/namespaces/${encodeURIComponent(Z)}/${U9.SANDBOX_PLURAL}?watch=true&fieldSelector=${encodeURIComponent(`metadata.name=${Q}`)}`,{resolve:G,reject:J,promise:W}=Promise.withResolvers(),K=new AbortController,F=!1,H=setTimeout(()=>{if(F)return;F=!0,K.abort(),J(new kn(`Sandbox did not become ready within ${X} seconds`))},X*1000),U=(N)=>{if(F)return;F=!0,clearTimeout(H),K.abort(),N()};return(async()=>{let N;try{N=await ZG($,{method:"GET",path:Y,signal:K.signal,headers:{accept:"application/json"},stream:!0})}catch(B){U(()=>J(new wZ("Failed to start watch for sandbox readiness",B)));return}if(!N.ok||!N.body){let B=await Zp0(N).catch(()=>null);U(()=>J(new wZ(`Watch handshake failed (${N.status}): ${B?.message??N.statusText}`)));return}try{for await(let B of Gp0(N.body)){if(F)return;if(B.type==="ERROR"){let j=B.object;U(()=>J(new wZ(`Watch stream error while waiting for sandbox: ${j.message??"unknown"}`)));return}if(B.type!=="ADDED"&&B.type!=="MODIFIED")continue;let O=B.object;if(!O.status?.conditions?.find((j)=>j.type==="Ready"&&j.status==="True"))continue;let L=O.metadata?.name;if(!L){U(()=>J(new wZ("Sandbox metadata or name is missing")));return}let E=O.metadata?.annotations?.[U9.POD_NAME_ANNOTATION]??L;U(()=>G({sandboxName:L,podName:E}));return}U(()=>J(new wZ("Watch stream closed before sandbox became ready")))}catch(B){if(F)return;if(B instanceof Error&&(B.name==="AbortError"||K.signal.aborted))return;U(()=>J(new wZ("Watch stream error while waiting for sandbox",B)))}})(),W}async function*Gp0($){let Z=$.getReader(),Q=new TextDecoder,X="";try{while(!0){let{value:G,done:J}=await Z.read();if(J)break;X+=Q.decode(G,{stream:!0});let W;while((W=X.indexOf(`
|
|
944
944
|
`))>=0){let K=X.slice(0,W).trim();if(X=X.slice(W+1),!K)continue;yield JSON.parse(K)}}let Y=X.trim();if(Y)yield JSON.parse(Y)}finally{Z.releaseLock()}}var r9$,n70,QZ$="gateway.networking.k8s.io",XZ$="v1",YZ$="httproutes",kQ4,Yp0,KZ$="mesh-sandbox-runner";var r70=D(()=>{a8();p70();r9$=class r9$ extends Error{status;body;constructor($,Z,Q){super(Q);this.status=$;this.body=Z;this.name="KubeHttpError"}};n70=`/apis/${U9.CLAIM_API_GROUP}/${U9.CLAIM_API_VERSION}/namespaces`;kQ4=`/apis/${QZ$}/${XZ$}/namespaces`;Yp0={API_GROUP:QZ$,API_VERSION:XZ$,PLURAL:YZ$}});function SQ4($){return($.items??[]).some((Z)=>{if(Z.status?.phase!=="Pending")return!1;return(Z.status?.conditions??[]).some((Q)=>Q.type==="PodScheduled"&&Q.status==="False"&&Q.reason==="Unschedulable")})}function NZ$($,Z){let Q=0,X=!0,Y=null,G=async()=>{try{let J=await ZG($,{method:"GET",path:`/api/v1/namespaces/${encodeURIComponent(Z)}/pods?fieldSelector=status.phase%3DPending`});if(!J.ok)return UZ$;let W=await J.json();return!SQ4(W)}catch{return UZ$}};return async()=>{if(Date.now()-Q<VQ4)return X;return Y??=G().finally(()=>{Y=null}),X=await Y,Q=Date.now(),X}}var VQ4=3000,UZ$=!0;var BZ$=D(()=>{r70()});function VZ$($){return typeof $>"u"||$===null}function CQ4($){return typeof $==="object"&&$!==null}function _Q4($){if(Array.isArray($))return $;else if(VZ$($))return[];return[$]}function vQ4($,Z){var Q,X,Y,G;if(Z){G=Object.keys(Z);for(Q=0,X=G.length;Q<X;Q+=1)Y=G[Q],$[Y]=Z[Y]}return $}function fQ4($,Z){var Q="",X;for(X=0;X<Z;X+=1)Q+=$;return Q}function bQ4($){return $===0&&Number.NEGATIVE_INFINITY===1/$}function SZ$($,Z){var Q="",X=$.reason||"(unknown reason)";if(!$.mark)return X;if($.mark.name)Q+='in "'+$.mark.name+'" ';if(Q+="("+($.mark.line+1)+":"+($.mark.column+1)+")",!Z&&$.mark.snippet)Q+=`
|
|
945
945
|
|
|
946
946
|
`+$.mark.snippet;return X+" "+Q}function vn($,Z){if(Error.call(this),this.name="YAMLException",this.reason=$,this.mark=Z,this.message=SZ$(this,!1),Error.captureStackTrace)Error.captureStackTrace(this,this.constructor);else this.stack=Error().stack||""}function Jp0($,Z,Q,X,Y){var G="",J="",W=Math.floor(Y/2)-1;if(X-Z>W)G=" ... ",Z=X-W+G.length;if(Q-X>W)J=" ...",Q=X+W-J.length;return{str:G+$.slice(Z,Q).replace(/\t/g,"\u2192")+J,pos:X-Z+G.length}}function Wp0($,Z){return LZ.repeat(" ",Z-$.length)+$}function cQ4($,Z){if(Z=Object.create(Z||null),!$.buffer)return null;if(!Z.maxLength)Z.maxLength=79;if(typeof Z.indent!=="number")Z.indent=1;if(typeof Z.linesBefore!=="number")Z.linesBefore=3;if(typeof Z.linesAfter!=="number")Z.linesAfter=2;var Q=/\r?\n|\r|\0/g,X=[0],Y=[],G,J=-1;while(G=Q.exec($.buffer))if(Y.push(G.index),X.push(G.index+G[0].length),$.position<=G.index&&J<0)J=X.length-2;if(J<0)J=X.length-1;var W="",K,F,H=Math.min($.line+Z.linesAfter,Y.length).toString().length,U=Z.maxLength-(Z.indent+H+3);for(K=1;K<=Z.linesBefore;K++){if(J-K<0)break;F=Jp0($.buffer,X[J-K],Y[J-K],$.position-(X[J]-X[J-K]),U),W=LZ.repeat(" ",Z.indent)+Wp0(($.line-K+1).toString(),H)+" | "+F.str+`
|
|
@@ -1438,7 +1438,7 @@ Usage notes:
|
|
|
1438
1438
|
`+`- Every subtask call starts FRESH \u2014 no conversation history, no prior runs. Always include full context in the prompt and state exactly what to return (the specific answer/list/paths you need, not a raw dump); never use continuation phrases like 'continue' or 'as before'.
|
|
1439
1439
|
`+`- Clearly tell the subagent whether you expect it to take action or just research.
|
|
1440
1440
|
- To parallelize independent searches, launch multiple subtask calls in the same message.
|
|
1441
|
-
- The subagent's output should generally be trusted.`;hL4={readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}});function LU$($){let Z={},Q=$.split(/\r?\n/);for(let X=0;X<Q.length;X++){let Y=(Q[X]??"").trim();if(!Y||Y.startsWith("#"))continue;if(Y.startsWith("export "))Y=Y.slice(7).trim();let G=Y.indexOf("=");if(G<0)throw Error(`Line ${X+1}: missing '='`);let J=Y.slice(0,G).trim();if(!uL4.test(J))throw Error(`Line ${X+1}: invalid key "${J}"`);let W=Y.slice(G+1).trim();if(W.length>=2&&(W.startsWith('"')&&W.endsWith('"')||W.startsWith("'")&&W.endsWith("'")))W=W.slice(1,-1);Z[J]=W}return Z}var uL4;var EU$=D(()=>{uL4=/^[A-Za-z_][A-Za-z0-9_]*$/});async function zU$($){let Z=$.organization?.id;if(!Z)return{};try{let{value:Q}=await $.storage.secrets.resolveByName({organizationId:Z,scope:{kind:"organization"},name:jU$});return LU$(Q)}catch(Q){if(Q?.name!=="SecretNotFoundError")console.warn(`[org-run-env] ignoring the ${jU$} secret: ${Q instanceof Error?Q.message:String(Q)}`);return{}}}function PU$($,Z){return{...$,...Z}}var jU$="TASK_RUN_ENV";var AU$=D(()=>{EU$()});async function*TU$($,Z,Q){let X=!1;for await(let Y of $){if(yield Y,X||!Z)continue;if(Y.type!=="start")continue;X=!0,yield{type:"message-metadata",messageMetadata:{models:{thinking:{id:Z,title:Z,provider:Q}}}}}}function RU$($){let{role:Z,roleStatements:Q,connectionIds:X}=$;if(NZ(Z??void 0))return Object.fromEntries(X.map((G)=>[G,["*"]]));let Y={};for(let G of X){let J=new Set;for(let W of Q)for(let K of W[G]??[])J.add(K);if(J.size===0)continue;Y[G]=J.has("*")?["*"]:[...J]}return Y}function IU$($){return($??"").split(",").map((Z)=>Z.trim()).filter(Boolean)}var qU$=D(()=>{pQ()});function W_($){return $==="decopilot"||$==="claude-code"}function cL4($){return{type:"data-run-status",id:"run-status",data:{stage:$}}}function MU$($){if(!$||typeof $!=="object")return!1;return $.type==="data-run-status"}async function FG($){let{streamBuffer:Z,harnessId:Q,taskId:X,stage:Y}=$;if(!Z||!W_(Q))return;try{await Z.publishRawChunk(X,cL4(Y))}catch{}}var lL4,Vt,mb9;var K_=D(()=>{lL4=["waiting-runner","starting-run","starting-sandbox","waiting-capacity","gathering-context","preparing-tools","starting-assistant","analyzing-scope","retrying-provider"],Vt=["gathering-context","preparing-tools","starting-assistant","analyzing-scope"],mb9=new Set(lL4)});function St($){return $ instanceof Error&&$.superseded===!0}function _U$($){return $===404||$===410||$>=500}function yg($){return $===F_}class xr0{ctx;virtualMcpId;branch;credential;resume;interactive;streamBuffer;constructor($){this.ctx=$.ctx,this.virtualMcpId=$.virtualMcpId,this.branch=$.branch,this.credential=$.credential,this.resume=$.resume??null,this.interactive=$.interactive??!1,this.streamBuffer=$.streamBuffer}dispatch($){return this.stream($)}async resolveWorkspace($){let Z=await yO(this.ctx,$);if(!Z)return this.branch===eH($)?{cwd:kU$,branch:$U(this.branch)}:{cwd:null};return{cwd:kU$,repo:{owner:Z.owner,name:Z.name,connectedGithub:Boolean(Z.connectionId)},branch:this.branch.startsWith("thread:")?$U(this.branch):this.branch}}async mcpForRun($,Z,Q){let X=await this.orgMcpConnections($),Y=await this.dispatcherConnectionGrants($.id,Q,X.map((K)=>K.id)),G=X.filter((K)=>(K.id in Y)),J=await jD0(this.ctx,this.virtualMcpId,$,`${F_}-run`,"task-run",Z,L3$({toolNames:jt0,grants:Y}));if(G.length===0||!$.slug)return{mcp:J};let W=w3$({publicUrl:G9(),organizationSlug:$.slug,headers:J.headers,connections:G});return console.log(`[${F_}] org mcps: ${W.map((K)=>K.name).join(" ")||"none"}${X.length===G.length?"":` (${X.length-G.length} withheld \u2014 the `+"dispatching user has no grant for them)"}`),{mcp:J,orgMcps:W}}async dispatcherConnectionGrants($,Z,Q){if(Q.length===0)return{};let Y=(await this.ctx.db.selectFrom("member").select(["role"]).where("organizationId","=",$).where("userId","=",Z).executeTakeFirst())?.role,G=NZ(Y??void 0)?[]:(await Promise.all(IU$(Y).map((J)=>Ct(this.ctx.db,$,J)))).filter((J)=>Boolean(J));return RU$({role:Y,roleStatements:G,connectionIds:Q})}async orgMcpConnections($){if(!$.slug)return[];let[Z,Q]=await Promise.all([this.ctx.storage.organizationSettings.get($.id),this.ctx.storage.virtualMcps.findById(this.virtualMcpId).catch(()=>null)]),X=ZX(Z?.flags,"coding_agent_org_mcps"),Y=new Set((Q?.connections??[]).map((J)=>J.connection_id));if(!X&&Y.size===0)return[];let{items:G}=await this.ctx.storage.connections.list($.id);return XE4({organizationId:$.id,orgWide:X,ownIds:Y,connections:G})}async*stream($){if(!this.credential)throw Error(`the ${F_} harness needs a resolved model credential; this run has none (check the agent's thinking model)`);let Z=d3$(this.credential,l3$(this.ctx.metadata?.runMetadata?.[VD0])),Q=this.ctx.organization;if(!Q)throw Error(`the ${F_} harness needs an organization on the context to mint its MCP endpoint; this run has none`);let X=PU$(await zU$(this.ctx),Z),Y=await FX(this.ctx),G={...$,...await this.mcpForRun(Q,$.threadId,$.user.id),workspace:await this.resolveWorkspace($.threadId)},J=$.threadId,{ctx:W,virtualMcpId:K,branch:F,interactive:H,streamBuffer:U}=this,N=this.credential.providerId,B=null,O=(w)=>async function*(){let L=await Bg({virtualMcpId:K,branch:F,purpose:H?"interactive":"harness-run",onColdStart:()=>FG({streamBuffer:U,harnessId:F_,taskId:J,stage:"starting-sandbox"})},W);B=L.sandboxHandle,await rL4(Y,L.sandboxHandle,X),yield*TU$($E4({provider:Y,handle:L.sandboxHandle,input:w?{...G,resume:w}:G,runId:J,signal:$.signal}),w?null:Z.CLAUDE_CODE_MODEL,N)}();try{yield*pL4({runId:J,resume:this.resume,aborted:()=>$.signal?.aborted===!0,dispatchOnce:O,lastHandle:()=>B,describeTermination:async(w)=>w===null?null:tL4(await Y.lastTermination(w))})}finally{if(B&&!this.interactive&&V0().sandboxReleaseOnRunEndEnabled)await Y.releaseAfter(B,V0().sandboxReleaseGraceMs).catch(()=>{})}}}async function*pL4($){let Z=$.maxAttempts??dL4,Q=$.maxTotalAttempts??mL4,X=$.resume,Y=X!==null,G=0;for(let J=1;;J++){let W=!1;try{for await(let K of $.dispatchOnce(X)){if(W=!0,K.type==="start"){if(Y)continue;Y=!0}yield K}return}catch(K){if($.aborted())throw K;G=W?0:G+1;let F=K instanceof GY?await $.describeTermination?.($.lastHandle?.()??null).catch(()=>null)??null:null;if(St(K)||!(K instanceof GY)||G>=Z||J>=Q){if(F&&K instanceof GY)throw new GY(K.reason,F);throw K}console.warn("[sandbox-dispatch] sandbox lost mid-run; continuing",{runId:$.runId,attempt:J,progressed:W,reason:K.message,termination:F}),X={reason:nL4(K.message,F)}}}}function nL4($,Z){let Q=`the sandbox running the previous attempt stopped answering (${$})`;if(!Z)return Q;return`${Q}. ${Z}. A replacement sandbox has been started from the last state pushed to the branch. Tell the user this happened, re-read the files you had been editing rather than trusting your memory of them, and if a step needs more memory than the sandbox has, split it instead of repeating what was killed`}function tL4($){if(!$)return null;if($.oomKilled)return`it was killed by the kernel for exceeding its memory limit${$.memoryLimit?` (memory limit ${$.memoryLimit})`:""} \u2014 OOMKilled`;if($.reason==="Completed")return null;let Z=$.exitCode===void 0?"":` (exit code ${$.exitCode})`;return`the sandbox container terminated with reason ${$.reason}${Z}`}async function rL4($,Z,Q){let X;try{X=await $.proxyDaemonRequest(Z,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({env:Q}),signal:AbortSignal.timeout(oL4)})}catch(Y){throw new GY(`could not push the model env to the sandbox: ${Y instanceof Error?Y.message:String(Y)}`)}if(!X.ok){let Y=`failed to push model env to the sandbox (${X.status} ${X.statusText})`;if(_U$(X.status))throw new GY(Y);throw Error(Y)}}function aL4($){let{signal:Z,...Q}=$;return Q}function eL4($,Z){let Q=()=>void $.renewTtl(Z).catch((Y)=>console.warn(`[sandbox-dispatch] TTL renew failed for ${Z}: ${Y instanceof Error?Y.message:String(Y)}`));Q();let X=setInterval(Q,sL4);return X.unref?.(),()=>clearInterval(X)}async function*$E4($){let Z=Date.now(),Q=aL4($.input),X=(F=!1)=>$.provider.proxyDaemonRequest($.handle,"/_sandbox/dispatch",{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({...F?{harnessId:F_}:{},runId:$.runId,input:Q}),...$.signal?{signal:$.signal}:{}}),Y;try{if(Y=await X(),Y.status===400){let F=await Y.clone().json().catch(()=>null);if(typeof F==="object"&&F!==null&&"error"in F&&F.error==="missing_harness_id")Y=await X(!0)}}catch(F){if($.signal?.aborted)throw F;throw new GY(`could not reach the sandbox daemon: ${F instanceof Error?F.message:String(F)}`)}if(!Y.ok){let F=await Y.text().catch(()=>Y.statusText),H=`sandbox dispatch failed (${Y.status}): ${F.slice(0,512)}`;if(_U$(Y.status))throw new GY(H);throw Error(H)}if(!Y.body)throw new GY("dispatch returned no body");let G=eL4($.provider,$.handle),J=0,W=null,K=!1;try{for await(let F of QE4(Y.body,$.signal)){let H=m3$.safeParse(F);if(!H.success)throw Error(`sandbox dispatch returned a malformed frame: ${H.error.message}`);if(J+=H.data.chunks.length,yield*H.data.chunks,W??=H.data.error,H.data.done)K=!0}}finally{G()}if(console.log("[sandbox-dispatch] run ended",{runId:$.runId,handle:$.handle,chunks:J,elapsedMs:Date.now()-Z,done:K,error:W?.code??null}),!K&&!W)throw new GY(`the sandbox stopped streaming after ${J} chunks without finishing the run`);if(W)throw ZE4(W.code,W.message)}function ZE4($,Z){if($===iL4)return new CU$(Z);if($===p3$)return new GY(Z);return Error(`${$}: ${Z}`)}async function*QE4($,Z){let Q=new TextDecoder,X="",Y=function*(J){let W=X.split(`
|
|
1441
|
+
- The subagent's output should generally be trusted.`;hL4={readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}});function LU$($){let Z={},Q=$.split(/\r?\n/);for(let X=0;X<Q.length;X++){let Y=(Q[X]??"").trim();if(!Y||Y.startsWith("#"))continue;if(Y.startsWith("export "))Y=Y.slice(7).trim();let G=Y.indexOf("=");if(G<0)throw Error(`Line ${X+1}: missing '='`);let J=Y.slice(0,G).trim();if(!uL4.test(J))throw Error(`Line ${X+1}: invalid key "${J}"`);let W=Y.slice(G+1).trim();if(W.length>=2&&(W.startsWith('"')&&W.endsWith('"')||W.startsWith("'")&&W.endsWith("'")))W=W.slice(1,-1);Z[J]=W}return Z}var uL4;var EU$=D(()=>{uL4=/^[A-Za-z_][A-Za-z0-9_]*$/});async function zU$($){let Z=$.organization?.id;if(!Z)return{};try{let{value:Q}=await $.storage.secrets.resolveByName({organizationId:Z,scope:{kind:"organization"},name:jU$});return LU$(Q)}catch(Q){if(Q?.name!=="SecretNotFoundError")console.warn(`[org-run-env] ignoring the ${jU$} secret: ${Q instanceof Error?Q.message:String(Q)}`);return{}}}function PU$($,Z){return{...$,...Z}}var jU$="TASK_RUN_ENV";var AU$=D(()=>{EU$()});async function*TU$($,Z,Q){let X=!1;for await(let Y of $){if(yield Y,X||!Z)continue;if(Y.type!=="start")continue;X=!0,yield{type:"message-metadata",messageMetadata:{models:{thinking:{id:Z,title:Z,provider:Q}}}}}}function RU$($){let{role:Z,roleStatements:Q,connectionIds:X}=$;if(NZ(Z??void 0))return Object.fromEntries(X.map((G)=>[G,["*"]]));let Y={};for(let G of X){let J=new Set;for(let W of Q)for(let K of W[G]??[])J.add(K);if(J.size===0)continue;Y[G]=J.has("*")?["*"]:[...J]}return Y}function IU$($){return($??"").split(",").map((Z)=>Z.trim()).filter(Boolean)}var qU$=D(()=>{pQ()});function W_($){return $==="decopilot"||$==="claude-code"}function cL4($){return{type:"data-run-status",id:"run-status",data:{stage:$}}}function MU$($){if(!$||typeof $!=="object")return!1;return $.type==="data-run-status"}async function FG($){let{streamBuffer:Z,harnessId:Q,taskId:X,stage:Y}=$;if(!Z||!W_(Q))return;try{await Z.publishRawChunk(X,cL4(Y))}catch{}}var lL4,Vt,mb9;var K_=D(()=>{lL4=["waiting-runner","starting-run","starting-sandbox","waiting-capacity","gathering-context","preparing-tools","starting-assistant","analyzing-scope","retrying-provider"],Vt=["gathering-context","preparing-tools","starting-assistant","analyzing-scope"],mb9=new Set(lL4)});function St($){return $ instanceof Error&&$.superseded===!0}function _U$($){return $===404||$===410||$>=500}function yg($){return $===F_}class xr0{ctx;virtualMcpId;branch;credential;resume;interactive;streamBuffer;constructor($){this.ctx=$.ctx,this.virtualMcpId=$.virtualMcpId,this.branch=$.branch,this.credential=$.credential,this.resume=$.resume??null,this.interactive=$.interactive??!1,this.streamBuffer=$.streamBuffer}dispatch($){return this.stream($)}async resolveWorkspace($){let Z=await yO(this.ctx,$);if(!Z)return this.branch===eH($)?{cwd:kU$,branch:$U(this.branch)}:{cwd:null};return{cwd:kU$,repo:{owner:Z.owner,name:Z.name,connectedGithub:Boolean(Z.connectionId)},branch:this.branch.startsWith("thread:")?$U(this.branch):this.branch}}async mcpForRun($,Z,Q){let X=await this.orgMcpConnections($),Y=await this.dispatcherConnectionGrants($.id,Q,X.map((K)=>K.id)),G=X.filter((K)=>(K.id in Y)),J=await jD0(this.ctx,this.virtualMcpId,$,`${F_}-run`,"task-run",Z,L3$({toolNames:jt0,grants:Y}));if(G.length===0||!$.slug)return{mcp:J};let W=w3$({publicUrl:G9(),organizationSlug:$.slug,headers:J.headers,connections:G});return console.log(`[${F_}] org mcps: ${W.map((K)=>K.name).join(" ")||"none"}${X.length===G.length?"":` (${X.length-G.length} withheld \u2014 the `+"dispatching user has no grant for them)"}`),{mcp:J,orgMcps:W}}async dispatcherConnectionGrants($,Z,Q){if(Q.length===0)return{};let Y=(await this.ctx.db.selectFrom("member").select(["role"]).where("organizationId","=",$).where("userId","=",Z).executeTakeFirst())?.role,G=NZ(Y??void 0)?[]:(await Promise.all(IU$(Y).map((J)=>Ct(this.ctx.db,$,J)))).filter((J)=>Boolean(J));return RU$({role:Y,roleStatements:G,connectionIds:Q})}async orgMcpConnections($){if(!$.slug)return[];let[Z,Q]=await Promise.all([this.ctx.storage.organizationSettings.get($.id),this.ctx.storage.virtualMcps.findById(this.virtualMcpId).catch(()=>null)]),X=ZX(Z?.flags,"coding_agent_org_mcps"),Y=new Set((Q?.connections??[]).map((J)=>J.connection_id));if(!X&&Y.size===0)return[];let{items:G}=await this.ctx.storage.connections.list($.id);return XE4({organizationId:$.id,orgWide:X,ownIds:Y,connections:G})}async*stream($){if(!this.credential)throw Error(`the ${F_} harness needs a resolved model credential; this run has none (check the agent's thinking model)`);let Z=d3$(this.credential,l3$(this.ctx.metadata?.runMetadata?.[VD0])),Q=this.ctx.organization;if(!Q)throw Error(`the ${F_} harness needs an organization on the context to mint its MCP endpoint; this run has none`);let X=PU$(await zU$(this.ctx),Z),Y=await FX(this.ctx),G={...$,...await this.mcpForRun(Q,$.threadId,$.user.id),workspace:await this.resolveWorkspace($.threadId)},J=$.threadId,{ctx:W,virtualMcpId:K,branch:F,interactive:H,streamBuffer:U}=this,N=this.credential.providerId,B=null,O=(w)=>async function*(){let L=await Bg({virtualMcpId:K,branch:F,purpose:H?"interactive":"harness-run",onColdStart:()=>FG({streamBuffer:U,harnessId:F_,taskId:J,stage:"starting-sandbox"})},W);B=L.sandboxHandle,await rL4(Y,L.sandboxHandle,X),yield*TU$($E4({provider:Y,handle:L.sandboxHandle,input:w?{...G,resume:w}:G,runId:J,signal:$.signal}),w?null:Z.CLAUDE_CODE_MODEL,N)}();try{yield*pL4({runId:J,resume:this.resume,aborted:()=>$.signal?.aborted===!0,dispatchOnce:O,lastHandle:()=>B,describeTermination:async(w)=>w===null?null:tL4(await Y.lastTermination(w))})}finally{if(B&&!this.interactive&&V0().sandboxReleaseOnRunEndEnabled)await Y.releaseAfter(B,V0().sandboxReleaseGraceMs).catch(()=>{})}}}async function*pL4($){let Z=$.maxAttempts??dL4,Q=$.maxTotalAttempts??mL4,X=$.resume,Y=X!==null,G=0;for(let J=1;;J++){let W=!1;try{for await(let K of $.dispatchOnce(X)){if(W=!0,K.type==="start"){if(Y)continue;Y=!0}yield K}return}catch(K){if($.aborted())throw K;G=W?0:G+1;let F=K instanceof GY?await $.describeTermination?.($.lastHandle?.()??null).catch(()=>null)??null:null;if(St(K)||!(K instanceof GY)||G>=Z||J>=Q){if(F&&K instanceof GY)throw new GY(K.reason,F);throw K}console.warn("[sandbox-dispatch] sandbox lost mid-run; continuing",{runId:$.runId,attempt:J,progressed:W,reason:K.message,termination:F}),X={reason:nL4(K.message,F)}}}}function nL4($,Z){let Q=`the sandbox running the previous attempt stopped answering (${$})`;if(!Z)return Q;return`${Q}. ${Z}. A replacement sandbox has been started from the last state pushed to the branch. Tell the user this happened, re-read the files you had been editing rather than trusting your memory of them, and if a step needs more memory than the sandbox has, split it instead of repeating what was killed`}function tL4($){if(!$)return null;if($.oomKilled)return`it was killed by the kernel for exceeding its memory limit${$.memoryLimit?` (memory limit ${$.memoryLimit})`:""} \u2014 OOMKilled`;if($.reason==="Evicted")return`the sandbox pod was evicted by the kubelet${$.evictionMessage?`: ${$.evictionMessage.replace(/\.$/,"")}`:""} \u2014 the run filled a `+"resource the pod is capped at, so retrying it on a fresh pod will hit the same limit unless it writes less";if($.reason==="Completed")return null;let Z=$.exitCode===void 0?"":` (exit code ${$.exitCode})`;return`the sandbox container terminated with reason ${$.reason}${Z}`}async function rL4($,Z,Q){let X;try{X=await $.proxyDaemonRequest(Z,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({env:Q}),signal:AbortSignal.timeout(oL4)})}catch(Y){throw new GY(`could not push the model env to the sandbox: ${Y instanceof Error?Y.message:String(Y)}`)}if(!X.ok){let Y=`failed to push model env to the sandbox (${X.status} ${X.statusText})`;if(_U$(X.status))throw new GY(Y);throw Error(Y)}}function aL4($){let{signal:Z,...Q}=$;return Q}function eL4($,Z){let Q=()=>void $.renewTtl(Z).catch((Y)=>console.warn(`[sandbox-dispatch] TTL renew failed for ${Z}: ${Y instanceof Error?Y.message:String(Y)}`));Q();let X=setInterval(Q,sL4);return X.unref?.(),()=>clearInterval(X)}async function*$E4($){let Z=Date.now(),Q=aL4($.input),X=(F=!1)=>$.provider.proxyDaemonRequest($.handle,"/_sandbox/dispatch",{method:"POST",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({...F?{harnessId:F_}:{},runId:$.runId,input:Q}),...$.signal?{signal:$.signal}:{}}),Y;try{if(Y=await X(),Y.status===400){let F=await Y.clone().json().catch(()=>null);if(typeof F==="object"&&F!==null&&"error"in F&&F.error==="missing_harness_id")Y=await X(!0)}}catch(F){if($.signal?.aborted)throw F;throw new GY(`could not reach the sandbox daemon: ${F instanceof Error?F.message:String(F)}`)}if(!Y.ok){let F=await Y.text().catch(()=>Y.statusText),H=`sandbox dispatch failed (${Y.status}): ${F.slice(0,512)}`;if(_U$(Y.status))throw new GY(H);throw Error(H)}if(!Y.body)throw new GY("dispatch returned no body");let G=eL4($.provider,$.handle),J=0,W=null,K=!1;try{for await(let F of QE4(Y.body,$.signal)){let H=m3$.safeParse(F);if(!H.success)throw Error(`sandbox dispatch returned a malformed frame: ${H.error.message}`);if(J+=H.data.chunks.length,yield*H.data.chunks,W??=H.data.error,H.data.done)K=!0}}finally{G()}if(console.log("[sandbox-dispatch] run ended",{runId:$.runId,handle:$.handle,chunks:J,elapsedMs:Date.now()-Z,done:K,error:W?.code??null}),!K&&!W)throw new GY(`the sandbox stopped streaming after ${J} chunks without finishing the run`);if(W)throw ZE4(W.code,W.message)}function ZE4($,Z){if($===iL4)return new CU$(Z);if($===p3$)return new GY(Z);return Error(`${$}: ${Z}`)}async function*QE4($,Z){let Q=new TextDecoder,X="",Y=function*(J){let W=X.split(`
|
|
1442
1442
|
`);X=J?W.pop()??"":"";for(let K of W){if(K.trim().length===0)continue;try{yield JSON.parse(K)}catch(F){throw Error(`sandbox dispatch produced a non-JSON line: ${F instanceof Error?F.message:String(F)} (line: ${K.slice(0,256)})`)}}},G=$[Symbol.asyncIterator]();try{for(;;){let J=new AbortController,W=G.next().then((H)=>{return J.abort(),H}),K=L$(VU$,{signal:J.signal}).then(()=>"silent").catch(()=>"read-won"),F=await Promise.race([W,K]).catch((H)=>{if(Z?.aborted)throw H;let U=H instanceof Error?H.message:String(H);if(!br0(U))throw H;throw new GY(`the sandbox stream broke mid-run: ${U}`)});if(F==="silent"){if(Z?.aborted)return;throw new GY(`no output from the sandbox for ${VU$/1000}s (its keepalive is every 15s, so the pod is gone)`)}if(F==="read-won")continue;if(F.done)break;if(X+=Q.decode(F.value,{stream:!0}),yield*Y(!0),X.length>SU$)throw Error(`sandbox dispatch produced a line over ${SU$} chars without a newline \u2014 refusing to buffer it further`)}X+=Q.decode(),yield*Y(!1)}finally{await G.return?.().catch(()=>{})}}function XE4($){return $.connections.filter((Z)=>($.orgWide||$.ownIds.has(Z.id))&&Z.status==="active"&&!YE4($.organizationId,Z.id))}function YE4($,Z){return[f8.SELF,f8.REGISTRY,f8.COMMUNITY_REGISTRY,f8.DEV_ASSETS,f8.COMMERCE_DISCOVERY].some((Q)=>Q($)===Z)}var kU$="/repo",F_="claude-code",dL4=2,mL4=5,VU$=90000,SU$=67108864,GY,CU$,iL4="superseded",oL4=30000,sL4=300000;var rw0=D(()=>{a8();i3$();Ir0();SD0();AU$();Et0();i9();I8();pQ();KD();qU$();dK();u5();s3();D$();en();K_();n3();GY=class GY extends Error{reason;constructor($,Z){super(`${CD0} ${$}${Z?` \u2014 ${Z}`:""}`);this.name="SandboxUnreachableError",this.reason=$}};CU$=class CU$ extends Error{superseded=!0;constructor($){super($);this.name="RunSupersededError"}}});function yr0($){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 vU$=D(()=>{QK();lb()});var fU$=D(()=>{vU$()});import{z as _t}from"zod/v4";import{z as q}from"zod/v4";import{z as F1}from"zod/v4";import{z as jZ}from"zod/v4";import{z as PJ}from"zod/v4";import{z as _9}from"zod/v4";import{z as v9}from"zod/v4";import{z as q6}from"zod/v4";import{z as M6}from"zod/v4";import{z as YW}from"zod/v4";import{z as e1}from"zod/v4";import{z as b1}from"zod/v4";import{z as H_}from"zod/v4";import{z as lr0}from"zod/v4";import{z as cr0}from"zod/v4";import{z as vt}from"zod/v4";import{z as zJ}from"zod/v4";import{z as P7}from"zod/v4";import{z as h6}from"zod/v4";import{z as sK}from"zod/v4";import{z as eK}from"zod/v4";import{z as $F}from"zod/v4";import{z as U_}from"zod/v4";function HE4($){var Z;let Q=$==null?void 0:$.anthropic;return(Z=Q==null?void 0:Q.cacheControl)!=null?Z:Q==null?void 0:Q.cache_control}async function yE4({tools:$,toolChoice:Z,disableParallelToolUse:Q,cacheControlValidator:X,supportsStructuredOutput:Y,supportsStrictTools:G,defaultEagerInputStreaming:J=!1}){var W,K;$=($==null?void 0:$.length)?$:void 0;let F=[],H=new Set,U=X||new dr0;if($==null)return{tools:void 0,toolChoice:void 0,toolWarnings:F,betas:H};let N=[];for(let O of $)switch(O.type){case"function":{let w=U.getCacheControl(O.providerOptions,{type:"tool definition",canCache:!0}),L=(W=O.providerOptions)==null?void 0:W.anthropic,E=(K=L==null?void 0:L.eagerInputStreaming)!=null?K:J,j=L==null?void 0:L.deferLoading,z=L==null?void 0:L.allowedCallers;if(!G&&O.strict!=null)F.push({type:"unsupported",feature:"strict",details:`Tool '${O.name}' has strict: ${O.strict}, but strict mode is not supported by this provider. The strict property will be ignored.`});if(N.push({name:O.name,description:O.description,input_schema:O.inputSchema,cache_control:w,...E?{eager_input_streaming:!0}:{},...G===!0&&O.strict!=null?{strict:O.strict}:{},...j!=null?{defer_loading:j}:{},...z!=null?{allowed_callers:z}:{},...O.inputExamples!=null?{input_examples:O.inputExamples.map((P)=>P.input)}:{}}),Y===!0)H.add("structured-outputs-2025-11-13");if(O.inputExamples!=null||z!=null)H.add("advanced-tool-use-2025-11-20");break}case"provider":{switch(O.id){case"anthropic.code_execution_20250522":{H.add("code-execution-2025-05-22"),N.push({type:"code_execution_20250522",name:"code_execution",cache_control:void 0});break}case"anthropic.code_execution_20250825":{H.add("code-execution-2025-08-25"),N.push({type:"code_execution_20250825",name:"code_execution"});break}case"anthropic.code_execution_20260120":{N.push({type:"code_execution_20260120",name:"code_execution"});break}case"anthropic.computer_20250124":{H.add("computer-use-2025-01-24"),N.push({name:"computer",type:"computer_20250124",display_width_px:O.args.displayWidthPx,display_height_px:O.args.displayHeightPx,display_number:O.args.displayNumber,cache_control:void 0});break}case"anthropic.computer_20251124":{H.add("computer-use-2025-11-24"),N.push({name:"computer",type:"computer_20251124",display_width_px:O.args.displayWidthPx,display_height_px:O.args.displayHeightPx,display_number:O.args.displayNumber,enable_zoom:O.args.enableZoom,cache_control:void 0});break}case"anthropic.computer_20241022":{H.add("computer-use-2024-10-22"),N.push({name:"computer",type:"computer_20241022",display_width_px:O.args.displayWidthPx,display_height_px:O.args.displayHeightPx,display_number:O.args.displayNumber,cache_control:void 0});break}case"anthropic.text_editor_20250124":{H.add("computer-use-2025-01-24"),N.push({name:"str_replace_editor",type:"text_editor_20250124",cache_control:void 0});break}case"anthropic.text_editor_20241022":{H.add("computer-use-2024-10-22"),N.push({name:"str_replace_editor",type:"text_editor_20241022",cache_control:void 0});break}case"anthropic.text_editor_20250429":{H.add("computer-use-2025-01-24"),N.push({name:"str_replace_based_edit_tool",type:"text_editor_20250429",cache_control:void 0});break}case"anthropic.text_editor_20250728":{let w=await u$({value:O.args,schema:DE4});N.push({name:"str_replace_based_edit_tool",type:"text_editor_20250728",max_characters:w.maxCharacters,cache_control:void 0});break}case"anthropic.bash_20250124":{H.add("computer-use-2025-01-24"),N.push({name:"bash",type:"bash_20250124",cache_control:void 0});break}case"anthropic.bash_20241022":{H.add("computer-use-2024-10-22"),N.push({name:"bash",type:"bash_20241022",cache_control:void 0});break}case"anthropic.memory_20250818":{H.add("context-management-2025-06-27"),N.push({name:"memory",type:"memory_20250818"});break}case"anthropic.web_fetch_20250910":{H.add("web-fetch-2025-09-10");let w=await u$({value:O.args,schema:vE4});N.push({type:"web_fetch_20250910",name:"web_fetch",max_uses:w.maxUses,allowed_domains:w.allowedDomains,blocked_domains:w.blockedDomains,citations:w.citations,max_content_tokens:w.maxContentTokens,cache_control:void 0});break}case"anthropic.web_fetch_20260209":{H.add("code-execution-web-tools-2026-02-09");let w=await u$({value:O.args,schema:kE4});N.push({type:"web_fetch_20260209",name:"web_fetch",max_uses:w.maxUses,allowed_domains:w.allowedDomains,blocked_domains:w.blockedDomains,citations:w.citations,max_content_tokens:w.maxContentTokens,cache_control:void 0});break}case"anthropic.web_search_20250305":{let w=await u$({value:O.args,schema:RE4});N.push({type:"web_search_20250305",name:"web_search",max_uses:w.maxUses,allowed_domains:w.allowedDomains,blocked_domains:w.blockedDomains,user_location:w.userLocation,cache_control:void 0});break}case"anthropic.web_search_20260209":{H.add("code-execution-web-tools-2026-02-09");let w=await u$({value:O.args,schema:jE4});N.push({type:"web_search_20260209",name:"web_search",max_uses:w.maxUses,allowed_domains:w.allowedDomains,blocked_domains:w.blockedDomains,user_location:w.userLocation,cache_control:void 0});break}case"anthropic.tool_search_regex_20251119":{N.push({type:"tool_search_tool_regex_20251119",name:"tool_search_tool_regex"});break}case"anthropic.tool_search_bm25_20251119":{N.push({type:"tool_search_tool_bm25_20251119",name:"tool_search_tool_bm25"});break}case"anthropic.advisor_20260301":{H.add("advisor-tool-2026-03-01");let w=await u$({value:O.args,schema:UE4});N.push({type:"advisor_20260301",name:"advisor",model:w.model,...w.maxUses!==void 0&&{max_uses:w.maxUses},...w.caching!==void 0&&{caching:w.caching}});break}default:{F.push({type:"unsupported",feature:`provider-defined tool ${O.id}`});break}}break}default:{F.push({type:"unsupported",feature:`tool ${O}`});break}}if(Z==null)return{tools:N,toolChoice:Q?{type:"auto",disable_parallel_tool_use:Q}:void 0,toolWarnings:F,betas:H};let B=Z.type;switch(B){case"auto":return{tools:N,toolChoice:{type:"auto",disable_parallel_tool_use:Q},toolWarnings:F,betas:H};case"required":return{tools:N,toolChoice:{type:"any",disable_parallel_tool_use:Q},toolWarnings:F,betas:H};case"none":return{tools:void 0,toolChoice:void 0,toolWarnings:F,betas:H};case"tool":return{tools:N,toolChoice:{type:"tool",name:Z.toolName,disable_parallel_tool_use:Q},toolWarnings:F,betas:H};default:throw new b4({functionality:`tool choice type: ${B}`})}}function hU$({usage:$,rawUsage:Z}){var Q,X,Y;let G=(Q=$.cache_creation_input_tokens)!=null?Q:0,J=(X=$.cache_read_input_tokens)!=null?X:0,W,K,F=(Y=$.iterations)==null?void 0:Y.some((H)=>H.type==="fallback_message");if($.iterations&&$.iterations.length>0&&!F){let H=$.iterations.filter((U)=>U.type==="compaction"||U.type==="message");if(H.length>0){let U=H.reduce((N,B)=>({input:N.input+B.input_tokens,output:N.output+B.output_tokens}),{input:0,output:0});W=U.input,K=U.output}else W=$.input_tokens,K=$.output_tokens}else W=$.input_tokens,K=$.output_tokens;return{inputTokens:{total:W+G+J,noCache:W,cacheRead:J,cacheWrite:G},outputTokens:{total:K,text:void 0,reasoning:void 0},raw:Z!=null?Z:$}}function rE4($){if(typeof $==="string")return new TextDecoder().decode(q9($));if($ instanceof Uint8Array)return new TextDecoder().decode($);if($ instanceof URL)throw new b4({functionality:"URL-based text documents are not supported for citations"});throw new b4({functionality:`unsupported data type for text documents: ${typeof $}`})}function gr0($){return $ instanceof URL||aE4($)}function aE4($){return typeof $==="string"&&/^https?:\/\//i.test($)}function hr0($){return $ instanceof URL?$.toString():$}async function uU$($){if(typeof $==="string"){let Z=await dZ({text:$});if(Z.success&&typeof Z.value==="object"&&Z.value!==null)return Z.value;return{errorCode:"unavailable"}}if(typeof $==="object"&&$!==null)return $;return{}}async function sE4({prompt:$,sendReasoning:Z,warnings:Q,cacheControlValidator:X,toolNameMapping:Y}){var G,J,W,K,F,H,U,N,B,O,w,L,E,j,z,P,A,I,k,M,S;let m=new Set,f=eE4($),b=X||new dr0,p=void 0,l=[];async function o(j0){var a,r;let T0=await $4({provider:"anthropic",providerOptions:j0,schema:xU$});return(r=(a=T0==null?void 0:T0.citations)==null?void 0:a.enabled)!=null?r:!1}async function N0(j0){let a=await $4({provider:"anthropic",providerOptions:j0,schema:xU$});return{title:a==null?void 0:a.title,context:a==null?void 0:a.context}}for(let j0=0;j0<f.length;j0++){let a=f[j0],r=j0===f.length-1,T0=a.type;switch(T0){case"system":{let Z0=a.messages.map(({content:z0,providerOptions:y0})=>({type:"text",text:z0,cache_control:b.getCacheControl(y0,{type:"system message",canCache:!0})}));if(p==null)p=Z0;else l.push({role:"system",content:Z0}),m.add("mid-conversation-system-2026-04-07");break}case"user":{let Z0=[];for(let z0 of a.messages){let{role:y0,content:I0}=z0;switch(y0){case"user":{for(let u0=0;u0<I0.length;u0++){let X0=I0[u0],O0=u0===I0.length-1,w0=(G=b.getCacheControl(X0.providerOptions,{type:"user message part",canCache:!0}))!=null?G:O0?b.getCacheControl(z0.providerOptions,{type:"user message",canCache:!0}):void 0;switch(X0.type){case"text":{Z0.push({type:"text",text:X0.text,cache_control:w0});break}case"file":{if(X0.mediaType.startsWith("image/"))Z0.push({type:"image",source:gr0(X0.data)?{type:"url",url:hr0(X0.data)}:{type:"base64",media_type:X0.mediaType==="image/*"?"image/jpeg":X0.mediaType,data:OZ(X0.data)},cache_control:w0});else if(X0.mediaType==="application/pdf"){m.add("pdfs-2024-09-25");let M0=await o(X0.providerOptions),e=await N0(X0.providerOptions);Z0.push({type:"document",source:gr0(X0.data)?{type:"url",url:hr0(X0.data)}:{type:"base64",media_type:"application/pdf",data:OZ(X0.data)},title:(J=e.title)!=null?J:X0.filename,...e.context&&{context:e.context},...M0&&{citations:{enabled:!0}},cache_control:w0})}else if(X0.mediaType==="text/plain"){let M0=await o(X0.providerOptions),e=await N0(X0.providerOptions);Z0.push({type:"document",source:gr0(X0.data)?{type:"url",url:hr0(X0.data)}:{type:"text",media_type:"text/plain",data:rE4(X0.data)},title:(W=e.title)!=null?W:X0.filename,...e.context&&{context:e.context},...M0&&{citations:{enabled:!0}},cache_control:w0})}else throw new b4({functionality:`media type: ${X0.mediaType}`});break}}}break}case"tool":{for(let u0=0;u0<I0.length;u0++){let X0=I0[u0];if(X0.type==="tool-approval-response")continue;let O0=X0.output,w0="providerOptions"in O0?O0.providerOptions:O0.type==="content"?(K=O0.value.find((k0)=>k0.providerOptions!=null))==null?void 0:K.providerOptions:void 0,M0=u0===I0.length-1,e=(H=(F=b.getCacheControl(X0.providerOptions,{type:"tool result part",canCache:!0}))!=null?F:b.getCacheControl(w0,{type:"tool result output",canCache:!0}))!=null?H:M0?b.getCacheControl(z0.providerOptions,{type:"tool result message",canCache:!0}):void 0,Q0;switch(O0.type){case"content":Q0=O0.value.map((k0)=>{var K0;switch(k0.type){case"text":return{type:"text",text:k0.text};case"image-data":return{type:"image",source:{type:"base64",media_type:k0.mediaType,data:k0.data}};case"image-url":return{type:"image",source:{type:"url",url:k0.url}};case"file-url":return{type:"document",source:{type:"url",url:k0.url}};case"file-data":{if(k0.mediaType==="application/pdf")return m.add("pdfs-2024-09-25"),{type:"document",source:{type:"base64",media_type:k0.mediaType,data:k0.data}};Q.push({type:"other",message:`unsupported tool content part type: ${k0.type} with media type: ${k0.mediaType}`});return}case"custom":{let U0=(K0=k0.providerOptions)==null?void 0:K0.anthropic;if((U0==null?void 0:U0.type)==="tool-reference")return{type:"tool_reference",tool_name:U0.toolName};Q.push({type:"other",message:"unsupported custom tool content part"});return}default:{Q.push({type:"other",message:`unsupported tool content part type: ${k0.type}`});return}}}).filter(gE);break;case"text":case"error-text":Q0=O0.value;break;case"execution-denied":Q0=(U=O0.reason)!=null?U:"Tool execution denied.";break;case"json":case"error-json":default:Q0=JSON.stringify(O0.value);break}Z0.push({type:"tool_result",tool_use_id:X0.toolCallId,content:Q0,is_error:O0.type==="error-text"||O0.type==="error-json"?!0:void 0,cache_control:e})}break}default:throw Error(`Unsupported role: ${y0}`)}}l.push({role:"user",content:Z0});break}case"assistant":{let Z0=[],z0=new Set;for(let y0=0;y0<a.messages.length;y0++){let I0=a.messages[y0],u0=y0===a.messages.length-1,{content:X0}=I0;for(let O0=0;O0<X0.length;O0++){let w0=X0[O0],M0=O0===X0.length-1,e=(N=b.getCacheControl(w0.providerOptions,{type:"assistant message part",canCache:!0}))!=null?N:M0?b.getCacheControl(I0.providerOptions,{type:"assistant message",canCache:!0}):void 0;switch(w0.type){case"text":{let Q0=(B=w0.providerOptions)==null?void 0:B.anthropic;if((Q0==null?void 0:Q0.type)==="compaction")Z0.push({type:"compaction",content:w0.text,cache_control:e});else Z0.push({type:"text",text:r&&u0&&M0?w0.text.trim():w0.text,cache_control:e});break}case"reasoning":{if(Z){let Q0=await $4({provider:"anthropic",providerOptions:w0.providerOptions,schema:FE4});if(Q0!=null)if(Q0.signature!=null)b.getCacheControl(w0.providerOptions,{type:"thinking block",canCache:!1}),Z0.push({type:"thinking",thinking:w0.text,signature:Q0.signature});else if(Q0.redactedData!=null)b.getCacheControl(w0.providerOptions,{type:"redacted thinking block",canCache:!1}),Z0.push({type:"redacted_thinking",data:Q0.redactedData});else Q.push({type:"other",message:"unsupported reasoning metadata"});else Q.push({type:"other",message:"unsupported reasoning metadata"})}else Q.push({type:"other",message:"sending reasoning content is disabled for this model"});break}case"tool-call":{if(w0.providerExecuted){let K0=Y.toProviderToolName(w0.toolName);if(((w=(O=w0.providerOptions)==null?void 0:O.anthropic)==null?void 0:w.type)==="mcp-tool-use"){z0.add(w0.toolCallId);let L1=(E=(L=w0.providerOptions)==null?void 0:L.anthropic)==null?void 0:E.serverName;if(L1==null||typeof L1!=="string"){Q.push({type:"other",message:"mcp tool use server name is required and must be a string"});break}Z0.push({type:"mcp_tool_use",id:w0.toolCallId,name:w0.toolName,input:w0.input,server_name:L1,cache_control:e})}else if(K0==="code_execution"&&w0.input!=null&&typeof w0.input==="object"&&"type"in w0.input&&typeof w0.input.type==="string"&&(w0.input.type==="bash_code_execution"||w0.input.type==="text_editor_code_execution"))Z0.push({type:"server_tool_use",id:w0.toolCallId,name:w0.input.type,input:w0.input,cache_control:e});else if(K0==="code_execution"&&w0.input!=null&&typeof w0.input==="object"&&"type"in w0.input&&w0.input.type==="programmatic-tool-call"){let{type:L1,...C0}=w0.input;Z0.push({type:"server_tool_use",id:w0.toolCallId,name:"code_execution",input:C0,cache_control:e})}else if(K0==="code_execution"||K0==="web_fetch"||K0==="web_search")Z0.push({type:"server_tool_use",id:w0.toolCallId,name:K0,input:w0.input,cache_control:e});else if(K0==="tool_search_tool_regex"||K0==="tool_search_tool_bm25")Z0.push({type:"server_tool_use",id:w0.toolCallId,name:K0,input:w0.input,cache_control:e});else if(K0==="advisor")Z0.push({type:"server_tool_use",id:w0.toolCallId,name:"advisor",input:{},cache_control:e});else Q.push({type:"other",message:`provider executed tool call for tool ${w0.toolName} is not supported`});break}let Q0=(j=w0.providerOptions)==null?void 0:j.anthropic,k0=(Q0==null?void 0:Q0.caller)?(Q0.caller.type==="code_execution_20250825"||Q0.caller.type==="code_execution_20260120")&&Q0.caller.toolId?{type:Q0.caller.type,tool_id:Q0.caller.toolId}:Q0.caller.type==="direct"?{type:"direct"}:void 0:void 0;Z0.push({type:"tool_use",id:w0.toolCallId,name:w0.toolName,input:w0.input,...k0&&{caller:k0},cache_control:e});break}case"tool-result":{let Q0=Y.toProviderToolName(w0.toolName);if(z0.has(w0.toolCallId)){let k0=w0.output;if(k0.type!=="json"&&k0.type!=="error-json"){Q.push({type:"other",message:`provider executed tool result output type ${k0.type} for tool ${w0.toolName} is not supported`});break}Z0.push({type:"mcp_tool_result",tool_use_id:w0.toolCallId,is_error:k0.type==="error-json",content:k0.value,cache_control:e})}else if(Q0==="code_execution"){let k0=w0.output;if(k0.type==="error-text"||k0.type==="error-json"){let K0={};try{if(typeof k0.value==="string")K0=JSON.parse(k0.value);else if(typeof k0.value==="object"&&k0.value!==null)K0=k0.value}catch(U0){}if(K0.type==="code_execution_tool_result_error")Z0.push({type:"code_execution_tool_result",tool_use_id:w0.toolCallId,content:{type:"code_execution_tool_result_error",error_code:(z=K0.errorCode)!=null?z:"unknown"},cache_control:e});else Z0.push({type:"bash_code_execution_tool_result",tool_use_id:w0.toolCallId,cache_control:e,content:{type:"bash_code_execution_tool_result_error",error_code:(P=K0.errorCode)!=null?P:"unknown"}});break}if(k0.type!=="json"){Q.push({type:"other",message:`provider executed tool result output type ${k0.type} for tool ${w0.toolName} is not supported`});break}if(k0.value==null||typeof k0.value!=="object"||!("type"in k0.value)||typeof k0.value.type!=="string"){Q.push({type:"other",message:`provider executed tool result output value is not a valid code execution result for tool ${w0.toolName}`});break}if(k0.value.type==="code_execution_result"){let K0=await u$({value:k0.value,schema:oU$});Z0.push({type:"code_execution_tool_result",tool_use_id:w0.toolCallId,content:{type:K0.type,stdout:K0.stdout,stderr:K0.stderr,return_code:K0.return_code,content:(A=K0.content)!=null?A:[]},cache_control:e})}else if(k0.value.type==="encrypted_code_execution_result"){let K0=await u$({value:k0.value,schema:aU$});if(K0.type==="encrypted_code_execution_result")Z0.push({type:"code_execution_tool_result",tool_use_id:w0.toolCallId,content:{type:K0.type,encrypted_stdout:K0.encrypted_stdout,stderr:K0.stderr,return_code:K0.return_code,content:(I=K0.content)!=null?I:[]},cache_control:e})}else{let K0=await u$({value:k0.value,schema:rU$});if(K0.type==="code_execution_result")Z0.push({type:"code_execution_tool_result",tool_use_id:w0.toolCallId,content:{type:K0.type,stdout:K0.stdout,stderr:K0.stderr,return_code:K0.return_code,content:(k=K0.content)!=null?k:[]},cache_control:e});else if(K0.type==="bash_code_execution_result"||K0.type==="bash_code_execution_tool_result_error")Z0.push({type:"bash_code_execution_tool_result",tool_use_id:w0.toolCallId,cache_control:e,content:K0});else Z0.push({type:"text_editor_code_execution_tool_result",tool_use_id:w0.toolCallId,cache_control:e,content:K0})}break}if(Q0==="web_fetch"){let k0=w0.output;if(k0.type==="error-json"){Z0.push({type:"web_fetch_tool_result",tool_use_id:w0.toolCallId,content:{type:"web_fetch_tool_result_error",error_code:(M=(await uU$(k0.value)).errorCode)!=null?M:"unavailable"},cache_control:e});break}if(k0.type!=="json"){Q.push({type:"other",message:`provider executed tool result output type ${k0.type} for tool ${w0.toolName} is not supported`});break}let K0=await u$({value:k0.value,schema:tU$});Z0.push({type:"web_fetch_tool_result",tool_use_id:w0.toolCallId,content:{type:"web_fetch_result",url:K0.url,retrieved_at:K0.retrievedAt,content:{type:"document",title:K0.content.title,citations:K0.content.citations,source:{type:K0.content.source.type,media_type:K0.content.source.mediaType,data:K0.content.source.data}}},cache_control:e});break}if(Q0==="web_search"){let k0=w0.output;if(k0.type==="error-json"){Z0.push({type:"web_search_tool_result",tool_use_id:w0.toolCallId,content:{type:"web_search_tool_result_error",error_code:(S=(await uU$(k0.value)).errorCode)!=null?S:"unavailable"},cache_control:e});break}if(k0.type!=="json"){Q.push({type:"other",message:`provider executed tool result output type ${k0.type} for tool ${w0.toolName} is not supported`});break}let K0=await u$({value:k0.value,schema:nU$});Z0.push({type:"web_search_tool_result",tool_use_id:w0.toolCallId,content:K0.map((U0)=>({url:U0.url,title:U0.title,page_age:U0.pageAge,encrypted_content:U0.encryptedContent,type:U0.type})),cache_control:e});break}if(Q0==="tool_search_tool_regex"||Q0==="tool_search_tool_bm25"){let k0=w0.output;if(k0.type!=="json"){Q.push({type:"other",message:`provider executed tool result output type ${k0.type} for tool ${w0.toolName} is not supported`});break}let U0=(await u$({value:k0.value,schema:sU$})).map((L1)=>({type:"tool_reference",tool_name:L1.toolName}));Z0.push({type:"tool_search_tool_result",tool_use_id:w0.toolCallId,content:{type:"tool_search_tool_search_result",tool_references:U0},cache_control:e});break}if(Q0==="advisor"){let k0=w0.output;if(k0.type!=="json"&&k0.type!=="error-json"){Q.push({type:"other",message:`provider executed tool result output type ${k0.type} for tool ${w0.toolName} is not supported`});break}let K0=await u$({value:k0.value,schema:pU$});if(K0.type==="advisor_result")Z0.push({type:"advisor_tool_result",tool_use_id:w0.toolCallId,content:{type:"advisor_result",text:K0.text},cache_control:e});else if(K0.type==="advisor_redacted_result")Z0.push({type:"advisor_tool_result",tool_use_id:w0.toolCallId,content:{type:"advisor_redacted_result",encrypted_content:K0.encryptedContent},cache_control:e});else Z0.push({type:"advisor_tool_result",tool_use_id:w0.toolCallId,content:{type:"advisor_tool_result_error",error_code:K0.errorCode},cache_control:e});break}Q.push({type:"other",message:`provider executed tool result for tool ${w0.toolName} is not supported`});break}}}}l.push({role:"assistant",content:Z0});break}default:throw Error(`content type: ${T0}`)}}return{prompt:{system:p,messages:l},betas:m}}function eE4($){let Z=[],Q=void 0;for(let X of $){let{role:Y}=X;switch(Y){case"system":{if((Q==null?void 0:Q.type)!=="system")Q={type:"system",messages:[]},Z.push(Q);Q.messages.push(X);break}case"assistant":{if((Q==null?void 0:Q.type)!=="assistant")Q={type:"assistant",messages:[]},Z.push(Q);Q.messages.push(X);break}case"user":{if((Q==null?void 0:Q.type)!=="user")Q={type:"user",messages:[]},Z.push(Q);Q.messages.push(X);break}case"tool":{if((Q==null?void 0:Q.type)!=="user")Q={type:"user",messages:[]},Z.push(Q);Q.messages.push(X);break}default:throw Error(`Unsupported role: ${Y}`)}}return Z}function ur0({finishReason:$,isJsonResponseFromTool:Z}){switch($){case"pause_turn":case"end_turn":case"stop_sequence":return"stop";case"refusal":return"content-filter";case"tool_use":return Z?"stop":"tool-calls";case"max_tokens":case"model_context_window_exceeded":return"length";case"compaction":return"other";default:return"other"}}function Zj4($){return $N$($)}function ND($){if(typeof $==="boolean"||!Gj4($))return $;return $N$($)}function $N$($){let Z={},Q=$;if($.$ref!=null)return{$ref:$.$ref};if($.$schema!=null)Z.$schema=$.$schema;if($.$id!=null)Z.$id=$.$id;if($.title!=null)Z.title=$.title;if($.description!=null)Z.description=$.description;if($.default!==void 0)Z.default=$.default;if($.const!==void 0)Z.const=$.const;if($.enum!=null)Z.enum=$.enum;if($.type!=null)Z.type=$.type;if($.anyOf!=null)Z.anyOf=$.anyOf.map(ND);else if($.oneOf!=null)Z.anyOf=$.oneOf.map(ND);if($.allOf!=null)Z.allOf=$.allOf.map(ND);if($.definitions!=null)Z.definitions=Object.fromEntries(Object.entries($.definitions).map(([Y,G])=>[Y,ND(G)]));if(Q.$defs!=null){let Y=Z;Y.$defs=Object.fromEntries(Object.entries(Q.$defs).map(([G,J])=>[G,ND(J)]))}if($.type==="object"||$.properties!=null){if($.properties!=null)Z.properties=Object.fromEntries(Object.entries($.properties).map(([Y,G])=>[Y,ND(G)]));if(Z.additionalProperties=!1,$.required!=null)Z.required=$.required}if($.items!=null)Z.items=Array.isArray($.items)?$.items.map(ND):ND($.items);if(typeof $.format==="string"&&eU$.has($.format))Z.format=$.format;let X=Qj4($);if(X!=null)Z.description=Z.description==null?X:`${Z.description}
|
|
1443
1443
|
${X}`;return Z}function Qj4($){let Z=$j4.flatMap((Q)=>{let X=$[Q];if(X==null||X===!1)return[];return`${Xj4(Q)}: ${Yj4(X)}`});if(typeof $.format==="string"&&!eU$.has($.format))Z.push(`format: ${$.format}`);return Z.length===0?void 0:`${Z.join("; ")}.`}function Xj4($){return $.replace(/[A-Z]/g,(Z)=>` ${Z.toLowerCase()}`)}function Yj4($){if(typeof $==="string")return $;return JSON.stringify($)}function Gj4($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function lU$($,Z,Q){var X;if($.type==="web_search_result_location")return{type:"source",sourceType:"url",id:Q(),url:$.url,title:$.title,providerMetadata:{anthropic:{citedText:$.cited_text,encryptedIndex:$.encrypted_index}}};if($.type!=="page_location"&&$.type!=="char_location")return;let Y=Z[$.document_index];if(!Y)return;return{type:"source",sourceType:"document",id:Q(),mediaType:Y.mediaType,title:(X=$.document_title)!=null?X:Y.title,filename:Y.filename,providerMetadata:{anthropic:$.type==="page_location"?{citedText:$.cited_text,startPageNumber:$.start_page_number,endPageNumber:$.end_page_number}:{citedText:$.cited_text,startCharIndex:$.start_char_index,endCharIndex:$.end_char_index}}}}function Wj4($){if($.includes("claude-opus-4-8")||$.includes("claude-opus-4-7")||$.includes("claude-fable-5"))return{maxOutputTokens:128000,supportsStructuredOutput:!0,rejectsSamplingParameters:!0,isKnownModel:!0};else if($.includes("claude-sonnet-4-6")||$.includes("claude-opus-4-6"))return{maxOutputTokens:128000,supportsStructuredOutput:!0,rejectsSamplingParameters:!1,isKnownModel:!0};else if($.includes("claude-sonnet-4-5")||$.includes("claude-opus-4-5")||$.includes("claude-haiku-4-5"))return{maxOutputTokens:64000,supportsStructuredOutput:!0,rejectsSamplingParameters:!1,isKnownModel:!0};else if($.includes("claude-opus-4-1"))return{maxOutputTokens:32000,supportsStructuredOutput:!0,rejectsSamplingParameters:!1,isKnownModel:!0};else if($.includes("claude-sonnet-4-"))return{maxOutputTokens:64000,supportsStructuredOutput:!1,rejectsSamplingParameters:!1,isKnownModel:!0};else if($.includes("claude-opus-4-"))return{maxOutputTokens:32000,supportsStructuredOutput:!1,rejectsSamplingParameters:!1,isKnownModel:!0};else if($.includes("claude-3-haiku"))return{maxOutputTokens:4096,supportsStructuredOutput:!1,rejectsSamplingParameters:!1,isKnownModel:!0};else return{maxOutputTokens:4096,supportsStructuredOutput:!1,rejectsSamplingParameters:!1,isKnownModel:!1}}function cU$($){if(!$)return!1;let Z=!1,Q=!1;for(let X of $){if("type"in X&&(X.type==="web_fetch_20260209"||X.type==="web_search_20260209")){Z=!0;continue}if(X.name==="code_execution"){Q=!0;break}}return Z&&!Q}function dU$($){return $?{appliedEdits:$.applied_edits.map((Z)=>{switch(Z.type){case"clear_tool_uses_20250919":return{type:Z.type,clearedToolUses:Z.cleared_tool_uses,clearedInputTokens:Z.cleared_input_tokens};case"clear_thinking_20251015":return{type:Z.type,clearedThinkingTurns:Z.cleared_thinking_turns,clearedInputTokens:Z.cleared_input_tokens};case"compact_20260112":return{type:Z.type}}}).filter((Z)=>Z!==void 0)}:null}function mU$($){if($==null)return;return{type:$.type,...$.category!=null?{category:$.category}:{},...$.explanation!=null?{explanation:$.explanation}:{},...$.recommended_model!=null?{recommendedModel:$.recommended_model}:{}}}function ft($={}){var Z,Q;let X=(Z=MO(VK({settingValue:$.baseURL,environmentVariableName:"ANTHROPIC_BASE_URL"})))!=null?Z:"https://api.anthropic.com/v1",Y=(Q=$.name)!=null?Q:"anthropic.messages";if($.apiKey&&$.authToken)throw new RO({argument:"apiKey/authToken",message:"Both apiKey and authToken were provided. Please use only one authentication method."});let G=()=>{let K=$.authToken?{Authorization:`Bearer ${$.authToken}`}:{"x-api-key":yy({apiKey:$.apiKey,environmentVariableName:"ANTHROPIC_API_KEY",description:"Anthropic"})};return s4({"anthropic-version":"2023-06-01",...K,...$.headers},`ai-sdk/anthropic/${GE4}`)},J=(K)=>{var F;return new Jj4(K,{provider:Y,baseURL:X,headers:G,fetch:$.fetch,generateId:(F=$.generateId)!=null?F:u8,supportedUrls:()=>({"image/*":[/^https?:\/\/.*$/],"application/pdf":[/^https?:\/\/.*$/]})})},W=function(K){if(new.target)throw Error("The Anthropic model function cannot be called with the new keyword.");return J(K)};return W.specificationVersion="v3",W.languageModel=J,W.chat=J,W.messages=J,W.embeddingModel=(K)=>{throw new p5({modelId:K,modelType:"embeddingModel"})},W.textEmbeddingModel=W.embeddingModel,W.imageModel=(K)=>{throw new p5({modelId:K,modelType:"imageModel"})},W.tools=Sj4,W}var GE4="3.0.85",JE4,bU$,iU$,WE4,KE4,FE4,xU$,yU$,gU$=4,dr0=class{constructor(){this.breakpointCount=0,this.warnings=[]}getCacheControl($,Z){let Q=HE4($);if(!Q)return;if(!Z.canCache){this.warnings.push({type:"unsupported",feature:"cache_control on non-cacheable context",details:`cache_control cannot be set on ${Z.type}. It will be ignored.`});return}if(this.breakpointCount++,this.breakpointCount>gU$){this.warnings.push({type:"unsupported",feature:"cacheControl breakpoint limit",details:`Maximum ${gU$} cache breakpoints exceeded (found ${this.breakpointCount}). This breakpoint will be ignored.`});return}return Q}getWarnings(){return this.warnings}},UE4,pU$,NE4,BE4,OE4=($)=>{return BE4($)},DE4,wE4,LE4,EE4=($={})=>{return LE4($)},jE4,zE4,PE4,AE4,TE4=($={})=>{return AE4($)},RE4,nU$,IE4,qE4,ME4=($={})=>{return qE4($)},kE4,VE4,SE4,CE4,_E4=($={})=>{return CE4($)},vE4,tU$,fE4,bE4,xE4=($={})=>{return bE4($)},oU$,gE4,hE4,uE4=($={})=>{return hE4($)},rU$,lE4,cE4,dE4=($={})=>{return cE4($)},aU$,mE4,iE4,pE4=($={})=>{return iE4($)},sU$,nE4,tE4,oE4=($={})=>{return tE4($)},eU$,$j4,Jj4=class{constructor($,Z){this.specificationVersion="v3";var Q;this.modelId=$,this.config=Z,this.generateId=(Q=Z.generateId)!=null?Q:u8}supportsUrl($){return $.protocol==="https:"}get provider(){return this.config.provider}get providerOptionsName(){let $=this.config.provider,Z=$.indexOf(".");return Z===-1?$:$.substring(0,Z)}get supportedUrls(){var $,Z,Q;return(Q=(Z=($=this.config).supportedUrls)==null?void 0:Z.call($))!=null?Q:{}}async getArgs({userSuppliedBetas:$,prompt:Z,maxOutputTokens:Q,temperature:X,topP:Y,topK:G,frequencyPenalty:J,presencePenalty:W,stopSequences:K,responseFormat:F,seed:H,tools:U,toolChoice:N,providerOptions:B,stream:O}){var w,L,E,j,z,P,A,I,k,M;let S=[];if(J!=null)S.push({type:"unsupported",feature:"frequencyPenalty"});if(W!=null)S.push({type:"unsupported",feature:"presencePenalty"});if(H!=null)S.push({type:"unsupported",feature:"seed"});if(X!=null&&X>1)S.push({type:"unsupported",feature:"temperature",details:`${X} exceeds anthropic maximum of 1.0. clamped to 1.0`}),X=1;else if(X!=null&&X<0)S.push({type:"unsupported",feature:"temperature",details:`${X} is below anthropic minimum of 0. clamped to 0`}),X=0;if((F==null?void 0:F.type)==="json"){if(F.schema==null)S.push({type:"unsupported",feature:"responseFormat",details:"JSON response format requires a schema. The response format is ignored."})}let m=this.providerOptionsName,f=await $4({provider:"anthropic",providerOptions:B,schema:yU$}),b=m!=="anthropic"?await $4({provider:m,providerOptions:B,schema:yU$}):null,p=b!=null,l=Object.assign({},f!=null?f:{},b!=null?b:{}),{maxOutputTokens:o,supportsStructuredOutput:N0,rejectsSamplingParameters:j0,isKnownModel:a}=Wj4(this.modelId);if(j0){if(X!=null)S.push({type:"unsupported",feature:"temperature",details:`temperature is not supported by ${this.modelId} and will be ignored`}),X=void 0;if(G!=null)S.push({type:"unsupported",feature:"topK",details:`topK is not supported by ${this.modelId} and will be ignored`}),G=void 0;if(Y!=null)S.push({type:"unsupported",feature:"topP",details:`topP is not supported by ${this.modelId} and will be ignored`}),Y=void 0}let r=a||this.modelId.startsWith("claude-"),T0=((w=this.config.supportsNativeStructuredOutput)!=null?w:!0)&&N0,Z0=((L=this.config.supportsStrictTools)!=null?L:!0)&&N0,z0=(E=l==null?void 0:l.structuredOutputMode)!=null?E:"auto",y0=z0==="outputFormat"||z0==="auto"&&T0,I0=(F==null?void 0:F.type)==="json"&&F.schema!=null&&!y0?{type:"function",name:"json",description:"Respond with a JSON object.",inputSchema:F.schema}:void 0,u0=l==null?void 0:l.contextManagement,X0=new dr0,O0=sZ0({tools:U,providerToolNames:{"anthropic.code_execution_20250522":"code_execution","anthropic.code_execution_20250825":"code_execution","anthropic.code_execution_20260120":"code_execution","anthropic.computer_20241022":"computer","anthropic.computer_20250124":"computer","anthropic.text_editor_20241022":"str_replace_editor","anthropic.text_editor_20250124":"str_replace_editor","anthropic.text_editor_20250429":"str_replace_based_edit_tool","anthropic.text_editor_20250728":"str_replace_based_edit_tool","anthropic.bash_20241022":"bash","anthropic.bash_20250124":"bash","anthropic.memory_20250818":"memory","anthropic.web_search_20250305":"web_search","anthropic.web_search_20260209":"web_search","anthropic.web_fetch_20250910":"web_fetch","anthropic.web_fetch_20260209":"web_fetch","anthropic.tool_search_regex_20251119":"tool_search_tool_regex","anthropic.tool_search_bm25_20251119":"tool_search_tool_bm25","anthropic.advisor_20260301":"advisor"}}),{prompt:w0,betas:M0}=await sE4({prompt:Z,sendReasoning:(j=l==null?void 0:l.sendReasoning)!=null?j:!0,warnings:S,cacheControlValidator:X0,toolNameMapping:O0}),e=(z=l==null?void 0:l.thinking)==null?void 0:z.type,Q0=e==="enabled"||e==="adaptive",k0=e==="enabled"?(P=l==null?void 0:l.thinking)==null?void 0:P.budgetTokens:void 0,K0=e==="adaptive"?(A=l==null?void 0:l.thinking)==null?void 0:A.display:void 0,U0=Q!=null?Q:o,L1={model:this.modelId,max_tokens:U0,temperature:X,top_k:G,top_p:Y,stop_sequences:K,...Q0&&{thinking:{type:e,...k0!=null&&{budget_tokens:k0},...K0!=null&&{display:K0}}},...((l==null?void 0:l.effort)||(l==null?void 0:l.taskBudget)||y0&&(F==null?void 0:F.type)==="json"&&F.schema!=null)&&{output_config:{...(l==null?void 0:l.effort)&&{effort:l.effort},...(l==null?void 0:l.taskBudget)&&{task_budget:{type:l.taskBudget.type,total:l.taskBudget.total,...l.taskBudget.remaining!=null&&{remaining:l.taskBudget.remaining}}},...y0&&(F==null?void 0:F.type)==="json"&&F.schema!=null&&{format:{type:"json_schema",schema:Zj4(F.schema)}}}},...(l==null?void 0:l.speed)&&{speed:l.speed},...(l==null?void 0:l.inferenceGeo)&&{inference_geo:l.inferenceGeo},...(l==null?void 0:l.fallbacks)&&l.fallbacks.length>0&&{fallbacks:l.fallbacks},...(l==null?void 0:l.cacheControl)&&{cache_control:l.cacheControl},...((I=l==null?void 0:l.metadata)==null?void 0:I.userId)!=null&&{metadata:{user_id:l.metadata.userId}},...(l==null?void 0:l.mcpServers)&&l.mcpServers.length>0&&{mcp_servers:l.mcpServers.map((Y0)=>({type:Y0.type,name:Y0.name,url:Y0.url,authorization_token:Y0.authorizationToken,tool_configuration:Y0.toolConfiguration?{allowed_tools:Y0.toolConfiguration.allowedTools,enabled:Y0.toolConfiguration.enabled}:void 0}))},...(l==null?void 0:l.container)&&{container:l.container.skills&&l.container.skills.length>0?{id:l.container.id,skills:l.container.skills.map((Y0)=>({type:Y0.type,skill_id:Y0.skillId,version:Y0.version}))}:l.container.id},system:w0.system,messages:w0.messages,...u0&&{context_management:{edits:u0.edits.map((Y0)=>{let a0=Y0.type;switch(a0){case"clear_tool_uses_20250919":return{type:Y0.type,...Y0.trigger!==void 0&&{trigger:Y0.trigger},...Y0.keep!==void 0&&{keep:Y0.keep},...Y0.clearAtLeast!==void 0&&{clear_at_least:Y0.clearAtLeast},...Y0.clearToolInputs!==void 0&&{clear_tool_inputs:Y0.clearToolInputs},...Y0.excludeTools!==void 0&&{exclude_tools:Y0.excludeTools}};case"clear_thinking_20251015":return{type:Y0.type,...Y0.keep!==void 0&&{keep:Y0.keep}};case"compact_20260112":return{type:Y0.type,...Y0.trigger!==void 0&&{trigger:Y0.trigger},...Y0.pauseAfterCompaction!==void 0&&{pause_after_compaction:Y0.pauseAfterCompaction},...Y0.instructions!==void 0&&{instructions:Y0.instructions}};default:S.push({type:"other",message:`Unknown context management strategy: ${a0}`});return}}).filter((Y0)=>Y0!==void 0)}}};if(Q0){if(e==="enabled"&&k0==null)S.push({type:"compatibility",feature:"extended thinking",details:"thinking budget is required when thinking is enabled. using default budget of 1024 tokens."}),L1.thinking={type:"enabled",budget_tokens:1024},k0=1024;if(L1.temperature!=null)L1.temperature=void 0,S.push({type:"unsupported",feature:"temperature",details:"temperature is not supported when thinking is enabled"});if(G!=null)L1.top_k=void 0,S.push({type:"unsupported",feature:"topK",details:"topK is not supported when thinking is enabled"});if(Y!=null)L1.top_p=void 0,S.push({type:"unsupported",feature:"topP",details:"topP is not supported when thinking is enabled"});L1.max_tokens=U0+(k0!=null?k0:0)}else if(r&&Y!=null&&X!=null)S.push({type:"unsupported",feature:"topP",details:"topP is not supported when temperature is set. topP is ignored."}),L1.top_p=void 0;if(a&&L1.max_tokens>o){if(Q!=null)S.push({type:"unsupported",feature:"maxOutputTokens",details:`${L1.max_tokens} (maxOutputTokens + thinkingBudget) is greater than ${this.modelId} ${o} max output tokens. The max output tokens have been limited to ${o}.`});L1.max_tokens=o}if((l==null?void 0:l.mcpServers)&&l.mcpServers.length>0)M0.add("mcp-client-2025-04-04");if(u0){if(M0.add("context-management-2025-06-27"),u0.edits.some((Y0)=>Y0.type==="compact_20260112"))M0.add("compact-2026-01-12")}if((l==null?void 0:l.container)&&l.container.skills&&l.container.skills.length>0){if(M0.add("code-execution-2025-08-25"),M0.add("skills-2025-10-02"),M0.add("files-api-2025-04-14"),!(U==null?void 0:U.some((Y0)=>Y0.type==="provider"&&(Y0.id==="anthropic.code_execution_20250825"||Y0.id==="anthropic.code_execution_20260120"))))S.push({type:"other",message:"code execution tool is required when using skills"})}if(l==null?void 0:l.taskBudget)M0.add("task-budgets-2026-03-13");if((l==null?void 0:l.speed)==="fast")M0.add("fast-mode-2026-02-01");if((l==null?void 0:l.fallbacks)&&l.fallbacks.length>0)M0.add("server-side-fallback-2026-06-01");let C0=O&&((k=l==null?void 0:l.toolStreaming)!=null?k:!0),{tools:i0,toolChoice:m0,toolWarnings:G$,betas:K$}=await yE4(I0!=null?{tools:[...U!=null?U:[],I0],toolChoice:{type:"required"},disableParallelToolUse:!0,cacheControlValidator:X0,supportsStructuredOutput:!1,supportsStrictTools:Z0,defaultEagerInputStreaming:C0}:{tools:U!=null?U:[],toolChoice:N,disableParallelToolUse:l==null?void 0:l.disableParallelToolUse,cacheControlValidator:X0,supportsStructuredOutput:T0,supportsStrictTools:Z0,defaultEagerInputStreaming:C0}),L0=X0.getWarnings();return{args:{...L1,tools:i0,tool_choice:m0,stream:O===!0?!0:void 0},warnings:[...S,...G$,...L0],betas:new Set([...M0,...K$,...$,...(M=l==null?void 0:l.anthropicBeta)!=null?M:[]]),usesJsonResponseTool:I0!=null,toolNameMapping:O0,providerOptionsName:m,usedCustomProviderKey:p}}async getHeaders({betas:$,headers:Z}){return s$(await b$(this.config.headers),Z,$.size>0?{"anthropic-beta":Array.from($).join(",")}:{})}async getBetasFromHeaders($){var Z,Q;let Y=(Z=(await b$(this.config.headers))["anthropic-beta"])!=null?Z:"",G=(Q=$==null?void 0:$["anthropic-beta"])!=null?Q:"";return new Set([...Y.toLowerCase().split(","),...G.toLowerCase().split(",")].map((J)=>J.trim()).filter((J)=>J!==""))}buildRequestUrl($){var Z,Q,X;return(X=(Q=(Z=this.config).buildRequestUrl)==null?void 0:Q.call(Z,this.config.baseURL,$))!=null?X:`${this.config.baseURL}/messages`}transformRequestBody($,Z){var Q,X,Y;return(Y=(X=(Q=this.config).transformRequestBody)==null?void 0:X.call(Q,$,Z))!=null?Y:$}extractCitationDocuments($){let Z=(Q)=>{var X,Y;if(Q.type!=="file")return!1;if(Q.mediaType!=="application/pdf"&&Q.mediaType!=="text/plain")return!1;let G=(X=Q.providerOptions)==null?void 0:X.anthropic,J=G==null?void 0:G.citations;return(Y=J==null?void 0:J.enabled)!=null?Y:!1};return $.filter((Q)=>Q.role==="user").flatMap((Q)=>Q.content).filter(Z).map((Q)=>{var X;let Y=Q;return{title:(X=Y.filename)!=null?X:"Untitled Document",filename:Y.filename,mediaType:Y.mediaType}})}async doGenerate($){var Z,Q,X,Y,G,J,W;let{args:K,warnings:F,betas:H,usesJsonResponseTool:U,toolNameMapping:N,providerOptionsName:B,usedCustomProviderKey:O}=await this.getArgs({...$,stream:!1,userSuppliedBetas:await this.getBetasFromHeaders($.headers)}),w=[...this.extractCitationDocuments($.prompt)],L=cU$(K.tools),{responseHeaders:E,value:j,rawValue:z}=await D8({url:this.buildRequestUrl(!1),headers:await this.getHeaders({betas:H,headers:$.headers}),body:this.transformRequestBody(K,H),failedResponseHandler:bU$,successfulResponseHandler:Y8(WE4),abortSignal:$.abortSignal,fetch:this.config.fetch}),P=[],A={},I={},k=!1;for(let M of j.content)switch(M.type){case"text":{if(!U){if(P.push({type:"text",text:M.text}),M.citations)for(let S of M.citations){let m=lU$(S,w,this.generateId);if(m)P.push(m)}}break}case"thinking":{P.push({type:"reasoning",text:M.thinking,providerMetadata:{anthropic:{signature:M.signature}}});break}case"redacted_thinking":{P.push({type:"reasoning",text:"",providerMetadata:{anthropic:{redactedData:M.data}}});break}case"compaction":{P.push({type:"text",text:M.content,providerMetadata:{anthropic:{type:"compaction"}}});break}case"tool_use":{if(U&&M.name==="json")k=!0,P.push({type:"text",text:JSON.stringify(M.input)});else{let m=M.caller,f=m?{type:m.type,toolId:"tool_id"in m?m.tool_id:void 0}:void 0;P.push({type:"tool-call",toolCallId:M.id,toolName:M.name,input:JSON.stringify(M.input),...f&&{providerMetadata:{anthropic:{caller:f}}}})}break}case"server_tool_use":{if(M.name==="text_editor_code_execution"||M.name==="bash_code_execution")P.push({type:"tool-call",toolCallId:M.id,toolName:N.toCustomToolName("code_execution"),input:JSON.stringify({type:M.name,...M.input}),providerExecuted:!0,...L?{dynamic:!0}:{}});else if(M.name==="web_search"||M.name==="code_execution"||M.name==="web_fetch"){let S=M.name==="code_execution"&&M.input!=null&&typeof M.input==="object"&&"code"in M.input&&!("type"in M.input)?{type:"programmatic-tool-call",...M.input}:M.input;P.push({type:"tool-call",toolCallId:M.id,toolName:N.toCustomToolName(M.name),input:JSON.stringify(S),providerExecuted:!0,...L&&M.name==="code_execution"?{dynamic:!0}:{}})}else if(M.name==="tool_search_tool_regex"||M.name==="tool_search_tool_bm25")I[M.id]=M.name,P.push({type:"tool-call",toolCallId:M.id,toolName:N.toCustomToolName(M.name),input:JSON.stringify(M.input),providerExecuted:!0});else if(M.name==="advisor")P.push({type:"tool-call",toolCallId:M.id,toolName:N.toCustomToolName("advisor"),input:JSON.stringify(M.input),providerExecuted:!0});break}case"mcp_tool_use":{A[M.id]={type:"tool-call",toolCallId:M.id,toolName:M.name,input:JSON.stringify(M.input),providerExecuted:!0,dynamic:!0,providerMetadata:{anthropic:{type:"mcp-tool-use",serverName:M.server_name}}},P.push(A[M.id]);break}case"mcp_tool_result":{P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:A[M.tool_use_id].toolName,isError:M.is_error,result:M.content,dynamic:!0,providerMetadata:A[M.tool_use_id].providerMetadata});break}case"web_fetch_tool_result":{if(M.content.type==="web_fetch_result")w.push({title:(Z=M.content.content.title)!=null?Z:M.content.url,mediaType:M.content.content.source.media_type}),P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:N.toCustomToolName("web_fetch"),result:{type:"web_fetch_result",url:M.content.url,retrievedAt:M.content.retrieved_at,content:{type:M.content.content.type,title:M.content.content.title,citations:M.content.content.citations,source:{type:M.content.content.source.type,mediaType:M.content.content.source.media_type,data:M.content.content.source.data}}}});else if(M.content.type==="web_fetch_tool_result_error")P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:N.toCustomToolName("web_fetch"),isError:!0,result:{type:"web_fetch_tool_result_error",errorCode:M.content.error_code}});break}case"web_search_tool_result":{if(Array.isArray(M.content)){P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:N.toCustomToolName("web_search"),result:M.content.map((S)=>{var m;return{url:S.url,title:S.title,pageAge:(m=S.page_age)!=null?m:null,encryptedContent:S.encrypted_content,type:S.type}})});for(let S of M.content)P.push({type:"source",sourceType:"url",id:this.generateId(),url:S.url,title:S.title,providerMetadata:{anthropic:{pageAge:(Q=S.page_age)!=null?Q:null}}})}else P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:N.toCustomToolName("web_search"),isError:!0,result:{type:"web_search_tool_result_error",errorCode:M.content.error_code}});break}case"code_execution_tool_result":{if(M.content.type==="code_execution_result")P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:N.toCustomToolName("code_execution"),result:{type:M.content.type,stdout:M.content.stdout,stderr:M.content.stderr,return_code:M.content.return_code,content:(X=M.content.content)!=null?X:[]}});else if(M.content.type==="encrypted_code_execution_result")P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:N.toCustomToolName("code_execution"),result:{type:M.content.type,encrypted_stdout:M.content.encrypted_stdout,stderr:M.content.stderr,return_code:M.content.return_code,content:(Y=M.content.content)!=null?Y:[]}});else if(M.content.type==="code_execution_tool_result_error")P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:N.toCustomToolName("code_execution"),isError:!0,result:{type:"code_execution_tool_result_error",errorCode:M.content.error_code}});break}case"bash_code_execution_tool_result":case"text_editor_code_execution_tool_result":{P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:N.toCustomToolName("code_execution"),result:M.content});break}case"tool_search_tool_result":{let S=I[M.tool_use_id];if(S==null){let m=N.toCustomToolName("tool_search_tool_bm25"),f=N.toCustomToolName("tool_search_tool_regex");if(m!=="tool_search_tool_bm25")S="tool_search_tool_bm25";else if(f!=="tool_search_tool_regex")S="tool_search_tool_regex";else S="tool_search_tool_regex"}if(M.content.type==="tool_search_tool_search_result")P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:N.toCustomToolName(S),result:M.content.tool_references.map((m)=>({type:m.type,toolName:m.tool_name}))});else P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:N.toCustomToolName(S),isError:!0,result:{type:"tool_search_tool_result_error",errorCode:M.content.error_code}});break}case"advisor_tool_result":{let S=N.toCustomToolName("advisor");if(M.content.type==="advisor_result")P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:S,result:{type:"advisor_result",text:M.content.text}});else if(M.content.type==="advisor_redacted_result")P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:S,result:{type:"advisor_redacted_result",encryptedContent:M.content.encrypted_content}});else P.push({type:"tool-result",toolCallId:M.tool_use_id,toolName:S,isError:!0,result:{type:"advisor_tool_result_error",errorCode:M.content.error_code}});break}case"fallback":break}return{content:P,finishReason:{unified:ur0({finishReason:j.stop_reason,isJsonResponseFromTool:k}),raw:(G=j.stop_reason)!=null?G:void 0},usage:hU$({usage:j.usage}),request:{body:K},response:{id:(J=j.id)!=null?J:void 0,modelId:(W=j.model)!=null?W:void 0,headers:E,body:z},warnings:F,providerMetadata:(()=>{var M,S,m,f,b;let p=mU$(j.stop_details),l={usage:j.usage,cacheCreationInputTokens:(M=j.usage.cache_creation_input_tokens)!=null?M:null,stopSequence:(S=j.stop_sequence)!=null?S:null,...p!=null?{stopDetails:p}:{},iterations:j.usage.iterations?j.usage.iterations.map((N0)=>({type:N0.type,...N0.model!=null?{model:N0.model}:{},inputTokens:N0.input_tokens,outputTokens:N0.output_tokens,...N0.cache_creation_input_tokens?{cacheCreationInputTokens:N0.cache_creation_input_tokens}:{},...N0.cache_read_input_tokens?{cacheReadInputTokens:N0.cache_read_input_tokens}:{}})):null,container:j.container?{expiresAt:j.container.expires_at,id:j.container.id,skills:(f=(m=j.container.skills)==null?void 0:m.map((N0)=>({type:N0.type,skillId:N0.skill_id,version:N0.version})))!=null?f:null}:null,contextManagement:(b=dU$(j.context_management))!=null?b:null},o={anthropic:l};if(O&&B!=="anthropic")o[B]=l;return o})()}}async doStream($){var Z,Q;let{args:X,warnings:Y,betas:G,usesJsonResponseTool:J,toolNameMapping:W,providerOptionsName:K,usedCustomProviderKey:F}=await this.getArgs({...$,stream:!0,userSuppliedBetas:await this.getBetasFromHeaders($.headers)}),H=[...this.extractCitationDocuments($.prompt)],U=cU$(X.tools),N=this.buildRequestUrl(!0),{responseHeaders:B,value:O}=await D8({url:N,headers:await this.getHeaders({betas:G,headers:$.headers}),body:this.transformRequestBody(X,G),failedResponseHandler:bU$,successfulResponseHandler:GQ(KE4),abortSignal:$.abortSignal,fetch:this.config.fetch}),w={unified:"other",raw:void 0},L={input_tokens:0,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0,iterations:null},E={},j={},z={},P=null,A=void 0,I=null,k=null,M=void 0,S=null,m=!1,f=void 0,b=this.generateId,p=O.pipeThrough(new TransformStream({start(j0){j0.enqueue({type:"stream-start",warnings:Y})},transform(j0,a){var r,T0,Z0,z0,y0,I0,u0,X0,O0,w0,M0,e,Q0,k0;if($.includeRawChunks)a.enqueue({type:"raw",rawValue:j0.rawValue});if(!j0.success){a.enqueue({type:"error",error:j0.error});return}let K0=j0.value;switch(K0.type){case"ping":return;case"content_block_start":{let U0=K0.content_block,L1=U0.type;if(L1==="fallback")return;switch(f=L1,L1){case"text":{if(J)return;E[K0.index]={type:"text"},a.enqueue({type:"text-start",id:String(K0.index)});return}case"thinking":{E[K0.index]={type:"reasoning"},a.enqueue({type:"reasoning-start",id:String(K0.index)});return}case"redacted_thinking":{E[K0.index]={type:"reasoning"},a.enqueue({type:"reasoning-start",id:String(K0.index),providerMetadata:{anthropic:{redactedData:U0.data}}});return}case"compaction":{E[K0.index]={type:"text"},a.enqueue({type:"text-start",id:String(K0.index),providerMetadata:{anthropic:{type:"compaction"}}});return}case"tool_use":{if(J&&U0.name==="json")m=!0,E[K0.index]={type:"text"},a.enqueue({type:"text-start",id:String(K0.index)});else{let i0=U0.caller,m0=i0?{type:i0.type,toolId:"tool_id"in i0?i0.tool_id:void 0}:void 0,K$=U0.input&&Object.keys(U0.input).length>0?JSON.stringify(U0.input):"";E[K0.index]={type:"tool-call",toolCallId:U0.id,toolName:U0.name,input:K$,firstDelta:K$.length===0,...m0&&{caller:m0}},a.enqueue({type:"tool-input-start",id:U0.id,toolName:U0.name})}return}case"server_tool_use":{if(["web_fetch","web_search","code_execution","text_editor_code_execution","bash_code_execution"].includes(U0.name)){let C0=U0.name==="text_editor_code_execution"||U0.name==="bash_code_execution"?"code_execution":U0.name,i0=W.toCustomToolName(C0),m0=U0.input!=null&&typeof U0.input==="object"&&Object.keys(U0.input).length>0?JSON.stringify(U0.input):"";E[K0.index]={type:"tool-call",toolCallId:U0.id,toolName:i0,input:m0,providerExecuted:!0,...U&&C0==="code_execution"?{dynamic:!0}:{},firstDelta:!0,providerToolName:C0},a.enqueue({type:"tool-input-start",id:U0.id,toolName:i0,providerExecuted:!0,...U&&C0==="code_execution"?{dynamic:!0}:{}})}else if(U0.name==="tool_search_tool_regex"||U0.name==="tool_search_tool_bm25"){z[U0.id]=U0.name;let C0=W.toCustomToolName(U0.name);E[K0.index]={type:"tool-call",toolCallId:U0.id,toolName:C0,input:"",providerExecuted:!0,firstDelta:!0,providerToolName:U0.name},a.enqueue({type:"tool-input-start",id:U0.id,toolName:C0,providerExecuted:!0})}else if(U0.name==="advisor"){let C0=W.toCustomToolName("advisor");E[K0.index]={type:"tool-call",toolCallId:U0.id,toolName:C0,input:"{}",providerExecuted:!0,firstDelta:!0,providerToolName:U0.name},a.enqueue({type:"tool-input-start",id:U0.id,toolName:C0,providerExecuted:!0})}return}case"web_fetch_tool_result":{if(U0.content.type==="web_fetch_result")H.push({title:(r=U0.content.content.title)!=null?r:U0.content.url,mediaType:U0.content.content.source.media_type}),a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:W.toCustomToolName("web_fetch"),result:{type:"web_fetch_result",url:U0.content.url,retrievedAt:U0.content.retrieved_at,content:{type:U0.content.content.type,title:U0.content.content.title,citations:U0.content.content.citations,source:{type:U0.content.content.source.type,mediaType:U0.content.content.source.media_type,data:U0.content.content.source.data}}}});else if(U0.content.type==="web_fetch_tool_result_error")a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:W.toCustomToolName("web_fetch"),isError:!0,result:{type:"web_fetch_tool_result_error",errorCode:U0.content.error_code}});return}case"web_search_tool_result":{if(Array.isArray(U0.content)){a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:W.toCustomToolName("web_search"),result:U0.content.map((C0)=>{var i0;return{url:C0.url,title:C0.title,pageAge:(i0=C0.page_age)!=null?i0:null,encryptedContent:C0.encrypted_content,type:C0.type}})});for(let C0 of U0.content)a.enqueue({type:"source",sourceType:"url",id:b(),url:C0.url,title:C0.title,providerMetadata:{anthropic:{pageAge:(T0=C0.page_age)!=null?T0:null}}})}else a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:W.toCustomToolName("web_search"),isError:!0,result:{type:"web_search_tool_result_error",errorCode:U0.content.error_code}});return}case"code_execution_tool_result":{if(U0.content.type==="code_execution_result")a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:W.toCustomToolName("code_execution"),result:{type:U0.content.type,stdout:U0.content.stdout,stderr:U0.content.stderr,return_code:U0.content.return_code,content:(Z0=U0.content.content)!=null?Z0:[]}});else if(U0.content.type==="encrypted_code_execution_result")a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:W.toCustomToolName("code_execution"),result:{type:U0.content.type,encrypted_stdout:U0.content.encrypted_stdout,stderr:U0.content.stderr,return_code:U0.content.return_code,content:(z0=U0.content.content)!=null?z0:[]}});else if(U0.content.type==="code_execution_tool_result_error")a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:W.toCustomToolName("code_execution"),isError:!0,result:{type:"code_execution_tool_result_error",errorCode:U0.content.error_code}});return}case"bash_code_execution_tool_result":case"text_editor_code_execution_tool_result":{a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:W.toCustomToolName("code_execution"),result:U0.content});return}case"tool_search_tool_result":{let C0=z[U0.tool_use_id];if(C0==null){let i0=W.toCustomToolName("tool_search_tool_bm25"),m0=W.toCustomToolName("tool_search_tool_regex");if(i0!=="tool_search_tool_bm25")C0="tool_search_tool_bm25";else if(m0!=="tool_search_tool_regex")C0="tool_search_tool_regex";else C0="tool_search_tool_regex"}if(U0.content.type==="tool_search_tool_search_result")a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:W.toCustomToolName(C0),result:U0.content.tool_references.map((i0)=>({type:i0.type,toolName:i0.tool_name}))});else a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:W.toCustomToolName(C0),isError:!0,result:{type:"tool_search_tool_result_error",errorCode:U0.content.error_code}});return}case"advisor_tool_result":{let C0=W.toCustomToolName("advisor");if(U0.content.type==="advisor_result")a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:C0,result:{type:"advisor_result",text:U0.content.text}});else if(U0.content.type==="advisor_redacted_result")a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:C0,result:{type:"advisor_redacted_result",encryptedContent:U0.content.encrypted_content}});else a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:C0,isError:!0,result:{type:"advisor_tool_result_error",errorCode:U0.content.error_code}});return}case"mcp_tool_use":{j[U0.id]={type:"tool-call",toolCallId:U0.id,toolName:U0.name,input:JSON.stringify(U0.input),providerExecuted:!0,dynamic:!0,providerMetadata:{anthropic:{type:"mcp-tool-use",serverName:U0.server_name}}},a.enqueue(j[U0.id]);return}case"mcp_tool_result":{a.enqueue({type:"tool-result",toolCallId:U0.tool_use_id,toolName:j[U0.tool_use_id].toolName,isError:U0.is_error,result:U0.content,dynamic:!0,providerMetadata:j[U0.tool_use_id].providerMetadata});return}default:throw Error(`Unsupported content block type: ${L1}`)}}case"content_block_stop":{if(E[K0.index]!=null){let U0=E[K0.index];switch(U0.type){case"text":{a.enqueue({type:"text-end",id:String(K0.index)});break}case"reasoning":{a.enqueue({type:"reasoning-end",id:String(K0.index)});break}case"tool-call":if(!(J&&U0.toolName==="json")){a.enqueue({type:"tool-input-end",id:U0.toolCallId});let C0=U0.input===""?"{}":U0.input;if(U0.providerToolName==="code_execution")try{let i0=JSON.parse(C0);if(i0!=null&&typeof i0==="object"&&"code"in i0&&!("type"in i0))C0=JSON.stringify({type:"programmatic-tool-call",...i0})}catch(i0){}a.enqueue({type:"tool-call",toolCallId:U0.toolCallId,toolName:U0.toolName,input:C0,providerExecuted:U0.providerExecuted,...U&&U0.providerToolName==="code_execution"?{dynamic:!0}:{},...U0.caller&&{providerMetadata:{anthropic:{caller:U0.caller}}}})}break}delete E[K0.index]}f=void 0;return}case"content_block_delta":{let U0=K0.delta.type;switch(U0){case"text_delta":{if(J)return;a.enqueue({type:"text-delta",id:String(K0.index),delta:K0.delta.text});return}case"thinking_delta":{a.enqueue({type:"reasoning-delta",id:String(K0.index),delta:K0.delta.thinking});return}case"signature_delta":{if(f==="thinking")a.enqueue({type:"reasoning-delta",id:String(K0.index),delta:"",providerMetadata:{anthropic:{signature:K0.delta.signature}}});return}case"compaction_delta":{if(K0.delta.content!=null)a.enqueue({type:"text-delta",id:String(K0.index),delta:K0.delta.content});return}case"input_json_delta":{let L1=E[K0.index],C0=K0.delta.partial_json;if(C0.length===0)return;if(m){if((L1==null?void 0:L1.type)!=="text")return;a.enqueue({type:"text-delta",id:String(K0.index),delta:C0})}else{if((L1==null?void 0:L1.type)!=="tool-call")return;if(L1.firstDelta&&L1.providerToolName==="code_execution")C0=`{"type": "programmatic-tool-call",${C0.substring(1)}`;a.enqueue({type:"tool-input-delta",id:L1.toolCallId,delta:C0}),L1.input+=C0,L1.firstDelta=!1}return}case"citations_delta":{let L1=K0.delta.citation,C0=lU$(L1,H,b);if(C0)a.enqueue(C0);return}default:throw Error(`Unsupported delta type: ${U0}`)}}case"message_start":{if(L.input_tokens=K0.message.usage.input_tokens,L.cache_read_input_tokens=(y0=K0.message.usage.cache_read_input_tokens)!=null?y0:0,L.cache_creation_input_tokens=(I0=K0.message.usage.cache_creation_input_tokens)!=null?I0:0,A={...K0.message.usage},I=(u0=K0.message.usage.cache_creation_input_tokens)!=null?u0:null,K0.message.container!=null)S={expiresAt:K0.message.container.expires_at,id:K0.message.container.id,skills:null};if(K0.message.stop_reason!=null)w={unified:ur0({finishReason:K0.message.stop_reason,isJsonResponseFromTool:m}),raw:K0.message.stop_reason};if(a.enqueue({type:"response-metadata",id:(X0=K0.message.id)!=null?X0:void 0,modelId:(O0=K0.message.model)!=null?O0:void 0}),K0.message.content!=null)for(let U0=0;U0<K0.message.content.length;U0++){let L1=K0.message.content[U0];if(L1.type==="tool_use"){let C0=L1.caller,i0=C0?{type:C0.type,toolId:"tool_id"in C0?C0.tool_id:void 0}:void 0;a.enqueue({type:"tool-input-start",id:L1.id,toolName:L1.name});let m0=JSON.stringify((w0=L1.input)!=null?w0:{});a.enqueue({type:"tool-input-delta",id:L1.id,delta:m0}),a.enqueue({type:"tool-input-end",id:L1.id}),a.enqueue({type:"tool-call",toolCallId:L1.id,toolName:L1.name,input:m0,...i0&&{providerMetadata:{anthropic:{caller:i0}}}})}}return}case"message_delta":{if(K0.usage.input_tokens!=null&&L.input_tokens!==K0.usage.input_tokens)L.input_tokens=K0.usage.input_tokens;if(L.output_tokens=K0.usage.output_tokens,K0.usage.cache_read_input_tokens!=null)L.cache_read_input_tokens=K0.usage.cache_read_input_tokens;if(K0.usage.cache_creation_input_tokens!=null)L.cache_creation_input_tokens=K0.usage.cache_creation_input_tokens,I=K0.usage.cache_creation_input_tokens;if(K0.usage.iterations!=null)L.iterations=K0.usage.iterations;if(w={unified:ur0({finishReason:K0.delta.stop_reason,isJsonResponseFromTool:m}),raw:(M0=K0.delta.stop_reason)!=null?M0:void 0},k=(e=K0.delta.stop_sequence)!=null?e:null,M=mU$(K0.delta.stop_details),S=K0.delta.container!=null?{expiresAt:K0.delta.container.expires_at,id:K0.delta.container.id,skills:(k0=(Q0=K0.delta.container.skills)==null?void 0:Q0.map((U0)=>({type:U0.type,skillId:U0.skill_id,version:U0.version})))!=null?k0:null}:null,K0.context_management)P=dU$(K0.context_management);A={...A,...K0.usage};return}case"message_stop":{let U0={usage:A!=null?A:null,cacheCreationInputTokens:I,stopSequence:k,...M!=null?{stopDetails:M}:{},iterations:L.iterations?L.iterations.map((C0)=>({type:C0.type,...C0.model!=null?{model:C0.model}:{},inputTokens:C0.input_tokens,outputTokens:C0.output_tokens,...C0.cache_creation_input_tokens?{cacheCreationInputTokens:C0.cache_creation_input_tokens}:{},...C0.cache_read_input_tokens?{cacheReadInputTokens:C0.cache_read_input_tokens}:{}})):null,container:S,contextManagement:P},L1={anthropic:U0};if(F&&K!=="anthropic")L1[K]=U0;a.enqueue({type:"finish",finishReason:w,usage:hU$({usage:L,rawUsage:A}),providerMetadata:L1});return}case"error":{a.enqueue({type:"error",error:K0.error});return}default:throw Error(`Unsupported chunk type: ${K0}`)}}})),[l,o]=p.tee(),N0=l.getReader();try{await N0.read();let j0=await N0.read();if(((Z=j0.value)==null?void 0:Z.type)==="raw")j0=await N0.read();if(((Q=j0.value)==null?void 0:Q.type)==="error"){let a=j0.value.error;throw new J4({message:a.message,url:N,requestBodyValues:X,statusCode:a.type==="overloaded_error"?529:500,responseHeaders:B,responseBody:JSON.stringify(a),isRetryable:a.type==="overloaded_error"})}}finally{N0.cancel().catch(()=>{}),N0.releaseLock()}return{stream:o,request:{body:X},response:{headers:B}}}},Kj4,Fj4,Hj4,Uj4,Nj4,Bj4,Oj4,Dj4,wj4,Lj4,Ej4,jj4,zj4,Pj4,Aj4,Tj4,Rj4,Ij4,qj4,Mj4,kj4,Vj4=($={})=>{return kj4($)},Sj4,Ey9;var mr0=D(()=>{a1();x0();a1();x0();x0();x0();a1();x0();x0();x0();x0();x0();x0();x0();a1();x0();x0();x0();x0();x0();x0();x0();x0();x0();x0();x0();x0();x0();x0();x0();JE4=B0(()=>$0(_t.object({type:_t.literal("error"),error:_t.object({type:_t.string(),message:_t.string()})}))),bU$=v5({errorSchema:JE4,errorToMessage:($)=>$.error.message}),iU$=q.object({type:q.string(),category:q.string().nullish(),explanation:q.string().nullish(),recommended_model:q.string().nullish()}),WE4=B0(()=>$0(q.object({type:q.literal("message"),id:q.string().nullish(),model:q.string().nullish(),content:q.array(q.discriminatedUnion("type",[q.object({type:q.literal("text"),text:q.string(),citations:q.array(q.discriminatedUnion("type",[q.object({type:q.literal("web_search_result_location"),cited_text:q.string(),url:q.string(),title:q.string(),encrypted_index:q.string()}),q.object({type:q.literal("page_location"),cited_text:q.string(),document_index:q.number(),document_title:q.string().nullable(),start_page_number:q.number(),end_page_number:q.number()}),q.object({type:q.literal("char_location"),cited_text:q.string(),document_index:q.number(),document_title:q.string().nullable(),start_char_index:q.number(),end_char_index:q.number()})])).optional()}),q.object({type:q.literal("thinking"),thinking:q.string(),signature:q.string()}),q.object({type:q.literal("redacted_thinking"),data:q.string()}),q.object({type:q.literal("compaction"),content:q.string()}),q.object({type:q.literal("tool_use"),id:q.string(),name:q.string(),input:q.unknown(),caller:q.union([q.object({type:q.literal("code_execution_20250825"),tool_id:q.string()}),q.object({type:q.literal("code_execution_20260120"),tool_id:q.string()}),q.object({type:q.literal("direct")})]).optional()}),q.object({type:q.literal("server_tool_use"),id:q.string(),name:q.string(),input:q.record(q.string(),q.unknown()).nullish(),caller:q.union([q.object({type:q.literal("code_execution_20260120"),tool_id:q.string()}),q.object({type:q.literal("direct")})]).optional()}),q.object({type:q.literal("mcp_tool_use"),id:q.string(),name:q.string(),input:q.unknown(),server_name:q.string()}),q.object({type:q.literal("mcp_tool_result"),tool_use_id:q.string(),is_error:q.boolean(),content:q.array(q.union([q.string(),q.object({type:q.literal("text"),text:q.string()})]))}),q.object({type:q.literal("web_fetch_tool_result"),tool_use_id:q.string(),content:q.union([q.object({type:q.literal("web_fetch_result"),url:q.string(),retrieved_at:q.string(),content:q.object({type:q.literal("document"),title:q.string().nullable(),citations:q.object({enabled:q.boolean()}).optional(),source:q.union([q.object({type:q.literal("base64"),media_type:q.literal("application/pdf"),data:q.string()}),q.object({type:q.literal("text"),media_type:q.literal("text/plain"),data:q.string()})])})}),q.object({type:q.literal("web_fetch_tool_result_error"),error_code:q.string()})])}),q.object({type:q.literal("web_search_tool_result"),tool_use_id:q.string(),content:q.union([q.array(q.object({type:q.literal("web_search_result"),url:q.string(),title:q.string(),encrypted_content:q.string(),page_age:q.string().nullish()})),q.object({type:q.literal("web_search_tool_result_error"),error_code:q.string()})])}),q.object({type:q.literal("code_execution_tool_result"),tool_use_id:q.string(),content:q.union([q.object({type:q.literal("code_execution_result"),stdout:q.string(),stderr:q.string(),return_code:q.number(),content:q.array(q.object({type:q.literal("code_execution_output"),file_id:q.string()})).optional().default([])}),q.object({type:q.literal("encrypted_code_execution_result"),encrypted_stdout:q.string(),stderr:q.string(),return_code:q.number(),content:q.array(q.object({type:q.literal("code_execution_output"),file_id:q.string()})).optional().default([])}),q.object({type:q.literal("code_execution_tool_result_error"),error_code:q.string()})])}),q.object({type:q.literal("bash_code_execution_tool_result"),tool_use_id:q.string(),content:q.discriminatedUnion("type",[q.object({type:q.literal("bash_code_execution_result"),content:q.array(q.object({type:q.literal("bash_code_execution_output"),file_id:q.string()})),stdout:q.string(),stderr:q.string(),return_code:q.number()}),q.object({type:q.literal("bash_code_execution_tool_result_error"),error_code:q.string()})])}),q.object({type:q.literal("text_editor_code_execution_tool_result"),tool_use_id:q.string(),content:q.discriminatedUnion("type",[q.object({type:q.literal("text_editor_code_execution_tool_result_error"),error_code:q.string()}),q.object({type:q.literal("text_editor_code_execution_view_result"),content:q.string(),file_type:q.string(),num_lines:q.number().nullable(),start_line:q.number().nullable(),total_lines:q.number().nullable()}),q.object({type:q.literal("text_editor_code_execution_create_result"),is_file_update:q.boolean()}),q.object({type:q.literal("text_editor_code_execution_str_replace_result"),lines:q.array(q.string()).nullable(),new_lines:q.number().nullable(),new_start:q.number().nullable(),old_lines:q.number().nullable(),old_start:q.number().nullable()})])}),q.object({type:q.literal("tool_search_tool_result"),tool_use_id:q.string(),content:q.union([q.object({type:q.literal("tool_search_tool_search_result"),tool_references:q.array(q.object({type:q.literal("tool_reference"),tool_name:q.string()}))}),q.object({type:q.literal("tool_search_tool_result_error"),error_code:q.string()})])}),q.object({type:q.literal("advisor_tool_result"),tool_use_id:q.string(),content:q.discriminatedUnion("type",[q.object({type:q.literal("advisor_result"),text:q.string()}),q.object({type:q.literal("advisor_redacted_result"),encrypted_content:q.string()}),q.object({type:q.literal("advisor_tool_result_error"),error_code:q.string()})])}),q.object({type:q.literal("fallback")})])),stop_reason:q.string().nullish(),stop_sequence:q.string().nullish(),stop_details:iU$.nullish(),usage:q.looseObject({input_tokens:q.number(),output_tokens:q.number(),cache_creation_input_tokens:q.number().nullish(),cache_read_input_tokens:q.number().nullish(),iterations:q.array(q.object({type:q.union([q.literal("compaction"),q.literal("message"),q.literal("advisor_message"),q.literal("fallback_message")]),model:q.string().nullish(),input_tokens:q.number(),output_tokens:q.number(),cache_creation_input_tokens:q.number().nullish(),cache_read_input_tokens:q.number().nullish()})).nullish()}),container:q.object({expires_at:q.string(),id:q.string(),skills:q.array(q.object({type:q.union([q.literal("anthropic"),q.literal("custom")]),skill_id:q.string(),version:q.string()})).nullish()}).nullish(),context_management:q.object({applied_edits:q.array(q.union([q.object({type:q.literal("clear_tool_uses_20250919"),cleared_tool_uses:q.number(),cleared_input_tokens:q.number()}),q.object({type:q.literal("clear_thinking_20251015"),cleared_thinking_turns:q.number(),cleared_input_tokens:q.number()}),q.object({type:q.literal("compact_20260112")})]))}).nullish()}))),KE4=B0(()=>$0(q.discriminatedUnion("type",[q.object({type:q.literal("message_start"),message:q.object({id:q.string().nullish(),model:q.string().nullish(),role:q.string().nullish(),usage:q.looseObject({input_tokens:q.number(),cache_creation_input_tokens:q.number().nullish(),cache_read_input_tokens:q.number().nullish()}),content:q.array(q.discriminatedUnion("type",[q.object({type:q.literal("tool_use"),id:q.string(),name:q.string(),input:q.unknown(),caller:q.union([q.object({type:q.literal("code_execution_20250825"),tool_id:q.string()}),q.object({type:q.literal("code_execution_20260120"),tool_id:q.string()}),q.object({type:q.literal("direct")})]).optional()})])).nullish(),stop_reason:q.string().nullish(),container:q.object({expires_at:q.string(),id:q.string()}).nullish()})}),q.object({type:q.literal("content_block_start"),index:q.number(),content_block:q.discriminatedUnion("type",[q.object({type:q.literal("text"),text:q.string()}),q.object({type:q.literal("thinking"),thinking:q.string()}),q.object({type:q.literal("tool_use"),id:q.string(),name:q.string(),input:q.record(q.string(),q.unknown()).optional(),caller:q.union([q.object({type:q.literal("code_execution_20250825"),tool_id:q.string()}),q.object({type:q.literal("code_execution_20260120"),tool_id:q.string()}),q.object({type:q.literal("direct")})]).optional()}),q.object({type:q.literal("redacted_thinking"),data:q.string()}),q.object({type:q.literal("compaction"),content:q.string().nullish()}),q.object({type:q.literal("server_tool_use"),id:q.string(),name:q.string(),input:q.record(q.string(),q.unknown()).nullish(),caller:q.union([q.object({type:q.literal("code_execution_20260120"),tool_id:q.string()}),q.object({type:q.literal("direct")})]).optional()}),q.object({type:q.literal("mcp_tool_use"),id:q.string(),name:q.string(),input:q.unknown(),server_name:q.string()}),q.object({type:q.literal("mcp_tool_result"),tool_use_id:q.string(),is_error:q.boolean(),content:q.array(q.union([q.string(),q.object({type:q.literal("text"),text:q.string()})]))}),q.object({type:q.literal("web_fetch_tool_result"),tool_use_id:q.string(),content:q.union([q.object({type:q.literal("web_fetch_result"),url:q.string(),retrieved_at:q.string(),content:q.object({type:q.literal("document"),title:q.string().nullable(),citations:q.object({enabled:q.boolean()}).optional(),source:q.union([q.object({type:q.literal("base64"),media_type:q.literal("application/pdf"),data:q.string()}),q.object({type:q.literal("text"),media_type:q.literal("text/plain"),data:q.string()})])})}),q.object({type:q.literal("web_fetch_tool_result_error"),error_code:q.string()})])}),q.object({type:q.literal("web_search_tool_result"),tool_use_id:q.string(),content:q.union([q.array(q.object({type:q.literal("web_search_result"),url:q.string(),title:q.string(),encrypted_content:q.string(),page_age:q.string().nullish()})),q.object({type:q.literal("web_search_tool_result_error"),error_code:q.string()})])}),q.object({type:q.literal("code_execution_tool_result"),tool_use_id:q.string(),content:q.union([q.object({type:q.literal("code_execution_result"),stdout:q.string(),stderr:q.string(),return_code:q.number(),content:q.array(q.object({type:q.literal("code_execution_output"),file_id:q.string()})).optional().default([])}),q.object({type:q.literal("encrypted_code_execution_result"),encrypted_stdout:q.string(),stderr:q.string(),return_code:q.number(),content:q.array(q.object({type:q.literal("code_execution_output"),file_id:q.string()})).optional().default([])}),q.object({type:q.literal("code_execution_tool_result_error"),error_code:q.string()})])}),q.object({type:q.literal("bash_code_execution_tool_result"),tool_use_id:q.string(),content:q.discriminatedUnion("type",[q.object({type:q.literal("bash_code_execution_result"),content:q.array(q.object({type:q.literal("bash_code_execution_output"),file_id:q.string()})),stdout:q.string(),stderr:q.string(),return_code:q.number()}),q.object({type:q.literal("bash_code_execution_tool_result_error"),error_code:q.string()})])}),q.object({type:q.literal("text_editor_code_execution_tool_result"),tool_use_id:q.string(),content:q.discriminatedUnion("type",[q.object({type:q.literal("text_editor_code_execution_tool_result_error"),error_code:q.string()}),q.object({type:q.literal("text_editor_code_execution_view_result"),content:q.string(),file_type:q.string(),num_lines:q.number().nullable(),start_line:q.number().nullable(),total_lines:q.number().nullable()}),q.object({type:q.literal("text_editor_code_execution_create_result"),is_file_update:q.boolean()}),q.object({type:q.literal("text_editor_code_execution_str_replace_result"),lines:q.array(q.string()).nullable(),new_lines:q.number().nullable(),new_start:q.number().nullable(),old_lines:q.number().nullable(),old_start:q.number().nullable()})])}),q.object({type:q.literal("tool_search_tool_result"),tool_use_id:q.string(),content:q.union([q.object({type:q.literal("tool_search_tool_search_result"),tool_references:q.array(q.object({type:q.literal("tool_reference"),tool_name:q.string()}))}),q.object({type:q.literal("tool_search_tool_result_error"),error_code:q.string()})])}),q.object({type:q.literal("advisor_tool_result"),tool_use_id:q.string(),content:q.discriminatedUnion("type",[q.object({type:q.literal("advisor_result"),text:q.string()}),q.object({type:q.literal("advisor_redacted_result"),encrypted_content:q.string()}),q.object({type:q.literal("advisor_tool_result_error"),error_code:q.string()})])}),q.object({type:q.literal("fallback")})])}),q.object({type:q.literal("content_block_delta"),index:q.number(),delta:q.discriminatedUnion("type",[q.object({type:q.literal("input_json_delta"),partial_json:q.string()}),q.object({type:q.literal("text_delta"),text:q.string()}),q.object({type:q.literal("thinking_delta"),thinking:q.string()}),q.object({type:q.literal("signature_delta"),signature:q.string()}),q.object({type:q.literal("compaction_delta"),content:q.string().nullish()}),q.object({type:q.literal("citations_delta"),citation:q.discriminatedUnion("type",[q.object({type:q.literal("web_search_result_location"),cited_text:q.string(),url:q.string(),title:q.string(),encrypted_index:q.string()}),q.object({type:q.literal("page_location"),cited_text:q.string(),document_index:q.number(),document_title:q.string().nullable(),start_page_number:q.number(),end_page_number:q.number()}),q.object({type:q.literal("char_location"),cited_text:q.string(),document_index:q.number(),document_title:q.string().nullable(),start_char_index:q.number(),end_char_index:q.number()})])})])}),q.object({type:q.literal("content_block_stop"),index:q.number()}),q.object({type:q.literal("error"),error:q.object({type:q.string(),message:q.string()})}),q.object({type:q.literal("message_delta"),delta:q.object({stop_reason:q.string().nullish(),stop_sequence:q.string().nullish(),stop_details:iU$.nullish(),container:q.object({expires_at:q.string(),id:q.string(),skills:q.array(q.object({type:q.union([q.literal("anthropic"),q.literal("custom")]),skill_id:q.string(),version:q.string()})).nullish()}).nullish()}),usage:q.looseObject({input_tokens:q.number().nullish(),output_tokens:q.number(),cache_creation_input_tokens:q.number().nullish(),cache_read_input_tokens:q.number().nullish(),iterations:q.array(q.object({type:q.union([q.literal("compaction"),q.literal("message"),q.literal("advisor_message"),q.literal("fallback_message")]),model:q.string().nullish(),input_tokens:q.number(),output_tokens:q.number(),cache_creation_input_tokens:q.number().nullish(),cache_read_input_tokens:q.number().nullish()})).nullish()}),context_management:q.object({applied_edits:q.array(q.union([q.object({type:q.literal("clear_tool_uses_20250919"),cleared_tool_uses:q.number(),cleared_input_tokens:q.number()}),q.object({type:q.literal("clear_thinking_20251015"),cleared_thinking_turns:q.number(),cleared_input_tokens:q.number()}),q.object({type:q.literal("compact_20260112")})]))}).nullish()}),q.object({type:q.literal("message_stop")}),q.object({type:q.literal("ping")})]))),FE4=B0(()=>$0(q.object({signature:q.string().optional(),redactedData:q.string().optional()}))),xU$=F1.object({citations:F1.object({enabled:F1.boolean()}).optional(),title:F1.string().optional(),context:F1.string().optional()}),yU$=F1.object({sendReasoning:F1.boolean().optional(),structuredOutputMode:F1.enum(["outputFormat","jsonTool","auto"]).optional(),thinking:F1.discriminatedUnion("type",[F1.object({type:F1.literal("adaptive"),display:F1.enum(["omitted","summarized"]).optional()}),F1.object({type:F1.literal("enabled"),budgetTokens:F1.number().optional()}),F1.object({type:F1.literal("disabled")})]).optional(),disableParallelToolUse:F1.boolean().optional(),cacheControl:F1.object({type:F1.literal("ephemeral"),ttl:F1.union([F1.literal("5m"),F1.literal("1h")]).optional()}).optional(),metadata:F1.object({userId:F1.string().optional()}).optional(),mcpServers:F1.array(F1.object({type:F1.literal("url"),name:F1.string(),url:F1.string(),authorizationToken:F1.string().nullish(),toolConfiguration:F1.object({enabled:F1.boolean().nullish(),allowedTools:F1.array(F1.string()).nullish()}).nullish()})).optional(),container:F1.object({id:F1.string().optional(),skills:F1.array(F1.object({type:F1.union([F1.literal("anthropic"),F1.literal("custom")]),skillId:F1.string(),version:F1.string().optional()})).optional()}).optional(),toolStreaming:F1.boolean().optional(),effort:F1.enum(["low","medium","high","xhigh","max"]).optional(),taskBudget:F1.object({type:F1.literal("tokens"),total:F1.number().int().min(20000),remaining:F1.number().int().min(0).optional()}).optional(),speed:F1.enum(["fast","standard"]).optional(),inferenceGeo:F1.enum(["us","global"]).optional(),fallbacks:F1.array(F1.object({model:F1.string(),max_tokens:F1.number().int().optional(),thinking:F1.record(F1.string(),F1.unknown()).optional(),output_config:F1.record(F1.string(),F1.unknown()).optional(),speed:F1.enum(["fast","standard"]).optional()})).optional(),anthropicBeta:F1.array(F1.string()).optional(),contextManagement:F1.object({edits:F1.array(F1.discriminatedUnion("type",[F1.object({type:F1.literal("clear_tool_uses_20250919"),trigger:F1.discriminatedUnion("type",[F1.object({type:F1.literal("input_tokens"),value:F1.number()}),F1.object({type:F1.literal("tool_uses"),value:F1.number()})]).optional(),keep:F1.object({type:F1.literal("tool_uses"),value:F1.number()}).optional(),clearAtLeast:F1.object({type:F1.literal("input_tokens"),value:F1.number()}).optional(),clearToolInputs:F1.boolean().optional(),excludeTools:F1.array(F1.string()).optional()}),F1.object({type:F1.literal("clear_thinking_20251015"),keep:F1.union([F1.literal("all"),F1.object({type:F1.literal("thinking_turns"),value:F1.number()})]).optional()}),F1.object({type:F1.literal("compact_20260112"),trigger:F1.object({type:F1.literal("input_tokens"),value:F1.number()}).optional(),pauseAfterCompaction:F1.boolean().optional(),instructions:F1.string().optional()})]))}).optional()});UE4=B0(()=>$0(jZ.object({model:jZ.string(),maxUses:jZ.number().optional(),caching:jZ.object({type:jZ.literal("ephemeral"),ttl:jZ.union([jZ.literal("5m"),jZ.literal("1h")])}).optional()}))),pU$=B0(()=>$0(jZ.discriminatedUnion("type",[jZ.object({type:jZ.literal("advisor_result"),text:jZ.string()}),jZ.object({type:jZ.literal("advisor_redacted_result"),encryptedContent:jZ.string()}),jZ.object({type:jZ.literal("advisor_tool_result_error"),errorCode:jZ.string()})]))),NE4=B0(()=>$0(jZ.object({}).strict())),BE4=e$({id:"anthropic.advisor_20260301",inputSchema:NE4,outputSchema:pU$,supportsDeferredResults:!0}),DE4=B0(()=>$0(PJ.object({maxCharacters:PJ.number().optional()}))),wE4=B0(()=>$0(PJ.object({command:PJ.enum(["view","create","str_replace","insert"]),path:PJ.string(),file_text:PJ.string().optional(),insert_line:PJ.number().int().optional(),new_str:PJ.string().optional(),insert_text:PJ.string().optional(),old_str:PJ.string().optional(),view_range:PJ.array(PJ.number().int()).optional()}))),LE4=x4({id:"anthropic.text_editor_20250728",inputSchema:wE4}),jE4=B0(()=>$0(_9.object({maxUses:_9.number().optional(),allowedDomains:_9.array(_9.string()).optional(),blockedDomains:_9.array(_9.string()).optional(),userLocation:_9.object({type:_9.literal("approximate"),city:_9.string().optional(),region:_9.string().optional(),country:_9.string().optional(),timezone:_9.string().optional()}).optional()}))),zE4=B0(()=>$0(_9.array(_9.object({url:_9.string(),title:_9.string().nullable(),pageAge:_9.string().nullable(),encryptedContent:_9.string(),type:_9.literal("web_search_result")})))),PE4=B0(()=>$0(_9.object({query:_9.string()}))),AE4=e$({id:"anthropic.web_search_20260209",inputSchema:PE4,outputSchema:zE4,supportsDeferredResults:!0}),RE4=B0(()=>$0(v9.object({maxUses:v9.number().optional(),allowedDomains:v9.array(v9.string()).optional(),blockedDomains:v9.array(v9.string()).optional(),userLocation:v9.object({type:v9.literal("approximate"),city:v9.string().optional(),region:v9.string().optional(),country:v9.string().optional(),timezone:v9.string().optional()}).optional()}))),nU$=B0(()=>$0(v9.array(v9.object({url:v9.string(),title:v9.string().nullable(),pageAge:v9.string().nullable(),encryptedContent:v9.string(),type:v9.literal("web_search_result")})))),IE4=B0(()=>$0(v9.object({query:v9.string()}))),qE4=e$({id:"anthropic.web_search_20250305",inputSchema:IE4,outputSchema:nU$,supportsDeferredResults:!0}),kE4=B0(()=>$0(q6.object({maxUses:q6.number().optional(),allowedDomains:q6.array(q6.string()).optional(),blockedDomains:q6.array(q6.string()).optional(),citations:q6.object({enabled:q6.boolean()}).optional(),maxContentTokens:q6.number().optional()}))),VE4=B0(()=>$0(q6.object({type:q6.literal("web_fetch_result"),url:q6.string(),content:q6.object({type:q6.literal("document"),title:q6.string().nullable(),citations:q6.object({enabled:q6.boolean()}).optional(),source:q6.union([q6.object({type:q6.literal("base64"),mediaType:q6.literal("application/pdf"),data:q6.string()}),q6.object({type:q6.literal("text"),mediaType:q6.literal("text/plain"),data:q6.string()})])}),retrievedAt:q6.string().nullable()}))),SE4=B0(()=>$0(q6.object({url:q6.string()}))),CE4=e$({id:"anthropic.web_fetch_20260209",inputSchema:SE4,outputSchema:VE4,supportsDeferredResults:!0}),vE4=B0(()=>$0(M6.object({maxUses:M6.number().optional(),allowedDomains:M6.array(M6.string()).optional(),blockedDomains:M6.array(M6.string()).optional(),citations:M6.object({enabled:M6.boolean()}).optional(),maxContentTokens:M6.number().optional()}))),tU$=B0(()=>$0(M6.object({type:M6.literal("web_fetch_result"),url:M6.string(),content:M6.object({type:M6.literal("document"),title:M6.string().nullable(),citations:M6.object({enabled:M6.boolean()}).optional(),source:M6.union([M6.object({type:M6.literal("base64"),mediaType:M6.literal("application/pdf"),data:M6.string()}),M6.object({type:M6.literal("text"),mediaType:M6.literal("text/plain"),data:M6.string()})])}),retrievedAt:M6.string().nullable()}))),fE4=B0(()=>$0(M6.object({url:M6.string()}))),bE4=e$({id:"anthropic.web_fetch_20250910",inputSchema:fE4,outputSchema:tU$,supportsDeferredResults:!0});oU$=B0(()=>$0(YW.object({type:YW.literal("code_execution_result"),stdout:YW.string(),stderr:YW.string(),return_code:YW.number(),content:YW.array(YW.object({type:YW.literal("code_execution_output"),file_id:YW.string()})).optional().default([])}))),gE4=B0(()=>$0(YW.object({code:YW.string()}))),hE4=e$({id:"anthropic.code_execution_20250522",inputSchema:gE4,outputSchema:oU$}),rU$=B0(()=>$0(e1.discriminatedUnion("type",[e1.object({type:e1.literal("code_execution_result"),stdout:e1.string(),stderr:e1.string(),return_code:e1.number(),content:e1.array(e1.object({type:e1.literal("code_execution_output"),file_id:e1.string()})).optional().default([])}),e1.object({type:e1.literal("bash_code_execution_result"),content:e1.array(e1.object({type:e1.literal("bash_code_execution_output"),file_id:e1.string()})),stdout:e1.string(),stderr:e1.string(),return_code:e1.number()}),e1.object({type:e1.literal("bash_code_execution_tool_result_error"),error_code:e1.string()}),e1.object({type:e1.literal("text_editor_code_execution_tool_result_error"),error_code:e1.string()}),e1.object({type:e1.literal("text_editor_code_execution_view_result"),content:e1.string(),file_type:e1.string(),num_lines:e1.number().nullable(),start_line:e1.number().nullable(),total_lines:e1.number().nullable()}),e1.object({type:e1.literal("text_editor_code_execution_create_result"),is_file_update:e1.boolean()}),e1.object({type:e1.literal("text_editor_code_execution_str_replace_result"),lines:e1.array(e1.string()).nullable(),new_lines:e1.number().nullable(),new_start:e1.number().nullable(),old_lines:e1.number().nullable(),old_start:e1.number().nullable()})]))),lE4=B0(()=>$0(e1.discriminatedUnion("type",[e1.object({type:e1.literal("programmatic-tool-call"),code:e1.string()}),e1.object({type:e1.literal("bash_code_execution"),command:e1.string()}),e1.discriminatedUnion("command",[e1.object({type:e1.literal("text_editor_code_execution"),command:e1.literal("view"),path:e1.string()}),e1.object({type:e1.literal("text_editor_code_execution"),command:e1.literal("create"),path:e1.string(),file_text:e1.string().nullish()}),e1.object({type:e1.literal("text_editor_code_execution"),command:e1.literal("str_replace"),path:e1.string(),old_str:e1.string(),new_str:e1.string()})])]))),cE4=e$({id:"anthropic.code_execution_20250825",inputSchema:lE4,outputSchema:rU$,supportsDeferredResults:!0}),aU$=B0(()=>$0(b1.discriminatedUnion("type",[b1.object({type:b1.literal("code_execution_result"),stdout:b1.string(),stderr:b1.string(),return_code:b1.number(),content:b1.array(b1.object({type:b1.literal("code_execution_output"),file_id:b1.string()})).optional().default([])}),b1.object({type:b1.literal("encrypted_code_execution_result"),encrypted_stdout:b1.string(),stderr:b1.string(),return_code:b1.number(),content:b1.array(b1.object({type:b1.literal("code_execution_output"),file_id:b1.string()})).optional().default([])}),b1.object({type:b1.literal("bash_code_execution_result"),content:b1.array(b1.object({type:b1.literal("bash_code_execution_output"),file_id:b1.string()})),stdout:b1.string(),stderr:b1.string(),return_code:b1.number()}),b1.object({type:b1.literal("bash_code_execution_tool_result_error"),error_code:b1.string()}),b1.object({type:b1.literal("text_editor_code_execution_tool_result_error"),error_code:b1.string()}),b1.object({type:b1.literal("text_editor_code_execution_view_result"),content:b1.string(),file_type:b1.string(),num_lines:b1.number().nullable(),start_line:b1.number().nullable(),total_lines:b1.number().nullable()}),b1.object({type:b1.literal("text_editor_code_execution_create_result"),is_file_update:b1.boolean()}),b1.object({type:b1.literal("text_editor_code_execution_str_replace_result"),lines:b1.array(b1.string()).nullable(),new_lines:b1.number().nullable(),new_start:b1.number().nullable(),old_lines:b1.number().nullable(),old_start:b1.number().nullable()})]))),mE4=B0(()=>$0(b1.discriminatedUnion("type",[b1.object({type:b1.literal("programmatic-tool-call"),code:b1.string()}),b1.object({type:b1.literal("bash_code_execution"),command:b1.string()}),b1.discriminatedUnion("command",[b1.object({type:b1.literal("text_editor_code_execution"),command:b1.literal("view"),path:b1.string()}),b1.object({type:b1.literal("text_editor_code_execution"),command:b1.literal("create"),path:b1.string(),file_text:b1.string().nullish()}),b1.object({type:b1.literal("text_editor_code_execution"),command:b1.literal("str_replace"),path:b1.string(),old_str:b1.string(),new_str:b1.string()})])]))),iE4=e$({id:"anthropic.code_execution_20260120",inputSchema:mE4,outputSchema:aU$,supportsDeferredResults:!0}),sU$=B0(()=>$0(H_.array(H_.object({type:H_.literal("tool_reference"),toolName:H_.string()})))),nE4=B0(()=>$0(H_.object({pattern:H_.string(),limit:H_.number().optional()}))),tE4=e$({id:"anthropic.tool_search_regex_20251119",inputSchema:nE4,outputSchema:sU$,supportsDeferredResults:!0});eU$=new Set(["date-time","time","date","duration","email","hostname","uri","ipv4","ipv6","uuid"]),$j4=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","minItems","maxItems","uniqueItems","minProperties","maxProperties","not"];Kj4=B0(()=>$0(lr0.object({command:lr0.string(),restart:lr0.boolean().optional()}))),Fj4=x4({id:"anthropic.bash_20241022",inputSchema:Kj4}),Hj4=B0(()=>$0(cr0.object({command:cr0.string(),restart:cr0.boolean().optional()}))),Uj4=x4({id:"anthropic.bash_20250124",inputSchema:Hj4}),Nj4=B0(()=>$0(vt.object({action:vt.enum(["key","type","mouse_move","left_click","left_click_drag","right_click","middle_click","double_click","screenshot","cursor_position"]),coordinate:vt.array(vt.number().int()).optional(),text:vt.string().optional()}))),Bj4=x4({id:"anthropic.computer_20241022",inputSchema:Nj4}),Oj4=B0(()=>$0(zJ.object({action:zJ.enum(["key","hold_key","type","cursor_position","mouse_move","left_mouse_down","left_mouse_up","left_click","left_click_drag","right_click","middle_click","double_click","triple_click","scroll","wait","screenshot"]),coordinate:zJ.tuple([zJ.number().int(),zJ.number().int()]).optional(),duration:zJ.number().optional(),scroll_amount:zJ.number().optional(),scroll_direction:zJ.enum(["up","down","left","right"]).optional(),start_coordinate:zJ.tuple([zJ.number().int(),zJ.number().int()]).optional(),text:zJ.string().optional()}))),Dj4=x4({id:"anthropic.computer_20250124",inputSchema:Oj4}),wj4=B0(()=>$0(P7.object({action:P7.enum(["key","hold_key","type","cursor_position","mouse_move","left_mouse_down","left_mouse_up","left_click","left_click_drag","right_click","middle_click","double_click","triple_click","scroll","wait","screenshot","zoom"]),coordinate:P7.tuple([P7.number().int(),P7.number().int()]).optional(),duration:P7.number().optional(),region:P7.tuple([P7.number().int(),P7.number().int(),P7.number().int(),P7.number().int()]).optional(),scroll_amount:P7.number().optional(),scroll_direction:P7.enum(["up","down","left","right"]).optional(),start_coordinate:P7.tuple([P7.number().int(),P7.number().int()]).optional(),text:P7.string().optional()}))),Lj4=x4({id:"anthropic.computer_20251124",inputSchema:wj4}),Ej4=B0(()=>$0(h6.discriminatedUnion("command",[h6.object({command:h6.literal("view"),path:h6.string(),view_range:h6.tuple([h6.number(),h6.number()]).optional()}),h6.object({command:h6.literal("create"),path:h6.string(),file_text:h6.string()}),h6.object({command:h6.literal("str_replace"),path:h6.string(),old_str:h6.string(),new_str:h6.string()}),h6.object({command:h6.literal("insert"),path:h6.string(),insert_line:h6.number(),insert_text:h6.string()}),h6.object({command:h6.literal("delete"),path:h6.string()}),h6.object({command:h6.literal("rename"),old_path:h6.string(),new_path:h6.string()})]))),jj4=x4({id:"anthropic.memory_20250818",inputSchema:Ej4}),zj4=B0(()=>$0(sK.object({command:sK.enum(["view","create","str_replace","insert","undo_edit"]),path:sK.string(),file_text:sK.string().optional(),insert_line:sK.number().int().optional(),new_str:sK.string().optional(),insert_text:sK.string().optional(),old_str:sK.string().optional(),view_range:sK.array(sK.number().int()).optional()}))),Pj4=x4({id:"anthropic.text_editor_20241022",inputSchema:zj4}),Aj4=B0(()=>$0(eK.object({command:eK.enum(["view","create","str_replace","insert","undo_edit"]),path:eK.string(),file_text:eK.string().optional(),insert_line:eK.number().int().optional(),new_str:eK.string().optional(),insert_text:eK.string().optional(),old_str:eK.string().optional(),view_range:eK.array(eK.number().int()).optional()}))),Tj4=x4({id:"anthropic.text_editor_20250124",inputSchema:Aj4}),Rj4=B0(()=>$0($F.object({command:$F.enum(["view","create","str_replace","insert"]),path:$F.string(),file_text:$F.string().optional(),insert_line:$F.number().int().optional(),new_str:$F.string().optional(),insert_text:$F.string().optional(),old_str:$F.string().optional(),view_range:$F.array($F.number().int()).optional()}))),Ij4=x4({id:"anthropic.text_editor_20250429",inputSchema:Rj4}),qj4=B0(()=>$0(U_.array(U_.object({type:U_.literal("tool_reference"),toolName:U_.string()})))),Mj4=B0(()=>$0(U_.object({query:U_.string(),limit:U_.number().optional()}))),kj4=e$({id:"anthropic.tool_search_bm25_20251119",inputSchema:Mj4,outputSchema:qj4,supportsDeferredResults:!0}),Sj4={advisor_20260301:OE4,bash_20241022:Fj4,bash_20250124:Uj4,codeExecution_20250522:uE4,codeExecution_20250825:dE4,codeExecution_20260120:pE4,computer_20241022:Bj4,computer_20250124:Dj4,computer_20251124:Lj4,memory_20250818:jj4,textEditor_20241022:Pj4,textEditor_20250124:Tj4,textEditor_20250429:Ij4,textEditor_20250728:EE4,webFetch_20250910:xE4,webFetch_20260209:_E4,webSearch_20250305:ME4,webSearch_20260209:TE4,toolSearchRegex_20251119:oE4,toolSearchBm25_20251119:Vj4};Ey9=ft()});import{z as TU}from"zod/v4";import{z as bt}from"zod/v4";import{z as BQ}from"zod/v4";import{z as g0}from"zod/v4";import{z as B6}from"zod/v4";import{z as gg}from"zod/v4";import{z as Qz4}from"zod/v4";import{z as xt}from"zod/v4";import{z as Wz4}from"zod/v4";import{z as N_}from"zod/v4";import{z as Uz4}from"zod/v4";import{z as ir0}from"zod/v4";import{z as B_}from"zod/v4";import{z as B9}from"zod/v4";import{z as H0}from"zod/v4";import{z as i1}from"zod/v4";function ZN$($){var Z,Q,X,Y;if($==null)return{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0},raw:void 0};let G=(Z=$.promptTokenCount)!=null?Z:0,J=(Q=$.candidatesTokenCount)!=null?Q:0,W=(X=$.cachedContentTokenCount)!=null?X:0,K=(Y=$.thoughtsTokenCount)!=null?Y:0;return{inputTokens:{total:G,noCache:G-W,cacheRead:W,cacheWrite:void 0},outputTokens:{total:J+K,text:J,reasoning:K},raw:$}}function GW($,Z=!0){if($==null)return;if(gj4($)){if(Z)return;if(typeof $==="object"&&$.description)return{type:"object",description:$.description};return{type:"object"}}if(typeof $==="boolean")return{type:"boolean",properties:{}};let{type:Q,description:X,required:Y,properties:G,items:J,allOf:W,anyOf:K,oneOf:F,format:H,const:U,minLength:N,enum:B}=$,O={};if(X)O.description=X;if(Y)O.required=Y;if(H)O.format=H;if(U!==void 0)O.enum=[U];if(Q)if(Array.isArray(Q)){let w=Q.includes("null"),L=Q.filter((E)=>E!=="null");if(L.length===0)O.type="null";else if(O.anyOf=L.map((E)=>({type:E})),w)O.nullable=!0}else O.type=Q;if(B!==void 0)O.enum=B;if(G!=null)O.properties=Object.entries(G).reduce((w,[L,E])=>{return w[L]=GW(E,!1),w},{});if(J)O.items=Array.isArray(J)?J.map((w)=>GW(w,!1)):GW(J,!1);if(W)O.allOf=W.map((w)=>GW(w,!1));if(K)if(K.some((w)=>typeof w==="object"&&(w==null?void 0:w.type)==="null")){let w=K.filter((L)=>!(typeof L==="object"&&(L==null?void 0:L.type)==="null"));if(w.length===1){let L=GW(w[0],!1);if(typeof L==="object")O.nullable=!0,Object.assign(O,L)}else O.anyOf=w.map((L)=>GW(L,!1)),O.nullable=!0}else O.anyOf=K.map((w)=>GW(w,!1));if(F)O.oneOf=F.map((w)=>GW(w,!1));if(N!==void 0)O.minLength=N;return O}function gj4($){return $!=null&&typeof $==="object"&&$.type==="object"&&($.properties==null||Object.keys($.properties).length===0)&&!$.additionalProperties}function QN$($,Z){let Q=[Z,"google","googleVertex","vertex"].filter((X,Y,G)=>{return G.indexOf(X)===Y});for(let X of Q){let Y=$==null?void 0:$[X];if(Y!=null)return Y}}function lj4($){let Z=uj4.exec($);if(Z==null)return;return{mediaType:Z[1],data:Z[2]}}function cj4($){let Z=lj4($);if(Z==null)return;return{inlineData:{mimeType:Z.mediaType,data:Z.data}}}function dj4($,Z,Q,X){let Y=[],G=[];for(let J of Q)switch(J.type){case"text":{G.push(J.text);break}case"image-data":case"file-data":{Y.push({inlineData:{mimeType:J.mediaType,data:J.data}});break}case"image-url":case"file-url":{let W=cj4(J.url);if(W!=null)Y.push(W);else G.push(JSON.stringify(J));break}default:{G.push(JSON.stringify(J));break}}$.push({functionResponse:{...X!=null?{id:X}:{},name:Z,response:{name:Z,content:G.length>0?G.join(`
|
|
1444
1444
|
`):"Tool executed successfully."},...Y.length>0?{parts:Y}:{}}})}function mj4($,Z,Q,X){for(let Y of Q)switch(Y.type){case"text":$.push({functionResponse:{...X!=null?{id:X}:{},name:Z,response:{name:Z,content:Y.text}}});break;case"image-data":$.push({inlineData:{mimeType:String(Y.mediaType),data:String(Y.data)}},{text:"Tool executed successfully and returned this image as a response"});break;default:$.push({text:JSON.stringify(Y)});break}}function ij4($,Z){var Q,X,Y,G,J;let W=[],K=[],F=!0,H=(Q=Z==null?void 0:Z.isGemmaModel)!=null?Q:!1,U=(X=Z==null?void 0:Z.isGemini3Model)!=null?X:!1,N=(Y=Z==null?void 0:Z.providerOptionsName)!=null?Y:"google",B=(G=Z==null?void 0:Z.supportsFunctionResponseParts)!=null?G:!0,O=Z==null?void 0:Z.onWarning,w=!1,L=[],E=(j)=>{return L.push(j),w=!0,hj4};for(let{role:j,content:z}of $)switch(j){case"system":{if(!F)throw new b4({functionality:"system messages are only supported at the beginning of the conversation"});W.push({text:z});break}case"user":{F=!1;let P=[];for(let A of z)switch(A.type){case"text":{P.push({text:A.text});break}case"file":{let I=A.mediaType==="image/*"?"image/jpeg":A.mediaType;P.push(A.data instanceof URL?{fileData:{mimeType:I,fileUri:A.data.toString()}}:{inlineData:{mimeType:I,data:OZ(A.data)}});break}}K.push({role:"user",parts:P});break}case"assistant":{F=!1,K.push({role:"model",parts:z.map((P)=>{let A=QN$(P.providerOptions,N),I=(A==null?void 0:A.thoughtSignature)!=null?String(A.thoughtSignature):void 0;switch(P.type){case"text":return P.text.length===0?void 0:{text:P.text,thoughtSignature:I};case"reasoning":return P.text.length===0?void 0:{text:P.text,thought:!0,thoughtSignature:I};case"file":{if(P.data instanceof URL)throw new b4({functionality:"File data URLs in assistant messages are not supported"});return{inlineData:{mimeType:P.mediaType,data:OZ(P.data)},...(A==null?void 0:A.thought)===!0?{thought:!0}:{},thoughtSignature:I}}case"tool-call":{let k=(A==null?void 0:A.serverToolCallId)!=null?String(A.serverToolCallId):void 0,M=(A==null?void 0:A.serverToolType)!=null?String(A.serverToolType):void 0,S=I!=null?I:U?E(P.toolName):void 0;if(k&&M)return{toolCall:{toolType:M,args:typeof P.input==="string"?JSON.parse(P.input):P.input,id:k},thoughtSignature:S};return{functionCall:{...P.toolCallId!=null?{id:P.toolCallId}:{},name:P.toolName,args:P.input},thoughtSignature:S}}case"tool-result":{let k=(A==null?void 0:A.serverToolCallId)!=null?String(A.serverToolCallId):void 0,M=(A==null?void 0:A.serverToolType)!=null?String(A.serverToolType):void 0;if(k&&M)return{toolResponse:{toolType:M,response:P.output.type==="json"?P.output.value:{},id:k},thoughtSignature:I};return}}}).filter((P)=>P!==void 0)});break}case"tool":{F=!1;let P=[];for(let A of z){if(A.type==="tool-approval-response")continue;let I=QN$(A.providerOptions,N),k=(I==null?void 0:I.serverToolCallId)!=null?String(I.serverToolCallId):void 0,M=(I==null?void 0:I.serverToolType)!=null?String(I.serverToolType):void 0;if(k&&M){let m=(I==null?void 0:I.thoughtSignature)!=null?String(I.thoughtSignature):void 0;if(K.length>0){let f=K[K.length-1];if(f.role==="model"){f.parts.push({toolResponse:{toolType:M,response:A.output.type==="json"?A.output.value:{},id:k},thoughtSignature:m});continue}}}let S=A.output;if(S.type==="content")if(B)dj4(P,A.toolName,S.value,A.toolCallId);else mj4(P,A.toolName,S.value,A.toolCallId);else P.push({functionResponse:{...A.toolCallId!=null?{id:A.toolCallId}:{},name:A.toolName,response:{name:A.toolName,content:S.type==="execution-denied"?(J=S.reason)!=null?J:"Tool execution denied.":S.value}}})}K.push({role:"user",parts:P});break}}if(H&&W.length>0&&K.length>0&&K[0].role==="user"){let j=W.map((z)=>z.text).join(`
|
|
@@ -2980,7 +2980,7 @@ Respond with ONLY a JSON object of this shape, and nothing else:
|
|
|
2980
2980
|
${G.join(`
|
|
2981
2981
|
`)}`:Y}function PB6($){let Z=new Set;for(let Q of $)for(let X of Q.split(`
|
|
2982
2982
|
`)){let Y=X.trim();if(/^Co-authored-by:\s/i.test(Y))Z.add(Y)}return[...Z]}var Sd$=200,UB6=12,BB6,DB6=300,JQ1=3;var WQ1=D(()=>{Zw();uT0();BB6={aheadBy:0,behindBy:0,files:[]}});function TB6($){if(!$||$.includes(".."))return!1;return AB6.test($)}function _d$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!TB6(Z))return null;let{__resolveType:Q,...X}=$;return{resolveType:Z,payload:X}}function vd$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var AB6;var fd$=D(()=>{AB6=/^[\w./@-]+$/});function vs($,Z){let Q=$?.githubRepo;if(!Q?.owner||!Q?.name)return null;if(!Q.connectionId)return Q;if(!Z.includes(Q.connectionId))return null;return Q}async function bd$($,Z,Q,X){if(!X.connectionId)throw new bv("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let Y=$.organization?.id;if(!Y)throw new bv(H9);await uO({ctx:$,connectionId:X.connectionId,organizationId:Y,forceRefresh:!0,onLegacyMintError:(H)=>{let U=H instanceof Error?H.message:H9;throw new bv(U)}});let{cloneUrl:G,gitUserName:J,gitUserEmail:W}=await xK(X.connectionId,X.owner,X.name,$.db,$.vault).catch((H)=>{let{code:U,message:N}=v9$(H instanceof Error?H.message:String(H));throw U?new bv(N):H}),K=Gl($),F=await Z.proxyDaemonRequest(Q,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({git:{repository:{cloneUrl:G},identity:{userName:J,userEmail:W}},...K?{operator:K}:{}})});if(!F.ok){let H=await hO(F,RB6).catch(()=>F.statusText);throw Error(`Failed to refresh sandbox git credentials (${F.status}): ${H}`)}}var RB6=10485760,bv;var KQ1=D(()=>{FJ();VT0();Tn();ri0();oy();bv=class bv extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function qB6($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!IB6.test(Z))throw Error(`Invalid branch name: ${$}`)}function xv($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(kB6)])}async function SB6($,Z){let Q=$.var.studioContext,X=WJ(Z.branch),Y=$.req.query("thread")??X,G=Y&&Y===X?Z.branchThread:Y?await Q.storage.threads.get(Y).catch(()=>null):null,J=G?.virtual_mcp_id===Z.virtualMcpId?G:null,W=_C(J?.metadata?.runtime);if(W)return W;let K=wD0(Z.virtualMcpMetadata),F=K==="cms"?await c71(Q,{claimName:Z.claimName}):"alive",H=K==="cms"&&F!=="alive"?"cms":"sandbox",U=!!J&&(F==="gone"||F==="alive"&&K==="cms");if(U&&J)sn(Q,J.id,H);if(K==="cms")console.log("sandbox proxy: no runtime stamp",{route:$.req.path,method:$.req.method,reason:J?"unstamped":"threadless",liveness:F,resolved:H,stamped:U});return H}async function CB6($){let Z=$.get("vmClaim");if(Z.runner)return Z.runner;try{return await FX($.var.studioContext)}catch{return null}}function yv($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}async function Hl($){let{virtualMcpMetadata:Z,connectionIds:Q}=$.get("vmClaim"),X=$.var.studioContext,Y=vs(Z,Q);if(!Y)throw new d4(404,"AUTH","repo","Project has no GitHub repository");let G=n(X);return ST0(X,G.id,Y)}function FQ1($,Z){if(Z instanceof _A0)return $.json({error:Z.message},429,{...R5,...Z.retryAfterMs===null?{}:{"Retry-After":String(Math.ceil(Z.retryAfterMs/1000))}});if(Z instanceof d4){let X=Z.status===404?404:Z.status===409||Z.status===422?409:502;return $.json({error:Z.message},X,R5)}let Q=Z instanceof Error?Z.message:String(Z);return $.json({error:Q},502,R5)}async function gd$($,Z,Q){let X;try{X=await fetch(Z,Q)}catch{return $.json({error:"Preview unreachable"},502)}let Y;try{Y=await X.text()}catch{return $.json({error:"Preview unreachable"},502)}return new Response(Y,{status:X.status,headers:{"content-type":X.headers.get("content-type")??"application/json"}})}async function hd$($){try{let Z=await Hl($),Q=await lT0(Z,$.get("vmClaim").branch);return $.json(Q,200,R5)}catch(Z){return FQ1($,Z)}}function fs($,Z){let X=(mT0.get($)??Promise.resolve()).catch(()=>{}).then(Z),Y=X.catch(()=>{});return mT0.set($,Y),Y.finally(()=>{if(mT0.get($)===Y)mT0.delete($)}),X}async function eZ($,Z,Q){if(!Q?.runner&&$.get("vmClaim").runtime==="cms")return $.json({error:"sandbox not found: this session is sandbox-less"},404,R5);let X=Q?.runner??yv($);if(X instanceof Response)return X;let{claimName:Y,userId:G,projectRef:J}=$.get("vmClaim"),W=Q?.method??"POST",K=null,F=new Headers;if(Q?.jsonBody!==void 0)K=Q.jsonBody,F.set("content-type","application/json");else if(Q?.forwardJsonBody)K=await $.req.text(),F.set("content-type","application/json");let H=Q?.signal,U={method:W,headers:F,body:K,...H?{signal:H}:{}},N=async()=>{let B=await X.proxyDaemonRequest(Y,Z,U);if(Q?.map404to410&&B.status===404){try{await B.body?.cancel()}catch{}if(await X.adoptLiveClaim({userId:G,projectRef:J},Y))B=await X.proxyDaemonRequest(Y,Z,U);if(B.status===404){try{await B.body?.cancel()}catch{}return new Response(JSON.stringify({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."}),{status:410,headers:{"content-type":"application/json",...R5}})}}let O=await B.text(),w=Q?.redactRepoDir?_B6(O):O,L=B.headers.get("content-type")??"application/json";return new Response(w,{status:B.status,headers:{"content-type":L,...R5}})};try{if(H){let B=N();return B.catch(()=>{}),await Promise.race([B,new Promise((w,L)=>{if(H.aborted)return L(H.reason);H.addEventListener("abort",()=>L(H.reason),{once:!0})})])}return await N()}catch(B){let O=B instanceof Error?B.message:String(B);return $.json({error:`Daemon unreachable: ${O}`},502)}}function _B6($){try{let Z=JSON.parse($);if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&"repoDir"in Z)return JSON.stringify({...Z,repoDir:null})}catch{}return $}async function iT0($,Z,Q,X="GET",Y){let G=await $.proxyDaemonRequest(Z,Q,{method:X,headers:new Headers,body:null});if(G.status===404&&Y){try{await G.body?.cancel()}catch{}if(await $.adoptLiveClaim(Y,Z))G=await $.proxyDaemonRequest(Z,Q,{method:X,headers:new Headers,body:null})}if(G.status===404){try{await G.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let J=await G.text();if(!G.ok){let W=`Daemon error (${G.status})`;try{W=JSON.parse(J).error??W}catch{}throw Error(W)}return JSON.parse(J)}function vB6($){return ud$.includes($)}var IB6,xd$=524288,MB6=65536,kB6=1e4,yd$=2000,VB6,mT0,R5,ud$,ld$=()=>{let $=new J1;$.use("/:virtualMcpId/:branch/*",VB6),$.post("/:virtualMcpId/:branch/write",(Q)=>eZ(Q,"/_sandbox/write",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/unlink",(Q)=>eZ(Q,"/_sandbox/unlink",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/mkdir",(Q)=>eZ(Q,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/rename",(Q)=>eZ(Q,"/_sandbox/rename",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/read",(Q)=>eZ(Q,"/_sandbox/read",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/glob",(Q)=>eZ(Q,"/_sandbox/glob",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/grep",(Q)=>eZ(Q,"/_sandbox/grep",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/exec/:script",async(Q)=>{let X=Q.req.param("script");if(!X)return Q.json({error:"missing script name"},400);return eZ(Q,`/_sandbox/exec/${encodeURIComponent(X)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",async(Q)=>{let X=Q.req.param("script");if(!X)return Q.json({error:"missing script name"},400);return eZ(Q,`/_sandbox/exec/${encodeURIComponent(X)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(Q)=>eZ(Q,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDir:!0})),$.put("/:virtualMcpId/:branch/config",(Q)=>eZ(Q,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(Q)=>{let X=Q.req.param("step");if(!X||!vB6(X))return Q.json({error:`step must be one of: ${ud$.join(", ")}`},400);let Y=Q.get("vmClaim"),G=await c71(Q.var.studioContext,{claimName:Y.claimName})==="gone"?null:await CB6(Q);if(!G)return Q.json({error:"sandbox not found: nothing is running at this ref"},404,R5);if(X==="start"){let J=n(Q.var.studioContext),W=ny(Y.virtualMcpMetadata);try{await b70({ctx:Q.var.studioContext,runner:G,handle:Y.claimName,orgId:J.id,userId:Y.callerUserId,entries:W})}catch(K){let F=K instanceof Error?K.message:String(K);return Q.json({error:`Failed to push env to daemon: ${F}`},502)}}return eZ(Q,`/_sandbox/setup/${X}`,{signal:Q.req.raw.signal,map404to410:!0,runner:G})}),$.get("/:virtualMcpId/:branch/events",(Q)=>{let X=Q.get("vmClaim");if(!X.runner)return QN(Q,async(Y)=>{await Y.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this studio instance."})})});return lc$(Q,{ctx:Q.var.studioContext,claimName:X.claimName,runner:X.runner,virtualMcpId:X.virtualMcpId,branch:X.branch,userId:X.userId,projectRef:X.projectRef,virtualMcpMetadata:X.virtualMcpMetadata})}),$.get("/:virtualMcpId/:branch/git/status",(Q)=>{if(Q.get("vmClaim").runtime==="cms")return hd$(Q);return Z(Q)});let Z=(Q)=>eZ(Q,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([Q.req.raw.signal,AbortSignal.timeout(yd$)])});return $.post("/:virtualMcpId/:branch/git/status",(Q)=>{if(Q.get("vmClaim").runtime==="cms")return hd$(Q);return eZ(Q,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([Q.req.raw.signal,AbortSignal.timeout(yd$)])})}),$.post("/:virtualMcpId/:branch/git/diff",async(Q)=>{let X=Q.get("vmClaim");if(X.runtime==="cms")try{let Y=await Q.req.json().catch(()=>({})),G=await Hl(Q),J=await cT0(G,X.branch,Y.base);return Q.json(J,200,R5)}catch(Y){return FQ1(Q,Y)}return eZ(Q,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})}),$.post("/:virtualMcpId/:branch/git/publish",async(Q)=>{if(Q.get("vmClaim").runtime==="cms")return Q.json({ok:!0},200,R5);let X=yv(Q);if(X instanceof Response)return X;let{claimName:Y,virtualMcpMetadata:G,connectionIds:J}=Q.get("vmClaim"),W=Q.var.studioContext;return fs(Y,async()=>{try{await d71(W,X,Y);let K=vs(G,J);if(K)await bd$(W,X,Y,K)}catch(K){if(K instanceof bv)return Q.json({error:K.message},403,R5);let F=K instanceof Error?K.message:String(K);return Q.json({error:F},502,R5)}return eZ(Q,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",async(Q)=>{let X=Q.get("vmClaim");if(X.runtime==="cms")return fs(X.claimName,async()=>{let Y=await Q.req.json().catch(()=>({})),G=Array.isArray(Y.filepaths)?Y.filepaths.filter((J)=>typeof J==="string"):[];if(G.length===0)return Q.json({error:"filepaths is required"},400,R5);try{let J=await Hl(Q);return await Cd$(J,X.branch,G),Q.json({ok:!0},200,R5)}catch(J){let W=J instanceof d4&&J.status===409?409:502,K=J instanceof Error?J.message:String(J);return Q.json({error:K},W,R5)}});return fs(X.claimName,()=>eZ(Q,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(Q)=>{let X=Q.get("vmClaim");if(X.runtime==="cms")return fs(X.claimName,async()=>{try{let W=await Q.req.json().catch(()=>({})),K=await Hl(Q),F=W.base??await K.getDefaultBranch();return await dT0(K,X.branch,F),Q.json({ok:!0},200,R5)}catch(W){return FQ1(Q,W)}});let Y=yv(Q);if(Y instanceof Response)return Y;let{claimName:G}=Q.get("vmClaim"),J=Q.var.studioContext;return fs(G,async()=>{try{await d71(J,Y,G)}catch(W){let K=W instanceof Error?W.message:String(W);return Q.json({error:K},502,R5)}return eZ(Q,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",a5({maxSize:xd$,onError:(Q)=>Q.json({error:"Payload too large"},413,R5)}),async(Q)=>{let X=Q.get("vmClaim"),Y=null;if(X.runtime!=="cms"){let F=yv(Q);if(F instanceof Response)return F;Y=F}let{claimName:G,userId:J,projectRef:W}=X,K=Q.var.studioContext;try{let F=await Q.req.json().catch(()=>({})),H=F.status,U=F.diff,N=U!=null&&typeof U.diffs==="object"&&U.diffs!==null,[B,O]=p71(H)&&N?[H,U]:Y?await Promise.all([iT0(Y,G,"/_sandbox/git/status","GET",{userId:J,projectRef:W}),iT0(Y,G,"/_sandbox/git/diff","GET",{userId:J,projectRef:W})]):await(async()=>{let L=await Hl(Q);return Promise.all([lT0(L,X.branch),cT0(L,X.branch)])})(),w=await pc$(K,B,O);return Q.json(w,200,R5)}catch(F){let H=F instanceof Error?F.message:String(F);if(H==="SANDBOX_GONE")return Q.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,R5);return Q.json({error:H},502,R5)}}),$.post("/:virtualMcpId/:branch/git/judge-review",a5({maxSize:xd$,onError:(Q)=>Q.json({error:"Payload too large"},413,R5)}),async(Q)=>{let X=Q.get("vmClaim"),Y=null;if(X.runtime!=="cms"){let F=yv(Q);if(F instanceof Response)return F;Y=F}let{claimName:G,userId:J,projectRef:W}=X,K=Q.var.studioContext;try{let F=await Q.req.json().catch(()=>({})),H=F.status,U=F.diff,N=U!=null&&typeof U.diffs==="object"&&U.diffs!==null,[B,O]=p71(H)&&N?[H,U]:Y?await Promise.all([iT0(Y,G,"/_sandbox/git/status","GET",{userId:J,projectRef:W}),iT0(Y,G,"/_sandbox/git/diff","GET",{userId:J,projectRef:W})]):await(async()=>{let L=await Hl(Q);return Promise.all([lT0(L,X.branch),cT0(L,X.branch)])})(),w=await tc$(K,B,O,typeof F.language==="string"?F.language:void 0);return Q.json(w,200,R5)}catch(F){let H=F instanceof Error?F.message:String(F);if(H==="SANDBOX_GONE")return Q.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,R5);return Q.json({error:H},502,R5)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(Q)=>{let X=yv(Q);if(X instanceof Response)return X;let{claimName:Y}=Q.get("vmClaim"),G=Q.req.query("path");if(!G||!G.startsWith("/")||G.startsWith("//")||G.includes("..")||G.includes("\\"))return Q.json({error:"Path not allowed"},403);let J;try{J=await X.getPreviewUrl(Y)}catch{return Q.json({error:"Preview not available"},502)}if(!J)return Q.json({error:"Preview not available"},502);let W=J.replace(/\/+$/,"");return gd$(Q,`${W}${G}`)}),$.post("/:virtualMcpId/:branch/preview-invoke",a5({maxSize:MB6,onError:(Q)=>Q.json({error:"Payload too large"},413)}),async(Q)=>{let X=yv(Q);if(X instanceof Response)return X;let{claimName:Y}=Q.get("vmClaim"),G;try{G=await X.getPreviewUrl(Y)}catch{return Q.json({error:"Preview not available"},502)}if(!G)return Q.json({error:"Preview not available"},502);let J;try{J=await Q.req.json()}catch{return Q.json({error:"Invalid JSON body"},400)}if(!J||typeof J!=="object"||Array.isArray(J))return Q.json({error:"Invalid JSON body"},400);let W=_d$(J);if(!W)return Q.json({error:"Invalid or missing __resolveType"},400);let K=vd$(G,W.resolveType);return gd$(Q,K,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(W.payload),signal:AbortSignal.timeout(30000)})}),$};var cd$=D(()=>{d$();VF();Yl();l71();Ln();gc$();n3();Ng();hc$();s3();uc$();cc$();ni0();Pn();o71();oc$();a71();Zw();WQ1();fd$();KQ1();IB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;VB6=kT0(async($,Z)=>{let Q=$.var.studioContext;try{t(Q)}catch{return $.json({error:"Unauthorized"},401)}let X=t0(Q);if(!X)return $.json({error:"Unauthorized"},401);let Y;try{Y=n(Q)}catch{return $.json({error:"Organization scope required"},403)}let G=$.req.param("virtualMcpId"),J=$.req.param("branch");if(!G||!J)return $.json({error:"virtualMcpId and branch are required"},400);try{qB6(J)}catch(w){let L=w instanceof Error?w.message:String(w);return $.json({error:L},400)}let W=await Q.storage.virtualMcps.findById(G);if(!W||W.organization_id!==Y.id)return $.json({error:"Virtual MCP not found"},404);let K=Dn({orgId:Y.id,virtualMcpId:G,branch:J}),F=await li0(Q,J),H=ci0(F,X),U=yc$({userId:H,projectRef:K}),N=W.metadata??null,B=await SB6($,{claimName:U,branch:J,virtualMcpId:G,sandboxUserId:H,virtualMcpMetadata:N,branchThread:F});if(B==="cms")return $.set("vmClaim",{claimName:U,callerUserId:X,runner:null,virtualMcpId:G,branch:J,userId:H,projectRef:K,virtualMcpMetadata:N,connectionIds:W.connections?.map((w)=>w.connection_id)??[],runtime:B}),Z();let O;try{O=await FX(Q)}catch{O=null}if(!O)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:U,callerUserId:X,runner:O,virtualMcpId:G,branch:J,userId:H,projectRef:K,virtualMcpMetadata:N,connectionIds:W.connections?.map((w)=>w.connection_id)??[],runtime:B}),Z()});mT0=new Map;R5={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};ud$=["clone","install","start"]});function dd$($,Z,Q){let X=HQ1.get($);if(!X)X={pending:null,running:!1},HQ1.set($,X);if(!X.pending)X.pending={set:new Map,del:new Set,deps:Z,resolvers:[],rejecters:[]};let Y=X.pending;Y.deps=Z;for(let[J,W]of Object.entries(Q.set??{}))Y.set.set(J,W),Y.del.delete(J);for(let J of Q.delete??[])Y.del.add(J),Y.set.delete(J);let G=new Promise((J,W)=>{Y.resolvers.push(J),Y.rejecters.push(W)});if(!X.running)bB6($,X);return G}async function bB6($,Z){Z.running=!0;try{while(Z.pending){let Q=Z.pending;Z.pending=null;try{let X=await xB6(Q);for(let Y of Q.resolvers)Y(X)}catch(X){for(let Y of Q.rejecters)Y(X)}}}finally{if(Z.running=!1,!Z.pending)HQ1.delete($)}}async function xB6($){let{client:Z,branch:Q,packagePath:X}=$.deps;for(let Y=0;;Y++){let G=await Fl(Z,Q),J=await Z.getCommitTreeSha(G),W=await Z.getDecofileTree(J,X),K=YQ1(W,X),F=[],H=new Map(K.map((O)=>[O.path,{stem:O.stem,sha:O.sha}]));for(let[O,w]of $.set){let L=GQ1(K,O),E=`${JSON.stringify(w,null,2)}
|
|
2983
|
-
`,j=await Z.createBlob(E);await Md$(Z.owner,Z.repo,j,E);let z=L[0]??`${hT0(X)}/${e71(O)}.json`;F.push({path:z,mode:"100644",type:"blob",sha:j});let P=z.slice(z.lastIndexOf("/")+1,-5);H.set(z,{stem:P,sha:j,content:E});for(let A of L.slice(1))F.push({path:A,mode:"100644",type:"blob",sha:null}),H.delete(A)}for(let O of $.del)for(let w of GQ1(K,O))F.push({path:w,mode:"100644",type:"blob",sha:null}),H.delete(w);if(F.length===0)return G;let U=X?`${X}/.deco/blocks.gen.json`:".deco/blocks.gen.json";if(W.some((O)=>O.type==="blob"&&O.path===U)){let O=await Promise.all([...H.values()].map(async(j)=>({stem:j.stem,content:j.content??await Z.getBlobText(j.sha)}))),{decofile:w,skipped:L}=Vs(O);if(L.length>0)console.warn("decofile gen: dropped blocks that were not valid JSON",{repo:`${Z.owner}/${Z.repo}`,branch:Q,packagePath:X,blocks:L.map((j)=>j.key)});let E=await Z.createBlob(w);F.push({path:U,mode:"100644",type:"blob",sha:E})}let N=await Z.createTree(J,F),B=await Z.createCommit({message:yB6($),treeSha:N,parentShas:[G]});try{return await Z.updateRef(Q,B),B}catch(O){if(!(O instanceof d4&&O.status===422)||Y>=fB6-1)throw O;await L$(Q7(2000,200,Y,2,0.5))}}}function yB6($){let Z=(Y)=>{let G=Y.slice(0,3).join(", ");return Y.length>3?`${G} (+${Y.length-3} more)`:G},Q=[];if($.set.size>0)Q.push(`update ${Z([...$.set.keys()])}`);if($.del.size>0)Q.push(`delete ${Z([...$.del])}`);let X=`chore(decofile): ${Q.join("; ")}`;return Ci0(X,$.deps.coAuthor)}var fB6=3,HQ1;var md$=D(()=>{S70();_T0();a8();Zw();uT0();HQ1=new Map});import{createHmac as id$,randomBytes as gB6,timingSafeEqual as hB6}from"crypto";function pd$(){if(pT0)return pT0;let $;try{let Z=V0();$=Z.studioJwtSecret??Z.betterAuthSecret}catch{$=void 0}return pT0=$?Buffer.from($):gB6(32),pT0}function UQ1($){let Z=$.nowMs??Date.now(),Q={o:$.organizationId,m:$.virtualMcpId,b:$.branch,e:Math.floor((Z+uB6)/1000)},X=Buffer.from(JSON.stringify(Q)).toString("base64url"),Y=id$("sha256",pd$()).update(X).digest("base64url");return`${X}.${Y}`}function nd$($,Z){let Q=$.indexOf(".");if(Q<0)return!1;let X=$.slice(0,Q),Y=Buffer.from($.slice(Q+1)),G=Buffer.from(id$("sha256",pd$()).update(X).digest("base64url"));if(Y.length!==G.length||!hB6(Y,G))return!1;let J;try{J=JSON.parse(Buffer.from(X,"base64url").toString())}catch{return!1}let W=Math.floor((Z.nowMs??Date.now())/1000);return J.o===Z.organizationId&&J.m===Z.virtualMcpId&&J.b===Z.branch&&typeof J.e==="number"&&J.e>=W}var uB6=21600000,pT0=null;var td$=D(()=>{D$()});import{z as Ul}from"zod";function cB6($){return $.length>0&&$.length<=255&&!$.includes("..")&&!$.endsWith("/")&&!$.endsWith(".lock")&&lB6.test($)}function ed$($){return $.req.header("x-forwarded-host")??new URL($.req.url).host}async function bs($){let Z=$.get("decofileScope");return ST0($.var.studioContext,Z.organizationId,Z.githubRepo)}function xs($,Z){if(Z instanceof d4){let X=Z.status===404?404:Z.status===409?409:Z.status===422?409:502;return $.json({error:Z.message},X)}let Q=Z instanceof Error?Z.message:String(Z);return $.json({error:Q},500)}function $m$(){let $=new J1;return $.use("/:virtualMcpId/:branch",sd$),$.use("/:virtualMcpId/:branch/*",sd$),$.get("/:virtualMcpId/:branch",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await bs(Z),Y=await kd$(X,Q.branch,Q.packagePath,{createBranchIfMissing:!!Q.userId}),G={ETag:`"${Y.sha}"`,"Cache-Control":"no-store","Access-Control-Allow-Origin":"*"};if(Z.req.header("if-none-match")===`"${Y.sha}"`)return Z.body(null,304,G);if(!Q.userId)return Z.body(Y.decofile,200,{...G,"content-type":"application/json"});let J=UQ1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.body(`{"version":${JSON.stringify(Y.sha)},"token":${JSON.stringify(J)},"apiHost":${JSON.stringify(ed$(Z))},"decofile":${Y.decofile}}`,200,{...G,"content-type":"application/json"})}catch(X){return xs(Z,X)}}),$.get("/:virtualMcpId/:branch/meta",async(Z)=>{let Q=Z.get("decofileScope"),X=Q.packagePath?`${Q.packagePath}/.deco/meta.gen.json`:".deco/meta.gen.json";try{let Y=await bs(Z),G=await Y.getFileTextAtRef(Q.branch,X);if(G===null){let J=await Y.getDefaultBranch();if(J!==Q.branch)G=await Y.getFileTextAtRef(J,X)}if(G===null)return Z.json({error:"meta.gen.json not committed"},404);return Z.body(G,200,{"content-type":"application/json","Cache-Control":"no-store","Access-Control-Allow-Origin":"*"})}catch(Y){return xs(Z,Y)}}),$.patch("/:virtualMcpId/:branch",mB6,async(Z)=>{let Q=Z.get("decofileScope"),X=Z.var.studioContext,Y=iB6.safeParse(await Z.req.json().catch(()=>null));if(!Y.success)return Z.json({error:"Invalid body",details:Y.error.issues},400);let G=Y.data;for(let J of[...Object.keys(G.set??{}),...G.delete??[]])try{CT0(J)}catch(W){let K=W instanceof Error?W.message:String(W);return Z.json({error:K},400)}for(let[J,W]of Object.entries(G.set??{})){if(typeof W!=="object"||W===null||Array.isArray(W))return Z.json({error:`Block "${J}" must be a JSON object`},400);if(s71(J))return Z.json({error:`Block key "${J}" collides with a framework resolver module and cannot be written`},400)}try{let J=await bs(Z),W=await dd$(`${Q.organizationId}/${Q.virtualMcpId}/${Q.branch}`,{client:J,branch:Q.branch,packagePath:Q.packagePath,coAuthor:Gl(X)},G),K=UQ1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.json({version:W,token:K,apiHost:ed$(Z)})}catch(J){return xs(Z,J)}}),$.post("/:virtualMcpId/:branch/publish",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await bs(Z),Y=await X.getDefaultBranch();if(Y===Q.branch)return Z.json({error:"Branch is already the default branch"},400);let G=`chore(decofile): publish ${Q.branch}`;try{let J;try{J=await X.mergeBranch(Y,Q.branch,G)}catch(W){if(!(W instanceof d4&&W.status===409))throw W;await dT0(X,Q.branch,Y),J=await X.mergeBranch(Y,Q.branch,G)}return J?Z.json({result:"merged",sha:J}):Z.json({result:"up-to-date"})}catch(J){if(J instanceof d4&&J.status===409)return Z.json({error:"merge-conflict"},409);if(J instanceof d4&&J.status===405){let K=await X.findOpenPullRequest(Y,Q.branch)??await X.createPullRequest({base:Y,head:Q.branch,title:`Publish ${Q.branch}`});return Z.json({result:"pull-request",number:K.number,url:K.html_url})}throw J}}catch(X){return xs(Z,X)}}),$.get("/:virtualMcpId/:branch/status",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await bs(Z),Y=await X.getDefaultBranch();if(Y===Q.branch)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});try{let[{aheadBy:G,behindBy:J},W]=await Promise.all([X.compare(Y,Q.branch),X.getBranchHead(Q.branch)]);return Z.json({baseBranch:Y,aheadBy:G,behindBy:J,lastCommitAt:W.committedAt})}catch(G){if(G instanceof d4&&G.status===404)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});throw G}}catch(X){return xs(Z,X)}}),$}var lB6,od$=500,rd$=1048576,ad$=1024,dB6=8388608,mB6,iB6,sd$;var Zm$=D(()=>{Dt0();_T0();d$();VF();l71();VT0();KQ1();a71();md$();td$();WQ1();Zw();uT0();lB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;mB6=a5({maxSize:dB6,onError:($)=>$.json({error:"Payload too large"},413)}),iB6=Ul.object({set:Ul.record(Ul.string(),Ul.unknown()).optional(),delete:Ul.array(Ul.string()).optional()}).refine(($)=>Object.keys($.set??{}).length>0||($.delete?.length??0)>0,{message:"Patch must set or delete at least one block"}).refine(($)=>Object.keys($.set??{}).length+($.delete?.length??0)<=od$,{message:`Patch cannot touch more than ${od$} blocks`}).refine(($)=>Object.values($.set??{}).every((Z)=>JSON.stringify(Z).length<=rd$),{message:`Each block must be at most ${rd$} bytes`}).refine(($)=>[...Object.keys($.set??{}),...$.delete??[]].every((Z)=>Z.length<=ad$),{message:`Each block key must be at most ${ad$} characters`}),sd$=kT0(async($,Z)=>{let Q=$.var.studioContext,X=Q.organization;if(!X)return $.json({error:"Organization scope required"},500);let Y=$.req.param("virtualMcpId"),G=$.req.param("branch");if(!Y||!G)return $.json({error:"virtualMcpId and branch are required"},400);if(!cB6(G))return $.json({error:`Invalid branch name: ${G}`},400);let J=Q.auth?.user?.id??null;if(!J){let B=$.req.query("token");if(!($.req.method==="GET"&&!$.req.path.match(/\/(publish|status)$/)))return $.json({error:"Unauthorized"},401);if(!B||!nd$(B,{organizationId:X.id,virtualMcpId:Y,branch:G}))return $.json({error:"Unauthorized"},401)}let W=await Q.storage.virtualMcps.findById(Y);if(!W||W.organization_id!==X.id)return $.json({error:"Virtual MCP not found"},404);let K=W.metadata??null;if(!DD0(K))return $.json({error:"Project has no preview server configured"},404);let H=W.connections?.map((B)=>B.connection_id)??[],U=vs(K,H);if(!U)return $.json({error:"Project has no GitHub repository"},404);let N=K?.runtime;return $.set("decofileScope",{organizationId:X.id,virtualMcpId:Y,branch:G,packagePath:N?.path?.replace(/^\/+|\/+$/g,"")||null,githubRepo:U,userId:J}),Z()})});var Qm$=($)=>{let Z=new J1;if(Z.use("*",Tv),Z.route("/",cA0()),Z.route("/",Eh$()),Z.route("/",Rc$()),Z.route("/",Pc$()),Z.route("/",IT0()),Z.route("/tools",Cc$()),Z.route("/",kc$()),Z.route("/",$c$({kvStorage:$.kvStorage})),Z.route("/",sl$()),Z.route("/fs",Oc$({getConnection:$.getNatsConnection})),Z.route("/sandbox",ld$()),Z.route("/decofile",$m$()),Z.route("/",Ec$()),Z.route("/deco-sites",mA0()),Z.route("/hosting",Wh$()),Z.route("/monitor",Oh$()),Z.route("/sso",xA0()),Z.route("/",qT0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",Qh$()),$.mountDevAssets)Z.route("/dev-assets",tA0({orgFromPath:!0}));return Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth),Z.use("/mcp/task-run/:threadId",$.mcpAuth),Z.route("/",Ix$()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler),Z.route("/mcp/task-run",wc$()),Z.route("/mcp",iL0()),Z.route("/mcp/self",RT0()),Z.route("/mcp",tL0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var Xm$=D(()=>{d$();SA0();Xh$();UZ1();Kh$();Dh$();oA0();Zs();JZ1();el$();Zc$();Dc$();Qo();$Z1();oL0();f71();Lc$();jc$();Ac$();Ic$();Vc$();x71();_c$();y71();pL0();cd$();Zm$()});function pB6($){return $.filter((Z)=>Z.vendors?.alias).map((Z)=>({name:Z.name,title:Z.title,description:Z.description,logo:Z.logo,category:Z.category,vendor:{alias:Z.vendors.alias,url:Z.vendors.url}}))}var nB6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},Ym$=()=>{let $=new J1;return $.use("*",nB6),$.get("/",async(Z)=>{let Q=V0(),X=Q.decoSupabaseUrl,Y=Q.decoSupabaseServiceKey;if(!X||!Y)return Z.json({apps:[]});try{let G=await PY(X,Y,"apps?select=name,title,description,logo,category,vendors(alias,url)");return Z.json({apps:pB6(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var Gm$=D(()=>{d$();D$();hP0()});import{z as q1}from"zod";function bF($,Z="invalid_request_error",Q=null,X=null){return{error:{message:$,type:Z,param:Q,code:X}}}function XO6($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let Q=$.substring(0,Z),X=$.substring(Z+1);if(!Q||!X)return null;return{credentialId:Q,modelId:X}}function YO6($,Z,Q){try{return JSON.parse($)}catch{throw new Km$(`Invalid JSON in tool call arguments for function '${Q}' (tool_call_id: ${Z}): ${$}`)}}function GO6($){let Z={};for(let Q of $)if(Q.role==="assistant"&&Q.tool_calls)for(let X of Q.tool_calls)Z[X.id]=X.function.name;return $.map((Q)=>{switch(Q.role){case"system":return{role:"system",content:Q.content};case"user":if(typeof Q.content==="string")return{role:"user",content:Q.content};return{role:"user",content:Q.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(Q.tool_calls&&Q.tool_calls.length>0)return{role:"assistant",content:Q.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:YO6(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:Q.content??""};case"tool":let X=Z[Q.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:Q.tool_call_id,toolName:X,output:{type:"text",value:Q.content}}]}}})}function JO6($){let Z=$.map((Q)=>{let X=Q.function.parameters?sY(Q.function.parameters):sY({type:"object",properties:{}});return[Q.function.name,V$({description:Q.function.description,inputSchema:X})]});return Object.fromEntries(Z)}function WO6($){if(!$)return;return{openai:{response_format:$}}}function KO6(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function Jm$($,Z,Q,X,Y,G){let J={model:$,messages:Z,tools:Q,temperature:X.temperature,maxTokens:X.max_tokens,topP:X.top_p,frequencyPenalty:X.frequency_penalty,presencePenalty:X.presence_penalty,stopSequences:X.stop?Array.isArray(X.stop)?X.stop:[X.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function Wm$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var tB6=256,oB6,rB6,aB6,sB6,eB6,$O6,ZO6,QO6,Km$,Fm$,Hm$;var Um$=D(()=>{g4();d$();Yl();fU();oB6=q1.object({type:q1.literal("function"),function:q1.object({name:q1.string(),description:q1.string().optional(),parameters:q1.record(q1.string(),q1.unknown()).optional()})}),rB6=q1.object({id:q1.string(),type:q1.literal("function"),function:q1.object({name:q1.string(),arguments:q1.string()})}),aB6=q1.discriminatedUnion("role",[q1.object({role:q1.literal("system"),content:q1.string(),name:q1.string().optional()}),q1.object({role:q1.literal("user"),content:q1.union([q1.string(),q1.array(q1.union([q1.object({type:q1.literal("text"),text:q1.string()}),q1.object({type:q1.literal("image_url"),image_url:q1.object({url:q1.string(),detail:q1.string().optional()})})]))]),name:q1.string().optional()}),q1.object({role:q1.literal("assistant"),content:q1.string().nullable().optional(),name:q1.string().optional(),tool_calls:q1.array(rB6).optional()}),q1.object({role:q1.literal("tool"),content:q1.string(),tool_call_id:q1.string()})]),sB6=q1.object({type:q1.literal("text")}),eB6=q1.object({type:q1.literal("json_object")}),$O6=q1.object({type:q1.literal("json_schema"),json_schema:q1.object({name:q1.string(),description:q1.string().optional(),schema:q1.record(q1.string(),q1.unknown()),strict:q1.boolean().optional()})}),ZO6=q1.union([sB6,eB6,$O6]),QO6=q1.object({model:q1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:q1.array(aB6),stream:q1.boolean().optional().default(!1),temperature:q1.number().min(0).max(2).optional(),max_tokens:q1.number().positive().optional(),top_p:q1.number().min(0).max(1).optional(),frequency_penalty:q1.number().min(-2).max(2).optional(),presence_penalty:q1.number().min(-2).max(2).optional(),stop:q1.union([q1.string(),q1.array(q1.string())]).optional(),tools:q1.array(oB6).optional(),tool_choice:q1.union([q1.literal("auto"),q1.literal("none"),q1.literal("required"),q1.object({type:q1.literal("function"),function:q1.object({name:q1.string()})})]).optional(),response_format:ZO6.optional(),user:q1.string().optional()});Km$=class Km$ extends Error{constructor($){super($);this.name="MessageConversionError"}};Fm$=new J1;Fm$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),Q=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(bF("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(bF("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==Q)return $.json(bF("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let X=await $.req.json(),Y=QO6.safeParse(X);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(bF(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=XO6(G.model);if(!J)return $.json(bF("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=J,{modelId:K}=J;if(!W){let E=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((j)=>EL(j.providerId));if(!E)return $.json(bF("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=E.id}let F;try{F=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(bF(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let H=F.aiSdk.languageModel(K),U=GO6(G.messages),N=G.tools?JO6(G.tools):void 0,B=WO6(G.response_format),O=KO6(),w=Math.floor(Date.now()/1000);if(G.stream)return QN($,async(L)=>{let E=Jm$(H,U,N,G,B,$.req.raw.signal);try{let j=fO(E),z=!1,P=0,A="",I=async()=>{if(A.length===0)return;let k=A;A="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{content:k},finish_reason:null}]})})};for await(let k of j.fullStream){if(!z&&(k.type==="text-delta"||k.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(A+=k.text,A.length>=tB6)await I()}else if(k.type==="tool-call"){await I();let M=P++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:M,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await I(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{},finish_reason:Wm$(k.finishReason)}],usage:k.totalUsage?{prompt_tokens:k.totalUsage.inputTokens??0,completion_tokens:k.totalUsage.outputTokens??0,total_tokens:k.totalUsage.totalTokens??0}:void 0})})}await I(),await L.writeSSE({data:"[DONE]"})}catch(j){let z=j;console.error("[openai-compat:stream] Error:",z.message),await L.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let L=Jm$(H,U,N,G,B,$.req.raw.signal),E=await _O(L),j={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)j.tool_calls=E.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),j.content=null;return $.json({id:O,object:"chat.completion",created:w,model:G.model,choices:[{index:0,message:j,finish_reason:Wm$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(X){let Y=X;if(Y.name==="AbortError")return $.json(bF("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(bF(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(bF(Y.message,"server_error"),500)}});Hm$=Fm$});function FO6($){if(typeof $!=="object"||$===null)return!1;let Q=$.githubRepo?.url;return typeof Q==="string"&&Q.length>0}function Nm$(){let $=new J1;return $.use("*",async(Z,Q)=>{await Q(),Z.header("Cache-Control","private, no-store"),Z.header("Vary","Cookie")}),$.get("/",async(Z)=>{let Q=Z.get("studioContext"),X=t0(Q);if(!X)return Z.json({error:"Authentication required"},401);let G=(Z.req.query("site")??"").trim().toLowerCase();if(!sQ(G))return Z.json({error:"Invalid site slug"},400);let J=await Q.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.id as id","organization.slug as slug","organization.name as name","organization.metadata as metadata"]).where("member.userId","=",X).execute(),W=[];for(let F of J){if(!F.slug||m9(F))continue;let H=await Q.storage.virtualMcps.list(F.id);for(let U of H){if(Q0$(U)!==G)continue;if(!FO6(U.metadata))continue;W.push({orgSlug:F.slug,orgName:F.name??F.slug,project:{id:U.id,title:U.title,icon:U.icon??null}})}}let K={matches:W};return Z.json(K)}),$}var Bm$=D(()=>{d$();cH()});var Dm$;var Om$=D(()=>{Dm$={name:"decocms",version:"4.329.7",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function NO6(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??UO6}}var wm$,UO6="https://ph.studio.decocms.com",Lm$;var Em$=D(()=>{d$();K90();J_();u5();D$();c91();Om$();wm$=new J1;wm$.get("/",($)=>{let Z={version:Dm$.version,theme:Ep1(),...bH().logo&&{logo:bH().logo},...PU()&&{internalUrl:m_1()},...V0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!V0().firecrawlApiKey,hostingEnabled:!!V0().controlplaneRestUrl&&!!V0().controlplaneServiceToken,hostingControlPlaneGa:V0().hostingControlPlaneGa,monitorEnabled:!!V0().clickhouseAnalyticsUrl&&!!V0().clickhouseAnalyticsPassword,monitorGa:V0().monitorGa,auth:Wg$(),posthog:NO6(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:ms()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});Lm$=wm$});function Nl($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function NQ1($){return(Nl($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1)).join(" ")}function zm$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(Nl($))}&sz=${Z}`}function jm$($,Z){let Q=$.trim();if(Q.length<=Z)return Q;let X=Q.slice(0,Z-1),Y=X.lastIndexOf(" ");return`${(Y>Z*0.6?X.slice(0,Y):X).trimEnd()}\u2026`}function Pm$($){let{brand:Z,domain:Q,score:X,verdict:Y}=$,G=typeof X==="number"?`${Z} commerce report \u2014 ${Math.round(X)}/100 \xB7 decocms`:`${Z} commerce report \xB7 decocms`,J=`See the full ${Z} scorecard \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,W=Y?.trim()?jm$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):jm$(`How does ${Q} really perform? ${J}`,200);return{title:G,description:W}}import{z as l0}from"zod";var gv,BO6,OO6,DO6,wO6,Am$;var Tm$=D(()=>{gv=l0.enum(["good","bad","neutral"]),BO6=l0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((Q)=>Q!==null&&typeof Q!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},l0.object({kind:l0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:l0.coerce.string().optional(),tone:gv.optional(),muted:l0.boolean().optional(),delta:l0.coerce.string().optional(),deltaDir:l0.enum(["up","down","neutral"]).optional(),points:l0.array(l0.coerce.number()).optional(),label:l0.coerce.string().optional()}).transform(($)=>{if($.kind==="badge"&&$.label==null)$.label=$.value??"";if($.kind==="score"){let Z=Number($.value);if(Number.isNaN(Z))return{...$,kind:"text"}}return $})),OO6=l0.preprocess(($)=>{let Z=$;if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Array.isArray(Z.cells))Z=Z.cells;if(Array.isArray(Z)&&Z.length===1&&Array.isArray(Z[0]))Z=Z[0];if(Array.isArray(Z))return Z;if(Z&&typeof Z==="object")return Object.values(Z);return Z},l0.array(BO6)),DO6={key:l0.coerce.string(),title:l0.coerce.string(),eyebrow:l0.coerce.string().optional(),headline:l0.coerce.string(),annotation:l0.coerce.string().optional(),methodology:l0.coerce.string().optional(),sources:l0.array(l0.object({name:l0.coerce.string(),logoUrl:l0.coerce.string()})).optional()},wO6=l0.discriminatedUnion("template",[l0.object({template:l0.literal("cover"),score:l0.object({value:l0.coerce.number(),max:l0.coerce.number().optional(),grade:l0.coerce.string().optional(),label:l0.coerce.string().optional()}).optional(),brandImage:l0.coerce.string().optional(),screenshot:l0.coerce.string().optional(),mobileScreenshot:l0.coerce.string().optional()}),l0.object({template:l0.literal("cta"),ctaUrl:l0.coerce.string().optional(),ctaLabel:l0.coerce.string().optional(),bullets:l0.array(l0.coerce.string()).optional()}),l0.object({template:l0.literal("series"),points:l0.array(l0.coerce.number()).min(2),xLabels:l0.array(l0.coerce.string()).min(1),unit:l0.coerce.string().optional(),callout:l0.object({index:l0.coerce.number(),value:l0.coerce.string(),tone:gv.optional()})}),l0.object({template:l0.literal("threshold"),value:l0.coerce.string().default(""),metricLabel:l0.coerce.string().optional(),ratio:l0.coerce.number(),thresholdRatio:l0.coerce.number().optional(),thresholdLabel:l0.coerce.string().default(""),tone:gv.optional()}),l0.object({template:l0.literal("stats"),stats:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),tone:gv.optional()})).min(1)}),l0.object({template:l0.literal("bars"),items:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),ratio:l0.coerce.number(),tone:gv.optional()})).min(1)}),l0.object({template:l0.literal("gauges"),gauges:l0.array(l0.object({label:l0.coerce.string(),value:l0.coerce.string(),status:l0.enum(["good","warn","bad"]).catch("warn"),caption:l0.coerce.string().optional(),ratio:l0.coerce.number().optional()})).min(1)}),l0.object({template:l0.literal("checklist"),checks:l0.array(l0.object({label:l0.coerce.string(),status:l0.enum(["pass","fail","warn"]).catch("fail"),value:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("table"),columns:l0.array(l0.object({label:l0.coerce.string(),align:l0.enum(["left","right"]).optional()})).min(1),rows:l0.array(OO6).min(1),highlightRow:l0.coerce.number().optional()}),l0.object({template:l0.literal("products"),products:l0.array(l0.object({name:l0.coerce.string(),price:l0.coerce.string().optional(),image:l0.coerce.string().optional(),url:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("list"),entries:l0.array(l0.object({label:l0.coerce.string(),severity:l0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:l0.coerce.number().optional()}),l0.object({template:l0.literal("keywords"),volumeLabel:l0.coerce.string().optional(),keywords:l0.array(l0.object({term:l0.coerce.string(),volume:l0.coerce.string(),position:l0.coerce.number().catch(0)})).min(1)}),l0.object({template:l0.literal("competitor"),metricLabel:l0.coerce.string().optional(),competitors:l0.array(l0.object({name:l0.coerce.string(),value:l0.coerce.string(),tone:gv.optional(),isYou:l0.boolean().optional()})).min(1)}),l0.object({template:l0.literal("scorecard"),rivalLabel:l0.coerce.string().optional(),dimensions:l0.array(l0.object({label:l0.coerce.string(),you:l0.coerce.string(),rival:l0.coerce.string().optional(),rivalName:l0.coerce.string().optional(),tone:gv.optional()})).min(1)})]),Am$=l0.object({...DO6,template:wO6})});function nT0($){let Z=[],Q=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=Am$.safeParse(Y.props);if(G.success)return G.data;let J=G.error.issues[0];return Z.push({section_type:Y.section_type,position:Y.position,reason:J?`${J.path.join(".")||"(root)"}: ${J.message}`:"contract violation"}),null}).filter((Y)=>Y!==null),X=Q.filter((Y)=>Y.template.template!=="cover"&&Y.template.template!=="cta").map((Y)=>({key:Y.key,title:Y.title}));return{deck:{meta:{...$.meta,scores:$.summary?.scores,scannedAt:$.scanned_at,toc:X},slides:Q},drops:Z}}var BQ1=D(()=>{Tm$()});import{join as Rm$}from"path";async function EO6($){try{let Z=await fetch(`${LK({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(LO6)});if(!Z.ok)return null;let Q=await Z.json(),{deck:X}=nT0(Q);if(!X.slides.length)return null;let Y=X.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:X.meta.brand?.trim()||NQ1($),score:X.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function TG($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function jO6($,Z){let Q=Nl($),X=Z?.brand?.trim()||NQ1(Q),Y=zm$(Q,128),J=`${(V0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(Q)}`,{title:W,description:K}=Pm$({brand:X,domain:Q,score:Z?.score,verdict:Z?.verdict}),F=`${J}/og.png`,H=`${X} commerce report by decocms`;return[`<title>${TG(W)}</title>`,`<meta name="description" content="${TG(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${TG(W)}" />`,`<meta property="og:description" content="${TG(K)}" />`,`<meta property="og:url" content="${TG(J)}" />`,`<meta property="og:image" content="${TG(F)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${TG(H)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${TG(W)}" />`,`<meta name="twitter:description" content="${TG(K)}" />`,`<meta name="twitter:image" content="${TG(F)}" />`,`<meta name="twitter:image:alt" content="${TG(H)}" />`,`<link rel="canonical" href="${TG(J)}" />`,`<link rel="icon" href="${TG(Y)}" sizes="any" />`].join(`
|
|
2983
|
+
`,j=await Z.createBlob(E);await Md$(Z.owner,Z.repo,j,E);let z=L[0]??`${hT0(X)}/${e71(O)}.json`;F.push({path:z,mode:"100644",type:"blob",sha:j});let P=z.slice(z.lastIndexOf("/")+1,-5);H.set(z,{stem:P,sha:j,content:E});for(let A of L.slice(1))F.push({path:A,mode:"100644",type:"blob",sha:null}),H.delete(A)}for(let O of $.del)for(let w of GQ1(K,O))F.push({path:w,mode:"100644",type:"blob",sha:null}),H.delete(w);if(F.length===0)return G;let U=X?`${X}/.deco/blocks.gen.json`:".deco/blocks.gen.json";if(W.some((O)=>O.type==="blob"&&O.path===U)){let O=await Promise.all([...H.values()].map(async(j)=>({stem:j.stem,content:j.content??await Z.getBlobText(j.sha)}))),{decofile:w,skipped:L}=Vs(O);if(L.length>0)console.warn("decofile gen: dropped blocks that were not valid JSON",{repo:`${Z.owner}/${Z.repo}`,branch:Q,packagePath:X,blocks:L.map((j)=>j.key)});let E=await Z.createBlob(w);F.push({path:U,mode:"100644",type:"blob",sha:E})}let N=await Z.createTree(J,F),B=await Z.createCommit({message:yB6($),treeSha:N,parentShas:[G]});try{return await Z.updateRef(Q,B),B}catch(O){if(!(O instanceof d4&&O.status===422)||Y>=fB6-1)throw O;await L$(Q7(2000,200,Y,2,0.5))}}}function yB6($){let Z=(Y)=>{let G=Y.slice(0,3).join(", ");return Y.length>3?`${G} (+${Y.length-3} more)`:G},Q=[];if($.set.size>0)Q.push(`update ${Z([...$.set.keys()])}`);if($.del.size>0)Q.push(`delete ${Z([...$.del])}`);let X=`chore(decofile): ${Q.join("; ")}`;return Ci0(X,$.deps.coAuthor)}var fB6=3,HQ1;var md$=D(()=>{S70();_T0();a8();Zw();uT0();HQ1=new Map});import{createHmac as id$,randomBytes as gB6,timingSafeEqual as hB6}from"crypto";function pd$(){if(pT0)return pT0;let $;try{let Z=V0();$=Z.studioJwtSecret??Z.betterAuthSecret}catch{$=void 0}return pT0=$?Buffer.from($):gB6(32),pT0}function UQ1($){let Z=$.nowMs??Date.now(),Q={o:$.organizationId,m:$.virtualMcpId,b:$.branch,e:Math.floor((Z+uB6)/1000)},X=Buffer.from(JSON.stringify(Q)).toString("base64url"),Y=id$("sha256",pd$()).update(X).digest("base64url");return`${X}.${Y}`}function nd$($,Z){let Q=$.indexOf(".");if(Q<0)return!1;let X=$.slice(0,Q),Y=Buffer.from($.slice(Q+1)),G=Buffer.from(id$("sha256",pd$()).update(X).digest("base64url"));if(Y.length!==G.length||!hB6(Y,G))return!1;let J;try{J=JSON.parse(Buffer.from(X,"base64url").toString())}catch{return!1}let W=Math.floor((Z.nowMs??Date.now())/1000);return J.o===Z.organizationId&&J.m===Z.virtualMcpId&&J.b===Z.branch&&typeof J.e==="number"&&J.e>=W}var uB6=21600000,pT0=null;var td$=D(()=>{D$()});import{z as Ul}from"zod";function cB6($){return $.length>0&&$.length<=255&&!$.includes("..")&&!$.endsWith("/")&&!$.endsWith(".lock")&&lB6.test($)}function ed$($){return $.req.header("x-forwarded-host")??new URL($.req.url).host}async function bs($){let Z=$.get("decofileScope");return ST0($.var.studioContext,Z.organizationId,Z.githubRepo)}function xs($,Z){if(Z instanceof d4){let X=Z.status===404?404:Z.status===409?409:Z.status===422?409:502;return $.json({error:Z.message},X)}let Q=Z instanceof Error?Z.message:String(Z);return $.json({error:Q},500)}function $m$(){let $=new J1;return $.use("/:virtualMcpId/:branch",sd$),$.use("/:virtualMcpId/:branch/*",sd$),$.get("/:virtualMcpId/:branch",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await bs(Z),Y=await kd$(X,Q.branch,Q.packagePath,{createBranchIfMissing:!!Q.userId}),G={ETag:`"${Y.sha}"`,"Cache-Control":"no-store","Access-Control-Allow-Origin":"*"};if(Z.req.header("if-none-match")===`"${Y.sha}"`)return Z.body(null,304,G);if(!Q.userId)return Z.body(Y.decofile,200,{...G,"content-type":"application/json"});let J=UQ1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.body(`{"version":${JSON.stringify(Y.sha)},"token":${JSON.stringify(J)},"apiHost":${JSON.stringify(ed$(Z))},"decofile":${Y.decofile}}`,200,{...G,"content-type":"application/json"})}catch(X){return xs(Z,X)}}),$.get("/:virtualMcpId/:branch/meta",async(Z)=>{let Q=Z.get("decofileScope"),X=Q.packagePath?`${Q.packagePath}/.deco/meta.gen.json`:".deco/meta.gen.json";try{let Y=await bs(Z),G=await Y.getFileTextAtRef(Q.branch,X);if(G===null){let J=await Y.getDefaultBranch();if(J!==Q.branch)G=await Y.getFileTextAtRef(J,X)}if(G===null)return Z.json({error:"meta.gen.json not committed"},404);return Z.body(G,200,{"content-type":"application/json","Cache-Control":"no-store","Access-Control-Allow-Origin":"*"})}catch(Y){return xs(Z,Y)}}),$.patch("/:virtualMcpId/:branch",mB6,async(Z)=>{let Q=Z.get("decofileScope"),X=Z.var.studioContext,Y=iB6.safeParse(await Z.req.json().catch(()=>null));if(!Y.success)return Z.json({error:"Invalid body",details:Y.error.issues},400);let G=Y.data;for(let J of[...Object.keys(G.set??{}),...G.delete??[]])try{CT0(J)}catch(W){let K=W instanceof Error?W.message:String(W);return Z.json({error:K},400)}for(let[J,W]of Object.entries(G.set??{})){if(typeof W!=="object"||W===null||Array.isArray(W))return Z.json({error:`Block "${J}" must be a JSON object`},400);if(s71(J))return Z.json({error:`Block key "${J}" collides with a framework resolver module and cannot be written`},400)}try{let J=await bs(Z),W=await dd$(`${Q.organizationId}/${Q.virtualMcpId}/${Q.branch}`,{client:J,branch:Q.branch,packagePath:Q.packagePath,coAuthor:Gl(X)},G),K=UQ1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.json({version:W,token:K,apiHost:ed$(Z)})}catch(J){return xs(Z,J)}}),$.post("/:virtualMcpId/:branch/publish",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await bs(Z),Y=await X.getDefaultBranch();if(Y===Q.branch)return Z.json({error:"Branch is already the default branch"},400);let G=`chore(decofile): publish ${Q.branch}`;try{let J;try{J=await X.mergeBranch(Y,Q.branch,G)}catch(W){if(!(W instanceof d4&&W.status===409))throw W;await dT0(X,Q.branch,Y),J=await X.mergeBranch(Y,Q.branch,G)}return J?Z.json({result:"merged",sha:J}):Z.json({result:"up-to-date"})}catch(J){if(J instanceof d4&&J.status===409)return Z.json({error:"merge-conflict"},409);if(J instanceof d4&&J.status===405){let K=await X.findOpenPullRequest(Y,Q.branch)??await X.createPullRequest({base:Y,head:Q.branch,title:`Publish ${Q.branch}`});return Z.json({result:"pull-request",number:K.number,url:K.html_url})}throw J}}catch(X){return xs(Z,X)}}),$.get("/:virtualMcpId/:branch/status",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await bs(Z),Y=await X.getDefaultBranch();if(Y===Q.branch)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});try{let[{aheadBy:G,behindBy:J},W]=await Promise.all([X.compare(Y,Q.branch),X.getBranchHead(Q.branch)]);return Z.json({baseBranch:Y,aheadBy:G,behindBy:J,lastCommitAt:W.committedAt})}catch(G){if(G instanceof d4&&G.status===404)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});throw G}}catch(X){return xs(Z,X)}}),$}var lB6,od$=500,rd$=1048576,ad$=1024,dB6=8388608,mB6,iB6,sd$;var Zm$=D(()=>{Dt0();_T0();d$();VF();l71();VT0();KQ1();a71();md$();td$();WQ1();Zw();uT0();lB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;mB6=a5({maxSize:dB6,onError:($)=>$.json({error:"Payload too large"},413)}),iB6=Ul.object({set:Ul.record(Ul.string(),Ul.unknown()).optional(),delete:Ul.array(Ul.string()).optional()}).refine(($)=>Object.keys($.set??{}).length>0||($.delete?.length??0)>0,{message:"Patch must set or delete at least one block"}).refine(($)=>Object.keys($.set??{}).length+($.delete?.length??0)<=od$,{message:`Patch cannot touch more than ${od$} blocks`}).refine(($)=>Object.values($.set??{}).every((Z)=>JSON.stringify(Z).length<=rd$),{message:`Each block must be at most ${rd$} bytes`}).refine(($)=>[...Object.keys($.set??{}),...$.delete??[]].every((Z)=>Z.length<=ad$),{message:`Each block key must be at most ${ad$} characters`}),sd$=kT0(async($,Z)=>{let Q=$.var.studioContext,X=Q.organization;if(!X)return $.json({error:"Organization scope required"},500);let Y=$.req.param("virtualMcpId"),G=$.req.param("branch");if(!Y||!G)return $.json({error:"virtualMcpId and branch are required"},400);if(!cB6(G))return $.json({error:`Invalid branch name: ${G}`},400);let J=Q.auth?.user?.id??null;if(!J){let B=$.req.query("token");if(!($.req.method==="GET"&&!$.req.path.match(/\/(publish|status)$/)))return $.json({error:"Unauthorized"},401);if(!B||!nd$(B,{organizationId:X.id,virtualMcpId:Y,branch:G}))return $.json({error:"Unauthorized"},401)}let W=await Q.storage.virtualMcps.findById(Y);if(!W||W.organization_id!==X.id)return $.json({error:"Virtual MCP not found"},404);let K=W.metadata??null;if(!DD0(K))return $.json({error:"Project has no preview server configured"},404);let H=W.connections?.map((B)=>B.connection_id)??[],U=vs(K,H);if(!U)return $.json({error:"Project has no GitHub repository"},404);let N=K?.runtime;return $.set("decofileScope",{organizationId:X.id,virtualMcpId:Y,branch:G,packagePath:N?.path?.replace(/^\/+|\/+$/g,"")||null,githubRepo:U,userId:J}),Z()})});var Qm$=($)=>{let Z=new J1;if(Z.use("*",Tv),Z.route("/",cA0()),Z.route("/",Eh$()),Z.route("/",Rc$()),Z.route("/",Pc$()),Z.route("/",IT0()),Z.route("/tools",Cc$()),Z.route("/",kc$()),Z.route("/",$c$({kvStorage:$.kvStorage})),Z.route("/",sl$()),Z.route("/fs",Oc$({getConnection:$.getNatsConnection})),Z.route("/sandbox",ld$()),Z.route("/decofile",$m$()),Z.route("/",Ec$()),Z.route("/deco-sites",mA0()),Z.route("/hosting",Wh$()),Z.route("/monitor",Oh$()),Z.route("/sso",xA0()),Z.route("/",qT0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",Qh$()),$.mountDevAssets)Z.route("/dev-assets",tA0({orgFromPath:!0}));return Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth),Z.use("/mcp/task-run/:threadId",$.mcpAuth),Z.route("/",Ix$()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler),Z.route("/mcp/task-run",wc$()),Z.route("/mcp",iL0()),Z.route("/mcp/self",RT0()),Z.route("/mcp",tL0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var Xm$=D(()=>{d$();SA0();Xh$();UZ1();Kh$();Dh$();oA0();Zs();JZ1();el$();Zc$();Dc$();Qo();$Z1();oL0();f71();Lc$();jc$();Ac$();Ic$();Vc$();x71();_c$();y71();pL0();cd$();Zm$()});function pB6($){return $.filter((Z)=>Z.vendors?.alias).map((Z)=>({name:Z.name,title:Z.title,description:Z.description,logo:Z.logo,category:Z.category,vendor:{alias:Z.vendors.alias,url:Z.vendors.url}}))}var nB6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},Ym$=()=>{let $=new J1;return $.use("*",nB6),$.get("/",async(Z)=>{let Q=V0(),X=Q.decoSupabaseUrl,Y=Q.decoSupabaseServiceKey;if(!X||!Y)return Z.json({apps:[]});try{let G=await PY(X,Y,"apps?select=name,title,description,logo,category,vendors(alias,url)");return Z.json({apps:pB6(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var Gm$=D(()=>{d$();D$();hP0()});import{z as q1}from"zod";function bF($,Z="invalid_request_error",Q=null,X=null){return{error:{message:$,type:Z,param:Q,code:X}}}function XO6($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let Q=$.substring(0,Z),X=$.substring(Z+1);if(!Q||!X)return null;return{credentialId:Q,modelId:X}}function YO6($,Z,Q){try{return JSON.parse($)}catch{throw new Km$(`Invalid JSON in tool call arguments for function '${Q}' (tool_call_id: ${Z}): ${$}`)}}function GO6($){let Z={};for(let Q of $)if(Q.role==="assistant"&&Q.tool_calls)for(let X of Q.tool_calls)Z[X.id]=X.function.name;return $.map((Q)=>{switch(Q.role){case"system":return{role:"system",content:Q.content};case"user":if(typeof Q.content==="string")return{role:"user",content:Q.content};return{role:"user",content:Q.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(Q.tool_calls&&Q.tool_calls.length>0)return{role:"assistant",content:Q.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:YO6(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:Q.content??""};case"tool":let X=Z[Q.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:Q.tool_call_id,toolName:X,output:{type:"text",value:Q.content}}]}}})}function JO6($){let Z=$.map((Q)=>{let X=Q.function.parameters?sY(Q.function.parameters):sY({type:"object",properties:{}});return[Q.function.name,V$({description:Q.function.description,inputSchema:X})]});return Object.fromEntries(Z)}function WO6($){if(!$)return;return{openai:{response_format:$}}}function KO6(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function Jm$($,Z,Q,X,Y,G){let J={model:$,messages:Z,tools:Q,temperature:X.temperature,maxTokens:X.max_tokens,topP:X.top_p,frequencyPenalty:X.frequency_penalty,presencePenalty:X.presence_penalty,stopSequences:X.stop?Array.isArray(X.stop)?X.stop:[X.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function Wm$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var tB6=256,oB6,rB6,aB6,sB6,eB6,$O6,ZO6,QO6,Km$,Fm$,Hm$;var Um$=D(()=>{g4();d$();Yl();fU();oB6=q1.object({type:q1.literal("function"),function:q1.object({name:q1.string(),description:q1.string().optional(),parameters:q1.record(q1.string(),q1.unknown()).optional()})}),rB6=q1.object({id:q1.string(),type:q1.literal("function"),function:q1.object({name:q1.string(),arguments:q1.string()})}),aB6=q1.discriminatedUnion("role",[q1.object({role:q1.literal("system"),content:q1.string(),name:q1.string().optional()}),q1.object({role:q1.literal("user"),content:q1.union([q1.string(),q1.array(q1.union([q1.object({type:q1.literal("text"),text:q1.string()}),q1.object({type:q1.literal("image_url"),image_url:q1.object({url:q1.string(),detail:q1.string().optional()})})]))]),name:q1.string().optional()}),q1.object({role:q1.literal("assistant"),content:q1.string().nullable().optional(),name:q1.string().optional(),tool_calls:q1.array(rB6).optional()}),q1.object({role:q1.literal("tool"),content:q1.string(),tool_call_id:q1.string()})]),sB6=q1.object({type:q1.literal("text")}),eB6=q1.object({type:q1.literal("json_object")}),$O6=q1.object({type:q1.literal("json_schema"),json_schema:q1.object({name:q1.string(),description:q1.string().optional(),schema:q1.record(q1.string(),q1.unknown()),strict:q1.boolean().optional()})}),ZO6=q1.union([sB6,eB6,$O6]),QO6=q1.object({model:q1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:q1.array(aB6),stream:q1.boolean().optional().default(!1),temperature:q1.number().min(0).max(2).optional(),max_tokens:q1.number().positive().optional(),top_p:q1.number().min(0).max(1).optional(),frequency_penalty:q1.number().min(-2).max(2).optional(),presence_penalty:q1.number().min(-2).max(2).optional(),stop:q1.union([q1.string(),q1.array(q1.string())]).optional(),tools:q1.array(oB6).optional(),tool_choice:q1.union([q1.literal("auto"),q1.literal("none"),q1.literal("required"),q1.object({type:q1.literal("function"),function:q1.object({name:q1.string()})})]).optional(),response_format:ZO6.optional(),user:q1.string().optional()});Km$=class Km$ extends Error{constructor($){super($);this.name="MessageConversionError"}};Fm$=new J1;Fm$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),Q=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(bF("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(bF("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==Q)return $.json(bF("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let X=await $.req.json(),Y=QO6.safeParse(X);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(bF(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=XO6(G.model);if(!J)return $.json(bF("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=J,{modelId:K}=J;if(!W){let E=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((j)=>EL(j.providerId));if(!E)return $.json(bF("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=E.id}let F;try{F=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(bF(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let H=F.aiSdk.languageModel(K),U=GO6(G.messages),N=G.tools?JO6(G.tools):void 0,B=WO6(G.response_format),O=KO6(),w=Math.floor(Date.now()/1000);if(G.stream)return QN($,async(L)=>{let E=Jm$(H,U,N,G,B,$.req.raw.signal);try{let j=fO(E),z=!1,P=0,A="",I=async()=>{if(A.length===0)return;let k=A;A="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{content:k},finish_reason:null}]})})};for await(let k of j.fullStream){if(!z&&(k.type==="text-delta"||k.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(A+=k.text,A.length>=tB6)await I()}else if(k.type==="tool-call"){await I();let M=P++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:M,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await I(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{},finish_reason:Wm$(k.finishReason)}],usage:k.totalUsage?{prompt_tokens:k.totalUsage.inputTokens??0,completion_tokens:k.totalUsage.outputTokens??0,total_tokens:k.totalUsage.totalTokens??0}:void 0})})}await I(),await L.writeSSE({data:"[DONE]"})}catch(j){let z=j;console.error("[openai-compat:stream] Error:",z.message),await L.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let L=Jm$(H,U,N,G,B,$.req.raw.signal),E=await _O(L),j={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)j.tool_calls=E.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),j.content=null;return $.json({id:O,object:"chat.completion",created:w,model:G.model,choices:[{index:0,message:j,finish_reason:Wm$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(X){let Y=X;if(Y.name==="AbortError")return $.json(bF("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(bF(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(bF(Y.message,"server_error"),500)}});Hm$=Fm$});function FO6($){if(typeof $!=="object"||$===null)return!1;let Q=$.githubRepo?.url;return typeof Q==="string"&&Q.length>0}function Nm$(){let $=new J1;return $.use("*",async(Z,Q)=>{await Q(),Z.header("Cache-Control","private, no-store"),Z.header("Vary","Cookie")}),$.get("/",async(Z)=>{let Q=Z.get("studioContext"),X=t0(Q);if(!X)return Z.json({error:"Authentication required"},401);let G=(Z.req.query("site")??"").trim().toLowerCase();if(!sQ(G))return Z.json({error:"Invalid site slug"},400);let J=await Q.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.id as id","organization.slug as slug","organization.name as name","organization.metadata as metadata"]).where("member.userId","=",X).execute(),W=[];for(let F of J){if(!F.slug||m9(F))continue;let H=await Q.storage.virtualMcps.list(F.id);for(let U of H){if(Q0$(U)!==G)continue;if(!FO6(U.metadata))continue;W.push({orgSlug:F.slug,orgName:F.name??F.slug,project:{id:U.id,title:U.title,icon:U.icon??null}})}}let K={matches:W};return Z.json(K)}),$}var Bm$=D(()=>{d$();cH()});var Dm$;var Om$=D(()=>{Dm$={name:"decocms",version:"4.329.9",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function NO6(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??UO6}}var wm$,UO6="https://ph.studio.decocms.com",Lm$;var Em$=D(()=>{d$();K90();J_();u5();D$();c91();Om$();wm$=new J1;wm$.get("/",($)=>{let Z={version:Dm$.version,theme:Ep1(),...bH().logo&&{logo:bH().logo},...PU()&&{internalUrl:m_1()},...V0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!V0().firecrawlApiKey,hostingEnabled:!!V0().controlplaneRestUrl&&!!V0().controlplaneServiceToken,hostingControlPlaneGa:V0().hostingControlPlaneGa,monitorEnabled:!!V0().clickhouseAnalyticsUrl&&!!V0().clickhouseAnalyticsPassword,monitorGa:V0().monitorGa,auth:Wg$(),posthog:NO6(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:ms()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});Lm$=wm$});function Nl($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function NQ1($){return(Nl($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1)).join(" ")}function zm$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(Nl($))}&sz=${Z}`}function jm$($,Z){let Q=$.trim();if(Q.length<=Z)return Q;let X=Q.slice(0,Z-1),Y=X.lastIndexOf(" ");return`${(Y>Z*0.6?X.slice(0,Y):X).trimEnd()}\u2026`}function Pm$($){let{brand:Z,domain:Q,score:X,verdict:Y}=$,G=typeof X==="number"?`${Z} commerce report \u2014 ${Math.round(X)}/100 \xB7 decocms`:`${Z} commerce report \xB7 decocms`,J=`See the full ${Z} scorecard \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,W=Y?.trim()?jm$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):jm$(`How does ${Q} really perform? ${J}`,200);return{title:G,description:W}}import{z as l0}from"zod";var gv,BO6,OO6,DO6,wO6,Am$;var Tm$=D(()=>{gv=l0.enum(["good","bad","neutral"]),BO6=l0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((Q)=>Q!==null&&typeof Q!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},l0.object({kind:l0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:l0.coerce.string().optional(),tone:gv.optional(),muted:l0.boolean().optional(),delta:l0.coerce.string().optional(),deltaDir:l0.enum(["up","down","neutral"]).optional(),points:l0.array(l0.coerce.number()).optional(),label:l0.coerce.string().optional()}).transform(($)=>{if($.kind==="badge"&&$.label==null)$.label=$.value??"";if($.kind==="score"){let Z=Number($.value);if(Number.isNaN(Z))return{...$,kind:"text"}}return $})),OO6=l0.preprocess(($)=>{let Z=$;if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Array.isArray(Z.cells))Z=Z.cells;if(Array.isArray(Z)&&Z.length===1&&Array.isArray(Z[0]))Z=Z[0];if(Array.isArray(Z))return Z;if(Z&&typeof Z==="object")return Object.values(Z);return Z},l0.array(BO6)),DO6={key:l0.coerce.string(),title:l0.coerce.string(),eyebrow:l0.coerce.string().optional(),headline:l0.coerce.string(),annotation:l0.coerce.string().optional(),methodology:l0.coerce.string().optional(),sources:l0.array(l0.object({name:l0.coerce.string(),logoUrl:l0.coerce.string()})).optional()},wO6=l0.discriminatedUnion("template",[l0.object({template:l0.literal("cover"),score:l0.object({value:l0.coerce.number(),max:l0.coerce.number().optional(),grade:l0.coerce.string().optional(),label:l0.coerce.string().optional()}).optional(),brandImage:l0.coerce.string().optional(),screenshot:l0.coerce.string().optional(),mobileScreenshot:l0.coerce.string().optional()}),l0.object({template:l0.literal("cta"),ctaUrl:l0.coerce.string().optional(),ctaLabel:l0.coerce.string().optional(),bullets:l0.array(l0.coerce.string()).optional()}),l0.object({template:l0.literal("series"),points:l0.array(l0.coerce.number()).min(2),xLabels:l0.array(l0.coerce.string()).min(1),unit:l0.coerce.string().optional(),callout:l0.object({index:l0.coerce.number(),value:l0.coerce.string(),tone:gv.optional()})}),l0.object({template:l0.literal("threshold"),value:l0.coerce.string().default(""),metricLabel:l0.coerce.string().optional(),ratio:l0.coerce.number(),thresholdRatio:l0.coerce.number().optional(),thresholdLabel:l0.coerce.string().default(""),tone:gv.optional()}),l0.object({template:l0.literal("stats"),stats:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),tone:gv.optional()})).min(1)}),l0.object({template:l0.literal("bars"),items:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),ratio:l0.coerce.number(),tone:gv.optional()})).min(1)}),l0.object({template:l0.literal("gauges"),gauges:l0.array(l0.object({label:l0.coerce.string(),value:l0.coerce.string(),status:l0.enum(["good","warn","bad"]).catch("warn"),caption:l0.coerce.string().optional(),ratio:l0.coerce.number().optional()})).min(1)}),l0.object({template:l0.literal("checklist"),checks:l0.array(l0.object({label:l0.coerce.string(),status:l0.enum(["pass","fail","warn"]).catch("fail"),value:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("table"),columns:l0.array(l0.object({label:l0.coerce.string(),align:l0.enum(["left","right"]).optional()})).min(1),rows:l0.array(OO6).min(1),highlightRow:l0.coerce.number().optional()}),l0.object({template:l0.literal("products"),products:l0.array(l0.object({name:l0.coerce.string(),price:l0.coerce.string().optional(),image:l0.coerce.string().optional(),url:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("list"),entries:l0.array(l0.object({label:l0.coerce.string(),severity:l0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:l0.coerce.number().optional()}),l0.object({template:l0.literal("keywords"),volumeLabel:l0.coerce.string().optional(),keywords:l0.array(l0.object({term:l0.coerce.string(),volume:l0.coerce.string(),position:l0.coerce.number().catch(0)})).min(1)}),l0.object({template:l0.literal("competitor"),metricLabel:l0.coerce.string().optional(),competitors:l0.array(l0.object({name:l0.coerce.string(),value:l0.coerce.string(),tone:gv.optional(),isYou:l0.boolean().optional()})).min(1)}),l0.object({template:l0.literal("scorecard"),rivalLabel:l0.coerce.string().optional(),dimensions:l0.array(l0.object({label:l0.coerce.string(),you:l0.coerce.string(),rival:l0.coerce.string().optional(),rivalName:l0.coerce.string().optional(),tone:gv.optional()})).min(1)})]),Am$=l0.object({...DO6,template:wO6})});function nT0($){let Z=[],Q=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=Am$.safeParse(Y.props);if(G.success)return G.data;let J=G.error.issues[0];return Z.push({section_type:Y.section_type,position:Y.position,reason:J?`${J.path.join(".")||"(root)"}: ${J.message}`:"contract violation"}),null}).filter((Y)=>Y!==null),X=Q.filter((Y)=>Y.template.template!=="cover"&&Y.template.template!=="cta").map((Y)=>({key:Y.key,title:Y.title}));return{deck:{meta:{...$.meta,scores:$.summary?.scores,scannedAt:$.scanned_at,toc:X},slides:Q},drops:Z}}var BQ1=D(()=>{Tm$()});import{join as Rm$}from"path";async function EO6($){try{let Z=await fetch(`${LK({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(LO6)});if(!Z.ok)return null;let Q=await Z.json(),{deck:X}=nT0(Q);if(!X.slides.length)return null;let Y=X.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:X.meta.brand?.trim()||NQ1($),score:X.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function TG($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function jO6($,Z){let Q=Nl($),X=Z?.brand?.trim()||NQ1(Q),Y=zm$(Q,128),J=`${(V0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(Q)}`,{title:W,description:K}=Pm$({brand:X,domain:Q,score:Z?.score,verdict:Z?.verdict}),F=`${J}/og.png`,H=`${X} commerce report by decocms`;return[`<title>${TG(W)}</title>`,`<meta name="description" content="${TG(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${TG(W)}" />`,`<meta property="og:description" content="${TG(K)}" />`,`<meta property="og:url" content="${TG(J)}" />`,`<meta property="og:image" content="${TG(F)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${TG(H)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${TG(W)}" />`,`<meta name="twitter:description" content="${TG(K)}" />`,`<meta name="twitter:image" content="${TG(F)}" />`,`<meta name="twitter:image:alt" content="${TG(H)}" />`,`<link rel="canonical" href="${TG(J)}" />`,`<link rel="icon" href="${TG(Y)}" sizes="any" />`].join(`
|
|
2984
2984
|
`)}function zO6($,Z){return $.replace(/<title>[\s\S]*?<\/title>\s*/i,"").replace(/<meta\s+name="(?:description|twitter:[^"]*)"[^>]*>\s*/gi,"").replace(/<meta\s+property="og:[^"]*"[^>]*>\s*/gi,"").replace(/<link\s+rel="icon"[^>]*>\s*/gi,"").replace("</head>",` ${Z}
|
|
2985
2985
|
</head>`)}function Im$($){let Z=new J1;return Z.get("/:domain/og.png",async(Q)=>{let X=Nl(Q.req.param("domain")),Y=async()=>{let G=$?Bun.file(Rm$($,"report-og-fallback.png")):null;if(!G||!await G.exists())return Q.notFound();return Q.body(new Uint8Array(await G.arrayBuffer()),200,{"Content-Type":"image/png","Cache-Control":"public, max-age=0, s-maxage=3600"})};try{let G=await fetch(`${LK({})}/api/v2/public/diagnostics/${encodeURIComponent(X)}/og.png`,{signal:AbortSignal.timeout(PO6)}),J=G.headers.get("content-type")??"";if(!G.ok||!J.startsWith("image/")||!G.body)return Y();return Q.body(G.body,200,{"Content-Type":J,"Cache-Control":"public, max-age=0, s-maxage=604800"})}catch{return Y()}}),Z.get("/:domain",async(Q)=>{let X=Q.req.param("domain"),Y=$?Rm$($,"index.html"):null,G=Y?Bun.file(Y):null;if(!G||!await G.exists())return Q.notFound();let J=await G.text();try{let W=await EO6(Nl(X)),K=jO6(X,W);return Q.html(zO6(J,K),200,{"Cache-Control":"public, max-age=0, s-maxage=300"})}catch{return Q.html(J)}}),Z}var LO6=2500,PO6=1e4;var qm$=D(()=>{d$();BQ1();TE();D$()});function ys($,Z){return fetch(`${LK({})}${$}`,Z)}async function AO6($,Z,Q){let X=new URLSearchParams;if(Z)X.set("pw",Z);if(Q)X.set("lang",Q);let Y=X.toString()?`?${X.toString()}`:"",G=await ys(`/api/v2/public/diagnostics/${encodeURIComponent($)}${Y}`,{headers:{Accept:"application/json"}});if(G.status===404)return{status:"not_found",deck:null,scanned_at:null,drops:[]};if(!G.ok)throw Error(`report read HTTP ${G.status}`);let J=await G.json(),{deck:W,drops:K}=nT0(J);return{status:W.slides.length?"ready":"empty",deck:W,scanned_at:J.scanned_at,drops:K}}var TO6,YN,Mm$=async($,Z)=>{if(!$.get("reportUser"))return $.json({error:"Authentication required"},401);await Z();return},km$;var Vm$=D(()=>{d$();tY();TE();BQ1();TO6=new Set(["complete","errored","terminated","unknown"]),YN=new J1;YN.use("*",async($,Z)=>{let Q=await $8.api.getSession({headers:$.req.raw.headers});$.set("reportUser",Q?.user?.id?{email:Q.user.email}:void 0),await Z(),$.header("Cache-Control","private, no-store"),$.header("Vary","Cookie");return});YN.use("/link-token/*",Mm$);YN.use("/suggest",Mm$);YN.get("/site/:domain",async($)=>{let Z=$.req.param("domain").trim();if(!Z)return $.json({error:"domain is required"},400);let Q=$.get("reportUser"),X=$.req.query("key")?.trim()||void 0,Y=$.req.query("lang")?.trim()||void 0;try{let G=await AO6(Z,X,Y);if($.header("Cache-Control","private, no-store"),Q||!G.deck)return $.json(G);return $.json({...G,deck:{...G.deck,slides:G.deck.slides.slice(0,1)},truncated:G.status==="ready"})}catch{return $.json({error:"report read failed"},502)}});YN.post("/run",async($)=>{let Z=$.get("reportUser"),Q;try{Q=await $.req.json()}catch{return $.json({error:"invalid JSON"},400)}let X=typeof Q.domain==="string"?Q.domain.trim():"";if(!X)return $.json({error:"domain is required"},400);let Y=Z?.email,G=typeof Q.distinctId==="string"&&Q.distinctId.trim()&&Q.distinctId.length<=200?Q.distinctId.trim():void 0;try{let J=await ys("/api/v2/diagnostics/run",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${AE({})}`},body:JSON.stringify({url:X,...Y?{email:Y}:{},distinct_id:G})});if(!J.ok)return $.json({error:`run HTTP ${J.status}`},502);let W=await J.json(),K=W.blocked?{state:"blocked"}:W.status==="fresh"?{state:"fresh"}:W.mode==="sync"?{state:"sync"}:{state:"running",id:W.id??null};return $.json(K)}catch{return $.json({error:"run failed"},502)}});YN.get("/status",async($)=>{let Z=$.req.query("id");if(!Z)return $.json({error:"id is required"},400);try{let Q=await ys(`/api/v2/diagnostics/status?id=${encodeURIComponent(Z)}`,{headers:{Authorization:`Bearer ${AE({})}`}});if(!Q.ok)return $.json({error:`status HTTP ${Q.status}`},502);let Y=(await Q.json()).status??"unknown",G={done:TO6.has(Y),status:Y};return $.json(G)}catch{return $.json({error:"status failed"},502)}});YN.get("/link-token/:id",async($)=>{let Z=$.req.param("id");try{let Q=await ys(`/api/v2/public/link-tokens/${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(Q.status===404)return $.json(null);if(!Q.ok)return $.json({error:`link token HTTP ${Q.status}`},502);return $.json(await Q.json())}catch{return $.json({error:"link token resolve failed"},502)}});YN.get("/suggest",async($)=>{let Z=($.req.query("q")??"").trim().slice(0,64);if(Z.length<2)return $.json({suggestions:[]});try{let Q=await ys(`/api/v2/public/suggest?q=${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(!Q.ok)return $.json({suggestions:[]});let X=await Q.json();return $.json({suggestions:Array.isArray(X.suggestions)?X.suggestions:[]})}catch{return $.json({suggestions:[]})}});km$=YN});import{createHmac as RO6,timingSafeEqual as IO6}from"crypto";function Cm$($,Z,Q,X=Date.now()){if(!Z||!Q)return!1;let Y,G=[];for(let F of Z.split(",")){let H=F.indexOf("=");if(H<=0)continue;let U=F.slice(0,H).trim(),N=F.slice(H+1).trim();if(U==="t")Y=N;else if(U==="v1")G.push(N)}if(!Y||G.length===0)return!1;let J=Number(Y);if(!Number.isFinite(J)||Math.abs(X/1000-J)>qO6)return!1;let W=RO6("sha256",Q).update(`${Y}.${$}`).digest("hex"),K=Buffer.from(W,"hex");return G.some((F)=>{let H=Buffer.from(F,"hex");return K.length===H.length&&IO6(K,H)})}function _m$($){let Z;try{Z=JSON.parse($)}catch{return null}let Q=mJ(Z),X=mJ(mJ(Q?.data)?.object);if(!Q||typeof Q.type!=="string"||!X)return null;return{id:xF(Q.id),type:Q.type,created:typeof Q.created==="number"?Q.created:void 0,livemode:typeof Q.livemode==="boolean"?Q.livemode:void 0,data:{object:X}}}function vm$($){switch($){case"active":case"trialing":return"active";case"past_due":return"past_due";default:return"canceled"}}function xF($){return typeof $==="string"?$:void 0}function mJ($){return typeof $==="object"&&$!==null?$:void 0}function tT0($){return typeof $==="number"?new Date($*1000):null}function wQ1($){return xF($)??xF(mJ($)?.id)}function MO6($){return wQ1($.subscription)??xF(mJ(mJ($.parent)?.subscription_details)?.subscription)}function kO6($){let Z=tT0($.current_period_end);if(Z)return Z;let Q=mJ($.items)?.data;if(!Array.isArray(Q))return null;let X=0;for(let Y of Q){let G=mJ(Y)?.current_period_end;if(typeof G==="number"&&G>X)X=G}return X>0?new Date(X*1000):null}function OQ1($,Z){let Q=tT0($.created);return!!Q&&!!Z.lastStripeEventAt&&Q<Z.lastStripeEventAt}function DQ1($,Z){let Q=tT0($.created);if(!Q)return;return Z.lastStripeEventAt&&Z.lastStripeEventAt>Q?void 0:Q}async function VO6($,Z){let Q=Z.data.object;switch(Z.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":{let X=xF(mJ(Q.metadata)?.orgId);if(!X)return{handled:!1,reason:"no orgId"};if(xF(mJ(Q.metadata)?.kind)==="topup"){if(Q.mode!=="payment")return{handled:!1,reason:"topup with wrong mode"};if(xF(Q.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let J=xF(Q.id);if(!J)return console.error("stripe webhook: topup session without id",{eventId:Z.id,organizationId:X}),{handled:!1,reason:"topup session without id"};let W=Number(mJ(Q.metadata)?.creditCents);if(!Number.isInteger(W)||W<=0)return console.error("stripe webhook: paid topup with bad metadata \u2014 credit NOT applied",{eventId:Z.id,organizationId:X,creditCents:mJ(Q.metadata)?.creditCents}),{handled:!1,reason:"bad topup metadata"};return{handled:!0,organizationId:X,topUp:{creditCents:W,referenceId:`stripe-topup:${J}`}}}if(Q.mode!=="subscription")return{handled:!1,reason:"not a subscription checkout"};if(xF(Q.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let Y=await $.getBilling(X);if(!Y)return{handled:!1,reason:"unknown org"};let G=wQ1(Q.subscription);if(Y.stripeSubscriptionId&&G&&Y.stripeSubscriptionId!==G)return console.error("stripe webhook: refused checkout rebind",{organizationId:X,eventId:Z.id}),{handled:!1,reason:"org already bound to another subscription",orphanSubscriptionId:G};if(OQ1(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(X,{stripeCustomerId:wQ1(Q.customer),stripeSubscriptionId:G,status:"active",lastStripeEventAt:DQ1(Z,Y)}),{handled:!0,organizationId:X}}case"customer.subscription.updated":case"customer.subscription.deleted":{let X=xF(Q.id);if(!X)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(X);if(!Y)return{handled:!1,reason:"unknown subscription"};let G=Z.type==="customer.subscription.deleted";if(!G&&OQ1(Z,Y))return{handled:!1,reason:"stale event"};let J=G?"canceled":vm$(Q.status);return await $.updateStripeState(Y.organizationId,{status:J,currentPeriodEnd:kO6(Q),...G&&{stripeSubscriptionId:null},lastStripeEventAt:DQ1(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}case"invoice.paid":{let X=MO6(Q);if(!X)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(X);if(!Y)return{handled:!1,reason:"unknown subscription"};if(OQ1(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Y.organizationId,{status:"active",currentPeriodEnd:tT0(Q.period_end),lastStripeEventAt:DQ1(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}default:return{handled:!1,reason:`unhandled event ${Z.type}`}}}function SO6($,Z){if(!Z.handled||$.livemode===!1)return null;let Q=$.data.object;if(Z.topUp)return{name:"credits_topup_succeeded",organizationId:Z.organizationId,properties:{credit_cents:Z.topUp.creditCents}};switch($.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":return{name:"subscription_started",organizationId:Z.organizationId,properties:{}};case"customer.subscription.deleted":return{name:"subscription_canceled",organizationId:Z.organizationId,properties:{}};case"customer.subscription.updated":return{name:"subscription_updated",organizationId:Z.organizationId,properties:{status:vm$(Q.status),...typeof Q.cancel_at_period_end==="boolean"?{cancel_at_period_end:Q.cancel_at_period_end}:{}}};case"invoice.paid":if(Q.billing_reason==="subscription_create")return null;return{name:"subscription_renewed",organizationId:Z.organizationId,properties:{}};default:return null}}function Sm$($,Z){let Q=SO6($,Z);if(!Q)return;dY({event:Q.name,organizationId:Q.organizationId,...$.id?{uuid:qt1(`stripe:${$.id}:${Q.name}`)}:{},...$.created?{timestamp:new Date($.created*1000)}:{},properties:Q.properties})}async function fm$($){let Z=new BK(B8().db),Q=await VO6(Z,$);if(!(Q.handled&&Q.topUp))Sm$($,Q);if(Q.handled&&Q.topUp)await aj$({organizationId:Q.organizationId,amountCents:Q.topUp.creditCents,referenceId:Q.topUp.referenceId}),Sm$($,Q);if(!Q.handled&&Q.orphanSubscriptionId)try{await Q1$(Q.orphanSubscriptionId),console.error("stripe webhook: canceled orphan subscription",{subscriptionId:Q.orphanSubscriptionId,eventId:$.id})}catch(X){if(!(X instanceof oY&&(X.status===400||X.status===404)))throw X}return Q}var qO6=300;var bm$=D(()=>{aG();v4();l50();bE();R11()});var CO6=1048576,LQ1;var xm$=D(()=>{d$();VF();D$();bm$();LQ1=new J1;LQ1.post("/webhook",a5({maxSize:CO6,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=V0().stripeWebhookSecret;if(!Z)return $.json({error:"stripe billing not configured"},503);let Q=await $.req.text();if(!Cm$(Q,$.req.header("stripe-signature"),Z))return $.json({error:"invalid signature"},400);let Y=_m$(Q);if(!Y)return $.json({error:"invalid payload"},400);let G=await fm$(Y);return console.log("stripe webhook",{eventId:Y.id,type:Y.type,livemode:Y.livemode,...G}),$.json({received:!0})})});import{timingSafeEqual as _O6}from"crypto";function fO6($,Z,Q){if(!Z?.startsWith("sha256="))return!1;let X=new Bun.CryptoHasher("sha256",Q).update($).digest("hex"),Y=Z.slice(7);if(Y.length!==X.length)return!1;return _O6(Buffer.from(Y),Buffer.from(X))}var vO6=5242880,EQ1;var ym$=D(()=>{d$();VF();s3();EQ1=new J1;EQ1.post("/webhook",a5({maxSize:vO6,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=process.env.GITHUB_WEBHOOK_SECRET;if(!Z)return $.json({error:"github webhook not configured"},503);let Q=await $.req.text();if(!fO6(Q,$.req.header("x-hub-signature-256"),Z))return $.json({error:"invalid signature"},400);if($.req.header("x-github-event")!=="push")return $.json({ok:!0,ignored:"event"});let X;try{X=JSON.parse(Q)}catch{return $.json({error:"invalid payload"},400)}let Y=X.ref,G=X.repository?.full_name;if(!Y||!G)return $.json({ok:!0,ignored:"shape"});let W=(await Bt0())?.markTenantPoolsDirty(G,Y)??[];return $.json({ok:!0,pools:W})})});function gm$($){let Z=new pU($.db,new uQ($.encryptionKey)),Q=new J1;return Q.get("/attachments/:token",async(X)=>{let Y=oK$(X.req.param("token"));if(!Y)return X.json({error:"Invalid or expired link"},404);let G=await Z.getByOrg(Y.organizationId);if(!G)return X.json({error:"Jira is not connected"},404);let W=await new JG(G.siteUrl,G.email,G.apiToken).downloadAttachment(Y.attachmentId);if(!W.ok||!W.body)return X.json({error:"Jira refused the download"},502);let K=new Headers;for(let F of["content-type","content-length","content-disposition"]){let H=W.headers.get(F);if(H)K.set(F,H)}return K.set("cache-control","no-store"),new Response(W.body,{status:200,headers:K})}),Q}var hm$=D(()=>{d$();tN();Fo0();dC()});function um$($){if(typeof $!=="object"||$===null)return null;let Z=$;if(Z.webhookEvent!=="jira:issue_updated")return null;let Q=Z.issue?.id,X=Z.issue?.key,Y=Z.changelog?.id;if(typeof Q!=="string"&&typeof Q!=="number"||typeof X!=="string"||typeof Y!=="string"&&typeof Y!=="number")return null;let G=Z.changelog?.items?.find((J)=>J.field==="status");if(!G||typeof G.toString!=="string")return null;return{issueId:String(Q),issueKey:X,toStatus:G.toString,changelogId:String(Y)}}function lm$($,Z,Q){let X=[];for(let Y of Z){if(new Date(Y.created).getTime()<Q.getTime())continue;let G=Y.items.find((J)=>J.field==="status");if(!G||typeof G.toString!=="string")continue;X.push({issueId:$.id,issueKey:$.key,toStatus:G.toString,changelogId:Y.id})}return X.sort((Y,G)=>Number(Y.changelogId)-Number(G.changelogId))}function yO6($){return`Jira ${$.key}: ${$.summary}`}async function oT0($,Z,Q){if(!Z.enabled)return"disabled";let X=Z.organizationId,Y=await $.storage.jiraIntegrations.getAutomation(X,Q.toStatus);if(!Y)return"no_rule";let G=new JG(Z.siteUrl,Z.email,Z.apiToken),J=await Kw0(G,Z.siteUrl,Q.issueId),W=await gO6($,Z,Q,J);if(!await $.storage.jiraIntegrations.claimTrigger(X,Q.issueId,Q.changelogId))return"duplicate";let F=await $.storage.taskBoard.update(W.id,X,{assigneeId:m$,assignedBy:Z.createdBy},Z.createdBy);try{await XW($,F,{instruction:Y.prompt??bO6,source:{kind:"jira",issueKey:J.key,title:yO6(J),body:`${Fw0(J)}
|
|
2986
2986
|
|