decocms 4.429.3 → 4.429.5
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-Dz9cBs-m.js → AlertCircle-CXwWyjWL.js} +1 -1
- package/dist/client/assets/{AreaChart-DdSEp1PD.js → AreaChart-CWnwFPGD.js} +1 -1
- package/dist/client/assets/{ArrowLeft-D7Qv40Uj.js → ArrowLeft-DYnQbYxF.js} +1 -1
- package/dist/client/assets/{ArrowRight-yu2EcGiJ.js → ArrowRight-C4e8QGnK.js} +1 -1
- package/dist/client/assets/{ArrowUp-DfDTdHqA.js → ArrowUp-BiYv-XbK.js} +1 -1
- package/dist/client/assets/{CartesianChart-D64U_nuI.js → CartesianChart-BGE8uJq6.js} +1 -1
- package/dist/client/assets/{Check-D0vo_Hz-.js → Check-C8M8v3vI.js} +1 -1
- package/dist/client/assets/{CheckCircle-CumYT0Xg.js → CheckCircle-jESFBkr7.js} +1 -1
- package/dist/client/assets/{ChevronUp-CtEbEkWq.js → ChevronUp-Q2TBgNib.js} +1 -1
- package/dist/client/assets/{Copy01-BpbowiHW.js → Copy01-CaF9W1F_.js} +1 -1
- package/dist/client/assets/{CreditCard01-D2EcwWI8.js → CreditCard01-Czi8bh9o.js} +1 -1
- package/dist/client/assets/{DotsVertical-EXf2w9q0.js → DotsVertical-DyDeVQCx.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-B8upM3yO.js → ErrorBarContext-D4BkOvp5.js} +1 -1
- package/dist/client/assets/{Image01-BdTgRZP1.js → Image01-CsDdVFAJ.js} +1 -1
- package/dist/client/assets/{Key01-B4eK1DBH.js → Key01-D2FR3CbZ.js} +1 -1
- package/dist/client/assets/{Line-KSe8sJzM.js → Line-BfgHJMc3.js} +1 -1
- package/dist/client/assets/{Link01-By2X_oW1.js → Link01-NjQr5iwv.js} +1 -1
- package/dist/client/assets/{LinkExternal01-CBdG7toR.js → LinkExternal01-CR1925bA.js} +1 -1
- package/dist/client/assets/{Monitor01-B7ACM5ru.js → Monitor01-50nhII2F.js} +1 -1
- package/dist/client/assets/{Palette-DE1SiHuh.js → Palette-AyH3xXYO.js} +1 -1
- package/dist/client/assets/{Plus-BkxlBn4y.js → Plus-DP7AHtKt.js} +1 -1
- package/dist/client/assets/{SearchMd-LHNOznc4.js → SearchMd-D_KPqWqZ.js} +1 -1
- package/dist/client/assets/{Sector-BRrxOLYM.js → Sector-BR7_Ijx1.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-DoxUqYra.js → ShoppingBag01-Dq4UD5Hm.js} +1 -1
- package/dist/client/assets/{Sun-DNDTyIac.js → Sun-oSoDHq1v.js} +1 -1
- package/dist/client/assets/{Tool01-CpVGuPOC.js → Tool01-D2y7RTX1.js} +1 -1
- package/dist/client/assets/{Trash01-TOxKcbID.js → Trash01-64yehlfB.js} +1 -1
- package/dist/client/assets/{Upload01-CjVkZP6G.js → Upload01-BvgQ3r-o.js} +1 -1
- package/dist/client/assets/{User01-DLdS4GEa.js → User01-CU3qbr5s.js} +1 -1
- package/dist/client/assets/{UserSquare-CcCul-Ku.js → UserSquare-nGw6lX43.js} +1 -1
- package/dist/client/assets/{Users01-ByxJpuoo.js → Users01-Lf2fvOej.js} +1 -1
- package/dist/client/assets/{X-Bv_7H4P-.js → X-NPE_cXRR.js} +1 -1
- package/dist/client/assets/{XAxis-Cn9tLjnY.js → XAxis-Drv4sXya.js} +1 -1
- package/dist/client/assets/{XClose-pHmDo5-O.js → XClose-CMTvfCel.js} +1 -1
- package/dist/client/assets/{ZoomOut-Ya7GOVCv.js → ZoomOut-xQj4oorm.js} +1 -1
- package/dist/client/assets/{access-gate-BhPkP25z.js → access-gate-DRBSlBtJ.js} +1 -1
- package/dist/client/assets/add-connection-dialog-DHl4H43e.js +1 -0
- package/dist/client/assets/{agent-analytics-DHc3-l-w.js → agent-analytics-RDv7d0ta.js} +1 -1
- package/dist/client/assets/agent-app-BMOs_YKU.js +1 -0
- package/dist/client/assets/{agent-assets-DAEmoFC8.js → agent-assets-QMTortLS.js} +1 -1
- package/dist/client/assets/{agent-automation-Cz1jsKJf.js → agent-automation-kP7qIZSD.js} +1 -1
- package/dist/client/assets/{agent-automations-EvO0qN6w.js → agent-automations-D5AIE6G6.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-9RNHPk2h.js → agent-connect-sources-1UnRN6mW.js} +1 -1
- package/dist/client/assets/agent-deck-9_2F3EG2.js +1 -0
- package/dist/client/assets/{agent-e2e-CXics08q.js → agent-e2e-DEc1NtfK.js} +1 -1
- package/dist/client/assets/{agent-experiments-CkZQ-REV.js → agent-experiments-D33dFCpI.js} +1 -1
- package/dist/client/assets/{agent-file-CLSI2x6K.js → agent-file-DxlwynYZ.js} +1 -1
- package/dist/client/assets/{agent-git-DR3UCmuP.js → agent-git-DVn4DsKt.js} +1 -1
- package/dist/client/assets/{agent-hosting-BWh6v3V_.js → agent-hosting-CgiR8Ql4.js} +1 -1
- package/dist/client/assets/{agent-icon-BTsAxpiE.js → agent-icon-TQUkqPJj.js} +1 -1
- package/dist/client/assets/agent-library-BoJuDeBh.js +1 -0
- package/dist/client/assets/agent-library-file-Dyz9u3bt.js +1 -0
- package/dist/client/assets/{agent-monitor-DFjCcLUm.js → agent-monitor-DgcF05B9.js} +1 -1
- package/dist/client/assets/{agent-overview-uEke4jgZ.js → agent-overview-dLl0w1eM.js} +1 -1
- package/dist/client/assets/agent-settings-MQLrMTV8.js +1 -0
- package/dist/client/assets/{agent-site-editor-Cs2D0Grt.js → agent-site-editor-ITnkleU1.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-D4dXTr1f.js +2 -0
- package/dist/client/assets/{agent-site-editor-content-Db30XnTN.js → agent-site-editor-content-CNFJoRJD.js} +3 -3
- package/dist/client/assets/{agent-site-editor-preview-CjnIUhh-.js → agent-site-editor-preview-CNLkTYYB.js} +3 -3
- package/dist/client/assets/agent-view-CfCVRWZl.js +1 -0
- package/dist/client/assets/{agent-view-guard-xLwNDoFo.js → agent-view-guard-BbHyaShN.js} +1 -1
- package/dist/client/assets/{agents-list-Bk-nP-Hz.js → agents-list-D9hihWFU.js} +1 -1
- package/dist/client/assets/{ai-providers-Q2xHefD1.js → ai-providers-oyOl9W3y.js} +1 -1
- package/dist/client/assets/{alert-ClVmStz3.js → alert-CokNymqA.js} +1 -1
- package/dist/client/assets/{alert-dialog-Ba4KW5Tb.js → alert-dialog-DeJgSFRZ.js} +1 -1
- package/dist/client/assets/{analytics-sections-sz__W2rJ.js → analytics-sections-DDWh8YnS.js} +1 -1
- package/dist/client/assets/{api-keys-WAwxvH4q.js → api-keys-Ch7q_sOP.js} +1 -1
- package/dist/client/assets/api-keys-DLiRLY55.js +1 -0
- package/dist/client/assets/{app-editor-Bzg858Ei.js → app-editor-BhWLpri1.js} +1 -1
- package/dist/client/assets/{asset-utils-Cl-DIW8f.js → asset-utils-BRk3fUR7.js} +1 -1
- package/dist/client/assets/{auth-LIeEUIDR.js → auth-BNR-bSJO.js} +1 -1
- package/dist/client/assets/{auth-catchall-Ch_Ds6Cn.js → auth-catchall-CJ0eRklU.js} +1 -1
- package/dist/client/assets/{auth-entry-vJGoo3g-.js → auth-entry-XcfUUozZ.js} +1 -1
- package/dist/client/assets/{auth-split-layout-CzKiP8ly.js → auth-split-layout-mYNIGFvp.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-8VvMLeY7.js → authenticate-and-persist-oauth-CZrI0wkU.js} +1 -1
- package/dist/client/assets/{automation-list-row-Wm3a5p7E.js → automation-list-row-DfLOPauj.js} +1 -1
- package/dist/client/assets/{automation-runs-CPD7oJx0.js → automation-runs-RuvSYlk2.js} +1 -1
- package/dist/client/assets/{automations-C7HPgN05.js → automations-CQh_fULy.js} +1 -1
- package/dist/client/assets/{autosend-BnYajEPM.js → autosend-h1h21hnM.js} +1 -1
- package/dist/client/assets/{avatar-DUUKBKEq.js → avatar-UFbMnkmr.js} +1 -1
- package/dist/client/assets/{badge-DzpaGRTk.js → badge-DzTxW-Ts.js} +1 -1
- package/dist/client/assets/{block-document-mfhczLQn.js → block-document-hxIwEIoN.js} +3 -3
- package/dist/client/assets/{blocks-preview-workspace-context-BntOatBH.js → blocks-preview-workspace-context-DRl7lMaq.js} +1 -1
- package/dist/client/assets/{buckets-Cv77xDfH.js → buckets-B-CYwdgC.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-BH3yj16d.js → build-improve-prompt-doc-DNmtsTJk.js} +1 -1
- package/dist/client/assets/{calendar-ByzzyV6c.js → calendar-Bx26MiuJ.js} +1 -1
- package/dist/client/assets/{capability-load-error-DdZhOWh1.js → capability-load-error-BWTOxRLG.js} +1 -1
- package/dist/client/assets/{category-editor-CY9yp7vC.js → category-editor-DjdC64aL.js} +1 -1
- package/dist/client/assets/{chart-_tBRgksg.js → chart-BxpZzVsr.js} +1 -1
- package/dist/client/assets/{chat-context-BI1s3T66.js → chat-context-DppIIhzA.js} +1 -1
- package/dist/client/assets/{chat-draft-D0PL2mCh.js → chat-draft-DiJpqitX.js} +1 -1
- package/dist/client/assets/{checkbox-Cpv7L0N6.js → checkbox-BGfnFNv1.js} +1 -1
- package/dist/client/assets/{choose-editor-LNwLyfg_.js → choose-editor-DHwWSJiW.js} +1 -1
- package/dist/client/assets/{claim-phase-copy-EPhExNlM.js → claim-phase-copy-BRgB3yX1.js} +1 -1
- package/dist/client/assets/{cli-auth-success-CBcItsza.js → cli-auth-success-BX3DQOO5.js} +1 -1
- package/dist/client/assets/{client-icons-DC-8hNpP.js → client-icons-CYZ83j__.js} +1 -1
- package/dist/client/assets/{collapsible-pPCznIf4.js → collapsible-C2j127TD.js} +1 -1
- package/dist/client/assets/{collection-detail-D_X4bBB3.js → collection-detail-ehNX3PLY.js} +1 -1
- package/dist/client/assets/{collection-display-button-B5I1d5Uv.js → collection-display-button-CwIm419d.js} +1 -1
- package/dist/client/assets/{collection-search-Be-n29of.js → collection-search-D_azi8Gq.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-D52zfTjc.js → collection-table-wrapper-DMU9yWMT.js} +1 -1
- package/dist/client/assets/{collection-tabs-fftcEeJN.js → collection-tabs-C6N84gCC.js} +1 -1
- package/dist/client/assets/{combobox-B1AZk18o.js → combobox--XWfS5lw.js} +1 -1
- package/dist/client/assets/{command-DQBtHyyq.js → command-D1RoIxg2.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-7Vm6IlF1.js → companion-mcps-section-Cs-LBxQr.js} +1 -1
- package/dist/client/assets/{config-CELJkL0z.js → config-CMMAnMUF.js} +1 -1
- package/dist/client/assets/{connect-CqRFxjYq.js → connect-DVE1Hnuy.js} +1 -1
- package/dist/client/assets/{connect-layout-XKXgqJNp.js → connect-layout--NwWaqYw.js} +1 -1
- package/dist/client/assets/{connection-Cd9kpW2N.js → connection-Ds6vwkGM.js} +1 -1
- package/dist/client/assets/{connection-card-C_b6Kn3i.js → connection-card-BPKFHpho.js} +1 -1
- package/dist/client/assets/{connection-detail-Bi6mvLNo.js → connection-detail-BroJMnyc.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-CRij5u84.js → connection-form-helpers-C4OB4j_3.js} +1 -1
- package/dist/client/assets/{connections-HYiawKCj.js → connections-DG2GlCvy.js} +1 -1
- package/dist/client/assets/{context-BkyYtq6r.js → context-BL1LKuLQ.js} +1 -1
- package/dist/client/assets/{context-menu-B6lNE0Gz.js → context-menu-CBJP1RfU.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-CAvO4TWV.js → create-organization-dialog-BQ0I0t_j.js} +1 -1
- package/dist/client/assets/{daily-pulse-BYmWzKWl.js → daily-pulse-Dpp9pCbq.js} +1 -1
- package/dist/client/assets/{decopilot-Cb-_oMnP.js → decopilot-BRlhj2Gw.js} +1 -1
- package/dist/client/assets/{dialog-CGclnAkN.js → dialog-Mg_Z3ES1.js} +1 -1
- package/dist/client/assets/{discover-De-KJC5j.js → discover-DCHf1gBE.js} +1 -1
- package/dist/client/assets/{domain-settings-DrGUovmZ.js → domain-settings-CmoTC2Mj.js} +1 -1
- package/dist/client/assets/{download-app-dialog-D1557QUF.js → download-app-dialog-B7zcmkcH.js} +1 -1
- package/dist/client/assets/{drawer-BDoe-caH.js → drawer-BIoKJwCW.js} +1 -1
- package/dist/client/assets/{editor-BJgmcO1D.js → editor-JpZ1gWwV.js} +1 -1
- package/dist/client/assets/{empty-state-B18ltfc_.js → empty-state-BayRP7H4.js} +1 -1
- package/dist/client/assets/{empty-state-B34CEwUC.js → empty-state-BmztM-Bo.js} +1 -1
- package/dist/client/assets/{extract-connection-data-CGsWt1C2.js → extract-connection-data-D5wjQBt3.js} +1 -1
- package/dist/client/assets/{feature-gate-DYu08LcP.js → feature-gate-DvQXfI5S.js} +1 -1
- package/dist/client/assets/{feature-paywall-C_x6v-Ey.js → feature-paywall-sc2LtOXc.js} +1 -1
- package/dist/client/assets/{file-explorer-DFkQYLLD.js → file-explorer-CqjD-skS.js} +1 -1
- package/dist/client/assets/{file-preview-oOFgi0tu.js → file-preview-VfWoS2gk.js} +1 -1
- package/dist/client/assets/{file-share-button-zWuRzlor.js → file-share-button-BGOzbmtb.js} +1 -1
- package/dist/client/assets/{file-type-icon-RYJiailm.js → file-type-icon-BhiPdwxi.js} +1 -1
- package/dist/client/assets/flat-project-wkNYEFlO.js +1 -0
- package/dist/client/assets/{folder-icon-Bf8F6949.js → folder-icon-DBIJdeY7.js} +1 -1
- package/dist/client/assets/{form-bcXKqc8N.js → form-BgAERq-t.js} +1 -1
- package/dist/client/assets/{gateway-client-DCdFKKN_.js → gateway-client-CIbTMjGx.js} +1 -1
- package/dist/client/assets/{general-16qHlqcQ.js → general-BBuB4XlH.js} +1 -1
- package/dist/client/assets/{home-D781nRhS.js → home-C96-FMPc.js} +1 -1
- package/dist/client/assets/{icon-button-CIiTk2PX.js → icon-button-CWL5E4Ua.js} +1 -1
- package/dist/client/assets/{index-CvEB1wsJ.js → index-2-Z1VD2F.js} +1 -1
- package/dist/client/assets/{index-Bw3BnaKs.js → index-B0WfPFpv.js} +1 -1
- package/dist/client/assets/{index-D9LnhQDL.js → index-B9dD9jj0.js} +4 -4
- package/dist/client/assets/{index-CrqZGA61.js → index-BZOsa8jC.js} +1 -1
- package/dist/client/assets/{index-59z4bzDc.js → index-Bv71AEH5.js} +1 -1
- package/dist/client/assets/{index-bzuuux9r.js → index-CORXJXSN.js} +1 -1
- package/dist/client/assets/{index-Czf46ykC.js → index-CpszPQp_.js} +1 -1
- package/dist/client/assets/{index-BS2Uqa0H.js → index-DL-sDqTO.js} +1 -1
- package/dist/client/assets/{index-DMU-WXJw.js → index-DR9ob9os.js} +1 -1
- package/dist/client/assets/{index---Q5zO6x.js → index-DWe-6mCD.js} +1 -1
- package/dist/client/assets/{index-DAh-d37k.js → index-ROw_u5-U.js} +1 -1
- package/dist/client/assets/{index-BouVTFfo.js → index-RYaP6qX3.js} +3 -3
- package/dist/client/assets/{index-D9sHyQVv.js → index-r8TBLtcZ.js} +1 -1
- package/dist/client/assets/{index-redirect-DVgM6RRC.js → index-redirect-DN5m0MeF.js} +1 -1
- package/dist/client/assets/{index-DiqXHSnv.js → index-v5QvptSB.js} +1 -1
- package/dist/client/assets/{index-BScbcffF.js → index-vYawqXRD.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-BHgtnfJm.js → infiniteQueryObserver-Ex2lNjjr.js} +1 -1
- package/dist/client/assets/{infra-billing-Ce7lPCaU.js → infra-billing-BvYXN3Z1.js} +1 -1
- package/dist/client/assets/{input-DANvmr7V.js → input-BZloVZ72.js} +3 -3
- package/dist/client/assets/{input-DGRfwNJU.js → input-BmzPGvUi.js} +1 -1
- package/dist/client/assets/{input-D_ZVa75L.js → input-Cndqm_5O.js} +1 -1
- package/dist/client/assets/{integration-icon-COxNT19S.js → integration-icon-C5NBXdpz.js} +1 -1
- package/dist/client/assets/{label-DiLYcWOq.js → label-DpahMcEo.js} +1 -1
- package/dist/client/assets/{last-preview-page-3TpsD5I_.js → last-preview-page-Dfux_ulA.js} +1 -1
- package/dist/client/assets/{layout-DPfFiV1_.js → layout-C6k3EFd1.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-yBBdl4Te.js → legacy-agents-deep-B_DiKZ0c.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-DXVMcdr-.js → legacy-main-redirect-BgIGaynA.js} +1 -1
- package/dist/client/assets/library-D6flTj5t.js +1 -0
- package/dist/client/assets/{library-tab-CXCLZRQC.js → library-tab-Bso2C2NG.js} +1 -1
- package/dist/client/assets/{login-C4QrpT-9.js → login-CXuSqosI.js} +1 -1
- package/dist/client/assets/{markdown-CYbDwdl9.js → markdown-D8U5yexH.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-CqnN_gT7.js → mcp-app-renderer-CWOIFfi6.js} +1 -1
- package/dist/client/assets/{mcp-oauth-Bx2SR9KP.js → mcp-oauth-DCDrWVc0.js} +1 -1
- package/dist/client/assets/{members-BZBvmhnB.js → members-BfRC0ceX.js} +1 -1
- package/dist/client/assets/{message-templates-I2fytmn2.js → message-templates-DgOMle6a.js} +1 -1
- package/dist/client/assets/{mini-report-page-eltvP_76.js → mini-report-page-BIktJNbh.js} +1 -1
- package/dist/client/assets/{mock-board-CgZiTliz.js → mock-board-DjQ6xrU_.js} +1 -1
- package/dist/client/assets/{monaco-editor-FD1izitZ.js → monaco-editor-BRUSLTLk.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-BQCERodS.js → monitoring-stats-row-C4bB2YFf.js} +1 -1
- package/dist/client/assets/{multi-select-BfQySwLK.js → multi-select-6bm7qEEn.js} +1 -1
- package/dist/client/assets/{mustache-Di_1lUk9.js → mustache-CAmcva4T.js} +1 -1
- package/dist/client/assets/new-project-dialog-BejzbVG2.js +1 -0
- package/dist/client/assets/{oauth-callback-DKQfywQG.js → oauth-callback-0bxicPCo.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-BHBlU05u.js → oauth-callback-ai-provider-D4kx59om.js} +1 -1
- package/dist/client/assets/{onboarding-ByVxEqxG.js → onboarding-C7mIZXvc.js} +1 -1
- package/dist/client/assets/{openai-conversation-TGydZ30W.js → openai-conversation-DYPzWsQc.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-2cxR9DkL.js → optimistic-project-sidebar-views-DHo7EiTm.js} +1 -1
- package/dist/client/assets/{org-file-open-context-BZYS0LJs.js → org-file-open-context-CSDcMwBD.js} +1 -1
- package/dist/client/assets/{organization-choice-BqUqcpt3.js → organization-choice-BZ-4C5a6.js} +1 -1
- package/dist/client/assets/{orgs-BmaONpkl.js → orgs-DnEd_o3Y.js} +1 -1
- package/dist/client/assets/{page-seo-form-ChmpTY6H.js → page-seo-form-BjAunJ7T.js} +1 -1
- package/dist/client/assets/{pair-DGI5fx0e.js → pair-o8Pcow3m.js} +1 -1
- package/dist/client/assets/{plan-ladder-X8Zj9SaM.js → plan-ladder-COYrpP9N.js} +1 -1
- package/dist/client/assets/{popover-qQDOtUT-.js → popover-D5s3M61L.js} +1 -1
- package/dist/client/assets/{post-calendar-B8almCuR.js → post-calendar-Cl-vAwk3.js} +1 -1
- package/dist/client/assets/post-editor-D2HU9kfD.js +2 -0
- package/dist/client/assets/{preview-content-Dyu5DkV0.js → preview-content-B9bgsNRh.js} +1 -1
- package/dist/client/assets/{preview-dialog-CtBqa24y.js → preview-dialog-CwQ43Y6v.js} +1 -1
- package/dist/client/assets/{profile-L1-N4m6i.js → profile-BB1G47uY.js} +1 -1
- package/dist/client/assets/{project-app-view-ClwBU9Qs.js → project-app-view-DS-jWTJh.js} +1 -1
- package/dist/client/assets/{project-feed-Crh26cH9.js → project-feed-Ceha3l-R.js} +1 -1
- package/dist/client/assets/{project-icon-C4nL4fZk.js → project-icon-CmV-Y1UZ.js} +1 -1
- package/dist/client/assets/project-reports-M4OcQRnq.js +1 -0
- package/dist/client/assets/project-tasks-D2UK5JuX.js +1 -0
- package/dist/client/assets/{projects-BSybKzWl.js → projects-Cv5osXsD.js} +1 -1
- package/dist/client/assets/{projects-empty-state-Bk1XoaJn.js → projects-empty-state-CaTjevnb.js} +1 -1
- package/dist/client/assets/{prompts-5ReZRdb6.js → prompts-BgUtk3zC.js} +1 -1
- package/dist/client/assets/record-editor-C0G9mTGj.js +1 -0
- package/dist/client/assets/{redirect-editor-Bp56flLw.js → redirect-editor-BpclUTIj.js} +1 -1
- package/dist/client/assets/{reports-9unH-pwd.js → reports-CLznlgS5.js} +1 -1
- package/dist/client/assets/reports-cbjIbfxK.js +1 -0
- package/dist/client/assets/{reports-onboarding-Bd3z6EGO.js → reports-onboarding-BHCXUocU.js} +1 -1
- package/dist/client/assets/{reports-tab-CR2TjCBy.js → reports-tab-CoZHZlVb.js} +2 -2
- package/dist/client/assets/{repositories-CflRXNfG.js → repositories-DoauYKeu.js} +1 -1
- package/dist/client/assets/{repository-binding-5QFpfewx.js → repository-binding-DzrKIMc8.js} +1 -1
- package/dist/client/assets/{repository-import-picker-B2sU66dU.js → repository-import-picker-CVP1mN_O.js} +1 -1
- package/dist/client/assets/{repository-picker-Vcv9BzsE.js → repository-picker-BIkrH86Z.js} +1 -1
- package/dist/client/assets/{require-capability-BW3G4Us3.js → require-capability-CEGMzsiO.js} +1 -1
- package/dist/client/assets/{required-auth-layout-CD9nIPTu.js → required-auth-layout-BPzqc-yZ.js} +1 -1
- package/dist/client/assets/{reset-password-D1RRMRVB.js → reset-password-CC9lxhEO.js} +1 -1
- package/dist/client/assets/{resizable-D9vEsnsF.js → resizable-Ck9CN4S9.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-B5IDCHgC.js → resolve-tab-icon-CgOUF0YA.js} +1 -1
- package/dist/client/assets/{review-settings-BrevH4Wn.js → review-settings-cCLUF68J.js} +1 -1
- package/dist/client/assets/{rich-text-link-control-BzuTiJzL.js → rich-text-link-control-RS2mJIfp.js} +1 -1
- package/dist/client/assets/{roles-DJw04POK.js → roles-DWD7cz1d.js} +1 -1
- package/dist/client/assets/{route-Crbe3P1G.js → route-CjKIfVgB.js} +1 -1
- package/dist/client/assets/{route-oyHhMnH0.js → route-DI4K2hiz.js} +1 -1
- package/dist/client/assets/route-n8gaWLVb.js +1 -0
- package/dist/client/assets/{runnable-block-editor-Dm1ttguK.js → runnable-block-editor-h-xGxUBS.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-B7U4JGhb.js → sandbox-lifecycle-context-OPdARg4I.js} +1 -1
- package/dist/client/assets/{schema-D-otOqEn.js → schema-BejaMrNT.js} +1 -1
- package/dist/client/assets/{scroll-area-BWPHSxC7.js → scroll-area-DjfgE2jb.js} +1 -1
- package/dist/client/assets/{search-input-CpX3lkQR.js → search-input-DviARBm2.js} +1 -1
- package/dist/client/assets/{search-toggle-HqLOjE33.js → search-toggle-DvOTtKmA.js} +1 -1
- package/dist/client/assets/{secret-picker-C3zHxvuV.js → secret-picker-CuEw2DSI.js} +1 -1
- package/dist/client/assets/{secrets-B2qQxKlO.js → secrets-CoVAIKwE.js} +1 -1
- package/dist/client/assets/{sections-editor-DD2nj5mI.js → sections-editor-CsNiIfgn.js} +1 -1
- package/dist/client/assets/{select-C2txP07f.js → select-Cd1ykg-h.js} +1 -1
- package/dist/client/assets/{select-model-DHlaKKMM.js → select-model-a344Xqu_.js} +1 -1
- package/dist/client/assets/{seo-editor-De017z1l.js → seo-editor-D4_b59uB.js} +1 -1
- package/dist/client/assets/{separator--5K9h2sI.js → separator-Ch977YA1.js} +1 -1
- package/dist/client/assets/{settings-tab-Cl0o9K4e.js → settings-tab-sWmscvB1.js} +1 -1
- package/dist/client/assets/{sheet-B12cZ7x2.js → sheet-lggFYx6M.js} +1 -1
- package/dist/client/assets/shell-layout-Bl8of89A.js +1 -0
- package/dist/client/assets/{skills-8pBxw9bR.js → skills-CzJ783Zp.js} +1 -1
- package/dist/client/assets/{sso-TN5MAp8K.js → sso-DKlO8_Lq.js} +1 -1
- package/dist/client/assets/{suggestion-NZIrFsLR.js → suggestion-K--t6EP5.js} +1 -1
- package/dist/client/assets/{switch-Bwf4p87L.js → switch-BLWgY1pz.js} +1 -1
- package/dist/client/assets/{synced-repos-DLmz0NmT.js → synced-repos-BnWEHPVF.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-DH47_x1a.js → tab-icon-glyph-C_bZ6WrZ.js} +1 -1
- package/dist/client/assets/{table-lla-0ZP_.js → table-CufJwyXQ.js} +1 -1
- package/dist/client/assets/{tabs-Cqnx8A4d.js → tabs-C1zPDoUI.js} +1 -1
- package/dist/client/assets/{task-board-ECBN5WTV.js → task-board-DlEJAtdm.js} +1 -1
- package/dist/client/assets/{task-route-BDq4YcnG.js → task-route-z_uMrYh2.js} +1 -1
- package/dist/client/assets/{task-status-CnOLwVKV.js → task-status-DrVr4O9O.js} +1 -1
- package/dist/client/assets/{taskboard-analytics-uCDwsGG2.js → taskboard-analytics-BEIixlIh.js} +1 -1
- package/dist/client/assets/{tasks-BX0Q_hE9.js → tasks-CpEABx-G.js} +1 -1
- package/dist/client/assets/tasks-l5i1Y6YC.js +1 -0
- package/dist/client/assets/{textarea-D-mcJV9e.js → textarea-r66bOcCD.js} +1 -1
- package/dist/client/assets/{thread-analytics-DDKoGJv6.js → thread-analytics-BmowQF8I.js} +1 -1
- package/dist/client/assets/{thread-intent-CUdr-H41.js → thread-intent-UQGFcX_y.js} +1 -1
- package/dist/client/assets/{thread-route-BWPYI0ZR.js → thread-route-CVz2UKe8.js} +1 -1
- package/dist/client/assets/{thread-route-Dxs07flR.js → thread-route-CowkfwAl.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-BAKNbMRN.js → thread-sheet-body-CxW1uZ8Z.js} +1 -1
- package/dist/client/assets/{toggle-group-C9SgUNwy.js → toggle-group-BQtHqwCK.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-DWT7n987.js → toolbar-icon-button-B4QTn-IO.js} +1 -1
- package/dist/client/assets/{tooltip-C-B-WE46.js → tooltip-CM3YyNDC.js} +1 -1
- package/dist/client/assets/{track-D7y9daDt.js → track-BqJ0I7ao.js} +1 -1
- package/dist/client/assets/{types-CJIIzGfz.js → types-DyM6In73.js} +1 -1
- package/dist/client/assets/{usage-stats-H19WpNRU.js → usage-stats-5Vc6zWOp.js} +1 -1
- package/dist/client/assets/{use-ai-providers-DKskI-lk.js → use-ai-providers-C98JaJAU.js} +1 -1
- package/dist/client/assets/{use-automations-Cx0j7Q3N.js → use-automations-CqbCGltu.js} +1 -1
- package/dist/client/assets/{use-autosave-CHQrnT-o.js → use-autosave-tzZy_E8d.js} +1 -1
- package/dist/client/assets/{use-chat-layout-state-BjAQ-jEe.js → use-chat-layout-state-BfZJHnkW.js} +1 -1
- package/dist/client/assets/{use-connect-companion-BqzewW5u.js → use-connect-companion-DfiphJ3V.js} +1 -1
- package/dist/client/assets/{use-connection-DHC7ikhv.js → use-connection-BdSGHKJK.js} +1 -1
- package/dist/client/assets/{use-copy-CdZ1BFua.js → use-copy-CiP5Vy7i.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-CPtrtZAW.js → use-create-virtual-mcp-CoU2LYN8.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-B7kL8ljG.js → use-date-fns-locale-BQIR67dY.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-CYhKiUyc.js → use-debounced-autosave-6IETzqNZ.js} +1 -1
- package/dist/client/assets/{use-debounced-value-CiGe63CI.js → use-debounced-value-DCYhoWzs.js} +1 -1
- package/dist/client/assets/{use-deco-credits-Cte4t6Hc.js → use-deco-credits-x58AfrXU.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-DRNQZQd4.js → use-decopilot-events-BZQXzmAo.js} +1 -1
- package/dist/client/assets/{use-delete-connection-B7AFWvdy.js → use-delete-connection-CzvLG4mr.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-DLIzcPao.js → use-deployment-admin-BmH0eskZ.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-xQxrekFA.js → use-fast-preview-draft-url-DFL8djh0.js} +1 -1
- package/dist/client/assets/{use-file-configs-Dgw51am7.js → use-file-configs-DRP3Y7X_.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-C8OfQLMA.js → use-infinite-scroll-BjVQV3DR.js} +1 -1
- package/dist/client/assets/{use-join-requests-nZ3kOzHD.js → use-join-requests-B6dqmlCQ.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-DxwYJrDB.js → use-main-panel-tabs-sy9nYCqA.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-CcDs9GVg.js → use-mcp-auth-status-Cjd2QrWU.js} +1 -1
- package/dist/client/assets/{use-mcp-client-DwI8A7i_.js → use-mcp-client-CqsHeShn.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-DldVoJeZ.js → use-mcp-prompts-D2YpCb1K.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-CfhB5gVo.js → use-mcp-tools-CHvaFbLg.js} +1 -1
- package/dist/client/assets/{use-members-C0vxrdj1.js → use-members-BIhBY7mT.js} +1 -1
- package/dist/client/assets/{use-mobile-Bl8tDUow.js → use-mobile-3MM_rw4D.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-BkimVMTW.js → use-navigate-to-agent-PjEm7mol.js} +1 -1
- package/dist/client/assets/use-new-blocks-editor-BAZ5qlTk.js +1 -0
- package/dist/client/assets/{use-open-billing-url-C6UjE84T.js → use-open-billing-url-CVEaCqtR.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-DveZle8A.js → use-org-auth-client-DM3Q5_fm.js} +1 -1
- package/dist/client/assets/{use-org-fs-BgFAHUUb.js → use-org-fs-DazA0BMP.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-EVtNPamp.js → use-org-repo-syncs-DGjVBBAK.js} +1 -1
- package/dist/client/assets/{use-org-sso-BliqnW_C.js → use-org-sso-DGy0uwEN.js} +1 -1
- package/dist/client/assets/{use-organization-roles-Bapbgw8R.js → use-organization-roles-Bjw-G0xx.js} +1 -1
- package/dist/client/assets/{use-organization-settings-Cwt51JJ-.js → use-organization-settings-DbPbYeMx.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-Bs3wrk2o.js → use-panel-navigate-DH6_TAsx.js} +1 -1
- package/dist/client/assets/{use-project-scope-B0guFEKE.js → use-project-scope-Bgnjdhs7.js} +1 -1
- package/dist/client/assets/{use-releases-ktnIEIhq.js → use-releases-DQGDjOy5.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-D3V-85up.js → use-reports-diagnostic-BASyyQU9.js} +1 -1
- package/dist/client/assets/{use-secrets-BkecMwUf.js → use-secrets-B41nk4LH.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-Cx_Jy896.js → use-section-preview-base-DKahorN-.js} +1 -1
- package/dist/client/assets/{use-session-runtime-DePI4bwj.js → use-session-runtime-CsLaMszW.js} +1 -1
- package/dist/client/assets/{use-tags-oLoiyIWO.js → use-tags-BQ9peM4A.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-Cb5Wgr40.js → use-task-board-analytics-Co6FjpoI.js} +1 -1
- package/dist/client/assets/{use-task-board-events-Dh62k4Ty.js → use-task-board-events-BsviWCWn.js} +1 -1
- package/dist/client/assets/{use-task-metadata-w1PI2EXQ.js → use-task-metadata-DvgRil5z.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-lgnAQ6CS.js → use-thread-analytics-Bf4bUeLT.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-C-Wf6OBJ.js → use-thread-outputs-CvWfZHjR.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-TQWsreUe.js +1 -0
- package/dist/client/assets/{useQueries-Bp03xGbc.js → useQueries-CIVnwtOu.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DMyZCSsI.js +1 -0
- package/dist/client/assets/{users-BhXTEA2Q.js → users-2Adoo8D9.js} +1 -1
- package/dist/client/assets/{utils-DLvRHMkE.js → utils-BeoNvR__.js} +1 -1
- package/dist/client/assets/{variant-calendar-dnPy16Uh.js → variant-calendar-C6HvphcB.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-Ck-W94Rw.js → variant-matcher-override-De1zsqbc.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-B0zbI0V1.js → view-mode-toggle-DtqPFP6s.js} +1 -1
- package/dist/client/assets/{virtual-mcp-CXOm_lWW.js → virtual-mcp-Cr9A-Wo0.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +4 -4
- package/dist/server/server.js +4 -4
- package/package.json +1 -1
- package/dist/client/assets/add-connection-dialog-CMIKgpSn.js +0 -1
- package/dist/client/assets/agent-app-DvbjKuoc.js +0 -1
- package/dist/client/assets/agent-deck-BOkkFgcN.js +0 -1
- package/dist/client/assets/agent-library-C1r0MXrh.js +0 -1
- package/dist/client/assets/agent-library-file-D5IDjKQA.js +0 -1
- package/dist/client/assets/agent-settings-AbY4U8u3.js +0 -1
- package/dist/client/assets/agent-site-editor-code-bJU2jCGA.js +0 -2
- package/dist/client/assets/agent-view-DS1snkTk.js +0 -1
- package/dist/client/assets/api-keys-ttV9p_C3.js +0 -1
- package/dist/client/assets/flat-project-5lJIGqGg.js +0 -1
- package/dist/client/assets/library-BetPT5Rc.js +0 -1
- package/dist/client/assets/new-project-dialog-BJabJxXa.js +0 -1
- package/dist/client/assets/post-editor-3AfRGsBD.js +0 -2
- package/dist/client/assets/project-reports--pld6WR0.js +0 -1
- package/dist/client/assets/project-tasks-DOClEfO3.js +0 -1
- package/dist/client/assets/record-editor-Cz6r4s_z.js +0 -1
- package/dist/client/assets/reports-Cs6RnnEs.js +0 -1
- package/dist/client/assets/route-B0zINpnC.js +0 -1
- package/dist/client/assets/shell-layout-jXhY2XCJ.js +0 -1
- package/dist/client/assets/tasks-FILO35tu.js +0 -1
- package/dist/client/assets/use-new-blocks-editor-Bg78S2yh.js +0 -1
- package/dist/client/assets/useInfiniteQuery-CkfME6EV.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-Cb-DHagn.js +0 -1
package/dist/server/server.js
CHANGED
|
@@ -959,7 +959,7 @@ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
|
|
|
959
959
|
|
|
960
960
|
new Anthropic({ apiKey, dangerouslyAllowBrowser: true });
|
|
961
961
|
`);this.baseURL=J.baseURL,this._baseURLIsExplicit=X.__baseURLIsExplicit??!!$,this.timeout=J.timeout??P01.DEFAULT_TIMEOUT,this.logger=J.logger??console,this.logLevel=wa,this.logLevel=l30(J.logLevel,"ClientOptions.logLevel",w6(this))??l30(b4("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",w6(this))??wa,this.fetchOptions=J.fetchOptions,this.maxRetries=J.maxRetries??2,this.fetch=J.fetch??bG$(),X1(this,MW0,fG$,"f"),this.middleware=[...J.middleware??[]];let G=b4("ANTHROPIC_CUSTOM_HEADERS");if(G){let K={};for(let H of G.split(`
|
|
962
|
-
`)){let F=H.indexOf(":");if(F>=0)K[H.substring(0,F).trim()]=H.substring(F+1).trim()}J.defaultHeaders={...K,...J.defaultHeaders}}let W=X.__auth;if(delete J.__auth,delete J.__baseURLIsExplicit,this._options=J,this.apiKey=typeof Z==="string"?Z:null,this.authToken=Q,this.webhookKey=Y,W){if(this._authState=W,!this._baseURLIsExplicit&&W.baseURL)this.baseURL=W.baseURL}else if(this._authState={provider:null,tokenCache:null,resolution:null,error:null,extraHeaders:{}},this.apiKey==null&&this.authToken==null){let K=J.credentials??null;if(K)this._authState.provider=K,this._authState.tokenCache=this._makeTokenCache(K);else if(J.config!=null){let H=ia0(J.config,this._credentialResolverOptions());this._authState.provider=H.provider,this._authState.tokenCache=this._makeTokenCache(H.provider),this._authState.extraHeaders=H.extraHeaders,this._applyCredentialBaseURL(H.baseURL)}else if(J.profile!=null)this._authState.resolution=this._resolveDefaultCredentials(J.profile);else this._authState.resolution=this._resolveDefaultCredentials()}}_applyCredentialBaseURL($){if(!$)return;let Z=$.replace(/\/+$/,"");if(this._authState.baseURL=Z,!this._baseURLIsExplicit)this.baseURL=Z}_credentialResolverOptions(){return{baseURL:this.baseURL,fetch:this._credentialsFetch(),userAgent:this.getUserAgent(),onCacheWriteError:($)=>{w6(this).debug("credential cache write failed (best-effort)",$)},onSafetyWarning:($)=>{w6(this).warn($)}}}_credentialsFetch(){return ta0(this.fetch,this.middleware,void 0,this)}_makeTokenCache($){return new ya0($,(Z)=>{w6(this).debug("advisory token refresh failed; serving cached token",Z)})}withOptions($){let Z="credentials"in $||"config"in $||"profile"in $,Q="apiKey"in $||"authToken"in $||Z,Y={...this._options,...this._baseURLIsExplicit?{baseURL:this.baseURL}:{},maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,middleware:this.middleware,apiKey:this.apiKey,authToken:this.authToken,webhookKey:this.webhookKey,credentials:this.credentials,...Z?{credentials:void 0,config:void 0,profile:void 0}:{},...$,__auth:Q?void 0:this._authState,__baseURLIsExplicit:"baseURL"in $?!0:this._baseURLIsExplicit};return new this.constructor(Y)}async _resolveDefaultCredentials($){try{let Z=await j3$(this._credentialResolverOptions(),$);if(Z)this._authState.provider=Z.provider,this._authState.tokenCache=this._makeTokenCache(Z.provider),this._authState.extraHeaders=Z.extraHeaders,this._applyCredentialBaseURL(Z.baseURL);else if($!=null)throw new P1(`Profile "${$}" could not be resolved (no <config_dir>/configs/${$}.json found).`)}catch(Z){this._authState.error=Z}finally{this._authState.resolution=null}}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:$,nulls:Z}){if($.get("x-api-key")||$.get("authorization"))return;if(this._authState.error)throw this._authState.error;if(this._authState.tokenCache||this._authState.resolution)return;if(this.apiKey&&$.get("x-api-key"))return;if(Z.has("x-api-key"))return;if(this.authToken&&$.get("authorization"))return;if(Z.has("authorization"))return;throw Error('Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}_authFlags($){let Z=this._requestAuthFlags.get($);if(!Z)Z={usedTokenCache:!1,didRefreshFor401:!1},this._requestAuthFlags.set($,Z);return Z}async authHeaders($){if(this._authState.resolution)await this._authState.resolution;if(this._authState.error)return;if(this._authState.tokenCache&&this.apiKey==null){let Z=await this._authState.tokenCache.getToken();return this._authFlags($).usedTokenCache=!0,x0([{Authorization:`Bearer ${Z}`}])}return x0([await this.apiKeyAuth($),await this.bearerAuth($)])}async apiKeyAuth($){if(this.apiKey==null)return;return x0([{"X-Api-Key":this.apiKey}])}async bearerAuth($){if(this.authToken==null)return;return x0([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery($){return nG$($)}getUserAgent(){return`${this.constructor.name}/JS ${NW}`}defaultIdempotencyKey(){return`stainless-node-retry-${$c()}`}makeStatusError($,Z,Q,Y){return BZ.generate($,Z,Q,Y)}buildURL($,Z,Q){let Y=!a(this,z01,"m",sW$).call(this)&&Q||this.baseURL,X=IG$($)?new URL($):new URL(Y+(Y.endsWith("/")&&$.startsWith("/")?$.slice(1):$)),J=this.defaultQuery(),G=Object.fromEntries(X.searchParams);if(!Ma0(J)||!Ma0(G))Z={...G,...J,...Z};if(typeof Z==="object"&&Z&&!Array.isArray(Z))X.search=this.stringifyQuery(Z);return X.toString()}_calculateNonstreamingTimeout($){if(3600*$/128000>600)throw new P1("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 600000}async prepareOptions($){}async prepareRequest($,{url:Z,options:Q}){if(this._authState.tokenCache&&this.apiKey==null){let Y=$.headers instanceof Headers?$.headers:new Headers($.headers);for(let[J,G]of Object.entries(this._authState.extraHeaders))if(!Y.has(J))Y.set(J,G);if(!Y.get("anthropic-beta")?.split(",").map((J)=>J.trim())?.includes(V2))Y.append("anthropic-beta",V2);$.headers=Y}}backendMiddleware(){return[]}get($,Z){return this.methodRequest("get",$,Z)}post($,Z){return this.methodRequest("post",$,Z)}patch($,Z){return this.methodRequest("patch",$,Z)}put($,Z){return this.methodRequest("put",$,Z)}delete($,Z){return this.methodRequest("delete",$,Z)}methodRequest($,Z,Q){return this.request(Promise.resolve(Q).then((Y)=>{return{method:$,path:Z,...Y}}))}request($,Z=null){return new k2(this,this.makeRequest($,Z,void 0))}async makeRequest($,Z,Q){let Y=await $,X=Y.maxRetries??this.maxRetries;if(Z==null)Z=X,this._requestAuthFlags.delete(Y);await this.prepareOptions(Y);let{req:J,url:G,timeout:W}=await this.buildRequest(Y,{retryCount:X-Z}),K="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),H=Q===void 0?"":`, retryOf: ${Q}`,F=Date.now();if(Y.signal?.aborted)throw new PY;let U=new AbortController,N=await this.fetchWithTimeout(G,J,W,U,Y,{requestLogID:K,retryOfRequestLogID:Q}).catch(I2),B=Date.now();if(N instanceof globalThis.Error){let w=`retrying, ${Z} attempts remaining`;if(Y.signal?.aborted)throw new PY;let j=UW(N)||/timed? ?out/i.test(String(N)+("cause"in N?String(N.cause):"")),E=this.middleware.length>0||!!Y.middleware?.length||this.backendMiddleware().length>0;if(E&&!j&&!q3$(N))throw w6(this).info(`[${K}] middleware error (not retryable)`),w6(this).debug(`[${K}] middleware error (not retryable)`,sF({retryOfRequestLogID:Q,url:G,durationMs:B-F,message:N.message})),N;if(Z)return w6(this).info(`[${K}] connection ${j?"timed out":"failed"} - ${w}`),w6(this).debug(`[${K}] connection ${j?"timed out":"failed"} (${w})`,sF({retryOfRequestLogID:Q,url:G,durationMs:B-F,message:N.message})),this.retryRequest(Y,Z,Q??K);if(w6(this).info(`[${K}] connection ${j?"timed out":"failed"} - error; no more retries left`),w6(this).debug(`[${K}] connection ${j?"timed out":"failed"} (error; no more retries left)`,sF({retryOfRequestLogID:Q,url:G,durationMs:B-F,message:N.message})),j)throw new Xa;if(E&&!na0(N))throw N;throw new bB({cause:N})}let O=[...N.headers.entries()].filter(([w])=>w==="request-id").map(([w,j])=>", "+w+": "+JSON.stringify(j)).join(""),L=`[${K}${H}${O}] ${J.method} ${G} ${N.ok?"succeeded":"failed"} with status ${N.status} in ${B-F}ms`;if(!N.ok){let w=await this.shouldRetry(N,Y);if(Z&&w){let P=`retrying, ${Z} attempts remaining`;return await xG$(N.body),w6(this).info(`${L} - ${P}`),w6(this).debug(`[${K}] response error (${P})`,sF({retryOfRequestLogID:Q,url:N.url,status:N.status,headers:N.headers,durationMs:B-F})),this.retryRequest(Y,Z,Q??K,N.headers)}let j=w?"error; no more retries left":"error; not retryable";w6(this).info(`${L} - ${j}`);let E=await N.text().catch((P)=>I2(P).message),z=Ba(E),T=z?void 0:E;throw w6(this).debug(`[${K}] response error (${j})`,sF({retryOfRequestLogID:Q,url:N.url,status:N.status,headers:N.headers,message:T,durationMs:Date.now()-F})),this.makeStatusError(N.status,z,T,N.headers)}return w6(this).info(L),w6(this).debug(`[${K}] response start`,sF({retryOfRequestLogID:Q,url:N.url,status:N.status,headers:N.headers,durationMs:B-F})),{response:N,options:Y,controller:U,requestLogID:K,retryOfRequestLogID:Q,startTime:F}}getAPIList($,Z,Q){return this.requestAPIList(Z,Q&&"then"in Q?Q.then((Y)=>({method:"get",path:$,...Y})):{method:"get",path:$,...Q})}requestAPIList($,Z){let Q=this.makeRequest(Z,null,void 0);return new n30(this,Q,$)}async fetchWithTimeout($,Z,Q,Y,X,J){let{signal:G,method:W,...K}=Z||{},H=this._makeAbort(Y);if(G)G.addEventListener("abort",H,{once:!0});let F=globalThis.ReadableStream&&K.body instanceof globalThis.ReadableStream||typeof K.body==="object"&&K.body!==null&&Symbol.asyncIterator in K.body,U={signal:Y.signal,...F?{duplex:"half"}:{},method:"GET",...K};if(W)U.method=W.toUpperCase();let N=this.fetch,B=async(E,z)=>{let T=setTimeout(H,Q);try{return await N.call(void 0,E,z)}finally{clearTimeout(T)}},O=X===void 0?B:async(E,z={})=>{let T=typeof E==="string"?E:E instanceof URL?E.href:E.url;if(z.headers=z.headers instanceof Headers?z.headers:new Headers(z.headers),await this.prepareRequest(z,{url:T,options:X}),J)w6(this).debug(`[${J.requestLogID}] sending request`,sF({retryOfRequestLogID:J.retryOfRequestLogID,method:z.method,url:T,options:X,headers:z.headers}));return B(E,z)},L=X?.middleware,w=this.backendMiddleware(),j=L?.length||w.length?[...this.middleware,...L??[],...w]:this.middleware;return await ta0(O,j,X,this)($,U)}async shouldRetry($,Z){let Q=this._authFlags(Z);if($.status===401&&this._authState.tokenCache&&Q.usedTokenCache&&!Q.didRefreshFor401)return Q.didRefreshFor401=!0,this._authState.tokenCache.invalidate(),!0;let Y=$.headers.get("x-should-retry");if(Y==="true")return!0;if(Y==="false")return!1;if($.status===408)return!0;if($.status===409)return!0;if($.status===429)return!0;if($.status>=500)return!0;return!1}async retryRequest($,Z,Q,Y){let X,J=Y?.get("retry-after-ms");if(J){let W=parseFloat(J);if(!Number.isNaN(W))X=W}let G=Y?.get("retry-after");if(G&&!X){let W=parseFloat(G);if(!Number.isNaN(W))X=W*1000;else X=Date.parse(G)-Date.now()}if(X===void 0){let W=$.maxRetries??this.maxRetries;X=this.calculateDefaultRetryTimeoutMillis(Z,W)}return await ZH(X),this.makeRequest($,Z-1,Q)}calculateDefaultRetryTimeoutMillis($,Z){let X=Z-$,J=Math.min(0.5*Math.pow(2,X),8),G=1-Math.random()*0.25;return J*G*1000}calculateNonstreamingTimeout($,Z){if(3600000*$/128000>600000||Z!=null&&$>Z)throw new P1("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 600000}async buildRequest($,{retryCount:Z=0}={}){let Q={...$},{method:Y,path:X,query:J,defaultBaseURL:G}=Q;if(this._authState.resolution)await this._authState.resolution;if(!this._baseURLIsExplicit&&this._authState.baseURL&&this.baseURL!==this._authState.baseURL)this.baseURL=this._authState.baseURL;let W=this.buildURL(X,J,G);if("timeout"in Q)kG$("timeout",Q.timeout);Q.timeout=Q.timeout??this.timeout;let{bodyHeaders:K,body:H}=this.buildBody({options:Q}),F=await this.buildHeaders({options:$,method:Y,bodyHeaders:K,retryCount:Z});return{req:{method:Y,headers:F,...Q.signal&&{signal:Q.signal},...globalThis.ReadableStream&&H instanceof globalThis.ReadableStream&&{duplex:"half"},...H&&{body:H},...this.fetchOptions??{},...Q.fetchOptions??{}},url:W,timeout:Q.timeout}}async buildHeaders({options:$,method:Z,bodyHeaders:Q,retryCount:Y}){let X={};if(this.idempotencyHeader&&Z!=="get"){if(!$.idempotencyKey)$.idempotencyKey=this.defaultIdempotencyKey();X[this.idempotencyHeader]=$.idempotencyKey}let J=x0([X,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(Y),...$.timeout?{"X-Stainless-Timeout":String(Math.trunc($.timeout/1000))}:{},...Da(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders($),this._options.defaultHeaders,Q,$.headers]);return this.validateHeaders(J),J.values}_makeAbort($){return()=>$.abort()}buildBody({options:{body:$,headers:Z}}){if(!$)return{bodyHeaders:void 0,body:void 0};let Q=x0([Z]);if(ArrayBuffer.isView($)||$ instanceof ArrayBuffer||$ instanceof DataView||typeof $==="string"&&Q.values.has("content-type")||globalThis.Blob&&$ instanceof globalThis.Blob||$ instanceof FormData||$ instanceof URLSearchParams||globalThis.ReadableStream&&$ instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:$};else if(typeof $==="object"&&((Symbol.asyncIterator in $)||(Symbol.iterator in $)&&("next"in $)&&typeof $.next==="function"))return{bodyHeaders:void 0,body:_30($)};else if(typeof $==="object"&&Q.values.get("content-type")==="application/x-www-form-urlencoded")return{bodyHeaders:{"content-type":"application/x-www-form-urlencoded"},body:this.stringifyQuery($)};else return a(this,MW0,"f").call(this,{body:$,headers:Q})}}var z01,P01,MW0,sW$,aW$="\\n\\nHuman:",eW$="\\n\\nAssistant:",yB;var A01=D(()=>{zJ();$H();C30();xa0();O9();Qc();$3$();E3$();M3$();p5();$e0();rW$();i30();W01();E01();G01();j01();C30();j6();aF();$H();P01=DZ,MW0=new WeakMap,z01=new WeakSet,sW$=function(){return this.baseURL!=="https://api.anthropic.com"};DZ.Anthropic=P01;DZ.HUMAN_PROMPT=aW$;DZ.AI_PROMPT=eW$;DZ.DEFAULT_TIMEOUT=600000;DZ.AnthropicError=P1;DZ.APIError=BZ;DZ.APIConnectionError=bB;DZ.APIConnectionTimeoutError=Xa;DZ.APIUserAbortError=PY;DZ.NotFoundError=Ka;DZ.ConflictError=Ha;DZ.RateLimitError=Ua;DZ.BadRequestError=Ja;DZ.AuthenticationError=Ga;DZ.InternalServerError=Na;DZ.PermissionDeniedError=Wa;DZ.UnprocessableEntityError=Fa;DZ.toFile=t30;yB=class yB extends DZ{constructor(){super(...arguments);this.completions=new qc(this),this.messages=new m2(this),this.models=new Ic(this),this.beta=new M7(this)}};yB.Completions=qc;yB.Messages=m2;yB.Models=Ic;yB.Beta=M7});var $K$=D(()=>{O9();Ea();$H()});var je0=D(()=>{A01();$e0();i30();$K$();A01();p5();O9()});var ZK$;var QK$=D(()=>{Ra0();je0();ZK$={info:{id:"anthropic",name:"Anthropic",description:"Anthropic's Claude family of models",logo:"https://assets.decocache.com/decocms/51a209ae-14bc-4b6f-8216-8eb670695bd7/Anthropic-Icon--Streamline-Svg-Logos.svg"},supportedMethods:["api-key"],create($){let Z=Ya({apiKey:$}),Q=new yB({apiKey:$});return{info:this.info,aiSdk:Z,async listModels(){return(await Q.models.list()).data.map((X)=>({modelId:X.id,providerId:"anthropic",title:X.display_name,description:null,logo:null,capabilities:[],limits:null,costs:null}))},async countTokens({messages:Y,modelId:X}){return{count:(await Q.messages.countTokens({messages:Y,model:X})).input_tokens}}}}}});import{z as cB}from"zod/v4";import{z as d2}from"zod/v4";import{z as MY}from"zod/v4";import{z as T8}from"zod/v4";import{z as c0}from"zod/v4";import{z as K6}from"zod/v4";import{z as Fz4}from"zod/v4";import{z as lB}from"zod/v4";import{z as Vc}from"zod/v4";import{z as BK$}from"zod/v4";import{z as i2}from"zod/v4";import{z as DK$}from"zod/v4";import{z as OK$}from"zod/v4";import{z as LK$}from"zod/v4";import{z as MX}from"zod/v4";import{z as iG}from"zod/v4";import{z as gB}from"zod/v4";import{z as hB}from"zod/v4";import{z as dw}from"zod/v4";import{z as B0}from"zod/v4";import{z as o1}from"zod/v4";import{z as I7}from"zod/v4";import{z as mw}from"zod/v4";import{z as qK$}from"zod/v4";function Sc($){return $.includes("/")?$:`models/${$}`}function YK$($){var Z,Q,Y,X,J;if($==null)return lF();let G=(Z=$.promptTokenCount)!=null?Z:0,W=(Q=$.candidatesTokenCount)!=null?Q:0,K=(Y=$.toolUsePromptTokenCount)!=null?Y:0,H=(X=$.cachedContentTokenCount)!=null?X:0,F=(J=$.thoughtsTokenCount)!=null?J:0,U=G+K;return{inputTokens:{total:U,noCache:U-H,cacheRead:H,cacheWrite:void 0},outputTokens:{total:W+F,text:W,reasoning:F},raw:$}}function yE4($){let Z=fE4.exec($);if(Z==null)return;return{mediaType:Z[1],data:Z[2]}}function gE4($){let Z=yE4($);if(Z==null)return;return{inlineData:{mimeType:Z.mediaType,data:Z.data}}}function hE4($,Z,Q,Y,X=!0){let J=[],G=[];for(let W of Q)switch(W.type){case"text":{G.push(W.text);break}case"file":{if(W.data.type==="data")J.push({inlineData:{mimeType:u9({part:W}),data:K4(W.data.data)}});else if(W.data.type==="url"){let K=gE4(W.data.url.toString());if(K!=null)J.push(K);else G.push(JSON.stringify(W))}else G.push(JSON.stringify(W));break}default:{G.push(JSON.stringify(W));break}}$.push({functionResponse:{...X&&Y!=null?{id:Y}:{},name:Z,response:{name:Z,content:G.length>0?G.join(`
|
|
962
|
+
`)){let F=H.indexOf(":");if(F>=0)K[H.substring(0,F).trim()]=H.substring(F+1).trim()}J.defaultHeaders={...K,...J.defaultHeaders}}let W=X.__auth;if(delete J.__auth,delete J.__baseURLIsExplicit,this._options=J,this.apiKey=typeof Z==="string"?Z:null,this.authToken=Q,this.webhookKey=Y,W){if(this._authState=W,!this._baseURLIsExplicit&&W.baseURL)this.baseURL=W.baseURL}else if(this._authState={provider:null,tokenCache:null,resolution:null,error:null,extraHeaders:{}},this.apiKey==null&&this.authToken==null){let K=J.credentials??null;if(K)this._authState.provider=K,this._authState.tokenCache=this._makeTokenCache(K);else if(J.config!=null){let H=ia0(J.config,this._credentialResolverOptions());this._authState.provider=H.provider,this._authState.tokenCache=this._makeTokenCache(H.provider),this._authState.extraHeaders=H.extraHeaders,this._applyCredentialBaseURL(H.baseURL)}else if(J.profile!=null)this._authState.resolution=this._resolveDefaultCredentials(J.profile);else this._authState.resolution=this._resolveDefaultCredentials()}}_applyCredentialBaseURL($){if(!$)return;let Z=$.replace(/\/+$/,"");if(this._authState.baseURL=Z,!this._baseURLIsExplicit)this.baseURL=Z}_credentialResolverOptions(){return{baseURL:this.baseURL,fetch:this._credentialsFetch(),userAgent:this.getUserAgent(),onCacheWriteError:($)=>{w6(this).debug("credential cache write failed (best-effort)",$)},onSafetyWarning:($)=>{w6(this).warn($)}}}_credentialsFetch(){return ta0(this.fetch,this.middleware,void 0,this)}_makeTokenCache($){return new ya0($,(Z)=>{w6(this).debug("advisory token refresh failed; serving cached token",Z)})}withOptions($){let Z="credentials"in $||"config"in $||"profile"in $,Q="apiKey"in $||"authToken"in $||Z,Y={...this._options,...this._baseURLIsExplicit?{baseURL:this.baseURL}:{},maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,middleware:this.middleware,apiKey:this.apiKey,authToken:this.authToken,webhookKey:this.webhookKey,credentials:this.credentials,...Z?{credentials:void 0,config:void 0,profile:void 0}:{},...$,__auth:Q?void 0:this._authState,__baseURLIsExplicit:"baseURL"in $?!0:this._baseURLIsExplicit};return new this.constructor(Y)}async _resolveDefaultCredentials($){try{let Z=await j3$(this._credentialResolverOptions(),$);if(Z)this._authState.provider=Z.provider,this._authState.tokenCache=this._makeTokenCache(Z.provider),this._authState.extraHeaders=Z.extraHeaders,this._applyCredentialBaseURL(Z.baseURL);else if($!=null)throw new P1(`Profile "${$}" could not be resolved (no <config_dir>/configs/${$}.json found).`)}catch(Z){this._authState.error=Z}finally{this._authState.resolution=null}}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:$,nulls:Z}){if($.get("x-api-key")||$.get("authorization"))return;if(this._authState.error)throw this._authState.error;if(this._authState.tokenCache||this._authState.resolution)return;if(this.apiKey&&$.get("x-api-key"))return;if(Z.has("x-api-key"))return;if(this.authToken&&$.get("authorization"))return;if(Z.has("authorization"))return;throw Error('Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}_authFlags($){let Z=this._requestAuthFlags.get($);if(!Z)Z={usedTokenCache:!1,didRefreshFor401:!1},this._requestAuthFlags.set($,Z);return Z}async authHeaders($){if(this._authState.resolution)await this._authState.resolution;if(this._authState.error)return;if(this._authState.tokenCache&&this.apiKey==null){let Z=await this._authState.tokenCache.getToken();return this._authFlags($).usedTokenCache=!0,x0([{Authorization:`Bearer ${Z}`}])}return x0([await this.apiKeyAuth($),await this.bearerAuth($)])}async apiKeyAuth($){if(this.apiKey==null)return;return x0([{"X-Api-Key":this.apiKey}])}async bearerAuth($){if(this.authToken==null)return;return x0([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery($){return nG$($)}getUserAgent(){return`${this.constructor.name}/JS ${NW}`}defaultIdempotencyKey(){return`stainless-node-retry-${$c()}`}makeStatusError($,Z,Q,Y){return BZ.generate($,Z,Q,Y)}buildURL($,Z,Q){let Y=!a(this,z01,"m",sW$).call(this)&&Q||this.baseURL,X=IG$($)?new URL($):new URL(Y+(Y.endsWith("/")&&$.startsWith("/")?$.slice(1):$)),J=this.defaultQuery(),G=Object.fromEntries(X.searchParams);if(!Ma0(J)||!Ma0(G))Z={...G,...J,...Z};if(typeof Z==="object"&&Z&&!Array.isArray(Z))X.search=this.stringifyQuery(Z);return X.toString()}_calculateNonstreamingTimeout($){if(3600*$/128000>600)throw new P1("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 600000}async prepareOptions($){}async prepareRequest($,{url:Z,options:Q}){if(this._authState.tokenCache&&this.apiKey==null){let Y=$.headers instanceof Headers?$.headers:new Headers($.headers);for(let[J,G]of Object.entries(this._authState.extraHeaders))if(!Y.has(J))Y.set(J,G);if(!Y.get("anthropic-beta")?.split(",").map((J)=>J.trim())?.includes(V2))Y.append("anthropic-beta",V2);$.headers=Y}}backendMiddleware(){return[]}get($,Z){return this.methodRequest("get",$,Z)}post($,Z){return this.methodRequest("post",$,Z)}patch($,Z){return this.methodRequest("patch",$,Z)}put($,Z){return this.methodRequest("put",$,Z)}delete($,Z){return this.methodRequest("delete",$,Z)}methodRequest($,Z,Q){return this.request(Promise.resolve(Q).then((Y)=>{return{method:$,path:Z,...Y}}))}request($,Z=null){return new k2(this,this.makeRequest($,Z,void 0))}async makeRequest($,Z,Q){let Y=await $,X=Y.maxRetries??this.maxRetries;if(Z==null)Z=X,this._requestAuthFlags.delete(Y);await this.prepareOptions(Y);let{req:J,url:G,timeout:W}=await this.buildRequest(Y,{retryCount:X-Z}),K="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),H=Q===void 0?"":`, retryOf: ${Q}`,F=Date.now();if(Y.signal?.aborted)throw new PY;let U=new AbortController,N=await this.fetchWithTimeout(G,J,W,U,Y,{requestLogID:K,retryOfRequestLogID:Q}).catch(I2),B=Date.now();if(N instanceof globalThis.Error){let w=`retrying, ${Z} attempts remaining`;if(Y.signal?.aborted)throw new PY;let j=UW(N)||/timed? ?out/i.test(String(N)+("cause"in N?String(N.cause):"")),E=this.middleware.length>0||!!Y.middleware?.length||this.backendMiddleware().length>0;if(E&&!j&&!q3$(N))throw w6(this).info(`[${K}] middleware error (not retryable)`),w6(this).debug(`[${K}] middleware error (not retryable)`,sF({retryOfRequestLogID:Q,url:G,durationMs:B-F,message:N.message})),N;if(Z)return w6(this).info(`[${K}] connection ${j?"timed out":"failed"} - ${w}`),w6(this).debug(`[${K}] connection ${j?"timed out":"failed"} (${w})`,sF({retryOfRequestLogID:Q,url:G,durationMs:B-F,message:N.message})),this.retryRequest(Y,Z,Q??K);if(w6(this).info(`[${K}] connection ${j?"timed out":"failed"} - error; no more retries left`),w6(this).debug(`[${K}] connection ${j?"timed out":"failed"} (error; no more retries left)`,sF({retryOfRequestLogID:Q,url:G,durationMs:B-F,message:N.message})),j)throw new Xa;if(E&&!na0(N))throw N;throw new bB({cause:N})}let O=[...N.headers.entries()].filter(([w])=>w==="request-id").map(([w,j])=>", "+w+": "+JSON.stringify(j)).join(""),L=`[${K}${H}${O}] ${J.method} ${G} ${N.ok?"succeeded":"failed"} with status ${N.status} in ${B-F}ms`;if(!N.ok){let w=await this.shouldRetry(N,Y);if(Z&&w){let P=`retrying, ${Z} attempts remaining`;return await xG$(N.body),w6(this).info(`${L} - ${P}`),w6(this).debug(`[${K}] response error (${P})`,sF({retryOfRequestLogID:Q,url:N.url,status:N.status,headers:N.headers,durationMs:B-F})),this.retryRequest(Y,Z,Q??K,N.headers)}let j=w?"error; no more retries left":"error; not retryable";w6(this).info(`${L} - ${j}`);let E=await N.text().catch((P)=>I2(P).message),z=Ba(E),T=z?void 0:E;throw w6(this).debug(`[${K}] response error (${j})`,sF({retryOfRequestLogID:Q,url:N.url,status:N.status,headers:N.headers,message:T,durationMs:Date.now()-F})),this.makeStatusError(N.status,z,T,N.headers)}return w6(this).info(L),w6(this).debug(`[${K}] response start`,sF({retryOfRequestLogID:Q,url:N.url,status:N.status,headers:N.headers,durationMs:B-F})),{response:N,options:Y,controller:U,requestLogID:K,retryOfRequestLogID:Q,startTime:F}}getAPIList($,Z,Q){return this.requestAPIList(Z,Q&&"then"in Q?Q.then((Y)=>({method:"get",path:$,...Y})):{method:"get",path:$,...Q})}requestAPIList($,Z){let Q=this.makeRequest(Z,null,void 0);return new n30(this,Q,$)}async fetchWithTimeout($,Z,Q,Y,X,J){let{signal:G,method:W,...K}=Z||{},H=this._makeAbort(Y);if(G)G.addEventListener("abort",H,{once:!0});let F=globalThis.ReadableStream&&K.body instanceof globalThis.ReadableStream||typeof K.body==="object"&&K.body!==null&&Symbol.asyncIterator in K.body,U={signal:Y.signal,...F?{duplex:"half"}:{},method:"GET",...K};if(W)U.method=W.toUpperCase();let N=this.fetch,B=async(E,z)=>{let T=setTimeout(H,Q);try{return await N.call(void 0,E,z)}finally{clearTimeout(T)}},O=X===void 0?B:async(E,z={})=>{let T=typeof E==="string"?E:E instanceof URL?E.href:E.url;if(z.headers=z.headers instanceof Headers?z.headers:new Headers(z.headers),await this.prepareRequest(z,{url:T,options:X}),J)w6(this).debug(`[${J.requestLogID}] sending request`,sF({retryOfRequestLogID:J.retryOfRequestLogID,method:z.method,url:T,options:X,headers:z.headers}));return B(E,z)},L=X?.middleware,w=this.backendMiddleware(),j=L?.length||w.length?[...this.middleware,...L??[],...w]:this.middleware;return await ta0(O,j,X,this)($,U)}async shouldRetry($,Z){let Q=this._authFlags(Z);if($.status===401&&this._authState.tokenCache&&Q.usedTokenCache&&!Q.didRefreshFor401)return Q.didRefreshFor401=!0,this._authState.tokenCache.invalidate(),!0;let Y=$.headers.get("x-should-retry");if(Y==="true")return!0;if(Y==="false")return!1;if($.status===408)return!0;if($.status===409)return!0;if($.status===429)return!0;if($.status>=500)return!0;return!1}async retryRequest($,Z,Q,Y){let X,J=Y?.get("retry-after-ms");if(J){let W=parseFloat(J);if(!Number.isNaN(W))X=W}let G=Y?.get("retry-after");if(G&&!X){let W=parseFloat(G);if(!Number.isNaN(W))X=W*1000;else X=Date.parse(G)-Date.now()}if(X===void 0){let W=$.maxRetries??this.maxRetries;X=this.calculateDefaultRetryTimeoutMillis(Z,W)}return await ZH(X),this.makeRequest($,Z-1,Q)}calculateDefaultRetryTimeoutMillis($,Z){let X=Z-$,J=Math.min(0.5*Math.pow(2,X),8),G=1-Math.random()*0.25;return J*G*1000}calculateNonstreamingTimeout($,Z){if(3600000*$/128000>600000||Z!=null&&$>Z)throw new P1("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 600000}async buildRequest($,{retryCount:Z=0}={}){let Q={...$},{method:Y,path:X,query:J,defaultBaseURL:G}=Q;if(this._authState.resolution)await this._authState.resolution;if(!this._baseURLIsExplicit&&this._authState.baseURL&&this.baseURL!==this._authState.baseURL)this.baseURL=this._authState.baseURL;let W=this.buildURL(X,J,G);if("timeout"in Q)kG$("timeout",Q.timeout);Q.timeout=Q.timeout??this.timeout;let{bodyHeaders:K,body:H}=this.buildBody({options:Q}),F=await this.buildHeaders({options:$,method:Y,bodyHeaders:K,retryCount:Z});return{req:{method:Y,headers:F,...Q.signal&&{signal:Q.signal},...globalThis.ReadableStream&&H instanceof globalThis.ReadableStream&&{duplex:"half"},...H&&{body:H},...this.fetchOptions??{},...Q.fetchOptions??{}},url:W,timeout:Q.timeout}}async buildHeaders({options:$,method:Z,bodyHeaders:Q,retryCount:Y}){let X={};if(this.idempotencyHeader&&Z!=="get"){if(!$.idempotencyKey)$.idempotencyKey=this.defaultIdempotencyKey();X[this.idempotencyHeader]=$.idempotencyKey}let J=x0([X,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(Y),...$.timeout?{"X-Stainless-Timeout":String(Math.trunc($.timeout/1000))}:{},...Da(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders($),this._options.defaultHeaders,Q,$.headers]);return this.validateHeaders(J),J.values}_makeAbort($){return()=>$.abort()}buildBody({options:{body:$,headers:Z}}){if(!$)return{bodyHeaders:void 0,body:void 0};let Q=x0([Z]);if(ArrayBuffer.isView($)||$ instanceof ArrayBuffer||$ instanceof DataView||typeof $==="string"&&Q.values.has("content-type")||globalThis.Blob&&$ instanceof globalThis.Blob||$ instanceof FormData||$ instanceof URLSearchParams||globalThis.ReadableStream&&$ instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:$};else if(typeof $==="object"&&((Symbol.asyncIterator in $)||(Symbol.iterator in $)&&("next"in $)&&typeof $.next==="function"))return{bodyHeaders:void 0,body:_30($)};else if(typeof $==="object"&&Q.values.get("content-type")==="application/x-www-form-urlencoded")return{bodyHeaders:{"content-type":"application/x-www-form-urlencoded"},body:this.stringifyQuery($)};else return a(this,MW0,"f").call(this,{body:$,headers:Q})}}var z01,P01,MW0,sW$,aW$="\\n\\nHuman:",eW$="\\n\\nAssistant:",yB;var A01=D(()=>{zJ();$H();C30();xa0();O9();Qc();$3$();E3$();M3$();p5();$e0();rW$();i30();W01();E01();G01();j01();C30();j6();aF();$H();P01=DZ,MW0=new WeakMap,z01=new WeakSet,sW$=function(){return this.baseURL!=="https://api.anthropic.com"};DZ.Anthropic=P01;DZ.HUMAN_PROMPT=aW$;DZ.AI_PROMPT=eW$;DZ.DEFAULT_TIMEOUT=600000;DZ.AnthropicError=P1;DZ.APIError=BZ;DZ.APIConnectionError=bB;DZ.APIConnectionTimeoutError=Xa;DZ.APIUserAbortError=PY;DZ.NotFoundError=Ka;DZ.ConflictError=Ha;DZ.RateLimitError=Ua;DZ.BadRequestError=Ja;DZ.AuthenticationError=Ga;DZ.InternalServerError=Na;DZ.PermissionDeniedError=Wa;DZ.UnprocessableEntityError=Fa;DZ.toFile=t30;yB=class yB extends DZ{constructor(){super(...arguments);this.completions=new qc(this),this.messages=new m2(this),this.models=new Ic(this),this.beta=new M7(this)}};yB.Completions=qc;yB.Messages=m2;yB.Models=Ic;yB.Beta=M7});var $K$=D(()=>{O9();Ea();$H()});var je0=D(()=>{A01();$e0();i30();$K$();A01();p5();O9()});var ZK$;var QK$=D(()=>{Ra0();je0();ZK$={info:{id:"anthropic",name:"Anthropic",description:"Anthropic's Claude family of models",logo:"https://assets.decocache.com/decocms/51a209ae-14bc-4b6f-8216-8eb670695bd7/Anthropic-Icon--Streamline-Svg-Logos.svg"},supportedMethods:["api-key"],create($){let Z=Ya({apiKey:$}),Q=new yB({apiKey:$});return{info:this.info,aiSdk:Z,async listModels(){let Y=[];for await(let X of Q.models.list())Y.push({modelId:X.id,providerId:"anthropic",title:X.display_name,description:null,logo:null,capabilities:[],limits:null,costs:null});return Y},async countTokens({messages:Y,modelId:X}){return{count:(await Q.messages.countTokens({messages:Y,model:X})).input_tokens}}}}}});import{z as cB}from"zod/v4";import{z as d2}from"zod/v4";import{z as MY}from"zod/v4";import{z as T8}from"zod/v4";import{z as c0}from"zod/v4";import{z as K6}from"zod/v4";import{z as Fz4}from"zod/v4";import{z as lB}from"zod/v4";import{z as Vc}from"zod/v4";import{z as BK$}from"zod/v4";import{z as i2}from"zod/v4";import{z as DK$}from"zod/v4";import{z as OK$}from"zod/v4";import{z as LK$}from"zod/v4";import{z as MX}from"zod/v4";import{z as iG}from"zod/v4";import{z as gB}from"zod/v4";import{z as hB}from"zod/v4";import{z as dw}from"zod/v4";import{z as B0}from"zod/v4";import{z as o1}from"zod/v4";import{z as I7}from"zod/v4";import{z as mw}from"zod/v4";import{z as qK$}from"zod/v4";function Sc($){return $.includes("/")?$:`models/${$}`}function YK$($){var Z,Q,Y,X,J;if($==null)return lF();let G=(Z=$.promptTokenCount)!=null?Z:0,W=(Q=$.candidatesTokenCount)!=null?Q:0,K=(Y=$.toolUsePromptTokenCount)!=null?Y:0,H=(X=$.cachedContentTokenCount)!=null?X:0,F=(J=$.thoughtsTokenCount)!=null?J:0,U=G+K;return{inputTokens:{total:U,noCache:U-H,cacheRead:H,cacheWrite:void 0},outputTokens:{total:W+F,text:W,reasoning:F},raw:$}}function yE4($){let Z=fE4.exec($);if(Z==null)return;return{mediaType:Z[1],data:Z[2]}}function gE4($){let Z=yE4($);if(Z==null)return;return{inlineData:{mimeType:Z.mediaType,data:Z.data}}}function hE4($,Z,Q,Y,X=!0){let J=[],G=[];for(let W of Q)switch(W.type){case"text":{G.push(W.text);break}case"file":{if(W.data.type==="data")J.push({inlineData:{mimeType:u9({part:W}),data:K4(W.data.data)}});else if(W.data.type==="url"){let K=gE4(W.data.url.toString());if(K!=null)J.push(K);else G.push(JSON.stringify(W))}else G.push(JSON.stringify(W));break}default:{G.push(JSON.stringify(W));break}}$.push({functionResponse:{...X&&Y!=null?{id:Y}:{},name:Z,response:{name:Z,content:G.length>0?G.join(`
|
|
963
963
|
`):"Tool executed successfully."},...J.length>0?{parts:J}:{}}})}function uE4($,Z,Q,Y,X=!0){for(let J of Q)switch(J.type){case"text":$.push({functionResponse:{...X&&Y!=null?{id:Y}:{},name:Z,response:{name:Z,content:J.text}}});break;case"file":{if(J.data.type==="data"){let G=_Q(J.mediaType);$.push({inlineData:{mimeType:u9({part:J}),data:K4(J.data.data)}},{text:`Tool executed successfully and returned this ${G==="image"?"image":"file"} as a response`})}else $.push({text:JSON.stringify(J)});break}default:$.push({text:JSON.stringify(J)});break}}function lE4($,Z){var Q,Y,X,J,G,W;let K=[],H=[],F=!0,U=(Q=Z==null?void 0:Z.isGemmaModel)!=null?Q:!1,N=(Y=Z==null?void 0:Z.isGemini3Model)!=null?Y:!1,B=Z==null?void 0:Z.onWarning,O=(X=Z==null?void 0:Z.providerOptionsNames)!=null?X:["google"],L=!O.includes("google"),w=(J=Z==null?void 0:Z.supportsFunctionResponseParts)!=null?J:!0,j=(G=Z==null?void 0:Z.includeFunctionCallIds)!=null?G:!0,E=!1,z=[],T=(P)=>{return z.push(P),E=!0,xE4},A=(P)=>{var q,x,_,V,y;for(let g of O){let l=(q=P.providerOptions)==null?void 0:q[g];if(l!=null)return l}if(L)return(x=P.providerOptions)==null?void 0:x.google;return(y=(_=P.providerOptions)==null?void 0:_.googleVertex)!=null?y:(V=P.providerOptions)==null?void 0:V.vertex};for(let{role:P,content:q}of $)switch(P){case"system":{if(!F)throw new s1({functionality:"system messages are only supported at the beginning of the conversation"});K.push({text:q});break}case"user":{F=!1;let x=[];for(let _ of q)switch(_.type){case"text":{x.push({text:_.text});break}case"file":{switch(_.data.type){case"url":{x.push({fileData:{mimeType:u9({part:_}),fileUri:_.data.url.toString()}});break}case"reference":{if(L)throw new s1({functionality:"file parts with provider references"});x.push({fileData:{mimeType:u9({part:_}),fileUri:vQ({reference:_.data.reference,provider:"google"})}});break}case"text":{x.push({inlineData:{mimeType:jJ(_.mediaType)?_.mediaType:"text/plain",data:K4(new TextEncoder().encode(_.data.text))}});break}case"data":{x.push({inlineData:{mimeType:u9({part:_}),data:K4(_.data.data)}});break}}break}}H.push({role:"user",parts:x});break}case"assistant":{F=!1;let x=!1;H.push({role:"model",parts:q.map((_)=>{let V=A(_),y=(V==null?void 0:V.thoughtSignature)!=null?String(V.thoughtSignature):void 0;switch(_.type){case"text":return _.text.length===0?void 0:{text:_.text,thoughtSignature:y};case"reasoning":return _.text.length===0?void 0:{text:_.text,thought:!0,thoughtSignature:y};case"reasoning-file":{switch(_.data.type){case"url":throw new s1({functionality:"File data URLs in assistant messages are not supported"});case"data":return{inlineData:{mimeType:_.mediaType,data:K4(_.data.data)},thought:!0,thoughtSignature:y}}break}case"file":{switch(_.data.type){case"url":throw new s1({functionality:"File data URLs in assistant messages are not supported"});case"reference":{if(L)throw new s1({functionality:"file parts with provider references"});return{fileData:{mimeType:_.mediaType,fileUri:vQ({reference:_.data.reference,provider:"google"})},...(V==null?void 0:V.thought)===!0?{thought:!0}:{},thoughtSignature:y}}case"text":return{inlineData:{mimeType:jJ(_.mediaType)?_.mediaType:"text/plain",data:K4(new TextEncoder().encode(_.data.text))},...(V==null?void 0:V.thought)===!0?{thought:!0}:{},thoughtSignature:y};case"data":return{inlineData:{mimeType:_.mediaType,data:K4(_.data.data)},...(V==null?void 0:V.thought)===!0?{thought:!0}:{},thoughtSignature:y}}break}case"tool-call":{let g=(V==null?void 0:V.serverToolCallId)!=null?String(V.serverToolCallId):void 0,l=(V==null?void 0:V.serverToolType)!=null?String(V.serverToolType):void 0,i=g!=null&&l!=null,p=!i&&y==null&&x,U0=y!=null?y:N&&!p?T(_.toolName):void 0;if(!i&&y!=null)x=!0;if(i)return{toolCall:{toolType:l,args:typeof _.input==="string"?EJ(_.input):_.input,id:g},thoughtSignature:U0};return{functionCall:{...j&&_.toolCallId!=null?{id:_.toolCallId}:{},name:_.toolName,args:_.input},thoughtSignature:U0}}case"tool-result":{let g=(V==null?void 0:V.serverToolCallId)!=null?String(V.serverToolCallId):void 0,l=(V==null?void 0:V.serverToolType)!=null?String(V.serverToolType):void 0;if(g&&l)return{toolResponse:{toolType:l,response:_.output.type==="json"?_.output.value:{},id:g},thoughtSignature:y};return}}}).filter((_)=>_!==void 0)});break}case"tool":{F=!1;let x=[];for(let _ of q){if(_.type==="tool-approval-response")continue;let V=A(_),y=(V==null?void 0:V.serverToolCallId)!=null?String(V.serverToolCallId):void 0,g=(V==null?void 0:V.serverToolType)!=null?String(V.serverToolType):void 0;if(y&&g){let i=(V==null?void 0:V.thoughtSignature)!=null?String(V.thoughtSignature):void 0;if(H.length>0){let p=H[H.length-1];if(p.role==="model"){p.parts.push({toolResponse:{toolType:g,response:_.output.type==="json"?_.output.value:{},id:y},thoughtSignature:i});continue}}}let l=_.output;if(l.type==="content")if(w)hE4(x,_.toolName,l.value,_.toolCallId,j);else uE4(x,_.toolName,l.value,_.toolCallId,j);else x.push({functionResponse:{...j&&_.toolCallId!=null?{id:_.toolCallId}:{},name:_.toolName,response:{name:_.toolName,content:l.type==="execution-denied"?(W=l.reason)!=null?W:"Tool call execution denied.":l.value}}})}H.push({role:"user",parts:x});break}}if(U&&K.length>0&&H.length>0&&H[0].role==="user"){let P=K.map((q)=>q.text).join(`
|
|
964
964
|
|
|
965
965
|
`);H[0].parts.unshift({text:P+`
|
|
@@ -989,7 +989,7 @@ ${G}
|
|
|
989
989
|
${Z}:`]}}function KH$($){switch($){case"stop":return"stop";case"length":return"length";case"content_filter":return"content-filter";case"function_call":case"tool_calls":return"tool-calls";default:return"other"}}function t24($){return!("error"in $)&&$.choices.some((Z)=>Z.text.length>0)}function l01($){let Z=encodeURIComponent($);return Z==="."?"%252E":Z===".."?"%252E%252E":Z}function YA4($){return QA4.some((Z)=>$.startsWith(Z))}function XA4($){var Z;return(Z=ZA4[$])!=null?Z:$.startsWith("gpt-image-")?10:1}function NH$($,Z,Q){if($==null)return{};let Y={};if($.image_tokens!=null){let X=Math.floor($.image_tokens/Q),J=$.image_tokens-X*(Q-1);Y.imageTokens=Z===Q-1?J:X}if($.text_tokens!=null){let X=Math.floor($.text_tokens/Q),J=$.text_tokens-X*(Q-1);Y.textTokens=Z===Q-1?J:X}return Y}async function KA4($,Z){if(!$)return;if($.type==="url")return es($.url,{abortSignal:Z});let Q=$.data instanceof Uint8Array?$.data:h9($.data);return new Blob([Q],{type:$.mediaType})}function a01($){var Z,Q,Y,X,J,G;if($==null)return lF();let{input_tokens:W,output_tokens:K}=$,H=(Q=(Z=$.input_tokens_details)==null?void 0:Z.cached_tokens)!=null?Q:0,F=(X=(Y=$.input_tokens_details)==null?void 0:Y.cache_write_tokens)!=null?X:void 0,U=(G=(J=$.output_tokens_details)==null?void 0:J.reasoning_tokens)!=null?G:0;return{inputTokens:{total:W,noCache:W-H-(F!=null?F:0),cacheRead:H,cacheWrite:F},outputTokens:{total:K,text:K-U,reasoning:U},raw:$}}function yW0({finishReason:$,hasFunctionCall:Z}){switch($){case void 0:case null:return Z?"tool-calls":"stop";case"max_output_tokens":return"length";case"content_filter":return"content-filter";default:return Z?"tool-calls":"other"}}function GT4($){if(typeof $.type!=="string"||!XT4.has($.type))return!1;if($.type!=="response.output_item.added"&&$.type!=="response.output_item.done")return!0;if(!r7($.item)||typeof $.item.type!=="string")return!0;return JT4.has($.item.type)}function KT4($){if($.provider==null)throw Error("OpenAI model is missing provider after workflow deserialization.");return{...$,provider:$.provider,url:typeof $.url==="function"?$.url:({path:Z})=>{if($.baseURL==null)throw Error("OpenAI model is missing baseURL after workflow deserialization.");return`${$.baseURL}${Z}`},headers:typeof $.headers==="function"?$.headers:$.headers==null?void 0:()=>$.headers}}function J11({providerOptions:$,providerOptionsName:Z}){var Q;let Y=(Q=$==null?void 0:$[Z])==null?void 0:Q.parallelToolCall;if(!WW(Y)||typeof Y.itemId!=="string"||typeof Y.toolCallId!=="string"||typeof Y.toolName!=="string"||typeof Y.input!=="string"||typeof Y.index!=="number"||!Number.isInteger(Y.index)||typeof Y.count!=="number"||!Number.isInteger(Y.count)||Y.index<0||Y.count<=Y.index)return;return Y}function G11({toolName:$,tools:Z}){return $===DH$&&!Z.some((Q)=>Q.name===DH$)}async function LH$({toolCall:$,tools:Z,providerOptionsName:Q,itemId:Y}){if(!G11({toolName:$.toolName,tools:Z}))return;let X=await I5({text:$.input});if(!X.success||!WW(X.value))return;let J=X.value.tool_uses;if(!Array.isArray(J)||J.length===0)return;let G=new Set(Z.map((K)=>K.name)),W=[];for(let[K,H]of J.entries()){if(!WW(H))return;let{recipient_name:F,parameters:U}=H;if(typeof F!=="string"||!F.startsWith(OH$)||!WW(U))return;let N=F.slice(OH$.length);if(N.length===0||!G.has(N))return;W.push({type:"tool-call",toolCallId:`${$.toolCallId}_${K}`,toolName:N,input:JSON.stringify(U),providerMetadata:{[Q]:{parallelToolCall:{itemId:Y,toolCallId:$.toolCallId,toolName:$.toolName,input:$.input,index:K,count:J.length}}}})}return W}function HT4($){return JSON.stringify($===void 0?{}:$)}function wH$($){return $==null?void 0:$.type==="program"?{type:"program",caller_id:$.callerId}:$}async function jH$({output:$,toolName:Z,outputSchemaToolNames:Q,promptCacheBreakpoint:Y,providerOptionsName:X,warnings:J}){var G;let W=Q==null?void 0:Q.has(Z),K=(H)=>Y==null?H:[{type:"input_text",text:H,prompt_cache_breakpoint:Y}];switch($.type){case"text":case"error-text":return K(W?JSON.stringify($.value):$.value);case"execution-denied":{let H=(G=$.reason)!=null?G:"Tool call execution denied.";return K(W?JSON.stringify(H):H)}case"json":case"error-json":return K(JSON.stringify($.value));case"content":return $.value.map((H)=>{var F,U,N;let B=pw(H.providerOptions,X);switch(H.type){case"text":return{type:"input_text",text:H.text,...B!=null&&{prompt_cache_breakpoint:B}};case"file":{let O=_Q(H.mediaType),L=(U=(F=H.providerOptions)==null?void 0:F[X])==null?void 0:U.imageDetail;if(H.data.type==="reference"){let w=vQ({reference:H.data.reference,provider:X});if(O==="image")return{type:"input_image",file_id:w,detail:L,...B!=null&&{prompt_cache_breakpoint:B}};return{type:"input_file",file_id:w,...B!=null&&{prompt_cache_breakpoint:B}}}if(H.data.type==="data"){let w=u9({part:H});if(O==="image")return{type:"input_image",image_url:`data:${w};base64,${K4(H.data.data)}`,detail:L,...B!=null&&{prompt_cache_breakpoint:B}};return{type:"input_file",filename:(N=H.filename)!=null?N:"data",file_data:`data:${w};base64,${K4(H.data.data)}`,...B!=null&&{prompt_cache_breakpoint:B}}}if(H.data.type==="url"){if(O==="image")return{type:"input_image",image_url:H.data.url.toString(),detail:L,...B!=null&&{prompt_cache_breakpoint:B}};return{type:"input_file",file_url:H.data.url.toString(),...B!=null&&{prompt_cache_breakpoint:B}}}J.push({type:"other",message:`unsupported tool content part type: ${H.type} with data type: ${H.data.type}`});return}default:{J.push({type:"other",message:`unsupported tool content part type: ${H.type}`});return}}}).filter(qw)}}function W11($,Z){return $.itemId===Z.itemId&&$.toolCallId===Z.toolCallId&&$.toolName===Z.toolName&&$.input===Z.input&&$.count===Z.count}function FT4({prompt:$,providerOptionsName:Z}){let Q=new Map;for(let X of $){if(X.role!=="tool")continue;for(let J of X.content){if(J.type!=="tool-result")continue;let G=J11({providerOptions:J.providerOptions,providerOptionsName:Z});if(G==null)continue;let W=Q.get(G.toolCallId);if(W==null){Q.set(G.toolCallId,{metadata:G,results:new Map([[G.index,J]]),invalid:!1});continue}if(!W11(W.metadata,G)||W.results.has(G.index)){W.invalid=!0;continue}W.results.set(G.index,J)}}let Y=new Map;for(let[X,J]of Q){if(J.invalid||J.results.size!==J.metadata.count)continue;let G=Array.from({length:J.metadata.count},(W,K)=>J.results.get(K));if(G.every(qw))Y.set(X,{metadata:J.metadata,results:G})}return Y}function pw($,Z){var Q;return(Q=$==null?void 0:$[Z])==null?void 0:Q.promptCacheBreakpoint}function d01({output:$,toolResultProviderOptions:Z,providerOptionsName:Q}){var Y;return $.type==="content"?void 0:(Y=pw($.providerOptions,Q))!=null?Y:pw(Z,Q)}function EH$($,Z){if(!Z)return!1;return Z.some((Q)=>$.startsWith(Q))}async function UT4({prompt:$,toolNameMapping:Z,systemMessageMode:Q,providerOptionsName:Y,explicitMessageItemType:X=!1,fileIdPrefixes:J,passThroughUnsupportedFiles:G=!1,store:W,hasConversation:K=!1,hasPreviousResponseId:H=!1,hasLocalShellTool:F=!1,hasShellTool:U=!1,hasApplyPatchTool:N=!1,hasComputerTool:B=!1,toolSearchToolName:O,customProviderToolNames:L,outputSchemaToolNames:w}){var j,E,z,T,A,P,q,x,_,V,y,g,l,i,p,U0,v0,G0,N0,o,$0,Z0,r,Y0,d0,S0,W1,u0,L0,j0,l0,O1,Q1,_0,m0,i0,a0,X0,Q0,K0,H0,R0;let A0=[],D1=[],x$=new Set,i$=new Set,w8=K||H?FT4({prompt:$,providerOptionsName:Y}):new Map,K8=new Set,z5=new Set;for(let{role:h8,content:p6,providerOptions:A9}of $)switch(h8){case"system":{switch(Q){case"system":{let o0=pw(A9,Y);A0.push({...X&&{type:"message"},role:"system",content:o0==null?p6:[{type:"input_text",text:p6,prompt_cache_breakpoint:o0}]});break}case"developer":{let o0=pw(A9,Y);A0.push({...X&&{type:"message"},role:"developer",content:o0==null?p6:[{type:"input_text",text:p6,prompt_cache_breakpoint:o0}]});break}case"remove":{D1.push({type:"other",message:"system messages are removed for this model"});break}default:throw Error(`Unsupported system message mode: ${Q}`)}break}case"user":{A0.push({...X&&{type:"message"},role:"user",content:p6.map((o0,E1)=>{var h$,c1,K$,f8,Z5;switch(o0.type){case"text":{let F4=pw(o0.providerOptions,Y);return{type:"input_text",text:o0.text,...F4!=null&&{prompt_cache_breakpoint:F4}}}case"file":{let F4=pw(o0.providerOptions,Y);switch(o0.data.type){case"reference":{let Q$=vQ({reference:o0.data.reference,provider:Y});if(_Q(o0.mediaType)==="image")return{type:"input_image",file_id:Q$,detail:(c1=(h$=o0.providerOptions)==null?void 0:h$[Y])==null?void 0:c1.imageDetail,...F4!=null&&{prompt_cache_breakpoint:F4}};return{type:"input_file",file_id:Q$,...F4!=null&&{prompt_cache_breakpoint:F4}}}case"text":throw new s1({functionality:"text file parts"});case"url":case"data":if(_Q(o0.mediaType)==="image")return{type:"input_image",...o0.data.type==="url"?{image_url:o0.data.url.toString()}:typeof o0.data.data==="string"&&EH$(o0.data.data,J)?{file_id:o0.data.data}:{image_url:`data:${u9({part:o0})};base64,${K4(o0.data.data)}`},detail:(f8=(K$=o0.providerOptions)==null?void 0:K$[Y])==null?void 0:f8.imageDetail,...F4!=null&&{prompt_cache_breakpoint:F4}};else{if(o0.data.type==="url")return{type:"input_file",file_url:o0.data.url.toString(),...F4!=null&&{prompt_cache_breakpoint:F4}};let I8=u9({part:o0});if(I8!=="application/pdf"&&!G)throw new s1({functionality:`file part media type ${I8}`});return{type:"input_file",...typeof o0.data.data==="string"&&EH$(o0.data.data,J)?{file_id:o0.data.data}:{filename:(Z5=o0.filename)!=null?Z5:I8==="application/pdf"?`part-${E1}.pdf`:`part-${E1}`,file_data:`data:${I8};base64,${K4(o0.data.data)}`},...F4!=null&&{prompt_cache_breakpoint:F4}}}}}}})});break}case"assistant":{let o0={};for(let E1 of p6)switch(E1.type){case"text":{let h$=(j=E1.providerOptions)==null?void 0:j[Y],c1=h$==null?void 0:h$.itemId,K$=h$==null?void 0:h$.phase;if(K&&c1!=null)break;if(W&&c1!=null){A0.push({type:"item_reference",id:c1});break}A0.push({...X&&{type:"message"},role:"assistant",content:E1.text,...K$!=null&&{phase:K$}});break}case"tool-call":{let h$=J11({providerOptions:E1.providerOptions,providerOptionsName:Y}),c1=h$==null?void 0:w8.get(h$.toolCallId);if(h$!=null&&c1!=null&&W11(c1.metadata,h$)){if(!K8.has(c1.metadata.toolCallId)){if(K8.add(c1.metadata.toolCallId),!K)A0.push({type:"function_call",call_id:c1.metadata.toolCallId,name:c1.metadata.toolName,arguments:c1.metadata.input})}break}let K$=(P=(z=(E=E1.providerOptions)==null?void 0:E[Y])==null?void 0:z.itemId)!=null?P:(A=(T=E1.providerMetadata)==null?void 0:T[Y])==null?void 0:A.itemId,f8=(y=(x=(q=E1.providerOptions)==null?void 0:q[Y])==null?void 0:x.namespace)!=null?y:(V=(_=E1.providerMetadata)==null?void 0:_[Y])==null?void 0:V.namespace,Z5=(U0=(l=(g=E1.providerOptions)==null?void 0:g[Y])==null?void 0:l.async)!=null?U0:(p=(i=E1.providerMetadata)==null?void 0:i[Y])==null?void 0:p.async,F4=(G0=(v0=E1.providerOptions)==null?void 0:v0[Y])==null?void 0:G0.caller;if((F4==null?void 0:F4.type)==="program")i$.add(E1.toolCallId);if(K&&K$!=null)break;let Q$=Z.toProviderToolName(E1.toolName);if(E1.toolName===O){if(W&&K$!=null){A0.push({type:"item_reference",id:K$});break}let s$=typeof E1.input==="string"?await ts({text:E1.input,schema:o01}):await G8({value:E1.input,schema:o01}),N$=s$.call_id!=null?"client":"server";A0.push({type:"tool_search_call",id:K$!=null?K$:E1.toolCallId,execution:N$,call_id:(N0=s$.call_id)!=null?N0:null,status:"completed",arguments:s$.arguments});break}if(Q$==="programmatic_tool_calling"){if(W&&K$!=null){A0.push({type:"item_reference",id:K$});break}let s$=await G8({value:E1.input,schema:tH$});A0.push({type:"program",id:K$!=null?K$:E1.toolCallId,call_id:E1.toolCallId,code:s$.code,fingerprint:s$.fingerprint});break}if(E1.providerExecuted){if(W&&K$!=null)A0.push({type:"item_reference",id:K$});if(W||!U||Q$!=="shell")break}let I8=F&&Q$==="local_shell"||U&&Q$==="shell"||N&&Q$==="apply_patch"||B&&Q$==="computer"||((o=L==null?void 0:L.has(Q$))!=null?o:!1);if(H&&W&&K$!=null&&I8)break;if(W&&K$!=null&&I8){A0.push({type:"item_reference",id:K$});break}if(F&&Q$==="local_shell"){let s$=await G8({value:E1.input,schema:iH$});A0.push({type:"local_shell_call",call_id:E1.toolCallId,id:K$,action:{type:"exec",command:s$.action.command,timeout_ms:s$.action.timeoutMs,user:s$.action.user,working_directory:s$.action.workingDirectory,env:s$.action.env}});break}if(U&&Q$==="shell"){let s$=await G8({value:E1.input,schema:nH$});A0.push({type:"shell_call",call_id:E1.toolCallId,id:K$,status:"completed",action:{commands:s$.action.commands,timeout_ms:s$.action.timeoutMs,max_output_length:s$.action.maxOutputLength}});break}if(N&&Q$==="apply_patch"){let s$=await G8({value:E1.input,schema:gH$});A0.push({type:"apply_patch_call",call_id:s$.callId,id:K$,status:"completed",operation:s$.operation});break}if(B&&Q$==="computer"){let s$=await G8({value:E1.input,schema:lH$});A0.push({type:"computer_call",call_id:E1.toolCallId,id:K$,status:s$.status,actions:s$.actions.map((N$)=>{switch(N$.type){case"click":case"double_click":case"move":return{...N$,keys:N$.keys};case"drag":return{...N$,keys:N$.keys};case"scroll":return{type:"scroll",x:N$.x,y:N$.y,scroll_x:N$.scrollX,scroll_y:N$.scrollY,keys:N$.keys};default:return N$}}),pending_safety_checks:s$.pendingSafetyChecks.map((N$)=>({id:N$.id,code:N$.code,message:N$.message}))});break}if(L==null?void 0:L.has(Q$)){A0.push({type:"custom_tool_call",call_id:E1.toolCallId,name:Q$,input:typeof E1.input==="string"?E1.input:JSON.stringify(E1.input),...Z5!=null&&{async:Z5},id:K$});break}A0.push({type:"function_call",call_id:E1.toolCallId,name:Q$,arguments:HT4(E1.input),...Z5!=null&&{async:Z5},...f8!=null&&{namespace:f8},...F4!=null&&{caller:wH$(F4)}});break}case"tool-result":{if(E1.output.type==="execution-denied"||E1.output.type==="json"&&typeof E1.output.value==="object"&&E1.output.value!=null&&"type"in E1.output.value&&E1.output.value.type==="execution-denied")break;if(K)break;let h$=Z.toProviderToolName(E1.toolName);if(E1.toolName===O){let c1=(S0=(d0=(Z0=($0=E1.providerOptions)==null?void 0:$0[Y])==null?void 0:Z0.itemId)!=null?d0:(Y0=(r=E1.providerMetadata)==null?void 0:r[Y])==null?void 0:Y0.itemId)!=null?S0:E1.toolCallId;if(W)A0.push({type:"item_reference",id:c1});else if(E1.output.type==="json"){let K$=await G8({value:E1.output.value,schema:r01});A0.push({type:"tool_search_output",id:c1,execution:"server",call_id:null,status:"completed",tools:K$.tools})}break}if(h$==="programmatic_tool_calling"){let c1=(O1=(l0=(u0=(W1=E1.providerOptions)==null?void 0:W1[Y])==null?void 0:u0.itemId)!=null?l0:(j0=(L0=E1.providerMetadata)==null?void 0:L0[Y])==null?void 0:j0.itemId)!=null?O1:E1.toolCallId;if(W)A0.push({type:"item_reference",id:c1});else if(E1.output.type==="json"){let K$=await G8({value:E1.output.value,schema:oH$});A0.push({type:"program_output",id:c1,call_id:E1.toolCallId,result:K$.result,status:K$.status})}break}if(U&&h$==="shell"){if(E1.output.type==="json"){let c1=await G8({value:E1.output.value,schema:t01});A0.push({type:"shell_call_output",call_id:E1.toolCallId,output:c1.output.map((K$)=>({stdout:K$.stdout,stderr:K$.stderr,outcome:K$.outcome.type==="timeout"?{type:"timeout"}:{type:"exit",exit_code:K$.outcome.exitCode}}))})}break}if(W){let c1=(m0=(_0=(Q1=E1.providerOptions)==null?void 0:Q1[Y])==null?void 0:_0.itemId)!=null?m0:E1.toolCallId;A0.push({type:"item_reference",id:c1})}else D1.push({type:"other",message:`Results for OpenAI tool ${E1.toolName} are not sent to the API when store is false`});break}case"reasoning":{let h$=await C$({provider:Y,providerOptions:E1.providerOptions,schema:NT4}),c1=h$==null?void 0:h$.itemId;if((K||H)&&c1!=null)break;if(c1!=null){let K$=o0[c1];if(W){if(K$===void 0)A0.push({type:"item_reference",id:c1}),o0[c1]={type:"reasoning",id:c1,summary:[]}}else{let f8=[];if(E1.text.length>0)f8.push({type:"summary_text",text:E1.text});else if(K$!==void 0)D1.push({type:"other",message:`Cannot append empty reasoning part to existing reasoning sequence. Skipping reasoning part: ${JSON.stringify(E1)}.`});if(K$===void 0)o0[c1]={type:"reasoning",id:c1,encrypted_content:h$==null?void 0:h$.reasoningEncryptedContent,summary:f8},A0.push(o0[c1]);else if(K$.summary.push(...f8),(h$==null?void 0:h$.reasoningEncryptedContent)!=null)K$.encrypted_content=h$.reasoningEncryptedContent}}else{let K$=h$==null?void 0:h$.reasoningEncryptedContent;if(K$!=null){let f8=[];if(E1.text.length>0)f8.push({type:"summary_text",text:E1.text});A0.push({type:"reasoning",encrypted_content:K$,summary:f8})}else D1.push({type:"other",message:`Non-OpenAI reasoning parts are not supported. Skipping reasoning part: ${JSON.stringify(E1)}.`})}break}case"custom":{if(E1.kind==="openai.compaction"){let h$=(i0=E1.providerOptions)==null?void 0:i0[Y],c1=h$==null?void 0:h$.itemId;if(K&&c1!=null)break;if(W&&c1!=null){A0.push({type:"item_reference",id:c1});break}let K$=h$==null?void 0:h$.encryptedContent;if(c1!=null)A0.push({type:"compaction",id:c1,encrypted_content:K$})}break}}break}case"tool":{for(let o0 of p6){if(o0.type==="tool-approval-response"){let Q$=o0;if(x$.has(Q$.approvalId))continue;if(x$.add(Q$.approvalId),W&&!K&&!H)A0.push({type:"item_reference",id:Q$.approvalId});A0.push({type:"mcp_approval_response",approval_request_id:Q$.approvalId,approve:Q$.approved});continue}let E1=J11({providerOptions:o0.providerOptions,providerOptionsName:Y}),h$=E1==null?void 0:w8.get(E1.toolCallId);if(E1!=null&&h$!=null&&W11(h$.metadata,E1)){if(!z5.has(h$.metadata.toolCallId)){z5.add(h$.metadata.toolCallId);let Q$=await Promise.all(h$.results.map(async(N$)=>{let K9=d01({output:N$.output,toolResultProviderOptions:N$.providerOptions,providerOptionsName:Y});return{output:await jH$({output:N$.output,toolName:N$.toolName,outputSchemaToolNames:w,providerOptionsName:Y,warnings:D1}),promptCacheBreakpoint:K9}})),I8=Q$.map(({output:N$})=>typeof N$==="string"?N$:JSON.stringify(N$)),s$=Q$.some(({promptCacheBreakpoint:N$})=>N$!=null);A0.push({type:"function_call_output",call_id:h$.metadata.toolCallId,output:s$?I8.map((N$,K9)=>({type:"input_text",text:K9===0?N$:`
|
|
990
990
|
${N$}`,...Q$[K9].promptCacheBreakpoint!=null&&{prompt_cache_breakpoint:Q$[K9].promptCacheBreakpoint}})):I8.join(`
|
|
991
991
|
`)})}continue}let c1=o0.output;if(c1.type==="execution-denied"){if((X0=(a0=c1.providerOptions)==null?void 0:a0.openai)==null?void 0:X0.approvalId)continue}let K$=Z.toProviderToolName(o0.toolName);if(o0.toolName===O&&c1.type==="json"){let Q$=await G8({value:c1.value,schema:r01});A0.push({type:"tool_search_output",execution:"client",call_id:o0.toolCallId,status:"completed",tools:Q$.tools});continue}if(F&&K$==="local_shell"&&c1.type==="json"){let Q$=await G8({value:c1.value,schema:pH$});A0.push({type:"local_shell_call_output",call_id:o0.toolCallId,output:Q$.output});continue}if(U&&K$==="shell"&&c1.type==="json"){let Q$=await G8({value:c1.value,schema:t01});A0.push({type:"shell_call_output",call_id:o0.toolCallId,output:Q$.output.map((I8)=>({stdout:I8.stdout,stderr:I8.stderr,outcome:I8.outcome.type==="timeout"?{type:"timeout"}:{type:"exit",exit_code:I8.outcome.exitCode}}))});continue}if(N&&o0.toolName==="apply_patch"&&c1.type==="json"){let Q$=await G8({value:c1.value,schema:hH$});A0.push({type:"apply_patch_call_output",call_id:o0.toolCallId,status:Q$.status,output:Q$.output});continue}if(B&&K$==="computer"&&c1.type==="json"){let Q$=await G8({value:c1.value,schema:cH$});A0.push({type:"computer_call_output",call_id:o0.toolCallId,output:{type:"computer_screenshot",image_url:Q$.output.imageUrl,file_id:Q$.output.fileId,detail:Q$.output.detail},acknowledged_safety_checks:(Q0=Q$.acknowledgedSafetyChecks)==null?void 0:Q0.map((I8)=>({id:I8.id,code:I8.code,message:I8.message}))});continue}if(L==null?void 0:L.has(K$)){let Q$=d01({output:c1,toolResultProviderOptions:o0.providerOptions,providerOptionsName:Y}),I8=(N$)=>Q$==null?N$:[{type:"input_text",text:N$,prompt_cache_breakpoint:Q$}],s$;switch(c1.type){case"text":case"error-text":s$=I8(c1.value);break;case"execution-denied":s$=I8((K0=c1.reason)!=null?K0:"Tool call execution denied.");break;case"json":case"error-json":s$=I8(JSON.stringify(c1.value));break;case"content":s$=c1.value.map((N$)=>{var K9,BQ,MZ;let e=pw(N$.providerOptions,Y);switch(N$.type){case"text":return{type:"input_text",text:N$.text,...e!=null&&{prompt_cache_breakpoint:e}};case"file":{let V0=_Q(N$.mediaType),I1=(BQ=(K9=N$.providerOptions)==null?void 0:K9[Y])==null?void 0:BQ.imageDetail;if(N$.data.type==="data"){let u8=u9({part:N$});if(V0==="image")return{type:"input_image",image_url:`data:${u8};base64,${K4(N$.data.data)}`,detail:I1,...e!=null&&{prompt_cache_breakpoint:e}};return{type:"input_file",filename:(MZ=N$.filename)!=null?MZ:"data",file_data:`data:${u8};base64,${K4(N$.data.data)}`,...e!=null&&{prompt_cache_breakpoint:e}}}if(N$.data.type==="url"){if(V0==="image")return{type:"input_image",image_url:N$.data.url.toString(),detail:I1,...e!=null&&{prompt_cache_breakpoint:e}};return{type:"input_file",file_url:N$.data.url.toString(),...e!=null&&{prompt_cache_breakpoint:e}}}D1.push({type:"other",message:`unsupported custom tool content part type: ${N$.type} with data type: ${N$.data.type}`});return}default:D1.push({type:"other",message:`unsupported custom tool content part type: ${N$.type}`});return}}).filter(qw);break;default:s$=""}A0.push({type:"custom_tool_call_output",call_id:o0.toolCallId,output:s$});continue}let f8=(R0=(H0=o0.providerOptions)==null?void 0:H0[Y])==null?void 0:R0.caller;if(c1.type==="execution-denied"&&((f8==null?void 0:f8.type)==="program"||i$.has(o0.toolCallId)))throw new s1({functionality:"execution-denied results for programmatic tool calls"});let Z5=await jH$({output:c1,toolName:o0.toolName,outputSchemaToolNames:w,promptCacheBreakpoint:d01({output:c1,toolResultProviderOptions:o0.providerOptions,providerOptionsName:Y}),providerOptionsName:Y,warnings:D1}),F4=wH$(f8);A0.push({type:"function_call_output",call_id:o0.toolCallId,output:Z5,...F4!=null&&{caller:F4}})}break}default:throw Error(`Unsupported role: ${h8}`)}if(!W&&A0.some((h8)=>("type"in h8)&&h8.type==="reasoning"&&h8.encrypted_content==null))D1.push({type:"other",message:"Reasoning parts without encrypted content are not supported when store is false. Skipping reasoning parts."}),A0=A0.filter((h8)=>!("type"in h8)||h8.type!=="reasoning"||h8.encrypted_content!=null);return{input:A0,warnings:D1}}async function DT4({tools:$,toolChoice:Z,allowedTools:Q,toolNameMapping:Y,customProviderToolNames:X,outputSchemaToolNames:J,supportsAsyncToolCalling:G=!0}){var W,K,H,F;$=($==null?void 0:$.length)?$:void 0;let U=[];if($==null)return{tools:void 0,toolChoice:void 0,toolWarnings:U};let N=[],B=new Map,O=X!=null?X:new Set,L=new Map,w=new Map,j=(z,T,A)=>{if(L.set(z,T),A==null||A===z)return;let P=w.get(A);if(P==null)w.set(A,T);else if(P!=="ambiguous"&&!OT4(P,T))w.set(A,"ambiguous")};for(let z of $)switch(z.type){case"function":{let T=(W=z.providerOptions)==null?void 0:W.openai;if((T==null?void 0:T.outputSchema)!=null)J==null||J.add(z.name);let A=wT4({tool:z,options:T,toolWarnings:U,async:AH$({value:T==null?void 0:T.async,supportsAsyncToolCalling:G,toolName:z.name,toolWarnings:U})}),P=T==null?void 0:T.namespace;if(P==null)N.push(A);else{let q=B.get(P.name);if(q==null)q={type:"namespace",name:P.name,description:P.description,tools:[]},B.set(P.name,q),N.push(q);else if(q.description!==P.description)throw new s1({functionality:`conflicting descriptions for OpenAI tool namespace "${P.name}"`});q.tools.push(A)}j(z.name,P!=null?{supported:!1,reason:"tools inside an OpenAI tool namespace are not visible to tool_choice.allowed_tools"}:(T==null?void 0:T.deferLoading)===!0?{supported:!1,reason:"deferred tools are not visible to tool_choice.allowed_tools"}:{supported:!0,entry:{type:"function",name:z.name}},void 0);break}case"provider":{let T=N.length;switch(z.id){case"openai.file_search":{let A=await G8({value:z.args,schema:TA4});N.push({type:"file_search",vector_store_ids:A.vectorStoreIds,max_num_results:A.maxNumResults,ranking_options:A.ranking?{ranker:A.ranking.ranker,score_threshold:A.ranking.scoreThreshold}:void 0,filters:A.filters});break}case"openai.local_shell":{N.push({type:"local_shell"});break}case"openai.shell":{let A=await G8({value:z.args,schema:vA4});N.push({type:"shell",...A.environment&&{environment:jT4(A.environment)}});break}case"openai.apply_patch":{N.push({type:"apply_patch"});break}case"openai.computer":{N.push({type:"computer"});break}case"openai.web_search_preview":{let A=await G8({value:z.args,schema:mA4});N.push({type:"web_search_preview",search_context_size:A.searchContextSize,user_location:A.userLocation});break}case"openai.web_search":{let A=await G8({value:z.args,schema:gA4});N.push({type:"web_search",filters:A.filters!=null?{allowed_domains:A.filters.allowedDomains,blocked_domains:A.filters.blockedDomains}:void 0,external_web_access:A.externalWebAccess,search_context_size:A.searchContextSize,user_location:A.userLocation});break}case"openai.code_interpreter":{let A=await G8({value:z.args,schema:BA4});N.push({type:"code_interpreter",container:A.container==null?{type:"auto",file_ids:void 0}:typeof A.container==="string"?A.container:{type:"auto",file_ids:A.container.fileIds}});break}case"openai.image_generation":{let A=await G8({value:z.args,schema:MA4});N.push({type:"image_generation",action:A.action,background:A.background,input_fidelity:A.inputFidelity,input_image_mask:A.inputImageMask?{file_id:A.inputImageMask.fileId,image_url:A.inputImageMask.imageUrl}:void 0,model:A.model,moderation:A.moderation,partial_images:A.partialImages,quality:A.quality,output_compression:A.outputCompression,output_format:A.outputFormat,size:A.size});break}case"openai.mcp":{let A=await G8({value:z.args,schema:nA4}),P=(_)=>({tool_names:_.toolNames}),q=A.requireApproval,x=q==null?void 0:typeof q==="string"?q:q.never!=null?{never:P(q.never)}:void 0;N.push({type:"mcp",server_label:A.serverLabel,allowed_tools:Array.isArray(A.allowedTools)?A.allowedTools:A.allowedTools?{read_only:A.allowedTools.readOnly,tool_names:A.allowedTools.toolNames}:void 0,authorization:A.authorization,connector_id:A.connectorId,headers:A.headers,require_approval:x!=null?x:"never",server_description:A.serverDescription,server_url:A.serverUrl});break}case"openai.custom":{let A=await G8({value:z.args,schema:EA4});N.push({type:"custom",name:z.name,description:A.description,...AH$({value:A.async,supportsAsyncToolCalling:G,toolName:z.name,toolWarnings:U})!=null?{async:A.async}:{},format:A.format}),O.add(z.name);break}case"openai.programmatic_tool_calling":{N.push({type:"programmatic_tool_calling"});break}case"openai.tool_search":{let A=await G8({value:z.args,schema:xA4});N.push({type:"tool_search",...A.execution!=null?{execution:A.execution}:{},...A.description!=null?{description:A.description}:{},...A.parameters!=null?{parameters:A.parameters}:{}});break}}if(N.length>T){let A=N[T];j(z.name,LT4(A),Y==null?void 0:Y.toProviderToolName(z.name))}break}default:U.push({type:"unsupported",feature:`function tool ${z}`});break}if(Q!=null){let z=[],T=[];for(let A of Q.toolNames){let P=L.get(A),q=P!=null?P:w.get(A);if(P!=null&&w.has(A))U.push({type:"unsupported",feature:`allowedTools entry "${A}"`,details:"this name is both a tool name and the provider tool name of another tool in this request; the tool with this name is allowed"});if(q==="ambiguous"){U.push({type:"unsupported",feature:`allowedTools entry "${A}"`,details:"several tools in this request share this provider tool name; use the tool name from the tools for this request instead"}),T.push(A);continue}if(q==null){U.push({type:"unsupported",feature:`allowedTools entry "${A}"`,details:"the tool is not part of the tools for this request and is sent as a function tool"}),z.push({type:"function",name:(K=Y==null?void 0:Y.toProviderToolName(A))!=null?K:A});continue}if(!q.supported){U.push({type:"unsupported",feature:`allowedTools entry "${A}"`,details:`${q.reason}; the tool is removed from the allowed tools`}),T.push(A);continue}z.push(q.entry)}if(z.length===0)throw new s1({functionality:`allowedTools with only tools that cannot be allow-listed (${T.join(", ")})`});return{tools:N,toolChoice:{type:"allowed_tools",mode:(H=Q.mode)!=null?H:"auto",tools:z},toolWarnings:U}}if(Z==null)return{tools:N,toolChoice:void 0,toolWarnings:U};let E=Z.type;switch(E){case"auto":case"none":case"required":return{tools:N,toolChoice:E,toolWarnings:U};case"tool":{let z=(F=Y==null?void 0:Y.toProviderToolName(Z.toolName))!=null?F:Z.toolName;return{tools:N,toolChoice:z==="code_interpreter"||z==="file_search"||z==="image_generation"||z==="web_search_preview"||z==="web_search"||z==="mcp"||z==="apply_patch"||z==="computer"||z==="programmatic_tool_calling"?{type:z}:O.has(z)?{type:"custom",name:z}:{type:"function",name:z},toolWarnings:U}}default:throw new s1({functionality:`tool choice type: ${E}`})}}function PH$($){switch($.type){case"mcp":return`mcp:${$.server_label}`;case"function":case"custom":return`${$.type}:${$.name}`;default:return $.type}}function OT4($,Z){if($.supported&&Z.supported)return PH$($.entry)===PH$(Z.entry);if(!$.supported&&!Z.supported)return $.reason===Z.reason;return!1}function LT4($){switch($.type){case"custom":return{supported:!0,entry:{type:"custom",name:$.name}};case"mcp":return{supported:!0,entry:{type:"mcp",server_label:$.server_label}};case"file_search":case"web_search":case"web_search_preview":case"image_generation":case"code_interpreter":case"computer":case"apply_patch":case"shell":case"local_shell":case"programmatic_tool_calling":return{supported:!0,entry:{type:$.type}};default:return{supported:!1,reason:`OpenAI does not support ${$.type} tools in tool_choice.allowed_tools`}}}function wT4({tool:$,options:Z,toolWarnings:Q,async:Y}){var X;let J=Z==null?void 0:Z.deferLoading,G=Re($.inputSchema),W=(Z==null?void 0:Z.outputSchema)!=null?Re(Z.outputSchema):void 0;return Q.push(...G.warnings,...(X=W==null?void 0:W.warnings)!=null?X:[]),{type:"function",name:$.name,description:$.description,parameters:G.schema,...Y!=null?{async:Y}:{},...$.strict!=null?{strict:$.strict}:{},...J!=null?{defer_loading:J}:{},...(Z==null?void 0:Z.allowedCallers)!=null?{allowed_callers:Z.allowedCallers}:{},...(Z==null?void 0:Z.outputSchema)!=null?{output_schema:W==null?void 0:W.schema}:{}}}function AH$({value:$,supportsAsyncToolCalling:Z,toolName:Q,toolWarnings:Y}){if($!==!0||Z)return $;Y.push({type:"unsupported",feature:`async tool calling for "${Q}"`,details:"Async tool calling is only supported by GPT-6 and later models."});return}function jT4($){if($.type==="containerReference")return{type:"container_reference",container_id:$.containerId};if($.type==="containerAuto"){let Q=$;return{type:"container_auto",file_ids:Q.fileIds,memory_limit:Q.memoryLimit,network_policy:Q.networkPolicy==null?void 0:Q.networkPolicy.type==="disabled"?{type:"disabled"}:{type:"allowlist",allowed_domains:Q.networkPolicy.allowedDomains,domain_secrets:Q.networkPolicy.domainSecrets},skills:ET4(Q.skills)}}return{type:"local",skills:$.skills}}function ET4($){return $==null?void 0:$.map((Z)=>{var Q,Y;return Z.type==="skillReference"?{type:"skill_reference",skill_id:vQ({reference:(Q=Z.providerReference)!=null?Q:{},provider:"openai"}),version:(Y=Z.version)!=null?Y:"latest"}:{type:"inline",name:Z.name,description:Z.description,source:{type:"base64",media_type:Z.source.mediaType,data:Z.source.data}}})}function TH$($){var Z,Q;let Y={};for(let X of $){if(X.role!=="assistant")continue;for(let J of X.content){if(J.type!=="tool-call")continue;let G=(Q=(Z=J.providerOptions)==null?void 0:Z.openai)==null?void 0:Q.approvalRequestId;if(G!=null)Y[G]=J.toolCallId}}return Y}function zT4($){switch($.type){case"click":return{type:"click",button:$.button,x:$.x,y:$.y,...$.keys!=null&&{keys:$.keys}};case"double_click":return{type:"double_click",x:$.x,y:$.y,...$.keys!=null&&{keys:$.keys}};case"drag":return{type:"drag",path:$.path,...$.keys!=null&&{keys:$.keys}};case"keypress":return $;case"move":return{type:"move",x:$.x,y:$.y,...$.keys!=null&&{keys:$.keys}};case"screenshot":return $;case"scroll":return{type:"scroll",x:$.x,y:$.y,scrollX:$.scroll_x,scrollY:$.scroll_y,...$.keys!=null&&{keys:$.keys}};case"type":return $;case"wait":return $}}function RH$({action:$,actions:Z,pending_safety_checks:Q,status:Y}){var X;return{actions:(Z!=null?Z:$!=null?[$]:[]).map(zT4),pendingSafetyChecks:(X=Q==null?void 0:Q.map((J)=>({id:J.id,...J.code!=null&&{code:J.code},...J.message!=null&&{message:J.message}})))!=null?X:[],status:Y}}function PT4($){return $.type==="response.output_text.delta"}function AT4($){let Z=RT4($);return Z!=null&&Array.isArray(Z.choices)&&typeof Z.type!=="string"}function TT4({value:$,cause:Z,url:Q,requestBodyValues:Y,responseHeaders:X}){return new N8({message:"Received a Chat Completions stream while using the OpenAI Responses API. The default OpenAI provider model uses the Responses API. If your custom baseURL targets a Chat Completions-compatible endpoint, use openai.chat('model-id') or createOpenAI(...).chat('model-id') instead. You can also use @ai-sdk/openai-compatible for OpenAI-compatible providers.",url:Q,requestBodyValues:Y,responseHeaders:X,responseBody:JSON.stringify($),cause:Z,data:$,isRetryable:!1})}function RT4($){return typeof $==="object"&&$!=null?$:void 0}function qT4($){return $.type==="response.output_item.done"}function MT4($){return $.type==="response.completed"||$.type==="response.incomplete"}function qH$($){return $.type==="response.failed"}function IT4($){return $.type==="response.created"}function VT4($){return $.type==="response.function_call_arguments.delta"}function kT4($){return $.type==="response.custom_tool_call_input.delta"}function ST4($){return $.type==="response.image_generation_call.partial_image"}function CT4($){return $.type==="response.code_interpreter_call_code.delta"}function _T4($){return $.type==="response.code_interpreter_call_code.done"}function vT4($){return $.type==="response.apply_patch_call_operation_diff.delta"}function bT4($){return $.type==="response.apply_patch_call_operation_diff.done"}function MH$($){return $.type==="response.output_item.added"}function xT4($){return $.type==="response.output_text.annotation.added"}function IH$($){return $.type==="error"}function fT4($){return $.type==="response.in_progress"}function yT4($){return!($.type==="response.created"||$.type==="response.in_progress"||$.type==="response.failed"||$.type==="error"||$.type==="unknown_chunk")}function K11($){var Z;if($==null)return{};switch($.type){case"search":return{action:{type:"search",query:(Z=$.query)!=null?Z:void 0,...$.queries!=null&&{queries:$.queries}},...$.sources!=null&&{sources:$.sources}};case"open_page":return{action:{type:"openPage",url:$.url}};case"find_in_page":return{action:{type:"findInPage",url:$.url,pattern:$.pattern}}}}function o2($){return JSON.stringify($).slice(1,-1)}function hT4($){for(let Z of $){let Q=Z.type;if(Q!=="text")throw new s1({functionality:`batch request type: ${Q}`,message:`The OpenAI Batch API does not support batch requests with type "${Q}".`})}}function mT4($){var Z;let Q=(Z=$[0])==null?void 0:Z.modelId;for(let Y of $)if(Y.modelId!==Q)throw new g8({argument:"requests",message:`The OpenAI Batch API requires all requests in a batch to use the same model. Found "${Q}" and "${Y.modelId}".`})}function xW0($){var Z,Q,Y;let X=iT4($.status),J=(Q=(Z=$.errors)==null?void 0:Z.data)==null?void 0:Q[0],G=pT4($.request_counts),W=H11($.created_at),K=H11($.expires_at);return{status:X,rawStatus:$.status,...G!=null?{requestCounts:G}:{},...J!=null?{error:{message:(Y=J.message)!=null?Y:"OpenAI batch failed.",...J.code!=null?{code:J.code}:{}}}:{},...W!=null?{createdAt:W}:{},...K!=null?{expiresAt:K}:{}}}function iT4($){switch($){case"completed":return"completed";case"failed":case"expired":case"cancelled":return"failed";case"validating":case"in_progress":case"finalizing":case"cancelling":default:return"pending"}}function pT4($){let Z=$==null?void 0:$.total,Q=$==null?void 0:$.completed,Y=$==null?void 0:$.failed;return Mw({total:Z,pending:Z!=null&&Q!=null&&Y!=null?Z-Q-Y:void 0,completed:Q,failed:Y})}function H11($){if($==null||!Number.isFinite($))return;let Z=new Date($*1000);return Number.isNaN(Z.getTime())?void 0:Z.toISOString()}async function nT4({body:$,statusCode:Z}){var Q;let Y=await m4({value:$,schema:hW0});if(!Y.success)return{message:`OpenAI batch request failed with status code ${Z}.`,statusCode:Z};return{message:Y.value.error.message,type:(Q=Y.value.error.type)!=null?Q:void 0,code:Y.value.error.code!=null?String(Y.value.error.code):void 0,statusCode:Z}}async function tT4($){var Z,Q,Y,X,J,G,W,K;let H=await m4({value:$,schema:rH$});if(!H.success)return{success:!1,error:{message:"OpenAI returned an invalid Responses batch result.",code:"invalid_response"}};let F=H.value;if(F.error!=null)return{success:!1,error:{message:F.error.message,type:F.error.type,code:F.error.code}};if(F.output==null){let L=(Z=F.incomplete_details)==null?void 0:Z.reason;return{success:!1,error:{message:L!=null?`OpenAI Responses returned no output (${L}).`:"OpenAI Responses returned no output.",code:"invalid_response"}}}let U=[],N=[],B=!1;for(let L of F.output)switch(L.type){case"reasoning":{let w=L.summary.length>0?L.summary:[{type:"summary_text",text:""}];for(let j of w)U.push({type:"reasoning",text:j.text,providerMetadata:{openai:{itemId:L.id,reasoningEncryptedContent:(Q=L.encrypted_content)!=null?Q:null}}});break}case"message":{for(let w of L.content)if(U.push({type:"text",text:w.text}),w.logprobs!=null)N.push(w.logprobs);break}case"function_call":B=!0,U.push({type:"tool-call",toolCallId:L.call_id,toolName:L.name,input:L.arguments,providerMetadata:{openai:{itemId:L.id,...L.namespace!=null&&{namespace:L.namespace},...L.caller!=null&&{caller:L.caller.type==="program"?{type:"program",callerId:L.caller.caller_id}:L.caller}}}});break;case"custom_tool_call":B=!0,U.push({type:"tool-call",toolCallId:L.call_id,toolName:L.name,input:JSON.stringify(L.input),providerMetadata:{openai:{itemId:L.id}}});break;case"web_search_call":U.push({type:"tool-call",toolCallId:L.id,toolName:"web_search",input:"{}",providerExecuted:!0,dynamic:!0}),U.push({type:"tool-result",toolCallId:L.id,toolName:"web_search",result:K11(L.action),dynamic:!0});break;case"file_search_call":U.push({type:"tool-call",toolCallId:L.id,toolName:"file_search",input:"{}",providerExecuted:!0,dynamic:!0}),U.push({type:"tool-result",toolCallId:L.id,toolName:"file_search",result:{queries:L.queries,results:(X=(Y=L.results)==null?void 0:Y.map((w)=>({attributes:w.attributes,fileId:w.file_id,filename:w.filename,score:w.score,text:w.text})))!=null?X:null},dynamic:!0});break;case"code_interpreter_call":U.push({type:"tool-call",toolCallId:L.id,toolName:"code_interpreter",input:JSON.stringify({code:L.code,containerId:L.container_id}),providerExecuted:!0,dynamic:!0}),U.push({type:"tool-result",toolCallId:L.id,toolName:"code_interpreter",result:{outputs:L.outputs},dynamic:!0});break;default:return{success:!1,error:{message:`OpenAI returned an unsupported "${L.type}" output item in an AI SDK text batch.`,code:"unsupported_content"}}}let O={openai:{responseId:F.id,...N.length>0?{logprobs:N}:{},...typeof F.service_tier==="string"?{serviceTier:F.service_tier}:{},...((J=F.reasoning)==null?void 0:J.context)!=null?{reasoningContext:F.reasoning.context}:{}}};return{success:!0,result:{content:U,finishReason:{unified:yW0({finishReason:(G=F.incomplete_details)==null?void 0:G.reason,hasFunctionCall:B}),raw:(K=(W=F.incomplete_details)==null?void 0:W.reason)!=null?K:void 0},usage:a01(F.usage),response:{id:F.id,timestamp:F.created_at!=null?new Date(F.created_at*1000):void 0,modelId:F.model},providerMetadata:O,warnings:[]}}}function F11($,Z,Q="websocket"){var Y,X,J,G,W,K;for(let N of Object.keys($))if(!["instructions","voice","inputAudioFormat","outputAudioFormat","providerOptions"].includes(N))throw new s1({functionality:`OpenAI Live session setting: ${N}`});if(LW.object({delegation:LW.object({type:LW.literal("responses")})}).safeParse((Y=$.providerOptions)==null?void 0:Y.openai).success)throw new s1({functionality:"OpenAI Live Responses delegation; only client delegation is supported"});let H=rT4.parse((J=(X=$.providerOptions)==null?void 0:X.openai)!=null?J:{});if(H.client!==void 0&&Q!=="webrtc")throw new s1({functionality:"OpenAI Live client permissions outside WebRTC startup"});if(H.voice!=null&&$.voice!=null)throw new g8({argument:"voice",message:"Choose either voice or providerOptions.openai.voice."});if(Q==="webrtc"&&($.inputAudioFormat!==void 0||$.outputAudioFormat!==void 0))throw new s1({functionality:"Fixed audio formats for OpenAI Live WebRTC; audio is negotiated through SDP"});let F=$.inputAudioFormat==null?void 0:SH$.parse($.inputAudioFormat),U=$.outputAudioFormat==null?void 0:SH$.parse($.outputAudioFormat);if(F!=null&&U!=null&&(F.type!==U.type||F.rate!==U.rate))throw new g8({argument:"outputAudioFormat",message:"OpenAI Live requires the same input and output audio format."});return{model:Z,...$.instructions!==void 0?{instructions:$.instructions}:{},audio:{...Q==="websocket"?{format:(G=F!=null?F:U)!=null?G:{type:"audio/pcm",rate:24000}}:{},output:{voice:(K=(W=H.voice)!=null?W:$.voice)!=null?K:"marin"}},...H.delegation!==void 0?{delegation:H.delegation}:{},...H.client!==void 0?{client:{data_channel:{...H.client.dataChannel.allowedClientEvents!==void 0?{allowed_client_events:H.client.dataChannel.allowedClientEvents}:{},...H.client.dataChannel.allowedServerEvents!==void 0?{allowed_server_events:H.client.dataChannel.allowedServerEvents==="all"?"all":H.client.dataChannel.allowedServerEvents.map((N)=>({type:N.type,...N.responseEvent!==void 0?{response_event:N.responseEvent}:{}}))}:{}}}}:{},...H.input!==void 0?{input:H.input}:{},...H.store!==void 0?{store:H.store}:{}}}function $R4(){return($)=>QF$($)}function QF$($){return[ZR4($)]}function ZR4($){var Z,Q,Y,X,J,G,W,K,H,F;let U=eT4.safeParse($);if(U.success&&!aT4.has(U.data.type))return{type:"custom",rawType:U.data.type,raw:$};let N=ZF$.safeParse($);if(!N.success)return{type:"error",code:"invalid_server_event",message:"Invalid OpenAI Live server event.",raw:$};let B=N.data;if("start_ms"in B&&B.end_ms<B.start_ms)return{type:"error",code:"invalid_server_event",message:"Invalid OpenAI Live event time interval.",raw:$};switch(B.type){case"session.started":return{type:"session-started",sessionId:B.session.id,delegationMode:((Z=B.session.delegation)==null?void 0:Z.type)==="responses"?"provider":"client",raw:$};case"session.closed":return{type:"session-closed",sessionId:(Q=B.session)==null?void 0:Q.id,usage:B.usage,reason:B.reason,raw:$};case"session.usage.updated":return{type:"session-usage",usage:B.usage,contextWindowUsageRatio:(Y=B.context_window)==null?void 0:Y.usage_ratio,raw:$};case"session.output_audio.delta":return{type:"audio-chunk",delta:B.delta,raw:$};case"session.input_transcript.delta":case"session.output_transcript.delta":return{type:"transcript-fragment",speaker:B.type==="session.input_transcript.delta"?"user":"assistant",delta:B.delta,startMs:B.start_ms,endMs:B.end_ms,raw:$};case"session.delegation.created":return{type:"delegation-created",delegationId:B.delegation.id,target:B.delegation.target==="responses"?"provider":(X=B.delegation.target)!=null?X:void 0,offsetMs:(J=B.offset_ms)!=null?J:void 0,...B.delegation.response_id!=null?{responseId:B.delegation.response_id}:{},raw:$};case"error":return{type:"error",message:B.error.message,code:(G=B.error.code)!=null?G:void 0,clientEventId:(W=B.error.client_event_id)!=null?W:void 0,raw:$};case"session.updated":return{type:"command-acknowledged",command:"session.update",clientEventId:(K=B.client_event_id)!=null?K:void 0,raw:$};case"session.input_audio.muted":case"session.input_audio.unmuted":return{type:"command-acknowledged",command:B.type.slice(0,-1),clientEventId:(H=B.client_event_id)!=null?H:void 0,raw:$};case"session.instructions.appended":case"session.thinking.appended":case"session.commentary.appended":return{type:"command-acknowledged",command:B.type.slice(0,-2),clientEventId:(F=B.client_event_id)!=null?F:void 0,raw:$}}}function QR4($,Z){var Q,Y,X;let J="eventId"in $&&$.eventId!==void 0?{event_id:$.eventId}:{};switch($.type){case"session-start":return{type:"session.start",session:F11($.config,Z),...J};case"session-update":throw new s1({functionality:"OpenAI Live session-update; startup settings are immutable; use context-append or input-audio-mute/input-audio-unmute"});case"session-close":return{type:"session.close",...J};case"input-audio-append":return{type:"session.input_audio.append",audio:$.audio,...J};case"input-audio-mute":return{type:"session.input_audio.mute",...J};case"input-audio-unmute":return{type:"session.input_audio.unmute",...J};case"context-append":{let G=y$.object({content:y$.string(),delegationId:y$.string().min(1).nullable()}).parse($);return{type:`session.${(X=y$.strictObject({channel:y$.enum(["instructions","thinking","commentary"]).optional()}).parse((Y=(Q=$.providerOptions)==null?void 0:Q.openai)!=null?Y:{}).channel)!=null?X:"thinking"}.append`,content:G.content,delegation_id:G.delegationId,...J}}default:throw new s1({functionality:`OpenAI Live command: ${$.type}; use continuous audio and context-append instead of voice-turn commands`})}}function XR4($){var Z,Q,Y,X,J,G,W,K,H,F,U,N,B,O,L,w,j,E,z,T,A;let P=$,q=P.type;switch(q){case"session.created":return{type:"session-created",sessionId:(Z=P.session)==null?void 0:Z.id,raw:$};case"session.updated":return{type:"session-updated",raw:$};case"input_audio_buffer.speech_started":return{type:"speech-started",itemId:P.item_id,raw:$};case"input_audio_buffer.speech_stopped":return{type:"speech-stopped",itemId:P.item_id,raw:$};case"input_audio_buffer.committed":return{type:"audio-committed",itemId:P.item_id,previousItemId:P.previous_item_id,raw:$};case"conversation.item.added":return{type:"conversation-item-added",itemId:(Y=(Q=P.item)==null?void 0:Q.id)!=null?Y:P.item_id,item:P.item,raw:$};case"conversation.item.input_audio_transcription.completed":return{type:"input-transcription-completed",itemId:P.item_id,transcript:(X=P.transcript)!=null?X:"",raw:$};case"response.created":return{type:"response-created",responseId:(G=(J=P.response)==null?void 0:J.id)!=null?G:P.response_id,raw:$};case"response.done":return{type:"response-done",responseId:(K=(W=P.response)==null?void 0:W.id)!=null?K:P.response_id,status:(F=(H=P.response)==null?void 0:H.status)!=null?F:"completed",raw:$};case"response.output_item.added":return{type:"output-item-added",responseId:P.response_id,itemId:(N=(U=P.item)==null?void 0:U.id)!=null?N:P.item_id,raw:$};case"response.output_item.done":return{type:"output-item-done",responseId:P.response_id,itemId:(O=(B=P.item)==null?void 0:B.id)!=null?O:P.item_id,raw:$};case"response.content_part.added":return{type:"content-part-added",responseId:P.response_id,itemId:P.item_id,raw:$};case"response.content_part.done":return{type:"content-part-done",responseId:P.response_id,itemId:P.item_id,raw:$};case"response.output_audio.delta":return{type:"audio-delta",responseId:P.response_id,itemId:P.item_id,delta:P.delta,raw:$};case"response.output_audio.done":return{type:"audio-done",responseId:P.response_id,itemId:P.item_id,raw:$};case"response.output_audio_transcript.delta":return{type:"audio-transcript-delta",responseId:P.response_id,itemId:P.item_id,delta:P.delta,raw:$};case"response.output_audio_transcript.done":return{type:"audio-transcript-done",responseId:P.response_id,itemId:P.item_id,transcript:P.transcript,raw:$};case"response.output_text.delta":return{type:"text-delta",responseId:P.response_id,itemId:P.item_id,delta:P.delta,raw:$};case"response.output_text.done":return{type:"text-done",responseId:P.response_id,itemId:P.item_id,text:P.text,raw:$};case"response.function_call_arguments.delta":return{type:"function-call-arguments-delta",responseId:P.response_id,itemId:P.item_id,callId:P.call_id,delta:P.delta,raw:$};case"response.function_call_arguments.done":return{type:"function-call-arguments-done",responseId:P.response_id,itemId:P.item_id,callId:P.call_id,name:P.name,arguments:P.arguments,raw:$};case"error":return{type:"error",message:(j=(w=(L=P.error)==null?void 0:L.message)!=null?w:P.message)!=null?j:"Unknown error",code:(z=(E=P.error)==null?void 0:E.code)!=null?z:P.code,clientEventId:(A=(T=P.error)==null?void 0:T.event_id)!=null?A:void 0,raw:$};default:return{type:"custom",rawType:q,raw:$}}}function JR4($,Z){switch($.type){case"session-update":return{type:"session.update",session:N11($.config,Z),...$.eventId!=null?{event_id:$.eventId}:{}};case"input-audio-append":return{type:"input_audio_buffer.append",audio:$.audio,...$.eventId!=null?{event_id:$.eventId}:{}};case"input-audio-commit":return{type:"input_audio_buffer.commit"};case"input-audio-clear":return{type:"input_audio_buffer.clear"};case"conversation-item-create":{let Q=$.item;switch(Q.type){case"text-message":return{type:"conversation.item.create",item:{type:"message",role:Q.role,content:[{type:"input_text",text:Q.text}]}};case"audio-message":return{type:"conversation.item.create",item:{type:"message",role:Q.role,content:[{type:"input_audio",audio:Q.audio}]}};case"function-call-output":return{type:"conversation.item.create",item:{type:"function_call_output",call_id:Q.callId,output:Q.output}}}break}case"conversation-item-truncate":return{type:"conversation.item.truncate",item_id:$.itemId,content_index:$.contentIndex,audio_end_ms:$.audioEndMs};case"response-create":return{type:"response.create",...$.options!=null?{response:{...$.options.modalities!=null?{output_modalities:$.options.modalities}:{},...$.options.instructions!=null?{instructions:$.options.instructions}:{},...$.options.metadata!=null?{metadata:$.options.metadata}:{}}}:{}};case"response-cancel":return{type:"response.cancel"}}}function N11($,Z){var Q;let Y={type:"realtime",model:Z};if($.instructions!=null)Y.instructions=$.instructions;if($.outputModalities!=null)Y.output_modalities=$.outputModalities;let X={};if($.inputAudioFormat!=null||$.inputAudioTranscription!=null||$.turnDetection!=null){let J={};if($.inputAudioFormat!=null)J.format={type:$.inputAudioFormat.type,...$.inputAudioFormat.rate!=null?{rate:$.inputAudioFormat.rate}:{}};if($.turnDetection!=null)if($.turnDetection.type==="disabled")J.turn_detection=null;else{let G={type:$.turnDetection.type==="server-vad"?"server_vad":"semantic_vad"};if($.turnDetection.threshold!=null)G.threshold=$.turnDetection.threshold;if($.turnDetection.silenceDurationMs!=null)G.silence_duration_ms=$.turnDetection.silenceDurationMs;if($.turnDetection.prefixPaddingMs!=null)G.prefix_padding_ms=$.turnDetection.prefixPaddingMs;J.turn_detection=G}if($.inputAudioTranscription!=null)J.transcription={model:(Q=$.inputAudioTranscription.model)!=null?Q:"gpt-realtime-whisper",...$.inputAudioTranscription.language!=null?{language:$.inputAudioTranscription.language}:{},...$.inputAudioTranscription.prompt!=null?{prompt:$.inputAudioTranscription.prompt}:{}};X.input=J}if($.outputAudioFormat!=null||$.voice!=null){let J={};if($.outputAudioFormat!=null)J.format={type:$.outputAudioFormat.type,...$.outputAudioFormat.rate!=null?{rate:$.outputAudioFormat.rate}:{}};if($.voice!=null)J.voice=$.voice;X.output=J}if(Object.keys(X).length>0)Y.audio=X;if($.tools!=null&&$.tools.length>0)Y.tools=$.tools.map((J)=>({type:J.type,name:J.name,description:J.description,parameters:J.parameters})),Y.tool_choice="auto";if($.providerOptions!=null)Object.assign(Y,$.providerOptions);return Y}function KR4($,{api:Z}={}){if(Z!==void 0){if(Z!=="live"&&Z!=="realtime")throw new g8({argument:"api",message:'OpenAI realtime api must be "live" or "realtime".'});return Z}return WR4.some((Q)=>Q===$)?"live":"realtime"}function HR4($){let Z=(Q,Y)=>{let X=KR4(Q,Y),J={...$,provider:`${$.provider}.${X}`};return X==="live"?new vH$(Q,J):new GR4(Q,J)};return Object.assign(Z,{getToken:async(Q)=>{let Y=Z(Q.model,Q);if(Y instanceof vH$)throw new s1({functionality:"Short-lived OpenAI credentials for the Live API. Use server WebSocket setup via getServerWebSocketConfig() with a server-side API key instead."});let X=await Y.doCreateClientSecret({sessionConfig:Q.sessionConfig,expiresAfterSeconds:Q.expiresAfterSeconds});return{token:X.token,url:X.url,expiresAt:X.expiresAt}}})}function xH$($){return $==="gpt-realtime-whisper"||$.startsWith("gpt-realtime-whisper-")}function DR4({webSocket:$,url:Z,headers:Q,sessionUpdate:Y,language:X,warnings:J,audio:G,abortSignal:W,includeRawChunks:K}){let H=!1,F=()=>{};return new ReadableStream({start:(U)=>{let N=LR4(Q),B,O;F=(E)=>{if(B!=null)B.cancel().catch(()=>{});else G.cancel().catch(()=>{});O==null||O.close(E)};let L=(E)=>{if(H)return;H=!0,F(),U.error(E)},w=(E,z)=>{if(H)return;if(H=!0,z!=null)U.enqueue({type:"transcript-final",id:z,text:E});U.enqueue({type:"finish",text:E,segments:[],language:X}),U.close(),F(1000)},j=async(E)=>{B=G.getReader();try{while(!0){let{done:z,value:T}=await B.read();if(z||H)break;E.send(JSON.stringify({type:"input_audio_buffer.append",audio:K4(T)})),await yF(E)}}finally{B.releaseLock(),B=void 0}if(!H)E.send(JSON.stringify({type:"input_audio_buffer.commit"}))};O=gF({url:Z,protocols:N.protocols,headers:N.headers,webSocket:$,abortSignal:W,onAbort:L,onProcessingError:L,onOpen:(E)=>{U.enqueue({type:"stream-start",warnings:J}),E.send(JSON.stringify(Y)),j(E).catch(L)},onMessageText:async(E)=>{var z,T,A,P;let q=await I5({text:E});if(!q.success)return;let x=q.value;if(K)U.enqueue({type:"raw",rawValue:x});switch(x.type){case"conversation.item.input_audio_transcription.delta":{U.enqueue({type:"transcript-delta",id:x.item_id,delta:(z=x.delta)!=null?z:""});break}case"conversation.item.input_audio_transcription.completed":{w((T=x.transcript)!=null?T:"",x.item_id);break}case"error":{L(Error((P=(A=x.error)==null?void 0:A.message)!=null?P:"OpenAI realtime error"));break}}},onSocketError:()=>{L(Error("OpenAI realtime transcription error"))},onClose:()=>{if(H)return;H=!0,F(),U.close()}})},cancel:()=>{if(H)return;H=!0,F()}})}function OR4({modelId:$,inputAudioFormat:Z,providerOptions:Q}){var Y,X;return{type:"session.update",session:{type:"transcription",audio:{input:{format:{type:Z.type,...Z.rate!=null?{rate:Z.rate}:{}},transcription:{model:$,...(Q==null?void 0:Q.language)!=null?{language:Q.language}:{},...((Y=Q==null?void 0:Q.streaming)==null?void 0:Y.delay)!=null?{delay:Q.streaming.delay}:{}},turn_detection:null}},...((X=Q==null?void 0:Q.streaming)==null?void 0:X.include)!=null?{include:Q.streaming.include}:{}}}}function LR4($){var Z;let Q;for(let[X,J]of Object.entries($))if(X.toLowerCase()==="authorization"&&J!=null)Q=J;let Y=(Z=Q==null?void 0:Q.match(/^bearer\s+(.+)$/i))==null?void 0:Z[1];if(Y==null)return{protocols:["realtime"],headers:$};return{protocols:["realtime",`openai-insecure-api-key.${Y}`],headers:Object.fromEntries(Object.entries($).filter(([X])=>X.toLowerCase()!=="authorization"))}}function zR4({webSocket:$,url:Z,headers:Q,sessionUpdate:Y,warnings:X,audio:J,abortSignal:G,includeRawChunks:W}){let K=!1,H=()=>{};return new ReadableStream({start:(F)=>{let U=TR4(Q),N,B,O="",L="";H=(z)=>{if(N!=null)N.cancel().catch(()=>{});else J.cancel().catch(()=>{});B==null||B.close(z)};let w=(z)=>{if(K)return;K=!0,H(),F.error(z)},j=()=>{if(K)return;if(K=!0,O!=="")F.enqueue({type:"source-transcript-final",text:O});if(L!=="")F.enqueue({type:"output-text-final",text:L});F.enqueue({type:"finish",sourceText:O,outputText:L,usage:void 0}),F.close(),H(1000)},E=async(z)=>{N=J.getReader();try{while(!0){let{done:T,value:A}=await N.read();if(T||K)break;z.send(JSON.stringify({type:"session.input_audio_buffer.append",audio:K4(A)})),await yF(z)}}finally{N.releaseLock(),N=void 0}if(!K)z.send(JSON.stringify({type:"session.close"}))};B=gF({url:Z,protocols:U.protocols,headers:U.headers,webSocket:$,abortSignal:G,onAbort:w,onProcessingError:w,onOpen:(z)=>{F.enqueue({type:"stream-start",warnings:X}),z.send(JSON.stringify(Y)),E(z).catch(w)},onMessageText:async(z)=>{var T,A,P,q,x,_;if(K)return;let V=await I5({text:z});if(!V.success)return;let y=V.value;if(W)F.enqueue({type:"raw",rawValue:y});switch(y.type){case"session.output_audio.delta":{if(y.delta)F.enqueue({type:"audio",audio:y.delta});break}case"session.output_transcript.delta":{L+=(T=y.delta)!=null?T:"",F.enqueue({type:"output-text-delta",delta:(A=y.delta)!=null?A:""});break}case"session.input_transcript.delta":{O+=(P=y.delta)!=null?P:"",F.enqueue({type:"source-transcript-delta",delta:(q=y.delta)!=null?q:""});break}case"session.closed":{j();break}case"error":{F.enqueue({type:"error",error:Error((_=(x=y.error)==null?void 0:x.message)!=null?_:"OpenAI realtime error")});break}}},onSocketError:()=>{w(Error("OpenAI realtime translation error"))},onClose:({code:z,reason:T})=>{if(K)return;w(Error(`OpenAI realtime translation WebSocket closed unexpectedly before finishing (code ${z!=null?z:"unknown"}${T?`, reason: ${T}`:""}).`))}})},cancel:()=>{if(K)return;K=!0,H()}})}function PR4({targetLanguage:$}){return{type:"session.update",session:{audio:{input:{transcription:{model:"gpt-realtime-whisper"},noise_reduction:null},output:{language:$}}}}}function AR4($){if($.type!=="audio/pcm"||$.rate!=null&&$.rate!==24000)throw new g8({argument:"inputAudioFormat",message:"The OpenAI Realtime translation API only supports 24kHz 16-bit PCM input audio."})}function TR4($){var Z;let Q;for(let[X,J]of Object.entries($))if(X.toLowerCase()==="authorization"&&J!=null)Q=J;let Y=(Z=Q==null?void 0:Q.match(/^bearer\s+(.+)$/i))==null?void 0:Z[1];if(Y==null)return{protocols:["realtime"],headers:$};return{protocols:["realtime",`openai-insecure-api-key.${Y}`],headers:Object.fromEntries(Object.entries($).filter(([X])=>X.toLowerCase()!=="authorization"))}}function s2($={}){var Z,Q;let Y=(Z=Vw(z30(mF({settingValue:$.baseURL,environmentVariableName:"OPENAI_BASE_URL"}))))!=null?Z:"https://api.openai.com/v1",X=(Q=$.name)!=null?Q:"openai",J=()=>Y9({Authorization:`Bearer ${rl({apiKey:$.apiKey,environmentVariableName:"OPENAI_API_KEY",description:"OpenAI"})}`,"OpenAI-Organization":$.organization,"OpenAI-Project":$.project,...$.headers},`ai-sdk/openai/${MR4}`),G=(z)=>new c24(z,{provider:`${X}.chat`,url:({path:T})=>`${Y}${T}`,headers:J,fetch:$.fetch}),W=(z)=>new n24(z,{provider:`${X}.completion`,url:({path:T})=>`${Y}${T}`,headers:J,fetch:$.fetch}),K=(z)=>new s24(z,{provider:`${X}.embedding`,url:({path:T})=>`${Y}${T}`,headers:J,fetch:$.fetch}),H=(z)=>new WA4(z,{provider:`${X}.image`,url:({path:T})=>`${Y}${T}`,headers:J,fetch:$.fetch}),F=(z)=>new BR4(z,{provider:`${X}.transcription`,url:({path:T})=>`${Y}${T}`,headers:J,fetch:$.fetch,webSocket:$.webSocket}),U=(z)=>new ER4(z,{provider:`${X}.speech-translation`,url:({path:T})=>`${Y}${T}`,headers:J,fetch:$.fetch,webSocket:$.webSocket}),N=(z)=>new UR4(z,{provider:`${X}.speech`,url:({path:T})=>`${Y}${T}`,headers:J,fetch:$.fetch}),B=()=>new $A4({provider:`${X}.files`,baseURL:Y,headers:J,fetch:$.fetch}),O=()=>new qR4({provider:`${X}.skills`,url:({path:z})=>`${Y}${z}`,headers:J,fetch:$.fetch}),L=(z)=>{if(new.target)throw Error("The OpenAI model function cannot be called with the new keyword.");return w(z)},w=(z)=>{return new eH$(z,{provider:`${X}.responses`,baseURL:Y,url:({path:T})=>`${Y}${T}`,headers:J,fetch:$.fetch,fileIdPrefixes:["file-"]})},j=()=>new cT4({provider:`${X}.batch`,config:{provider:`${X}.responses`,baseURL:Y,url:({path:z})=>`${Y}${z}`,headers:J,fetch:$.fetch,fileIdPrefixes:["file-"]}}),E=function(z){return L(z)};return E.specificationVersion="v4",E.languageModel=L,E.chat=G,E.completion=W,E.responses=w,E.evaluationModel=(z)=>new el({model:w(z),provider:`${X}.evaluation`}),E.embedding=K,E.embeddingModel=K,E.textEmbedding=K,E.textEmbeddingModel=K,E.image=H,E.imageModel=H,E.transcription=F,E.transcriptionModel=F,E.translation=U,E.speechTranslationModel=U,E.speech=N,E.speechModel=N,E.files=B,E.skills=O,E.experimental_batch=j,E.experimental_realtime=HR4({provider:X,baseURL:Y,headers:J,fetch:$.fetch}),E.tools=$T4,E}var hW0,_9,g24,h24,u24,c24,i24,p24,HH$,n24,o24,r24,FH$,s24,fW0,a24,e24,$A4=class{constructor($){this.config=$,this.specificationVersion="v4"}get provider(){return this.config.provider}getFileId($){let Z=$.openai;if(Z==null||Z.trim()==="")throw new g8({argument:"file",message:"file reference is missing an 'openai' file id."});return Z}getHeaders($){return M1(this.config.headers(),$)}async uploadFile({data:$,mediaType:Z,filename:Q,abortSignal:Y,headers:X,providerOptions:J}){var G,W,K;let H;try{H=await C$({provider:"openai",providerOptions:J,schema:e24})}catch(O){if($.type==="stream")await $.stream.cancel(O).catch(()=>{});throw O}let F=(G=H==null?void 0:H.purpose)!=null?G:"assistants",U=this.getHeaders(X),N=`${this.config.baseURL}/files`,B;if($.type==="stream"){let O=[{type:"field",name:"purpose",value:F}];if((H==null?void 0:H.expiresAfter)!=null)O.push({type:"field",name:"expires_after[anchor]",value:"created_at"},{type:"field",name:"expires_after[seconds]",value:String(H.expiresAfter)});O.push({type:"file",name:"file",filename:Q,mediaType:Z,content:$.stream}),{value:B}=await _J$({url:N,headers:U,parts:O,failedResponseHandler:_9,successfulResponseHandler:A1(fW0),abortSignal:Y,fetch:this.config.fetch})}else{let O=uF($),L=new Blob([O],{type:Z}),w=new FormData;if(Q!=null)w.append("file",L,Q);else w.append("file",L);if(w.append("purpose",F),(H==null?void 0:H.expiresAfter)!=null)w.append("expires_after[anchor]","created_at"),w.append("expires_after[seconds]",String(H.expiresAfter));({value:B}=await KW({url:N,headers:U,formData:w,failedResponseHandler:_9,successfulResponseHandler:A1(fW0),abortSignal:Y,fetch:this.config.fetch}))}return{warnings:[],providerReference:{openai:B.id},...((W=B.filename)!=null?W:Q)?{filename:(K=B.filename)!=null?K:Q}:{},...Z!=null?{mediaType:Z}:{},...B.bytes!=null?{byteSize:B.bytes}:{},...B.created_at!=null?{createdAt:new Date(B.created_at*1000)}:{},...B.expires_at!=null?{expiresAt:new Date(B.expires_at*1000)}:{},providerMetadata:{openai:this.toFileMetadata(B)}}}async getFileMetadata({file:$,abortSignal:Z,headers:Q}){let Y=this.getFileId($),{value:X}=await v6({url:`${this.config.baseURL}/files/${l01(Y)}`,headers:this.getHeaders(Q),failedResponseHandler:_9,successfulResponseHandler:A1(fW0),abortSignal:Z,fetch:this.config.fetch,validateUrl:!1});return{warnings:[],providerReference:{openai:X.id},...X.filename!=null?{filename:X.filename}:{},...X.bytes!=null?{byteSize:X.bytes}:{},...X.created_at!=null?{createdAt:new Date(X.created_at*1000)}:{},...X.expires_at!=null?{expiresAt:new Date(X.expires_at*1000)}:{},providerMetadata:{openai:this.toFileMetadata(X)}}}async downloadFile({file:$,abortSignal:Z,headers:Q}){var Y;let X=this.getFileId($),{value:J,responseHeaders:G}=await v6({url:`${this.config.baseURL}/files/${l01(X)}/content`,headers:this.getHeaders(Q),failedResponseHandler:_9,successfulResponseHandler:gJ$(),abortSignal:Z,fetch:this.config.fetch,validateUrl:!1}),W=(Y=G==null?void 0:G["content-type"])==null?void 0:Y.split(";")[0].trim();return{warnings:[],content:J,...W?{mediaType:W}:{}}}async deleteFile({file:$,abortSignal:Z,headers:Q}){let Y=this.getFileId($),{value:X}=await OJ$({url:`${this.config.baseURL}/files/${l01(Y)}`,headers:this.getHeaders(Q),failedResponseHandler:_9,successfulResponseHandler:A1(a24),abortSignal:Z,fetch:this.config.fetch});return{warnings:[],providerReference:{openai:X.id},deleted:X.deleted}}toFileMetadata($){return{...$.filename!=null?{filename:$.filename}:{},...$.purpose!=null?{purpose:$.purpose}:{},...$.bytes!=null?{bytes:$.bytes}:{},...$.created_at!=null?{createdAt:$.created_at}:{},...$.status!=null?{status:$.status}:{},...$.expires_at!=null?{expiresAt:$.expires_at}:{}}}},UH$,ZA4,QA4,D11,Uo5,JA4,GA4,WA4,gH$,hH$,Do5,HA4,FA4,UA4,NA4,BA4,DA4,OA4=($={})=>{return DA4($)},uH$,LA4,lH$,cH$,wA4,jA4=($={})=>wA4($),EA4,zA4,PA4,AA4=($)=>PA4($),mH$,dH$,TA4,RA4,qA4,MA4,IA4,VA4,kA4,SA4=($={})=>{return kA4($)},iH$,pH$,CA4,nH$,t01,_A4,vA4,bA4,xA4,o01,r01,fA4,yA4=($={})=>fA4($),gA4,hA4,uA4,lA4,cA4=($={})=>lA4($),mA4,dA4,iA4,pA4,s01,nA4,tA4,oA4,rA4,sA4=($)=>rA4($),tH$,oH$,aA4,eA4=()=>R2(aA4({}),{type:"provider",prepareProviderOptions:($)=>{var Z;let Q=$==null?void 0:$.openai;return{...$,openai:{...Q,allowedCallers:[...new Set([...(Z=Q==null?void 0:Q.allowedCallers)!=null?Z:[],"programmatic"])]}}}}),$T4,vc,c01,e01,ZT4,BH$,$11,Z11,Q11,Y11,X11,QT4,YT4,XT4,JT4,WT4,rH$,DH$="parallel",OH$="functions.",NT4,sH$=20,BT4,$r5,zH$,aH$,eH$,VH$="/v1/responses",gT4=172800,kH$,$F$=()=>h6.object({id:h6.string(),status:h6.string(),output_file_id:h6.string().nullish(),error_file_id:h6.string().nullish(),created_at:h6.number().nullish(),expires_at:h6.number().nullish(),request_counts:h6.object({total:h6.number().nullish(),completed:h6.number().nullish(),failed:h6.number().nullish()}).nullish(),errors:h6.object({data:h6.array(h6.object({code:h6.string().nullish(),message:h6.string().nullish()})).nullish()}).nullish()}),i01,uT4,lT4,cT4=class{constructor($){this.options=$,this.specificationVersion="v4",this.supportedUrls=aH$,this.provider=$.provider}async doStartBatch($){var Z,Q,Y,X,J,G;hT4($.requests),mT4($.requests);let W=[],K=$.webhookUrl==null?[]:[{warning:{type:"unsupported",feature:"webhookUrl",details:"The OpenAI Batch API does not support per-batch webhook URLs."}}],H=await this.parseBatchProviderOptions($.providerOptions),F=(Z=H==null?void 0:H.inputFileExpiresAfter)!=null?Z:gT4;for(let j of $.requests){let E=await this.prepareRequest(j);W.push(JSON.stringify({custom_id:j.id,method:"POST",url:VH$,body:E.body}),`
|
|
992
|
-
`);for(let z of E.warnings)K.push({requestId:j.id,warning:z});for(let z of(Q=j.options.tools)!=null?Q:[])if(z.type==="provider"&&!dT4.has(z.id))K.push({requestId:j.id,warning:{type:"unsupported",feature:`batch result conversion for tool "${z.name}"`,details:"OpenAI may return output for this tool that AI SDK text batches cannot currently convert."}})}let U="batch.jsonl",N=new Blob(W,{type:"application/jsonl"});W.length=0;let B=new FormData;B.append("file",N,U),B.append("purpose","batch"),B.append("expires_after[anchor]","created_at"),B.append("expires_after[seconds]",String(F));let{value:O}=await sl({url:this.getUrl("/files"),headers:M1((X=(Y=this.options.config).headers)==null?void 0:X.call(Y),$.headers),body:{content:B,values:{purpose:"batch","expires_after[anchor]":"created_at","expires_after[seconds]":String(F),file:{name:U,type:N.type,size:N.size}}},failedResponseHandler:_9,successfulResponseHandler:A1(fW0),abortSignal:$.abortSignal,fetch:this.options.config.fetch}),{value:L}=await a1({url:this.getUrl("/batches"),headers:M1((G=(J=this.options.config).headers)==null?void 0:G.call(J),$.headers),body:{input_file_id:O.id,endpoint:VH$,completion_window:"24h"},failedResponseHandler:_9,successfulResponseHandler:A1(i01),abortSignal:$.abortSignal,fetch:this.options.config.fetch}),w=H11(O.expires_at);return{batchId:L.id,...xW0(L),providerMetadata:{openai:{inputFileId:O.id,...w!=null?{inputFileExpiresAt:w}:{}}},warnings:K}}async parseBatchProviderOptions($){let Z=this.options.config.provider.includes("azure")?"azure":"openai",Q=await C$({provider:Z,providerOptions:$,schema:kH$});if(Q==null&&Z!=="openai")Q=await C$({provider:"openai",providerOptions:$,schema:kH$});return Q}async doGetBatchStatus($){let Z=await this.retrieveBatch($);return xW0(Z)}async doCancelBatch($){var Z,Q;return await a1({url:this.getUrl(`/batches/${encodeURIComponent($.batchId)}/cancel`),headers:M1((Q=(Z=this.options.config).headers)==null?void 0:Q.call(Z),$.headers),body:{},failedResponseHandler:_9,successfulResponseHandler:A1(i01),abortSignal:$.abortSignal,fetch:this.options.config.fetch}),{}}async doListBatches($){var Z,Q;let Y=new URL(this.getUrl("/batches"));if($.limit!=null)Y.searchParams.set("limit",String($.limit));if($.cursor!=null)Y.searchParams.set("after",$.cursor);let{value:X}=await v6({url:Y.toString(),headers:M1((Q=(Z=this.options.config).headers)==null?void 0:Q.call(Z),$.headers),failedResponseHandler:_9,successfulResponseHandler:A1(lT4),abortSignal:$.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});return{batches:X.data.map((J)=>({batchId:J.id,...xW0(J)})),...X.has_more&&X.last_id!=null?{nextCursor:X.last_id}:{}}}async doGetBatchResults($){let Z=await this.retrieveBatch($),Q=xW0(Z);if(Q.status==="pending")throw new g8({argument:"batchId",message:`OpenAI batch "${$.batchId}" is not complete.`});let Y=[Z.output_file_id,Z.error_file_id].filter((J)=>J!=null);if(Q.status==="completed"&&Y.length===0)throw new D9({data:Z,message:`OpenAI batch "${$.batchId}" completed without batch output.`});let X=this.iterateBatchResults({fileIds:Y,options:$});return hF(X)}async retrieveBatch($){var Z,Q;let{value:Y}=await v6({url:this.getUrl(`/batches/${encodeURIComponent($.batchId)}`),headers:M1((Q=(Z=this.options.config).headers)==null?void 0:Q.call(Z),$.headers),failedResponseHandler:_9,successfulResponseHandler:A1(i01),abortSignal:$.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});return Y}async*iterateBatchResults({fileIds:$,options:Z}){var Q,Y;for(let X of $){let{value:J}=await v6({url:this.getUrl(`/files/${encodeURIComponent(X)}/content`),headers:M1((Y=(Q=this.options.config).headers)==null?void 0:Y.call(Q),Z.headers),failedResponseHandler:_9,successfulResponseHandler:Iw(uT4),abortSignal:Z.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});for await(let G of J)yield await this.convertResultLine(G)}}async convertResultLine($){if($.error!=null){let Q={message:$.error.message,code:$.error.code};if($.error.code==="batch_cancelled")return{type:"text",id:$.custom_id,status:"cancelled",error:Q};if($.error.code==="batch_expired")return{type:"text",id:$.custom_id,status:"expired",error:Q};return{type:"text",id:$.custom_id,status:"failed",error:Q}}if($.response==null)return{type:"text",id:$.custom_id,status:"failed",error:{message:"OpenAI returned a batch result without a response or error.",code:"invalid_batch_result"}};if($.response.status_code<200||$.response.status_code>=300)return{type:"text",id:$.custom_id,status:"failed",error:await nT4({body:$.response.body,statusCode:$.response.status_code})};let Z=await tT4($.response.body);if(!Z.success)return{type:"text",id:$.custom_id,status:"failed",error:Z.error};return{type:"text",id:$.custom_id,status:"succeeded",result:Z.result}}async prepareRequest($){let{args:Z,warnings:Q}=await eH$.prepareRequest({modelId:$.modelId,config:this.options.config,options:$.options});return{body:Z,warnings:Q}}getUrl($){return this.options.config.url({path:$,modelId:""})}},dT4,oT4,rT4,SH$,U11,sT4,CH$,_H$,gW0,p01,ZF$,aT4,eT4,YR4,vH$=class{constructor($,Z){this.modelId=$,this.config=Z,this.specificationVersion="v4",this.capabilities={conversation:"continuous",transports:["websocket","webrtc"],connections:["server-websocket","webrtc"],startup:"session-start",finalization:"session-close"}}get provider(){return this.config.provider}getWebRTCConfig(){return{dataChannelLabel:"oai-events"}}getServerWebSocketConfig(){let $=new URL(`${this.config.baseURL}/live/sessions`);$.protocol=$.protocol==="http:"?"ws:":"wss:";let Z={};for(let[Q,Y]of Object.entries(this.config.headers()))if(Y!==void 0)Z[Q]=Y;return{url:$.toString(),headers:Z}}async doCreateWebRTCSession({sdp:$,sessionConfig:Z={},abortSignal:Q}){let Y=F11(Z,this.modelId,"webrtc"),{value:X}=await a1({url:`${this.config.baseURL}/live/sessions`,headers:this.config.headers(),body:{session:Y,transport:{type:"webrtc",sdp:r2.string().min(1).parse($)}},failedResponseHandler:_9,successfulResponseHandler:A1(YR4),abortSignal:Q,fetch:this.config.fetch});return{sessionId:X.session.id,sdp:X.transport.sdp}}parseServerEvent($){return QF$($)}createServerEventParser(){return $R4()}serializeClientEvent($){return QR4($,this.modelId)}buildSessionConfig($){return F11($,this.modelId)}},GR4=class{constructor($,Z){this.specificationVersion="v4",this.modelId=$,this.provider=Z.provider,this.config=Z}async doCreateClientSecret($){var Z;let Q=(Z=this.config.fetch)!=null?Z:fetch,Y=`${this.config.baseURL}/realtime/client_secrets`,X=$.sessionConfig!=null?N11($.sessionConfig,this.modelId):{type:"realtime",model:this.modelId},J=await Q(Y,{method:"POST",headers:{...this.config.headers(),"Content-Type":"application/json"},body:JSON.stringify({session:X,...$.expiresAfterSeconds!=null?{expires_after:{anchor:"created_at",seconds:$.expiresAfterSeconds}}:{}})});if(!J.ok){let W=await J.text();throw Error(`OpenAI realtime client secret request failed: ${J.status} ${W}`)}let G=await J.json();return{token:G.value,url:`wss://${new URL(this.config.baseURL).host}/v1/realtime?model=${encodeURIComponent(this.modelId)}`,expiresAt:G.expires_at}}getWebSocketConfig($){return{url:$.url,protocols:["realtime",`openai-insecure-api-key.${$.token}`]}}parseServerEvent($){return XR4($)}serializeClientEvent($){return JR4($,this.modelId)}buildSessionConfig($){return N11($,this.modelId)}},WR4,FR4,UR4,NR4,bH$,fH$,BR4,jR4,ER4,RR4,Ir5,qR4=class{constructor($){this.config=$,this.specificationVersion="v4"}get provider(){return this.config.provider}async uploadSkill($){let Z=[];if($.displayTitle!=null)Z.push({type:"unsupported",feature:"displayTitle"});let Q=new FormData;for(let X of $.files){let J=uF(X.data);Q.append("files[]",new Blob([J]),X.path)}let{value:Y}=await KW({url:this.config.url({path:"/skills"}),headers:M1(this.config.headers()),formData:Q,failedResponseHandler:_9,successfulResponseHandler:A1(RR4),fetch:this.config.fetch});return{providerReference:{openai:Y.id},...Y.name!=null?{name:Y.name}:{},...Y.description!=null?{description:Y.description}:{},...Y.latest_version!=null?{latestVersion:Y.latest_version}:{},providerMetadata:{openai:{...Y.default_version!=null?{defaultVersion:Y.default_version}:{},...Y.created_at!=null?{createdAt:Y.created_at}:{},...Y.updated_at!=null?{updatedAt:Y.updated_at}:{}}},warnings:Z}}},MR4="4.0.71",Vr5;var uW0=D(()=>{z0();T30();j1();z0();z0();j1();z0();z0();j1();z0();z0();z0();z0();j1();j1();z0();z0();j1();z0();z0();z0();j1();z0();z0();z0();j1();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();j1();z0();z0();z0();j1();z0();j1();z0();j1();z0();z0();j1();z0();j1();z0();j1();j1();z0();z0();j1();z0();z0();z0();j1();z0();z0();z0();z0();hW0=iw.object({error:iw.object({message:iw.string(),type:iw.string().nullish(),param:iw.any().nullish(),code:iw.union([iw.string(),iw.number()]).nullish()})}),_9=_4({errorSchema:hW0,errorToMessage:($)=>$.error.message});g24=W0(()=>s(T1.object({id:T1.string().nullish(),created:T1.number().nullish(),model:T1.string().nullish(),choices:T1.array(T1.object({message:T1.object({role:T1.literal("assistant").nullish(),content:T1.string().nullish(),tool_calls:T1.array(T1.object({id:T1.string().nullish(),type:T1.literal("function"),function:T1.object({name:T1.string(),arguments:T1.string()})})).nullish(),annotations:T1.array(T1.object({type:T1.literal("url_citation"),url_citation:T1.object({start_index:T1.number(),end_index:T1.number(),url:T1.string(),title:T1.string()})})).nullish()}),index:T1.number(),logprobs:T1.object({content:T1.array(T1.object({token:T1.string(),logprob:T1.number(),top_logprobs:T1.array(T1.object({token:T1.string(),logprob:T1.number()}))})).nullish()}).nullish(),finish_reason:T1.string().nullish()})),usage:T1.object({prompt_tokens:T1.number().nullish(),completion_tokens:T1.number().nullish(),total_tokens:T1.number().nullish(),prompt_tokens_details:T1.object({cached_tokens:T1.number().nullish(),cache_write_tokens:T1.number().nullish()}).nullish(),completion_tokens_details:T1.object({reasoning_tokens:T1.number().nullish(),accepted_prediction_tokens:T1.number().nullish(),rejected_prediction_tokens:T1.number().nullish()}).nullish()}).nullish()}))),h24=W0(()=>s(T1.union([T1.object({id:T1.string().nullish(),created:T1.number().nullish(),model:T1.string().nullish(),choices:T1.array(T1.object({delta:T1.object({role:T1.enum(["assistant"]).nullish(),content:T1.string().nullish(),tool_calls:T1.array(T1.object({index:T1.number(),id:T1.string().nullish(),type:T1.literal("function").nullish(),function:T1.object({name:T1.string().nullish(),arguments:T1.string().nullish()})})).nullish(),annotations:T1.array(T1.object({type:T1.literal("url_citation"),url_citation:T1.object({start_index:T1.number(),end_index:T1.number(),url:T1.string(),title:T1.string()})})).nullish()}).nullish(),logprobs:T1.object({content:T1.array(T1.object({token:T1.string(),logprob:T1.number(),top_logprobs:T1.array(T1.object({token:T1.string(),logprob:T1.number()}))})).nullish()}).nullish(),finish_reason:T1.string().nullish(),index:T1.number()})),usage:T1.object({prompt_tokens:T1.number().nullish(),completion_tokens:T1.number().nullish(),total_tokens:T1.number().nullish(),prompt_tokens_details:T1.object({cached_tokens:T1.number().nullish(),cache_write_tokens:T1.number().nullish()}).nullish(),completion_tokens_details:T1.object({reasoning_tokens:T1.number().nullish(),accepted_prediction_tokens:T1.number().nullish(),rejected_prediction_tokens:T1.number().nullish()}).nullish()}).nullish()}),hW0]))),u24=W0(()=>s(B5.object({logitBias:B5.record(B5.coerce.number(),B5.number()).optional(),logprobs:B5.union([B5.boolean(),B5.number()]).optional(),parallelToolCalls:B5.boolean().optional(),user:B5.string().optional(),reasoningEffort:B5.enum(["none","minimal","low","medium","high","xhigh","max"]).optional(),maxCompletionTokens:B5.number().optional(),store:B5.boolean().optional(),metadata:B5.record(B5.string().max(64),B5.string().max(512)).optional(),prediction:B5.record(B5.string(),B5.any()).optional(),serviceTier:B5.enum(["auto","flex","priority","fast","ultrafast","default"]).optional(),strictJsonSchema:B5.boolean().optional(),textVerbosity:B5.enum(["low","medium","high"]).optional(),promptCacheKey:B5.string().optional(),promptCacheOptions:B5.object({mode:B5.enum(["implicit","explicit"]).optional(),ttl:B5.literal("30m").optional()}).optional(),promptCacheRetention:B5.enum(["in_memory","24h"]).optional(),safetyIdentifier:B5.string().optional(),systemMessageMode:B5.enum(["system","developer","remove"]).optional(),forceReasoning:B5.boolean().optional()})));c24=class ${constructor(Z,Q){this.specificationVersion="v4",this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=Z,this.config=Q}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get provider(){return this.config.provider}async getArgs({prompt:Z,maxOutputTokens:Q,temperature:Y,topP:X,topK:J,frequencyPenalty:G,presencePenalty:W,stopSequences:K,responseFormat:H,seed:F,tools:U,toolChoice:N,reasoning:B,providerOptions:O}){var L,w,j,E,z,T;let A=[],P=(L=await C$({provider:"openai",providerOptions:O,schema:u24}))!=null?L:{},q=yH$(this.modelId),x=(w=P.reasoningEffort)!=null?w:_B(B)?B:void 0;if(x!=null&&q.supportedReasoningEfforts!=null&&!q.supportedReasoningEfforts.includes(x))A.push({type:"unsupported",feature:"reasoningEffort",details:`${this.modelId} only supports the following reasoning efforts: ${q.supportedReasoningEfforts.join(", ")}`}),x=void 0;let _=(j=P.forceReasoning)!=null?j:q.isReasoningModel;if(J!=null)A.push({type:"unsupported",feature:"topK"});let{messages:V,warnings:y}=y24({prompt:Z,systemMessageMode:(E=P.systemMessageMode)!=null?E:_?"developer":q.systemMessageMode});A.push(...y);let g=(z=P.strictJsonSchema)!=null?z:!0,l=(H==null?void 0:H.type)==="json"&&H.schema!=null?Re(H.schema):void 0;if(l!=null)A.push(...l.warnings);let i={model:this.modelId,logit_bias:P.logitBias,logprobs:P.logprobs===!0||typeof P.logprobs==="number"?!0:void 0,top_logprobs:typeof P.logprobs==="number"?P.logprobs:typeof P.logprobs==="boolean"?P.logprobs?0:void 0:void 0,user:P.user,parallel_tool_calls:P.parallelToolCalls,max_tokens:Q,temperature:Y,top_p:X,frequency_penalty:G,presence_penalty:W,response_format:(H==null?void 0:H.type)==="json"?l!=null?{type:"json_schema",json_schema:{schema:l.schema,strict:g,name:(T=H.name)!=null?T:"response",description:H.description}}:{type:"json_object"}:void 0,stop:K,seed:F,verbosity:P.textVerbosity,max_completion_tokens:P.maxCompletionTokens,store:P.store,metadata:P.metadata,prediction:P.prediction,reasoning_effort:x,service_tier:P.serviceTier,prompt_cache_key:P.promptCacheKey,prompt_cache_options:P.promptCacheOptions,prompt_cache_retention:P.promptCacheRetention,safety_identifier:P.safetyIdentifier,messages:V};if(q.supportedReasoningEfforts!=null&&i.prompt_cache_retention!=null)i.prompt_cache_retention=void 0,A.push({type:"unsupported",feature:"promptCacheRetention",details:"promptCacheRetention is not supported by GPT-6 and later models; use promptCacheOptions instead"});if(_){if(x!=="none"||!q.supportsNonReasoningParameters){if(i.temperature!=null)i.temperature=void 0,A.push({type:"unsupported",feature:"temperature",details:"temperature is not supported for reasoning models"});if(i.top_p!=null)i.top_p=void 0,A.push({type:"unsupported",feature:"topP",details:"topP is not supported for reasoning models"});if(i.logprobs!=null)i.logprobs=void 0,A.push({type:"other",message:"logprobs is not supported for reasoning models"})}if(i.frequency_penalty!=null)i.frequency_penalty=void 0,A.push({type:"unsupported",feature:"frequencyPenalty",details:"frequencyPenalty is not supported for reasoning models"});if(i.presence_penalty!=null)i.presence_penalty=void 0,A.push({type:"unsupported",feature:"presencePenalty",details:"presencePenalty is not supported for reasoning models"});if(i.logit_bias!=null)i.logit_bias=void 0,A.push({type:"other",message:"logitBias is not supported for reasoning models"});if(i.top_logprobs!=null)i.top_logprobs=void 0,A.push({type:"other",message:"topLogprobs is not supported for reasoning models"});if(i.max_tokens!=null){if(i.max_completion_tokens==null)i.max_completion_tokens=i.max_tokens;i.max_tokens=void 0}}else if(this.modelId.startsWith("gpt-4o-search-preview")||this.modelId.startsWith("gpt-4o-mini-search-preview")){if(i.temperature!=null)i.temperature=void 0,A.push({type:"unsupported",feature:"temperature",details:"temperature is not supported for the search preview models and has been removed."})}if(P.serviceTier==="flex"&&!q.supportsFlexProcessing)A.push({type:"unsupported",feature:"serviceTier",details:"flex processing is only available for o3, o4-mini, and gpt-5 models"}),i.service_tier=void 0;if((P.serviceTier==="priority"||P.serviceTier==="fast")&&!q.supportsPriorityProcessing)A.push({type:"unsupported",feature:"serviceTier",details:"priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported"}),i.service_tier=void 0;let{tools:p,toolChoice:U0,toolWarnings:v0}=l24({tools:U,toolChoice:N});return{args:{...i,tools:p,tool_choice:U0},warnings:[...A,...v0]}}async doGenerate(Z){var Q,Y,X,J,G,W,K;let{args:H,warnings:F}=await this.getArgs(Z),{responseHeaders:U,value:N,rawValue:B}=await a1({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:M1((Y=(Q=this.config).headers)==null?void 0:Y.call(Q),Z.headers),body:H,failedResponseHandler:_9,successfulResponseHandler:A1(g24),abortSignal:Z.abortSignal,fetch:this.config.fetch}),O=N.choices[0];if(O==null)throw new D9({data:B,message:"Response did not contain any choices."});let L=[],w=O.message.content;if(w!=null&&w.length>0)L.push({type:"text",text:w});for(let z of(X=O.message.tool_calls)!=null?X:[])L.push({type:"tool-call",toolCallId:z.id||$4(),toolName:z.function.name,input:z.function.arguments});for(let z of(J=O.message.annotations)!=null?J:[])L.push({type:"source",sourceType:"url",id:$4(),url:z.url_citation.url,title:z.url_citation.title});let j=(G=N.usage)==null?void 0:G.completion_tokens_details,E={openai:{}};if((j==null?void 0:j.accepted_prediction_tokens)!=null)E.openai.acceptedPredictionTokens=j==null?void 0:j.accepted_prediction_tokens;if((j==null?void 0:j.rejected_prediction_tokens)!=null)E.openai.rejectedPredictionTokens=j==null?void 0:j.rejected_prediction_tokens;if(((W=O.logprobs)==null?void 0:W.content)!=null)E.openai.logprobs=O.logprobs.content;return{content:L,finishReason:{unified:GH$(O.finish_reason),raw:(K=O.finish_reason)!=null?K:void 0},usage:JH$(N.usage),request:{body:H},response:{...g01(N),headers:U,body:B},warnings:F,providerMetadata:E}}async doStream(Z){var Q,Y;let{args:X,warnings:J}=await this.getArgs(Z),G={...X,stream:!0,stream_options:{include_usage:!0}},W=this.config.url({path:"/chat/completions",modelId:this.modelId}),{responseHeaders:K,value:H}=await a1({url:W,headers:M1((Y=(Q=this.config).headers)==null?void 0:Y.call(Q),Z.headers),body:G,failedResponseHandler:_9,successfulResponseHandler:zY(h24),abortSignal:Z.abortSignal,fetch:this.config.fetch}),F=await B11({stream:H,getError:(E)=>("error"in E)?E.error:void 0,isOutputChunk:m24,url:W,requestBodyValues:G,responseHeaders:K}),U,N={unified:"other",raw:void 0},B=void 0,O=!1,L=!1,w={openai:{}};return{stream:F.pipeThrough(new TransformStream({start(E){U=new lJ$(E,{generateId:$4,typeValidation:"if-present"}),E.enqueue({type:"stream-start",warnings:J})},transform(E,z){var T,A,P,q,x,_;if(Z.includeRawChunks)z.enqueue({type:"raw",rawValue:E.rawValue});if(!E.success){N={unified:"error",raw:void 0},z.enqueue({type:"error",error:E.error});return}let V=E.value;if("error"in V){N={unified:"error",raw:void 0},z.enqueue({type:"error",error:(T=Te(V.error))!=null?T:V.error});return}if(!O){let l=g01(V);if(Object.values(l).some(Boolean))O=!0,z.enqueue({type:"response-metadata",...g01(V)})}if(V.usage!=null){if(B=V.usage,((A=V.usage.completion_tokens_details)==null?void 0:A.accepted_prediction_tokens)!=null)w.openai.acceptedPredictionTokens=(P=V.usage.completion_tokens_details)==null?void 0:P.accepted_prediction_tokens;if(((q=V.usage.completion_tokens_details)==null?void 0:q.rejected_prediction_tokens)!=null)w.openai.rejectedPredictionTokens=(x=V.usage.completion_tokens_details)==null?void 0:x.rejected_prediction_tokens}let y=V.choices[0];if((y==null?void 0:y.finish_reason)!=null)N={unified:GH$(y.finish_reason),raw:y.finish_reason};if(((_=y==null?void 0:y.logprobs)==null?void 0:_.content)!=null)w.openai.logprobs=y.logprobs.content;if((y==null?void 0:y.delta)==null)return;let g=y.delta;if(g.content!=null){if(!L)z.enqueue({type:"text-start",id:"0"}),L=!0;z.enqueue({type:"text-delta",id:"0",delta:g.content})}if(g.tool_calls!=null)for(let l of g.tool_calls)U.processDelta(l);if(g.annotations!=null)for(let l of g.annotations)z.enqueue({type:"source",sourceType:"url",id:$4(),url:l.url_citation.url,title:l.url_citation.title})},flush(E){if(L)E.enqueue({type:"text-end",id:"0"});U.flush(),E.enqueue({type:"finish",finishReason:N,usage:JH$(B),...w!=null?{providerMetadata:w}:{}})}})),request:{body:G},response:{headers:K}}}};i24=W0(()=>s(m8.object({id:m8.string().nullish(),created:m8.number().nullish(),model:m8.string().nullish(),choices:m8.array(m8.object({text:m8.string(),finish_reason:m8.string(),logprobs:m8.object({tokens:m8.array(m8.string()),token_logprobs:m8.array(m8.number()),top_logprobs:m8.array(m8.record(m8.string(),m8.number())).nullish()}).nullish()})),usage:m8.object({prompt_tokens:m8.number(),completion_tokens:m8.number(),total_tokens:m8.number()}).nullish()}))),p24=W0(()=>s(m8.union([m8.object({id:m8.string().nullish(),created:m8.number().nullish(),model:m8.string().nullish(),choices:m8.array(m8.object({text:m8.string(),finish_reason:m8.string().nullish(),index:m8.number(),logprobs:m8.object({tokens:m8.array(m8.string()),token_logprobs:m8.array(m8.number()),top_logprobs:m8.array(m8.record(m8.string(),m8.number())).nullish()}).nullish()})),usage:m8.object({prompt_tokens:m8.number(),completion_tokens:m8.number(),total_tokens:m8.number()}).nullish()}),hW0]))),HH$=W0(()=>s(XU.object({echo:XU.boolean().optional(),logitBias:XU.record(XU.string(),XU.number()).optional(),suffix:XU.string().optional(),user:XU.string().optional(),logprobs:XU.union([XU.boolean(),XU.number()]).optional()}))),n24=class ${constructor(Z,Q){this.specificationVersion="v4",this.supportedUrls={},this.modelId=Z,this.config=Q}get providerOptionsName(){return this.config.provider.split(".")[0].trim()}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get provider(){return this.config.provider}async getArgs({prompt:Z,maxOutputTokens:Q,temperature:Y,topP:X,topK:J,frequencyPenalty:G,presencePenalty:W,stopSequences:K,responseFormat:H,tools:F,toolChoice:U,seed:N,providerOptions:B}){let O=[],L={...await C$({provider:"openai",providerOptions:B,schema:HH$}),...await C$({provider:this.providerOptionsName,providerOptions:B,schema:HH$})};if(J!=null)O.push({type:"unsupported",feature:"topK"});if(F==null?void 0:F.length)O.push({type:"unsupported",feature:"tools"});if(U!=null)O.push({type:"unsupported",feature:"toolChoice"});if(H!=null&&H.type!=="text")O.push({type:"unsupported",feature:"responseFormat",details:"JSON response format is not supported."});let{prompt:w,stopSequences:j}=d24({prompt:Z}),E=[...j!=null?j:[],...K!=null?K:[]];return{args:{model:this.modelId,echo:L.echo,logit_bias:L.logitBias,logprobs:(L==null?void 0:L.logprobs)===!0?0:(L==null?void 0:L.logprobs)===!1?void 0:L==null?void 0:L.logprobs,suffix:L.suffix,user:L.user,max_tokens:Q,temperature:Y,top_p:X,frequency_penalty:G,presence_penalty:W,seed:N,prompt:w,stop:E.length>0?E:void 0},warnings:O}}async doGenerate(Z){var Q,Y,X;let{args:J,warnings:G}=await this.getArgs(Z),{responseHeaders:W,value:K,rawValue:H}=await a1({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:M1((Y=(Q=this.config).headers)==null?void 0:Y.call(Q),Z.headers),body:J,failedResponseHandler:_9,successfulResponseHandler:A1(i24),abortSignal:Z.abortSignal,fetch:this.config.fetch}),F=K.choices[0],U={openai:{}};if(F.logprobs!=null)U.openai.logprobs=F.logprobs;return{content:[{type:"text",text:F.text}],usage:WH$(K.usage),finishReason:{unified:KH$(F.finish_reason),raw:(X=F.finish_reason)!=null?X:void 0},request:{body:J},response:{...os(K),headers:W,body:H},providerMetadata:U,warnings:G}}async doStream(Z){var Q,Y;let{args:X,warnings:J}=await this.getArgs(Z),G={...X,stream:!0,stream_options:{include_usage:!0}},W=this.config.url({path:"/completions",modelId:this.modelId}),{responseHeaders:K,value:H}=await a1({url:W,headers:M1((Y=(Q=this.config).headers)==null?void 0:Y.call(Q),Z.headers),body:G,failedResponseHandler:_9,successfulResponseHandler:zY(p24),abortSignal:Z.abortSignal,fetch:this.config.fetch}),F=await B11({stream:H,getError:(w)=>("error"in w)?w.error:void 0,isOutputChunk:t24,url:W,requestBodyValues:G,responseHeaders:K}),U={unified:"other",raw:void 0},N={openai:{}},B=void 0,O=!0;return{stream:F.pipeThrough(new TransformStream({start(w){w.enqueue({type:"stream-start",warnings:J})},transform(w,j){var E;if(Z.includeRawChunks)j.enqueue({type:"raw",rawValue:w.rawValue});if(!w.success){U={unified:"error",raw:void 0},j.enqueue({type:"error",error:w.error});return}let z=w.value;if("error"in z){U={unified:"error",raw:void 0},j.enqueue({type:"error",error:(E=Te(z.error))!=null?E:z.error});return}if(O)O=!1,j.enqueue({type:"response-metadata",...os(z)}),j.enqueue({type:"text-start",id:"0"});if(z.usage!=null)B=z.usage;let T=z.choices[0];if((T==null?void 0:T.finish_reason)!=null)U={unified:KH$(T.finish_reason),raw:T.finish_reason};if((T==null?void 0:T.logprobs)!=null)N.openai.logprobs=T.logprobs;if((T==null?void 0:T.text)!=null&&T.text.length>0)j.enqueue({type:"text-delta",id:"0",delta:T.text})},flush(w){if(!O)w.enqueue({type:"text-end",id:"0"});w.enqueue({type:"finish",finishReason:U,providerMetadata:N,usage:WH$(B)})}})),request:{body:G},response:{headers:K}}}};o24=W0(()=>s(h01.object({dimensions:h01.number().optional(),user:h01.string().optional()}))),r24=W0(()=>s(t2.object({data:t2.array(t2.object({embedding:t2.array(t2.number())})),usage:t2.object({prompt_tokens:t2.number()}).nullish()}))),s24=class ${constructor(Z,Q){this.specificationVersion="v4",this.maxEmbeddingsPerCall=2048,this[FH$]=300000,this.supportsParallelCalls=!0,this.modelId=Z,this.config=Q}static[(FH$=RJ$,G4)](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get provider(){return this.config.provider}async doEmbed({values:Z,headers:Q,abortSignal:Y,providerOptions:X}){var J,G,W;if(Z.length>this.maxEmbeddingsPerCall)throw new K30({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:Z});let K=(J=await C$({provider:"openai",providerOptions:X,schema:o24}))!=null?J:{},{responseHeaders:H,value:F,rawValue:U}=await a1({url:this.config.url({path:"/embeddings",modelId:this.modelId}),headers:M1((W=(G=this.config).headers)==null?void 0:W.call(G),Q),body:{model:this.modelId,input:Z,encoding_format:"float",dimensions:K.dimensions,user:K.user},failedResponseHandler:_9,successfulResponseHandler:A1(r24),abortSignal:Y,fetch:this.config.fetch});return{warnings:[],embeddings:F.data.map((N)=>N.embedding),usage:F.usage?{tokens:F.usage.prompt_tokens}:void 0,response:{headers:H,body:U}}}},fW0=W0(()=>s(nG.object({id:nG.string(),object:nG.string().nullish(),bytes:nG.number().nullish(),created_at:nG.number().nullish(),filename:nG.string().nullish(),purpose:nG.string().nullish(),status:nG.string().nullish(),expires_at:nG.number().nullish()}))),a24=W0(()=>s(nG.object({id:nG.string(),object:nG.string().nullish(),deleted:nG.boolean()}))),e24=W0(()=>s(u01.object({purpose:u01.string().optional(),expiresAfter:u01.number().optional()})));UH$=W0(()=>s(yQ.object({created:yQ.number().nullish(),data:yQ.array(yQ.object({b64_json:yQ.string(),revised_prompt:yQ.string().nullish()})),background:yQ.string().nullish(),output_format:yQ.string().nullish(),size:yQ.string().nullish(),quality:yQ.string().nullish(),usage:yQ.object({input_tokens:yQ.number().nullish(),output_tokens:yQ.number().nullish(),total_tokens:yQ.number().nullish(),input_tokens_details:yQ.object({image_tokens:yQ.number().nullish(),text_tokens:yQ.number().nullish()}).nullish()}).nullish()}))),ZA4={"dall-e-3":1,"dall-e-2":10,"gpt-image-1":10,"gpt-image-1-mini":10,"gpt-image-1.5":10,"gpt-image-2":10,"gpt-image-2.5-flare":10,"gpt-image-2.5-flare-2026-09-08":10,"gpt-image-2.5-sunburst":10,"gpt-image-2.5-sunburst-2026-09-08":10,"chatgpt-image-latest":10},QA4=["chatgpt-image-","gpt-image-"];D11=dB.object({quality:dB.enum(["standard","hd","low","medium","high","xhigh","max","auto"]).optional(),background:dB.enum(["transparent","opaque","auto"]).optional(),outputFormat:dB.enum(["png","jpeg","webp"]).optional(),outputCompression:dB.number().int().min(0).max(100).optional(),user:dB.string().optional()}),Uo5=W0(()=>s(D11)),JA4=W0(()=>s(D11.extend({style:dB.enum(["vivid","natural"]).optional(),moderation:dB.enum(["auto","low"]).optional()}))),GA4=W0(()=>s(D11.extend({inputFidelity:dB.enum(["high","low"]).optional()}))),WA4=class ${constructor(Z,Q){this.modelId=Z,this.config=Q,this.specificationVersion="v4"}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get maxImagesPerCall(){return XA4(this.modelId)}get provider(){return this.config.provider}async doGenerate({prompt:Z,files:Q,mask:Y,n:X,size:J,aspectRatio:G,seed:W,providerOptions:K,headers:H,abortSignal:F}){var U,N,B,O,L,w,j,E,z,T,A,P,q,x,_;let V=[];if(G!=null)V.push({type:"unsupported",feature:"aspectRatio",details:"This model does not support aspect ratio. Use `size` instead."});if(W!=null)V.push({type:"unsupported",feature:"seed"});let y=(B=(N=(U=this.config._internal)==null?void 0:U.currentDate)==null?void 0:N.call(U))!=null?B:new Date;if(Q!=null){let p=(O=await C$({provider:"openai",providerOptions:K,schema:GA4}))!=null?O:{},{value:U0,responseHeaders:v0}=await KW({url:this.config.url({path:"/images/edits",modelId:this.modelId}),headers:M1((w=(L=this.config).headers)==null?void 0:w.call(L),H),formData:BJ$({model:this.modelId,prompt:Z,image:await Promise.all(Q.map((G0)=>G0.type==="file"?new Blob([G0.data instanceof Uint8Array?new Blob([G0.data],{type:G0.mediaType}):new Blob([h9(G0.data)],{type:G0.mediaType})],{type:G0.mediaType}):es(G0.url,{abortSignal:F}))),mask:Y!=null?await KA4(Y,F):void 0,n:X,size:J,quality:p.quality,background:p.background,output_format:p.outputFormat,output_compression:p.outputCompression,input_fidelity:p.inputFidelity,user:p.user}),failedResponseHandler:_9,successfulResponseHandler:A1(UH$),abortSignal:F,fetch:this.config.fetch});return{images:U0.data.map((G0)=>G0.b64_json),warnings:V,usage:U0.usage!=null?{inputTokens:(j=U0.usage.input_tokens)!=null?j:void 0,outputTokens:(E=U0.usage.output_tokens)!=null?E:void 0,totalTokens:(z=U0.usage.total_tokens)!=null?z:void 0}:void 0,response:{timestamp:y,modelId:this.modelId,headers:v0},providerMetadata:{openai:{images:U0.data.map((G0,N0)=>{var o,$0,Z0,r,Y0,d0;return{...G0.revised_prompt?{revisedPrompt:G0.revised_prompt}:{},created:(o=U0.created)!=null?o:void 0,size:($0=U0.size)!=null?$0:void 0,quality:(Z0=U0.quality)!=null?Z0:void 0,background:(r=U0.background)!=null?r:void 0,outputFormat:(Y0=U0.output_format)!=null?Y0:void 0,...NH$((d0=U0.usage)==null?void 0:d0.input_tokens_details,N0,U0.data.length)}})}}}}let g=(T=await C$({provider:"openai",providerOptions:K,schema:JA4}))!=null?T:{},{value:l,responseHeaders:i}=await a1({url:this.config.url({path:"/images/generations",modelId:this.modelId}),headers:M1((P=(A=this.config).headers)==null?void 0:P.call(A),H),body:{model:this.modelId,prompt:Z,n:X,size:J,quality:g.quality,style:g.style,background:g.background,moderation:g.moderation,output_format:g.outputFormat,output_compression:g.outputCompression,user:g.user,...!YA4(this.modelId)?{response_format:"b64_json"}:{}},failedResponseHandler:_9,successfulResponseHandler:A1(UH$),abortSignal:F,fetch:this.config.fetch});return{images:l.data.map((p)=>p.b64_json),warnings:V,usage:l.usage!=null?{inputTokens:(q=l.usage.input_tokens)!=null?q:void 0,outputTokens:(x=l.usage.output_tokens)!=null?x:void 0,totalTokens:(_=l.usage.total_tokens)!=null?_:void 0}:void 0,response:{timestamp:y,modelId:this.modelId,headers:i},providerMetadata:{openai:{images:l.data.map((p,U0)=>{var v0,G0,N0,o,$0,Z0;return{...p.revised_prompt?{revisedPrompt:p.revised_prompt}:{},created:(v0=l.created)!=null?v0:void 0,size:(G0=l.size)!=null?G0:void 0,quality:(N0=l.quality)!=null?N0:void 0,background:(o=l.background)!=null?o:void 0,outputFormat:($0=l.output_format)!=null?$0:void 0,...NH$((Z0=l.usage)==null?void 0:Z0.input_tokens_details,U0,l.data.length)}})}}}}};gH$=W0(()=>s(e7.object({callId:e7.string(),operation:e7.discriminatedUnion("type",[e7.object({type:e7.literal("create_file"),path:e7.string(),diff:e7.string()}),e7.object({type:e7.literal("delete_file"),path:e7.string()}),e7.object({type:e7.literal("update_file"),path:e7.string(),diff:e7.string()})])}))),hH$=W0(()=>s(e7.object({status:e7.enum(["completed","failed"]),output:e7.string().optional()}))),Do5=W0(()=>s(e7.object({}))),HA4=iF({id:"openai.apply_patch",inputSchema:gH$,outputSchema:hH$}),FA4=HA4,UA4=W0(()=>s($Q.object({code:$Q.string().nullish(),containerId:$Q.string()}))),NA4=W0(()=>s($Q.object({outputs:$Q.array($Q.discriminatedUnion("type",[$Q.object({type:$Q.literal("logs"),logs:$Q.string()}),$Q.object({type:$Q.literal("image"),url:$Q.string()})])).nullish()}))),BA4=W0(()=>s($Q.object({container:$Q.union([$Q.string(),$Q.object({fileIds:$Q.array($Q.string()).optional()})]).optional()}))),DA4=c$({id:"openai.code_interpreter",inputSchema:UA4,outputSchema:NA4}),uH$=F$.object({id:F$.string(),code:F$.string().optional(),message:F$.string().optional()}),LA4=F$.discriminatedUnion("type",[F$.object({type:F$.literal("click"),button:F$.enum(["left","right","wheel","back","forward"]),x:F$.number(),y:F$.number(),keys:F$.array(F$.string()).optional()}),F$.object({type:F$.literal("double_click"),x:F$.number(),y:F$.number(),keys:F$.array(F$.string()).optional()}),F$.object({type:F$.literal("drag"),path:F$.array(F$.object({x:F$.number(),y:F$.number()})),keys:F$.array(F$.string()).optional()}),F$.object({type:F$.literal("keypress"),keys:F$.array(F$.string())}),F$.object({type:F$.literal("move"),x:F$.number(),y:F$.number(),keys:F$.array(F$.string()).optional()}),F$.object({type:F$.literal("screenshot")}),F$.object({type:F$.literal("scroll"),x:F$.number(),y:F$.number(),scrollX:F$.number(),scrollY:F$.number(),keys:F$.array(F$.string()).optional()}),F$.object({type:F$.literal("type"),text:F$.string()}),F$.object({type:F$.literal("wait")})]),lH$=W0(()=>s(F$.object({actions:F$.array(LA4),pendingSafetyChecks:F$.array(uH$),status:F$.enum(["in_progress","completed","incomplete"])}))),cH$=W0(()=>s(F$.object({output:F$.union([F$.object({type:F$.literal("computer_screenshot"),imageUrl:F$.string(),fileId:F$.string().optional(),detail:F$.enum(["auto","low","high","original"]).optional()}),F$.object({type:F$.literal("computer_screenshot"),fileId:F$.string(),imageUrl:F$.string().optional(),detail:F$.enum(["auto","low","high","original"]).optional()})]),acknowledgedSafetyChecks:F$.array(uH$).optional()}))),wA4=iF({id:"openai.computer",inputSchema:lH$,outputSchema:cH$}),EA4=W0(()=>s(XH.object({description:XH.string().optional(),async:XH.boolean().optional(),format:XH.union([XH.object({type:XH.literal("grammar"),syntax:XH.enum(["regex","lark"]),definition:XH.string()}),XH.object({type:XH.literal("text")})]).optional()}))),zA4=W0(()=>s(XH.string())),PA4=FZ({id:"openai.custom",inputSchema:zA4}),mH$=H6.object({key:H6.string(),type:H6.enum(["eq","ne","gt","gte","lt","lte","in","nin"]),value:H6.union([H6.string(),H6.number(),H6.boolean(),H6.array(H6.string())])}),dH$=H6.object({type:H6.enum(["and","or"]),filters:H6.array(H6.union([mH$,H6.lazy(()=>dH$)]))}),TA4=W0(()=>s(H6.object({vectorStoreIds:H6.array(H6.string()),maxNumResults:H6.number().optional(),ranking:H6.object({ranker:H6.string().optional(),scoreThreshold:H6.number().optional()}).optional(),filters:H6.union([mH$,dH$]).optional()}))),RA4=W0(()=>s(H6.object({queries:H6.array(H6.string()),results:H6.array(H6.object({attributes:H6.record(H6.string(),H6.unknown()),fileId:H6.string(),filename:H6.string(),score:H6.number(),text:H6.string()})).nullable()}))),qA4=c$({id:"openai.file_search",inputSchema:H6.object({}),outputSchema:RA4}),MA4=W0(()=>s(V7.object({action:V7.enum(["generate","edit","auto"]).optional(),background:V7.enum(["auto","opaque","transparent"]).optional(),inputFidelity:V7.enum(["low","high"]).optional(),inputImageMask:V7.object({fileId:V7.string().optional(),imageUrl:V7.string().optional()}).optional(),model:V7.string().optional(),moderation:V7.enum(["auto","low"]).optional(),outputCompression:V7.number().int().min(0).max(100).optional(),outputFormat:V7.enum(["png","jpeg","webp"]).optional(),partialImages:V7.number().int().min(0).max(3).optional(),quality:V7.enum(["auto","low","medium","high","xhigh","max"]).optional(),size:V7.union([V7.enum(["1024x1024","1024x1536","1536x1024","auto"]),V7.string().regex(/^\d+x\d+$/)]).optional()}).strict())),IA4=W0(()=>s(V7.object({}))),VA4=W0(()=>s(V7.object({result:V7.string()}))),kA4=c$({id:"openai.image_generation",inputSchema:IA4,outputSchema:VA4}),iH$=W0(()=>s(pG.object({action:pG.object({type:pG.literal("exec"),command:pG.array(pG.string()),timeoutMs:pG.number().optional(),user:pG.string().optional(),workingDirectory:pG.string().optional(),env:pG.record(pG.string(),pG.string()).optional()})}))),pH$=W0(()=>s(pG.object({output:pG.string()}))),CA4=iF({id:"openai.local_shell",inputSchema:iH$,outputSchema:pH$}),nH$=W0(()=>s(v$.object({action:v$.object({commands:v$.array(v$.string()),timeoutMs:v$.number().optional(),maxOutputLength:v$.number().optional()})}))),t01=W0(()=>s(v$.object({output:v$.array(v$.object({stdout:v$.string(),stderr:v$.string(),outcome:v$.discriminatedUnion("type",[v$.object({type:v$.literal("timeout")}),v$.object({type:v$.literal("exit"),exitCode:v$.number()})])}))}))),_A4=v$.array(v$.discriminatedUnion("type",[v$.object({type:v$.literal("skillReference"),providerReference:v$.record(v$.string(),v$.string()),version:v$.string().optional()}),v$.object({type:v$.literal("inline"),name:v$.string(),description:v$.string(),source:v$.object({type:v$.literal("base64"),mediaType:v$.literal("application/zip"),data:v$.string()})})])).optional(),vA4=W0(()=>s(v$.object({environment:v$.union([v$.object({type:v$.literal("containerAuto"),fileIds:v$.array(v$.string()).optional(),memoryLimit:v$.enum(["1g","4g","16g","64g"]).optional(),networkPolicy:v$.discriminatedUnion("type",[v$.object({type:v$.literal("disabled")}),v$.object({type:v$.literal("allowlist"),allowedDomains:v$.array(v$.string()),domainSecrets:v$.array(v$.object({domain:v$.string(),name:v$.string(),value:v$.string()})).optional()})]).optional(),skills:_A4}),v$.object({type:v$.literal("containerReference"),containerId:v$.string()}),v$.object({type:v$.literal("local").optional(),skills:v$.array(v$.object({name:v$.string(),description:v$.string(),path:v$.string()})).optional()})]).optional()}))),bA4=iF({id:"openai.shell",inputSchema:nH$,outputSchema:t01}),xA4=W0(()=>s(MJ.object({execution:MJ.enum(["server","client"]).optional(),description:MJ.string().optional(),parameters:MJ.record(MJ.string(),MJ.unknown()).optional()}))),o01=W0(()=>s(MJ.object({arguments:MJ.unknown().optional(),call_id:MJ.string().nullish()}))),r01=W0(()=>s(MJ.object({tools:MJ.array(MJ.record(MJ.string(),MJ.unknown()))}))),fA4=iF({id:"openai.tool_search",inputSchema:o01,outputSchema:r01}),gA4=W0(()=>s(d4.object({externalWebAccess:d4.boolean().optional(),filters:d4.object({allowedDomains:d4.array(d4.string()).optional(),blockedDomains:d4.array(d4.string()).optional()}).optional(),searchContextSize:d4.enum(["low","medium","high"]).optional(),userLocation:d4.object({type:d4.literal("approximate"),country:d4.string().optional(),city:d4.string().optional(),region:d4.string().optional(),timezone:d4.string().optional()}).optional()}))),hA4=W0(()=>s(d4.object({}))),uA4=W0(()=>s(d4.object({action:d4.discriminatedUnion("type",[d4.object({type:d4.literal("search"),query:d4.string().optional(),queries:d4.array(d4.string()).optional()}),d4.object({type:d4.literal("openPage"),url:d4.string().nullish()}),d4.object({type:d4.literal("findInPage"),url:d4.string().nullish(),pattern:d4.string().nullish()})]).optional(),sources:d4.array(d4.discriminatedUnion("type",[d4.object({type:d4.literal("url"),url:d4.string()}),d4.object({type:d4.literal("api"),name:d4.string()})])).optional()}))),lA4=c$({id:"openai.web_search",inputSchema:hA4,outputSchema:uA4}),mA4=W0(()=>s(gZ.object({searchContextSize:gZ.enum(["low","medium","high"]).optional(),userLocation:gZ.object({type:gZ.literal("approximate"),country:gZ.string().optional(),city:gZ.string().optional(),region:gZ.string().optional(),timezone:gZ.string().optional()}).optional()}))),dA4=W0(()=>s(gZ.object({}))),iA4=W0(()=>s(gZ.object({action:gZ.discriminatedUnion("type",[gZ.object({type:gZ.literal("search"),query:gZ.string().optional()}),gZ.object({type:gZ.literal("openPage"),url:gZ.string().nullish()}),gZ.object({type:gZ.literal("findInPage"),url:gZ.string().nullish(),pattern:gZ.string().nullish()})]).optional()}))),pA4=c$({id:"openai.web_search_preview",inputSchema:dA4,outputSchema:iA4}),s01=E4.lazy(()=>E4.union([E4.string(),E4.number(),E4.boolean(),E4.null(),E4.array(s01),E4.record(E4.string(),s01)])),nA4=W0(()=>s(E4.object({serverLabel:E4.string(),allowedTools:E4.union([E4.array(E4.string()),E4.object({readOnly:E4.boolean().optional(),toolNames:E4.array(E4.string()).optional()})]).optional(),authorization:E4.string().optional(),connectorId:E4.string().optional(),headers:E4.record(E4.string(),E4.string()).optional(),requireApproval:E4.union([E4.enum(["always","never"]),E4.object({never:E4.object({toolNames:E4.array(E4.string()).optional()}).optional()})]).optional(),serverDescription:E4.string().optional(),serverUrl:E4.string().optional()}).refine(($)=>$.serverUrl!=null||$.connectorId!=null,"One of serverUrl or connectorId must be provided."))),tA4=W0(()=>s(E4.object({}))),oA4=W0(()=>s(E4.object({type:E4.literal("call"),serverLabel:E4.string(),name:E4.string(),arguments:E4.string(),output:E4.string().nullish(),error:E4.union([E4.string(),s01]).optional()}))),rA4=c$({id:"openai.mcp",inputSchema:tA4,outputSchema:oA4}),tH$=W0(()=>s(_c.object({code:_c.string(),fingerprint:_c.string()}))),oH$=W0(()=>s(_c.object({result:_c.string(),status:_c.enum(["completed","incomplete"])}))),aA4=c$({id:"openai.programmatic_tool_calling",inputSchema:tH$,outputSchema:oH$,supportsDeferredResults:!0}),$T4={applyPatch:FA4,customTool:AA4,codeInterpreter:OA4,computer:jA4,fileSearch:qA4,imageGeneration:SA4,localShell:CA4,shell:bA4,webSearchPreview:pA4,webSearch:cA4,mcp:sA4,programmaticToolCalling:eA4,toolSearch:yA4};vc=R.lazy(()=>R.union([R.string(),R.number(),R.boolean(),R.null(),R.array(vc),R.record(R.string(),vc.optional())])),c01=R.record(R.string(),vc.optional()),e01=R.intersection(c01,R.object({input_tokens:R.number(),input_tokens_details:R.intersection(c01,R.object({cached_tokens:R.number().nullish(),cache_write_tokens:R.number().nullish(),orchestration_input_tokens:R.number().nullish(),orchestration_input_cached_tokens:R.number().nullish()})).nullish(),output_tokens:R.number(),output_tokens_details:R.intersection(c01,R.object({reasoning_tokens:R.number().nullish(),orchestration_output_tokens:R.number().nullish()})).nullish(),total_tokens:R.number().optional()})),ZT4=R.object({id:R.string(),code:R.string().nullish(),message:R.string().nullish()}),BH$=R.discriminatedUnion("type",[R.object({type:R.literal("click"),button:R.enum(["left","right","wheel","back","forward"]),x:R.number(),y:R.number(),keys:R.array(R.string()).nullish()}),R.object({type:R.literal("double_click"),x:R.number(),y:R.number(),keys:R.array(R.string()).nullish()}),R.object({type:R.literal("drag"),path:R.array(R.object({x:R.number(),y:R.number()})),keys:R.array(R.string()).nullish()}),R.object({type:R.literal("keypress"),keys:R.array(R.string())}),R.object({type:R.literal("move"),x:R.number(),y:R.number(),keys:R.array(R.string()).nullish()}),R.object({type:R.literal("screenshot")}),R.object({type:R.literal("scroll"),x:R.number(),y:R.number(),scroll_x:R.number(),scroll_y:R.number(),keys:R.array(R.string()).nullish()}),R.object({type:R.literal("type"),text:R.string()}),R.object({type:R.literal("wait")})]),$11=R.object({type:R.literal("computer_call"),id:R.string(),call_id:R.string().nullish(),status:R.enum(["in_progress","completed","incomplete"]),action:BH$.nullish(),actions:R.array(BH$).nullish(),pending_safety_checks:R.array(ZT4).nullish()}),Z11=R.discriminatedUnion("type",[R.object({type:R.literal("direct")}),R.object({type:R.literal("program"),caller_id:R.string()})]),Q11=R.object({type:R.literal("program"),id:R.string(),call_id:R.string(),code:R.string(),fingerprint:R.string()}),Y11=R.object({type:R.literal("program_output"),id:R.string(),call_id:R.string(),result:R.string(),status:R.enum(["completed","incomplete"])}),X11=R.object({type:R.literal("local_shell_call"),id:R.string(),call_id:R.string(),action:R.object({type:R.literal("exec"),command:R.array(R.string()),timeout_ms:R.number().optional(),user:R.string().optional(),working_directory:R.string().optional(),env:R.record(R.string(),R.string()).optional()})}),QT4=R.object({type:R.literal("error"),sequence_number:R.number(),error:R.object({type:R.string(),code:R.string(),message:R.string(),param:R.string().nullish()})}),YT4=R.object({type:R.literal("error"),sequence_number:R.number(),code:R.string().nullish(),message:R.string(),param:R.string().nullish()}),XT4=new Set(["error","response.apply_patch_call_operation_diff.delta","response.apply_patch_call_operation_diff.done","response.code_interpreter_call_code.delta","response.code_interpreter_call_code.done","response.completed","response.created","response.custom_tool_call_input.delta","response.failed","response.function_call_arguments.delta","response.function_call_arguments.done","response.image_generation_call.partial_image","response.in_progress","response.incomplete","response.output_item.added","response.output_item.done","response.output_text.annotation.added","response.output_text.delta","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta"]),JT4=new Set(["apply_patch_call","code_interpreter_call","compaction","computer_call","custom_tool_call","file_search_call","function_call","image_generation_call","local_shell_call","mcp_approval_request","mcp_call","mcp_list_tools","message","program","program_output","reasoning","shell_call","shell_call_output","tool_search_call","tool_search_output","web_search_call"]);WT4=W0(()=>s(R.union([R.object({type:R.literal("response.output_text.delta"),item_id:R.string(),output_index:R.number().nullish(),delta:R.string(),logprobs:R.array(R.object({token:R.string(),logprob:R.number(),top_logprobs:R.array(R.object({token:R.string(),logprob:R.number()}))})).nullish()}),R.object({type:R.enum(["response.completed","response.incomplete"]),response:R.object({incomplete_details:R.object({reason:R.string()}).nullish(),usage:e01.nullish(),reasoning:R.object({context:R.string().nullish()}).nullish(),service_tier:R.string().nullish()})}),R.object({type:R.literal("response.failed"),sequence_number:R.number(),response:R.object({error:R.object({code:R.string().nullish(),message:R.string()}).nullish(),incomplete_details:R.object({reason:R.string()}).nullish(),usage:e01.nullish(),reasoning:R.object({context:R.string().nullish()}).nullish(),service_tier:R.string().nullish()})}),R.object({type:R.literal("response.created"),response:R.object({id:R.string(),created_at:R.number(),model:R.string(),service_tier:R.string().nullish()})}),R.object({type:R.literal("response.in_progress"),response:R.object({id:R.string(),created_at:R.number(),model:R.string(),service_tier:R.string().nullish()})}),R.object({type:R.literal("response.output_item.added"),output_index:R.number(),item:R.discriminatedUnion("type",[R.object({type:R.literal("message"),id:R.string(),phase:R.enum(["commentary","final_answer"]).nullish()}),R.object({type:R.literal("reasoning"),id:R.string(),encrypted_content:R.string().nullish()}),R.object({type:R.literal("function_call"),id:R.string(),call_id:R.string(),name:R.string(),arguments:R.string(),async:R.boolean().nullish(),namespace:R.string().nullish(),caller:Z11.nullish()}),Q11,Y11,R.object({type:R.literal("web_search_call"),id:R.string(),status:R.string()}),$11,R.object({type:R.literal("file_search_call"),id:R.string()}),X11,R.object({type:R.literal("image_generation_call"),id:R.string()}),R.object({type:R.literal("code_interpreter_call"),id:R.string(),container_id:R.string(),code:R.string().nullable(),outputs:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("logs"),logs:R.string()}),R.object({type:R.literal("image"),url:R.string()})])).nullable(),status:R.string()}),R.object({type:R.literal("mcp_call"),id:R.string(),status:R.string(),approval_request_id:R.string().nullish()}),R.object({type:R.literal("mcp_list_tools"),id:R.string()}),R.object({type:R.literal("mcp_approval_request"),id:R.string()}),R.object({type:R.literal("apply_patch_call"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed"]),operation:R.discriminatedUnion("type",[R.object({type:R.literal("create_file"),path:R.string(),diff:R.string()}),R.object({type:R.literal("delete_file"),path:R.string()}),R.object({type:R.literal("update_file"),path:R.string(),diff:R.string()})])}),R.object({type:R.literal("custom_tool_call"),id:R.string(),call_id:R.string(),name:R.string(),input:R.string(),async:R.boolean().nullish()}),R.object({type:R.literal("shell_call"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed","incomplete"]),action:R.object({commands:R.array(R.string())})}),R.object({type:R.literal("compaction"),id:R.string(),encrypted_content:R.string().nullish()}),R.object({type:R.literal("shell_call_output"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed","incomplete"]),output:R.array(R.object({stdout:R.string(),stderr:R.string(),outcome:R.discriminatedUnion("type",[R.object({type:R.literal("timeout")}),R.object({type:R.literal("exit"),exit_code:R.number()})])}))}),R.object({type:R.literal("tool_search_call"),id:R.string(),execution:R.enum(["server","client"]),call_id:R.string().nullable(),status:R.enum(["in_progress","completed","incomplete"]),arguments:R.unknown()}),R.object({type:R.literal("tool_search_output"),id:R.string(),execution:R.enum(["server","client"]),call_id:R.string().nullable(),status:R.enum(["in_progress","completed","incomplete"]),tools:R.array(R.record(R.string(),vc.optional()))})])}),R.object({type:R.literal("response.output_item.done"),output_index:R.number(),item:R.discriminatedUnion("type",[R.object({type:R.literal("message"),id:R.string(),phase:R.enum(["commentary","final_answer"]).nullish()}),R.object({type:R.literal("reasoning"),id:R.string(),encrypted_content:R.string().nullish()}),R.object({type:R.literal("function_call"),id:R.string(),call_id:R.string(),name:R.string(),arguments:R.string(),async:R.boolean().nullish(),status:R.enum(["in_progress","completed","incomplete"]),namespace:R.string().nullish(),caller:Z11.nullish()}),Q11,Y11,R.object({type:R.literal("custom_tool_call"),id:R.string(),call_id:R.string(),name:R.string(),input:R.string(),async:R.boolean().nullish(),status:R.literal("completed")}),R.object({type:R.literal("code_interpreter_call"),id:R.string(),code:R.string().nullable(),container_id:R.string(),outputs:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("logs"),logs:R.string()}),R.object({type:R.literal("image"),url:R.string()})])).nullable()}),R.object({type:R.literal("image_generation_call"),id:R.string(),result:R.string()}),R.object({type:R.literal("web_search_call"),id:R.string(),status:R.string(),action:R.discriminatedUnion("type",[R.object({type:R.literal("search"),query:R.string().nullish(),queries:R.array(R.string()).nullish(),sources:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("url"),url:R.string()}),R.object({type:R.literal("api"),name:R.string()})])).nullish()}),R.object({type:R.literal("open_page"),url:R.string().nullish()}),R.object({type:R.literal("find_in_page"),url:R.string().nullish(),pattern:R.string().nullish()})]).nullish()}),R.object({type:R.literal("file_search_call"),id:R.string(),queries:R.array(R.string()),results:R.array(R.object({attributes:R.record(R.string(),R.union([R.string(),R.number(),R.boolean()])),file_id:R.string(),filename:R.string(),score:R.number(),text:R.string()})).nullish()}),X11,$11,R.object({type:R.literal("mcp_call"),id:R.string(),status:R.string(),arguments:R.string(),name:R.string(),server_label:R.string(),output:R.string().nullish(),error:R.union([R.string(),R.object({type:R.string().optional(),code:R.union([R.number(),R.string()]).optional(),message:R.string().optional()}).loose()]).nullish(),approval_request_id:R.string().nullish()}),R.object({type:R.literal("mcp_list_tools"),id:R.string(),server_label:R.string(),tools:R.array(R.object({name:R.string(),description:R.string().optional(),input_schema:R.any(),annotations:R.record(R.string(),R.unknown()).optional()})),error:R.union([R.string(),R.object({type:R.string().optional(),code:R.union([R.number(),R.string()]).optional(),message:R.string().optional()}).loose()]).optional()}),R.object({type:R.literal("mcp_approval_request"),id:R.string(),server_label:R.string(),name:R.string(),arguments:R.string(),approval_request_id:R.string().optional()}),R.object({type:R.literal("apply_patch_call"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed"]),operation:R.discriminatedUnion("type",[R.object({type:R.literal("create_file"),path:R.string(),diff:R.string()}),R.object({type:R.literal("delete_file"),path:R.string()}),R.object({type:R.literal("update_file"),path:R.string(),diff:R.string()})])}),R.object({type:R.literal("shell_call"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed","incomplete"]),action:R.object({commands:R.array(R.string())})}),R.object({type:R.literal("compaction"),id:R.string(),encrypted_content:R.string()}),R.object({type:R.literal("shell_call_output"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed","incomplete"]),output:R.array(R.object({stdout:R.string(),stderr:R.string(),outcome:R.discriminatedUnion("type",[R.object({type:R.literal("timeout")}),R.object({type:R.literal("exit"),exit_code:R.number()})])}))}),R.object({type:R.literal("tool_search_call"),id:R.string(),execution:R.enum(["server","client"]),call_id:R.string().nullable(),status:R.enum(["in_progress","completed","incomplete"]),arguments:R.unknown()}),R.object({type:R.literal("tool_search_output"),id:R.string(),execution:R.enum(["server","client"]),call_id:R.string().nullable(),status:R.enum(["in_progress","completed","incomplete"]),tools:R.array(R.record(R.string(),vc.optional()))})])}),R.object({type:R.literal("response.function_call_arguments.delta"),item_id:R.string(),output_index:R.number(),delta:R.string()}),R.object({type:R.literal("response.function_call_arguments.done"),item_id:R.string(),output_index:R.number(),arguments:R.string()}),R.object({type:R.literal("response.custom_tool_call_input.delta"),item_id:R.string(),output_index:R.number(),delta:R.string()}),R.object({type:R.literal("response.image_generation_call.partial_image"),item_id:R.string(),output_index:R.number(),partial_image_b64:R.string()}),R.object({type:R.literal("response.code_interpreter_call_code.delta"),item_id:R.string(),output_index:R.number(),delta:R.string()}),R.object({type:R.literal("response.code_interpreter_call_code.done"),item_id:R.string(),output_index:R.number(),code:R.string()}),R.object({type:R.literal("response.output_text.annotation.added"),annotation:R.discriminatedUnion("type",[R.object({type:R.literal("url_citation"),start_index:R.number(),end_index:R.number(),url:R.string(),title:R.string()}),R.object({type:R.literal("file_citation"),file_id:R.string(),filename:R.string(),index:R.number()}),R.object({type:R.literal("container_file_citation"),container_id:R.string(),file_id:R.string(),filename:R.string(),start_index:R.number(),end_index:R.number()}),R.object({type:R.literal("file_path"),file_id:R.string(),index:R.number()})])}),R.object({type:R.literal("response.reasoning_summary_part.added"),item_id:R.string(),output_index:R.number().nullish(),summary_index:R.number()}),R.object({type:R.literal("response.reasoning_summary_text.delta"),item_id:R.string(),output_index:R.number().nullish(),summary_index:R.number(),delta:R.string()}),R.object({type:R.literal("response.reasoning_summary_part.done"),item_id:R.string(),output_index:R.number().nullish(),summary_index:R.number()}),R.object({type:R.literal("response.apply_patch_call_operation_diff.delta"),item_id:R.string(),output_index:R.number(),delta:R.string(),obfuscation:R.string().nullish()}),R.object({type:R.literal("response.apply_patch_call_operation_diff.done"),item_id:R.string(),output_index:R.number(),diff:R.string()}),QT4,YT4,R.object({type:R.string()}).loose().refine(($)=>!GT4($),{message:"Known response chunk failed schema validation"}).transform(($)=>({type:"unknown_chunk",message:$.type}))]))),rH$=W0(()=>s(R.object({id:R.string().optional(),created_at:R.number().optional(),error:R.object({message:R.string(),type:R.string(),param:R.string().nullish(),code:R.string()}).nullish(),model:R.string().optional(),output:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("message"),role:R.literal("assistant"),id:R.string(),phase:R.enum(["commentary","final_answer"]).nullish(),content:R.array(R.object({type:R.literal("output_text"),text:R.string(),logprobs:R.array(R.object({token:R.string(),logprob:R.number(),top_logprobs:R.array(R.object({token:R.string(),logprob:R.number()}))})).nullish(),annotations:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("url_citation"),start_index:R.number(),end_index:R.number(),url:R.string(),title:R.string()}),R.object({type:R.literal("file_citation"),file_id:R.string(),filename:R.string(),index:R.number()}),R.object({type:R.literal("container_file_citation"),container_id:R.string(),file_id:R.string(),filename:R.string(),start_index:R.number(),end_index:R.number()}),R.object({type:R.literal("file_path"),file_id:R.string(),index:R.number()})]))}))}),R.object({type:R.literal("web_search_call"),id:R.string(),status:R.string(),action:R.discriminatedUnion("type",[R.object({type:R.literal("search"),query:R.string().nullish(),queries:R.array(R.string()).nullish(),sources:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("url"),url:R.string()}),R.object({type:R.literal("api"),name:R.string()})])).nullish()}),R.object({type:R.literal("open_page"),url:R.string().nullish()}),R.object({type:R.literal("find_in_page"),url:R.string().nullish(),pattern:R.string().nullish()})]).nullish()}),R.object({type:R.literal("file_search_call"),id:R.string(),queries:R.array(R.string()),results:R.array(R.object({attributes:R.record(R.string(),R.union([R.string(),R.number(),R.boolean()])),file_id:R.string(),filename:R.string(),score:R.number(),text:R.string()})).nullish()}),R.object({type:R.literal("code_interpreter_call"),id:R.string(),code:R.string().nullable(),container_id:R.string(),outputs:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("logs"),logs:R.string()}),R.object({type:R.literal("image"),url:R.string()})])).nullable()}),R.object({type:R.literal("image_generation_call"),id:R.string(),result:R.string()}),X11,R.object({type:R.literal("function_call"),call_id:R.string(),name:R.string(),arguments:R.string(),id:R.string(),async:R.boolean().nullish(),namespace:R.string().nullish(),caller:Z11.nullish()}),Q11,Y11,R.object({type:R.literal("custom_tool_call"),call_id:R.string(),name:R.string(),input:R.string(),id:R.string(),async:R.boolean().nullish()}),$11,R.object({type:R.literal("reasoning"),id:R.string(),encrypted_content:R.string().nullish(),summary:R.array(R.object({type:R.literal("summary_text"),text:R.string()}))}),R.object({type:R.literal("mcp_call"),id:R.string(),status:R.string(),arguments:R.string(),name:R.string(),server_label:R.string(),output:R.string().nullish(),error:R.union([R.string(),R.object({type:R.string().optional(),code:R.union([R.number(),R.string()]).optional(),message:R.string().optional()}).loose()]).nullish(),approval_request_id:R.string().nullish()}),R.object({type:R.literal("mcp_list_tools"),id:R.string(),server_label:R.string(),tools:R.array(R.object({name:R.string(),description:R.string().optional(),input_schema:R.any(),annotations:R.record(R.string(),R.unknown()).optional()})),error:R.union([R.string(),R.object({type:R.string().optional(),code:R.union([R.number(),R.string()]).optional(),message:R.string().optional()}).loose()]).optional()}),R.object({type:R.literal("mcp_approval_request"),id:R.string(),server_label:R.string(),name:R.string(),arguments:R.string(),approval_request_id:R.string().optional()}),R.object({type:R.literal("apply_patch_call"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed"]),operation:R.discriminatedUnion("type",[R.object({type:R.literal("create_file"),path:R.string(),diff:R.string()}),R.object({type:R.literal("delete_file"),path:R.string()}),R.object({type:R.literal("update_file"),path:R.string(),diff:R.string()})])}),R.object({type:R.literal("shell_call"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed","incomplete"]),action:R.object({commands:R.array(R.string())})}),R.object({type:R.literal("compaction"),id:R.string(),encrypted_content:R.string()}),R.object({type:R.literal("shell_call_output"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed","incomplete"]),output:R.array(R.object({stdout:R.string(),stderr:R.string(),outcome:R.discriminatedUnion("type",[R.object({type:R.literal("timeout")}),R.object({type:R.literal("exit"),exit_code:R.number()})])}))}),R.object({type:R.literal("tool_search_call"),id:R.string(),execution:R.enum(["server","client"]),call_id:R.string().nullable(),status:R.enum(["in_progress","completed","incomplete"]),arguments:R.unknown()}),R.object({type:R.literal("tool_search_output"),id:R.string(),execution:R.enum(["server","client"]),call_id:R.string().nullable(),status:R.enum(["in_progress","completed","incomplete"]),tools:R.array(R.record(R.string(),vc.optional()))})])).optional(),service_tier:R.string().nullish(),reasoning:R.object({context:R.string().nullish()}).nullish(),incomplete_details:R.object({reason:R.string()}).nullish(),usage:e01.nullish()})));NT4=m01.object({itemId:m01.string().nullish(),reasoningEncryptedContent:m01.string().nullish()}),BT4=["o1","o1-2024-12-17","o3","o3-2025-04-16","o3-mini","o3-mini-2025-01-31","o4-mini","o4-mini-2025-04-16","gpt-5","gpt-5-2025-08-07","gpt-5-codex","gpt-5-mini","gpt-5-mini-2025-08-07","gpt-5-nano","gpt-5-nano-2025-08-07","gpt-5-pro","gpt-5-pro-2025-10-06","gpt-5.1","gpt-5.1-chat-latest","gpt-5.1-codex-mini","gpt-5.1-codex","gpt-5.1-codex-max","gpt-5.2","gpt-5.2-chat-latest","gpt-5.2-pro","gpt-5.2-codex","gpt-5.3-chat-latest","gpt-5.3-codex","gpt-5.4","gpt-5.4-2026-03-05","gpt-5.4-mini","gpt-5.4-mini-2026-03-17","gpt-5.4-nano","gpt-5.4-nano-2026-03-17","gpt-5.4-pro","gpt-5.4-pro-2026-03-05","gpt-5.5","gpt-5.5-2026-04-23","gpt-5.6","gpt-5.6-luna","gpt-5.6-sol","gpt-5.6-terra","gpt-6-astra"],$r5=["gpt-4.1","gpt-4.1-2025-04-14","gpt-4.1-mini","gpt-4.1-mini-2025-04-14","gpt-4.1-nano","gpt-4.1-nano-2025-04-14","gpt-4o","gpt-4o-2024-05-13","gpt-4o-2024-08-06","gpt-4o-2024-11-20","gpt-4o-audio-preview","gpt-4o-audio-preview-2024-12-17","gpt-4o-search-preview","gpt-4o-search-preview-2025-03-11","gpt-4o-mini-search-preview","gpt-4o-mini-search-preview-2025-03-11","gpt-4o-mini","gpt-4o-mini-2024-07-18","gpt-3.5-turbo-0125","gpt-3.5-turbo","gpt-3.5-turbo-1106","gpt-5-chat-latest",...BT4],zH$=W0(()=>s(Z4.object({conversation:Z4.string().nullish(),include:Z4.array(Z4.enum(["reasoning.encrypted_content","file_search_call.results","web_search_call.results","message.output_text.logprobs"])).nullish(),includeWebSearchSources:Z4.boolean().optional(),instructions:Z4.string().nullish(),logprobs:Z4.union([Z4.boolean(),Z4.number().min(1).max(sH$)]).optional(),maxToolCalls:Z4.number().nullish(),metadata:Z4.any().nullish(),parallelToolCalls:Z4.boolean().nullish(),previousResponseId:Z4.string().nullish(),promptCacheKey:Z4.string().nullish(),promptCacheOptions:Z4.object({mode:Z4.enum(["implicit","explicit"]).optional(),ttl:Z4.literal("30m").optional()}).optional(),promptCacheRetention:Z4.enum(["in_memory","24h"]).nullish(),reasoningEffort:Z4.string().nullish(),reasoningEffortUpdate:Z4.enum(["low","medium","high","xhigh","max"]).optional(),reasoningMode:Z4.enum(["standard","pro"]).optional(),reasoningContext:Z4.enum(["auto","current_turn","all_turns"]).optional(),reasoningSummary:Z4.string().nullish(),safetyIdentifier:Z4.string().nullish(),serviceTier:Z4.enum(["auto","flex","priority","fast","ultrafast","default"]).nullish(),store:Z4.boolean().nullish(),passThroughUnsupportedFiles:Z4.boolean().optional(),strictJsonSchema:Z4.boolean().nullish(),textVerbosity:Z4.enum(["low","medium","high"]).nullish(),truncation:Z4.enum(["auto","disabled"]).nullish(),user:Z4.string().nullish(),systemMessageMode:Z4.enum(["system","developer","remove"]).optional(),forceReasoning:Z4.boolean().optional(),contextManagement:Z4.array(Z4.object({type:Z4.literal("compaction"),compactThreshold:Z4.number()})).nullish(),compactionTrigger:Z4.boolean().optional(),allowedTools:Z4.object({toolNames:Z4.array(Z4.string()).min(1),mode:Z4.enum(["auto","required"]).optional()}).optional()})));aH$={"image/*":[/^https?:\/\/.*$/],"application/pdf":[/^https?:\/\/.*$/]},eH$=class ${constructor(Z,Q){this.specificationVersion="v4",this.supportedUrls=aH$,this.modelId=Z,this.config=Q}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,KT4(Z.config))}get provider(){return this.config.provider}static async prepareRequest({modelId:Z,config:Q,options:{maxOutputTokens:Y,temperature:X,stopSequences:J,topP:G,topK:W,presencePenalty:K,frequencyPenalty:H,seed:F,prompt:U,reasoning:N,providerOptions:B,tools:O,toolChoice:L,responseFormat:w}}){var j,E,z,T,A,P,q,x,_,V,y,g,l,i;let p=[],U0=yH$(Z);if(W!=null)p.push({type:"unsupported",feature:"topK"});if(F!=null)p.push({type:"unsupported",feature:"seed"});if(K!=null)p.push({type:"unsupported",feature:"presencePenalty"});if(H!=null)p.push({type:"unsupported",feature:"frequencyPenalty"});if(J!=null)p.push({type:"unsupported",feature:"stopSequences"});let v0=Q.provider.includes("azure")?"azure":"openai",G0=await C$({provider:v0,providerOptions:B,schema:zH$});if(G0==null&&v0!=="openai")G0=await C$({provider:"openai",providerOptions:B,schema:zH$});let N0=(j=G0==null?void 0:G0.reasoningEffort)!=null?j:_B(N)?N:void 0;if(N0!=null&&U0.supportedReasoningEfforts!=null&&!U0.supportedReasoningEfforts.includes(N0))p.push({type:"unsupported",feature:"reasoningEffort",details:`${Z} only supports the following reasoning efforts: ${U0.supportedReasoningEfforts.join(", ")}`}),N0=void 0;let o=(G0==null?void 0:G0.reasoningSummary)!==void 0?G0.reasoningSummary:N0!=null&&N0!=="none"?"detailed":void 0,$0=(E=G0==null?void 0:G0.forceReasoning)!=null?E:U0.isReasoningModel;if((G0==null?void 0:G0.conversation)&&(G0==null?void 0:G0.previousResponseId))p.push({type:"unsupported",feature:"conversation",details:"conversation and previousResponseId cannot be used together"});let Z0=tl({tools:O,providerToolNames:{"openai.code_interpreter":"code_interpreter","openai.computer":"computer","openai.file_search":"file_search","openai.image_generation":"image_generation","openai.local_shell":"local_shell","openai.shell":"shell","openai.web_search":"web_search","openai.web_search_preview":"web_search_preview","openai.mcp":"mcp","openai.apply_patch":"apply_patch","openai.tool_search":"tool_search","openai.programmatic_tool_calling":"programmatic_tool_calling"}}),r=new Set,Y0=new Set,{tools:d0,toolChoice:S0,toolWarnings:W1}=await DT4({tools:O,toolChoice:L,allowedTools:(z=G0==null?void 0:G0.allowedTools)!=null?z:void 0,toolNameMapping:Z0,customProviderToolNames:r,outputSchemaToolNames:Y0,supportsAsyncToolCalling:U0.supportsAsyncToolCalling}),{input:u0,warnings:L0}=await UT4({prompt:U,toolNameMapping:Z0,systemMessageMode:(T=G0==null?void 0:G0.systemMessageMode)!=null?T:$0?"developer":U0.systemMessageMode,providerOptionsName:v0,explicitMessageItemType:Q.explicitMessageItemType,fileIdPrefixes:Q.fileIdPrefixes,passThroughUnsupportedFiles:(A=G0==null?void 0:G0.passThroughUnsupportedFiles)!=null?A:!1,store:(P=G0==null?void 0:G0.store)!=null?P:!0,hasConversation:(G0==null?void 0:G0.conversation)!=null,hasPreviousResponseId:(G0==null?void 0:G0.previousResponseId)!=null,hasLocalShellTool:a0("openai.local_shell"),hasShellTool:a0("openai.shell"),hasApplyPatchTool:a0("openai.apply_patch"),hasComputerTool:a0("openai.computer"),toolSearchToolName:i0("openai.tool_search"),customProviderToolNames:r.size>0?r:void 0,outputSchemaToolNames:Y0.size>0?Y0:void 0});p.push(...L0);let j0=G0==null?void 0:G0.reasoningEffortUpdate,l0=j0==null||U0.supportsConfigurationUpdate&&(G0==null?void 0:G0.reasoningMode)!=="pro"&&(G0==null?void 0:G0.contextManagement)==null&&(G0==null?void 0:G0.truncation)!=="auto";if(j0!=null&&!l0)p.push({type:"unsupported",feature:"reasoningEffortUpdate",details:!U0.supportsConfigurationUpdate?"reasoningEffortUpdate is only supported by GPT-6 and later models":"reasoningEffortUpdate requires standard reasoning mode without automatic compaction or automatic truncation"});else if(j0!=null)u0.unshift({type:"configuration_update",reasoning:{effort:j0}});if(G0==null?void 0:G0.compactionTrigger)u0.push({type:"compaction_trigger"});let O1=(q=G0==null?void 0:G0.strictJsonSchema)!=null?q:!0,Q1=(w==null?void 0:w.type)==="json"&&w.schema!=null?Re(w.schema):void 0;if(Q1!=null)p.push(...Q1.warnings);let _0=G0==null?void 0:G0.include;function m0(D1){if(_0==null)_0=[D1];else if(!_0.includes(D1))_0=[..._0,D1]}function i0(D1){var x$;return(x$=O==null?void 0:O.find((i$)=>i$.type==="provider"&&i$.id===D1))==null?void 0:x$.name}function a0(D1){return i0(D1)!=null}let X0=typeof(G0==null?void 0:G0.logprobs)==="number"?G0==null?void 0:G0.logprobs:(G0==null?void 0:G0.logprobs)===!0?sH$:void 0;if(X0)m0("message.output_text.logprobs");let Q0=(x=O==null?void 0:O.find((D1)=>D1.type==="provider"&&(D1.id==="openai.web_search"||D1.id==="openai.web_search_preview")))==null?void 0:x.name;if(Q0&&Q.supportsWebSearchSourcesInclude!==!1&&(G0==null?void 0:G0.includeWebSearchSources)!==!1)m0("web_search_call.action.sources");if(a0("openai.code_interpreter"))m0("code_interpreter_call.outputs");let K0=G0==null?void 0:G0.store;if(K0===!1&&$0)m0("reasoning.encrypted_content");let H0={model:Z,input:u0,temperature:X,top_p:G,max_output_tokens:Y,...((w==null?void 0:w.type)==="json"||(G0==null?void 0:G0.textVerbosity))&&{text:{...(w==null?void 0:w.type)==="json"&&{format:Q1!=null?{type:"json_schema",strict:O1,name:(_=w.name)!=null?_:"response",description:w.description,schema:Q1.schema}:{type:"json_object"}},...(G0==null?void 0:G0.textVerbosity)&&{verbosity:G0.textVerbosity}}},conversation:G0==null?void 0:G0.conversation,max_tool_calls:G0==null?void 0:G0.maxToolCalls,metadata:G0==null?void 0:G0.metadata,parallel_tool_calls:G0==null?void 0:G0.parallelToolCalls,previous_response_id:G0==null?void 0:G0.previousResponseId,store:K0,user:G0==null?void 0:G0.user,instructions:G0==null?void 0:G0.instructions,service_tier:G0==null?void 0:G0.serviceTier,include:_0,prompt_cache_key:G0==null?void 0:G0.promptCacheKey,prompt_cache_options:G0==null?void 0:G0.promptCacheOptions,prompt_cache_retention:G0==null?void 0:G0.promptCacheRetention,safety_identifier:G0==null?void 0:G0.safetyIdentifier,top_logprobs:X0,truncation:G0==null?void 0:G0.truncation,...(G0==null?void 0:G0.contextManagement)&&{context_management:G0.contextManagement.map((D1)=>({type:D1.type,compact_threshold:D1.compactThreshold}))},...$0&&(N0!=null||o!=null||(G0==null?void 0:G0.reasoningMode)!=null||(G0==null?void 0:G0.reasoningContext)!=null)&&{reasoning:{...N0!=null&&{effort:N0},...o!=null&&{summary:o},...(G0==null?void 0:G0.reasoningMode)!=null&&{mode:G0.reasoningMode},...(G0==null?void 0:G0.reasoningContext)!=null&&{context:G0.reasoningContext}}}};if(U0.supportsConfigurationUpdate&&H0.prompt_cache_retention!=null)H0.prompt_cache_retention=void 0,p.push({type:"unsupported",feature:"promptCacheRetention",details:"promptCacheRetention is not supported by GPT-6 and later models; use promptCacheOptions instead"});if($0){if(!(N0==="none"&&U0.supportsNonReasoningParameters)){if(H0.temperature!=null)H0.temperature=void 0,p.push({type:"unsupported",feature:"temperature",details:"temperature is not supported for reasoning models"});if(H0.top_p!=null)H0.top_p=void 0,p.push({type:"unsupported",feature:"topP",details:"topP is not supported for reasoning models"});if(U0.supportedReasoningEfforts!=null&&(H0.top_logprobs!=null||((V=H0.include)==null?void 0:V.includes("message.output_text.logprobs")))){H0.top_logprobs=void 0;let D1=(y=H0.include)==null?void 0:y.filter((x$)=>x$!=="message.output_text.logprobs");H0.include=D1!=null&&D1.length>0?D1:void 0,p.push({type:"unsupported",feature:"logprobs",details:"logprobs is not supported for reasoning models"})}}}else{if((G0==null?void 0:G0.reasoningEffort)!=null)p.push({type:"unsupported",feature:"reasoningEffort",details:"reasoningEffort is not supported for non-reasoning models"});if((G0==null?void 0:G0.reasoningSummary)!=null)p.push({type:"unsupported",feature:"reasoningSummary",details:"reasoningSummary is not supported for non-reasoning models"});if((G0==null?void 0:G0.reasoningMode)!=null)p.push({type:"unsupported",feature:"reasoningMode",details:"reasoningMode is not supported for non-reasoning models"});if((G0==null?void 0:G0.reasoningContext)!=null)p.push({type:"unsupported",feature:"reasoningContext",details:"reasoningContext is not supported for non-reasoning models"})}if((G0==null?void 0:G0.serviceTier)==="flex"&&!U0.supportsFlexProcessing)p.push({type:"unsupported",feature:"serviceTier",details:"flex processing is only available for o3, o4-mini, and gpt-5 models"}),delete H0.service_tier;if(((G0==null?void 0:G0.serviceTier)==="priority"||(G0==null?void 0:G0.serviceTier)==="fast")&&!U0.supportsPriorityProcessing)p.push({type:"unsupported",feature:"serviceTier",details:"priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported"}),delete H0.service_tier;let R0=(i=(l=(g=O==null?void 0:O.find((D1)=>D1.type==="provider"&&D1.id==="openai.shell"))==null?void 0:g.args)==null?void 0:l.environment)==null?void 0:i.type,A0=R0==="containerAuto"||R0==="containerReference";return{webSearchToolName:Q0,args:{...H0,tools:d0,tool_choice:S0},warnings:[...p,...W1],store:K0,toolNameMapping:Z0,providerOptionsName:v0,isShellProviderExecuted:A0}}getArgs(Z){return $.prepareRequest({modelId:this.modelId,config:this.config,options:Z})}async doGenerate(Z){var Q,Y,X,J,G,W,K,H,F,U,N,B,O,L,w,j,E,z,T,A,P,q,x,_,V,y,g,l,i,p,U0,v0,G0,N0;let{args:o,warnings:$0,webSearchToolName:Z0,toolNameMapping:r,providerOptionsName:Y0,isShellProviderExecuted:d0}=await this.getArgs(Z),S0=this.config.url({path:"/responses",modelId:this.modelId}),W1=TH$(Z.prompt),{responseHeaders:u0,value:L0,rawValue:j0}=await a1({url:S0,headers:M1((Y=(Q=this.config).headers)==null?void 0:Y.call(Q),Z.headers),body:o,failedResponseHandler:_9,successfulResponseHandler:A1(rH$),abortSignal:Z.abortSignal,fetch:this.config.fetch});if(L0.error)throw new N8({message:L0.error.message,url:S0,requestBodyValues:o,statusCode:400,responseHeaders:u0,responseBody:j0,isRetryable:!1});if(L0.output==null){let X0=(X=L0.incomplete_details)==null?void 0:X.reason;throw new N8({message:X0?`Responses API returned no output (${X0})`:"Responses API returned no output",url:S0,requestBodyValues:o,statusCode:500,responseHeaders:u0,responseBody:j0,isRetryable:!1})}let l0=[],O1=[],Q1=(G=(J=Z.tools)==null?void 0:J.filter((X0)=>X0.type==="function"))!=null?G:[],_0=!1,m0=[];for(let X0 of L0.output)switch(X0.type){case"reasoning":{if(X0.summary.length===0)X0.summary.push({type:"summary_text",text:""});for(let Q0 of X0.summary)l0.push({type:"reasoning",text:Q0.text,providerMetadata:{[Y0]:{itemId:X0.id,reasoningEncryptedContent:(W=X0.encrypted_content)!=null?W:null}}});break}case"image_generation_call":{l0.push({type:"tool-call",toolCallId:X0.id,toolName:r.toCustomToolName("image_generation"),input:"{}",providerExecuted:!0}),l0.push({type:"tool-result",toolCallId:X0.id,toolName:r.toCustomToolName("image_generation"),result:{result:X0.result}});break}case"tool_search_call":{let Q0=(K=X0.call_id)!=null?K:X0.id,K0=X0.execution==="server";if(K0)m0.push(Q0);l0.push({type:"tool-call",toolCallId:Q0,toolName:r.toCustomToolName("tool_search"),input:JSON.stringify({arguments:X0.arguments,call_id:X0.call_id}),...K0?{providerExecuted:!0}:{},providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"tool_search_output":{let Q0=(F=(H=X0.call_id)!=null?H:m0.shift())!=null?F:X0.id;l0.push({type:"tool-result",toolCallId:Q0,toolName:r.toCustomToolName("tool_search"),result:{tools:X0.tools},providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"local_shell_call":{l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:r.toCustomToolName("local_shell"),input:JSON.stringify({action:X0.action}),providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"shell_call":{l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:r.toCustomToolName("shell"),input:JSON.stringify({action:{commands:X0.action.commands}}),...d0&&{providerExecuted:!0},providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"shell_call_output":{l0.push({type:"tool-result",toolCallId:X0.call_id,toolName:r.toCustomToolName("shell"),result:{output:X0.output.map((Q0)=>({stdout:Q0.stdout,stderr:Q0.stderr,outcome:Q0.outcome.type==="exit"?{type:"exit",exitCode:Q0.outcome.exit_code}:{type:"timeout"}}))}});break}case"message":{for(let Q0 of X0.content){if(((N=(U=Z.providerOptions)==null?void 0:U[Y0])==null?void 0:N.logprobs)&&Q0.logprobs)O1.push(Q0.logprobs);let K0={itemId:X0.id,...X0.phase!=null&&{phase:X0.phase},...Q0.annotations.length>0&&{annotations:Q0.annotations}};l0.push({type:"text",text:Q0.text,providerMetadata:{[Y0]:K0}});for(let H0 of Q0.annotations)if(H0.type==="url_citation")l0.push({type:"source",sourceType:"url",id:(L=(O=(B=this.config).generateId)==null?void 0:O.call(B))!=null?L:$4(),url:H0.url,title:H0.title});else if(H0.type==="file_citation")l0.push({type:"source",sourceType:"document",id:(E=(j=(w=this.config).generateId)==null?void 0:j.call(w))!=null?E:$4(),mediaType:"text/plain",title:H0.filename,filename:H0.filename,providerMetadata:{[Y0]:{type:H0.type,fileId:H0.file_id,index:H0.index}}});else if(H0.type==="container_file_citation")l0.push({type:"source",sourceType:"document",id:(A=(T=(z=this.config).generateId)==null?void 0:T.call(z))!=null?A:$4(),mediaType:"text/plain",title:H0.filename,filename:H0.filename,providerMetadata:{[Y0]:{type:H0.type,fileId:H0.file_id,containerId:H0.container_id}}});else if(H0.type==="file_path")l0.push({type:"source",sourceType:"document",id:(x=(q=(P=this.config).generateId)==null?void 0:q.call(P))!=null?x:$4(),mediaType:"application/octet-stream",title:H0.file_id,filename:H0.file_id,providerMetadata:{[Y0]:{type:H0.type,fileId:H0.file_id,index:H0.index}}})}break}case"function_call":{_0=!0;let Q0=await LH$({toolCall:{toolCallId:X0.call_id,toolName:X0.name,input:X0.arguments},tools:Q1,providerOptionsName:Y0,itemId:X0.id});if(Q0!=null){l0.push(...Q0);break}l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:X0.name,input:X0.arguments,providerMetadata:{[Y0]:{itemId:X0.id,...X0.async!=null&&{async:X0.async},...X0.namespace!=null&&{namespace:X0.namespace},...X0.caller!=null&&{caller:X0.caller.type==="program"?{type:"program",callerId:X0.caller.caller_id}:X0.caller}}}});break}case"program":{l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:r.toCustomToolName("programmatic_tool_calling"),input:JSON.stringify({code:X0.code,fingerprint:X0.fingerprint}),providerExecuted:!0,providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"program_output":{l0.push({type:"tool-result",toolCallId:X0.call_id,toolName:r.toCustomToolName("programmatic_tool_calling"),result:{result:X0.result,status:X0.status},providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"custom_tool_call":{_0=!0;let Q0=r.toCustomToolName(X0.name);l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:Q0,input:JSON.stringify(X0.input),providerMetadata:{[Y0]:{itemId:X0.id,...X0.async!=null&&{async:X0.async}}}});break}case"web_search_call":{l0.push({type:"tool-call",toolCallId:X0.id,toolName:r.toCustomToolName(Z0!=null?Z0:"web_search"),input:JSON.stringify({}),providerExecuted:!0}),l0.push({type:"tool-result",toolCallId:X0.id,toolName:r.toCustomToolName(Z0!=null?Z0:"web_search"),result:K11(X0.action)});break}case"mcp_call":{let Q0=X0.approval_request_id!=null?(_=W1[X0.approval_request_id])!=null?_:X0.id:X0.id,K0=`mcp.${X0.name}`;l0.push({type:"tool-call",toolCallId:Q0,toolName:K0,input:X0.arguments,providerExecuted:!0,dynamic:!0}),l0.push({type:"tool-result",toolCallId:Q0,toolName:K0,result:{type:"call",serverLabel:X0.server_label,name:X0.name,arguments:X0.arguments,...X0.output!=null?{output:X0.output}:{},...X0.error!=null?{error:X0.error}:{}},providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"mcp_list_tools":break;case"mcp_approval_request":{let Q0=(V=X0.approval_request_id)!=null?V:X0.id,K0=(l=(g=(y=this.config).generateId)==null?void 0:g.call(y))!=null?l:$4(),H0=`mcp.${X0.name}`;l0.push({type:"tool-call",toolCallId:K0,toolName:H0,input:X0.arguments,providerExecuted:!0,dynamic:!0}),l0.push({type:"tool-approval-request",approvalId:Q0,toolCallId:K0});break}case"computer_call":{if(X0.call_id==null){l0.push({type:"tool-call",toolCallId:X0.id,toolName:r.toCustomToolName("computer_use"),input:"",providerExecuted:!0}),l0.push({type:"tool-result",toolCallId:X0.id,toolName:r.toCustomToolName("computer_use"),result:{type:"computer_use_tool_result",status:X0.status}});break}_0=!0;let Q0=r.toCustomToolName("computer");l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:Q0,input:JSON.stringify(RH$(X0)),providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"file_search_call":{l0.push({type:"tool-call",toolCallId:X0.id,toolName:r.toCustomToolName("file_search"),input:"{}",providerExecuted:!0}),l0.push({type:"tool-result",toolCallId:X0.id,toolName:r.toCustomToolName("file_search"),result:{queries:X0.queries,results:(p=(i=X0.results)==null?void 0:i.map((Q0)=>({attributes:Q0.attributes,fileId:Q0.file_id,filename:Q0.filename,score:Q0.score,text:Q0.text})))!=null?p:null}});break}case"code_interpreter_call":{l0.push({type:"tool-call",toolCallId:X0.id,toolName:r.toCustomToolName("code_interpreter"),input:JSON.stringify({code:X0.code,containerId:X0.container_id}),providerExecuted:!0}),l0.push({type:"tool-result",toolCallId:X0.id,toolName:r.toCustomToolName("code_interpreter"),result:{outputs:X0.outputs}});break}case"apply_patch_call":{_0=!0,l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:r.toCustomToolName("apply_patch"),input:JSON.stringify({callId:X0.call_id,operation:X0.operation}),providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"compaction":{l0.push({type:"custom",kind:"openai.compaction",providerMetadata:{[Y0]:{type:"compaction",itemId:X0.id,encryptedContent:X0.encrypted_content}}});break}}let i0={[Y0]:{responseId:L0.id,...O1.length>0?{logprobs:O1}:{},...typeof L0.service_tier==="string"?{serviceTier:L0.service_tier}:{},...((U0=L0.reasoning)==null?void 0:U0.context)!=null?{reasoningContext:L0.reasoning.context}:{}}},a0=L0.usage;return{content:l0,finishReason:{unified:yW0({finishReason:(v0=L0.incomplete_details)==null?void 0:v0.reason,hasFunctionCall:_0}),raw:(N0=(G0=L0.incomplete_details)==null?void 0:G0.reason)!=null?N0:void 0},usage:a01(a0),request:{body:o},response:{id:L0.id,timestamp:new Date(L0.created_at*1000),modelId:L0.model,headers:u0,body:j0},providerMetadata:i0,warnings:$0}}async doStream(Z){var Q,Y,X,J;let{args:G,warnings:W,webSearchToolName:K,toolNameMapping:H,store:F,providerOptionsName:U,isShellProviderExecuted:N}=await this.getArgs(Z),B=this.config.url({path:"/responses",modelId:this.modelId}),{responseHeaders:O,value:L}=await a1({url:B,headers:M1((Y=(Q=this.config).headers)==null?void 0:Y.call(Q),Z.headers),body:{...G,stream:!0},failedResponseHandler:_9,successfulResponseHandler:zY(WT4),abortSignal:Z.abortSignal,fetch:this.config.fetch}),w=await B11({stream:L,getError:($0)=>IH$($0)||qH$($0)&&$0.response.error!=null?$0:void 0,isOutputChunk:yT4,isAcceptedChunk:fT4,url:B,requestBodyValues:G,responseHeaders:O}),j=this,E=TH$(Z.prompt),z=(J=(X=Z.tools)==null?void 0:X.filter(($0)=>$0.type==="function"))!=null?J:[],T=new Map,A={unified:"other",raw:void 0},P=void 0,q=[],x=null,_={},V=[],y,g=!1,l={},i={},p=({itemId:$0,outputIndex:Z0})=>{var r;return Z0==null?$0:(r=i[Z0])!=null?r:$0},U0,v0,G0=[],N0=!1;return{stream:w.pipeThrough(new TransformStream({start($0){$0.enqueue({type:"stream-start",warnings:W})},transform($0,Z0){var r,Y0,d0,S0,W1,u0,L0,j0,l0,O1,Q1,_0,m0,i0,a0,X0,Q0,K0,H0,R0,A0,D1,x$,i$,w8,K8,z5,h8,p6,A9,o0,E1,h$,c1,K$,f8,Z5,F4,Q$,I8,s$,N$,K9,BQ,MZ;if(Z.includeRawChunks)Z0.enqueue({type:"raw",rawValue:$0.rawValue});if(!$0.success){let V0=AT4($0.rawValue)?TT4({value:$0.rawValue,cause:$0.error,url:B,requestBodyValues:G,responseHeaders:O}):$0.error;N0=!0,A={unified:"error",raw:void 0},Z0.enqueue({type:"error",error:V0});return}let e=$0.value;if(MH$(e)){if(e.item.type==="function_call"){let V0=G11({toolName:e.item.name,tools:z});if(_[e.output_index]={toolName:e.item.name,toolCallId:e.item.call_id,suppressInputStreaming:V0,bufferedInputDeltas:V0?[]:void 0,async:e.item.async},!V0)Z0.enqueue({type:"tool-input-start",id:e.item.call_id,toolName:e.item.name})}else if(e.item.type==="custom_tool_call"){let V0=H.toCustomToolName(e.item.name);_[e.output_index]={toolName:V0,toolCallId:e.item.call_id,async:e.item.async},Z0.enqueue({type:"tool-input-start",id:e.item.call_id,toolName:V0})}else if(e.item.type==="web_search_call")_[e.output_index]={toolName:H.toCustomToolName(K!=null?K:"web_search"),toolCallId:e.item.id},Z0.enqueue({type:"tool-input-start",id:e.item.id,toolName:H.toCustomToolName(K!=null?K:"web_search"),providerExecuted:!0}),Z0.enqueue({type:"tool-input-end",id:e.item.id}),Z0.enqueue({type:"tool-call",toolCallId:e.item.id,toolName:H.toCustomToolName(K!=null?K:"web_search"),input:JSON.stringify({}),providerExecuted:!0});else if(e.item.type==="computer_call"){let V0=(r=e.item.call_id)!=null?r:e.item.id;_[e.output_index]={toolName:H.toCustomToolName("computer"),toolCallId:V0},Z0.enqueue({type:"tool-input-start",id:V0,toolName:H.toCustomToolName("computer")})}else if(e.item.type==="code_interpreter_call")_[e.output_index]={toolName:H.toCustomToolName("code_interpreter"),toolCallId:e.item.id,codeInterpreter:{containerId:e.item.container_id}},Z0.enqueue({type:"tool-input-start",id:e.item.id,toolName:H.toCustomToolName("code_interpreter"),providerExecuted:!0}),Z0.enqueue({type:"tool-input-delta",id:e.item.id,delta:`{"containerId":"${e.item.container_id}","code":"`});else if(e.item.type==="file_search_call")Z0.enqueue({type:"tool-call",toolCallId:e.item.id,toolName:H.toCustomToolName("file_search"),input:"{}",providerExecuted:!0});else if(e.item.type==="image_generation_call")Z0.enqueue({type:"tool-call",toolCallId:e.item.id,toolName:H.toCustomToolName("image_generation"),input:"{}",providerExecuted:!0});else if(e.item.type==="tool_search_call"){let V0=e.item.id,I1=H.toCustomToolName("tool_search"),u8=e.item.execution==="server";if(_[e.output_index]={toolName:I1,toolCallId:V0,toolSearchExecution:(Y0=e.item.execution)!=null?Y0:"server"},u8)Z0.enqueue({type:"tool-input-start",id:V0,toolName:I1,providerExecuted:!0})}else if(e.item.type==="tool_search_output");else if(e.item.type==="mcp_call"||e.item.type==="mcp_list_tools"||e.item.type==="mcp_approval_request");else if(e.item.type==="apply_patch_call"){let{call_id:V0,operation:I1}=e.item;if(_[e.output_index]={toolName:H.toCustomToolName("apply_patch"),toolCallId:V0,applyPatch:{hasDiff:I1.type==="delete_file",endEmitted:I1.type==="delete_file"}},Z0.enqueue({type:"tool-input-start",id:V0,toolName:H.toCustomToolName("apply_patch")}),I1.type==="delete_file"){let u8=JSON.stringify({callId:V0,operation:I1});Z0.enqueue({type:"tool-input-delta",id:V0,delta:u8}),Z0.enqueue({type:"tool-input-end",id:V0})}else Z0.enqueue({type:"tool-input-delta",id:V0,delta:`{"callId":"${o2(V0)}","operation":{"type":"${o2(I1.type)}","path":"${o2(I1.path)}","diff":"`})}else if(e.item.type==="shell_call")_[e.output_index]={toolName:H.toCustomToolName("shell"),toolCallId:e.item.call_id};else if(e.item.type==="shell_call_output");else if(e.item.type==="message")i[e.output_index]=e.item.id,V.splice(0,V.length),y=(d0=e.item.phase)!=null?d0:void 0,Z0.enqueue({type:"text-start",id:e.item.id,providerMetadata:{[U]:{itemId:e.item.id,...e.item.phase!=null&&{phase:e.item.phase}}}});else if(MH$(e)&&e.item.type==="reasoning")i[e.output_index]=e.item.id,l[e.item.id]={encryptedContent:e.item.encrypted_content,summaryParts:{0:"active"}},Z0.enqueue({type:"reasoning-start",id:`${e.item.id}:0`,providerMetadata:{[U]:{itemId:e.item.id,reasoningEncryptedContent:(S0=e.item.encrypted_content)!=null?S0:null}}})}else if(qT4(e)){if(e.item.type==="message"){let V0=p({itemId:e.item.id,outputIndex:e.output_index}),I1=(W1=e.item.phase)!=null?W1:y;y=void 0,Z0.enqueue({type:"text-end",id:V0,providerMetadata:{[U]:{itemId:V0,...I1!=null&&{phase:I1},...V.length>0&&{annotations:V}}}}),i[e.output_index]=void 0}else if(e.item.type==="function_call"){let V0=e.item,I1=_[e.output_index];_[e.output_index]=void 0,g=!0;let u8=(u0=I1==null?void 0:I1.suppressInputStreaming)!=null?u0:G11({toolName:V0.name,tools:z}),v=()=>{var m;if(u8){Z0.enqueue({type:"tool-input-start",id:V0.call_id,toolName:V0.name});let d=(m=I1==null?void 0:I1.bufferedInputDeltas)!=null?m:[];if(d.length>0)for(let M of d)Z0.enqueue({type:"tool-input-delta",id:V0.call_id,delta:M});else if(V0.arguments.length>0)Z0.enqueue({type:"tool-input-delta",id:V0.call_id,delta:V0.arguments})}Z0.enqueue({type:"tool-input-end",id:V0.call_id,...V0.namespace!=null&&{providerMetadata:{[U]:{namespace:V0.namespace}}}}),Z0.enqueue({type:"tool-call",toolCallId:V0.call_id,toolName:V0.name,input:V0.arguments,providerMetadata:{[U]:{itemId:V0.id,...V0.async!=null?{async:V0.async}:(I1==null?void 0:I1.async)!=null?{async:I1.async}:{},...V0.namespace!=null&&{namespace:V0.namespace},...V0.caller!=null&&{caller:V0.caller.type==="program"?{type:"program",callerId:V0.caller.caller_id}:V0.caller}}}})};if(!u8){v();return}return LH$({toolCall:{toolCallId:V0.call_id,toolName:V0.name,input:V0.arguments},tools:z,providerOptionsName:U,itemId:V0.id}).then((m)=>{if(m==null){v();return}for(let d of m)Z0.enqueue({type:"tool-input-start",id:d.toolCallId,toolName:d.toolName}),Z0.enqueue({type:"tool-input-delta",id:d.toolCallId,delta:d.input}),Z0.enqueue({type:"tool-input-end",id:d.toolCallId}),Z0.enqueue(d)})}else if(e.item.type==="program")Z0.enqueue({type:"tool-call",toolCallId:e.item.call_id,toolName:H.toCustomToolName("programmatic_tool_calling"),input:JSON.stringify({code:e.item.code,fingerprint:e.item.fingerprint}),providerExecuted:!0,providerMetadata:{[U]:{itemId:e.item.id}}});else if(e.item.type==="program_output")Z0.enqueue({type:"tool-result",toolCallId:e.item.call_id,toolName:H.toCustomToolName("programmatic_tool_calling"),result:{result:e.item.result,status:e.item.status},providerMetadata:{[U]:{itemId:e.item.id}}});else if(e.item.type==="custom_tool_call"){let V0=_[e.output_index];_[e.output_index]=void 0,g=!0;let I1=H.toCustomToolName(e.item.name);Z0.enqueue({type:"tool-input-end",id:e.item.call_id}),Z0.enqueue({type:"tool-call",toolCallId:e.item.call_id,toolName:I1,input:JSON.stringify(e.item.input),providerMetadata:{[U]:{itemId:e.item.id,...e.item.async!=null?{async:e.item.async}:(V0==null?void 0:V0.async)!=null?{async:V0.async}:{}}}})}else if(e.item.type==="web_search_call")_[e.output_index]=void 0,Z0.enqueue({type:"tool-result",toolCallId:e.item.id,toolName:H.toCustomToolName(K!=null?K:"web_search"),result:K11(e.item.action)});else if(e.item.type==="computer_call"){if(_[e.output_index]=void 0,e.item.call_id==null){Z0.enqueue({type:"tool-input-end",id:e.item.id}),Z0.enqueue({type:"tool-call",toolCallId:e.item.id,toolName:H.toCustomToolName("computer_use"),input:"",providerExecuted:!0}),Z0.enqueue({type:"tool-result",toolCallId:e.item.id,toolName:H.toCustomToolName("computer_use"),result:{type:"computer_use_tool_result",status:e.item.status}});return}g=!0;let V0=H.toCustomToolName("computer"),I1=JSON.stringify(RH$(e.item));Z0.enqueue({type:"tool-input-delta",id:e.item.call_id,delta:I1}),Z0.enqueue({type:"tool-input-end",id:e.item.call_id}),Z0.enqueue({type:"tool-call",toolCallId:e.item.call_id,toolName:V0,input:I1,providerMetadata:{[U]:{itemId:e.item.id}}})}else if(e.item.type==="file_search_call")_[e.output_index]=void 0,Z0.enqueue({type:"tool-result",toolCallId:e.item.id,toolName:H.toCustomToolName("file_search"),result:{queries:e.item.queries,results:(j0=(L0=e.item.results)==null?void 0:L0.map((V0)=>({attributes:V0.attributes,fileId:V0.file_id,filename:V0.filename,score:V0.score,text:V0.text})))!=null?j0:null}});else if(e.item.type==="code_interpreter_call")_[e.output_index]=void 0,Z0.enqueue({type:"tool-result",toolCallId:e.item.id,toolName:H.toCustomToolName("code_interpreter"),result:{outputs:e.item.outputs}});else if(e.item.type==="image_generation_call")Z0.enqueue({type:"tool-result",toolCallId:e.item.id,toolName:H.toCustomToolName("image_generation"),result:{result:e.item.result}});else if(e.item.type==="tool_search_call"){let V0=_[e.output_index],I1=e.item.execution==="server";if(V0!=null){let u8=I1?V0.toolCallId:(l0=e.item.call_id)!=null?l0:e.item.id;if(I1)G0.push(u8);else Z0.enqueue({type:"tool-input-start",id:u8,toolName:V0.toolName});Z0.enqueue({type:"tool-input-end",id:u8}),Z0.enqueue({type:"tool-call",toolCallId:u8,toolName:V0.toolName,input:JSON.stringify({arguments:e.item.arguments,call_id:I1?null:u8}),...I1?{providerExecuted:!0}:{},providerMetadata:{[U]:{itemId:e.item.id}}})}_[e.output_index]=void 0}else if(e.item.type==="tool_search_output"){let V0=(Q1=(O1=e.item.call_id)!=null?O1:G0.shift())!=null?Q1:e.item.id;Z0.enqueue({type:"tool-result",toolCallId:V0,toolName:H.toCustomToolName("tool_search"),result:{tools:e.item.tools},providerMetadata:{[U]:{itemId:e.item.id}}})}else if(e.item.type==="mcp_call"){_[e.output_index]=void 0;let V0=(_0=e.item.approval_request_id)!=null?_0:void 0,I1=V0!=null?(i0=(m0=T.get(V0))!=null?m0:E[V0])!=null?i0:e.item.id:e.item.id,u8=`mcp.${e.item.name}`;Z0.enqueue({type:"tool-call",toolCallId:I1,toolName:u8,input:e.item.arguments,providerExecuted:!0,dynamic:!0}),Z0.enqueue({type:"tool-result",toolCallId:I1,toolName:u8,result:{type:"call",serverLabel:e.item.server_label,name:e.item.name,arguments:e.item.arguments,...e.item.output!=null?{output:e.item.output}:{},...e.item.error!=null?{error:e.item.error}:{}},providerMetadata:{[U]:{itemId:e.item.id}}})}else if(e.item.type==="mcp_list_tools")_[e.output_index]=void 0;else if(e.item.type==="apply_patch_call"){let V0=_[e.output_index];if((V0==null?void 0:V0.applyPatch)&&!V0.applyPatch.endEmitted&&e.item.operation.type!=="delete_file"){if(!V0.applyPatch.hasDiff)Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:o2(e.item.operation.diff)});Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:'"}}'}),Z0.enqueue({type:"tool-input-end",id:V0.toolCallId}),V0.applyPatch.endEmitted=!0}if(V0&&e.item.status==="completed")g=!0,Z0.enqueue({type:"tool-call",toolCallId:V0.toolCallId,toolName:H.toCustomToolName("apply_patch"),input:JSON.stringify({callId:e.item.call_id,operation:e.item.operation}),providerMetadata:{[U]:{itemId:e.item.id}}});_[e.output_index]=void 0}else if(e.item.type==="mcp_approval_request"){_[e.output_index]=void 0;let V0=(Q0=(X0=(a0=j.config).generateId)==null?void 0:X0.call(a0))!=null?Q0:$4(),I1=(K0=e.item.approval_request_id)!=null?K0:e.item.id;T.set(I1,V0);let u8=`mcp.${e.item.name}`;Z0.enqueue({type:"tool-call",toolCallId:V0,toolName:u8,input:e.item.arguments,providerExecuted:!0,dynamic:!0}),Z0.enqueue({type:"tool-approval-request",approvalId:I1,toolCallId:V0})}else if(e.item.type==="local_shell_call")_[e.output_index]=void 0,Z0.enqueue({type:"tool-call",toolCallId:e.item.call_id,toolName:H.toCustomToolName("local_shell"),input:JSON.stringify({action:{type:"exec",command:e.item.action.command,timeoutMs:e.item.action.timeout_ms,user:e.item.action.user,workingDirectory:e.item.action.working_directory,env:e.item.action.env}}),providerMetadata:{[U]:{itemId:e.item.id}}});else if(e.item.type==="shell_call")_[e.output_index]=void 0,Z0.enqueue({type:"tool-call",toolCallId:e.item.call_id,toolName:H.toCustomToolName("shell"),input:JSON.stringify({action:{commands:e.item.action.commands}}),...N&&{providerExecuted:!0},providerMetadata:{[U]:{itemId:e.item.id}}});else if(e.item.type==="shell_call_output")Z0.enqueue({type:"tool-result",toolCallId:e.item.call_id,toolName:H.toCustomToolName("shell"),result:{output:e.item.output.map((V0)=>({stdout:V0.stdout,stderr:V0.stderr,outcome:V0.outcome.type==="exit"?{type:"exit",exitCode:V0.outcome.exit_code}:{type:"timeout"}}))}});else if(e.item.type==="reasoning"){let V0=p({itemId:e.item.id,outputIndex:e.output_index}),I1=l[V0];if(I1!=null){let u8=Object.entries(I1.summaryParts).filter(([v,m])=>m==="active"||m==="can-conclude").map(([v])=>v);for(let v of u8)Z0.enqueue({type:"reasoning-end",id:`${V0}:${v}`,providerMetadata:{[U]:{itemId:V0,reasoningEncryptedContent:(H0=e.item.encrypted_content)!=null?H0:null}}});delete l[V0]}i[e.output_index]=void 0}else if(e.item.type==="compaction")Z0.enqueue({type:"custom",kind:"openai.compaction",providerMetadata:{[U]:{type:"compaction",itemId:e.item.id,encryptedContent:e.item.encrypted_content}}})}else if(VT4(e)){let V0=_[e.output_index];if(V0!=null)if(V0.suppressInputStreaming)(R0=V0.bufferedInputDeltas)==null||R0.push(e.delta);else Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:e.delta})}else if(kT4(e)){let V0=_[e.output_index];if(V0!=null)Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:e.delta})}else if(vT4(e)){let V0=_[e.output_index];if(V0==null?void 0:V0.applyPatch)Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:o2(e.delta)}),V0.applyPatch.hasDiff=!0}else if(bT4(e)){let V0=_[e.output_index];if((V0==null?void 0:V0.applyPatch)&&!V0.applyPatch.endEmitted){if(!V0.applyPatch.hasDiff)Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:o2(e.diff)}),V0.applyPatch.hasDiff=!0;Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:'"}}'}),Z0.enqueue({type:"tool-input-end",id:V0.toolCallId}),V0.applyPatch.endEmitted=!0}}else if(ST4(e))Z0.enqueue({type:"tool-result",toolCallId:e.item_id,toolName:H.toCustomToolName("image_generation"),result:{result:e.partial_image_b64},preliminary:!0});else if(CT4(e)){let V0=_[e.output_index];if(V0!=null)Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:o2(e.delta)})}else if(_T4(e)){let V0=_[e.output_index];if(V0!=null)Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:'"}'}),Z0.enqueue({type:"tool-input-end",id:V0.toolCallId}),Z0.enqueue({type:"tool-call",toolCallId:V0.toolCallId,toolName:H.toCustomToolName("code_interpreter"),input:JSON.stringify({code:e.code,containerId:V0.codeInterpreter.containerId}),providerExecuted:!0})}else if(IT4(e))x=e.response.id,Z0.enqueue({type:"response-metadata",id:e.response.id,timestamp:new Date(e.response.created_at*1000),modelId:e.response.model});else if(PT4(e)){let V0=p({itemId:e.item_id,outputIndex:e.output_index});if(Z0.enqueue({type:"text-delta",id:V0,delta:e.delta}),((D1=(A0=Z.providerOptions)==null?void 0:A0[U])==null?void 0:D1.logprobs)&&e.logprobs)q.push(e.logprobs)}else if(e.type==="response.reasoning_summary_part.added"){let V0=p({itemId:e.item_id,outputIndex:e.output_index});if(e.summary_index>0){let I1=l[V0];if(I1!=null){I1.summaryParts[e.summary_index]="active";for(let u8 of Object.keys(I1.summaryParts))if(I1.summaryParts[u8]==="can-conclude")Z0.enqueue({type:"reasoning-end",id:`${V0}:${u8}`,providerMetadata:{[U]:{itemId:V0}}}),I1.summaryParts[u8]="concluded";Z0.enqueue({type:"reasoning-start",id:`${V0}:${e.summary_index}`,providerMetadata:{[U]:{itemId:V0,reasoningEncryptedContent:(x$=I1.encryptedContent)!=null?x$:null}}})}}}else if(e.type==="response.reasoning_summary_text.delta"){let V0=p({itemId:e.item_id,outputIndex:e.output_index});Z0.enqueue({type:"reasoning-delta",id:`${V0}:${e.summary_index}`,delta:e.delta,providerMetadata:{[U]:{itemId:V0}}})}else if(e.type==="response.reasoning_summary_part.done"){let V0=p({itemId:e.item_id,outputIndex:e.output_index}),I1=l[V0];if(I1!=null)if(F)Z0.enqueue({type:"reasoning-end",id:`${V0}:${e.summary_index}`,providerMetadata:{[U]:{itemId:V0}}}),I1.summaryParts[e.summary_index]="concluded";else I1.summaryParts[e.summary_index]="can-conclude"}else if(MT4(e)){if(!N0)A={unified:yW0({finishReason:(i$=e.response.incomplete_details)==null?void 0:i$.reason,hasFunctionCall:g}),raw:(K8=(w8=e.response.incomplete_details)==null?void 0:w8.reason)!=null?K8:void 0};if(P=(z5=e.response.usage)!=null?z5:void 0,typeof e.response.service_tier==="string")U0=e.response.service_tier;if(((h8=e.response.reasoning)==null?void 0:h8.context)!=null)v0=e.response.reasoning.context}else if(qH$(e)){let V0=(p6=e.response.incomplete_details)==null?void 0:p6.reason;if(A={unified:V0?yW0({finishReason:V0,hasFunctionCall:g}):"error",raw:V0!=null?V0:"error"},P=(A9=e.response.usage)!=null?A9:void 0,((o0=e.response.reasoning)==null?void 0:o0.context)!=null)v0=e.response.reasoning.context;if(!N0&&e.response.error!=null){N0=!0;let I1={type:"response.failed",sequence_number:e.sequence_number,response:{error:e.response.error,incomplete_details:e.response.incomplete_details,service_tier:e.response.service_tier}};Z0.enqueue({type:"error",error:(E1=Te(I1))!=null?E1:I1})}}else if(xT4(e)){if(V.push(e.annotation),e.annotation.type==="url_citation")Z0.enqueue({type:"source",sourceType:"url",id:(K$=(c1=(h$=j.config).generateId)==null?void 0:c1.call(h$))!=null?K$:$4(),url:e.annotation.url,title:e.annotation.title});else if(e.annotation.type==="file_citation")Z0.enqueue({type:"source",sourceType:"document",id:(F4=(Z5=(f8=j.config).generateId)==null?void 0:Z5.call(f8))!=null?F4:$4(),mediaType:"text/plain",title:e.annotation.filename,filename:e.annotation.filename,providerMetadata:{[U]:{type:e.annotation.type,fileId:e.annotation.file_id,index:e.annotation.index}}});else if(e.annotation.type==="container_file_citation")Z0.enqueue({type:"source",sourceType:"document",id:(s$=(I8=(Q$=j.config).generateId)==null?void 0:I8.call(Q$))!=null?s$:$4(),mediaType:"text/plain",title:e.annotation.filename,filename:e.annotation.filename,providerMetadata:{[U]:{type:e.annotation.type,fileId:e.annotation.file_id,containerId:e.annotation.container_id}}});else if(e.annotation.type==="file_path")Z0.enqueue({type:"source",sourceType:"document",id:(BQ=(K9=(N$=j.config).generateId)==null?void 0:K9.call(N$))!=null?BQ:$4(),mediaType:"application/octet-stream",title:e.annotation.file_id,filename:e.annotation.file_id,providerMetadata:{[U]:{type:e.annotation.type,fileId:e.annotation.file_id,index:e.annotation.index}}})}else if(IH$(e))N0=!0,A={unified:"error",raw:"error"},Z0.enqueue({type:"error",error:(MZ=Te(e))!=null?MZ:e})},flush($0){var Z0;for(let Y0 of Object.values(_)){if(!(Y0==null?void 0:Y0.suppressInputStreaming))continue;$0.enqueue({type:"tool-input-start",id:Y0.toolCallId,toolName:Y0.toolName});for(let d0 of(Z0=Y0.bufferedInputDeltas)!=null?Z0:[])$0.enqueue({type:"tool-input-delta",id:Y0.toolCallId,delta:d0})}let r={[U]:{responseId:x,...q.length>0?{logprobs:q}:{},...U0!==void 0?{serviceTier:U0}:{},...v0!==void 0?{reasoningContext:v0}:{}}};$0.enqueue({type:"finish",finishReason:A,usage:a01(P),providerMetadata:r})}})),request:{body:G},response:{headers:O}}}};kH$=W0(()=>s(h6.object({inputFileExpiresAfter:h6.number().int().min(3600).max(2592000).optional()})));i01=W0(()=>s($F$())),uT4=W0(()=>s(h6.object({custom_id:h6.string(),response:h6.object({status_code:h6.number(),request_id:h6.string().nullish(),body:h6.unknown()}).nullish(),error:h6.object({code:h6.string(),message:h6.string()}).nullish()}))),lT4=W0(()=>s(h6.object({data:h6.array($F$()),has_more:h6.boolean(),last_id:h6.string().nullish()})));dT4=new Set(["openai.code_interpreter","openai.custom","openai.file_search","openai.web_search","openai.web_search_preview"]);oT4=E6.strictObject({type:E6.string(),responseEvent:E6.string().optional()}).refine(($)=>$.type==="response.event"===($.responseEvent!==void 0),"responseEvent is required for response.event and forbidden for other event types."),rT4=E6.strictObject({client:E6.strictObject({dataChannel:E6.strictObject({allowedClientEvents:E6.union([E6.literal("all"),E6.array(E6.string())]).optional(),allowedServerEvents:E6.union([E6.literal("all"),E6.array(oT4)]).optional()})}).optional(),delegation:E6.strictObject({type:E6.literal("client")}).nullable().optional(),input:E6.array(E6.discriminatedUnion("role",[E6.strictObject({type:E6.literal("message"),role:E6.enum(["developer","user"]),content:E6.tuple([E6.strictObject({type:E6.literal("input_text"),text:E6.string()})])}),E6.strictObject({type:E6.literal("message"),role:E6.literal("assistant"),content:E6.tuple([E6.strictObject({type:E6.enum(["text","output_text"]),text:E6.string()})])})])).max(128).optional(),store:E6.boolean().optional(),voice:E6.strictObject({id:E6.string().min(1)}).optional()}),SH$=LW.union([LW.strictObject({type:LW.literal("audio/pcm"),rate:LW.union([LW.literal(16000),LW.literal(24000)])}),LW.strictObject({type:LW.enum(["audio/pcma","audio/pcmu"]),rate:LW.literal(8000)})]);U11=y$.object({id:y$.string().min(1)}),sT4=U11.extend({delegation:y$.object({type:y$.enum(["client","responses"])}).nullish()}),CH$=y$.object({seconds:y$.number().nonnegative()}),_H$={delta:y$.string(),start_ms:y$.number().nonnegative(),end_ms:y$.number().nonnegative()},gW0={client_event_id:y$.string().nullish()},p01={...gW0,start_ms:y$.number().nonnegative(),end_ms:y$.number().nonnegative()},ZF$=y$.discriminatedUnion("type",[y$.object({type:y$.literal("session.started"),session:sT4}),y$.object({type:y$.literal("session.closed"),session:U11.nullish(),usage:CH$,reason:y$.string()}),y$.object({type:y$.literal("session.usage.updated"),usage:CH$,context_window:y$.object({usage_ratio:y$.number().min(0).max(1)}).nullish()}),y$.object({type:y$.literal("session.output_audio.delta"),delta:y$.string()}),y$.object({type:y$.literal("session.input_transcript.delta"),..._H$}),y$.object({type:y$.literal("session.output_transcript.delta"),..._H$}),y$.object({type:y$.literal("session.delegation.created"),offset_ms:y$.number().nonnegative().nullish(),delegation:y$.object({id:y$.string().min(1),target:y$.enum(["client","responses"]).nullish(),response_id:y$.string().min(1).nullish()})}),y$.object({type:y$.literal("session.updated"),session:U11,...gW0}),y$.object({type:y$.literal("session.input_audio.muted"),...gW0}),y$.object({type:y$.literal("session.input_audio.unmuted"),...gW0}),y$.object({type:y$.literal("session.instructions.appended"),...p01}),y$.object({type:y$.literal("session.thinking.appended"),...p01}),y$.object({type:y$.literal("session.commentary.appended"),...p01}),y$.object({type:y$.literal("error"),error:y$.object({message:y$.string(),code:y$.string().nullish(),client_event_id:y$.string().nullish()})})]),aT4=new Set(ZF$.options.map(($)=>$.shape.type.value)),eT4=y$.object({type:y$.string()});YR4=r2.object({session:r2.object({id:r2.string().min(1)}),transport:r2.object({type:r2.literal("webrtc"),sdp:r2.string().min(1)})});WR4=["gpt-live-1"];FR4=W0(()=>s(n01.object({instructions:n01.string().nullish(),speed:n01.number().min(0.25).max(4).default(1).nullish()}))),UR4=class ${constructor(Z,Q){this.modelId=Z,this.config=Q,this.specificationVersion="v4"}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get provider(){return this.config.provider}async getArgs({text:Z,voice:Q="alloy",outputFormat:Y="mp3",speed:X,instructions:J,language:G,providerOptions:W}){let K=[],H=await C$({provider:"openai",providerOptions:W,schema:FR4}),F={model:this.modelId,input:Z,voice:Q,response_format:"mp3",speed:X,instructions:J};if(Y)if(["mp3","opus","aac","flac","wav","pcm"].includes(Y))F.response_format=Y;else K.push({type:"unsupported",feature:"outputFormat",details:`Unsupported output format: ${Y}. Using mp3 instead.`});if(H){let U={};for(let N in U){let B=U[N];if(B!==void 0)F[N]=B}}if(G)K.push({type:"unsupported",feature:"language",details:`OpenAI speech models do not support language selection. Language parameter "${G}" was ignored.`});return{requestBody:F,warnings:K}}async doGenerate(Z){var Q,Y,X,J,G;let W=(X=(Y=(Q=this.config._internal)==null?void 0:Q.currentDate)==null?void 0:Y.call(Q))!=null?X:new Date,{requestBody:K,warnings:H}=await this.getArgs(Z),{value:F,responseHeaders:U,rawValue:N}=await a1({url:this.config.url({path:"/audio/speech",modelId:this.modelId}),headers:M1((G=(J=this.config).headers)==null?void 0:G.call(J),Z.headers),body:K,failedResponseHandler:_9,successfulResponseHandler:yJ$(),abortSignal:Z.abortSignal,fetch:this.config.fetch});return{audio:F,warnings:H,request:{body:JSON.stringify(K)},response:{timestamp:W,modelId:this.modelId,headers:U,body:N}}}},NR4=W0(()=>s(r6.object({text:r6.string(),language:r6.string().nullish(),duration:r6.number().nullish(),words:r6.array(r6.object({word:r6.string(),start:r6.number(),end:r6.number()})).nullish(),segments:r6.array(r6.union([r6.object({id:r6.number(),seek:r6.number(),start:r6.number(),end:r6.number(),text:r6.string(),tokens:r6.array(r6.number()),temperature:r6.number(),avg_logprob:r6.number(),compression_ratio:r6.number(),no_speech_prob:r6.number()}),r6.object({type:r6.literal("transcript.text.segment"),id:r6.string(),start:r6.number(),end:r6.number(),text:r6.string(),speaker:r6.string()})])).nullish()}))),bH$=W0(()=>s($7.object({include:$7.array($7.string()).optional(),language:$7.string().optional(),prompt:$7.string().optional(),temperature:$7.number().min(0).max(1).default(0).optional(),timestampGranularities:$7.array($7.enum(["word","segment"])).default(["segment"]).optional(),responseFormat:$7.enum(["json","verbose_json","diarized_json"]).optional(),chunkingStrategy:$7.union([$7.literal("auto"),$7.object({type:$7.literal("server_vad"),threshold:$7.number().min(0).max(1).optional(),prefixPaddingMs:$7.number().int().min(0).optional(),silenceDurationMs:$7.number().int().min(0).optional()})]).optional(),streaming:$7.object({delay:$7.enum(["minimal","low","medium","high","xhigh"]).optional(),include:$7.array($7.string()).optional()}).optional()})));fH$={afrikaans:"af",arabic:"ar",armenian:"hy",azerbaijani:"az",belarusian:"be",bosnian:"bs",bulgarian:"bg",catalan:"ca",chinese:"zh",croatian:"hr",czech:"cs",danish:"da",dutch:"nl",english:"en",estonian:"et",finnish:"fi",french:"fr",galician:"gl",german:"de",greek:"el",hebrew:"he",hindi:"hi",hungarian:"hu",icelandic:"is",indonesian:"id",italian:"it",japanese:"ja",kannada:"kn",kazakh:"kk",korean:"ko",latvian:"lv",lithuanian:"lt",macedonian:"mk",malay:"ms",marathi:"mr",maori:"mi",nepali:"ne",norwegian:"no",persian:"fa",polish:"pl",portuguese:"pt",romanian:"ro",russian:"ru",serbian:"sr",slovak:"sk",slovenian:"sl",spanish:"es",swahili:"sw",swedish:"sv",tagalog:"tl",tamil:"ta",thai:"th",turkish:"tr",ukrainian:"uk",urdu:"ur",vietnamese:"vi",welsh:"cy"},BR4=class ${constructor(Z,Q){this.modelId=Z,this.config=Q,this.specificationVersion="v4"}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get provider(){return this.config.provider}async getArgs({audio:Z,mediaType:Q,providerOptions:Y}){var X,J;let G=[],W=await C$({provider:"openai",providerOptions:Y,schema:bH$}),K=new FormData,H=Z instanceof Uint8Array?new Blob([Z]):new Blob([h9(Z)]);K.append("model",this.modelId);let F=IJ$(Q);if(K.append("file",new File([H],"audio",{type:Q}),`audio.${F}`),this.modelId==="whisper-1")K.append("response_format","verbose_json");let U=this.modelId==="gpt-4o-transcribe-diarize",N=(X=W==null?void 0:W.chunkingStrategy)!=null?X:U?"auto":void 0;if(W){let B=["gpt-4o-transcribe","gpt-4o-mini-transcribe"].includes(this.modelId),O={include:W.include,language:W.language,prompt:W.prompt,...this.modelId!=="whisper-1"&&{response_format:(J=W.responseFormat)!=null?J:U?"diarized_json":B?"json":"verbose_json"},temperature:W.temperature,timestamp_granularities:W.timestampGranularities};for(let[L,w]of Object.entries(O))if(w!=null)if(Array.isArray(w))for(let j of w)K.append(`${L}[]`,String(j));else K.append(L,String(w))}else if(U)K.append("response_format","diarized_json");if(N!=null)K.append("chunking_strategy",typeof N==="string"?N:JSON.stringify({type:N.type,...N.threshold!=null&&{threshold:N.threshold},...N.prefixPaddingMs!=null&&{prefix_padding_ms:N.prefixPaddingMs},...N.silenceDurationMs!=null&&{silence_duration_ms:N.silenceDurationMs}}));return{formData:K,warnings:G}}async doGenerate(Z){var Q,Y,X,J,G,W,K,H,F,U,N;if(xH$(this.modelId))throw new s1({functionality:`non-streaming transcription with ${this.modelId}`});let B=(X=(Y=(Q=this.config._internal)==null?void 0:Q.currentDate)==null?void 0:Y.call(Q))!=null?X:new Date,{formData:O,warnings:L}=await this.getArgs(Z),{value:w,responseHeaders:j,rawValue:E}=await KW({url:this.config.url({path:"/audio/transcriptions",modelId:this.modelId}),headers:M1((G=(J=this.config).headers)==null?void 0:G.call(J),Z.headers),formData:O,failedResponseHandler:_9,successfulResponseHandler:A1(NR4),abortSignal:Z.abortSignal,fetch:this.config.fetch}),z=w.language!=null&&w.language in fH$?fH$[w.language]:void 0,T=(W=w.segments)==null?void 0:W.flatMap((A)=>("speaker"in A)?[{text:A.text,startSecond:A.start,endSecond:A.end,speaker:A.speaker}]:[]);return{text:w.text,segments:(U=(F=(K=w.segments)==null?void 0:K.map((A)=>({text:A.text,startSecond:A.start,endSecond:A.end})))!=null?F:(H=w.words)==null?void 0:H.map((A)=>({text:A.word,startSecond:A.start,endSecond:A.end})))!=null?U:[],language:z,durationInSeconds:(N=w.duration)!=null?N:void 0,warnings:L,response:{timestamp:B,modelId:this.modelId,headers:j,body:E},...T!=null&&T.length>0&&{providerMetadata:{openai:{segments:T}}}}}async doStream(Z){var Q,Y,X,J,G,W,K;if(!xH$(this.modelId))throw new s1({functionality:`streaming transcription with ${this.modelId}`});let H=(X=(Y=(Q=this.config._internal)==null?void 0:Q.currentDate)==null?void 0:Y.call(Q))!=null?X:new Date,F=await C$({provider:"openai",providerOptions:Z.providerOptions,schema:bH$}),U=[],N=(G=(J=Z.providerOptions)==null?void 0:J.openai)!=null?G:{};for(let L of["include","prompt","temperature","timestampGranularities"])if(N[L]!=null)U.push({type:"unsupported",feature:`providerOptions.openai.${L}`,details:`OpenAI streaming transcription does not support ${L}.`});let B=M1((K=(W=this.config).headers)==null?void 0:K.call(W),Z.headers),O=OR4({modelId:this.modelId,inputAudioFormat:Z.inputAudioFormat,providerOptions:F});return{request:{body:O},response:{timestamp:H,modelId:this.modelId},stream:DR4({webSocket:this.config.webSocket,url:U30(this.config.url({path:"/realtime?intent=transcription",modelId:this.modelId})),headers:B,sessionUpdate:O,language:F==null?void 0:F.language,warnings:U,audio:Z.audio,abortSignal:Z.abortSignal,includeRawChunks:Z.includeRawChunks})}}};jR4=W0(()=>s(wR4.object({}))),ER4=class ${constructor(Z,Q){this.modelId=Z,this.config=Q,this.specificationVersion="v4"}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get provider(){return this.config.provider}async doStream(Z){var Q,Y,X,J,G;if(Z.targetLanguage==null)throw new g8({argument:"targetLanguage",message:`targetLanguage is required for translation model '${this.modelId}'.`});let W=(X=(Y=(Q=this.config._internal)==null?void 0:Q.currentDate)==null?void 0:Y.call(Q))!=null?X:new Date;await C$({provider:"openai",providerOptions:Z.providerOptions,schema:jR4});let K=[];if(AR4(Z.inputAudioFormat),Z.sourceLanguage!=null)K.push({type:"unsupported",feature:"sourceLanguage",details:"The OpenAI Realtime translation API auto-detects the source language and does not accept a source language."});if(Z.outputAudioFormat!=null)K.push({type:"unsupported",feature:"outputAudioFormat",details:"The OpenAI Realtime translation API always outputs 24kHz 16-bit PCM audio and does not accept an output audio format."});let H=M1((G=(J=this.config).headers)==null?void 0:G.call(J),Z.headers),F=PR4({targetLanguage:Z.targetLanguage});return{request:{body:F},response:{timestamp:W,modelId:this.modelId},stream:zR4({webSocket:this.config.webSocket,url:U30(this.config.url({path:`/realtime/translations?model=${encodeURIComponent(this.modelId)}`,modelId:this.modelId})),headers:H,sessionUpdate:F,warnings:K,audio:Z.audio,abortSignal:Z.abortSignal,includeRawChunks:Z.includeRawChunks})}}};RR4=W0(()=>s(tG.object({id:tG.string(),name:tG.string().nullish(),description:tG.string().nullish(),default_version:tG.string().nullish(),latest_version:tG.string().nullish(),created_at:tG.number(),updated_at:tG.number().nullish()}))),Ir5=W0(()=>s(tG.object({id:tG.string(),version:tG.string().nullish(),name:tG.string().nullish(),description:tG.string().nullish()})));Vr5=s2()});function VR4($){return _F("LLMAPI listModels",`${YF$}/models`,{headers:$?{Authorization:`Bearer ${$}`}:{},signal:AbortSignal.timeout(15000)})}var YF$="https://api.llmapi.ai/v1",IR4="https://llmapi.ai/wp-content/uploads/2026/01/Frame-2085662993.png",XF$;var JF$=D(()=>{uW0();E2();XF$={info:{id:"llmapi",name:"LLMAPI",description:"One API key, 400+ models across every provider",logo:IR4},supportedMethods:["api-key"],create($){let Z=s2({apiKey:$||"not-needed",baseURL:YF$,name:"llmapi"}),Q=Object.assign((...Y)=>Z.chat(...Y),Z,{languageModel:Z.chat});return{info:this.info,aiSdk:Q,async listModels(){let Y=await VR4($);if(!Y.ok)await EY("LLMAPI listModels",Y);let{data:X}=await vF("LLMAPI listModels",Y);return X.filter((J)=>typeof J.id==="string"&&J.id.length>0).map((J)=>{let G=J.architecture??{},W=!!J.reasoning_levels?.length||!!J.providers?.some((K)=>K.reasoning);return{providerId:"llmapi",modelId:J.id,title:J.name||J.id,description:J.description??null,logo:null,capabilities:iG0(G.input_modalities??[],G.output_modalities??[],J.supported_parameters,W?["reasoning"]:[]),limits:{contextWindow:J.context_length??0,maxOutputTokens:null},costs:{input:Number(J.pricing?.prompt)||0,output:Number(J.pricing?.completion)||0}}})}}}}});function kR4($,Z){return _F("OpenAI-compatible listModels",`${$}/models`,{headers:Z,signal:AbortSignal.timeout(15000)})}function SR4($){let Z=JSON.parse($);if(!Z.baseUrl||typeof Z.baseUrl!=="string")throw Error("Invalid OpenAI-compatible credential: missing baseUrl field");let Q=Z.baseUrl.replace(/\/+$/,"");if(!Q.endsWith("/v1"))Q+="/v1";return{baseUrl:Q,apiKey:Z.apiKey??""}}var CR4="https://assets.decocache.com/decocms/d138aa7e-5b8c-4821-9e64-6aff40df2cdc/ChatGPT_logo.svg",GF$;var WF$=D(()=>{uW0();E2();GF$={info:{id:"openai-compatible",name:"OpenAI Compatible",description:"Custom OpenAI-compatible endpoint",logo:CR4},supportedMethods:["api-key"],create($){let{baseUrl:Z,apiKey:Q}=SR4($),Y=s2({baseURL:Z,apiKey:Q||"not-needed",name:"openai-compatible"}),X=Object.assign((...J)=>Y.chat(...J),Y,{languageModel:Y.chat});return{info:this.info,aiSdk:X,async listModels(){let J={};if(Q)J.Authorization=`Bearer ${Q}`;let G=await kR4(Z,J);if(!G.ok)await EY("OpenAI-compatible listModels",G);return(await vF("OpenAI-compatible listModels",G)).data.filter((K)=>typeof K.id==="string"&&K.id.length>0).map((K)=>({providerId:"openai-compatible",modelId:K.id,title:K.id,description:K.owned_by?`Owned by ${K.owned_by}`:null,logo:null,capabilities:[],limits:null,costs:null}))}}}}});function v9(){return{...E0().aiGatewayEnabled&&{deco:Ew},anthropic:ZK$,google:ZH$,openrouter:pG0,llmapi:XF$,"openai-compatible":GF$}}var wW=D(()=>{QK$();QH$();JF$();WF$();_s0();ul();X$()});function bR4($,Z,Q){su($,Z,Q)}function xR4($,Z,Q){au($,Z,Q)}function L11($){qe.delete($)}async function w11($,Z){if(!E0().plansEnabled)return null;if(!E0().aiGatewayEnabled)return null;let Q=qe.get(Z);if(Q&&Date.now()-Q.at<HF$)return Q.value;let Y=O11.get(Z);if(Y)return Y;let X=fR4($,Z,Q).finally(()=>{O11.delete(Z)});return O11.set(Z,X),X}async function fR4($,Z,Q){let Y=v9().deco;if(!Y?.getEntitlements)return null;let X=$.auth.user?.id??$.auth.apiKey?.userId;if(!X)return KF$(Z,Q);try{let J=await TQ(X),{features:G,usage:W,modelPins:K,credits:H}=await Y.getEntitlements(J,Z);if(!G||typeof G!=="object")throw new z2(502);let F={features:G,modelPins:K,usageState:W?.state??null,creditsUsd:H?.remainingUsd??null};return bR4(qe,Z,F),xR4(qe,vR4,HF$),F}catch(J){let G=J instanceof z2&&J.isDefinitive,W=J instanceof z2&&J.isDormant,K={organizationId:Z,servedStale:!!Q,status:J instanceof z2?J.status:null,error:J instanceof Error?J.message:String(J)};if(W);else if(G)console.error("[Plans] entitlements REFUSED by the gateway \u2014 gates fail OPEN for every org until this is fixed (check STUDIO_JWT_SECRET and STUDIO_PROVISION_SECRET_KEY against the gateway's MESH_JWT_SECRET and STUDIO_PROVISION_KEY)",K);else console.warn("[Plans] entitlements lookup failed (gateway unreachable) \u2014 gates fail OPEN",K);return KF$(Z,Q)}}function KF$($,Z){if(Z&&Date.now()-Z.at>=_R4)return qe.delete($),null;return Z?.value??null}async function IJ($,Z,Q){let Y=await w11($,Z);return FF$(Y?.features??null,Q)}function FF$($,Z){if(!$)return!0;return $[Z]===!0}function yR4($,Z){if($!=="exhausted")return!1;return!(Z!==null&&Z>0)}async function oG($,Z,Q){let Y=await w11($,Z);if(!yR4(Y?.usageState??null,Y?.creditsUsd??null))return;throw new lW0(`${Q} is paused: this organization has used its monthly AI allowance`)}async function UF$($,Z,Q){let Y=await w11($,Z);if(!Y)return null;if(FF$(Y.features,"model_choice"))return null;return Y.modelPins?.[Q]??null}var JU,HF$=60000,_R4=600000,qe,vR4=1e4,O11,lW0;var JH=D(()=>{bK();wW();ul();MK();X$();JU=class JU extends t7{feature;code="feature_not_in_plan";constructor($,Z){super($);this.feature=Z;this.name="FeatureNotInPlanError"}};qe=new Map;O11=new Map;lW0=class lW0 extends t7{code="ai_budget_exhausted";constructor($){super($);this.name="AiBudgetExhaustedError"}}});function NF$($){let{ctx:Z,toolName:Q,organizationId:Y,durationMs:X,isError:J}=$,G={"tool.name":Q,"organization.id":Y,status:J?"error":"success"};Z.meter.createHistogram("studio_tool.execution.duration",{description:"Duration of in-process Studio tool executions in milliseconds",unit:"ms"}).record(X,G),Z.meter.createCounter("studio_tool.execution.count",{description:"Number of in-process Studio tool executions"}).add(1,G)}import{SpanStatusCode as BF$}from"@opentelemetry/api";function c($){return{...$,execute:async(Z,Q)=>{let Y=performance.now(),X=!1;return await Q.timings.measure(`tool.${$.name}`,async()=>Q.tracer.startActiveSpan(`tool.${$.name}`,{attributes:{"tool.name":$.name,"organization.id":Q.organization?.id??"system","user.id":Q.auth.user?.id??Q.auth.apiKey?.userId??"anonymous"}},async(J)=>{try{Q.toolName=$.name,Q.access.setToolName?.($.name);let G=Q.organization?.id;if(G&&!cY$($.name)&&await X30(Q.db,G))throw new is(`This organization is blocked: ${$.name} is unavailable until the block is resolved`);if(($.requiresFeature||$.requiresAiBudget)&&!G)console.warn(`[Plans] ${$.name} declares a plan gate but no organization is in scope \u2014 running UNGATED`);if($.requiresFeature&&G&&!await IJ(Q,G,$.requiresFeature))throw new JU(`${$.name} needs the ${$.requiresFeature} feature, which this organization's plan does not include`,$.requiresFeature);if($.requiresAiBudget&&G)await oG(Q,G,$.name);let W=await $.handler(Z,Q);return J.setStatus({code:BF$.OK}),W}catch(G){throw X=!0,J.setStatus({code:BF$.ERROR,message:G.message}),J.recordException(G),G}finally{NF$({ctx:Q,toolName:$.name,organizationId:Q.organization?.id??"system",durationMs:performance.now()-Y,isError:X}),J.end()}}))}}}var k0=D(()=>{T2();JH()});function J0($){if(!$.organization)throw Error("This operation requires organization scope");return $.organization}function p0($){return $.auth.user?.id??$.auth.apiKey?.userId}function a2($){return!!($.auth.user||$.auth.apiKey)}function n($){if(!a2($))throw Error("Authentication required")}import{z as H4}from"zod";var OF$,DF$=1000,gR4=500,LF$,wF$,jF$,EF$,zF$,PF$,AF$,TF$,RF$,qF$;var bc=D(()=>{OF$=H4.record(H4.string(),H4.array(H4.string())),LF$=H4.record(H4.string(),H4.array(H4.string()).max(gR4)).refine(($)=>Object.keys($).length<=DF$,{message:`Permissions cannot grant more than ${DF$} resources`}),wF$=H4.object({id:H4.string().describe("Unique identifier for the API key"),name:H4.string().describe("Human-readable name for the API key"),userId:H4.string().describe("ID of the user who owns this API key"),permissions:OF$.describe('Permissions granted to this API key. Format: { resource: [actions] } where resource is "self" for management tools or "conn_<UUID>" for connection-specific tools. Example: { "self": ["API_KEY_CREATE"], "conn_abc123": ["SEND_MESSAGE"] }'),expiresAt:H4.string().datetime().nullable().optional().describe("Expiration date of the API key (ISO 8601)"),createdAt:H4.string().datetime().describe("When the API key was created (ISO 8601)")}),jF$=H4.object({name:H4.string().min(1).max(64).describe("Human-readable name for the API key"),permissions:LF$.describe(`Permissions to grant (REQUIRED \u2014 there is no implicit default). Format: { resource: [actions] }. Resource is "self" for management tools or "conn_<UUID>" for connection-specific tools. Actions are tool names (e.g., ["ORGANIZATION_GET"]) or ["*"] for all. Example: { "self": ["ORGANIZATION_GET", "COLLECTION_CONNECTIONS_LIST"] }. The key is authorized solely by this allowlist; the creator's role does not widen it.`),expiresIn:H4.number().positive().optional().describe("Expiration time in seconds. If not provided, key never expires."),metadata:H4.record(H4.string(),H4.unknown()).optional().describe("Additional metadata to store with the API key")}),EF$=H4.object({id:H4.string().describe("Unique identifier for the API key"),name:H4.string().describe("Human-readable name for the API key"),key:H4.string().describe("The actual API key value. STORE THIS SECURELY - it will not be shown again!"),permissions:OF$.describe('Permissions granted to this API key. Format: { resource: [actions] } where resource is "self" for management tools or "conn_<UUID>" for connection-specific tools'),expiresAt:H4.string().datetime().nullable().optional().describe("Expiration date of the API key (ISO 8601)"),createdAt:H4.string().datetime().describe("When the API key was created (ISO 8601)")}),zF$=H4.object({}),PF$=H4.object({items:H4.array(wF$).describe("List of API keys (without key values)")}),AF$=H4.object({keyId:H4.string().describe("ID of the API key to update"),name:H4.string().min(1).max(64).optional().describe("New name for the API key"),permissions:LF$.optional().describe('New permissions. Format: { resource: [actions] } where resource is "self" for management tools or "conn_<UUID>" for connection-specific tools. Actions are tool names or "*" for all. Example: { "self": ["API_KEY_CREATE"] }. Replaces existing permissions.'),metadata:H4.record(H4.string(),H4.unknown()).optional().describe("New metadata. Replaces existing metadata.")}),TF$=H4.object({item:wF$.describe("The updated API key (without key value)")}),RF$=H4.object({keyId:H4.string().describe("ID of the API key to delete")}),qF$=H4.object({success:H4.boolean().describe("Whether the deletion was successful"),keyId:H4.string().describe("ID of the deleted API key")})});var j11;var MF$=D(()=>{G6();k0();bc();j11=c({name:"API_KEY_CREATE",description:"Create an API key with scoped permissions. The key value is returned only once \u2014 store it immediately.",annotations:{title:"Create API Key",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:jF$,outputSchema:EF$,handler:async($,Z)=>{n(Z),await Z.access.check();let Q=await Z.boundAuth.apiKey.create({name:$.name,permissions:$.permissions,expiresIn:$.expiresIn,metadata:{...$.metadata,organization:Z.organization}}),Y=Q.expiresAt?Q.expiresAt instanceof Date?Q.expiresAt.toISOString():Q.expiresAt:null,X=Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,J=p0(Z);if(J)f1.capture({distinctId:J,event:"api_key_created",...Z.organization?.id?{groups:{organization:Z.organization.id}}:{},properties:{key_id:Q.id,key_name:Q.name??$.name,organization_id:Z.organization?.id,has_expiry:!!Y}});return{id:Q.id,name:Q.name??$.name,key:Q.key,permissions:Q.permissions??{},expiresAt:Y,createdAt:X}}})});var E11;var IF$=D(()=>{G6();k0();bc();E11=c({name:"API_KEY_DELETE",description:"Delete and instantly revoke an API key. Cannot be undone.",annotations:{title:"Delete API Key",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:RF$,outputSchema:qF$,handler:async($,Z)=>{n(Z),await Z.access.check();let Q=p0(Z);if(!Q)throw Error("User ID required to delete API key");let X=(await Z.boundAuth.apiKey.list())?.find((K)=>K.id===$.keyId);if(!X)throw Error("API key not found");let G=X.metadata?.organization?.id,W=Z.organization?.id;if(G!==W)throw Error("Cannot delete API key from another organization");if(await Z.boundAuth.apiKey.delete($.keyId),W)f1.capture({distinctId:Q,event:"api_key_deleted",groups:{organization:W},properties:{key_id:$.keyId,organization_id:W}});return{success:!0,keyId:$.keyId}}})});var z11;var VF$=D(()=>{k0();bc();z11=c({name:"API_KEY_LIST",description:"List API keys for the current user in the current organization. Returns metadata only \u2014 key values are never shown after creation.",annotations:{title:"List API Keys",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:zF$,outputSchema:PF$,handler:async($,Z)=>{n(Z),await Z.access.check();let Q=await Z.boundAuth.apiKey.list(),Y=Z.organization?.id;return{items:(Q??[]).filter((J)=>{return J.metadata?.organization?.id===Y}).map((J)=>({id:J.id,name:J.name??"Unnamed Key",userId:J.userId,permissions:J.permissions??{},expiresAt:J.expiresAt?J.expiresAt instanceof Date?J.expiresAt.toISOString():J.expiresAt:null,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}))}}})});var P11;var kF$=D(()=>{k0();bc();P11=c({name:"API_KEY_UPDATE",description:"Update an API key's name, permissions, or metadata. The key value cannot be changed or retrieved.",annotations:{title:"Update API Key",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:AF$,outputSchema:TF$,handler:async($,Z)=>{if(n(Z),await Z.access.check(),!p0(Z))throw Error("User ID required to update API key");let X=(await Z.boundAuth.apiKey.list())?.find((H)=>H.id===$.keyId);if(!X)throw Error(`API key not found: ${$.keyId}`);let G=X.metadata?.organization?.id,W=Z.organization?.id;if(G!==W)throw Error("Cannot update API key from another organization");let K=await Z.boundAuth.apiKey.update({keyId:$.keyId,name:$.name,permissions:$.permissions,metadata:{...$.metadata,organization:Z.organization}});if(!K)throw Error(`Failed to update API key: ${$.keyId}`);return{item:{id:K.id,name:K.name??$.name??"Unnamed Key",userId:K.userId,permissions:K.permissions??{},expiresAt:K.expiresAt?K.expiresAt instanceof Date?K.expiresAt.toISOString():K.expiresAt:null,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt}}}})});var SF$=D(()=>{MF$();IF$();VF$();kF$();bc()});function iB($){let Z=$.trim();if(!Z)return{ok:!1,error:"Enter a website URL."};let Q=uR4.test(Z),Y=lR4.test(Z),X=cR4.test(Z);if(Q&&!Y&&!X)return{ok:!1,error:"Use an HTTP or HTTPS website URL."};let J=Y?Z:`https://${Z}`,G;try{G=new URL(J)}catch{return{ok:!1,error:"Enter a valid website URL."}}if(G.protocol!=="http:"&&G.protocol!=="https:")return{ok:!1,error:"Use an HTTP or HTTPS website URL."};let W=G.hostname.split(".");if(W.length<2||W.some((K)=>!K||!mR4.test(K)))return{ok:!1,error:"Enter a valid website URL."};return G.protocol="https:",{ok:!0,value:G.origin}}function A11($){if(!$)return null;let Z=iB($);return Z.ok?new URL(Z.value).hostname:null}var uR4,lR4,cR4,mR4;var xc=D(()=>{uR4=/^[a-zA-Z][a-zA-Z\d+.-]*:/,lR4=/^[a-zA-Z][a-zA-Z\d+.-]*:\/\//,cR4=/^[^\s/:?#]+\.[^\s/:?#]+:\d+(?:[/?#]|$)/,mR4=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/i});import{z as VJ}from"zod";function cW0($){return{repository_id:$.repositoryId,provider:$.provider,host:$.host,path:$.path,default_branch:$.defaultBranch??null,web_url:$.webUrl??null}}function CF$($){let Z=dR4.safeParse($);if(!Z.success)return null;return{repositoryId:Z.data.repository_id,provider:Z.data.provider,host:Z.data.host,path:Z.data.path,defaultBranch:Z.data.default_branch??null,webUrl:Z.data.web_url??null}}function mW0($){return $.provider==="github"&&$.host.toLowerCase()==="github.com"?$.path:null}var T11,dR4;var dW0=D(()=>{T11=VJ.object({repositoryId:VJ.string().min(1),provider:VJ.enum(["github","gitlab","bitbucket"]),host:VJ.string().min(1),path:VJ.string().min(1),defaultBranch:VJ.string().nullable().optional(),webUrl:VJ.string().nullable().optional()}),dR4=VJ.object({repository_id:VJ.string().min(1),provider:VJ.enum(["github","gitlab","bitbucket"]),host:VJ.string().min(1),path:VJ.string().min(1),default_branch:VJ.string().nullable().optional(),web_url:VJ.string().nullable().optional()})});import{z as ZQ}from"zod";function jW($){if($.baseUrl)return $.baseUrl.replace(/\/+$/,"");return(($.settings??E0()).reportsInternalApiUrl??iR4).replace(/\/+$/,"")}function vF$($={}){return`${jW($)}/api/v2/mcp`}function nw($){let Z=$.apiKey??($.settings??E0()).reportsInternalApiKey;if(!Z)throw Error("REPORTS_INTERNAL_API_KEY (or the legacy COMMERCE_DISCOVERY_INTERNAL_API_KEY) is required to set up reports.");return Z}function Me($){return new URL($).hostname}function nR4($){return $==="ownership_unverified"||$==="already_claimed_by_other_org"}function tR4($,Z={}){switch($){case"ownership_unverified":{let Q=Z.email?`O e-mail ${Z.email}`:"Este e-mail",Y=Z.domain?` ${Z.domain}`:" este site";return`${Q} n\xE3o tem permiss\xE3o para reivindicar${Y}. Use um e-mail do dom\xEDnio do site ou pe\xE7a ao suporte para autorizar seu dom\xEDnio.`}case"already_claimed_by_other_org":return"Este site j\xE1 pertence a outra organiza\xE7\xE3o. Fale com o suporte para transferir o acesso.";case"unknown":return"N\xE3o foi poss\xEDvel configurar o Reports. Tente novamente ou fale com o suporte.";default:return $}}async function oR4($){let Z=await fc($);return nR4(Z?.error)?Z.error:"unknown"}async function fc($){let Z=await $.text().catch(()=>"");if(!Z)return;try{return JSON.parse(Z)}catch{return}}async function pW0($){let Z=`Reports auth failed with status ${$.status}.`,Q=await $.text().catch(()=>"");if(!Q)return Z;try{let Y=JSON.parse(Q),X=typeof Y.error==="string"?Y.error:typeof Y.message==="string"?Y.message:null;return X?`Reports auth failed: ${X}.`:Z}catch{return Z}}async function xF$($,Z={}){let Q=jW(Z),Y=nw(Z),X=Z.fetchImpl??fetch,J=Me($.siteUrl),G=`${Q}/api/v2/internal/diagnostics/${encodeURIComponent(J)}/upgrade`,W=await X(G,{method:"POST",headers:{Authorization:`Bearer ${Y}`,"Content-Type":"application/json"},body:JSON.stringify({org_id:$.orgId,...$.orgName?{name:$.orgName}:{},...$.email?{email:$.email}:{},...$.reportUrl?{report_url:$.reportUrl}:{}}),signal:AbortSignal.timeout(iW0)});if(!W.ok){let H=await oR4(W);throw new bF$(H,{email:$.email,domain:J})}let K=pR4.safeParse(await fc(W));if(!K.success)throw Error("Reports auth response did not include a token.");return{authorizationToken:K.data.token}}async function fF$($,Z={}){let Q=jW(Z),Y=nw(Z),X=Z.fetchImpl??fetch,J=Me($.siteUrl),G=`${Q}/api/v2/internal/diagnostics/${encodeURIComponent(J)}/bindings`,W=await X(G,{method:"POST",headers:{Authorization:`Bearer ${Y}`,"Content-Type":"application/json"},body:JSON.stringify({org_id:$.orgId,provider:$.provider,resource_id:$.resourceId}),signal:AbortSignal.timeout(iW0)});if(W.status===409)return{ok:!1,reason:"resource_already_bound",detail:"Este recurso j\xE1 est\xE1 vinculado a outra loja. Se ele \xE9 seu, fale com o suporte para revis\xE3o manual."};if(W.status===422){let H=_F$.safeParse(await fc(W));return{ok:!1,reason:H.success?H.data.reason??"verification_failed":"verification_failed",detail:(H.success?H.data.detail:void 0)??"N\xE3o foi poss\xEDvel verificar o acesso a este recurso."}}if(!W.ok)throw Error(await pW0(W));let K=_F$.safeParse(await fc(W));if(!K.success||!K.data.binding)throw Error("Reports bind response did not include a binding.");return{ok:!0,resourceId:K.data.binding.resource_id,evidence:K.data.binding.evidence}}async function yF$($,Z={}){let Q=jW(Z),Y=nw(Z),X=Z.fetchImpl??fetch,J=Me($.siteUrl),G=`${Q}/api/v2/internal/diagnostics/${encodeURIComponent(J)}/run`,W=await X(G,{method:"POST",headers:{Authorization:`Bearer ${Y}`,"Content-Type":"application/json"},body:JSON.stringify({org_id:$.orgId,...$.repository?{repository:cW0($.repository)}:{},...$.githubRepositoryPath?{github_repo:$.githubRepositoryPath}:{}}),signal:AbortSignal.timeout(iW0)});if(W.status===409)return{triggered:!1,reason:"not_upgraded"};if(!W.ok)throw Error(await pW0(W));return{triggered:!0}}async function gF$($,Z,Q){try{return await E8(async()=>{let Y=await $(Z,{...Q,signal:AbortSignal.timeout(iW0)});if(Y.status>=500||Y.status===429)throw new R11(await pW0(Y));return Y},{maxAttempts:3,minTimeout:200,maxTimeout:2000,multiplier:2,jitter:1,isRetriable:(Y)=>Y instanceof R11})}catch(Y){if(Y instanceof P5&&Y.cause instanceof Error)throw Y.cause;throw Y}}async function hF$($,Z={}){let Q=jW(Z),Y=nw(Z),X=Z.fetchImpl??fetch,J=Me($.siteUrl),G=`${Q}/api/v2/internal/diagnostics/${encodeURIComponent(J)}/connections/status?org_id=${encodeURIComponent($.orgId)}`,W=await gF$(X,G,{method:"GET",headers:{Authorization:`Bearer ${Y}`}});if(W.status===404||W.status===409)return{providers:{},claimed:!1};if(!W.ok)throw Error(await pW0(W));let K=rR4.safeParse(await fc(W));return{providers:K.success?K.data.providers:{},claimed:!0}}async function uF$($,Z={}){let Q=jW(Z),Y=nw(Z),X=Z.fetchImpl??fetch,J=Me($.siteUrl),G=`${Q}/api/v2/internal/diagnostics/${encodeURIComponent(J)}/unlink`,W=await gF$(X,G,{method:"POST",headers:{Authorization:`Bearer ${Y}`,"Content-Type":"application/json"},body:JSON.stringify({org_id:$.orgId})});if(!W.ok)throw Error(`Reports unlink failed with status ${W.status}.`);let K=sR4.safeParse(await fc(W));if(!K.success)throw Error("Reports unlink response did not say whether it unlinked.");return K.data}var iR4,iW0=15000,pR4,_F$,bF$,R11,rR4,sR4;var pB=D(()=>{p8();a$();dW0();X$();iR4=new URL(Ln1).origin,pR4=ZQ.object({token:ZQ.string().min(1)}),_F$=ZQ.object({binding:ZQ.object({resource_id:ZQ.string(),evidence:ZQ.string()}).optional(),reason:ZQ.string().optional(),detail:ZQ.string().optional()});bF$=class bF$ extends Error{code;constructor($,Z={}){super(tR4($,Z));this.name="ReportsClaimError",this.code=$}};R11=class R11 extends Error{};rR4=ZQ.object({providers:ZQ.record(ZQ.string(),ZQ.object({connected:ZQ.boolean(),via:ZQ.enum(["oauth","sa"]).nullable(),resource:ZQ.string().nullable()}))});sR4=ZQ.object({unlinked:ZQ.boolean(),reason:ZQ.string().optional()})});import{z as rG}from"zod";var aR4,eR4,q11;var lF$=D(()=>{xc();k0();pB();aR4=rG.object({siteUrl:rG.string().min(1).describe("Website URL of the store being bound."),provider:rG.enum(["ga4","gsc"]).describe("Which Google source to bind: ga4 (Analytics) or gsc (Search Console)."),resourceId:rG.string().min(1).describe("The resource id the client typed: GA4 numeric property id, or GSC site (sc-domain:example.com or https://example.com/).")}),eR4=rG.discriminatedUnion("ok",[rG.object({ok:rG.literal(!0),resourceId:rG.string(),evidence:rG.string()}),rG.object({ok:rG.literal(!1),reason:rG.string(),detail:rG.string()})]),q11=c({name:"REPORTS_BIND",description:"Bind a GA4 property or GSC site to the org's store via the shared service account (consent-free lane). The client grants deco-reader@\u2026 access to the resource and provides its id; Deco Score verifies the resource belongs to this domain before persisting. Returns ok:false with an actionable pt-BR detail when verification fails or the resource is already bound elsewhere.",annotations:{title:"Bind Deco Score Data Source",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:aR4,outputSchema:eR4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check("REPORTS_BIND","COMMERCE_DISCOVERY_BIND");let Y=iB($.siteUrl);if(!Y.ok)throw Error(Y.error);return fF$({siteUrl:Y.value,orgId:Q.id,provider:$.provider,resourceId:$.resourceId.trim()})}})});import{z as GU}from"zod";var $q4,Zq4,M11;var cF$=D(()=>{xc();k0();pB();$q4=GU.object({siteUrl:GU.string().min(1).describe("Website URL of the store to inspect.")}),Zq4=GU.object({providers:GU.record(GU.string(),GU.object({connected:GU.boolean(),via:GU.enum(["oauth","sa"]).nullable(),resource:GU.string().nullable()})),claimed:GU.boolean().describe("False when the site isn't claimed/upgraded for this org \u2014 providers is then empty because the status is unreadable, NOT because nothing is connected. The UI must warn instead of rendering existing bindings as disconnected.")}),M11=c({name:"REPORTS_CONNECTION_STATUS",description:"Read per-provider connection status (ga4/gsc/vtex) for the org's store \u2014 { connected, via: oauth|sa, resource }. The single source of truth for whether a data source is connected, unifying the OAuth (Studio vault) and shared-SA binding lanes. Read-only.",annotations:{title:"Deco Score Connection Status",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:$q4,outputSchema:Zq4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check("REPORTS_CONNECTION_STATUS","COMMERCE_DISCOVERY_CONNECTION_STATUS");let Y=iB($.siteUrl);if(!Y.ok)throw Error(Y.error);return hF$({siteUrl:Y.value,orgId:Q.id})}})});import{z as tw}from"zod";function Jq4($){let Z=Xq4.safeParse($),Q=Z.success?Z.data:void 0,Y=(Q?CF$(Q.repository):void 0)??void 0,X=Q&&typeof Q.github_repo==="string"&&Q.github_repo.length>0?Q.github_repo:void 0;return{repository:Y??void 0,githubRepositoryPath:(Y?mW0(Y):X)??void 0}}var Qq4,Yq4,Xq4,I11;var mF$=D(()=>{p8();dW0();xc();k0();pB();Qq4=tw.object({siteUrl:tw.string().min(1).describe("Website URL to run the diagnostic for.")}),Yq4=tw.object({triggered:tw.boolean(),reason:tw.string().optional()}),Xq4=tw.object({repository:tw.unknown().optional(),github_repo:tw.string().optional()}).passthrough().nullable().optional();I11=c({name:"REPORTS_RUN",description:"Trigger the Deco Score run for the current organization's store. Call once the data sources (GA4/GSC/VTEX) are connected \u2014 this run resolves credentials and produces the enriched Deco Score.",annotations:{title:"Run Deco Score",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:Qq4,outputSchema:Yq4,requiresFeature:"diagnostic_enriched",requiresAiBudget:!0,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check("REPORTS_RUN","COMMERCE_DISCOVERY_RUN");let Y=iB($.siteUrl);if(!Y.ok)throw Error(Y.error);let X=Y4.REPORTS(Q.id),J=await Z.storage.connections.findById(X,Q.id),{repository:G,githubRepositoryPath:W}=Jq4(J?.configuration_state);return yF$({siteUrl:Y.value,orgId:Q.id,repository:G,githubRepositoryPath:W})}})});import{z as D5}from"zod";var Gq4,Ie,Wq4,Kq4,Hq4,Fq4,dF$,iF$,WU,Ve;var pF$=D(()=>{Gq4=["github","gitlab","bitbucket"],Ie=D5.enum(Gq4),Wq4=["github_app","oauth","token","github_cli"],Kq4=D5.enum(Wq4),Hq4=["active","revoked"],Fq4=D5.enum(Hq4),dF$=D5.object({provider:Ie,host:D5.string().min(1).describe("Provider host, e.g. github.com"),path:D5.string().min(1).describe("Full namespace path, e.g. owner/name or group/sub/project")}),iF$=D5.object({id:D5.string(),organizationId:D5.string(),type:Ie,host:D5.string(),authKind:Kq4,externalAccountId:D5.string().describe("Provider-side account identity: installation id (GitHub App), user/group id (GitLab) or user/workspace uuid (Bitbucket)."),login:D5.string().describe("Display login of the account/namespace"),avatarUrl:D5.string().nullable(),installationId:D5.number().nullable().describe("GitHub App installation id; null for other auth kinds."),status:Fq4,createdAt:D5.string(),updatedAt:D5.string()}),WU=D5.string().regex(/^[a-z][a-z0-9-]{0,31}$/,"lowercase letters, digits and dashes only"),Ve=D5.object({id:D5.string(),organizationId:D5.string(),accountId:D5.string().nullable().describe("Credential-holding account; null for anonymous public clones."),provider:Ie,host:D5.string(),path:D5.string(),externalId:D5.string().nullable().describe("Provider repository/project id, when known."),defaultBranch:D5.string().nullable(),webUrl:D5.string(),visibility:D5.enum(["public","private","internal"]).nullable(),sandboxImage:WU.describe("Sandbox image this repository's sandboxes boot from."),createdAt:D5.string(),updatedAt:D5.string()})});function Bq4($){let Z=$.toLowerCase();if(Z==="github.com"||Z==="www.github.com")return"github";if(Z==="gitlab.com"||Z==="www.gitlab.com")return"gitlab";if(Z==="bitbucket.org"||Z==="www.bitbucket.org")return"bitbucket";if(/(^|[.-])gitlab([.-]|$)/.test(Z))return"gitlab";return null}function nF$($){let Z=$.toLowerCase();return Z.startsWith("www.")?Z.slice(4):Z}function IY($,Z){let Q=$.trim();if(!Q)return null;let Y,X,J=/^(?:[\w.-]+@)?([\w.-]+(?::\d+)?):(?!\/\/)(.+)$/.exec(Q);if(J&&!/^[a-z][a-z0-9+.-]*:\/\//i.test(Q))Y=J[1],X=J[2];else if(/^[a-z][a-z0-9+.-]*:\/\//i.test(Q)){let F;try{F=new URL(Q)}catch{return null}if(!/^(https?|ssh|git)(\+ssh)?:$/.test(F.protocol))return null;Y=F.host,X=F.pathname}else if(Z?.provider)Y=Z.host??nW0[Z.provider],X=Q;else return null;Y=nF$(Y);let G=Z?.provider??Bq4(Y);if(!G)return null;let W=X.split("/").map((F)=>F.trim()).filter(Boolean),K=W.indexOf("-");if(K>=0)W=W.slice(0,K);if(Nq4.has(G))W=W.slice(0,2);if(W.length<2)return null;let H=W[W.length-1];if(W[W.length-1]=H.replace(/\.git$/i,""),W.some((F)=>F.length===0||F==="."||F===".."))return null;return{provider:G,host:Y,path:W.join("/")}}function GH($){return`${$.host.toLowerCase()}/${$.path.toLowerCase()}`}function V11($){let Z=$.path.split("/");return Z[Z.length-1]??$.path}function Dq4($){let Z=$.path.lastIndexOf("/");return Z<0?"":$.path.slice(0,Z)}function k5($){return{owner:Dq4($),name:V11($)}}function kJ($){return`https://${$.host}/${$.path}`}function ke($,Z){let Q=`${$.host}/${$.path}.git`;if(!Z)return`https://${Q}`;return`https://${Uq4[$.provider]}:${encodeURIComponent(Z)}@${Q}`}function nB($,Z){let Q=nF$(Z);switch($){case"github":return Q==="github.com"?"https://api.github.com":`https://${Q}/api/v3`;case"gitlab":return`https://${Q}/api/v4`;case"bitbucket":return"https://api.bitbucket.org/2.0"}}function yc($,Z){return{provider:"github",host:nW0.github,path:`${$}/${Z}`}}var nW0,Uq4,Nq4;var k11=D(()=>{nW0={github:"github.com",gitlab:"gitlab.com",bitbucket:"bitbucket.org"},Uq4={github:"x-access-token",gitlab:"oauth2",bitbucket:"x-token-auth"},Nq4=new Set(["github","bitbucket"])});function EW($,Z){return`${kJ($)}/${Oq4[$.provider]}/${Z}`}function wq4($){let Z=$.toLowerCase();return Lq4[Z]??Z}function rF$($,Z,Q){let Y=Number($[3]);if(!Number.isSafeInteger(Y)||Y<=0)return null;let X=wq4($[1]),J=$[2],G=Z?decodeURIComponent(J):J;if(/^\d+$/.test(G))return null;let W=`https://${X}/${G}`,K=IY(W)??(Q?IY(W,{provider:Q}):null);if(!K)return null;return{repo:K,number:Y,url:EW(K,Y)}}function tW0($){let Z=$.trim();if(!Z)return null;for(let{re:Q,api:Y,provider:X}of oF$){let J=Q.exec(Z),G=J?rF$(J,Y===!0,X):null;if(G)return G}return null}function S11($){let Z=$.length>tF$?$.slice(0,tF$):$;for(let{re:Q,api:Y,provider:X}of oF$){let J=Q.exec(Z),G=J?rF$(J,Y===!0,X):null;if(G)return G}return null}var Oq4,oF$,Lq4,tF$=200000;var C11=D(()=>{k11();Oq4={github:"pull",gitlab:"-/merge_requests",bitbucket:"pull-requests"};oF$=[{re:/https?:\/\/([^/\s"']+)\/([^\s"']+?)\/-\/merge_requests\/(\d+)/,provider:"gitlab"},{re:/https?:\/\/([^/\s"']+)\/([^/\s"']+\/[^/\s"']+)\/pull\/(\d+)/},{re:/https?:\/\/([^/\s"']+)\/([^/\s"']+\/[^/\s"']+)\/pull-requests\/(\d+)/},{re:/https?:\/\/([^/\s"']+)\/repos\/([^/\s"']+\/[^/\s"']+)\/pulls\/(\d+)/,api:!0},{re:/https?:\/\/([^/\s"']+)\/api\/v4\/projects\/([^/\s"']+)\/merge_requests\/(\d+)/,api:!0,provider:"gitlab"},{re:/https?:\/\/([^/\s"']+)\/2\.0\/repositories\/([^/\s"']+\/[^/\s"']+)\/pullrequests\/(\d+)/,api:!0}],Lq4={"api.github.com":"github.com","api.bitbucket.org":"bitbucket.org"}});function sF$($){return _11[$]}function v11($,Z){return _11[$].checkoutCommand.replace("{number}",String(Z))}function aF$($,Z){let{abbreviation:Q,numberSigil:Y}=_11[$];return`${Q} ${Y}${Z}`}var _11;var eF$=D(()=>{_11={github:{name:"GitHub",cli:"gh",changeRequest:"pull request",abbreviation:"PR",createCommand:"gh pr create",checkoutCommand:"gh pr checkout {number}",numberSigil:"#"},gitlab:{name:"GitLab",cli:"glab",changeRequest:"merge request",abbreviation:"MR",createCommand:"glab mr create",checkoutCommand:"glab mr checkout {number}",numberSigil:"!"},bitbucket:{name:"Bitbucket",cli:null,changeRequest:"pull request",abbreviation:"PR",createCommand:`curl -fsS -X POST -H "Authorization: Bearer $BITBUCKET_TOKEN" -H "Content-Type: application/json" https://api.bitbucket.org/2.0/repositories/<workspace>/<repo>/pullrequests -d '{"title":"<title>","source":{"branch":{"name":"<branch>"}},"destination":{"branch":{"name":"<base>"}}}'`,checkoutCommand:"git fetch origin <source branch> && git checkout <source branch>",numberSigil:"#"}}});var i4=D(()=>{pF$();k11();C11();eF$()});async function Se($,Z,Q){let Y=new AbortController,X,J=new Promise((W,K)=>{X=setTimeout(()=>{Y.abort(),K(new $U$($.id,Q))},Q)}),G=(async()=>{let W=await sG($,Z,!0);try{return(await W.listTools(void 0,{timeout:Q,signal:Y.signal})).tools}finally{await W.close().catch(()=>{})}})();G.catch(()=>{});try{return await Promise.race([G,J])}finally{if(X)clearTimeout(X)}}var $U$;var ZU$=D(()=>{Ce();$U$=class $U$ extends Error{constructor($,Z){super(`listTools timed out after ${Z}ms for connection ${$}`);this.name="ListToolsTimeoutError"}}});var b11=b((QU$)=>{Object.defineProperty(QU$,"__esModule",{value:!0});QU$.kvPrefix=QU$.KvWatchInclude=void 0;QU$.KvWatchInclude={LastValue:"",AllHistory:"history",UpdatesOnly:"updates"};QU$.kvPrefix="KV_"});var DU$=b((NU$)=>{Object.defineProperty(NU$,"__esModule",{value:!0});NU$.KvStatusImpl=NU$.Bucket=NU$.Kvm=NU$.kvOperationHdr=void 0;NU$.Base64KeyCodec=Eq4;NU$.NoopKvCodecs=x11;NU$.defaultBucketOpts=JU$;NU$.validateKey=GU$;NU$.validateSearchKey=WU$;NU$.hasWildcards=KU$;NU$.validateBucket=oW0;var m9=OG(),X9=o50(),c9=b11();function Eq4(){let $=(Z,Q)=>{let Y=[];for(let X of Z.split("."))switch(X){case">":case"*":Y.push(X);break;default:Y.push(Q(X));break}return Y.join(".")};return{encode(Z){return $(Z,btoa)},decode(Z){return $(Z,atob)}}}function x11(){return{key:{encode($){return $},decode($){return $}},value:{encode($){return typeof $==="string"?new TextEncoder().encode($):$},decode($){return $}}}}function JU$(){return{replicas:1,history:1,timeout:2000,max_bytes:-1,maxValueSize:-1,codec:x11(),storage:X9.StorageType.File}}NU$.kvOperationHdr="KV-Operation";var XU$="$KV",zq4=/^[-/=.\w]+$/,Pq4=/^[-/=.>*\w]+$/,Aq4=/^[-\w]+$/;function GU$($){if($.startsWith(".")||$.endsWith(".")||!zq4.test($))throw Error(`invalid key: ${$}`)}function WU$($){if($.startsWith(".")||$.endsWith(".")||$.includes("..")||!Pq4.test($))throw Error(`invalid key: ${$}`)}function KU$($){if($.startsWith(".")||$.endsWith("."))throw Error(`invalid key: ${$}`);let Z=$.split("."),Q=!1;for(let Y=0;Y<Z.length;Y++)switch(Z[Y]){case"*":Q=!0;break;case">":if(Y!==Z.length-1)throw Error(`invalid key: ${$}`);Q=!0;break;default:}return Q}function oW0($){if(!Aq4.test($))throw Error(`invalid bucket name: ${$}`)}class HU${js;constructor($){this.js=(0,X9.toJetStreamClient)($)}create($,Z={}){return this.#$($,Z)}open($,Z={}){return Z.bindOnly=!0,this.#$($,Z)}#$($,Z={}){let{ok:Q,min:Y}=this.js.nc.features.get(m9.Feature.JS_KV);if(!Q)return Promise.reject(Error(`kv is only supported on servers ${Y} or better`));if(Z.bindOnly)return gc.bind(this.js,$,Z);return gc.create(this.js,$,Z)}list(){let $=(Q)=>{let X=Q.streams.filter((G)=>{return G.config.name.startsWith(c9.kvPrefix)});X.forEach((G)=>{G.config.sealed=G.config.sealed||!1,G.config.deny_delete=G.config.deny_delete||!1,G.config.deny_purge=G.config.deny_purge||!1,G.config.allow_rollup_hdrs=G.config.allow_rollup_hdrs||!1});let J="";if(X.length)J=this.js.nc.info?.cluster??"";return X.map((G)=>{return new rW0(G,J)})},Z=`${this.js.prefix}.STREAM.LIST`;return new X9.ListerImpl(Z,$,this.js)}}NU$.Kvm=HU$;class gc{js;jsm;stream;bucket;direct;codec;prefix;editPrefix;useJsPrefix;_prefixLen;constructor($,Z,Q){oW0($),this.js=Z,this.jsm=Q,this.bucket=$,this.prefix=XU$,this.editPrefix="",this.useJsPrefix=!1,this._prefixLen=0}static async create($,Z,Q={}){oW0(Z);let Y=await $.jetstreamManager(),X=new gc(Z,$,Y);return await X.init(Q),X}static async bind($,Z,Q={}){let Y=$.getOptions()?.checkAPI||Q.bindOnly===!1,X=await $.jetstreamManager(Y),J={config:{allow_direct:Q.allow_direct}};oW0(Z);let G=new gc(Z,$,X);return J.config.name=Q.streamName??G.bucketName(),Object.assign(G,J),G.stream=J.config.name,G.codec=Q.codec||x11(),G.direct=J.config.allow_direct??!1,G.initializePrefixes(J),G}async init($={}){let Z=Object.assign(JU$(),$);this.codec=Z.codec;let Q={};if(this.stream=Q.name=$.streamName??this.bucketName(),Q.retention=X9.RetentionPolicy.Limits,Q.max_msgs_per_subject=Z.history,Z.max_bytes)Q.max_bytes=Z.max_bytes;if(Q.max_msg_size=Z.maxValueSize,Q.storage=Z.storage,$.placement)Q.placement=$.placement;if($.republish)Q.republish=$.republish;if($.description)Q.description=$.description;if($.markerTTL)Q.allow_msg_ttl=!0,Q.subject_delete_marker_ttl=(0,m9.nanos)(Z.markerTTL);if($.mirror){let H=Object.assign({},$.mirror);if(!H.name.startsWith(c9.kvPrefix))H.name=`${c9.kvPrefix}${H.name}`;Q.mirror=H,Q.mirror_direct=!0}else if($.sources){let H=$.sources.map((F)=>{let U=Object.assign({},F),N=U.name.startsWith(c9.kvPrefix)?U.name.substring(c9.kvPrefix.length):U.name;if(!U.name.startsWith(c9.kvPrefix))U.name=`${c9.kvPrefix}${U.name}`;if(!F.external&&N!==this.bucket)U.subject_transforms=[{src:`$KV.${N}.>`,dest:`$KV.${this.bucket}.>`}];return U});Q.sources=H,Q.subjects=[this.subjectForBucket()]}else Q.subjects=[this.subjectForBucket()];if($.metadata)Q.metadata=$.metadata;if(typeof $.compression==="boolean")Q.compression=$.compression?X9.StoreCompression.S2:X9.StoreCompression.None;let Y=this.js.nc,X=Y.getServerVersion(),J=X?(0,m9.compare)(X,(0,m9.parseSemVer)("2.7.2"))>=0:!1;Q.discard=J?X9.DiscardPolicy.New:X9.DiscardPolicy.Old;let{ok:G,min:W}=Y.features.get(m9.Feature.JS_ALLOW_DIRECT);if(!G&&$.allow_direct===!0){let H=X?`${X.major}.${X.minor}.${X.micro}`:"unknown";return Promise.reject(Error(`allow_direct is not available on server version ${H} - requires ${W}`))}if($.allow_direct=typeof $.allow_direct==="boolean"?$.allow_direct:G,Q.allow_direct=$.allow_direct,this.direct=Q.allow_direct,Q.num_replicas=Z.replicas,Z.ttl)Q.max_age=(0,m9.nanos)(Z.ttl);Q.allow_rollup_hdrs=!0;let K;try{if(K=await this.jsm.streams.info(Q.name),!K.config.allow_direct&&this.direct===!0)this.direct=!1}catch(H){if(H.message==="stream not found")K=await this.jsm.streams.add(Q);else throw H}this.initializePrefixes(K)}initializePrefixes($){this._prefixLen=0,this.prefix=`$KV.${this.bucket}`,this.useJsPrefix=this.js.apiPrefix!=="$JS.API";let{mirror:Z}=$.config;if(Z){let Q=Z.name;if(Q.startsWith(c9.kvPrefix))Q=Q.substring(c9.kvPrefix.length);if(Z.external&&Z.external.api!==""){let Y=Z.name.substring(c9.kvPrefix.length);this.useJsPrefix=!1,this.prefix=`$KV.${Y}`,this.editPrefix=`${Z.external.api}.$KV.${Q}`}else this.editPrefix=this.prefix}}bucketName(){return this.stream??`${c9.kvPrefix}${this.bucket}`}subjectForBucket(){return`${this.prefix}.${this.bucket}.>`}subjectForKey($,Z=!1){let Q=[];if(Z){if(this.useJsPrefix)Q.push(this.js.apiPrefix);if(this.editPrefix!=="")Q.push(this.editPrefix);else Q.push(this.prefix)}else if(this.prefix)Q.push(this.prefix);return Q.push($),Q.join(".")}fullKeyName($){if(this.prefix!=="")return`${this.prefix}.${$}`;return`${XU$}.${this.bucket}.${$}`}get prefixLen(){if(this._prefixLen===0)this._prefixLen=this.prefix.length+1;return this._prefixLen}encodeKey($){let Z=[];for(let Q of $.split("."))switch(Q){case">":case"*":Z.push(Q);break;default:Z.push(this.codec.key.encode(Q));break}return Z.join(".")}decodeKey($){let Z=[];for(let Q of $.split("."))switch(Q){case">":case"*":Z.push(Q);break;default:Z.push(this.codec.key.decode(Q));break}return Z.join(".")}validateKey=GU$;validateSearchKey=WU$;hasWildcards=KU$;close(){return Promise.resolve()}dataLen($,Z){let Q=Z?Z.get(X9.JsHeaders.MessageSizeHdr)||"":"";if(Q!=="")return parseInt(Q,10);return $.length}smToEntry($){return new FU$(this.bucket,this.prefixLen,$,this.codec)}jmToWatchEntry($,Z){return new UU$(this.bucket,this.prefixLen,$,Z,this.codec)}async create($,Z,Q){let Y;try{let J={previousSeq:0},G=await this._put($,Z,J,Q);return Promise.resolve(G)}catch(J){if(Y=J,J instanceof X9.JetStreamApiError){let G=J;if(G.code!==X9.JetStreamApiCodes.StreamWrongLastSequence&&G.code!==X9.JetStreamApiCodes.StreamWrongLastSequenceUnknown)return Promise.reject(J)}}let X=0;try{let J=await this.get($);if(J?.operation==="DEL"||J?.operation==="PURGE")return X=J!==null?J.revision:0,this._put($,Z,{previousSeq:X},Q);else return Promise.reject(Y)}catch(J){return Promise.reject(J)}}update($,Z,Q,Y){if(Q<=0)throw Error("version must be greater than 0");return this.put($,Z,{previousSeq:Q,timeout:Y})}async _put($,Z,Q={},Y){let X=this.encodeKey($);this.validateKey(X),Z=this.codec.value.encode(Z);let J={timeout:Q?.timeout};if(Q.previousSeq!==void 0){let G=(0,m9.headers)();J.headers=G,G.set(X9.PubHeaders.ExpectedLastSubjectSequenceHdr,`${Q.previousSeq}`)}if(Y)(J.headers||(0,m9.headers)()).set(X9.PubHeaders.MessageTTL,Y);try{return(await this.js.publish(this.subjectForKey(X,!0),Z,J)).seq}catch(G){return Promise.reject(G)}}put($,Z,Q={}){return this._put($,Z,Q)}async get($,Z){let Q=this.encodeKey($);this.validateKey(Q);let Y={last_by_subj:this.subjectForKey(Q)};if(Z&&Z.revision>0)Y={seq:Z.revision};let X=null;try{if(this.direct)X=await this.jsm.direct.getMessage(this.bucketName(),Y);else X=await this.jsm.streams.getMessage(this.bucketName(),Y);if(X===null)return null;let J=this.smToEntry(X);if(J.rawKey!==Q)return null;return J}catch(J){throw J}}purge($,Z){return this._deleteOrPurge($,"PURGE",Z)}delete($,Z){return this._deleteOrPurge($,"DEL",Z)}async purgeDeletes($=1800000){let Z=[],Q=await this.history({key:">"});await(async()=>{for await(let G of Q)if(G.operation==="DEL"||G.operation==="PURGE")Z.push(G)})().then(),Q.stop();let Y=Date.now()-$,X=Z.map((G)=>{let W=this.subjectForKey(G.key);if(G.created.getTime()>=Y)return this.jsm.streams.purge(this.stream,{filter:W,keep:1});else return this.jsm.streams.purge(this.stream,{filter:W,keep:0})}),J=await Promise.all(X);return J.unshift({success:!0,purged:0}),J.reduce((G,W)=>{return G.purged+=W.purged,G})}async _deleteOrPurge($,Z,Q){if(!this.hasWildcards($))return this._doDeleteOrPurge($,Z,Q);let Y=await this.keys($),X=[];for await(let J of Y)if(X.push(this._doDeleteOrPurge(J,Z)),X.length===100)await Promise.all(X),X.length=0;if(X.length>0)await Promise.all(X)}async _doDeleteOrPurge($,Z,Q){let Y=this.encodeKey($);this.validateKey(Y);let X=(0,m9.headers)();if(X.set(NU$.kvOperationHdr,Z),Z==="PURGE"){let J=Q;if(X.set(X9.JsHeaders.RollupHdr,X9.JsHeaders.RollupValueSubject),typeof J?.ttl==="string"&&J.ttl!=="")X.set(X9.PubHeaders.MessageTTL,`${J.ttl}`)}if(Q?.previousSeq)X.set(X9.PubHeaders.ExpectedLastSubjectSequenceHdr,`${Q.previousSeq}`);await this.js.publish(this.subjectForKey(Y,!0),m9.Empty,{headers:X})}_buildCC($,Z,Q={}){let X=(!Array.isArray($)?[$]:$).map((W)=>{let K=this.encodeKey(W);return this.validateSearchKey(W),this.fullKeyName(K)}),J=X9.DeliverPolicy.LastPerSubject;if(Z===c9.KvWatchInclude.AllHistory)J=X9.DeliverPolicy.All;if(Z===c9.KvWatchInclude.UpdatesOnly)J=X9.DeliverPolicy.New;let G=void 0;if(X.length===1)G=X[0],X=void 0;return Object.assign({deliver_policy:J,ack_policy:X9.AckPolicy.None,filter_subjects:X,filter_subject:G,flow_control:!0,idle_heartbeat:(0,m9.nanos)(5000)},Q)}remove($){return this.purge($)}async history($={}){let Z=$.key??">",Q={};Q.headers_only=$.headers_only||!1;let Y=new m9.QueuedIteratorImpl,X=()=>{Y.stop()},J=this._buildCC(Z,c9.KvWatchInclude.AllHistory,Q),G=await this.js.consumers.getPushConsumer(this.stream,J);if(Y._data=G,(await G.info(!0)).num_pending===0)return Y.push(X),Y;let K=await G.consume({callback:(H)=>{let F=this.jmToWatchEntry(H,!1);if(Y.push(F),Y.received++,H.info.pending===0)Y.push(X)}});return K.closed().then(()=>{Y.push(X)}),(async()=>{for await(let H of K.status())switch(H.type){case"heartbeat":Y.push(()=>{Y.stop()});break}})().then(),Y.iterClosed.then(()=>{K.stop()}),Y}canSetWatcherName(){let $=this.js.nc,{ok:Z}=$.features.get(m9.Feature.JS_NEW_CONSUMER_CREATE_API);return Z}async watch($={}){let Z=$.key??">",Q=new m9.QueuedIteratorImpl,Y={};Y.headers_only=$.headers_only||!1;let X=c9.KvWatchInclude.LastValue;if($.include===c9.KvWatchInclude.AllHistory)X=c9.KvWatchInclude.AllHistory;else if($.include===c9.KvWatchInclude.UpdatesOnly)X=c9.KvWatchInclude.UpdatesOnly;let J=$.ignoreDeletes===!0,G=this._buildCC(Z,X,Y);if(G.name=`KV_WATCHER_${m9.nuid.next()}`,$.resumeFromRevision&&$.resumeFromRevision>0)G.deliver_policy=X9.DeliverPolicy.StartSequence,G.opt_start_seq=$.resumeFromRevision;let W=await this.js.consumers.getPushConsumer(this.stream,G),H=(await W.info(!0)).num_pending,F=X===c9.KvWatchInclude.UpdatesOnly||H===0;Q._data=W;let U=0,N=await W.consume({callback:(B)=>{if(!F)U++,F=U>=H;let O=this.jmToWatchEntry(B,F);if(J&&O.operation==="DEL")return;Q.push(O),Q.received++}});return Q.iterClosed.then(()=>{N.stop()}),N.closed().then(()=>{Q.push(()=>{Q.stop()})}),Q}async keys($=">"){let Z=new m9.QueuedIteratorImpl,Q=this._buildCC($,c9.KvWatchInclude.LastValue,{headers_only:!0}),Y=await this.js.consumers.getPushConsumer(this.stream,Q);if((await Y.info()).num_pending===0)return Z.stop(),Z;Z._data=Y;let J=await Y.consume({callback:(G)=>{let W=G.headers?.get(NU$.kvOperationHdr);if(W!=="DEL"&&W!=="PURGE"){let K=this.decodeKey(G.subject.substring(this.prefixLen));Z.push(K)}if(G.info.pending===0)J.stop()}});return(async()=>{for await(let G of J.status())switch(G.type){case"heartbeat":Z.push(()=>{Z.stop()});break}})().then(),J.closed().then(()=>{Z.push(()=>{Z.stop()})}),Z.iterClosed.then(()=>{J.stop()}),Z}purgeBucket($){return this.jsm.streams.purge(this.bucketName(),$)}destroy(){return this.jsm.streams.delete(this.bucketName())}async status(){let Z=this.js.nc.info?.cluster??"",Q=this.bucketName(),Y=await this.jsm.streams.info(Q);return new rW0(Y,Z)}}NU$.Bucket=gc;class rW0{si;cluster;constructor($,Z=""){this.si=$,this.cluster=Z}get bucket(){return this.si.config.name.startsWith(c9.kvPrefix)?this.si.config.name.substring(c9.kvPrefix.length):this.si.config.name}get values(){return this.si.state.messages}get history(){return this.si.config.max_msgs_per_subject}get ttl(){return(0,m9.millis)(this.si.config.max_age)}get markerTTL(){if(typeof this.si.config.subject_delete_marker_ttl==="number")return(0,m9.millis)(this.si.config.subject_delete_marker_ttl);return 0}get bucket_location(){return this.cluster}get backingStore(){return this.si.config.storage}get storage(){return this.si.config.storage}get replicas(){return this.si.config.num_replicas}get description(){return this.si.config.description??""}get maxBucketSize(){return this.si.config.max_bytes}get maxValueSize(){return this.si.config.max_msg_size}get max_bytes(){return this.si.config.max_bytes}get placement(){return this.si.config.placement||{cluster:"",tags:[]}}get placementCluster(){return this.si.config.placement?.cluster??""}get republish(){return this.si.config.republish??{src:"",dest:""}}get streamInfo(){return this.si}get size(){return this.si.state.bytes}get metadata(){return this.si.config.metadata??{}}get compression(){if(this.si.config.compression)return this.si.config.compression!==X9.StoreCompression.None;return!1}}NU$.KvStatusImpl=rW0;class FU${bucket;sm;prefixLen;codec;constructor($,Z,Q,Y){this.bucket=$,this.prefixLen=Z,this.sm=Q,this.codec=Y}get rawKey(){return this.sm.subject.substring(this.prefixLen)}get key(){return this.codec.key.decode(this.rawKey)}get value(){return this.codec.value.decode(this.sm.data)}get delta(){return 0}get created(){return this.sm.time}get revision(){return this.sm.seq}get operation(){if(this.sm.header?.has("Nats-Marker-Reason")){if(this.sm.header?.get("Nats-Marker-Reason")==="MaxAge")return"PURGE"}return this.sm.header?.get(NU$.kvOperationHdr)||"PUT"}get length(){let $=this.sm.header.get(X9.JsHeaders.MessageSizeHdr)||"";if($!=="")return parseInt($,10);return this.sm.data.length}json($){return JSON.parse(m9.TD.decode(this.value),$)}string(){return m9.TD.decode(this.value)}}class UU${bucket;sm;prefixLen;update;codec;constructor($,Z,Q,Y,X){this.bucket=$,this.prefixLen=Z,this.sm=Q,this.update=Y,this.codec=X}get rawKey(){return this.sm.subject.substring(this.prefixLen)}get key(){return this.codec.key.decode(this.rawKey)}get value(){return this.codec.value.decode(this.sm.data)}get created(){return new Date((0,m9.millis)(this.sm.info.timestampNanos))}get revision(){return this.sm.seq}get operation(){if(this.sm.headers?.has("Nats-Marker-Reason")){if(this.sm.headers?.get("Nats-Marker-Reason")==="MaxAge")return"PURGE"}return this.sm.headers?.get(NU$.kvOperationHdr)||"PUT"}get delta(){return this.sm.info.pending}get length(){let $=this.sm.headers?.get(X9.JsHeaders.MessageSizeHdr)||"";if($!=="")return parseInt($,10);return this.sm.data.length}get isUpdate(){return this.update}json($){return JSON.parse(m9.TD.decode(this.value),$)}string(){return m9.TD.decode(this.value)}}});var f11=b((WH)=>{Object.defineProperty(WH,"__esModule",{value:!0});WH.validateKey=WH.validateBucket=WH.NoopKvCodecs=WH.Kvm=WH.defaultBucketOpts=WH.Bucket=WH.Base64KeyCodec=WH.KvWatchInclude=WH.kvPrefix=void 0;var OU$=b11();Object.defineProperty(WH,"kvPrefix",{enumerable:!0,get:function(){return OU$.kvPrefix}});Object.defineProperty(WH,"KvWatchInclude",{enumerable:!0,get:function(){return OU$.KvWatchInclude}});var e2=DU$();Object.defineProperty(WH,"Base64KeyCodec",{enumerable:!0,get:function(){return e2.Base64KeyCodec}});Object.defineProperty(WH,"Bucket",{enumerable:!0,get:function(){return e2.Bucket}});Object.defineProperty(WH,"defaultBucketOpts",{enumerable:!0,get:function(){return e2.defaultBucketOpts}});Object.defineProperty(WH,"Kvm",{enumerable:!0,get:function(){return e2.Kvm}});Object.defineProperty(WH,"NoopKvCodecs",{enumerable:!0,get:function(){return e2.NoopKvCodecs}});Object.defineProperty(WH,"validateBucket",{enumerable:!0,get:function(){return e2.validateBucket}});Object.defineProperty(WH,"validateKey",{enumerable:!0,get:function(){return e2.validateKey}})});var $A=b((ow)=>{Object.defineProperty(ow,"__esModule",{value:!0});ow.NoopKvCodecs=ow.Kvm=ow.defaultBucketOpts=ow.Bucket=ow.Base64KeyCodec=ow.KvWatchInclude=void 0;var vq4=f11();Object.defineProperty(ow,"KvWatchInclude",{enumerable:!0,get:function(){return vq4.KvWatchInclude}});var ve=f11();Object.defineProperty(ow,"Base64KeyCodec",{enumerable:!0,get:function(){return ve.Base64KeyCodec}});Object.defineProperty(ow,"Bucket",{enumerable:!0,get:function(){return ve.Bucket}});Object.defineProperty(ow,"defaultBucketOpts",{enumerable:!0,get:function(){return ve.defaultBucketOpts}});Object.defineProperty(ow,"Kvm",{enumerable:!0,get:function(){return ve.Kvm}});Object.defineProperty(ow,"NoopKvCodecs",{enumerable:!0,get:function(){return ve.NoopKvCodecs}})});function rw(){let $=new TextEncoder,Z=new TextDecoder;return{encode:(Q)=>$.encode(JSON.stringify(Q)),decode:(Q)=>JSON.parse(Z.decode(Q))}}class y11{options;kv=null;codec=rw();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await new wU$.Kvm($).create(xq4,{storage:LU$.StorageType.Memory})}async get($,Z){if(!this.kv)return null;try{let Q=await this.kv.get(`${$}.${Z}`);if(!Q?.value?.length)return null;if(Q.operation==="DEL"||Q.operation==="PURGE")return null;return this.codec.decode(Q.value)}catch{return null}}async set($,Z,Q){if(!this.kv)return;try{await this.kv.put(`${$}.${Z}`,this.codec.encode(Q))}catch{}}async invalidate($){if(!this.kv)return;await Promise.all(["tools","resources","prompts"].map(async(Q)=>{try{await this.kv.delete(`${Q}.${$}`)}catch{}}))}teardown(){this.kv=null}}function fq4($,Z,Q){if(Q<=0)return!0;if($===void 0)return!0;return Z-$>=Q}function jU$($){let Z=["tools","resources","prompts"];for(let Q of Z){let Y=`${Q}:${$}`;aW0.delete(Y),xe.delete(Y)}}function sW0($){return $ instanceof k1&&$.code===x1.MethodNotFound}function yq4($){return $ instanceof k1&&$.code===-32000&&/connection closed/i.test($.message)}async function aw($,Z,Q,Y,X,J=0){if(!Y)try{return await Q()}catch(H){if(sW0(H))return[];return be.add(1,{type:$,outcome:"error",stage:"no_cache"}),null}let G=`${$}:${Z}`,W=await Y.get($,Z);if(W===null)try{let H=await Q();return Y.set($,Z,H).catch(()=>{}),aW0.set(G,Date.now()),be.add(1,{type:$,outcome:"miss",stage:"miss"}),H}catch(H){if(sW0(H))return Y.set($,Z,[]).catch(()=>{}),[];return be.add(1,{type:$,outcome:"error",stage:"miss"}),null}if(be.add(1,{type:$,outcome:"hit",stage:"hit"}),fq4(aW0.get(G),Date.now(),J)&&!xe.has(G)){xe.add(G),aW0.set(G,Date.now());let H=Q().then((F)=>Y.set($,Z,F)).catch((F)=>{if(sW0(F)||yq4(F)){if(sW0(F))Y.set($,Z,[]).catch(()=>{});return}be.add(1,{type:$,outcome:"error",stage:"revalidation"})}).finally(()=>xe.delete(G));X?.(H)}return W}function g11($){EU$=$}function LZ(){return EU$}var LU$,wU$,be,xq4="DECOCMS_MCP_LISTS",xe,aW0,sw=30000,EU$=null;var SJ=D(()=>{KZ();k6();LU$=C(BK(),1),wU$=C($A(),1),be=e1.createCounter("mcp_list_cache.fetches",{description:"MCP list cache fetch outcomes (hit, miss, error)",unit:"{fetches}"});xe=new Set;e1.createObservableGauge("mcp_list_cache.pending_revalidations",{description:"In-flight background MCP list revalidations on this pod",unit:"{revalidations}"}).addCallback(($)=>$.observe(xe.size));aW0=new Map});function eW0($){return(Z)=>{if(Z instanceof k1&&Z.code===x1.MethodNotFound)return $;throw Z}}var zU$=D(()=>{KZ()});function $K0($,Z,Q){let Y=ew($,Z,Q,LZ()??void 0),X=X2(Y,{name:"studio-mcp-server",version:"1.0.0"},{capabilities:gq4,toolCallTimeoutMs:ch});X.server.setRequestHandler(DL,async()=>{return await Y.listResources().catch(eW0({resources:[]}))}),X.server.setRequestHandler(OL,async()=>{return await Y.listResourceTemplates().catch(eW0({resourceTemplates:[]}))}),X.server.setRequestHandler(LL,async()=>{return await Y.listPrompts().catch(eW0({prompts:[]}))});let J=X.close.bind(X);return X.close=async()=>{await J(),await Y.close().catch(()=>{})},X}var gq4;var PU$=D(()=>{NJ();KZ();fe();SJ();zU$();gq4={tools:{},resources:{},prompts:{}}});var hc=D(()=>{Ce();ZU$();PU$()});async function uc($,Z,Q){await(await sG(Z,$,!1)).callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:Q.state,scopes:Q.scopes,firstRun:Q.firstRun,...Q.vault?{vault:Q.vault}:{}}})}var ZK0=D(()=>{hc()});import{z as h11}from"zod";function lq4($){let{owner:Z,name:Q}=k5({path:$.path});return{owner:Z,name:Q,url:$.webUrl??`https://${$.host}/${$.path}`,repositoryId:$.repositoryId}}function cq4($,Z){if(!Z)return $;return $.filter((Q)=>Q.connection_id!==Z)}function mq4($,Z){let{repository:Q,github_repo:Y,...X}=$,J=Z?mW0(Z):null;return{...X,...Z?{repository:cW0(Z)}:{},...J?{github_repo:J}:{}}}async function dq4($,Z,Q){let Y=Y4.REPORTS(Z),X=await $.storage.connections.findById(Y,Z);if(!X)throw Error("Reports is not set up for this organization yet");let J=mq4(X.configuration_state??{},Q);await $.storage.connections.update(Y,{configuration_state:J});try{await uc($,{...X,configuration_state:J},{state:J,scopes:X.configuration_scopes??[],firstRun:!1})}catch(G){console.error("[reports] ON_MCP_CONFIGURATION after repository change failed",G)}}async function iq4($,Z,Q,Y){let X=uh(Z),J=await $.storage.virtualMcps.findById(X,Z);if(!J)return;let G=J.metadata??{},W=G.repository,{repository:K,...H}=G;await $.storage.virtualMcps.update(X,Q,{metadata:{...H,...Y?{repository:lq4(Y)}:{}},connections:cq4(J.connections??[],W?.connectionId??null)})}var hq4,uq4,u11;var AU$=D(()=>{p8();i4();dW0();k0();ZK0();hq4=h11.object({repositoryId:h11.string().min(1).nullable().describe("Studio repository id to diagnose, or null to unlink the current one.")}),uq4=h11.object({repository:T11.nullable()});u11=c({name:"REPORTS_SET_REPOSITORY",description:"Point the organization's Deco Score at one of its linked repositories, or unlink the current one. Works for GitHub, GitLab and Bitbucket.",annotations:{title:"Set Deco Score Repository",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:hq4,outputSchema:uq4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=p0(Z);if(!Y)throw Error("User ID required to set the diagnostic's repository");let X=null;if($.repositoryId){let J=await Z.storage.repositories.get($.repositoryId,Q.id);if(!J)throw Error(`Repository ${$.repositoryId} is not linked to this organization`);let G={repositoryId:J.id,provider:J.provider,host:J.host,path:J.path,defaultBranch:J.defaultBranch,webUrl:J.webUrl},W=T11.safeParse(G);if(!W.success)throw Error(`Repository ${$.repositoryId} has invalid configuration (missing or empty host/path)`);X=W.data}return await dq4(Z,Q.id,X),await iq4(Z,Q.id,Y,X),{repository:X}}})});function $j($,Z){let Q=`/${encodeURIComponent($)}/settings`;return Z?`${Q}/${Z}`:Q}function QK0($,Z){let Q=`/${encodeURIComponent($)}/agents`,Y=Z.panel?`${Q}/${Z.panel}`:Q,X=new URLSearchParams({virtualmcpid:Z.projectId,...Z.search??{}});return`${Y}?${X.toString()}`}var Zj=D(()=>{JY0()});function TU$($,Z){if(typeof $!=="string")return null;let Q=A11($);return Q&&Q!==A11(Z)?$:null}function lc($){uF$({siteUrl:$.siteUrl,orgId:$.orgId}).then((Z)=>console.log("[reports] released site",{...$,...Z}),(Z)=>console.warn("[reports] could not release site",{...$,error:Z instanceof Error?Z.message:String(Z)}))}var YK0=D(()=>{xc();pB()});import{z as KU}from"zod";async function oq4($,Z,Q,Y){let X=await $.storage.connections.findById(Z,Q);if(X)return X;throw Y}async function rq4($,Z,Q,Y){let X=await $.storage.virtualMcps.findById(Z,Q);if(X)return X;throw Y}var l11,pq4=3600000,nq4,tq4,c11;var RU$=D(()=>{p8();xc();k0();BF();Zj();pB();YK0();l11=KY0,nq4=KU.object({siteUrl:KU.string().min(1).describe("Website URL to configure.")}),tq4=KU.object({connection:HY,virtualMcp:KY,reportApp:KU.object({connectionId:KU.string(),virtualMcpId:KU.string(),toolName:KU.literal(l11)}),created:KU.object({connection:KU.boolean(),virtualMcp:KU.boolean()})});c11=c({name:"REPORTS_SETUP",description:"Create or return the Deco Score connection and virtual MCP for the current organization.",annotations:{title:"Set Up Deco Score",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:nq4,outputSchema:tq4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check("COLLECTION_CONNECTIONS_CREATE");let Y=p0(Z);if(!Y)throw Error("User ID required to set up Reports");let X=iB($.siteUrl);if(!X.ok)throw Error(X.error);let J=Y4.REPORTS(Q.id),G=uh(Q.id),W={email:Z.auth.user?.email,reportUrl:`${Z.baseUrl}${QK0(Q.slug??Q.id,{projectId:G,panel:"app",search:{connection:J,tool:l11}})}`},K=await Z.storage.connections.findById(J,Q.id),H={connection:!1,virtualMcp:!1},F=await xF$({siteUrl:X.value,orgId:Q.id,orgName:Q.name,...W}),U=vF$();if(K){console.log("[reports] syncing connection to claimed site",{orgId:Q.id,siteUrl:X.value,connectionId:J});let L=TU$(K.metadata?.siteUrl,X.value);if(K=await Z.storage.connections.update(K.id,{connection_url:U,connection_token:F.authorizationToken,metadata:{...K.metadata??{},siteUrl:X.value}}),L)lc({siteUrl:L,orgId:Q.id,cause:"site_changed"})}else{console.log("[reports] creating connection",{orgId:Q.id,siteUrl:X.value,connectionId:J});try{let L=In1(Q.id,F.authorizationToken,U);K=await Z.storage.connections.create({...L,metadata:{...L.metadata??{},siteUrl:X.value},organization_id:Q.id,created_by:Y}),H.connection=!0}catch(L){K=await oq4(Z,J,Q.id,L)}}let N=await Z.storage.virtualMcps.findById(G,Q.id);if(!N){console.log("[reports] creating virtual MCP",{orgId:Q.id,siteUrl:X.value,connectionId:K.id,virtualMcpId:G});try{N=await Z.storage.virtualMcps.create(Q.id,Y,Vn1(Q.id,K.id),{id:G}),H.virtualMcp=!0}catch(L){N=await rq4(Z,G,Q.id,L)}}if(!N.pinned)N=await Z.storage.virtualMcps.update(N.id,Y,{pinned:!0});let B=await Z.db.selectFrom("organization").select(["createdAt"]).where("id","=",Q.id).executeTakeFirst();if((B?Date.now()-new Date(B.createdAt).getTime():Number.POSITIVE_INFINITY)<pq4){let w=(await Z.storage.organizationSettings.get(Q.id))?.flags,j={};if(w?.reports_only==null)j.reports_only=!0;if(Object.keys(j).length>0)await Z.storage.organizationSettings.upsert(Q.id,{flags:j})}return{connection:K,virtualMcp:N,reportApp:{connectionId:K.id,virtualMcpId:N.id,toolName:l11},created:H}}})});var qU$=D(()=>{lF$();cF$();mF$();AU$();RU$()});function ye($,Z,Q){if(Z.some((Y)=>Y!=="*"&&Y.startsWith("SELF::"))&&$.SELF===void 0)$.SELF={value:`${Q}_self`}}function ge($,Z){let Q=new Map;for(let Y of Z){if(Y==="*")continue;let[X,J]=rJ0(Y);if(!aq4.has(J))continue;let G=Ls(X,$);if(typeof G!=="object"||G===null||!("value"in G))continue;let W=G.value;if(typeof W!=="string")continue;Q.set(`${W}:${J}`,{targetConnectionId:W,scope:J})}return[...Q.values()]}async function he($,Z,Q,Y){for(let G of Z){if(G==="*")continue;let[W]=rJ0(G),K=Ls(W,$);if(K===void 0||K===null)throw Error(`Scope references key "${W}" but it's not present in state`)}let X=L6$($,Z),J=`${Q}_self`;for(let G of X){if(G===J)continue;let W=await Y.storage.connections.findById(G);if(!W||W.organization_id!==Q)throw Error(`Referenced connection not found: ${G}`);try{await Y.access.check(G)}catch(K){throw Error(`Access denied to referenced connection: ${G}. ${K.message}`)}}}var aq4;var m11=D(()=>{Ur0();wY0();aq4=new Set([OY0,LY0])});import{z as MU$}from"zod";var eq4,$M4,d11;var IU$=D(()=>{G6();k0();X$();SJ();ZK0();m11();oG0();BF();eq4=MU$.object({data:ZY0.describe("Data for the new connection (id is auto-generated if not provided)")}),$M4=MU$.object({item:HY.describe("The created connection entity")}),d11=c({name:"COLLECTION_CONNECTIONS_CREATE",description:"Create a new MCP connection. Auto-fetches and caches the server's tool list.",annotations:{title:"Create Connection",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:eq4,outputSchema:$M4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=p0(Z);if(!Y)throw Error("User ID required to create connection");let X={...$.data,organization_id:Q.id,created_by:Y};if(X.id){if((await Z.storage.connections.findById(X.id))?.organization_id===Q.id)throw Error("Connection already exists in organization");if(await Z.storage.connections.findBySanitizedId(X.id))throw Error("Connection id conflicts with an existing connection's isolated database schema")}if(X.connection_type==="VIRTUAL"){let U=yh(X.connection_url);if(!U)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let N=await Z.storage.virtualMcps.findById(U);if(!N)throw Error(`Virtual MCP not found: ${U}`);if(N.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");X.connection_url=gh(U)}if(X.connection_type==="STDIO"&&!E0().localMode)throw Error("STDIO connections are only available in local mode (--local-mode).");let J=await ml({id:`pending-${Date.now()}`,title:X.title,connection_type:X.connection_type,connection_url:X.connection_url,connection_token:X.connection_token,connection_headers:X.connection_headers}).catch(()=>null),G=J?.tools?.length?J.tools:null,W=J?.scopes?.length?J.scopes:X.configuration_scopes??null,K=X.configuration_state??null;if(K&&W?.length)ye(K,W,Q.id),await he(K,W,Q.id,Z);let H=await Z.storage.connections.createNew({...X,tools:null,configuration_state:K,configuration_scopes:W}),F=K&&W?.length?ge(K,W):[];if(F.length>0){let U;try{await Z.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:Q.id,subjectConnectionId:H.id,createdBy:Y,grants:F});let{plaintextToken:N,record:B}=await Z.storage.connectionCredentialVault.createOrRotateWorkloadToken({organizationId:Q.id,subjectConnectionId:H.id});U=B.id,await uc(Z,H,{state:K,scopes:W,firstRun:!0,vault:{baseUrl:Z.baseUrl,org:Q.slug??Q.id,subjectConnectionId:H.id,token:N}})}catch(N){if(U)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:Q.id,subjectConnectionId:H.id,tokenId:U});throw await Z.storage.connections.delete(H.id),N}}if(G)LZ()?.set("tools",H.id,G).catch(()=>{});return f1.capture({distinctId:Y,event:"connection_created",groups:{organization:Q.id},properties:{connection_id:H.id,connection_type:H.connection_type,app_name:H.app_name??null,organization_id:Q.id,tools_count:G?.length??0}}),{item:H}}})});import{z as zW}from"zod/v4";import{z as VU$}from"zod/v4";import{z as XK0}from"zod/v4";import{z as HU}from"zod/v4";import{z as XM4}from"zod/v4";import{z as ZA}from"zod/v4";import{z as FU}from"zod/v4";import{z as QQ}from"zod/v4";import{z as kU$}from"zod/v4";import{z as WK0}from"zod/v4";import{z as IM4}from"zod/v4";import{z as SU$}from"zod/v4";import{z as JK0}from"zod/v4";import{z as fM4}from"zod/v4";function ue($,Z){if($===Z)return!0;if($==null||Z==null)return $===Z;if(typeof $!==typeof Z)return!1;if(Array.isArray($)&&Array.isArray(Z)){if($.length!==Z.length)return!1;return $.every((Q,Y)=>ue(Q,Z[Y]))}if(typeof $==="object"&&typeof Z==="object"){let Q=Object.keys($),Y=Object.keys(Z);if(Q.length!==Y.length)return!1;return Q.every((X)=>Y.includes(X)&&ue($[X],Z[X]))}return!1}function RM4(){return($)=>{if(!Array.isArray($))return!0;let Z=[];return $.every((Q)=>{if(Z.some((X)=>ue(Q,X)))return!1;return Z.push(Q),!0})}}function GK0($,Z){return $.safeParse(Z).success}function gQ($){if(typeof $==="boolean")return $?zW.any():zW.never();let Z={};for(let X of uM4)X.apply(Z,$);let Q=[];if(Z.string!==!1)Q.push(Z.string||zW.string());if(Z.number!==!1)Q.push(Z.number||zW.number());if(Z.boolean!==!1)Q.push(Z.boolean||zW.boolean());if(Z.null!==!1)Q.push(Z.null||zW.null());if(Z.array!==!1)Q.push(Z.array||zW.array(zW.any()));if(Z.tuple!==!1&&Z.tuple!==void 0)Q.push(Z.tuple);if(Z.object!==!1)if(Z.object)Q.push(Z.object);else{let X=zW.custom((J)=>{return typeof J==="object"&&J!==null&&!Array.isArray(J)},"Must be an object, not an array");Q.push(X)}if(Z.file!==!1&&Z.file!==void 0)Q.push(Z.file);let Y;if(Q.length===0)Y=zW.never();else if(Q.length===1)Y=Q[0];else if(!Object.keys($).some((J)=>J!=="$schema"&&J!=="title"&&J!=="description"))Y=zW.any();else Y=zW.union(Q);for(let X of lM4)Y=X.apply(Y,$);return Y}var ZM4=class{apply($,Z){if(!Z.type)return;let Q=Array.isArray(Z.type)?Z.type:[Z.type],Y=new Set(Q);if(!Y.has("string"))$.string=!1;if(!Y.has("number")&&!Y.has("integer"))$.number=!1;if(!Y.has("boolean"))$.boolean=!1;if(!Y.has("null"))$.null=!1;if(!Y.has("array"))$.array=!1;if(!Y.has("object"))$.object=!1;if(Y.has("integer")&&$.number!==!1){let X=$.number||VU$.number();if(X instanceof VU$.ZodNumber)$.number=X.int()}}},QM4=class{apply($,Z){if(Z.const===void 0)return;let Q=Z.const;if($.string=!1,$.number=!1,$.boolean=!1,$.null=!1,$.array=!1,$.object=!1,typeof Q==="string")$.string=XK0.literal(Q);else if(typeof Q==="number")$.number=XK0.literal(Q);else if(typeof Q==="boolean")$.boolean=XK0.literal(Q);else if(Q===null)$.null=XK0.null();else if(Array.isArray(Q))$.array=void 0;else if(typeof Q==="object")$.object=void 0}},YM4=class{apply($,Z){if(!Z.enum)return;if(Z.enum.length===0){if(!Z.type)$.string=!1,$.number=!1,$.boolean=!1,$.null=!1,$.array=!1,$.object=!1;return}let Q={string:Z.enum.filter((Y)=>typeof Y==="string"),number:Z.enum.filter((Y)=>typeof Y==="number"),boolean:Z.enum.filter((Y)=>typeof Y==="boolean"),null:Z.enum.filter((Y)=>Y===null),array:Z.enum.filter((Y)=>Array.isArray(Y)),object:Z.enum.filter((Y)=>typeof Y==="object"&&Y!==null&&!Array.isArray(Y))};$.string=this.createTypeSchema(Q.string,"string"),$.number=this.createTypeSchema(Q.number,"number"),$.boolean=this.createTypeSchema(Q.boolean,"boolean"),$.null=Q.null.length>0?HU.null():!1,$.array=Q.array.length>0?void 0:!1,$.object=Q.object.length>0?void 0:!1}createTypeSchema($,Z){if($.length===0)return!1;if($.length===1)return HU.literal($[0]);if(Z==="string")return HU.enum($);if(Z==="number"){let[Q,Y,...X]=$;return HU.union([HU.literal(Q),HU.literal(Y),...X.map((J)=>HU.literal(J))])}if(Z==="boolean")return HU.union([HU.literal(!0),HU.literal(!1)]);return!1}},JM4=class{apply($,Z){let Q=Z;if(Q.type==="string"&&Q.format==="binary"&&Q.contentEncoding==="binary"){let Y=XM4.file();if(Q.minLength!==void 0)Y=Y.min(Q.minLength);if(Q.maxLength!==void 0)Y=Y.max(Q.maxLength);if(Q.contentMediaType!==void 0)Y=Y.mime(Q.contentMediaType);$.file=Y,$.string=!1}}},GM4=class{apply($,Z){let Q=Z;if(Z.type===void 0&&(Q.minLength!==void 0||Q.maxLength!==void 0||Q.pattern!==void 0)){if($.string===void 0)$.string=ZA.string()}}},WM4=class{apply($,Z){let Q=Z;if(Q.minLength===void 0)return;if($.string!==!1){let Y=$.string||ZA.string();if(Y instanceof ZA.ZodString)$.string=Y.refine((X)=>{return Array.from(X).length>=Q.minLength},{message:`String must be at least ${Q.minLength} characters long`})}}},KM4=class{apply($,Z){let Q=Z;if(Q.maxLength===void 0)return;if($.string!==!1){let Y=$.string||ZA.string();if(Y instanceof ZA.ZodString)$.string=Y.refine((X)=>{return Array.from(X).length<=Q.maxLength},{message:`String must be at most ${Q.maxLength} characters long`})}}},HM4=class{apply($,Z){let Q=Z;if(!Q.pattern)return;if($.string!==!1){let Y=$.string||ZA.string();if(Y instanceof ZA.ZodString){let X=new RegExp(Q.pattern);$.string=Y.regex(X)}}}},FM4=class{apply($,Z){let Q=Z;if(Q.minimum===void 0)return;if($.number!==!1){let Y=$.number||FU.number();if(Y instanceof FU.ZodNumber)$.number=Y.min(Q.minimum)}}},UM4=class{apply($,Z){let Q=Z;if(Q.maximum===void 0)return;if($.number!==!1){let Y=$.number||FU.number();if(Y instanceof FU.ZodNumber)$.number=Y.max(Q.maximum)}}},NM4=class{apply($,Z){let Q=Z;if(Q.exclusiveMinimum===void 0)return;if($.number!==!1){let Y=$.number||FU.number();if(Y instanceof FU.ZodNumber)if(typeof Q.exclusiveMinimum==="number")$.number=Y.gt(Q.exclusiveMinimum);else $.number=!1}}},BM4=class{apply($,Z){let Q=Z;if(Q.exclusiveMaximum===void 0)return;if($.number!==!1){let Y=$.number||FU.number();if(Y instanceof FU.ZodNumber)if(typeof Q.exclusiveMaximum==="number")$.number=Y.lt(Q.exclusiveMaximum);else $.number=!1}}},DM4=class{apply($,Z){let Q=Z;if(Q.multipleOf===void 0)return;if($.number!==!1){let Y=$.number||FU.number();if(Y instanceof FU.ZodNumber)$.number=Y.refine((X)=>{if(Q.multipleOf===0)return!1;let J=X/Q.multipleOf,G=Math.round(J),W=Math.min(Math.abs(X)*Number.EPSILON*10,Math.abs(Q.multipleOf)*Number.EPSILON*10);return Math.abs(J-G)<=W/Math.abs(Q.multipleOf)},{message:`Must be a multiple of ${Q.multipleOf}`})}}},OM4=class{apply($,Z){let Q=Z;if(Z.type===void 0&&(Q.minItems!==void 0||Q.maxItems!==void 0||Q.items!==void 0||Q.prefixItems!==void 0)){if($.array===void 0)$.array=QQ.array(QQ.any())}}},LM4=class{apply($,Z){let Q=Z;if(Q.minItems===void 0)return;if($.array!==!1)$.array=($.array||QQ.array(QQ.any())).min(Q.minItems)}},wM4=class{apply($,Z){let Q=Z;if(Q.maxItems===void 0)return;if($.array!==!1)$.array=($.array||QQ.array(QQ.any())).max(Q.maxItems)}},jM4=class{apply($,Z){let Q=Z;if($.array===!1)return;if(Array.isArray(Q.items))$.array=$.array||QQ.array(QQ.any());else if(Q.items&&typeof Q.items!=="boolean"&&!Q.prefixItems){let Y=gQ(Q.items),X=QQ.array(Y);if($.array&&$.array instanceof QQ.ZodArray){let J=$.array._def;if(J.checks)J.checks.forEach((G)=>{if(G._zod&&G._zod.def){let W=G._zod.def;if(W.check==="min_length"&&W.minimum!==void 0)X=X.min(W.minimum);else if(W.check==="max_length"&&W.maximum!==void 0)X=X.max(W.maximum)}})}$.array=X}else if(typeof Q.items==="boolean"&&Q.items===!1)if(!Q.prefixItems)$.array=QQ.array(QQ.any()).max(0);else $.array=$.array||QQ.array(QQ.any());else if(typeof Q.items==="boolean"&&Q.items===!0)$.array=$.array||QQ.array(QQ.any());else if(Q.prefixItems)$.array=$.array||QQ.array(QQ.any())}},EM4=class{apply($,Z){if(Z.type!=="array")return;let Q=Z;if(!Array.isArray(Q.items))return;if($.array===!1)return;let Y=Q.items.map((J)=>gQ(J)),X;if(Y.length===0)X=kU$.tuple([]);else X=kU$.tuple(Y);if(Q.minItems!==void 0&&Q.minItems>Y.length)X=!1;if(Q.maxItems!==void 0&&Q.maxItems<Y.length)X=!1;$.tuple=X,$.array=!1}},zM4=class{apply($,Z){let Q=Z;if($.object===!1)return;if(Q.properties||Q.required||Q.additionalProperties!==void 0)$.object=$.object||WK0.object({}).passthrough()}},PM4=class{apply($,Z){let Q=Z;if(Z.type===void 0&&(Q.maxProperties!==void 0||Q.minProperties!==void 0)){if($.object===void 0)$.object=WK0.object({}).passthrough()}}},AM4=class{apply($,Z){let Q=Z;if(Q.maxProperties===void 0)return;if($.object!==!1){let Y=$.object||WK0.object({}).passthrough();$.object=Y.refine((X)=>Object.keys(X).length<=Q.maxProperties,{message:`Object must have at most ${Q.maxProperties} properties`})}}},TM4=class{apply($,Z){let Q=Z;if(Q.minProperties===void 0)return;if($.object!==!1){let Y=$.object||WK0.object({}).passthrough();$.object=Y.refine((X)=>Object.keys(X).length>=Q.minProperties,{message:`Object must have at least ${Q.minProperties} properties`})}}},qM4=class{apply($,Z){if(!Z.not)return $;let Q=gQ(Z.not);return $.refine((Y)=>!GK0(Q,Y),{message:"Value must not match the 'not' schema"})}},MM4=class{apply($,Z){if(Z.uniqueItems!==!0)return $;return $.refine(RM4(),{message:"Array items must be unique"})}},VM4=class{apply($,Z){if(!Z.allOf||Z.allOf.length===0)return $;return Z.allOf.map((Y)=>gQ(Y)).reduce((Y,X)=>IM4.intersection(Y,X),$)}},kM4=class{apply($,Z){if(!Z.anyOf||Z.anyOf.length===0)return $;let Q=Z.anyOf.length===1?gQ(Z.anyOf[0]):SU$.union([gQ(Z.anyOf[0]),gQ(Z.anyOf[1]),...Z.anyOf.slice(2).map((Y)=>gQ(Y))]);return SU$.intersection($,Q)}},SM4=class{apply($,Z){if(!Z.oneOf||Z.oneOf.length===0)return $;let Q=Z.oneOf.map((Y)=>gQ(Y));return $.refine((Y)=>{let X=0;for(let J of Q)if(J.safeParse(Y).success){if(X++,X>1)return!1}return X===1},{message:"Value must match exactly one of the oneOf schemas"})}},CM4=class{apply($,Z){let Q=Z;if(Q.prefixItems&&Array.isArray(Q.prefixItems)){let X=Q.prefixItems.map((J)=>gQ(J));return $.refine((J)=>{if(!Array.isArray(J))return!0;for(let G=0;G<Math.min(J.length,X.length);G++)if(!GK0(X[G],J[G]))return!1;if(J.length>X.length){if(typeof Q.items==="boolean"&&Q.items===!1)return!1;else if(Q.items&&typeof Q.items==="object"&&!Array.isArray(Q.items)){let G=gQ(Q.items);for(let W=X.length;W<J.length;W++)if(!GK0(G,J[W]))return!1}}return!0},{message:"Array does not match prefixItems schema"})}return $}},_M4=class{apply($,Z){let Q=Z;if(!Q.properties&&!Q.required&&Q.additionalProperties!==!1)return $;if($ instanceof JK0.ZodObject||$ instanceof JK0.ZodRecord){let Y={};if(Q.properties){for(let[X,J]of Object.entries(Q.properties))if(J!==void 0)Y[X]=gQ(J)}if(Q.required&&Array.isArray(Q.required)){let X=new Set(Q.required);for(let J of Object.keys(Y))if(!X.has(J))Y[J]=Y[J].optional()}else for(let X of Object.keys(Y))Y[X]=Y[X].optional();if(Q.additionalProperties===!1)return JK0.object(Y);else return JK0.object(Y).passthrough()}return $.refine((Y)=>{if(typeof Y!=="object"||Y===null||Array.isArray(Y))return!0;if(Q.properties){for(let[X,J]of Object.entries(Q.properties))if(J!==void 0){if(Object.getOwnPropertyDescriptor(Y,X)!==void 0){if(!gQ(J).safeParse(Y[X]).success)return!1}}}if(Q.required&&Array.isArray(Q.required)){for(let X of Q.required)if(Object.getOwnPropertyDescriptor(Y,X)===void 0)return!1}if(Q.additionalProperties===!1&&Q.properties){let X=new Set(Object.keys(Q.properties));for(let J in Y)if(!X.has(J))return!1}return!0},{message:"Object constraints validation failed"})}},vM4=class{apply($,Z){if(!Z.enum||Z.enum.length===0)return $;let Q=Z.enum.filter((Y)=>Array.isArray(Y)||typeof Y==="object"&&Y!==null);if(Q.length===0)return $;return $.refine((Y)=>{if(typeof Y!=="object"||Y===null)return!0;return Q.some((X)=>ue(Y,X))},{message:"Value must match one of the enum values"})}},bM4=class{apply($,Z){if(Z.const===void 0)return $;let Q=Z.const;if(typeof Q!=="object"||Q===null)return $;return $.refine((Y)=>ue(Y,Q),{message:"Value must equal the const value"})}},xM4=class{apply($,Z){if(Z.description)$=$.describe(Z.description);return $}},yM4=class{apply($,Z){var Q;let Y=Z;if(!((Q=Y.required)==null?void 0:Q.includes("__proto__"))||Z.type!==void 0)return $;return fM4.any().refine((X)=>this.validateRequired(X,Y.required),{message:"Missing required properties"})}validateRequired($,Z){if(typeof $!=="object"||$===null||Array.isArray($))return!0;return Z.every((Q)=>Object.prototype.hasOwnProperty.call($,Q))}},gM4=class{apply($,Z){var Q;let Y=Z;if(Y.contains===void 0)return $;let X=gQ(Y.contains),J=(Q=Y.minContains)!=null?Q:1,G=Y.maxContains;return $.refine((W)=>{if(!Array.isArray(W))return!0;let K=0;for(let H of W)if(GK0(X,H))K++;if(K<J)return!1;if(G!==void 0&&K>G)return!1;return!0},{message:"Array must contain required items matching the schema"})}},hM4=class{apply($,Z){let{default:Q}=Z;if(Q===void 0)return $;if(!$.safeParse(Q).success)return $;return $.default(Q)}},uM4,lM4;var CU$=D(()=>{uM4=[new QM4,new YM4,new ZM4,new JM4,new GM4,new OM4,new PM4,new WM4,new KM4,new HM4,new FM4,new UM4,new NM4,new BM4,new DM4,new EM4,new LM4,new wM4,new jM4,new AM4,new TM4,new zM4],lM4=[new yM4,new vM4,new bM4,new VM4,new kM4,new SM4,new CM4,new _M4,new gM4,new qM4,new MM4,new hM4,new xM4]});class i11{constructor($){this._url=$}start(){if(this._socket)throw Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise(($,Z)=>{this._socket=new WebSocket(this._url,cM4),this._socket.onerror=(Q)=>{let Y="error"in Q?Q.error:Error(`WebSocket error: ${JSON.stringify(Q)}`);Z(Y),this.onerror?.(Y)},this._socket.onopen=()=>{$()},this._socket.onclose=()=>{this.onclose?.()},this._socket.onmessage=(Q)=>{let Y;try{Y=MG.parse(JSON.parse(Q.data))}catch(X){this.onerror?.(X);return}this.onmessage?.(Y)}})}async close(){this._socket?.close()}send($){return new Promise((Z,Q)=>{if(!this._socket){Q(Error("Not connected"));return}this._socket?.send(JSON.stringify($)),Z()})}}var cM4="mcp";var _U$=D(()=>{KZ()});function mM4($){let Z=$;if(!Z||typeof Z!=="object"||!("method"in Z))return null;switch(Z.method){case"initialize":{let Q=Z?.params?.protocolVersion;if(!Q)return null;return{type:"emit",message:{result:{protocolVersion:Q,capabilities:{tools:{}},serverInfo:{name:"deco-chat-server",version:"1.0.0"}},jsonrpc:Z.jsonrpc??"2.0",id:Z.id}}}case"notifications/roots/list_changed":case"notifications/initialized":case"notifications/cancelled":case"notifications/progress":return{type:"suppress"};default:return null}}var p11;var vU$=D(()=>{Il();p11=class p11 extends VF{constructor($,Z){super($,Z)}send($,Z){let Q=mM4($);if(Q?.type==="emit")return this.onmessage?.(Q.message),Promise.resolve();if(Q?.type==="suppress")return Promise.resolve();return super.send($,Z)}}});var bU$,xU$=async($,Z,Q)=>{let Y=dM4($.connection,Z,Q);if(!Y)throw Error("Unknown MCP connection type");let X=new bU$({name:$?.name??"MCP Client",version:"1.0.0"});return await X.connect(Y),{client:X}},dM4=($,Z,Q)=>{if($.type==="Websocket")return new i11(new URL($.url));if($.type!=="SSE"&&$.type!=="HTTP")return null;let X={...$.token?{authorization:`Bearer ${$.token}`}:{},...Q??{},..."headers"in $?$.headers||{}:{}};if($.type==="SSE"){let J={requestInit:{headers:X,signal:Z}};if($.token)J.eventSourceInit={fetch:(G,W)=>{return fetch(G,{...W,headers:{...X,Accept:"text/event-stream"},signal:Z})}};return new W2(new URL($.url),J)}return new p11(new URL($.url),{requestInit:{headers:X,signal:Z,credentials:"include"}})};var fU$=D(()=>{IF();oJ0();_U$();KZ();NJ();vU$();bU$=class bU$ extends sZ{constructor($,Z){super($,{jsonSchemaValidator:vZ,...Z})}async listTools($,Z){return await this.request({method:"tools/list",params:$},Qo,Z)}}});function pM4($,Z){if(QA.set($,Z),QA.size>iM4){let Q=QA.keys().next().value;if(Q!==void 0)QA.delete(Q)}}function hU$($){let Z=(Q)=>{if("connection"in $)return xU$({connection:$.connection},void 0,Q);return $.client};return new Proxy({},{get(Q,Y){if(Y==="toJSON")return null;if(typeof Y!=="string")throw Error("Name must be a string");if(Y==="listTools")return W;async function X(K,H=Y){let F=$?.debugId?.(),U=F?{"x-trace-debug-id":F}:void 0,{client:N}=await Z(U),{structuredContent:B,isError:O,content:L}=await N.callTool({name:String(H),arguments:K});if(O){let j=L?.[0]?.text,E=typeof j==="string"?yU$(j):null,z=E?.code&&typeof $?.getErrorByStatusCode==="function"?$.getErrorByStatusCode(E.code,E.message,E.traceId):null;if(z)throw z;throw Error(`Tool ${String(H)} returned an error: ${JSON.stringify(B??L)}`)}if(B!==void 0)return B;let w=L?.[0]?.text;return typeof w==="string"?yU$(w):void 0}async function J(){let{client:K}=await Z(),{tools:H}=await K.listTools();return H}async function G(){if(!("connection"in $))return J();let K=$.connection,H=JSON.stringify(K);try{if(!QA.has(H))pM4(H,J());return await QA.get(H)}catch(F){console.error("Failed to list tools",F),QA.delete(H);return}}async function W(){return(await G()??[]).map((H)=>gU$(H,X))}return X.asTool=async()=>{let H=(await G()??[]).find((F)=>F.name===Y);if(!H)throw Error(`Tool ${Y} not found`);return gU$(H,X)},X}})}var yU$=($)=>{try{return JSON.parse($)}catch{return $}},iM4=500,QA,gU$=($,Z)=>{return{...$,id:$.name,inputSchema:$.inputSchema?gQ($.inputSchema):void 0,outputSchema:$.outputSchema?gQ($.outputSchema):void 0,execute:(Q)=>{return Z(Q.context,$.name)}}};var uU$=D(()=>{CU$();fU$();QA=new Map});function le($){return hU$($)}var B19;var lU$=D(()=>{uU$();B19=new Proxy({},{get($,Z){if(Z==="toJSON")return null;if(Z==="forConnection")return(Q)=>le({connection:Q});if(Z==="forClient")return(Q)=>le({client:Q});return globalThis[Z]}})});function KK0($){return{isImplementedBy:(Z)=>{for(let Q of $){let Y=typeof Q.name==="string"?new RegExp(`^${Q.name}$`):Q.name,X=Z.find((J)=>Y.test(J.name));if(!X&&Q.opt)continue;if(!X)return!1}return!0}}}var tB=($)=>{return{...KK0($),forClient:(Z)=>{return le({client:Z})},forConnection:(Z)=>{return le({connection:Z})}}};var cc=D(()=>{lU$()});import{z as d9}from"zod";var cU$,mU$,dU$,iU$,pU$,nM4;var nU$=D(()=>{cc();cU$=d9.object({specversion:d9.literal("1.0").describe("CloudEvents specification version"),id:d9.string().describe("Unique identifier for this event (UUID recommended)"),source:d9.string().describe("Connection ID of the event publisher"),type:d9.string().describe("Event type (e.g., 'order.created', 'user.signup')"),time:d9.string().datetime().optional().describe("Timestamp of when the event occurred (ISO 8601)"),subject:d9.string().optional().describe("Subject/resource identifier (e.g., order ID, user ID)"),datacontenttype:d9.string().optional().default("application/json").describe("Content type of the data attribute"),dataschema:d9.string().url().optional().describe("URI to the schema for the data attribute"),data:d9.unknown().optional().describe("Event payload (any JSON value)")}),mU$=d9.object({events:d9.array(cU$).min(1).describe("Batch of CloudEvents to process")}),dU$=d9.object({success:d9.boolean().optional().describe("Whether this event was processed successfully"),error:d9.string().optional().describe("Error message for this event"),retryAfter:d9.number().int().positive().optional().describe("Re-deliver this event after this many ms")}),iU$=d9.object({success:d9.boolean().optional().describe("Batch success - applies to events not in results"),error:d9.string().optional().describe("Batch error message - applies to events not in results"),processedCount:d9.number().int().min(0).optional().describe("Number of events successfully processed"),retryAfter:d9.number().int().positive().optional().describe("Batch retryAfter - applies to events not in results"),results:d9.record(d9.string(),dU$).optional().describe("Per-event results keyed by event ID")}),pU$=[{name:"ON_EVENTS",inputSchema:mU$,outputSchema:iU$}],nM4=tB(pU$)});import{z as i9}from"zod";var tU$,oU$,rU$,sU$,aU$,eU$,HK0,n11;var t11=D(()=>{cc();tU$=i9.object({type:i9.literal("string"),enum:i9.array(i9.string()).optional(),description:i9.string().optional()}),oU$=i9.object({type:i9.string(),description:i9.string(),paramsSchema:i9.record(i9.string(),tU$)}),rU$=i9.object({}),sU$=i9.object({triggers:i9.array(oU$)}),aU$=i9.object({type:i9.string(),params:i9.record(i9.string(),i9.string()),enabled:i9.boolean(),callbackUrl:i9.url().optional(),callbackToken:i9.string().min(1).optional()}),eU$=i9.object({success:i9.boolean()}),HK0=[{name:"TRIGGER_LIST",inputSchema:rU$,outputSchema:sU$},{name:"TRIGGER_CONFIGURE",inputSchema:aU$,outputSchema:eU$}],n11=tB(HK0)});import{z as W8}from"zod";var tM4,oM4,rM4,sM4,aM4,eM4,$I4,ZI4,QI4,YI4,XI4,JI4,YA;var ce=D(()=>{tM4=W8.object({prefix:W8.string().optional().describe("Filter objects by prefix (e.g., 'folder/' for folder contents)"),maxKeys:W8.number().optional().default(1000).describe("Maximum number of keys to return (default: 1000)"),continuationToken:W8.string().optional().describe("Token for pagination from previous response"),delimiter:W8.string().optional().describe("Delimiter for grouping keys (typically '/'). When set, commonPrefixes returns folder paths.")}),oM4=W8.object({objects:W8.array(W8.object({key:W8.string().describe("Object key/path"),size:W8.number().describe("Object size in bytes"),lastModified:W8.string().describe("Last modified timestamp"),etag:W8.string().describe("Entity tag for the object")})),nextContinuationToken:W8.string().optional().describe("Token for fetching next page of results"),isTruncated:W8.boolean().describe("Whether there are more results available"),commonPrefixes:W8.array(W8.string()).optional().describe("Folder paths when delimiter is used (e.g., ['photos/2024/', 'photos/2025/'])")}),rM4=W8.object({key:W8.string().describe("Object key/path to get metadata for")}),sM4=W8.object({contentType:W8.string().optional().describe("MIME type of the object"),contentLength:W8.number().describe("Size of the object in bytes"),lastModified:W8.string().describe("Last modified timestamp"),etag:W8.string().describe("Entity tag for the object"),metadata:W8.record(W8.string(),W8.string()).optional().describe("Custom metadata key-value pairs")}),aM4=W8.object({key:W8.string().describe("Object key/path to generate URL for"),expiresIn:W8.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)")}),eM4=W8.object({url:W8.string().describe("Presigned URL for downloading the object"),expiresIn:W8.number().describe("Expiration time in seconds that was used")}),$I4=W8.object({key:W8.string().describe("Object key/path for the upload"),expiresIn:W8.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)"),contentType:W8.string().optional().describe("MIME type for the object being uploaded")}),ZI4=W8.object({url:W8.string().describe("Presigned URL for uploading the object"),expiresIn:W8.number().describe("Expiration time in seconds that was used")}),QI4=W8.object({key:W8.string().describe("Object key/path to delete")}),YI4=W8.object({success:W8.boolean().describe("Whether the deletion was successful"),key:W8.string().describe("The key that was deleted")}),XI4=W8.object({keys:W8.array(W8.string()).max(1000).describe("Array of object keys/paths to delete (max 1000)")}),JI4=W8.object({deleted:W8.array(W8.string()).describe("Array of successfully deleted keys"),errors:W8.array(W8.object({key:W8.string(),message:W8.string()})).describe("Array of errors for failed deletions")}),YA=[{name:"LIST_OBJECTS",inputSchema:tM4,outputSchema:oM4},{name:"GET_OBJECT_METADATA",inputSchema:rM4,outputSchema:sM4},{name:"GET_PRESIGNED_URL",inputSchema:aM4,outputSchema:eM4},{name:"PUT_PRESIGNED_URL",inputSchema:$I4,outputSchema:ZI4},{name:"DELETE_OBJECT",inputSchema:QI4,outputSchema:YI4},{name:"DELETE_OBJECTS",inputSchema:XI4,outputSchema:JI4}]});import{z as O5}from"zod";var $N$,ZN$,QN$,me,FK0,UK0,NK0,BK0,GI4;var o11=D(()=>{cc();$N$=O5.object({primary:O5.string().optional().describe("Primary brand color (hex)"),secondary:O5.string().optional().describe("Secondary brand color (hex)"),accent:O5.string().optional().describe("Accent / highlight color (hex)"),background:O5.string().optional().describe("Background color (hex)"),foreground:O5.string().optional().describe("Foreground / text color (hex)")}),ZN$=O5.object({heading:O5.string().optional().describe("Font family for headings"),body:O5.string().optional().describe("Font family for body text"),code:O5.string().optional().describe("Font family for code / monospace")}),QN$=O5.object({logo:O5.string().optional().describe("Logo URL"),favicon:O5.string().optional().describe("Favicon URL"),ogImage:O5.string().optional().describe("Open Graph image URL")}),me=O5.object({id:O5.string(),name:O5.string().describe("Brand / company name"),domain:O5.string().optional().describe("Company domain (e.g. example.com)"),colors:$N$.optional().describe("Semantic color palette"),fonts:ZN$.optional().describe("Font families by role"),assets:QN$.optional().describe("Visual identity assets"),overview:O5.string().optional().describe("Company overview / description"),tagline:O5.string().optional().describe("Brand tagline"),tone:O5.string().optional().describe("Tone of voice description"),metadata:O5.record(O5.string(),O5.unknown()).optional().describe("Extra design tokens and metadata")}),FK0=O5.object({id:O5.string().optional().describe("Brand ID. Omit to get the default brand.")}),UK0=O5.object({}),NK0=O5.object({items:O5.array(me)}),BK0=[{name:"BRAND_GET",inputSchema:FK0,outputSchema:me},{name:"BRAND_LIST",inputSchema:UK0,outputSchema:NK0,opt:!0}],GI4=tB(BK0)});var YN$=D(()=>{cc();nU$();t11();ce();o11()});import{z as Q4}from"zod";function mc($){let Q=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,".");return new RegExp(`^${Q}$`,"i")}function oB($){return Q4.object({items:Q4.array($).describe("Array of collection items"),totalCount:Q4.number().int().min(0).optional().describe("Total number of matching items (if available)"),hasMore:Q4.boolean().optional().describe("Whether there are more items available")})}function ie($){return Q4.object({item:$.nullable().describe("The retrieved item, or null if not found")})}function HI4($){return Q4.object({data:$.partial().describe("Data for the new entity (id may be auto-generated)")})}function FI4($){return Q4.object({item:$.describe("The created entity with generated id")})}function UI4($){return Q4.object({id:Q4.string().describe("ID of the entity to update"),data:$.partial().describe("Partial entity data to update")})}function NI4($){return Q4.object({item:$.describe("The updated entity")})}function ne($){return Q4.object({item:$.describe("The deleted entity")})}function OK0($,Z,Q){let Y=$.toUpperCase(),X=Q?.readOnly??!1,J=[{name:`COLLECTION_${Y}_LIST`,inputSchema:KH,outputSchema:oB(Z)},{name:`COLLECTION_${Y}_GET`,inputSchema:de,outputSchema:ie(Z)}];if(!X)J.push({name:`COLLECTION_${Y}_CREATE`,inputSchema:HI4(Z),outputSchema:FI4(Z),opt:!0},{name:`COLLECTION_${Y}_UPDATE`,inputSchema:UI4(Z),outputSchema:NI4(Z),opt:!0},{name:`COLLECTION_${Y}_DELETE`,inputSchema:pe,outputSchema:ne(Z),opt:!0});return J}var DK0,WI4,XN$,KI4,KH,de,pe;var CJ=D(()=>{DK0=Q4.object({id:Q4.string().describe("Unique identifier for the entity"),title:Q4.string().describe("Human-readable title for the entity"),description:Q4.string().nullish().describe("Description of the entity"),created_at:Q4.string().datetime(),updated_at:Q4.string().datetime(),created_by:Q4.string().optional(),updated_by:Q4.string().optional()}),WI4=Q4.object({field:Q4.array(Q4.string()),operator:Q4.enum(["eq","gt","gte","lt","lte","in","like","contains"]),value:Q4.unknown()}),XN$=Q4.lazy(()=>Q4.union([WI4,Q4.object({operator:Q4.enum(["and","or","not"]),conditions:Q4.array(XN$)})]));KI4=Q4.object({field:Q4.array(Q4.string()),direction:Q4.enum(["asc","desc"]),nulls:Q4.enum(["first","last"]).optional()}),KH=Q4.object({where:XN$.optional().describe("Filter expression"),orderBy:Q4.array(KI4).optional().describe("Sort expressions"),limit:Q4.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:Q4.number().int().min(0).optional().describe("Number of items to skip")});de=Q4.object({id:Q4.string().describe("ID of the entity to retrieve")});pe=Q4.object({id:Q4.string().describe("ID of the entity to delete")})});import{z as dc}from"zod";var BI4,DI4,JN$;var GN$=D(()=>{CJ();BI4=DK0.extend({avatar:dc.string().describe("URL or data URI to the assistant's avatar image"),system_prompt:dc.string().describe("System prompt that defines the assistant's behavior"),virtual_mcp_id:dc.string().describe("Virtual MCP ID to use for this assistant"),model:dc.object({id:dc.string().describe("Model ID"),connectionId:dc.string().describe("Connection ID that provides the model")}).describe("Selected model reference for this assistant")}),DI4=OK0("assistant",BI4),JN$=[...DI4]});import{z as O0}from"zod";var te,rB,KN$,OI4,LI4,HN$,wI4,jI4,EI4,zI4,PI4,AI4,FN$,TI4,RI4,qI4,MI4,II4,VI4,kI4,SI4,CI4,_I4,d19,vI4,i19,WN$,bI4,xI4,LK0,p19;var UN$=D(()=>{cc();CJ();te=O0.lazy(()=>O0.union([O0.null(),O0.string(),O0.number(),O0.boolean(),O0.record(O0.string(),te),O0.array(te)])),rB=O0.record(O0.string(),O0.record(O0.string(),te)).optional().describe("Additional provider-specific options. Outer record keyed by provider name, inner by option key"),KN$=O0.object({type:O0.literal("text"),text:O0.string().describe("The text content"),providerOptions:rB}),OI4=O0.object({type:O0.literal("text"),text:O0.string().describe("The text content"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata")}),LI4=O0.string().describe("File data as URL string"),HN$=O0.object({type:O0.literal("file"),filename:O0.string().optional().describe("Optional filename of the file"),data:LI4,mediaType:O0.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),providerOptions:rB}),wI4=O0.object({type:O0.literal("file"),mediaType:O0.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),data:O0.string().describe("Generated file data as base64 encoded string")}),jI4=O0.object({type:O0.literal("reasoning"),text:O0.string().describe("The reasoning text"),providerOptions:rB}),EI4=O0.object({type:O0.literal("reasoning"),text:O0.string().describe("The reasoning text"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata")}),zI4=O0.object({type:O0.literal("tool-call"),toolCallId:O0.string().describe("ID of the tool call, used to match with tool result"),toolName:O0.string().describe("Name of the tool being called"),input:O0.string().describe("Arguments of the tool call (JSON-serializable object matching tool input schema)"),providerExecuted:O0.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerOptions:rB}),PI4=O0.object({type:O0.literal("tool-call"),toolCallId:O0.string().describe("ID of the tool call"),toolName:O0.string().describe("Name of the tool being called"),input:O0.string().describe("Stringified JSON object with the tool call arguments"),providerExecuted:O0.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata")}),AI4=O0.union([O0.object({type:O0.literal("text"),value:O0.string()}),O0.object({type:O0.literal("json"),value:te}),O0.object({type:O0.literal("error-text"),value:O0.string()}),O0.object({type:O0.literal("error-json"),value:te}),O0.object({type:O0.literal("content"),value:O0.array(O0.union([O0.object({type:O0.literal("text"),text:O0.string().describe("Text content")}),O0.object({type:O0.literal("media"),data:O0.string().describe("Base-64 encoded media data"),mediaType:O0.string().describe("IANA media type")})]))}),O0.object({type:O0.literal("execution-denied"),reason:O0.string().optional()}),O0.string().describe("Raw or JSON-serialized output (e.g. from AI SDK mapToolResultOutput)")]),FN$=O0.object({type:O0.literal("tool-result"),toolCallId:O0.string().describe("ID of the tool call that this result is associated with"),toolName:O0.string().describe("Name of the tool that generated this result"),output:AI4.describe("Result of the tool call"),result:O0.unknown().describe("Unknown result of the tool call"),providerOptions:rB}),TI4=O0.object({type:O0.literal("tool-result"),toolCallId:O0.string().describe("ID of the tool call that this result is associated with"),toolName:O0.string().describe("Name of the tool that generated this result"),result:O0.any().describe("Result of the tool call (JSON-serializable)"),isError:O0.boolean().optional().describe("Whether the result is an error or error message"),providerExecuted:O0.boolean().optional().describe("Whether the tool result was generated by the provider"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata")}),RI4=O0.union([O0.object({type:O0.literal("source"),sourceType:O0.literal("url"),id:O0.string().describe("The ID of the source"),url:O0.string().describe("The URL of the source"),title:O0.string().optional().describe("The title of the source"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata")}),O0.object({type:O0.literal("source"),sourceType:O0.literal("document"),id:O0.string().describe("The ID of the source"),mediaType:O0.string().describe("IANA media type of the document (e.g., application/pdf)"),title:O0.string().describe("The title of the document"),filename:O0.string().optional().describe("Optional filename of the document"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata")})]),qI4=O0.object({role:O0.literal("system"),content:O0.string().describe("System message content"),providerOptions:rB}),MI4=O0.object({role:O0.literal("user"),content:O0.array(O0.union([KN$,HN$])).describe("User message content parts (text or file)"),providerOptions:rB}),II4=O0.object({role:O0.literal("assistant"),content:O0.array(O0.union([KN$,HN$,jI4,zI4,FN$])).describe("Assistant message content parts (text, file, reasoning, tool-call, or tool-result)"),providerOptions:rB}),VI4=O0.object({role:O0.literal("tool"),content:O0.array(FN$).describe("Tool message content (tool results)"),providerOptions:rB}),kI4=O0.union([qI4,MI4,II4,VI4]),SI4=O0.array(kI4).describe("A list of messages forming the prompt"),CI4=O0.object({prompt:SI4.describe("A language model prompt is a standardized prompt type (array of messages with roles: system, user, assistant, tool)"),maxOutputTokens:O0.number().optional().describe("Maximum number of tokens to generate"),temperature:O0.number().optional().describe("Temperature setting. The range depends on the provider and model"),topP:O0.number().optional().describe("Nucleus sampling parameter"),topK:O0.number().optional().describe("Only sample from the top K options for each subsequent token. Used to remove long tail low probability responses"),presencePenalty:O0.number().optional().describe("Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt"),frequencyPenalty:O0.number().optional().describe("Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases"),seed:O0.number().optional().describe("The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results"),stopSequences:O0.array(O0.string()).optional().describe("Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated"),responseFormat:O0.union([O0.object({type:O0.literal("text")}),O0.object({type:O0.literal("json"),schema:O0.any().optional().describe("JSON schema that the generated output should conform to"),name:O0.string().optional().describe("Name of output that should be generated"),description:O0.string().optional().describe("Description of the output that should be generated")})]).optional().describe("Response format. The output can either be text or JSON. Default is text"),tools:O0.array(O0.any()).optional().describe("The tools that are available for the model"),toolChoice:O0.any().optional().describe("Specifies how the tool should be selected. Defaults to 'auto'"),includeRawChunks:O0.boolean().optional().describe("Include raw chunks in the stream. Only applicable for streaming calls"),abortSignal:O0.any().optional().describe("Abort signal for cancelling the operation"),providerOptions:O0.any().optional().describe("Additional provider-specific options")}),_I4=O0.object({content:O0.array(O0.union([OI4,wI4,EI4,PI4,TI4,RI4])).describe("Ordered content that the model has generated (text, tool-calls, reasoning, files, sources)"),finishReason:O0.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).describe("Reason why generation stopped"),usage:O0.looseObject({inputTokens:O0.number().optional(),outputTokens:O0.number().optional(),totalTokens:O0.number().optional(),reasoningTokens:O0.number().optional()}).describe("Usage information for the language model call"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata"),request:O0.object({body:O0.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:O0.object({id:O0.string().optional().describe("ID for the generated response"),timestamp:O0.iso.datetime().optional().describe("Timestamp for the start of the generated response"),modelId:O0.string().optional().describe("The ID of the response model that was used"),headers:O0.record(O0.string(),O0.string()).optional().describe("Response headers"),body:O0.any().optional().describe("Response HTTP body")}).optional().describe("Optional response information for telemetry and debugging"),warnings:O0.array(O0.any()).describe("Warnings for the call, e.g. unsupported settings")}),d19=O0.object({stream:O0.any().describe("ReadableStream of LanguageModelV2StreamPart"),request:O0.object({body:O0.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:O0.object({headers:O0.record(O0.string(),O0.string()).optional().describe("Response headers")}).optional().describe("Optional response data")}),vI4=O0.object({supportedUrls:O0.record(O0.string(),O0.array(O0.string())).describe("Supported URL patterns by media type for the provider")}),i19=O0.object({modelId:O0.string().describe("The ID of the model"),logo:O0.string().nullable(),description:O0.string().nullable(),capabilities:O0.array(O0.string()),limits:O0.object({contextWindow:O0.number(),maxOutputTokens:O0.number()}).nullable(),costs:O0.object({input:O0.number(),output:O0.number()}).nullable(),provider:O0.enum(["openai","anthropic","google","x-ai","deepseek","openai-compatible","openrouter"]).nullable()}),WN$=O0.object({modelId:O0.string().describe("The ID of the model"),callOptions:CI4}),bI4=DK0.extend({logo:O0.string().nullable(),description:O0.string().nullable(),capabilities:O0.array(O0.string()),limits:O0.object({contextWindow:O0.number(),maxOutputTokens:O0.number()}).nullable(),costs:O0.object({input:O0.number(),output:O0.number()}).nullable(),provider:O0.enum(["openai","anthropic","google","xai","deepseek","openai-compatible","openrouter"]).nullable()}),xI4=OK0("llm",bI4,{readOnly:!0}),LK0=[{name:"LLM_METADATA",inputSchema:O0.object({modelId:O0.string().describe("The ID of the model")}),outputSchema:vI4},{name:"LLM_DO_STREAM",inputSchema:WN$},{name:"LLM_DO_GENERATE",inputSchema:WN$,outputSchema:_I4},...xI4],p19=tB(LK0)});import{z as XA}from"zod";var fI4,NN$;var BN$=D(()=>{fI4=XA.object({scopes:XA.array(XA.string()).describe("List of scopes available"),stateSchema:XA.record(XA.string(),XA.unknown()).describe("JSON Schema (draft-07) defining the state structure")}),NN$=[{name:"MCP_CONFIGURATION",inputSchema:XA.object({}),outputSchema:fI4}]});import{z as p9}from"zod";var yI4,gI4,DN$;var ON$=D(()=>{yI4=p9.object({}).strict(),gI4=p9.object({billing:p9.object({mode:p9.enum(["prepaid","postpaid"]),limitPeriod:p9.enum(["daily","weekly","monthly"]).nullable()}),limit:p9.object({total:p9.number().nullable(),remaining:p9.number().nullable(),reset:p9.string().nullable()}),usage:p9.object({total:p9.number(),daily:p9.number(),weekly:p9.number(),monthly:p9.number()}),alert:p9.object({enabled:p9.boolean(),threshold_usd:p9.number(),email:p9.string().nullable()}),connectionId:p9.string()}),DN$=[{name:"GATEWAY_USAGE",inputSchema:yI4,outputSchema:gI4},{name:"GATEWAY_SET_LIMIT",inputSchema:p9.object({}),outputSchema:p9.object({}),opt:!0},{name:"GATEWAY_SET_ALERT",inputSchema:p9.object({}),outputSchema:p9.object({}),opt:!0}]});import{z as LN$}from"zod";function PW(){return HX()===null}function wK0($,Z){return $===Y4.DEV_ASSETS(Z)}function jK0($,Z){let Q=jn1(Z,$),Y=new Date().toISOString();return{id:Q.id??Y4.DEV_ASSETS($),title:Q.title,description:Q.description??null,icon:Q.icon??null,app_name:Q.app_name??null,app_id:Q.app_id??null,organization_id:$,created_by:"system",created_at:Y,updated_at:Y,connection_type:Q.connection_type,connection_url:Q.connection_url??null,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:Q.metadata??null,tools:hI4,bindings:["OBJECT_STORAGE"],status:"active"}}var hI4;var ic=D(()=>{WL();ce();p8();hI4=YA.map(($)=>({name:$.name,description:`${$.name} operation for local file storage`,inputSchema:LN$.toJSONSchema($.inputSchema),outputSchema:LN$.toJSONSchema($.outputSchema)}))});function wN$($,Z){return $||Z===0}function jN$($,Z,Q,Y,X){let J=Z?X+1:X,G=$.slice(0,Q),W=Y+Q<J;return{items:G,totalCount:J,hasMore:W}}function EN$($,Z,Q){if(!Q)return{sqlOffset:$,sqlLimit:Z};if($===0)return{sqlOffset:0,sqlLimit:Math.max(Z-1,0)};return{sqlOffset:$-1,sqlLimit:Z}}function uI4($,Z){if(Z.length===0)return;let[Q,...Y]=Z,X=Q==="slug"?EL($):$[Q];for(let J of Y){if(X===null||typeof X!=="object")return;X=X[J]}return X}function lI4($,Z,Q){if($===void 0)return!0;switch(Z){case"eq":return Q===null?$===null:$===Q;case"gt":return $>Q;case"gte":return $>=Q;case"lt":return $<Q;case"lte":return $<=Q;case"in":return Array.isArray(Q)&&Q.includes($);case"like":return typeof $==="string"&&mc(String(Q)).test($);case"contains":return String($).toLowerCase().includes(String(Q).toLowerCase());default:return!0}}function oe($,Z){if(!Z)return!0;if("conditions"in Z){let{operator:Y,conditions:X}=Z;if(X.length===0)return!0;switch(Y){case"and":return X.every((J)=>oe($,J));case"or":return X.some((J)=>oe($,J));case"not":return!X.every((J)=>oe($,J));default:return!0}}let Q=uI4($,Z.field);return lI4(Q,Z.operator,Z.value)}var zN$=D(()=>{NY0();CJ()});import{z as Qj}from"zod";var cI4=8,mI4,dI4,iI4,pI4,JA;var r11=D(()=>{YN$();GN$();CJ();UN$();BN$();ce();ON$();p8();k0();I9();SJ();hc();ic();BF();NY0();zN$();mI4=[{name:/^(COLLECTION_REGISTRY_APP_LIST|REGISTRY_ITEM_LIST)$/,inputSchema:Qj.object({})}],dI4={LLM:LK0,LLMS:LK0,ASSISTANTS:JN$,MCP:NN$,OBJECT_STORAGE:YA,AI_GATEWAY_BILLING:DN$,TRIGGER:HK0,REGISTRY:mI4,BRAND:BK0},iI4=KH.extend({binding:Qj.union([Qj.array(Qj.object({}).passthrough()),Qj.object({}).passthrough(),Qj.string()]).optional(),include_virtual:Qj.boolean().optional().describe("Whether to include VIRTUAL connections in the results. Defaults to false."),slug:Qj.string().optional().describe("Filter by connection slug. Matches against app_name, or a slug derived from connection_url or title.")}),pI4=oB(HY),JA=c({name:"COLLECTION_CONNECTIONS_LIST",description:"List all connections in the organization with filtering, sorting, and pagination",annotations:{title:"List Connections",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:iI4,outputSchema:pI4,handler:async($,Z)=>{await Z.access.check();let Q=J0(Z),Y=$.binding?typeof $.binding==="string"?(()=>{let j=dI4[$.binding.toUpperCase()];if(!j)throw Error(`Unknown binding: ${$.binding}`);return j})():$.binding:void 0,X=Y?KK0(Y):void 0,J=!!X,G=$.limit??100,W=$.offset??0,K=WZ(),H=Y4.DEV_ASSETS(Q.id),F=jK0(Q.id,K),U=(!$.slug||EL(F)===$.slug)&&oe(F,$.where),N=PW()&&!J&&U,{sqlOffset:B,sqlLimit:O}=EN$(W,G,N),{items:L,totalCount:w}=await Z.storage.connections.list(Q.id,{includeVirtual:$.include_virtual??!1,slug:$.slug,where:$.where,orderBy:$.orderBy,limit:J?void 0:O,offset:J?void 0:B});if(X){let j=LZ(),E=Y4.SELF(Q.id);await dl(L,cI4,async(z)=>{if(z.tools!==null)return;let T=z.id===E?async()=>{let{listManagementTools:P}=await Promise.resolve().then(() => (Yj(),EK0));return P(Z)}:()=>Se(z,Z,mh),A=await aw("tools",z.id,T,j,(P)=>Z.pendingRevalidations.push(P),sw);if(A!==null)z.tools=A})}if(PW()&&wN$(J,W)&&U&&!L.some((j)=>j.id===H))L.unshift(F);if(J){let j=(await Promise.all(L.map(async(A)=>{if(!A.tools||A.tools.length===0)return null;return X.isImplementedBy(A.tools.map((q)=>({name:q.name,inputSchema:q.inputSchema,outputSchema:q.outputSchema})))?A:null}))).filter((A)=>A!==null),E=j.length,z=j.slice(W,W+G),T=W+G<E;return{items:z,totalCount:E,hasMore:T}}return jN$(L,N,G,W,w)}})});var nI4,GA;var s11=D(()=>{CJ();p8();k0();I9();SJ();hc();ic();BF();nI4=ie(HY),GA=c({name:"COLLECTION_CONNECTIONS_GET",description:"Get a connection's configuration, tools list, and status by ID.",annotations:{title:"Get Connection",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},_meta:{ui:{visibility:["app"]}},inputSchema:de,outputSchema:nI4,handler:async($,Z)=>{let Q=J0(Z);if(await Z.access.check(),PW()&&wK0($.id,Q.id))return{item:jK0(Q.id,WZ())};let Y=await Z.storage.connections.findById($.id);if(!Y||Y.organization_id!==Q.id)return{item:null};if(Y.tools===null){let X=Y4.SELF(Q.id),J=Y.id===X?async()=>{let{listManagementTools:W}=await Promise.resolve().then(() => (Yj(),EK0));return W(Z)}:()=>Se(Y,Z,mh),G=await aw("tools",Y.id,J,LZ(),(W)=>Z.pendingRevalidations.push(W),sw);if(G!==null)Y.tools=G}return{item:Y}}})});class w9{db;vault;constructor($,Z){this.db=$;this.vault=Z}async get($){let Z=await this.db.selectFrom("downstream_tokens").selectAll().where("connectionId","=",$).executeTakeFirst();if(!Z)return null;return tI4(this.vault,Z)}async upsert($){let Z=new Date().toISOString(),Q=await this.vault.encrypt($.accessToken),Y=$.refreshToken?await this.vault.encrypt($.refreshToken):null,X=$.clientSecret?await this.vault.encrypt($.clientSecret):null,J=$.expiresAt?.toISOString()??null,G=await this.db.insertInto("downstream_tokens").values({id:i8("dtok"),connectionId:$.connectionId,accessToken:Q,refreshToken:Y,scope:$.scope,expiresAt:J,clientId:$.clientId,clientSecret:X,tokenEndpoint:$.tokenEndpoint,createdAt:Z,updatedAt:Z}).onConflict((W)=>W.column("connectionId").doUpdateSet({accessToken:Q,refreshToken:Y,scope:$.scope,expiresAt:J,clientId:$.clientId,clientSecret:X,tokenEndpoint:$.tokenEndpoint,updatedAt:Z})).returning(["id","createdAt"]).executeTakeFirstOrThrow();return{id:G.id,connectionId:$.connectionId,accessToken:$.accessToken,refreshToken:$.refreshToken,scope:$.scope,expiresAt:$.expiresAt,createdAt:G.createdAt,updatedAt:Z,clientId:$.clientId,clientSecret:$.clientSecret,tokenEndpoint:$.tokenEndpoint}}async delete($){await this.db.deleteFrom("downstream_tokens").where("connectionId","=",$).execute()}isExpired($,Z=0){if(!$.expiresAt)return!1;let Y=($.expiresAt instanceof Date?$.expiresAt:new Date($.expiresAt)).getTime();if(Number.isNaN(Y))return!0;return Y-Z<Date.now()}}async function tI4($,Z){try{let Q=await $.decrypt(Z.accessToken),Y=Z.refreshToken?await $.decrypt(Z.refreshToken):null,X=Z.clientSecret?await $.decrypt(Z.clientSecret):null;return{id:Z.id,connectionId:Z.connectionId,accessToken:Q,refreshToken:Y,scope:Z.scope,expiresAt:Z.expiresAt,createdAt:Z.createdAt,updatedAt:Z.updatedAt,clientId:Z.clientId,clientSecret:X,tokenEndpoint:Z.tokenEndpoint}}catch(Q){return console.warn("[DownstreamToken] failed to decrypt token row",{connectionId:Z.connectionId,message:Q instanceof Error?Q.message:String(Q)}),null}}var HH=D(()=>{FY()});function pc(...$){if(aI4)console.log("[mcp-read-cache]",...$)}function eI4($){return $.kind==="org"?"org":`u:${$.userId}`}function a11($){if($===null||typeof $!=="object")return JSON.stringify($)??"null";if(Array.isArray($))return`[${$.map(a11).join(",")}]`;return`{${Object.keys($).sort().map((Q)=>`${JSON.stringify(Q)}:${a11($[Q])}`).join(",")}}`}class AK0{config;maxEntries;now;maxTotalBytes;store=new Map;revalidating=new Set;totalBytes=0;byConnection=new Map;constructor($=oI4,Z=rI4,Q=()=>Date.now(),Y=sI4){this.config=$;this.maxEntries=Z;this.now=Q;this.maxTotalBytes=Y}stats(){return{entries:this.store.size,bytes:this.totalBytes}}deleteKey($){let Z=this.store.get($);if(Z){this.store.delete($),this.totalBytes-=Z.bytes;let Q=this.byConnection.get(Z.connectionId);if(Q){if(Q.delete($),Q.size===0)this.byConnection.delete(Z.connectionId)}}}key($,Z,Q,Y){return`${Z}:${eI4(Q)}:${$}:${a11(Y)}`}storeSet($,Z,Q,Y,X){let J;try{J=JSON.stringify(Q).length}catch{pc("SKIP non-serializable",$);return}if(J>X){pc("SKIP oversize",$,`${J}b > cap ${X}b`);return}this.deleteKey($);while(this.store.size>0&&(this.store.size>=this.maxEntries||this.totalBytes+J>this.maxTotalBytes)){let W=this.store.keys().next().value;if(W===void 0)break;this.deleteKey(W)}this.store.set($,{value:Q,storedAt:Y,bytes:J,connectionId:Z}),this.totalBytes+=J;let G=this.byConnection.get(Z);if(!G)G=new Set,this.byConnection.set(Z,G);G.add($)}async fetch($){let{type:Z,connectionId:Q,scope:Y,params:X,fetchLive:J,shouldCache:G,onRevalidation:W}=$,K=this.config[Z],H=this.key(Z,Q,Y,X),F=this.now(),U=this.store.get(H),N=U?F-U.storedAt:1/0;if(!U||N>K.maxStaleMs){zK0.add(1,{type:Z,outcome:"miss"}),pc(U?"EXPIRED":"MISS",H);let B=await J();if(G?.(B)??!0)this.storeSet(H,Q,B,this.now(),K.maxValueBytes);else pc("NOT-CACHED (shouldCache=false)",H);return B}if(this.store.delete(H),this.store.set(H,U),N>K.revalidateAfterMs&&!this.revalidating.has(H)){zK0.add(1,{type:Z,outcome:"stale"}),pc("STALE \u2192 serve + revalidate",H,`age=${N}ms`),this.revalidating.add(H);let B=J().then((O)=>{if(G?.(O)??!0)this.storeSet(H,Q,O,this.now(),K.maxValueBytes)}).catch(()=>{zK0.add(1,{type:Z,outcome:"error"})}).finally(()=>this.revalidating.delete(H));W?.(B)}else zK0.add(1,{type:Z,outcome:"hit"}),pc("HIT",H,`age=${N}ms`);return U.value}invalidate($){let Z=this.byConnection.get($);if(!Z)return;for(let Q of[...Z])this.deleteKey(Q)}}function $$1(){return E0().mcpCacheEnabled}function TK0(){return $$1()?e11:null}var zK0,PK0=1024,PN$,oI4,rI4=2000,sI4,aI4,e11;var re=D(()=>{k6();X$();zK0=e1.createCounter("mcp_read_cache.fetches",{description:"MCP read cache outcomes (hit, stale, miss, error)",unit:"{fetches}"}),PN$=PK0*PK0,oI4={"tools/call":{revalidateAfterMs:30000,maxStaleMs:300000,maxValueBytes:512*PK0},"resources/read":{revalidateAfterMs:60000,maxStaleMs:300000,maxValueBytes:4*PN$},"prompts/get":{revalidateAfterMs:60000,maxStaleMs:300000,maxValueBytes:512*PK0}},sI4=256*PN$,aI4=typeof process<"u"&&!!process.env?.MCP_CACHE_DEBUG;e11=new AK0;e1.createObservableGauge("mcp_read_cache.entries",{description:"Current entry count in the per-pod MCP read cache",unit:"{entries}"}).addCallback(($)=>$.observe(e11.stats().entries));e1.createObservableGauge("mcp_read_cache.bytes",{description:"Approximate total bytes held in the per-pod MCP read cache",unit:"By"}).addCallback(($)=>$.observe(e11.stats().bytes))});function qN$(){if(AN$)return;AN$=!0;try{TN$=e1.createCounter("virtual_mcp.aggregate_cache.lookups",{description:"Virtual MCP aggregate tool-list cache lookups by outcome (hit, miss, expired)",unit:"{lookups}"}),RN$=e1.createCounter("virtual_mcp.aggregate_cache.evictions",{description:"Virtual MCP aggregate tool-list cache entries dropped, by reason (capacity, invalidated, failed)",unit:"{entries}"}),e1.createObservableGauge("virtual_mcp.aggregate_cache.entries",{description:"Live entries in this pod's Virtual MCP aggregate tool-list cache",unit:"{entries}"}).addCallback(($)=>$.observe(AW.size))}catch($){console.error("[aggregate-cache] failed to register metrics:",$)}}function Z$1($){qN$(),TN$?.add(1,{outcome:$})}function Q$1($,Z=1){if(Z<=0)return;qN$(),RN$?.add(Z,{reason:$})}function MN$($){return[$.virtualMcpId??"",$.userId??"",$.superUser?"su":"",[...$.connectionIds].sort().join(",")].join("|")}function IN$($){let Z=AW.get($);if(!Z)return Z$1("miss"),null;if(Date.now()-Z.at>=$V4)return AW.delete($),Z$1("expired"),null;return Z$1("hit"),Z.value}function VN$($,Z,Q){let Y=Q.catch((J)=>{if(AW.get($)?.value===Y)AW.delete($),Q$1("failed");throw J});AW.delete($),AW.set($,{at:Date.now(),deps:Z,value:Y});let X=0;while(AW.size>ZV4){let J=AW.keys().next();if(J.done)break;AW.delete(J.value),X++}return Q$1("capacity",X),Y}function kN$($){let Z=0;for(let[Q,Y]of AW)if(Y.deps.includes($))AW.delete(Q),Z++;Q$1("invalidated",Z)}var $V4=30000,ZV4=500,AW,TN$=null,RN$=null,AN$=!1;var Y$1=D(()=>{k6();AW=new Map});function _N$($){TK0()?.invalidate($),jU$($),kN$($)}function nc($){_N$($);let Z=X$1?.();if(!Z)return;try{Z.publish(SN$,QV4.encode(JSON.stringify({connectionId:$,originId:CN$})))}catch(Q){console.warn("[McpCacheInvalidation] publish failed (non-critical):",Q)}}function vN$($){if(X$1=$,se)return;let Z=$();if(!Z)return;se=Z.subscribe(SN$),(async()=>{for await(let Q of se)try{let Y=JSON.parse(YV4.decode(Q.data));if(Y.originId===CN$)continue;_N$(Y.connectionId)}catch{}})().catch(console.error)}function bN$(){se?.unsubscribe(),se=null,X$1=void 0}var SN$="studio.mcp-cache.invalidate",CN$,QV4,YV4,X$1,se=null;var ae=D(()=>{re();SJ();Y$1();CN$=crypto.randomUUID(),QV4=new TextEncoder,YV4=new TextDecoder});import{z as J$1}from"zod";function JV4($){let Z={...$};for(let Q of XV4)delete Z[Q];return Z}function GV4($,Z){return $.connection_url!==void 0?$.connection_url:Z}function HV4($,Z){return $.length===Z.length&&$.every((Q,Y)=>Q===Z[Y])}var XV4,WV4,KV4,G$1;var xN$=D(()=>{ZK0();HH();k0();X$();SJ();ae();m11();oG0();BF();XV4=["id","organization_id","created_by","created_at"];WV4=J$1.object({id:J$1.string().describe("ID of the connection to update"),data:QY0.describe("Partial connection data to update")}),KV4=J$1.object({item:HY.describe("The updated connection entity")});G$1=c({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update a connection's configuration. Re-fetches tools from the server on URL change.",annotations:{title:"Update Connection",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:WV4,outputSchema:KV4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=p0(Z);if(!Y)throw Error("User ID required to update connection");let{id:X}=$,J=JV4($.data),G=J.configuration_state!==void 0||J.configuration_scopes!==void 0,W=await Z.storage.connections.findById(X);if(!W||W.organization_id!==Q.id)throw Error("Connection not found in organization");let K=J.connection_type??W.connection_type,H=GV4(J,W.connection_url);if(K==="VIRTUAL"){let y=yh(H);if(!y)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let g=await Z.storage.virtualMcps.findById(y);if(!g)throw Error(`Virtual MCP not found: ${y}`);if(g.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");H=gh(y)}let F=J.configuration_state??W.configuration_state??{},U=J.configuration_scopes??W.configuration_scopes??[];if(G){if(J.configuration_state!==void 0)F=J.configuration_state??{};else if(F===null||F===void 0)F={};if(J.configuration_scopes!==void 0)U=J.configuration_scopes??[];if(U.length>0){let y=F;ye(y,U,Q.id),await he(y,U,Q.id,Z)}}if(K==="STDIO"&&!E0().localMode)throw Error("STDIO connections are only available in local mode (--local-mode).");let N=J.connection_token??W.connection_token;if(!N)try{let g=await new w9(Z.db,Z.vault).get(X);if(g?.accessToken)N=g.accessToken}catch{}let B=await ml({id:W.id,title:J.title??W.title,connection_type:K,connection_url:H,connection_token:N,connection_headers:J.connection_headers??W.connection_headers}).catch(()=>null),O=B?.tools?.length?B.tools:null,L=!1;if(J.configuration_scopes===void 0&&B?.scopes?.length)L=!HV4(U,B.scopes),U=B.scopes;if(ye(F,U,Q.id),L&&U.length>0)await he(F,U,Q.id,Z);let w=G||L,j=w?ge(F,U):[],E=w?ge(W.configuration_state??{},W.configuration_scopes??[]):[],z=W.configuration_state,T=z==null||Object.keys(z).length===0,A,P,q=async()=>{try{await Z.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:Q.id,subjectConnectionId:X,createdBy:Y,grants:E})}catch(y){console.error("Failed to restore credential grants after credential vault mutation failed",y)}},x={...J,connection_url:H,tools:null,configuration_state:F,configuration_scopes:U,updated_by:Y},_={...W,...x};if(w)try{if(await Z.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:Q.id,subjectConnectionId:X,createdBy:Y,grants:j}),j.length>0){if(!await Z.storage.connectionCredentialVault.findActiveWorkloadToken({organizationId:Q.id,subjectConnectionId:X})){let{plaintextToken:g,record:l}=await Z.storage.connectionCredentialVault.createOrRotateWorkloadToken({organizationId:Q.id,subjectConnectionId:X});P=l.id,A={baseUrl:Z.baseUrl,org:Q.slug??Q.id,subjectConnectionId:X,token:g}}}}catch(y){if(P)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:Q.id,subjectConnectionId:X,tokenId:P});throw await q(),y}if(w&&F&&U)try{await uc(Z,_,{state:F,scopes:U,firstRun:T,...A?{vault:A}:{}})}catch(y){if(console.error("Failed to invoke ON_MCP_CONFIGURATION callback",y),P)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:Q.id,subjectConnectionId:X,tokenId:P});if(j.length>0)throw await q(),y}let V;try{V=await Z.storage.connections.update(X,x)}catch(y){if(w){if(P)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:Q.id,subjectConnectionId:X,tokenId:P});await q()}throw y}if(O)LZ()?.set("tools",X,O).catch(()=>{});return nc(X),{item:V}}})});import{z as FV4}from"zod";var UV4,W$1;var fN$=D(()=>{CJ();p8();G6();YK0();k0();SJ();ae();TW();ic();BF();UV4=pe.extend({force:FV4.boolean().optional().describe("If true, removes this connection from all agents that reference it before deleting")}),W$1=c({name:"COLLECTION_CONNECTIONS_DELETE",description:"Permanently delete a connection. Set force=true to auto-remove from referencing Virtual MCPs.",annotations:{title:"Delete Connection",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:UV4,outputSchema:ne(HY),handler:async($,Z)=>{n(Z);let Q=J0(Z);if(await Z.access.check(),PW()&&wK0($.id,Q.id))throw Error("This connection is a fixed system connection and cannot be deleted");let Y=await Z.storage.connections.findById($.id);if(!Y)throw Error(`Connection not found: ${$.id}`);if(Y.organization_id!==Q.id)throw Error("Connection not found in organization");let X=Y.metadata;if(X?.isFixed===!0)throw Error("This connection is a fixed system connection and cannot be deleted");let J=await Z.storage.virtualMcps.listByConnectionId(Q.id,$.id);if(J.length>0)if($.force)await Z.storage.virtualMcps.removeConnectionReferences($.id);else throw Error(JSON.stringify({code:"CONNECTION_IN_USE",agentNames:J.map((K)=>K.title)}));let G=await Z.storage.automations.listActiveByEventTriggerConnectionId($.id);if(G.length>0)if($.force)await Promise.all(G.map((K)=>Z.storage.automations.deactivateAutomation(K.id)));else throw Error(JSON.stringify({code:"CONNECTION_IN_USE_BY_AUTOMATION",automationNames:G.map((K)=>K.name)}));if(await Z.storage.connections.delete($.id),$.id===Y4.REPORTS(Q.id)&&typeof X?.siteUrl==="string")lc({siteUrl:X.siteUrl,orgId:Q.id,cause:"connection_deleted"});yN$($.id),await Z.storage.triggerCallbackTokens.deleteByConnection($.id,Q.id),LZ()?.invalidate($.id).catch(()=>{}),nc($.id);let W=p0(Z);if(W)f1.capture({distinctId:W,event:"connection_deleted",groups:{organization:Q.id},properties:{connection_id:Y.id,connection_type:Y.connection_type,app_name:Y.app_name??null,organization_id:Q.id,forced:$.force??!1}});return{item:Y}}})});import{z as tc}from"zod";var K$1;var gN$=D(()=>{k0();K$1=c({name:"CONNECTION_TEST",description:"Test connection health and latency",annotations:{title:"Test Connection",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:tc.object({id:tc.string()}),outputSchema:tc.object({id:tc.string(),healthy:tc.boolean(),latencyMs:tc.number()}),handler:async($,Z)=>{let Q=J0(Z);await Z.access.check();let Y=await Z.storage.connections.findById($.id);if(!Y||Y.organization_id!==Q.id)throw Error("Connection not found");let X=await Z.storage.connections.testConnection($.id);return{id:$.id,...X}}})});var hN$=D(()=>{IU$();r11();s11();xN$();fN$();gN$()});import{sql as z6}from"kysely";import{z as UU}from"zod";function uN$($){if($===null||$===void 0)return"NULL";if(typeof $==="number")return String($);if(typeof $==="boolean")return $?"TRUE":"FALSE";if(typeof $==="string")return`'${$.replace(/'/g,"''")}'`;if($ instanceof Date)return`'${$.toISOString()}'`;return`'${JSON.stringify($).replace(/'/g,"''")}'`}function DV4($,Z){let Q="",Y=0,X=!1,J=!1,G=!1,W=null;for(let K=0;K<$.length;K++){let H=$[K];if(!X&&!J&&W===null){if($.startsWith("--",K)){let F=$.indexOf(`
|
|
992
|
+
`);for(let z of E.warnings)K.push({requestId:j.id,warning:z});for(let z of(Q=j.options.tools)!=null?Q:[])if(z.type==="provider"&&!dT4.has(z.id))K.push({requestId:j.id,warning:{type:"unsupported",feature:`batch result conversion for tool "${z.name}"`,details:"OpenAI may return output for this tool that AI SDK text batches cannot currently convert."}})}let U="batch.jsonl",N=new Blob(W,{type:"application/jsonl"});W.length=0;let B=new FormData;B.append("file",N,U),B.append("purpose","batch"),B.append("expires_after[anchor]","created_at"),B.append("expires_after[seconds]",String(F));let{value:O}=await sl({url:this.getUrl("/files"),headers:M1((X=(Y=this.options.config).headers)==null?void 0:X.call(Y),$.headers),body:{content:B,values:{purpose:"batch","expires_after[anchor]":"created_at","expires_after[seconds]":String(F),file:{name:U,type:N.type,size:N.size}}},failedResponseHandler:_9,successfulResponseHandler:A1(fW0),abortSignal:$.abortSignal,fetch:this.options.config.fetch}),{value:L}=await a1({url:this.getUrl("/batches"),headers:M1((G=(J=this.options.config).headers)==null?void 0:G.call(J),$.headers),body:{input_file_id:O.id,endpoint:VH$,completion_window:"24h"},failedResponseHandler:_9,successfulResponseHandler:A1(i01),abortSignal:$.abortSignal,fetch:this.options.config.fetch}),w=H11(O.expires_at);return{batchId:L.id,...xW0(L),providerMetadata:{openai:{inputFileId:O.id,...w!=null?{inputFileExpiresAt:w}:{}}},warnings:K}}async parseBatchProviderOptions($){let Z=this.options.config.provider.includes("azure")?"azure":"openai",Q=await C$({provider:Z,providerOptions:$,schema:kH$});if(Q==null&&Z!=="openai")Q=await C$({provider:"openai",providerOptions:$,schema:kH$});return Q}async doGetBatchStatus($){let Z=await this.retrieveBatch($);return xW0(Z)}async doCancelBatch($){var Z,Q;return await a1({url:this.getUrl(`/batches/${encodeURIComponent($.batchId)}/cancel`),headers:M1((Q=(Z=this.options.config).headers)==null?void 0:Q.call(Z),$.headers),body:{},failedResponseHandler:_9,successfulResponseHandler:A1(i01),abortSignal:$.abortSignal,fetch:this.options.config.fetch}),{}}async doListBatches($){var Z,Q;let Y=new URL(this.getUrl("/batches"));if($.limit!=null)Y.searchParams.set("limit",String($.limit));if($.cursor!=null)Y.searchParams.set("after",$.cursor);let{value:X}=await v6({url:Y.toString(),headers:M1((Q=(Z=this.options.config).headers)==null?void 0:Q.call(Z),$.headers),failedResponseHandler:_9,successfulResponseHandler:A1(lT4),abortSignal:$.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});return{batches:X.data.map((J)=>({batchId:J.id,...xW0(J)})),...X.has_more&&X.last_id!=null?{nextCursor:X.last_id}:{}}}async doGetBatchResults($){let Z=await this.retrieveBatch($),Q=xW0(Z);if(Q.status==="pending")throw new g8({argument:"batchId",message:`OpenAI batch "${$.batchId}" is not complete.`});let Y=[Z.output_file_id,Z.error_file_id].filter((J)=>J!=null);if(Q.status==="completed"&&Y.length===0)throw new D9({data:Z,message:`OpenAI batch "${$.batchId}" completed without batch output.`});let X=this.iterateBatchResults({fileIds:Y,options:$});return hF(X)}async retrieveBatch($){var Z,Q;let{value:Y}=await v6({url:this.getUrl(`/batches/${encodeURIComponent($.batchId)}`),headers:M1((Q=(Z=this.options.config).headers)==null?void 0:Q.call(Z),$.headers),failedResponseHandler:_9,successfulResponseHandler:A1(i01),abortSignal:$.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});return Y}async*iterateBatchResults({fileIds:$,options:Z}){var Q,Y;for(let X of $){let{value:J}=await v6({url:this.getUrl(`/files/${encodeURIComponent(X)}/content`),headers:M1((Y=(Q=this.options.config).headers)==null?void 0:Y.call(Q),Z.headers),failedResponseHandler:_9,successfulResponseHandler:Iw(uT4),abortSignal:Z.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});for await(let G of J)yield await this.convertResultLine(G)}}async convertResultLine($){if($.error!=null){let Q={message:$.error.message,code:$.error.code};if($.error.code==="batch_cancelled")return{type:"text",id:$.custom_id,status:"cancelled",error:Q};if($.error.code==="batch_expired")return{type:"text",id:$.custom_id,status:"expired",error:Q};return{type:"text",id:$.custom_id,status:"failed",error:Q}}if($.response==null)return{type:"text",id:$.custom_id,status:"failed",error:{message:"OpenAI returned a batch result without a response or error.",code:"invalid_batch_result"}};if($.response.status_code<200||$.response.status_code>=300)return{type:"text",id:$.custom_id,status:"failed",error:await nT4({body:$.response.body,statusCode:$.response.status_code})};let Z=await tT4($.response.body);if(!Z.success)return{type:"text",id:$.custom_id,status:"failed",error:Z.error};return{type:"text",id:$.custom_id,status:"succeeded",result:Z.result}}async prepareRequest($){let{args:Z,warnings:Q}=await eH$.prepareRequest({modelId:$.modelId,config:this.options.config,options:$.options});return{body:Z,warnings:Q}}getUrl($){return this.options.config.url({path:$,modelId:""})}},dT4,oT4,rT4,SH$,U11,sT4,CH$,_H$,gW0,p01,ZF$,aT4,eT4,YR4,vH$=class{constructor($,Z){this.modelId=$,this.config=Z,this.specificationVersion="v4",this.capabilities={conversation:"continuous",transports:["websocket","webrtc"],connections:["server-websocket","webrtc"],startup:"session-start",finalization:"session-close"}}get provider(){return this.config.provider}getWebRTCConfig(){return{dataChannelLabel:"oai-events"}}getServerWebSocketConfig(){let $=new URL(`${this.config.baseURL}/live/sessions`);$.protocol=$.protocol==="http:"?"ws:":"wss:";let Z={};for(let[Q,Y]of Object.entries(this.config.headers()))if(Y!==void 0)Z[Q]=Y;return{url:$.toString(),headers:Z}}async doCreateWebRTCSession({sdp:$,sessionConfig:Z={},abortSignal:Q}){let Y=F11(Z,this.modelId,"webrtc"),{value:X}=await a1({url:`${this.config.baseURL}/live/sessions`,headers:this.config.headers(),body:{session:Y,transport:{type:"webrtc",sdp:r2.string().min(1).parse($)}},failedResponseHandler:_9,successfulResponseHandler:A1(YR4),abortSignal:Q,fetch:this.config.fetch});return{sessionId:X.session.id,sdp:X.transport.sdp}}parseServerEvent($){return QF$($)}createServerEventParser(){return $R4()}serializeClientEvent($){return QR4($,this.modelId)}buildSessionConfig($){return F11($,this.modelId)}},GR4=class{constructor($,Z){this.specificationVersion="v4",this.modelId=$,this.provider=Z.provider,this.config=Z}async doCreateClientSecret($){var Z;let Q=(Z=this.config.fetch)!=null?Z:fetch,Y=`${this.config.baseURL}/realtime/client_secrets`,X=$.sessionConfig!=null?N11($.sessionConfig,this.modelId):{type:"realtime",model:this.modelId},J=await Q(Y,{method:"POST",headers:{...this.config.headers(),"Content-Type":"application/json"},body:JSON.stringify({session:X,...$.expiresAfterSeconds!=null?{expires_after:{anchor:"created_at",seconds:$.expiresAfterSeconds}}:{}})});if(!J.ok){let W=await J.text();throw Error(`OpenAI realtime client secret request failed: ${J.status} ${W}`)}let G=await J.json();return{token:G.value,url:`wss://${new URL(this.config.baseURL).host}/v1/realtime?model=${encodeURIComponent(this.modelId)}`,expiresAt:G.expires_at}}getWebSocketConfig($){return{url:$.url,protocols:["realtime",`openai-insecure-api-key.${$.token}`]}}parseServerEvent($){return XR4($)}serializeClientEvent($){return JR4($,this.modelId)}buildSessionConfig($){return N11($,this.modelId)}},WR4,FR4,UR4,NR4,bH$,fH$,BR4,jR4,ER4,RR4,Ir5,qR4=class{constructor($){this.config=$,this.specificationVersion="v4"}get provider(){return this.config.provider}async uploadSkill($){let Z=[];if($.displayTitle!=null)Z.push({type:"unsupported",feature:"displayTitle"});let Q=new FormData;for(let X of $.files){let J=uF(X.data);Q.append("files[]",new Blob([J]),X.path)}let{value:Y}=await KW({url:this.config.url({path:"/skills"}),headers:M1(this.config.headers()),formData:Q,failedResponseHandler:_9,successfulResponseHandler:A1(RR4),fetch:this.config.fetch});return{providerReference:{openai:Y.id},...Y.name!=null?{name:Y.name}:{},...Y.description!=null?{description:Y.description}:{},...Y.latest_version!=null?{latestVersion:Y.latest_version}:{},providerMetadata:{openai:{...Y.default_version!=null?{defaultVersion:Y.default_version}:{},...Y.created_at!=null?{createdAt:Y.created_at}:{},...Y.updated_at!=null?{updatedAt:Y.updated_at}:{}}},warnings:Z}}},MR4="4.0.71",Vr5;var uW0=D(()=>{z0();T30();j1();z0();z0();j1();z0();z0();j1();z0();z0();z0();z0();j1();j1();z0();z0();j1();z0();z0();z0();j1();z0();z0();z0();j1();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();z0();j1();z0();z0();z0();j1();z0();j1();z0();j1();z0();z0();j1();z0();j1();z0();j1();j1();z0();z0();j1();z0();z0();z0();j1();z0();z0();z0();z0();hW0=iw.object({error:iw.object({message:iw.string(),type:iw.string().nullish(),param:iw.any().nullish(),code:iw.union([iw.string(),iw.number()]).nullish()})}),_9=_4({errorSchema:hW0,errorToMessage:($)=>$.error.message});g24=W0(()=>s(T1.object({id:T1.string().nullish(),created:T1.number().nullish(),model:T1.string().nullish(),choices:T1.array(T1.object({message:T1.object({role:T1.literal("assistant").nullish(),content:T1.string().nullish(),tool_calls:T1.array(T1.object({id:T1.string().nullish(),type:T1.literal("function"),function:T1.object({name:T1.string(),arguments:T1.string()})})).nullish(),annotations:T1.array(T1.object({type:T1.literal("url_citation"),url_citation:T1.object({start_index:T1.number(),end_index:T1.number(),url:T1.string(),title:T1.string()})})).nullish()}),index:T1.number(),logprobs:T1.object({content:T1.array(T1.object({token:T1.string(),logprob:T1.number(),top_logprobs:T1.array(T1.object({token:T1.string(),logprob:T1.number()}))})).nullish()}).nullish(),finish_reason:T1.string().nullish()})),usage:T1.object({prompt_tokens:T1.number().nullish(),completion_tokens:T1.number().nullish(),total_tokens:T1.number().nullish(),prompt_tokens_details:T1.object({cached_tokens:T1.number().nullish(),cache_write_tokens:T1.number().nullish()}).nullish(),completion_tokens_details:T1.object({reasoning_tokens:T1.number().nullish(),accepted_prediction_tokens:T1.number().nullish(),rejected_prediction_tokens:T1.number().nullish()}).nullish()}).nullish()}))),h24=W0(()=>s(T1.union([T1.object({id:T1.string().nullish(),created:T1.number().nullish(),model:T1.string().nullish(),choices:T1.array(T1.object({delta:T1.object({role:T1.enum(["assistant"]).nullish(),content:T1.string().nullish(),tool_calls:T1.array(T1.object({index:T1.number(),id:T1.string().nullish(),type:T1.literal("function").nullish(),function:T1.object({name:T1.string().nullish(),arguments:T1.string().nullish()})})).nullish(),annotations:T1.array(T1.object({type:T1.literal("url_citation"),url_citation:T1.object({start_index:T1.number(),end_index:T1.number(),url:T1.string(),title:T1.string()})})).nullish()}).nullish(),logprobs:T1.object({content:T1.array(T1.object({token:T1.string(),logprob:T1.number(),top_logprobs:T1.array(T1.object({token:T1.string(),logprob:T1.number()}))})).nullish()}).nullish(),finish_reason:T1.string().nullish(),index:T1.number()})),usage:T1.object({prompt_tokens:T1.number().nullish(),completion_tokens:T1.number().nullish(),total_tokens:T1.number().nullish(),prompt_tokens_details:T1.object({cached_tokens:T1.number().nullish(),cache_write_tokens:T1.number().nullish()}).nullish(),completion_tokens_details:T1.object({reasoning_tokens:T1.number().nullish(),accepted_prediction_tokens:T1.number().nullish(),rejected_prediction_tokens:T1.number().nullish()}).nullish()}).nullish()}),hW0]))),u24=W0(()=>s(B5.object({logitBias:B5.record(B5.coerce.number(),B5.number()).optional(),logprobs:B5.union([B5.boolean(),B5.number()]).optional(),parallelToolCalls:B5.boolean().optional(),user:B5.string().optional(),reasoningEffort:B5.enum(["none","minimal","low","medium","high","xhigh","max"]).optional(),maxCompletionTokens:B5.number().optional(),store:B5.boolean().optional(),metadata:B5.record(B5.string().max(64),B5.string().max(512)).optional(),prediction:B5.record(B5.string(),B5.any()).optional(),serviceTier:B5.enum(["auto","flex","priority","fast","ultrafast","default"]).optional(),strictJsonSchema:B5.boolean().optional(),textVerbosity:B5.enum(["low","medium","high"]).optional(),promptCacheKey:B5.string().optional(),promptCacheOptions:B5.object({mode:B5.enum(["implicit","explicit"]).optional(),ttl:B5.literal("30m").optional()}).optional(),promptCacheRetention:B5.enum(["in_memory","24h"]).optional(),safetyIdentifier:B5.string().optional(),systemMessageMode:B5.enum(["system","developer","remove"]).optional(),forceReasoning:B5.boolean().optional()})));c24=class ${constructor(Z,Q){this.specificationVersion="v4",this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=Z,this.config=Q}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get provider(){return this.config.provider}async getArgs({prompt:Z,maxOutputTokens:Q,temperature:Y,topP:X,topK:J,frequencyPenalty:G,presencePenalty:W,stopSequences:K,responseFormat:H,seed:F,tools:U,toolChoice:N,reasoning:B,providerOptions:O}){var L,w,j,E,z,T;let A=[],P=(L=await C$({provider:"openai",providerOptions:O,schema:u24}))!=null?L:{},q=yH$(this.modelId),x=(w=P.reasoningEffort)!=null?w:_B(B)?B:void 0;if(x!=null&&q.supportedReasoningEfforts!=null&&!q.supportedReasoningEfforts.includes(x))A.push({type:"unsupported",feature:"reasoningEffort",details:`${this.modelId} only supports the following reasoning efforts: ${q.supportedReasoningEfforts.join(", ")}`}),x=void 0;let _=(j=P.forceReasoning)!=null?j:q.isReasoningModel;if(J!=null)A.push({type:"unsupported",feature:"topK"});let{messages:V,warnings:y}=y24({prompt:Z,systemMessageMode:(E=P.systemMessageMode)!=null?E:_?"developer":q.systemMessageMode});A.push(...y);let g=(z=P.strictJsonSchema)!=null?z:!0,l=(H==null?void 0:H.type)==="json"&&H.schema!=null?Re(H.schema):void 0;if(l!=null)A.push(...l.warnings);let i={model:this.modelId,logit_bias:P.logitBias,logprobs:P.logprobs===!0||typeof P.logprobs==="number"?!0:void 0,top_logprobs:typeof P.logprobs==="number"?P.logprobs:typeof P.logprobs==="boolean"?P.logprobs?0:void 0:void 0,user:P.user,parallel_tool_calls:P.parallelToolCalls,max_tokens:Q,temperature:Y,top_p:X,frequency_penalty:G,presence_penalty:W,response_format:(H==null?void 0:H.type)==="json"?l!=null?{type:"json_schema",json_schema:{schema:l.schema,strict:g,name:(T=H.name)!=null?T:"response",description:H.description}}:{type:"json_object"}:void 0,stop:K,seed:F,verbosity:P.textVerbosity,max_completion_tokens:P.maxCompletionTokens,store:P.store,metadata:P.metadata,prediction:P.prediction,reasoning_effort:x,service_tier:P.serviceTier,prompt_cache_key:P.promptCacheKey,prompt_cache_options:P.promptCacheOptions,prompt_cache_retention:P.promptCacheRetention,safety_identifier:P.safetyIdentifier,messages:V};if(q.supportedReasoningEfforts!=null&&i.prompt_cache_retention!=null)i.prompt_cache_retention=void 0,A.push({type:"unsupported",feature:"promptCacheRetention",details:"promptCacheRetention is not supported by GPT-6 and later models; use promptCacheOptions instead"});if(_){if(x!=="none"||!q.supportsNonReasoningParameters){if(i.temperature!=null)i.temperature=void 0,A.push({type:"unsupported",feature:"temperature",details:"temperature is not supported for reasoning models"});if(i.top_p!=null)i.top_p=void 0,A.push({type:"unsupported",feature:"topP",details:"topP is not supported for reasoning models"});if(i.logprobs!=null)i.logprobs=void 0,A.push({type:"other",message:"logprobs is not supported for reasoning models"})}if(i.frequency_penalty!=null)i.frequency_penalty=void 0,A.push({type:"unsupported",feature:"frequencyPenalty",details:"frequencyPenalty is not supported for reasoning models"});if(i.presence_penalty!=null)i.presence_penalty=void 0,A.push({type:"unsupported",feature:"presencePenalty",details:"presencePenalty is not supported for reasoning models"});if(i.logit_bias!=null)i.logit_bias=void 0,A.push({type:"other",message:"logitBias is not supported for reasoning models"});if(i.top_logprobs!=null)i.top_logprobs=void 0,A.push({type:"other",message:"topLogprobs is not supported for reasoning models"});if(i.max_tokens!=null){if(i.max_completion_tokens==null)i.max_completion_tokens=i.max_tokens;i.max_tokens=void 0}}else if(this.modelId.startsWith("gpt-4o-search-preview")||this.modelId.startsWith("gpt-4o-mini-search-preview")){if(i.temperature!=null)i.temperature=void 0,A.push({type:"unsupported",feature:"temperature",details:"temperature is not supported for the search preview models and has been removed."})}if(P.serviceTier==="flex"&&!q.supportsFlexProcessing)A.push({type:"unsupported",feature:"serviceTier",details:"flex processing is only available for o3, o4-mini, and gpt-5 models"}),i.service_tier=void 0;if((P.serviceTier==="priority"||P.serviceTier==="fast")&&!q.supportsPriorityProcessing)A.push({type:"unsupported",feature:"serviceTier",details:"priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported"}),i.service_tier=void 0;let{tools:p,toolChoice:U0,toolWarnings:v0}=l24({tools:U,toolChoice:N});return{args:{...i,tools:p,tool_choice:U0},warnings:[...A,...v0]}}async doGenerate(Z){var Q,Y,X,J,G,W,K;let{args:H,warnings:F}=await this.getArgs(Z),{responseHeaders:U,value:N,rawValue:B}=await a1({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:M1((Y=(Q=this.config).headers)==null?void 0:Y.call(Q),Z.headers),body:H,failedResponseHandler:_9,successfulResponseHandler:A1(g24),abortSignal:Z.abortSignal,fetch:this.config.fetch}),O=N.choices[0];if(O==null)throw new D9({data:B,message:"Response did not contain any choices."});let L=[],w=O.message.content;if(w!=null&&w.length>0)L.push({type:"text",text:w});for(let z of(X=O.message.tool_calls)!=null?X:[])L.push({type:"tool-call",toolCallId:z.id||$4(),toolName:z.function.name,input:z.function.arguments});for(let z of(J=O.message.annotations)!=null?J:[])L.push({type:"source",sourceType:"url",id:$4(),url:z.url_citation.url,title:z.url_citation.title});let j=(G=N.usage)==null?void 0:G.completion_tokens_details,E={openai:{}};if((j==null?void 0:j.accepted_prediction_tokens)!=null)E.openai.acceptedPredictionTokens=j==null?void 0:j.accepted_prediction_tokens;if((j==null?void 0:j.rejected_prediction_tokens)!=null)E.openai.rejectedPredictionTokens=j==null?void 0:j.rejected_prediction_tokens;if(((W=O.logprobs)==null?void 0:W.content)!=null)E.openai.logprobs=O.logprobs.content;return{content:L,finishReason:{unified:GH$(O.finish_reason),raw:(K=O.finish_reason)!=null?K:void 0},usage:JH$(N.usage),request:{body:H},response:{...g01(N),headers:U,body:B},warnings:F,providerMetadata:E}}async doStream(Z){var Q,Y;let{args:X,warnings:J}=await this.getArgs(Z),G={...X,stream:!0,stream_options:{include_usage:!0}},W=this.config.url({path:"/chat/completions",modelId:this.modelId}),{responseHeaders:K,value:H}=await a1({url:W,headers:M1((Y=(Q=this.config).headers)==null?void 0:Y.call(Q),Z.headers),body:G,failedResponseHandler:_9,successfulResponseHandler:zY(h24),abortSignal:Z.abortSignal,fetch:this.config.fetch}),F=await B11({stream:H,getError:(E)=>("error"in E)?E.error:void 0,isOutputChunk:m24,url:W,requestBodyValues:G,responseHeaders:K}),U,N={unified:"other",raw:void 0},B=void 0,O=!1,L=!1,w={openai:{}};return{stream:F.pipeThrough(new TransformStream({start(E){U=new lJ$(E,{generateId:$4,typeValidation:"if-present"}),E.enqueue({type:"stream-start",warnings:J})},transform(E,z){var T,A,P,q,x,_;if(Z.includeRawChunks)z.enqueue({type:"raw",rawValue:E.rawValue});if(!E.success){N={unified:"error",raw:void 0},z.enqueue({type:"error",error:E.error});return}let V=E.value;if("error"in V){N={unified:"error",raw:void 0},z.enqueue({type:"error",error:(T=Te(V.error))!=null?T:V.error});return}if(!O){let l=g01(V);if(Object.values(l).some(Boolean))O=!0,z.enqueue({type:"response-metadata",...g01(V)})}if(V.usage!=null){if(B=V.usage,((A=V.usage.completion_tokens_details)==null?void 0:A.accepted_prediction_tokens)!=null)w.openai.acceptedPredictionTokens=(P=V.usage.completion_tokens_details)==null?void 0:P.accepted_prediction_tokens;if(((q=V.usage.completion_tokens_details)==null?void 0:q.rejected_prediction_tokens)!=null)w.openai.rejectedPredictionTokens=(x=V.usage.completion_tokens_details)==null?void 0:x.rejected_prediction_tokens}let y=V.choices[0];if((y==null?void 0:y.finish_reason)!=null)N={unified:GH$(y.finish_reason),raw:y.finish_reason};if(((_=y==null?void 0:y.logprobs)==null?void 0:_.content)!=null)w.openai.logprobs=y.logprobs.content;if((y==null?void 0:y.delta)==null)return;let g=y.delta;if(g.content!=null){if(!L)z.enqueue({type:"text-start",id:"0"}),L=!0;z.enqueue({type:"text-delta",id:"0",delta:g.content})}if(g.tool_calls!=null)for(let l of g.tool_calls)U.processDelta(l);if(g.annotations!=null)for(let l of g.annotations)z.enqueue({type:"source",sourceType:"url",id:$4(),url:l.url_citation.url,title:l.url_citation.title})},flush(E){if(L)E.enqueue({type:"text-end",id:"0"});U.flush(),E.enqueue({type:"finish",finishReason:N,usage:JH$(B),...w!=null?{providerMetadata:w}:{}})}})),request:{body:G},response:{headers:K}}}};i24=W0(()=>s(m8.object({id:m8.string().nullish(),created:m8.number().nullish(),model:m8.string().nullish(),choices:m8.array(m8.object({text:m8.string(),finish_reason:m8.string(),logprobs:m8.object({tokens:m8.array(m8.string()),token_logprobs:m8.array(m8.number()),top_logprobs:m8.array(m8.record(m8.string(),m8.number())).nullish()}).nullish()})),usage:m8.object({prompt_tokens:m8.number(),completion_tokens:m8.number(),total_tokens:m8.number()}).nullish()}))),p24=W0(()=>s(m8.union([m8.object({id:m8.string().nullish(),created:m8.number().nullish(),model:m8.string().nullish(),choices:m8.array(m8.object({text:m8.string(),finish_reason:m8.string().nullish(),index:m8.number(),logprobs:m8.object({tokens:m8.array(m8.string()),token_logprobs:m8.array(m8.number()),top_logprobs:m8.array(m8.record(m8.string(),m8.number())).nullish()}).nullish()})),usage:m8.object({prompt_tokens:m8.number(),completion_tokens:m8.number(),total_tokens:m8.number()}).nullish()}),hW0]))),HH$=W0(()=>s(XU.object({echo:XU.boolean().optional(),logitBias:XU.record(XU.string(),XU.number()).optional(),suffix:XU.string().optional(),user:XU.string().optional(),logprobs:XU.union([XU.boolean(),XU.number()]).optional()}))),n24=class ${constructor(Z,Q){this.specificationVersion="v4",this.supportedUrls={},this.modelId=Z,this.config=Q}get providerOptionsName(){return this.config.provider.split(".")[0].trim()}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get provider(){return this.config.provider}async getArgs({prompt:Z,maxOutputTokens:Q,temperature:Y,topP:X,topK:J,frequencyPenalty:G,presencePenalty:W,stopSequences:K,responseFormat:H,tools:F,toolChoice:U,seed:N,providerOptions:B}){let O=[],L={...await C$({provider:"openai",providerOptions:B,schema:HH$}),...await C$({provider:this.providerOptionsName,providerOptions:B,schema:HH$})};if(J!=null)O.push({type:"unsupported",feature:"topK"});if(F==null?void 0:F.length)O.push({type:"unsupported",feature:"tools"});if(U!=null)O.push({type:"unsupported",feature:"toolChoice"});if(H!=null&&H.type!=="text")O.push({type:"unsupported",feature:"responseFormat",details:"JSON response format is not supported."});let{prompt:w,stopSequences:j}=d24({prompt:Z}),E=[...j!=null?j:[],...K!=null?K:[]];return{args:{model:this.modelId,echo:L.echo,logit_bias:L.logitBias,logprobs:(L==null?void 0:L.logprobs)===!0?0:(L==null?void 0:L.logprobs)===!1?void 0:L==null?void 0:L.logprobs,suffix:L.suffix,user:L.user,max_tokens:Q,temperature:Y,top_p:X,frequency_penalty:G,presence_penalty:W,seed:N,prompt:w,stop:E.length>0?E:void 0},warnings:O}}async doGenerate(Z){var Q,Y,X;let{args:J,warnings:G}=await this.getArgs(Z),{responseHeaders:W,value:K,rawValue:H}=await a1({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:M1((Y=(Q=this.config).headers)==null?void 0:Y.call(Q),Z.headers),body:J,failedResponseHandler:_9,successfulResponseHandler:A1(i24),abortSignal:Z.abortSignal,fetch:this.config.fetch}),F=K.choices[0],U={openai:{}};if(F.logprobs!=null)U.openai.logprobs=F.logprobs;return{content:[{type:"text",text:F.text}],usage:WH$(K.usage),finishReason:{unified:KH$(F.finish_reason),raw:(X=F.finish_reason)!=null?X:void 0},request:{body:J},response:{...os(K),headers:W,body:H},providerMetadata:U,warnings:G}}async doStream(Z){var Q,Y;let{args:X,warnings:J}=await this.getArgs(Z),G={...X,stream:!0,stream_options:{include_usage:!0}},W=this.config.url({path:"/completions",modelId:this.modelId}),{responseHeaders:K,value:H}=await a1({url:W,headers:M1((Y=(Q=this.config).headers)==null?void 0:Y.call(Q),Z.headers),body:G,failedResponseHandler:_9,successfulResponseHandler:zY(p24),abortSignal:Z.abortSignal,fetch:this.config.fetch}),F=await B11({stream:H,getError:(w)=>("error"in w)?w.error:void 0,isOutputChunk:t24,url:W,requestBodyValues:G,responseHeaders:K}),U={unified:"other",raw:void 0},N={openai:{}},B=void 0,O=!0;return{stream:F.pipeThrough(new TransformStream({start(w){w.enqueue({type:"stream-start",warnings:J})},transform(w,j){var E;if(Z.includeRawChunks)j.enqueue({type:"raw",rawValue:w.rawValue});if(!w.success){U={unified:"error",raw:void 0},j.enqueue({type:"error",error:w.error});return}let z=w.value;if("error"in z){U={unified:"error",raw:void 0},j.enqueue({type:"error",error:(E=Te(z.error))!=null?E:z.error});return}if(O)O=!1,j.enqueue({type:"response-metadata",...os(z)}),j.enqueue({type:"text-start",id:"0"});if(z.usage!=null)B=z.usage;let T=z.choices[0];if((T==null?void 0:T.finish_reason)!=null)U={unified:KH$(T.finish_reason),raw:T.finish_reason};if((T==null?void 0:T.logprobs)!=null)N.openai.logprobs=T.logprobs;if((T==null?void 0:T.text)!=null&&T.text.length>0)j.enqueue({type:"text-delta",id:"0",delta:T.text})},flush(w){if(!O)w.enqueue({type:"text-end",id:"0"});w.enqueue({type:"finish",finishReason:U,providerMetadata:N,usage:WH$(B)})}})),request:{body:G},response:{headers:K}}}};o24=W0(()=>s(h01.object({dimensions:h01.number().optional(),user:h01.string().optional()}))),r24=W0(()=>s(t2.object({data:t2.array(t2.object({embedding:t2.array(t2.number())})),usage:t2.object({prompt_tokens:t2.number()}).nullish()}))),s24=class ${constructor(Z,Q){this.specificationVersion="v4",this.maxEmbeddingsPerCall=2048,this[FH$]=300000,this.supportsParallelCalls=!0,this.modelId=Z,this.config=Q}static[(FH$=RJ$,G4)](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get provider(){return this.config.provider}async doEmbed({values:Z,headers:Q,abortSignal:Y,providerOptions:X}){var J,G,W;if(Z.length>this.maxEmbeddingsPerCall)throw new K30({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:Z});let K=(J=await C$({provider:"openai",providerOptions:X,schema:o24}))!=null?J:{},{responseHeaders:H,value:F,rawValue:U}=await a1({url:this.config.url({path:"/embeddings",modelId:this.modelId}),headers:M1((W=(G=this.config).headers)==null?void 0:W.call(G),Q),body:{model:this.modelId,input:Z,encoding_format:"float",dimensions:K.dimensions,user:K.user},failedResponseHandler:_9,successfulResponseHandler:A1(r24),abortSignal:Y,fetch:this.config.fetch});return{warnings:[],embeddings:F.data.map((N)=>N.embedding),usage:F.usage?{tokens:F.usage.prompt_tokens}:void 0,response:{headers:H,body:U}}}},fW0=W0(()=>s(nG.object({id:nG.string(),object:nG.string().nullish(),bytes:nG.number().nullish(),created_at:nG.number().nullish(),filename:nG.string().nullish(),purpose:nG.string().nullish(),status:nG.string().nullish(),expires_at:nG.number().nullish()}))),a24=W0(()=>s(nG.object({id:nG.string(),object:nG.string().nullish(),deleted:nG.boolean()}))),e24=W0(()=>s(u01.object({purpose:u01.string().optional(),expiresAfter:u01.number().optional()})));UH$=W0(()=>s(yQ.object({created:yQ.number().nullish(),data:yQ.array(yQ.object({b64_json:yQ.string(),revised_prompt:yQ.string().nullish()})),background:yQ.string().nullish(),output_format:yQ.string().nullish(),size:yQ.string().nullish(),quality:yQ.string().nullish(),usage:yQ.object({input_tokens:yQ.number().nullish(),output_tokens:yQ.number().nullish(),total_tokens:yQ.number().nullish(),input_tokens_details:yQ.object({image_tokens:yQ.number().nullish(),text_tokens:yQ.number().nullish()}).nullish()}).nullish()}))),ZA4={"dall-e-3":1,"dall-e-2":10,"gpt-image-1":10,"gpt-image-1-mini":10,"gpt-image-1.5":10,"gpt-image-2":10,"gpt-image-2.5-flare":10,"gpt-image-2.5-flare-2026-09-08":10,"gpt-image-2.5-sunburst":10,"gpt-image-2.5-sunburst-2026-09-08":10,"chatgpt-image-latest":10},QA4=["chatgpt-image-","gpt-image-"];D11=dB.object({quality:dB.enum(["standard","hd","low","medium","high","xhigh","max","auto"]).optional(),background:dB.enum(["transparent","opaque","auto"]).optional(),outputFormat:dB.enum(["png","jpeg","webp"]).optional(),outputCompression:dB.number().int().min(0).max(100).optional(),user:dB.string().optional()}),Uo5=W0(()=>s(D11)),JA4=W0(()=>s(D11.extend({style:dB.enum(["vivid","natural"]).optional(),moderation:dB.enum(["auto","low"]).optional()}))),GA4=W0(()=>s(D11.extend({inputFidelity:dB.enum(["high","low"]).optional()}))),WA4=class ${constructor(Z,Q){this.modelId=Z,this.config=Q,this.specificationVersion="v4"}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get maxImagesPerCall(){return XA4(this.modelId)}get provider(){return this.config.provider}async doGenerate({prompt:Z,files:Q,mask:Y,n:X,size:J,aspectRatio:G,seed:W,providerOptions:K,headers:H,abortSignal:F}){var U,N,B,O,L,w,j,E,z,T,A,P,q,x,_;let V=[];if(G!=null)V.push({type:"unsupported",feature:"aspectRatio",details:"This model does not support aspect ratio. Use `size` instead."});if(W!=null)V.push({type:"unsupported",feature:"seed"});let y=(B=(N=(U=this.config._internal)==null?void 0:U.currentDate)==null?void 0:N.call(U))!=null?B:new Date;if(Q!=null){let p=(O=await C$({provider:"openai",providerOptions:K,schema:GA4}))!=null?O:{},{value:U0,responseHeaders:v0}=await KW({url:this.config.url({path:"/images/edits",modelId:this.modelId}),headers:M1((w=(L=this.config).headers)==null?void 0:w.call(L),H),formData:BJ$({model:this.modelId,prompt:Z,image:await Promise.all(Q.map((G0)=>G0.type==="file"?new Blob([G0.data instanceof Uint8Array?new Blob([G0.data],{type:G0.mediaType}):new Blob([h9(G0.data)],{type:G0.mediaType})],{type:G0.mediaType}):es(G0.url,{abortSignal:F}))),mask:Y!=null?await KA4(Y,F):void 0,n:X,size:J,quality:p.quality,background:p.background,output_format:p.outputFormat,output_compression:p.outputCompression,input_fidelity:p.inputFidelity,user:p.user}),failedResponseHandler:_9,successfulResponseHandler:A1(UH$),abortSignal:F,fetch:this.config.fetch});return{images:U0.data.map((G0)=>G0.b64_json),warnings:V,usage:U0.usage!=null?{inputTokens:(j=U0.usage.input_tokens)!=null?j:void 0,outputTokens:(E=U0.usage.output_tokens)!=null?E:void 0,totalTokens:(z=U0.usage.total_tokens)!=null?z:void 0}:void 0,response:{timestamp:y,modelId:this.modelId,headers:v0},providerMetadata:{openai:{images:U0.data.map((G0,N0)=>{var o,$0,Z0,r,Y0,d0;return{...G0.revised_prompt?{revisedPrompt:G0.revised_prompt}:{},created:(o=U0.created)!=null?o:void 0,size:($0=U0.size)!=null?$0:void 0,quality:(Z0=U0.quality)!=null?Z0:void 0,background:(r=U0.background)!=null?r:void 0,outputFormat:(Y0=U0.output_format)!=null?Y0:void 0,...NH$((d0=U0.usage)==null?void 0:d0.input_tokens_details,N0,U0.data.length)}})}}}}let g=(T=await C$({provider:"openai",providerOptions:K,schema:JA4}))!=null?T:{},{value:l,responseHeaders:i}=await a1({url:this.config.url({path:"/images/generations",modelId:this.modelId}),headers:M1((P=(A=this.config).headers)==null?void 0:P.call(A),H),body:{model:this.modelId,prompt:Z,n:X,size:J,quality:g.quality,style:g.style,background:g.background,moderation:g.moderation,output_format:g.outputFormat,output_compression:g.outputCompression,user:g.user,...!YA4(this.modelId)?{response_format:"b64_json"}:{}},failedResponseHandler:_9,successfulResponseHandler:A1(UH$),abortSignal:F,fetch:this.config.fetch});return{images:l.data.map((p)=>p.b64_json),warnings:V,usage:l.usage!=null?{inputTokens:(q=l.usage.input_tokens)!=null?q:void 0,outputTokens:(x=l.usage.output_tokens)!=null?x:void 0,totalTokens:(_=l.usage.total_tokens)!=null?_:void 0}:void 0,response:{timestamp:y,modelId:this.modelId,headers:i},providerMetadata:{openai:{images:l.data.map((p,U0)=>{var v0,G0,N0,o,$0,Z0;return{...p.revised_prompt?{revisedPrompt:p.revised_prompt}:{},created:(v0=l.created)!=null?v0:void 0,size:(G0=l.size)!=null?G0:void 0,quality:(N0=l.quality)!=null?N0:void 0,background:(o=l.background)!=null?o:void 0,outputFormat:($0=l.output_format)!=null?$0:void 0,...NH$((Z0=l.usage)==null?void 0:Z0.input_tokens_details,U0,l.data.length)}})}}}}};gH$=W0(()=>s(e7.object({callId:e7.string(),operation:e7.discriminatedUnion("type",[e7.object({type:e7.literal("create_file"),path:e7.string(),diff:e7.string()}),e7.object({type:e7.literal("delete_file"),path:e7.string()}),e7.object({type:e7.literal("update_file"),path:e7.string(),diff:e7.string()})])}))),hH$=W0(()=>s(e7.object({status:e7.enum(["completed","failed"]),output:e7.string().optional()}))),Do5=W0(()=>s(e7.object({}))),HA4=iF({id:"openai.apply_patch",inputSchema:gH$,outputSchema:hH$}),FA4=HA4,UA4=W0(()=>s($Q.object({code:$Q.string().nullish(),containerId:$Q.string()}))),NA4=W0(()=>s($Q.object({outputs:$Q.array($Q.discriminatedUnion("type",[$Q.object({type:$Q.literal("logs"),logs:$Q.string()}),$Q.object({type:$Q.literal("image"),url:$Q.string()})])).nullish()}))),BA4=W0(()=>s($Q.object({container:$Q.union([$Q.string(),$Q.object({fileIds:$Q.array($Q.string()).optional()})]).optional()}))),DA4=c$({id:"openai.code_interpreter",inputSchema:UA4,outputSchema:NA4}),uH$=F$.object({id:F$.string(),code:F$.string().optional(),message:F$.string().optional()}),LA4=F$.discriminatedUnion("type",[F$.object({type:F$.literal("click"),button:F$.enum(["left","right","wheel","back","forward"]),x:F$.number(),y:F$.number(),keys:F$.array(F$.string()).optional()}),F$.object({type:F$.literal("double_click"),x:F$.number(),y:F$.number(),keys:F$.array(F$.string()).optional()}),F$.object({type:F$.literal("drag"),path:F$.array(F$.object({x:F$.number(),y:F$.number()})),keys:F$.array(F$.string()).optional()}),F$.object({type:F$.literal("keypress"),keys:F$.array(F$.string())}),F$.object({type:F$.literal("move"),x:F$.number(),y:F$.number(),keys:F$.array(F$.string()).optional()}),F$.object({type:F$.literal("screenshot")}),F$.object({type:F$.literal("scroll"),x:F$.number(),y:F$.number(),scrollX:F$.number(),scrollY:F$.number(),keys:F$.array(F$.string()).optional()}),F$.object({type:F$.literal("type"),text:F$.string()}),F$.object({type:F$.literal("wait")})]),lH$=W0(()=>s(F$.object({actions:F$.array(LA4),pendingSafetyChecks:F$.array(uH$),status:F$.enum(["in_progress","completed","incomplete"])}))),cH$=W0(()=>s(F$.object({output:F$.union([F$.object({type:F$.literal("computer_screenshot"),imageUrl:F$.string(),fileId:F$.string().optional(),detail:F$.enum(["auto","low","high","original"]).optional()}),F$.object({type:F$.literal("computer_screenshot"),fileId:F$.string(),imageUrl:F$.string().optional(),detail:F$.enum(["auto","low","high","original"]).optional()})]),acknowledgedSafetyChecks:F$.array(uH$).optional()}))),wA4=iF({id:"openai.computer",inputSchema:lH$,outputSchema:cH$}),EA4=W0(()=>s(XH.object({description:XH.string().optional(),async:XH.boolean().optional(),format:XH.union([XH.object({type:XH.literal("grammar"),syntax:XH.enum(["regex","lark"]),definition:XH.string()}),XH.object({type:XH.literal("text")})]).optional()}))),zA4=W0(()=>s(XH.string())),PA4=FZ({id:"openai.custom",inputSchema:zA4}),mH$=H6.object({key:H6.string(),type:H6.enum(["eq","ne","gt","gte","lt","lte","in","nin"]),value:H6.union([H6.string(),H6.number(),H6.boolean(),H6.array(H6.string())])}),dH$=H6.object({type:H6.enum(["and","or"]),filters:H6.array(H6.union([mH$,H6.lazy(()=>dH$)]))}),TA4=W0(()=>s(H6.object({vectorStoreIds:H6.array(H6.string()),maxNumResults:H6.number().optional(),ranking:H6.object({ranker:H6.string().optional(),scoreThreshold:H6.number().optional()}).optional(),filters:H6.union([mH$,dH$]).optional()}))),RA4=W0(()=>s(H6.object({queries:H6.array(H6.string()),results:H6.array(H6.object({attributes:H6.record(H6.string(),H6.unknown()),fileId:H6.string(),filename:H6.string(),score:H6.number(),text:H6.string()})).nullable()}))),qA4=c$({id:"openai.file_search",inputSchema:H6.object({}),outputSchema:RA4}),MA4=W0(()=>s(V7.object({action:V7.enum(["generate","edit","auto"]).optional(),background:V7.enum(["auto","opaque","transparent"]).optional(),inputFidelity:V7.enum(["low","high"]).optional(),inputImageMask:V7.object({fileId:V7.string().optional(),imageUrl:V7.string().optional()}).optional(),model:V7.string().optional(),moderation:V7.enum(["auto","low"]).optional(),outputCompression:V7.number().int().min(0).max(100).optional(),outputFormat:V7.enum(["png","jpeg","webp"]).optional(),partialImages:V7.number().int().min(0).max(3).optional(),quality:V7.enum(["auto","low","medium","high","xhigh","max"]).optional(),size:V7.union([V7.enum(["1024x1024","1024x1536","1536x1024","auto"]),V7.string().regex(/^\d+x\d+$/)]).optional()}).strict())),IA4=W0(()=>s(V7.object({}))),VA4=W0(()=>s(V7.object({result:V7.string()}))),kA4=c$({id:"openai.image_generation",inputSchema:IA4,outputSchema:VA4}),iH$=W0(()=>s(pG.object({action:pG.object({type:pG.literal("exec"),command:pG.array(pG.string()),timeoutMs:pG.number().optional(),user:pG.string().optional(),workingDirectory:pG.string().optional(),env:pG.record(pG.string(),pG.string()).optional()})}))),pH$=W0(()=>s(pG.object({output:pG.string()}))),CA4=iF({id:"openai.local_shell",inputSchema:iH$,outputSchema:pH$}),nH$=W0(()=>s(v$.object({action:v$.object({commands:v$.array(v$.string()),timeoutMs:v$.number().optional(),maxOutputLength:v$.number().optional()})}))),t01=W0(()=>s(v$.object({output:v$.array(v$.object({stdout:v$.string(),stderr:v$.string(),outcome:v$.discriminatedUnion("type",[v$.object({type:v$.literal("timeout")}),v$.object({type:v$.literal("exit"),exitCode:v$.number()})])}))}))),_A4=v$.array(v$.discriminatedUnion("type",[v$.object({type:v$.literal("skillReference"),providerReference:v$.record(v$.string(),v$.string()),version:v$.string().optional()}),v$.object({type:v$.literal("inline"),name:v$.string(),description:v$.string(),source:v$.object({type:v$.literal("base64"),mediaType:v$.literal("application/zip"),data:v$.string()})})])).optional(),vA4=W0(()=>s(v$.object({environment:v$.union([v$.object({type:v$.literal("containerAuto"),fileIds:v$.array(v$.string()).optional(),memoryLimit:v$.enum(["1g","4g","16g","64g"]).optional(),networkPolicy:v$.discriminatedUnion("type",[v$.object({type:v$.literal("disabled")}),v$.object({type:v$.literal("allowlist"),allowedDomains:v$.array(v$.string()),domainSecrets:v$.array(v$.object({domain:v$.string(),name:v$.string(),value:v$.string()})).optional()})]).optional(),skills:_A4}),v$.object({type:v$.literal("containerReference"),containerId:v$.string()}),v$.object({type:v$.literal("local").optional(),skills:v$.array(v$.object({name:v$.string(),description:v$.string(),path:v$.string()})).optional()})]).optional()}))),bA4=iF({id:"openai.shell",inputSchema:nH$,outputSchema:t01}),xA4=W0(()=>s(MJ.object({execution:MJ.enum(["server","client"]).optional(),description:MJ.string().optional(),parameters:MJ.record(MJ.string(),MJ.unknown()).optional()}))),o01=W0(()=>s(MJ.object({arguments:MJ.unknown().optional(),call_id:MJ.string().nullish()}))),r01=W0(()=>s(MJ.object({tools:MJ.array(MJ.record(MJ.string(),MJ.unknown()))}))),fA4=iF({id:"openai.tool_search",inputSchema:o01,outputSchema:r01}),gA4=W0(()=>s(d4.object({externalWebAccess:d4.boolean().optional(),filters:d4.object({allowedDomains:d4.array(d4.string()).optional(),blockedDomains:d4.array(d4.string()).optional()}).optional(),searchContextSize:d4.enum(["low","medium","high"]).optional(),userLocation:d4.object({type:d4.literal("approximate"),country:d4.string().optional(),city:d4.string().optional(),region:d4.string().optional(),timezone:d4.string().optional()}).optional()}))),hA4=W0(()=>s(d4.object({}))),uA4=W0(()=>s(d4.object({action:d4.discriminatedUnion("type",[d4.object({type:d4.literal("search"),query:d4.string().optional(),queries:d4.array(d4.string()).optional()}),d4.object({type:d4.literal("openPage"),url:d4.string().nullish()}),d4.object({type:d4.literal("findInPage"),url:d4.string().nullish(),pattern:d4.string().nullish()})]).optional(),sources:d4.array(d4.discriminatedUnion("type",[d4.object({type:d4.literal("url"),url:d4.string()}),d4.object({type:d4.literal("api"),name:d4.string()})])).optional()}))),lA4=c$({id:"openai.web_search",inputSchema:hA4,outputSchema:uA4}),mA4=W0(()=>s(gZ.object({searchContextSize:gZ.enum(["low","medium","high"]).optional(),userLocation:gZ.object({type:gZ.literal("approximate"),country:gZ.string().optional(),city:gZ.string().optional(),region:gZ.string().optional(),timezone:gZ.string().optional()}).optional()}))),dA4=W0(()=>s(gZ.object({}))),iA4=W0(()=>s(gZ.object({action:gZ.discriminatedUnion("type",[gZ.object({type:gZ.literal("search"),query:gZ.string().optional()}),gZ.object({type:gZ.literal("openPage"),url:gZ.string().nullish()}),gZ.object({type:gZ.literal("findInPage"),url:gZ.string().nullish(),pattern:gZ.string().nullish()})]).optional()}))),pA4=c$({id:"openai.web_search_preview",inputSchema:dA4,outputSchema:iA4}),s01=E4.lazy(()=>E4.union([E4.string(),E4.number(),E4.boolean(),E4.null(),E4.array(s01),E4.record(E4.string(),s01)])),nA4=W0(()=>s(E4.object({serverLabel:E4.string(),allowedTools:E4.union([E4.array(E4.string()),E4.object({readOnly:E4.boolean().optional(),toolNames:E4.array(E4.string()).optional()})]).optional(),authorization:E4.string().optional(),connectorId:E4.string().optional(),headers:E4.record(E4.string(),E4.string()).optional(),requireApproval:E4.union([E4.enum(["always","never"]),E4.object({never:E4.object({toolNames:E4.array(E4.string()).optional()}).optional()})]).optional(),serverDescription:E4.string().optional(),serverUrl:E4.string().optional()}).refine(($)=>$.serverUrl!=null||$.connectorId!=null,"One of serverUrl or connectorId must be provided."))),tA4=W0(()=>s(E4.object({}))),oA4=W0(()=>s(E4.object({type:E4.literal("call"),serverLabel:E4.string(),name:E4.string(),arguments:E4.string(),output:E4.string().nullish(),error:E4.union([E4.string(),s01]).optional()}))),rA4=c$({id:"openai.mcp",inputSchema:tA4,outputSchema:oA4}),tH$=W0(()=>s(_c.object({code:_c.string(),fingerprint:_c.string()}))),oH$=W0(()=>s(_c.object({result:_c.string(),status:_c.enum(["completed","incomplete"])}))),aA4=c$({id:"openai.programmatic_tool_calling",inputSchema:tH$,outputSchema:oH$,supportsDeferredResults:!0}),$T4={applyPatch:FA4,customTool:AA4,codeInterpreter:OA4,computer:jA4,fileSearch:qA4,imageGeneration:SA4,localShell:CA4,shell:bA4,webSearchPreview:pA4,webSearch:cA4,mcp:sA4,programmaticToolCalling:eA4,toolSearch:yA4};vc=R.lazy(()=>R.union([R.string(),R.number(),R.boolean(),R.null(),R.array(vc),R.record(R.string(),vc.optional())])),c01=R.record(R.string(),vc.optional()),e01=R.intersection(c01,R.object({input_tokens:R.number(),input_tokens_details:R.intersection(c01,R.object({cached_tokens:R.number().nullish(),cache_write_tokens:R.number().nullish(),orchestration_input_tokens:R.number().nullish(),orchestration_input_cached_tokens:R.number().nullish()})).nullish(),output_tokens:R.number(),output_tokens_details:R.intersection(c01,R.object({reasoning_tokens:R.number().nullish(),orchestration_output_tokens:R.number().nullish()})).nullish(),total_tokens:R.number().optional()})),ZT4=R.object({id:R.string(),code:R.string().nullish(),message:R.string().nullish()}),BH$=R.discriminatedUnion("type",[R.object({type:R.literal("click"),button:R.enum(["left","right","wheel","back","forward"]),x:R.number(),y:R.number(),keys:R.array(R.string()).nullish()}),R.object({type:R.literal("double_click"),x:R.number(),y:R.number(),keys:R.array(R.string()).nullish()}),R.object({type:R.literal("drag"),path:R.array(R.object({x:R.number(),y:R.number()})),keys:R.array(R.string()).nullish()}),R.object({type:R.literal("keypress"),keys:R.array(R.string())}),R.object({type:R.literal("move"),x:R.number(),y:R.number(),keys:R.array(R.string()).nullish()}),R.object({type:R.literal("screenshot")}),R.object({type:R.literal("scroll"),x:R.number(),y:R.number(),scroll_x:R.number(),scroll_y:R.number(),keys:R.array(R.string()).nullish()}),R.object({type:R.literal("type"),text:R.string()}),R.object({type:R.literal("wait")})]),$11=R.object({type:R.literal("computer_call"),id:R.string(),call_id:R.string().nullish(),status:R.enum(["in_progress","completed","incomplete"]),action:BH$.nullish(),actions:R.array(BH$).nullish(),pending_safety_checks:R.array(ZT4).nullish()}),Z11=R.discriminatedUnion("type",[R.object({type:R.literal("direct")}),R.object({type:R.literal("program"),caller_id:R.string()})]),Q11=R.object({type:R.literal("program"),id:R.string(),call_id:R.string(),code:R.string(),fingerprint:R.string()}),Y11=R.object({type:R.literal("program_output"),id:R.string(),call_id:R.string(),result:R.string(),status:R.enum(["completed","incomplete"])}),X11=R.object({type:R.literal("local_shell_call"),id:R.string(),call_id:R.string(),action:R.object({type:R.literal("exec"),command:R.array(R.string()),timeout_ms:R.number().optional(),user:R.string().optional(),working_directory:R.string().optional(),env:R.record(R.string(),R.string()).optional()})}),QT4=R.object({type:R.literal("error"),sequence_number:R.number(),error:R.object({type:R.string(),code:R.string(),message:R.string(),param:R.string().nullish()})}),YT4=R.object({type:R.literal("error"),sequence_number:R.number(),code:R.string().nullish(),message:R.string(),param:R.string().nullish()}),XT4=new Set(["error","response.apply_patch_call_operation_diff.delta","response.apply_patch_call_operation_diff.done","response.code_interpreter_call_code.delta","response.code_interpreter_call_code.done","response.completed","response.created","response.custom_tool_call_input.delta","response.failed","response.function_call_arguments.delta","response.function_call_arguments.done","response.image_generation_call.partial_image","response.in_progress","response.incomplete","response.output_item.added","response.output_item.done","response.output_text.annotation.added","response.output_text.delta","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta"]),JT4=new Set(["apply_patch_call","code_interpreter_call","compaction","computer_call","custom_tool_call","file_search_call","function_call","image_generation_call","local_shell_call","mcp_approval_request","mcp_call","mcp_list_tools","message","program","program_output","reasoning","shell_call","shell_call_output","tool_search_call","tool_search_output","web_search_call"]);WT4=W0(()=>s(R.union([R.object({type:R.literal("response.output_text.delta"),item_id:R.string(),output_index:R.number().nullish(),delta:R.string(),logprobs:R.array(R.object({token:R.string(),logprob:R.number(),top_logprobs:R.array(R.object({token:R.string(),logprob:R.number()}))})).nullish()}),R.object({type:R.enum(["response.completed","response.incomplete"]),response:R.object({incomplete_details:R.object({reason:R.string()}).nullish(),usage:e01.nullish(),reasoning:R.object({context:R.string().nullish()}).nullish(),service_tier:R.string().nullish()})}),R.object({type:R.literal("response.failed"),sequence_number:R.number(),response:R.object({error:R.object({code:R.string().nullish(),message:R.string()}).nullish(),incomplete_details:R.object({reason:R.string()}).nullish(),usage:e01.nullish(),reasoning:R.object({context:R.string().nullish()}).nullish(),service_tier:R.string().nullish()})}),R.object({type:R.literal("response.created"),response:R.object({id:R.string(),created_at:R.number(),model:R.string(),service_tier:R.string().nullish()})}),R.object({type:R.literal("response.in_progress"),response:R.object({id:R.string(),created_at:R.number(),model:R.string(),service_tier:R.string().nullish()})}),R.object({type:R.literal("response.output_item.added"),output_index:R.number(),item:R.discriminatedUnion("type",[R.object({type:R.literal("message"),id:R.string(),phase:R.enum(["commentary","final_answer"]).nullish()}),R.object({type:R.literal("reasoning"),id:R.string(),encrypted_content:R.string().nullish()}),R.object({type:R.literal("function_call"),id:R.string(),call_id:R.string(),name:R.string(),arguments:R.string(),async:R.boolean().nullish(),namespace:R.string().nullish(),caller:Z11.nullish()}),Q11,Y11,R.object({type:R.literal("web_search_call"),id:R.string(),status:R.string()}),$11,R.object({type:R.literal("file_search_call"),id:R.string()}),X11,R.object({type:R.literal("image_generation_call"),id:R.string()}),R.object({type:R.literal("code_interpreter_call"),id:R.string(),container_id:R.string(),code:R.string().nullable(),outputs:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("logs"),logs:R.string()}),R.object({type:R.literal("image"),url:R.string()})])).nullable(),status:R.string()}),R.object({type:R.literal("mcp_call"),id:R.string(),status:R.string(),approval_request_id:R.string().nullish()}),R.object({type:R.literal("mcp_list_tools"),id:R.string()}),R.object({type:R.literal("mcp_approval_request"),id:R.string()}),R.object({type:R.literal("apply_patch_call"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed"]),operation:R.discriminatedUnion("type",[R.object({type:R.literal("create_file"),path:R.string(),diff:R.string()}),R.object({type:R.literal("delete_file"),path:R.string()}),R.object({type:R.literal("update_file"),path:R.string(),diff:R.string()})])}),R.object({type:R.literal("custom_tool_call"),id:R.string(),call_id:R.string(),name:R.string(),input:R.string(),async:R.boolean().nullish()}),R.object({type:R.literal("shell_call"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed","incomplete"]),action:R.object({commands:R.array(R.string())})}),R.object({type:R.literal("compaction"),id:R.string(),encrypted_content:R.string().nullish()}),R.object({type:R.literal("shell_call_output"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed","incomplete"]),output:R.array(R.object({stdout:R.string(),stderr:R.string(),outcome:R.discriminatedUnion("type",[R.object({type:R.literal("timeout")}),R.object({type:R.literal("exit"),exit_code:R.number()})])}))}),R.object({type:R.literal("tool_search_call"),id:R.string(),execution:R.enum(["server","client"]),call_id:R.string().nullable(),status:R.enum(["in_progress","completed","incomplete"]),arguments:R.unknown()}),R.object({type:R.literal("tool_search_output"),id:R.string(),execution:R.enum(["server","client"]),call_id:R.string().nullable(),status:R.enum(["in_progress","completed","incomplete"]),tools:R.array(R.record(R.string(),vc.optional()))})])}),R.object({type:R.literal("response.output_item.done"),output_index:R.number(),item:R.discriminatedUnion("type",[R.object({type:R.literal("message"),id:R.string(),phase:R.enum(["commentary","final_answer"]).nullish()}),R.object({type:R.literal("reasoning"),id:R.string(),encrypted_content:R.string().nullish()}),R.object({type:R.literal("function_call"),id:R.string(),call_id:R.string(),name:R.string(),arguments:R.string(),async:R.boolean().nullish(),status:R.enum(["in_progress","completed","incomplete"]),namespace:R.string().nullish(),caller:Z11.nullish()}),Q11,Y11,R.object({type:R.literal("custom_tool_call"),id:R.string(),call_id:R.string(),name:R.string(),input:R.string(),async:R.boolean().nullish(),status:R.literal("completed")}),R.object({type:R.literal("code_interpreter_call"),id:R.string(),code:R.string().nullable(),container_id:R.string(),outputs:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("logs"),logs:R.string()}),R.object({type:R.literal("image"),url:R.string()})])).nullable()}),R.object({type:R.literal("image_generation_call"),id:R.string(),result:R.string()}),R.object({type:R.literal("web_search_call"),id:R.string(),status:R.string(),action:R.discriminatedUnion("type",[R.object({type:R.literal("search"),query:R.string().nullish(),queries:R.array(R.string()).nullish(),sources:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("url"),url:R.string()}),R.object({type:R.literal("api"),name:R.string()})])).nullish()}),R.object({type:R.literal("open_page"),url:R.string().nullish()}),R.object({type:R.literal("find_in_page"),url:R.string().nullish(),pattern:R.string().nullish()})]).nullish()}),R.object({type:R.literal("file_search_call"),id:R.string(),queries:R.array(R.string()),results:R.array(R.object({attributes:R.record(R.string(),R.union([R.string(),R.number(),R.boolean()])),file_id:R.string(),filename:R.string(),score:R.number(),text:R.string()})).nullish()}),X11,$11,R.object({type:R.literal("mcp_call"),id:R.string(),status:R.string(),arguments:R.string(),name:R.string(),server_label:R.string(),output:R.string().nullish(),error:R.union([R.string(),R.object({type:R.string().optional(),code:R.union([R.number(),R.string()]).optional(),message:R.string().optional()}).loose()]).nullish(),approval_request_id:R.string().nullish()}),R.object({type:R.literal("mcp_list_tools"),id:R.string(),server_label:R.string(),tools:R.array(R.object({name:R.string(),description:R.string().optional(),input_schema:R.any(),annotations:R.record(R.string(),R.unknown()).optional()})),error:R.union([R.string(),R.object({type:R.string().optional(),code:R.union([R.number(),R.string()]).optional(),message:R.string().optional()}).loose()]).optional()}),R.object({type:R.literal("mcp_approval_request"),id:R.string(),server_label:R.string(),name:R.string(),arguments:R.string(),approval_request_id:R.string().optional()}),R.object({type:R.literal("apply_patch_call"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed"]),operation:R.discriminatedUnion("type",[R.object({type:R.literal("create_file"),path:R.string(),diff:R.string()}),R.object({type:R.literal("delete_file"),path:R.string()}),R.object({type:R.literal("update_file"),path:R.string(),diff:R.string()})])}),R.object({type:R.literal("shell_call"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed","incomplete"]),action:R.object({commands:R.array(R.string())})}),R.object({type:R.literal("compaction"),id:R.string(),encrypted_content:R.string()}),R.object({type:R.literal("shell_call_output"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed","incomplete"]),output:R.array(R.object({stdout:R.string(),stderr:R.string(),outcome:R.discriminatedUnion("type",[R.object({type:R.literal("timeout")}),R.object({type:R.literal("exit"),exit_code:R.number()})])}))}),R.object({type:R.literal("tool_search_call"),id:R.string(),execution:R.enum(["server","client"]),call_id:R.string().nullable(),status:R.enum(["in_progress","completed","incomplete"]),arguments:R.unknown()}),R.object({type:R.literal("tool_search_output"),id:R.string(),execution:R.enum(["server","client"]),call_id:R.string().nullable(),status:R.enum(["in_progress","completed","incomplete"]),tools:R.array(R.record(R.string(),vc.optional()))})])}),R.object({type:R.literal("response.function_call_arguments.delta"),item_id:R.string(),output_index:R.number(),delta:R.string()}),R.object({type:R.literal("response.function_call_arguments.done"),item_id:R.string(),output_index:R.number(),arguments:R.string()}),R.object({type:R.literal("response.custom_tool_call_input.delta"),item_id:R.string(),output_index:R.number(),delta:R.string()}),R.object({type:R.literal("response.image_generation_call.partial_image"),item_id:R.string(),output_index:R.number(),partial_image_b64:R.string()}),R.object({type:R.literal("response.code_interpreter_call_code.delta"),item_id:R.string(),output_index:R.number(),delta:R.string()}),R.object({type:R.literal("response.code_interpreter_call_code.done"),item_id:R.string(),output_index:R.number(),code:R.string()}),R.object({type:R.literal("response.output_text.annotation.added"),annotation:R.discriminatedUnion("type",[R.object({type:R.literal("url_citation"),start_index:R.number(),end_index:R.number(),url:R.string(),title:R.string()}),R.object({type:R.literal("file_citation"),file_id:R.string(),filename:R.string(),index:R.number()}),R.object({type:R.literal("container_file_citation"),container_id:R.string(),file_id:R.string(),filename:R.string(),start_index:R.number(),end_index:R.number()}),R.object({type:R.literal("file_path"),file_id:R.string(),index:R.number()})])}),R.object({type:R.literal("response.reasoning_summary_part.added"),item_id:R.string(),output_index:R.number().nullish(),summary_index:R.number()}),R.object({type:R.literal("response.reasoning_summary_text.delta"),item_id:R.string(),output_index:R.number().nullish(),summary_index:R.number(),delta:R.string()}),R.object({type:R.literal("response.reasoning_summary_part.done"),item_id:R.string(),output_index:R.number().nullish(),summary_index:R.number()}),R.object({type:R.literal("response.apply_patch_call_operation_diff.delta"),item_id:R.string(),output_index:R.number(),delta:R.string(),obfuscation:R.string().nullish()}),R.object({type:R.literal("response.apply_patch_call_operation_diff.done"),item_id:R.string(),output_index:R.number(),diff:R.string()}),QT4,YT4,R.object({type:R.string()}).loose().refine(($)=>!GT4($),{message:"Known response chunk failed schema validation"}).transform(($)=>({type:"unknown_chunk",message:$.type}))]))),rH$=W0(()=>s(R.object({id:R.string().optional(),created_at:R.number().optional(),error:R.object({message:R.string(),type:R.string(),param:R.string().nullish(),code:R.string()}).nullish(),model:R.string().optional(),output:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("message"),role:R.literal("assistant"),id:R.string(),phase:R.enum(["commentary","final_answer"]).nullish(),content:R.array(R.object({type:R.literal("output_text"),text:R.string(),logprobs:R.array(R.object({token:R.string(),logprob:R.number(),top_logprobs:R.array(R.object({token:R.string(),logprob:R.number()}))})).nullish(),annotations:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("url_citation"),start_index:R.number(),end_index:R.number(),url:R.string(),title:R.string()}),R.object({type:R.literal("file_citation"),file_id:R.string(),filename:R.string(),index:R.number()}),R.object({type:R.literal("container_file_citation"),container_id:R.string(),file_id:R.string(),filename:R.string(),start_index:R.number(),end_index:R.number()}),R.object({type:R.literal("file_path"),file_id:R.string(),index:R.number()})]))}))}),R.object({type:R.literal("web_search_call"),id:R.string(),status:R.string(),action:R.discriminatedUnion("type",[R.object({type:R.literal("search"),query:R.string().nullish(),queries:R.array(R.string()).nullish(),sources:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("url"),url:R.string()}),R.object({type:R.literal("api"),name:R.string()})])).nullish()}),R.object({type:R.literal("open_page"),url:R.string().nullish()}),R.object({type:R.literal("find_in_page"),url:R.string().nullish(),pattern:R.string().nullish()})]).nullish()}),R.object({type:R.literal("file_search_call"),id:R.string(),queries:R.array(R.string()),results:R.array(R.object({attributes:R.record(R.string(),R.union([R.string(),R.number(),R.boolean()])),file_id:R.string(),filename:R.string(),score:R.number(),text:R.string()})).nullish()}),R.object({type:R.literal("code_interpreter_call"),id:R.string(),code:R.string().nullable(),container_id:R.string(),outputs:R.array(R.discriminatedUnion("type",[R.object({type:R.literal("logs"),logs:R.string()}),R.object({type:R.literal("image"),url:R.string()})])).nullable()}),R.object({type:R.literal("image_generation_call"),id:R.string(),result:R.string()}),X11,R.object({type:R.literal("function_call"),call_id:R.string(),name:R.string(),arguments:R.string(),id:R.string(),async:R.boolean().nullish(),namespace:R.string().nullish(),caller:Z11.nullish()}),Q11,Y11,R.object({type:R.literal("custom_tool_call"),call_id:R.string(),name:R.string(),input:R.string(),id:R.string(),async:R.boolean().nullish()}),$11,R.object({type:R.literal("reasoning"),id:R.string(),encrypted_content:R.string().nullish(),summary:R.array(R.object({type:R.literal("summary_text"),text:R.string()}))}),R.object({type:R.literal("mcp_call"),id:R.string(),status:R.string(),arguments:R.string(),name:R.string(),server_label:R.string(),output:R.string().nullish(),error:R.union([R.string(),R.object({type:R.string().optional(),code:R.union([R.number(),R.string()]).optional(),message:R.string().optional()}).loose()]).nullish(),approval_request_id:R.string().nullish()}),R.object({type:R.literal("mcp_list_tools"),id:R.string(),server_label:R.string(),tools:R.array(R.object({name:R.string(),description:R.string().optional(),input_schema:R.any(),annotations:R.record(R.string(),R.unknown()).optional()})),error:R.union([R.string(),R.object({type:R.string().optional(),code:R.union([R.number(),R.string()]).optional(),message:R.string().optional()}).loose()]).optional()}),R.object({type:R.literal("mcp_approval_request"),id:R.string(),server_label:R.string(),name:R.string(),arguments:R.string(),approval_request_id:R.string().optional()}),R.object({type:R.literal("apply_patch_call"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed"]),operation:R.discriminatedUnion("type",[R.object({type:R.literal("create_file"),path:R.string(),diff:R.string()}),R.object({type:R.literal("delete_file"),path:R.string()}),R.object({type:R.literal("update_file"),path:R.string(),diff:R.string()})])}),R.object({type:R.literal("shell_call"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed","incomplete"]),action:R.object({commands:R.array(R.string())})}),R.object({type:R.literal("compaction"),id:R.string(),encrypted_content:R.string()}),R.object({type:R.literal("shell_call_output"),id:R.string(),call_id:R.string(),status:R.enum(["in_progress","completed","incomplete"]),output:R.array(R.object({stdout:R.string(),stderr:R.string(),outcome:R.discriminatedUnion("type",[R.object({type:R.literal("timeout")}),R.object({type:R.literal("exit"),exit_code:R.number()})])}))}),R.object({type:R.literal("tool_search_call"),id:R.string(),execution:R.enum(["server","client"]),call_id:R.string().nullable(),status:R.enum(["in_progress","completed","incomplete"]),arguments:R.unknown()}),R.object({type:R.literal("tool_search_output"),id:R.string(),execution:R.enum(["server","client"]),call_id:R.string().nullable(),status:R.enum(["in_progress","completed","incomplete"]),tools:R.array(R.record(R.string(),vc.optional()))})])).optional(),service_tier:R.string().nullish(),reasoning:R.object({context:R.string().nullish()}).nullish(),incomplete_details:R.object({reason:R.string()}).nullish(),usage:e01.nullish()})));NT4=m01.object({itemId:m01.string().nullish(),reasoningEncryptedContent:m01.string().nullish()}),BT4=["o1","o1-2024-12-17","o3","o3-2025-04-16","o3-mini","o3-mini-2025-01-31","o4-mini","o4-mini-2025-04-16","gpt-5","gpt-5-2025-08-07","gpt-5-codex","gpt-5-mini","gpt-5-mini-2025-08-07","gpt-5-nano","gpt-5-nano-2025-08-07","gpt-5-pro","gpt-5-pro-2025-10-06","gpt-5.1","gpt-5.1-chat-latest","gpt-5.1-codex-mini","gpt-5.1-codex","gpt-5.1-codex-max","gpt-5.2","gpt-5.2-chat-latest","gpt-5.2-pro","gpt-5.2-codex","gpt-5.3-chat-latest","gpt-5.3-codex","gpt-5.4","gpt-5.4-2026-03-05","gpt-5.4-mini","gpt-5.4-mini-2026-03-17","gpt-5.4-nano","gpt-5.4-nano-2026-03-17","gpt-5.4-pro","gpt-5.4-pro-2026-03-05","gpt-5.5","gpt-5.5-2026-04-23","gpt-5.6","gpt-5.6-luna","gpt-5.6-sol","gpt-5.6-terra","gpt-6-astra"],$r5=["gpt-4.1","gpt-4.1-2025-04-14","gpt-4.1-mini","gpt-4.1-mini-2025-04-14","gpt-4.1-nano","gpt-4.1-nano-2025-04-14","gpt-4o","gpt-4o-2024-05-13","gpt-4o-2024-08-06","gpt-4o-2024-11-20","gpt-4o-audio-preview","gpt-4o-audio-preview-2024-12-17","gpt-4o-search-preview","gpt-4o-search-preview-2025-03-11","gpt-4o-mini-search-preview","gpt-4o-mini-search-preview-2025-03-11","gpt-4o-mini","gpt-4o-mini-2024-07-18","gpt-3.5-turbo-0125","gpt-3.5-turbo","gpt-3.5-turbo-1106","gpt-5-chat-latest",...BT4],zH$=W0(()=>s(Z4.object({conversation:Z4.string().nullish(),include:Z4.array(Z4.enum(["reasoning.encrypted_content","file_search_call.results","web_search_call.results","message.output_text.logprobs"])).nullish(),includeWebSearchSources:Z4.boolean().optional(),instructions:Z4.string().nullish(),logprobs:Z4.union([Z4.boolean(),Z4.number().min(1).max(sH$)]).optional(),maxToolCalls:Z4.number().nullish(),metadata:Z4.any().nullish(),parallelToolCalls:Z4.boolean().nullish(),previousResponseId:Z4.string().nullish(),promptCacheKey:Z4.string().nullish(),promptCacheOptions:Z4.object({mode:Z4.enum(["implicit","explicit"]).optional(),ttl:Z4.literal("30m").optional()}).optional(),promptCacheRetention:Z4.enum(["in_memory","24h"]).nullish(),reasoningEffort:Z4.string().nullish(),reasoningEffortUpdate:Z4.enum(["low","medium","high","xhigh","max"]).optional(),reasoningMode:Z4.enum(["standard","pro"]).optional(),reasoningContext:Z4.enum(["auto","current_turn","all_turns"]).optional(),reasoningSummary:Z4.string().nullish(),safetyIdentifier:Z4.string().nullish(),serviceTier:Z4.enum(["auto","flex","priority","fast","ultrafast","default"]).nullish(),store:Z4.boolean().nullish(),passThroughUnsupportedFiles:Z4.boolean().optional(),strictJsonSchema:Z4.boolean().nullish(),textVerbosity:Z4.enum(["low","medium","high"]).nullish(),truncation:Z4.enum(["auto","disabled"]).nullish(),user:Z4.string().nullish(),systemMessageMode:Z4.enum(["system","developer","remove"]).optional(),forceReasoning:Z4.boolean().optional(),contextManagement:Z4.array(Z4.object({type:Z4.literal("compaction"),compactThreshold:Z4.number()})).nullish(),compactionTrigger:Z4.boolean().optional(),allowedTools:Z4.object({toolNames:Z4.array(Z4.string()).min(1),mode:Z4.enum(["auto","required"]).optional()}).optional()})));aH$={"image/*":[/^https?:\/\/.*$/],"application/pdf":[/^https?:\/\/.*$/]},eH$=class ${constructor(Z,Q){this.specificationVersion="v4",this.supportedUrls=aH$,this.modelId=Z,this.config=Q}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,KT4(Z.config))}get provider(){return this.config.provider}static async prepareRequest({modelId:Z,config:Q,options:{maxOutputTokens:Y,temperature:X,stopSequences:J,topP:G,topK:W,presencePenalty:K,frequencyPenalty:H,seed:F,prompt:U,reasoning:N,providerOptions:B,tools:O,toolChoice:L,responseFormat:w}}){var j,E,z,T,A,P,q,x,_,V,y,g,l,i;let p=[],U0=yH$(Z);if(W!=null)p.push({type:"unsupported",feature:"topK"});if(F!=null)p.push({type:"unsupported",feature:"seed"});if(K!=null)p.push({type:"unsupported",feature:"presencePenalty"});if(H!=null)p.push({type:"unsupported",feature:"frequencyPenalty"});if(J!=null)p.push({type:"unsupported",feature:"stopSequences"});let v0=Q.provider.includes("azure")?"azure":"openai",G0=await C$({provider:v0,providerOptions:B,schema:zH$});if(G0==null&&v0!=="openai")G0=await C$({provider:"openai",providerOptions:B,schema:zH$});let N0=(j=G0==null?void 0:G0.reasoningEffort)!=null?j:_B(N)?N:void 0;if(N0!=null&&U0.supportedReasoningEfforts!=null&&!U0.supportedReasoningEfforts.includes(N0))p.push({type:"unsupported",feature:"reasoningEffort",details:`${Z} only supports the following reasoning efforts: ${U0.supportedReasoningEfforts.join(", ")}`}),N0=void 0;let o=(G0==null?void 0:G0.reasoningSummary)!==void 0?G0.reasoningSummary:N0!=null&&N0!=="none"?"detailed":void 0,$0=(E=G0==null?void 0:G0.forceReasoning)!=null?E:U0.isReasoningModel;if((G0==null?void 0:G0.conversation)&&(G0==null?void 0:G0.previousResponseId))p.push({type:"unsupported",feature:"conversation",details:"conversation and previousResponseId cannot be used together"});let Z0=tl({tools:O,providerToolNames:{"openai.code_interpreter":"code_interpreter","openai.computer":"computer","openai.file_search":"file_search","openai.image_generation":"image_generation","openai.local_shell":"local_shell","openai.shell":"shell","openai.web_search":"web_search","openai.web_search_preview":"web_search_preview","openai.mcp":"mcp","openai.apply_patch":"apply_patch","openai.tool_search":"tool_search","openai.programmatic_tool_calling":"programmatic_tool_calling"}}),r=new Set,Y0=new Set,{tools:d0,toolChoice:S0,toolWarnings:W1}=await DT4({tools:O,toolChoice:L,allowedTools:(z=G0==null?void 0:G0.allowedTools)!=null?z:void 0,toolNameMapping:Z0,customProviderToolNames:r,outputSchemaToolNames:Y0,supportsAsyncToolCalling:U0.supportsAsyncToolCalling}),{input:u0,warnings:L0}=await UT4({prompt:U,toolNameMapping:Z0,systemMessageMode:(T=G0==null?void 0:G0.systemMessageMode)!=null?T:$0?"developer":U0.systemMessageMode,providerOptionsName:v0,explicitMessageItemType:Q.explicitMessageItemType,fileIdPrefixes:Q.fileIdPrefixes,passThroughUnsupportedFiles:(A=G0==null?void 0:G0.passThroughUnsupportedFiles)!=null?A:!1,store:(P=G0==null?void 0:G0.store)!=null?P:!0,hasConversation:(G0==null?void 0:G0.conversation)!=null,hasPreviousResponseId:(G0==null?void 0:G0.previousResponseId)!=null,hasLocalShellTool:a0("openai.local_shell"),hasShellTool:a0("openai.shell"),hasApplyPatchTool:a0("openai.apply_patch"),hasComputerTool:a0("openai.computer"),toolSearchToolName:i0("openai.tool_search"),customProviderToolNames:r.size>0?r:void 0,outputSchemaToolNames:Y0.size>0?Y0:void 0});p.push(...L0);let j0=G0==null?void 0:G0.reasoningEffortUpdate,l0=j0==null||U0.supportsConfigurationUpdate&&(G0==null?void 0:G0.reasoningMode)!=="pro"&&(G0==null?void 0:G0.contextManagement)==null&&(G0==null?void 0:G0.truncation)!=="auto";if(j0!=null&&!l0)p.push({type:"unsupported",feature:"reasoningEffortUpdate",details:!U0.supportsConfigurationUpdate?"reasoningEffortUpdate is only supported by GPT-6 and later models":"reasoningEffortUpdate requires standard reasoning mode without automatic compaction or automatic truncation"});else if(j0!=null)u0.unshift({type:"configuration_update",reasoning:{effort:j0}});if(G0==null?void 0:G0.compactionTrigger)u0.push({type:"compaction_trigger"});let O1=(q=G0==null?void 0:G0.strictJsonSchema)!=null?q:!0,Q1=(w==null?void 0:w.type)==="json"&&w.schema!=null?Re(w.schema):void 0;if(Q1!=null)p.push(...Q1.warnings);let _0=G0==null?void 0:G0.include;function m0(D1){if(_0==null)_0=[D1];else if(!_0.includes(D1))_0=[..._0,D1]}function i0(D1){var x$;return(x$=O==null?void 0:O.find((i$)=>i$.type==="provider"&&i$.id===D1))==null?void 0:x$.name}function a0(D1){return i0(D1)!=null}let X0=typeof(G0==null?void 0:G0.logprobs)==="number"?G0==null?void 0:G0.logprobs:(G0==null?void 0:G0.logprobs)===!0?sH$:void 0;if(X0)m0("message.output_text.logprobs");let Q0=(x=O==null?void 0:O.find((D1)=>D1.type==="provider"&&(D1.id==="openai.web_search"||D1.id==="openai.web_search_preview")))==null?void 0:x.name;if(Q0&&Q.supportsWebSearchSourcesInclude!==!1&&(G0==null?void 0:G0.includeWebSearchSources)!==!1)m0("web_search_call.action.sources");if(a0("openai.code_interpreter"))m0("code_interpreter_call.outputs");let K0=G0==null?void 0:G0.store;if(K0===!1&&$0)m0("reasoning.encrypted_content");let H0={model:Z,input:u0,temperature:X,top_p:G,max_output_tokens:Y,...((w==null?void 0:w.type)==="json"||(G0==null?void 0:G0.textVerbosity))&&{text:{...(w==null?void 0:w.type)==="json"&&{format:Q1!=null?{type:"json_schema",strict:O1,name:(_=w.name)!=null?_:"response",description:w.description,schema:Q1.schema}:{type:"json_object"}},...(G0==null?void 0:G0.textVerbosity)&&{verbosity:G0.textVerbosity}}},conversation:G0==null?void 0:G0.conversation,max_tool_calls:G0==null?void 0:G0.maxToolCalls,metadata:G0==null?void 0:G0.metadata,parallel_tool_calls:G0==null?void 0:G0.parallelToolCalls,previous_response_id:G0==null?void 0:G0.previousResponseId,store:K0,user:G0==null?void 0:G0.user,instructions:G0==null?void 0:G0.instructions,service_tier:G0==null?void 0:G0.serviceTier,include:_0,prompt_cache_key:G0==null?void 0:G0.promptCacheKey,prompt_cache_options:G0==null?void 0:G0.promptCacheOptions,prompt_cache_retention:G0==null?void 0:G0.promptCacheRetention,safety_identifier:G0==null?void 0:G0.safetyIdentifier,top_logprobs:X0,truncation:G0==null?void 0:G0.truncation,...(G0==null?void 0:G0.contextManagement)&&{context_management:G0.contextManagement.map((D1)=>({type:D1.type,compact_threshold:D1.compactThreshold}))},...$0&&(N0!=null||o!=null||(G0==null?void 0:G0.reasoningMode)!=null||(G0==null?void 0:G0.reasoningContext)!=null)&&{reasoning:{...N0!=null&&{effort:N0},...o!=null&&{summary:o},...(G0==null?void 0:G0.reasoningMode)!=null&&{mode:G0.reasoningMode},...(G0==null?void 0:G0.reasoningContext)!=null&&{context:G0.reasoningContext}}}};if(U0.supportsConfigurationUpdate&&H0.prompt_cache_retention!=null)H0.prompt_cache_retention=void 0,p.push({type:"unsupported",feature:"promptCacheRetention",details:"promptCacheRetention is not supported by GPT-6 and later models; use promptCacheOptions instead"});if($0){if(!(N0==="none"&&U0.supportsNonReasoningParameters)){if(H0.temperature!=null)H0.temperature=void 0,p.push({type:"unsupported",feature:"temperature",details:"temperature is not supported for reasoning models"});if(H0.top_p!=null)H0.top_p=void 0,p.push({type:"unsupported",feature:"topP",details:"topP is not supported for reasoning models"});if(U0.supportedReasoningEfforts!=null&&(H0.top_logprobs!=null||((V=H0.include)==null?void 0:V.includes("message.output_text.logprobs")))){H0.top_logprobs=void 0;let D1=(y=H0.include)==null?void 0:y.filter((x$)=>x$!=="message.output_text.logprobs");H0.include=D1!=null&&D1.length>0?D1:void 0,p.push({type:"unsupported",feature:"logprobs",details:"logprobs is not supported for reasoning models"})}}}else{if((G0==null?void 0:G0.reasoningEffort)!=null)p.push({type:"unsupported",feature:"reasoningEffort",details:"reasoningEffort is not supported for non-reasoning models"});if((G0==null?void 0:G0.reasoningSummary)!=null)p.push({type:"unsupported",feature:"reasoningSummary",details:"reasoningSummary is not supported for non-reasoning models"});if((G0==null?void 0:G0.reasoningMode)!=null)p.push({type:"unsupported",feature:"reasoningMode",details:"reasoningMode is not supported for non-reasoning models"});if((G0==null?void 0:G0.reasoningContext)!=null)p.push({type:"unsupported",feature:"reasoningContext",details:"reasoningContext is not supported for non-reasoning models"})}if((G0==null?void 0:G0.serviceTier)==="flex"&&!U0.supportsFlexProcessing)p.push({type:"unsupported",feature:"serviceTier",details:"flex processing is only available for o3, o4-mini, and gpt-5 models"}),delete H0.service_tier;if(((G0==null?void 0:G0.serviceTier)==="priority"||(G0==null?void 0:G0.serviceTier)==="fast")&&!U0.supportsPriorityProcessing)p.push({type:"unsupported",feature:"serviceTier",details:"priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported"}),delete H0.service_tier;let R0=(i=(l=(g=O==null?void 0:O.find((D1)=>D1.type==="provider"&&D1.id==="openai.shell"))==null?void 0:g.args)==null?void 0:l.environment)==null?void 0:i.type,A0=R0==="containerAuto"||R0==="containerReference";return{webSearchToolName:Q0,args:{...H0,tools:d0,tool_choice:S0},warnings:[...p,...W1],store:K0,toolNameMapping:Z0,providerOptionsName:v0,isShellProviderExecuted:A0}}getArgs(Z){return $.prepareRequest({modelId:this.modelId,config:this.config,options:Z})}async doGenerate(Z){var Q,Y,X,J,G,W,K,H,F,U,N,B,O,L,w,j,E,z,T,A,P,q,x,_,V,y,g,l,i,p,U0,v0,G0,N0;let{args:o,warnings:$0,webSearchToolName:Z0,toolNameMapping:r,providerOptionsName:Y0,isShellProviderExecuted:d0}=await this.getArgs(Z),S0=this.config.url({path:"/responses",modelId:this.modelId}),W1=TH$(Z.prompt),{responseHeaders:u0,value:L0,rawValue:j0}=await a1({url:S0,headers:M1((Y=(Q=this.config).headers)==null?void 0:Y.call(Q),Z.headers),body:o,failedResponseHandler:_9,successfulResponseHandler:A1(rH$),abortSignal:Z.abortSignal,fetch:this.config.fetch});if(L0.error)throw new N8({message:L0.error.message,url:S0,requestBodyValues:o,statusCode:400,responseHeaders:u0,responseBody:j0,isRetryable:!1});if(L0.output==null){let X0=(X=L0.incomplete_details)==null?void 0:X.reason;throw new N8({message:X0?`Responses API returned no output (${X0})`:"Responses API returned no output",url:S0,requestBodyValues:o,statusCode:500,responseHeaders:u0,responseBody:j0,isRetryable:!1})}let l0=[],O1=[],Q1=(G=(J=Z.tools)==null?void 0:J.filter((X0)=>X0.type==="function"))!=null?G:[],_0=!1,m0=[];for(let X0 of L0.output)switch(X0.type){case"reasoning":{if(X0.summary.length===0)X0.summary.push({type:"summary_text",text:""});for(let Q0 of X0.summary)l0.push({type:"reasoning",text:Q0.text,providerMetadata:{[Y0]:{itemId:X0.id,reasoningEncryptedContent:(W=X0.encrypted_content)!=null?W:null}}});break}case"image_generation_call":{l0.push({type:"tool-call",toolCallId:X0.id,toolName:r.toCustomToolName("image_generation"),input:"{}",providerExecuted:!0}),l0.push({type:"tool-result",toolCallId:X0.id,toolName:r.toCustomToolName("image_generation"),result:{result:X0.result}});break}case"tool_search_call":{let Q0=(K=X0.call_id)!=null?K:X0.id,K0=X0.execution==="server";if(K0)m0.push(Q0);l0.push({type:"tool-call",toolCallId:Q0,toolName:r.toCustomToolName("tool_search"),input:JSON.stringify({arguments:X0.arguments,call_id:X0.call_id}),...K0?{providerExecuted:!0}:{},providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"tool_search_output":{let Q0=(F=(H=X0.call_id)!=null?H:m0.shift())!=null?F:X0.id;l0.push({type:"tool-result",toolCallId:Q0,toolName:r.toCustomToolName("tool_search"),result:{tools:X0.tools},providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"local_shell_call":{l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:r.toCustomToolName("local_shell"),input:JSON.stringify({action:X0.action}),providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"shell_call":{l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:r.toCustomToolName("shell"),input:JSON.stringify({action:{commands:X0.action.commands}}),...d0&&{providerExecuted:!0},providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"shell_call_output":{l0.push({type:"tool-result",toolCallId:X0.call_id,toolName:r.toCustomToolName("shell"),result:{output:X0.output.map((Q0)=>({stdout:Q0.stdout,stderr:Q0.stderr,outcome:Q0.outcome.type==="exit"?{type:"exit",exitCode:Q0.outcome.exit_code}:{type:"timeout"}}))}});break}case"message":{for(let Q0 of X0.content){if(((N=(U=Z.providerOptions)==null?void 0:U[Y0])==null?void 0:N.logprobs)&&Q0.logprobs)O1.push(Q0.logprobs);let K0={itemId:X0.id,...X0.phase!=null&&{phase:X0.phase},...Q0.annotations.length>0&&{annotations:Q0.annotations}};l0.push({type:"text",text:Q0.text,providerMetadata:{[Y0]:K0}});for(let H0 of Q0.annotations)if(H0.type==="url_citation")l0.push({type:"source",sourceType:"url",id:(L=(O=(B=this.config).generateId)==null?void 0:O.call(B))!=null?L:$4(),url:H0.url,title:H0.title});else if(H0.type==="file_citation")l0.push({type:"source",sourceType:"document",id:(E=(j=(w=this.config).generateId)==null?void 0:j.call(w))!=null?E:$4(),mediaType:"text/plain",title:H0.filename,filename:H0.filename,providerMetadata:{[Y0]:{type:H0.type,fileId:H0.file_id,index:H0.index}}});else if(H0.type==="container_file_citation")l0.push({type:"source",sourceType:"document",id:(A=(T=(z=this.config).generateId)==null?void 0:T.call(z))!=null?A:$4(),mediaType:"text/plain",title:H0.filename,filename:H0.filename,providerMetadata:{[Y0]:{type:H0.type,fileId:H0.file_id,containerId:H0.container_id}}});else if(H0.type==="file_path")l0.push({type:"source",sourceType:"document",id:(x=(q=(P=this.config).generateId)==null?void 0:q.call(P))!=null?x:$4(),mediaType:"application/octet-stream",title:H0.file_id,filename:H0.file_id,providerMetadata:{[Y0]:{type:H0.type,fileId:H0.file_id,index:H0.index}}})}break}case"function_call":{_0=!0;let Q0=await LH$({toolCall:{toolCallId:X0.call_id,toolName:X0.name,input:X0.arguments},tools:Q1,providerOptionsName:Y0,itemId:X0.id});if(Q0!=null){l0.push(...Q0);break}l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:X0.name,input:X0.arguments,providerMetadata:{[Y0]:{itemId:X0.id,...X0.async!=null&&{async:X0.async},...X0.namespace!=null&&{namespace:X0.namespace},...X0.caller!=null&&{caller:X0.caller.type==="program"?{type:"program",callerId:X0.caller.caller_id}:X0.caller}}}});break}case"program":{l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:r.toCustomToolName("programmatic_tool_calling"),input:JSON.stringify({code:X0.code,fingerprint:X0.fingerprint}),providerExecuted:!0,providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"program_output":{l0.push({type:"tool-result",toolCallId:X0.call_id,toolName:r.toCustomToolName("programmatic_tool_calling"),result:{result:X0.result,status:X0.status},providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"custom_tool_call":{_0=!0;let Q0=r.toCustomToolName(X0.name);l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:Q0,input:JSON.stringify(X0.input),providerMetadata:{[Y0]:{itemId:X0.id,...X0.async!=null&&{async:X0.async}}}});break}case"web_search_call":{l0.push({type:"tool-call",toolCallId:X0.id,toolName:r.toCustomToolName(Z0!=null?Z0:"web_search"),input:JSON.stringify({}),providerExecuted:!0}),l0.push({type:"tool-result",toolCallId:X0.id,toolName:r.toCustomToolName(Z0!=null?Z0:"web_search"),result:K11(X0.action)});break}case"mcp_call":{let Q0=X0.approval_request_id!=null?(_=W1[X0.approval_request_id])!=null?_:X0.id:X0.id,K0=`mcp.${X0.name}`;l0.push({type:"tool-call",toolCallId:Q0,toolName:K0,input:X0.arguments,providerExecuted:!0,dynamic:!0}),l0.push({type:"tool-result",toolCallId:Q0,toolName:K0,result:{type:"call",serverLabel:X0.server_label,name:X0.name,arguments:X0.arguments,...X0.output!=null?{output:X0.output}:{},...X0.error!=null?{error:X0.error}:{}},providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"mcp_list_tools":break;case"mcp_approval_request":{let Q0=(V=X0.approval_request_id)!=null?V:X0.id,K0=(l=(g=(y=this.config).generateId)==null?void 0:g.call(y))!=null?l:$4(),H0=`mcp.${X0.name}`;l0.push({type:"tool-call",toolCallId:K0,toolName:H0,input:X0.arguments,providerExecuted:!0,dynamic:!0}),l0.push({type:"tool-approval-request",approvalId:Q0,toolCallId:K0});break}case"computer_call":{if(X0.call_id==null){l0.push({type:"tool-call",toolCallId:X0.id,toolName:r.toCustomToolName("computer_use"),input:"",providerExecuted:!0}),l0.push({type:"tool-result",toolCallId:X0.id,toolName:r.toCustomToolName("computer_use"),result:{type:"computer_use_tool_result",status:X0.status}});break}_0=!0;let Q0=r.toCustomToolName("computer");l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:Q0,input:JSON.stringify(RH$(X0)),providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"file_search_call":{l0.push({type:"tool-call",toolCallId:X0.id,toolName:r.toCustomToolName("file_search"),input:"{}",providerExecuted:!0}),l0.push({type:"tool-result",toolCallId:X0.id,toolName:r.toCustomToolName("file_search"),result:{queries:X0.queries,results:(p=(i=X0.results)==null?void 0:i.map((Q0)=>({attributes:Q0.attributes,fileId:Q0.file_id,filename:Q0.filename,score:Q0.score,text:Q0.text})))!=null?p:null}});break}case"code_interpreter_call":{l0.push({type:"tool-call",toolCallId:X0.id,toolName:r.toCustomToolName("code_interpreter"),input:JSON.stringify({code:X0.code,containerId:X0.container_id}),providerExecuted:!0}),l0.push({type:"tool-result",toolCallId:X0.id,toolName:r.toCustomToolName("code_interpreter"),result:{outputs:X0.outputs}});break}case"apply_patch_call":{_0=!0,l0.push({type:"tool-call",toolCallId:X0.call_id,toolName:r.toCustomToolName("apply_patch"),input:JSON.stringify({callId:X0.call_id,operation:X0.operation}),providerMetadata:{[Y0]:{itemId:X0.id}}});break}case"compaction":{l0.push({type:"custom",kind:"openai.compaction",providerMetadata:{[Y0]:{type:"compaction",itemId:X0.id,encryptedContent:X0.encrypted_content}}});break}}let i0={[Y0]:{responseId:L0.id,...O1.length>0?{logprobs:O1}:{},...typeof L0.service_tier==="string"?{serviceTier:L0.service_tier}:{},...((U0=L0.reasoning)==null?void 0:U0.context)!=null?{reasoningContext:L0.reasoning.context}:{}}},a0=L0.usage;return{content:l0,finishReason:{unified:yW0({finishReason:(v0=L0.incomplete_details)==null?void 0:v0.reason,hasFunctionCall:_0}),raw:(N0=(G0=L0.incomplete_details)==null?void 0:G0.reason)!=null?N0:void 0},usage:a01(a0),request:{body:o},response:{id:L0.id,timestamp:new Date(L0.created_at*1000),modelId:L0.model,headers:u0,body:j0},providerMetadata:i0,warnings:$0}}async doStream(Z){var Q,Y,X,J;let{args:G,warnings:W,webSearchToolName:K,toolNameMapping:H,store:F,providerOptionsName:U,isShellProviderExecuted:N}=await this.getArgs(Z),B=this.config.url({path:"/responses",modelId:this.modelId}),{responseHeaders:O,value:L}=await a1({url:B,headers:M1((Y=(Q=this.config).headers)==null?void 0:Y.call(Q),Z.headers),body:{...G,stream:!0},failedResponseHandler:_9,successfulResponseHandler:zY(WT4),abortSignal:Z.abortSignal,fetch:this.config.fetch}),w=await B11({stream:L,getError:($0)=>IH$($0)||qH$($0)&&$0.response.error!=null?$0:void 0,isOutputChunk:yT4,isAcceptedChunk:fT4,url:B,requestBodyValues:G,responseHeaders:O}),j=this,E=TH$(Z.prompt),z=(J=(X=Z.tools)==null?void 0:X.filter(($0)=>$0.type==="function"))!=null?J:[],T=new Map,A={unified:"other",raw:void 0},P=void 0,q=[],x=null,_={},V=[],y,g=!1,l={},i={},p=({itemId:$0,outputIndex:Z0})=>{var r;return Z0==null?$0:(r=i[Z0])!=null?r:$0},U0,v0,G0=[],N0=!1;return{stream:w.pipeThrough(new TransformStream({start($0){$0.enqueue({type:"stream-start",warnings:W})},transform($0,Z0){var r,Y0,d0,S0,W1,u0,L0,j0,l0,O1,Q1,_0,m0,i0,a0,X0,Q0,K0,H0,R0,A0,D1,x$,i$,w8,K8,z5,h8,p6,A9,o0,E1,h$,c1,K$,f8,Z5,F4,Q$,I8,s$,N$,K9,BQ,MZ;if(Z.includeRawChunks)Z0.enqueue({type:"raw",rawValue:$0.rawValue});if(!$0.success){let V0=AT4($0.rawValue)?TT4({value:$0.rawValue,cause:$0.error,url:B,requestBodyValues:G,responseHeaders:O}):$0.error;N0=!0,A={unified:"error",raw:void 0},Z0.enqueue({type:"error",error:V0});return}let e=$0.value;if(MH$(e)){if(e.item.type==="function_call"){let V0=G11({toolName:e.item.name,tools:z});if(_[e.output_index]={toolName:e.item.name,toolCallId:e.item.call_id,suppressInputStreaming:V0,bufferedInputDeltas:V0?[]:void 0,async:e.item.async},!V0)Z0.enqueue({type:"tool-input-start",id:e.item.call_id,toolName:e.item.name})}else if(e.item.type==="custom_tool_call"){let V0=H.toCustomToolName(e.item.name);_[e.output_index]={toolName:V0,toolCallId:e.item.call_id,async:e.item.async},Z0.enqueue({type:"tool-input-start",id:e.item.call_id,toolName:V0})}else if(e.item.type==="web_search_call")_[e.output_index]={toolName:H.toCustomToolName(K!=null?K:"web_search"),toolCallId:e.item.id},Z0.enqueue({type:"tool-input-start",id:e.item.id,toolName:H.toCustomToolName(K!=null?K:"web_search"),providerExecuted:!0}),Z0.enqueue({type:"tool-input-end",id:e.item.id}),Z0.enqueue({type:"tool-call",toolCallId:e.item.id,toolName:H.toCustomToolName(K!=null?K:"web_search"),input:JSON.stringify({}),providerExecuted:!0});else if(e.item.type==="computer_call"){let V0=(r=e.item.call_id)!=null?r:e.item.id;_[e.output_index]={toolName:H.toCustomToolName("computer"),toolCallId:V0},Z0.enqueue({type:"tool-input-start",id:V0,toolName:H.toCustomToolName("computer")})}else if(e.item.type==="code_interpreter_call")_[e.output_index]={toolName:H.toCustomToolName("code_interpreter"),toolCallId:e.item.id,codeInterpreter:{containerId:e.item.container_id}},Z0.enqueue({type:"tool-input-start",id:e.item.id,toolName:H.toCustomToolName("code_interpreter"),providerExecuted:!0}),Z0.enqueue({type:"tool-input-delta",id:e.item.id,delta:`{"containerId":"${e.item.container_id}","code":"`});else if(e.item.type==="file_search_call")Z0.enqueue({type:"tool-call",toolCallId:e.item.id,toolName:H.toCustomToolName("file_search"),input:"{}",providerExecuted:!0});else if(e.item.type==="image_generation_call")Z0.enqueue({type:"tool-call",toolCallId:e.item.id,toolName:H.toCustomToolName("image_generation"),input:"{}",providerExecuted:!0});else if(e.item.type==="tool_search_call"){let V0=e.item.id,I1=H.toCustomToolName("tool_search"),u8=e.item.execution==="server";if(_[e.output_index]={toolName:I1,toolCallId:V0,toolSearchExecution:(Y0=e.item.execution)!=null?Y0:"server"},u8)Z0.enqueue({type:"tool-input-start",id:V0,toolName:I1,providerExecuted:!0})}else if(e.item.type==="tool_search_output");else if(e.item.type==="mcp_call"||e.item.type==="mcp_list_tools"||e.item.type==="mcp_approval_request");else if(e.item.type==="apply_patch_call"){let{call_id:V0,operation:I1}=e.item;if(_[e.output_index]={toolName:H.toCustomToolName("apply_patch"),toolCallId:V0,applyPatch:{hasDiff:I1.type==="delete_file",endEmitted:I1.type==="delete_file"}},Z0.enqueue({type:"tool-input-start",id:V0,toolName:H.toCustomToolName("apply_patch")}),I1.type==="delete_file"){let u8=JSON.stringify({callId:V0,operation:I1});Z0.enqueue({type:"tool-input-delta",id:V0,delta:u8}),Z0.enqueue({type:"tool-input-end",id:V0})}else Z0.enqueue({type:"tool-input-delta",id:V0,delta:`{"callId":"${o2(V0)}","operation":{"type":"${o2(I1.type)}","path":"${o2(I1.path)}","diff":"`})}else if(e.item.type==="shell_call")_[e.output_index]={toolName:H.toCustomToolName("shell"),toolCallId:e.item.call_id};else if(e.item.type==="shell_call_output");else if(e.item.type==="message")i[e.output_index]=e.item.id,V.splice(0,V.length),y=(d0=e.item.phase)!=null?d0:void 0,Z0.enqueue({type:"text-start",id:e.item.id,providerMetadata:{[U]:{itemId:e.item.id,...e.item.phase!=null&&{phase:e.item.phase}}}});else if(MH$(e)&&e.item.type==="reasoning")i[e.output_index]=e.item.id,l[e.item.id]={encryptedContent:e.item.encrypted_content,summaryParts:{0:"active"}},Z0.enqueue({type:"reasoning-start",id:`${e.item.id}:0`,providerMetadata:{[U]:{itemId:e.item.id,reasoningEncryptedContent:(S0=e.item.encrypted_content)!=null?S0:null}}})}else if(qT4(e)){if(e.item.type==="message"){let V0=p({itemId:e.item.id,outputIndex:e.output_index}),I1=(W1=e.item.phase)!=null?W1:y;y=void 0,Z0.enqueue({type:"text-end",id:V0,providerMetadata:{[U]:{itemId:V0,...I1!=null&&{phase:I1},...V.length>0&&{annotations:V}}}}),i[e.output_index]=void 0}else if(e.item.type==="function_call"){let V0=e.item,I1=_[e.output_index];_[e.output_index]=void 0,g=!0;let u8=(u0=I1==null?void 0:I1.suppressInputStreaming)!=null?u0:G11({toolName:V0.name,tools:z}),v=()=>{var m;if(u8){Z0.enqueue({type:"tool-input-start",id:V0.call_id,toolName:V0.name});let d=(m=I1==null?void 0:I1.bufferedInputDeltas)!=null?m:[];if(d.length>0)for(let M of d)Z0.enqueue({type:"tool-input-delta",id:V0.call_id,delta:M});else if(V0.arguments.length>0)Z0.enqueue({type:"tool-input-delta",id:V0.call_id,delta:V0.arguments})}Z0.enqueue({type:"tool-input-end",id:V0.call_id,...V0.namespace!=null&&{providerMetadata:{[U]:{namespace:V0.namespace}}}}),Z0.enqueue({type:"tool-call",toolCallId:V0.call_id,toolName:V0.name,input:V0.arguments,providerMetadata:{[U]:{itemId:V0.id,...V0.async!=null?{async:V0.async}:(I1==null?void 0:I1.async)!=null?{async:I1.async}:{},...V0.namespace!=null&&{namespace:V0.namespace},...V0.caller!=null&&{caller:V0.caller.type==="program"?{type:"program",callerId:V0.caller.caller_id}:V0.caller}}}})};if(!u8){v();return}return LH$({toolCall:{toolCallId:V0.call_id,toolName:V0.name,input:V0.arguments},tools:z,providerOptionsName:U,itemId:V0.id}).then((m)=>{if(m==null){v();return}for(let d of m)Z0.enqueue({type:"tool-input-start",id:d.toolCallId,toolName:d.toolName}),Z0.enqueue({type:"tool-input-delta",id:d.toolCallId,delta:d.input}),Z0.enqueue({type:"tool-input-end",id:d.toolCallId}),Z0.enqueue(d)})}else if(e.item.type==="program")Z0.enqueue({type:"tool-call",toolCallId:e.item.call_id,toolName:H.toCustomToolName("programmatic_tool_calling"),input:JSON.stringify({code:e.item.code,fingerprint:e.item.fingerprint}),providerExecuted:!0,providerMetadata:{[U]:{itemId:e.item.id}}});else if(e.item.type==="program_output")Z0.enqueue({type:"tool-result",toolCallId:e.item.call_id,toolName:H.toCustomToolName("programmatic_tool_calling"),result:{result:e.item.result,status:e.item.status},providerMetadata:{[U]:{itemId:e.item.id}}});else if(e.item.type==="custom_tool_call"){let V0=_[e.output_index];_[e.output_index]=void 0,g=!0;let I1=H.toCustomToolName(e.item.name);Z0.enqueue({type:"tool-input-end",id:e.item.call_id}),Z0.enqueue({type:"tool-call",toolCallId:e.item.call_id,toolName:I1,input:JSON.stringify(e.item.input),providerMetadata:{[U]:{itemId:e.item.id,...e.item.async!=null?{async:e.item.async}:(V0==null?void 0:V0.async)!=null?{async:V0.async}:{}}}})}else if(e.item.type==="web_search_call")_[e.output_index]=void 0,Z0.enqueue({type:"tool-result",toolCallId:e.item.id,toolName:H.toCustomToolName(K!=null?K:"web_search"),result:K11(e.item.action)});else if(e.item.type==="computer_call"){if(_[e.output_index]=void 0,e.item.call_id==null){Z0.enqueue({type:"tool-input-end",id:e.item.id}),Z0.enqueue({type:"tool-call",toolCallId:e.item.id,toolName:H.toCustomToolName("computer_use"),input:"",providerExecuted:!0}),Z0.enqueue({type:"tool-result",toolCallId:e.item.id,toolName:H.toCustomToolName("computer_use"),result:{type:"computer_use_tool_result",status:e.item.status}});return}g=!0;let V0=H.toCustomToolName("computer"),I1=JSON.stringify(RH$(e.item));Z0.enqueue({type:"tool-input-delta",id:e.item.call_id,delta:I1}),Z0.enqueue({type:"tool-input-end",id:e.item.call_id}),Z0.enqueue({type:"tool-call",toolCallId:e.item.call_id,toolName:V0,input:I1,providerMetadata:{[U]:{itemId:e.item.id}}})}else if(e.item.type==="file_search_call")_[e.output_index]=void 0,Z0.enqueue({type:"tool-result",toolCallId:e.item.id,toolName:H.toCustomToolName("file_search"),result:{queries:e.item.queries,results:(j0=(L0=e.item.results)==null?void 0:L0.map((V0)=>({attributes:V0.attributes,fileId:V0.file_id,filename:V0.filename,score:V0.score,text:V0.text})))!=null?j0:null}});else if(e.item.type==="code_interpreter_call")_[e.output_index]=void 0,Z0.enqueue({type:"tool-result",toolCallId:e.item.id,toolName:H.toCustomToolName("code_interpreter"),result:{outputs:e.item.outputs}});else if(e.item.type==="image_generation_call")Z0.enqueue({type:"tool-result",toolCallId:e.item.id,toolName:H.toCustomToolName("image_generation"),result:{result:e.item.result}});else if(e.item.type==="tool_search_call"){let V0=_[e.output_index],I1=e.item.execution==="server";if(V0!=null){let u8=I1?V0.toolCallId:(l0=e.item.call_id)!=null?l0:e.item.id;if(I1)G0.push(u8);else Z0.enqueue({type:"tool-input-start",id:u8,toolName:V0.toolName});Z0.enqueue({type:"tool-input-end",id:u8}),Z0.enqueue({type:"tool-call",toolCallId:u8,toolName:V0.toolName,input:JSON.stringify({arguments:e.item.arguments,call_id:I1?null:u8}),...I1?{providerExecuted:!0}:{},providerMetadata:{[U]:{itemId:e.item.id}}})}_[e.output_index]=void 0}else if(e.item.type==="tool_search_output"){let V0=(Q1=(O1=e.item.call_id)!=null?O1:G0.shift())!=null?Q1:e.item.id;Z0.enqueue({type:"tool-result",toolCallId:V0,toolName:H.toCustomToolName("tool_search"),result:{tools:e.item.tools},providerMetadata:{[U]:{itemId:e.item.id}}})}else if(e.item.type==="mcp_call"){_[e.output_index]=void 0;let V0=(_0=e.item.approval_request_id)!=null?_0:void 0,I1=V0!=null?(i0=(m0=T.get(V0))!=null?m0:E[V0])!=null?i0:e.item.id:e.item.id,u8=`mcp.${e.item.name}`;Z0.enqueue({type:"tool-call",toolCallId:I1,toolName:u8,input:e.item.arguments,providerExecuted:!0,dynamic:!0}),Z0.enqueue({type:"tool-result",toolCallId:I1,toolName:u8,result:{type:"call",serverLabel:e.item.server_label,name:e.item.name,arguments:e.item.arguments,...e.item.output!=null?{output:e.item.output}:{},...e.item.error!=null?{error:e.item.error}:{}},providerMetadata:{[U]:{itemId:e.item.id}}})}else if(e.item.type==="mcp_list_tools")_[e.output_index]=void 0;else if(e.item.type==="apply_patch_call"){let V0=_[e.output_index];if((V0==null?void 0:V0.applyPatch)&&!V0.applyPatch.endEmitted&&e.item.operation.type!=="delete_file"){if(!V0.applyPatch.hasDiff)Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:o2(e.item.operation.diff)});Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:'"}}'}),Z0.enqueue({type:"tool-input-end",id:V0.toolCallId}),V0.applyPatch.endEmitted=!0}if(V0&&e.item.status==="completed")g=!0,Z0.enqueue({type:"tool-call",toolCallId:V0.toolCallId,toolName:H.toCustomToolName("apply_patch"),input:JSON.stringify({callId:e.item.call_id,operation:e.item.operation}),providerMetadata:{[U]:{itemId:e.item.id}}});_[e.output_index]=void 0}else if(e.item.type==="mcp_approval_request"){_[e.output_index]=void 0;let V0=(Q0=(X0=(a0=j.config).generateId)==null?void 0:X0.call(a0))!=null?Q0:$4(),I1=(K0=e.item.approval_request_id)!=null?K0:e.item.id;T.set(I1,V0);let u8=`mcp.${e.item.name}`;Z0.enqueue({type:"tool-call",toolCallId:V0,toolName:u8,input:e.item.arguments,providerExecuted:!0,dynamic:!0}),Z0.enqueue({type:"tool-approval-request",approvalId:I1,toolCallId:V0})}else if(e.item.type==="local_shell_call")_[e.output_index]=void 0,Z0.enqueue({type:"tool-call",toolCallId:e.item.call_id,toolName:H.toCustomToolName("local_shell"),input:JSON.stringify({action:{type:"exec",command:e.item.action.command,timeoutMs:e.item.action.timeout_ms,user:e.item.action.user,workingDirectory:e.item.action.working_directory,env:e.item.action.env}}),providerMetadata:{[U]:{itemId:e.item.id}}});else if(e.item.type==="shell_call")_[e.output_index]=void 0,Z0.enqueue({type:"tool-call",toolCallId:e.item.call_id,toolName:H.toCustomToolName("shell"),input:JSON.stringify({action:{commands:e.item.action.commands}}),...N&&{providerExecuted:!0},providerMetadata:{[U]:{itemId:e.item.id}}});else if(e.item.type==="shell_call_output")Z0.enqueue({type:"tool-result",toolCallId:e.item.call_id,toolName:H.toCustomToolName("shell"),result:{output:e.item.output.map((V0)=>({stdout:V0.stdout,stderr:V0.stderr,outcome:V0.outcome.type==="exit"?{type:"exit",exitCode:V0.outcome.exit_code}:{type:"timeout"}}))}});else if(e.item.type==="reasoning"){let V0=p({itemId:e.item.id,outputIndex:e.output_index}),I1=l[V0];if(I1!=null){let u8=Object.entries(I1.summaryParts).filter(([v,m])=>m==="active"||m==="can-conclude").map(([v])=>v);for(let v of u8)Z0.enqueue({type:"reasoning-end",id:`${V0}:${v}`,providerMetadata:{[U]:{itemId:V0,reasoningEncryptedContent:(H0=e.item.encrypted_content)!=null?H0:null}}});delete l[V0]}i[e.output_index]=void 0}else if(e.item.type==="compaction")Z0.enqueue({type:"custom",kind:"openai.compaction",providerMetadata:{[U]:{type:"compaction",itemId:e.item.id,encryptedContent:e.item.encrypted_content}}})}else if(VT4(e)){let V0=_[e.output_index];if(V0!=null)if(V0.suppressInputStreaming)(R0=V0.bufferedInputDeltas)==null||R0.push(e.delta);else Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:e.delta})}else if(kT4(e)){let V0=_[e.output_index];if(V0!=null)Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:e.delta})}else if(vT4(e)){let V0=_[e.output_index];if(V0==null?void 0:V0.applyPatch)Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:o2(e.delta)}),V0.applyPatch.hasDiff=!0}else if(bT4(e)){let V0=_[e.output_index];if((V0==null?void 0:V0.applyPatch)&&!V0.applyPatch.endEmitted){if(!V0.applyPatch.hasDiff)Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:o2(e.diff)}),V0.applyPatch.hasDiff=!0;Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:'"}}'}),Z0.enqueue({type:"tool-input-end",id:V0.toolCallId}),V0.applyPatch.endEmitted=!0}}else if(ST4(e))Z0.enqueue({type:"tool-result",toolCallId:e.item_id,toolName:H.toCustomToolName("image_generation"),result:{result:e.partial_image_b64},preliminary:!0});else if(CT4(e)){let V0=_[e.output_index];if(V0!=null)Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:o2(e.delta)})}else if(_T4(e)){let V0=_[e.output_index];if(V0!=null)Z0.enqueue({type:"tool-input-delta",id:V0.toolCallId,delta:'"}'}),Z0.enqueue({type:"tool-input-end",id:V0.toolCallId}),Z0.enqueue({type:"tool-call",toolCallId:V0.toolCallId,toolName:H.toCustomToolName("code_interpreter"),input:JSON.stringify({code:e.code,containerId:V0.codeInterpreter.containerId}),providerExecuted:!0})}else if(IT4(e))x=e.response.id,Z0.enqueue({type:"response-metadata",id:e.response.id,timestamp:new Date(e.response.created_at*1000),modelId:e.response.model});else if(PT4(e)){let V0=p({itemId:e.item_id,outputIndex:e.output_index});if(Z0.enqueue({type:"text-delta",id:V0,delta:e.delta}),((D1=(A0=Z.providerOptions)==null?void 0:A0[U])==null?void 0:D1.logprobs)&&e.logprobs)q.push(e.logprobs)}else if(e.type==="response.reasoning_summary_part.added"){let V0=p({itemId:e.item_id,outputIndex:e.output_index});if(e.summary_index>0){let I1=l[V0];if(I1!=null){I1.summaryParts[e.summary_index]="active";for(let u8 of Object.keys(I1.summaryParts))if(I1.summaryParts[u8]==="can-conclude")Z0.enqueue({type:"reasoning-end",id:`${V0}:${u8}`,providerMetadata:{[U]:{itemId:V0}}}),I1.summaryParts[u8]="concluded";Z0.enqueue({type:"reasoning-start",id:`${V0}:${e.summary_index}`,providerMetadata:{[U]:{itemId:V0,reasoningEncryptedContent:(x$=I1.encryptedContent)!=null?x$:null}}})}}}else if(e.type==="response.reasoning_summary_text.delta"){let V0=p({itemId:e.item_id,outputIndex:e.output_index});Z0.enqueue({type:"reasoning-delta",id:`${V0}:${e.summary_index}`,delta:e.delta,providerMetadata:{[U]:{itemId:V0}}})}else if(e.type==="response.reasoning_summary_part.done"){let V0=p({itemId:e.item_id,outputIndex:e.output_index}),I1=l[V0];if(I1!=null)if(F)Z0.enqueue({type:"reasoning-end",id:`${V0}:${e.summary_index}`,providerMetadata:{[U]:{itemId:V0}}}),I1.summaryParts[e.summary_index]="concluded";else I1.summaryParts[e.summary_index]="can-conclude"}else if(MT4(e)){if(!N0)A={unified:yW0({finishReason:(i$=e.response.incomplete_details)==null?void 0:i$.reason,hasFunctionCall:g}),raw:(K8=(w8=e.response.incomplete_details)==null?void 0:w8.reason)!=null?K8:void 0};if(P=(z5=e.response.usage)!=null?z5:void 0,typeof e.response.service_tier==="string")U0=e.response.service_tier;if(((h8=e.response.reasoning)==null?void 0:h8.context)!=null)v0=e.response.reasoning.context}else if(qH$(e)){let V0=(p6=e.response.incomplete_details)==null?void 0:p6.reason;if(A={unified:V0?yW0({finishReason:V0,hasFunctionCall:g}):"error",raw:V0!=null?V0:"error"},P=(A9=e.response.usage)!=null?A9:void 0,((o0=e.response.reasoning)==null?void 0:o0.context)!=null)v0=e.response.reasoning.context;if(!N0&&e.response.error!=null){N0=!0;let I1={type:"response.failed",sequence_number:e.sequence_number,response:{error:e.response.error,incomplete_details:e.response.incomplete_details,service_tier:e.response.service_tier}};Z0.enqueue({type:"error",error:(E1=Te(I1))!=null?E1:I1})}}else if(xT4(e)){if(V.push(e.annotation),e.annotation.type==="url_citation")Z0.enqueue({type:"source",sourceType:"url",id:(K$=(c1=(h$=j.config).generateId)==null?void 0:c1.call(h$))!=null?K$:$4(),url:e.annotation.url,title:e.annotation.title});else if(e.annotation.type==="file_citation")Z0.enqueue({type:"source",sourceType:"document",id:(F4=(Z5=(f8=j.config).generateId)==null?void 0:Z5.call(f8))!=null?F4:$4(),mediaType:"text/plain",title:e.annotation.filename,filename:e.annotation.filename,providerMetadata:{[U]:{type:e.annotation.type,fileId:e.annotation.file_id,index:e.annotation.index}}});else if(e.annotation.type==="container_file_citation")Z0.enqueue({type:"source",sourceType:"document",id:(s$=(I8=(Q$=j.config).generateId)==null?void 0:I8.call(Q$))!=null?s$:$4(),mediaType:"text/plain",title:e.annotation.filename,filename:e.annotation.filename,providerMetadata:{[U]:{type:e.annotation.type,fileId:e.annotation.file_id,containerId:e.annotation.container_id}}});else if(e.annotation.type==="file_path")Z0.enqueue({type:"source",sourceType:"document",id:(BQ=(K9=(N$=j.config).generateId)==null?void 0:K9.call(N$))!=null?BQ:$4(),mediaType:"application/octet-stream",title:e.annotation.file_id,filename:e.annotation.file_id,providerMetadata:{[U]:{type:e.annotation.type,fileId:e.annotation.file_id,index:e.annotation.index}}})}else if(IH$(e))N0=!0,A={unified:"error",raw:"error"},Z0.enqueue({type:"error",error:(MZ=Te(e))!=null?MZ:e})},flush($0){var Z0;for(let Y0 of Object.values(_)){if(!(Y0==null?void 0:Y0.suppressInputStreaming))continue;$0.enqueue({type:"tool-input-start",id:Y0.toolCallId,toolName:Y0.toolName});for(let d0 of(Z0=Y0.bufferedInputDeltas)!=null?Z0:[])$0.enqueue({type:"tool-input-delta",id:Y0.toolCallId,delta:d0})}let r={[U]:{responseId:x,...q.length>0?{logprobs:q}:{},...U0!==void 0?{serviceTier:U0}:{},...v0!==void 0?{reasoningContext:v0}:{}}};$0.enqueue({type:"finish",finishReason:A,usage:a01(P),providerMetadata:r})}})),request:{body:G},response:{headers:O}}}};kH$=W0(()=>s(h6.object({inputFileExpiresAfter:h6.number().int().min(3600).max(2592000).optional()})));i01=W0(()=>s($F$())),uT4=W0(()=>s(h6.object({custom_id:h6.string(),response:h6.object({status_code:h6.number(),request_id:h6.string().nullish(),body:h6.unknown()}).nullish(),error:h6.object({code:h6.string(),message:h6.string()}).nullish()}))),lT4=W0(()=>s(h6.object({data:h6.array($F$()),has_more:h6.boolean(),last_id:h6.string().nullish()})));dT4=new Set(["openai.code_interpreter","openai.custom","openai.file_search","openai.web_search","openai.web_search_preview"]);oT4=E6.strictObject({type:E6.string(),responseEvent:E6.string().optional()}).refine(($)=>$.type==="response.event"===($.responseEvent!==void 0),"responseEvent is required for response.event and forbidden for other event types."),rT4=E6.strictObject({client:E6.strictObject({dataChannel:E6.strictObject({allowedClientEvents:E6.union([E6.literal("all"),E6.array(E6.string())]).optional(),allowedServerEvents:E6.union([E6.literal("all"),E6.array(oT4)]).optional()})}).optional(),delegation:E6.strictObject({type:E6.literal("client")}).nullable().optional(),input:E6.array(E6.discriminatedUnion("role",[E6.strictObject({type:E6.literal("message"),role:E6.enum(["developer","user"]),content:E6.tuple([E6.strictObject({type:E6.literal("input_text"),text:E6.string()})])}),E6.strictObject({type:E6.literal("message"),role:E6.literal("assistant"),content:E6.tuple([E6.strictObject({type:E6.enum(["text","output_text"]),text:E6.string()})])})])).max(128).optional(),store:E6.boolean().optional(),voice:E6.strictObject({id:E6.string().min(1)}).optional()}),SH$=LW.union([LW.strictObject({type:LW.literal("audio/pcm"),rate:LW.union([LW.literal(16000),LW.literal(24000)])}),LW.strictObject({type:LW.enum(["audio/pcma","audio/pcmu"]),rate:LW.literal(8000)})]);U11=y$.object({id:y$.string().min(1)}),sT4=U11.extend({delegation:y$.object({type:y$.enum(["client","responses"])}).nullish()}),CH$=y$.object({seconds:y$.number().nonnegative()}),_H$={delta:y$.string(),start_ms:y$.number().nonnegative(),end_ms:y$.number().nonnegative()},gW0={client_event_id:y$.string().nullish()},p01={...gW0,start_ms:y$.number().nonnegative(),end_ms:y$.number().nonnegative()},ZF$=y$.discriminatedUnion("type",[y$.object({type:y$.literal("session.started"),session:sT4}),y$.object({type:y$.literal("session.closed"),session:U11.nullish(),usage:CH$,reason:y$.string()}),y$.object({type:y$.literal("session.usage.updated"),usage:CH$,context_window:y$.object({usage_ratio:y$.number().min(0).max(1)}).nullish()}),y$.object({type:y$.literal("session.output_audio.delta"),delta:y$.string()}),y$.object({type:y$.literal("session.input_transcript.delta"),..._H$}),y$.object({type:y$.literal("session.output_transcript.delta"),..._H$}),y$.object({type:y$.literal("session.delegation.created"),offset_ms:y$.number().nonnegative().nullish(),delegation:y$.object({id:y$.string().min(1),target:y$.enum(["client","responses"]).nullish(),response_id:y$.string().min(1).nullish()})}),y$.object({type:y$.literal("session.updated"),session:U11,...gW0}),y$.object({type:y$.literal("session.input_audio.muted"),...gW0}),y$.object({type:y$.literal("session.input_audio.unmuted"),...gW0}),y$.object({type:y$.literal("session.instructions.appended"),...p01}),y$.object({type:y$.literal("session.thinking.appended"),...p01}),y$.object({type:y$.literal("session.commentary.appended"),...p01}),y$.object({type:y$.literal("error"),error:y$.object({message:y$.string(),code:y$.string().nullish(),client_event_id:y$.string().nullish()})})]),aT4=new Set(ZF$.options.map(($)=>$.shape.type.value)),eT4=y$.object({type:y$.string()});YR4=r2.object({session:r2.object({id:r2.string().min(1)}),transport:r2.object({type:r2.literal("webrtc"),sdp:r2.string().min(1)})});WR4=["gpt-live-1"];FR4=W0(()=>s(n01.object({instructions:n01.string().nullish(),speed:n01.number().min(0.25).max(4).default(1).nullish()}))),UR4=class ${constructor(Z,Q){this.modelId=Z,this.config=Q,this.specificationVersion="v4"}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get provider(){return this.config.provider}async getArgs({text:Z,voice:Q="alloy",outputFormat:Y="mp3",speed:X,instructions:J,language:G,providerOptions:W}){let K=[],H=await C$({provider:"openai",providerOptions:W,schema:FR4}),F={model:this.modelId,input:Z,voice:Q,response_format:"mp3",speed:X,instructions:J};if(Y)if(["mp3","opus","aac","flac","wav","pcm"].includes(Y))F.response_format=Y;else K.push({type:"unsupported",feature:"outputFormat",details:`Unsupported output format: ${Y}. Using mp3 instead.`});if(H){let U={};for(let N in U){let B=U[N];if(B!==void 0)F[N]=B}}if(G)K.push({type:"unsupported",feature:"language",details:`OpenAI speech models do not support language selection. Language parameter "${G}" was ignored.`});return{requestBody:F,warnings:K}}async doGenerate(Z){var Q,Y,X,J,G;let W=(X=(Y=(Q=this.config._internal)==null?void 0:Q.currentDate)==null?void 0:Y.call(Q))!=null?X:new Date,{requestBody:K,warnings:H}=await this.getArgs(Z),{value:F,responseHeaders:U,rawValue:N}=await a1({url:this.config.url({path:"/audio/speech",modelId:this.modelId}),headers:M1((G=(J=this.config).headers)==null?void 0:G.call(J),Z.headers),body:K,failedResponseHandler:_9,successfulResponseHandler:yJ$(),abortSignal:Z.abortSignal,fetch:this.config.fetch});return{audio:F,warnings:H,request:{body:JSON.stringify(K)},response:{timestamp:W,modelId:this.modelId,headers:U,body:N}}}},NR4=W0(()=>s(r6.object({text:r6.string(),language:r6.string().nullish(),duration:r6.number().nullish(),words:r6.array(r6.object({word:r6.string(),start:r6.number(),end:r6.number()})).nullish(),segments:r6.array(r6.union([r6.object({id:r6.number(),seek:r6.number(),start:r6.number(),end:r6.number(),text:r6.string(),tokens:r6.array(r6.number()),temperature:r6.number(),avg_logprob:r6.number(),compression_ratio:r6.number(),no_speech_prob:r6.number()}),r6.object({type:r6.literal("transcript.text.segment"),id:r6.string(),start:r6.number(),end:r6.number(),text:r6.string(),speaker:r6.string()})])).nullish()}))),bH$=W0(()=>s($7.object({include:$7.array($7.string()).optional(),language:$7.string().optional(),prompt:$7.string().optional(),temperature:$7.number().min(0).max(1).default(0).optional(),timestampGranularities:$7.array($7.enum(["word","segment"])).default(["segment"]).optional(),responseFormat:$7.enum(["json","verbose_json","diarized_json"]).optional(),chunkingStrategy:$7.union([$7.literal("auto"),$7.object({type:$7.literal("server_vad"),threshold:$7.number().min(0).max(1).optional(),prefixPaddingMs:$7.number().int().min(0).optional(),silenceDurationMs:$7.number().int().min(0).optional()})]).optional(),streaming:$7.object({delay:$7.enum(["minimal","low","medium","high","xhigh"]).optional(),include:$7.array($7.string()).optional()}).optional()})));fH$={afrikaans:"af",arabic:"ar",armenian:"hy",azerbaijani:"az",belarusian:"be",bosnian:"bs",bulgarian:"bg",catalan:"ca",chinese:"zh",croatian:"hr",czech:"cs",danish:"da",dutch:"nl",english:"en",estonian:"et",finnish:"fi",french:"fr",galician:"gl",german:"de",greek:"el",hebrew:"he",hindi:"hi",hungarian:"hu",icelandic:"is",indonesian:"id",italian:"it",japanese:"ja",kannada:"kn",kazakh:"kk",korean:"ko",latvian:"lv",lithuanian:"lt",macedonian:"mk",malay:"ms",marathi:"mr",maori:"mi",nepali:"ne",norwegian:"no",persian:"fa",polish:"pl",portuguese:"pt",romanian:"ro",russian:"ru",serbian:"sr",slovak:"sk",slovenian:"sl",spanish:"es",swahili:"sw",swedish:"sv",tagalog:"tl",tamil:"ta",thai:"th",turkish:"tr",ukrainian:"uk",urdu:"ur",vietnamese:"vi",welsh:"cy"},BR4=class ${constructor(Z,Q){this.modelId=Z,this.config=Q,this.specificationVersion="v4"}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get provider(){return this.config.provider}async getArgs({audio:Z,mediaType:Q,providerOptions:Y}){var X,J;let G=[],W=await C$({provider:"openai",providerOptions:Y,schema:bH$}),K=new FormData,H=Z instanceof Uint8Array?new Blob([Z]):new Blob([h9(Z)]);K.append("model",this.modelId);let F=IJ$(Q);if(K.append("file",new File([H],"audio",{type:Q}),`audio.${F}`),this.modelId==="whisper-1")K.append("response_format","verbose_json");let U=this.modelId==="gpt-4o-transcribe-diarize",N=(X=W==null?void 0:W.chunkingStrategy)!=null?X:U?"auto":void 0;if(W){let B=["gpt-4o-transcribe","gpt-4o-mini-transcribe"].includes(this.modelId),O={include:W.include,language:W.language,prompt:W.prompt,...this.modelId!=="whisper-1"&&{response_format:(J=W.responseFormat)!=null?J:U?"diarized_json":B?"json":"verbose_json"},temperature:W.temperature,timestamp_granularities:W.timestampGranularities};for(let[L,w]of Object.entries(O))if(w!=null)if(Array.isArray(w))for(let j of w)K.append(`${L}[]`,String(j));else K.append(L,String(w))}else if(U)K.append("response_format","diarized_json");if(N!=null)K.append("chunking_strategy",typeof N==="string"?N:JSON.stringify({type:N.type,...N.threshold!=null&&{threshold:N.threshold},...N.prefixPaddingMs!=null&&{prefix_padding_ms:N.prefixPaddingMs},...N.silenceDurationMs!=null&&{silence_duration_ms:N.silenceDurationMs}}));return{formData:K,warnings:G}}async doGenerate(Z){var Q,Y,X,J,G,W,K,H,F,U,N;if(xH$(this.modelId))throw new s1({functionality:`non-streaming transcription with ${this.modelId}`});let B=(X=(Y=(Q=this.config._internal)==null?void 0:Q.currentDate)==null?void 0:Y.call(Q))!=null?X:new Date,{formData:O,warnings:L}=await this.getArgs(Z),{value:w,responseHeaders:j,rawValue:E}=await KW({url:this.config.url({path:"/audio/transcriptions",modelId:this.modelId}),headers:M1((G=(J=this.config).headers)==null?void 0:G.call(J),Z.headers),formData:O,failedResponseHandler:_9,successfulResponseHandler:A1(NR4),abortSignal:Z.abortSignal,fetch:this.config.fetch}),z=w.language!=null&&w.language in fH$?fH$[w.language]:void 0,T=(W=w.segments)==null?void 0:W.flatMap((A)=>("speaker"in A)?[{text:A.text,startSecond:A.start,endSecond:A.end,speaker:A.speaker}]:[]);return{text:w.text,segments:(U=(F=(K=w.segments)==null?void 0:K.map((A)=>({text:A.text,startSecond:A.start,endSecond:A.end})))!=null?F:(H=w.words)==null?void 0:H.map((A)=>({text:A.word,startSecond:A.start,endSecond:A.end})))!=null?U:[],language:z,durationInSeconds:(N=w.duration)!=null?N:void 0,warnings:L,response:{timestamp:B,modelId:this.modelId,headers:j,body:E},...T!=null&&T.length>0&&{providerMetadata:{openai:{segments:T}}}}}async doStream(Z){var Q,Y,X,J,G,W,K;if(!xH$(this.modelId))throw new s1({functionality:`streaming transcription with ${this.modelId}`});let H=(X=(Y=(Q=this.config._internal)==null?void 0:Q.currentDate)==null?void 0:Y.call(Q))!=null?X:new Date,F=await C$({provider:"openai",providerOptions:Z.providerOptions,schema:bH$}),U=[],N=(G=(J=Z.providerOptions)==null?void 0:J.openai)!=null?G:{};for(let L of["include","prompt","temperature","timestampGranularities"])if(N[L]!=null)U.push({type:"unsupported",feature:`providerOptions.openai.${L}`,details:`OpenAI streaming transcription does not support ${L}.`});let B=M1((K=(W=this.config).headers)==null?void 0:K.call(W),Z.headers),O=OR4({modelId:this.modelId,inputAudioFormat:Z.inputAudioFormat,providerOptions:F});return{request:{body:O},response:{timestamp:H,modelId:this.modelId},stream:DR4({webSocket:this.config.webSocket,url:U30(this.config.url({path:"/realtime?intent=transcription",modelId:this.modelId})),headers:B,sessionUpdate:O,language:F==null?void 0:F.language,warnings:U,audio:Z.audio,abortSignal:Z.abortSignal,includeRawChunks:Z.includeRawChunks})}}};jR4=W0(()=>s(wR4.object({}))),ER4=class ${constructor(Z,Q){this.modelId=Z,this.config=Q,this.specificationVersion="v4"}static[G4](Z){return v4({modelId:Z.modelId,config:Z.config})}static[W4](Z){return new $(Z.modelId,Z.config)}get provider(){return this.config.provider}async doStream(Z){var Q,Y,X,J,G;if(Z.targetLanguage==null)throw new g8({argument:"targetLanguage",message:`targetLanguage is required for translation model '${this.modelId}'.`});let W=(X=(Y=(Q=this.config._internal)==null?void 0:Q.currentDate)==null?void 0:Y.call(Q))!=null?X:new Date;await C$({provider:"openai",providerOptions:Z.providerOptions,schema:jR4});let K=[];if(AR4(Z.inputAudioFormat),Z.sourceLanguage!=null)K.push({type:"unsupported",feature:"sourceLanguage",details:"The OpenAI Realtime translation API auto-detects the source language and does not accept a source language."});if(Z.outputAudioFormat!=null)K.push({type:"unsupported",feature:"outputAudioFormat",details:"The OpenAI Realtime translation API always outputs 24kHz 16-bit PCM audio and does not accept an output audio format."});let H=M1((G=(J=this.config).headers)==null?void 0:G.call(J),Z.headers),F=PR4({targetLanguage:Z.targetLanguage});return{request:{body:F},response:{timestamp:W,modelId:this.modelId},stream:zR4({webSocket:this.config.webSocket,url:U30(this.config.url({path:`/realtime/translations?model=${encodeURIComponent(this.modelId)}`,modelId:this.modelId})),headers:H,sessionUpdate:F,warnings:K,audio:Z.audio,abortSignal:Z.abortSignal,includeRawChunks:Z.includeRawChunks})}}};RR4=W0(()=>s(tG.object({id:tG.string(),name:tG.string().nullish(),description:tG.string().nullish(),default_version:tG.string().nullish(),latest_version:tG.string().nullish(),created_at:tG.number(),updated_at:tG.number().nullish()}))),Ir5=W0(()=>s(tG.object({id:tG.string(),version:tG.string().nullish(),name:tG.string().nullish(),description:tG.string().nullish()})));Vr5=s2()});function VR4($){return _F("LLMAPI listModels",`${YF$}/models`,{headers:{Authorization:`Bearer ${$||"not-needed"}`},signal:AbortSignal.timeout(15000)})}var YF$="https://api.llmapi.ai/v1",IR4="https://llmapi.ai/wp-content/uploads/2026/01/Frame-2085662993.png",XF$;var JF$=D(()=>{uW0();E2();XF$={info:{id:"llmapi",name:"LLMAPI",description:"One API key, 400+ models across every provider",logo:IR4},supportedMethods:["api-key"],create($){let Z=s2({apiKey:$||"not-needed",baseURL:YF$,name:"llmapi"}),Q=Object.assign((...Y)=>Z.chat(...Y),Z,{languageModel:Z.chat});return{info:this.info,aiSdk:Q,async listModels(){let Y=await VR4($);if(!Y.ok)await EY("LLMAPI listModels",Y);let{data:X}=await vF("LLMAPI listModels",Y);return X.filter((J)=>typeof J.id==="string"&&J.id.length>0).map((J)=>{let G=J.architecture??{},W=!!J.reasoning_levels?.length||!!J.providers?.some((K)=>K.reasoning);return{providerId:"llmapi",modelId:J.id,title:J.name||J.id,description:J.description??null,logo:null,capabilities:iG0(G.input_modalities??[],G.output_modalities??[],J.supported_parameters,W?["reasoning"]:[]),limits:{contextWindow:J.context_length??0,maxOutputTokens:null},costs:{input:Number(J.pricing?.prompt)||0,output:Number(J.pricing?.completion)||0}}})}}}}});function kR4($,Z){return _F("OpenAI-compatible listModels",`${$}/models`,{headers:Z,signal:AbortSignal.timeout(15000)})}function SR4($){let Z=JSON.parse($);if(!Z.baseUrl||typeof Z.baseUrl!=="string")throw Error("Invalid OpenAI-compatible credential: missing baseUrl field");let Q=Z.baseUrl.replace(/\/+$/,"");if(!Q.endsWith("/v1"))Q+="/v1";return{baseUrl:Q,apiKey:Z.apiKey??""}}var CR4="https://assets.decocache.com/decocms/d138aa7e-5b8c-4821-9e64-6aff40df2cdc/ChatGPT_logo.svg",GF$;var WF$=D(()=>{uW0();E2();GF$={info:{id:"openai-compatible",name:"OpenAI Compatible",description:"Custom OpenAI-compatible endpoint",logo:CR4},supportedMethods:["api-key"],create($){let{baseUrl:Z,apiKey:Q}=SR4($),Y=s2({baseURL:Z,apiKey:Q||"not-needed",name:"openai-compatible"}),X=Object.assign((...J)=>Y.chat(...J),Y,{languageModel:Y.chat});return{info:this.info,aiSdk:X,async listModels(){let J={};if(Q)J.Authorization=`Bearer ${Q}`;let G=await kR4(Z,J);if(!G.ok)await EY("OpenAI-compatible listModels",G);return(await vF("OpenAI-compatible listModels",G)).data.filter((K)=>typeof K.id==="string"&&K.id.length>0).map((K)=>({providerId:"openai-compatible",modelId:K.id,title:K.id,description:K.owned_by?`Owned by ${K.owned_by}`:null,logo:null,capabilities:[],limits:null,costs:null}))}}}}});function v9(){return{...E0().aiGatewayEnabled&&{deco:Ew},anthropic:ZK$,google:ZH$,openrouter:pG0,llmapi:XF$,"openai-compatible":GF$}}var wW=D(()=>{QK$();QH$();JF$();WF$();_s0();ul();X$()});function bR4($,Z,Q){su($,Z,Q)}function xR4($,Z,Q){au($,Z,Q)}function L11($){qe.delete($)}async function w11($,Z){if(!E0().plansEnabled)return null;if(!E0().aiGatewayEnabled)return null;let Q=qe.get(Z);if(Q&&Date.now()-Q.at<HF$)return Q.value;let Y=O11.get(Z);if(Y)return Y;let X=fR4($,Z,Q).finally(()=>{O11.delete(Z)});return O11.set(Z,X),X}async function fR4($,Z,Q){let Y=v9().deco;if(!Y?.getEntitlements)return null;let X=$.auth.user?.id??$.auth.apiKey?.userId;if(!X)return KF$(Z,Q);try{let J=await TQ(X),{features:G,usage:W,modelPins:K,credits:H}=await Y.getEntitlements(J,Z);if(!G||typeof G!=="object")throw new z2(502);let F={features:G,modelPins:K,usageState:W?.state??null,creditsUsd:H?.remainingUsd??null};return bR4(qe,Z,F),xR4(qe,vR4,HF$),F}catch(J){let G=J instanceof z2&&J.isDefinitive,W=J instanceof z2&&J.isDormant,K={organizationId:Z,servedStale:!!Q,status:J instanceof z2?J.status:null,error:J instanceof Error?J.message:String(J)};if(W);else if(G)console.error("[Plans] entitlements REFUSED by the gateway \u2014 gates fail OPEN for every org until this is fixed (check STUDIO_JWT_SECRET and STUDIO_PROVISION_SECRET_KEY against the gateway's MESH_JWT_SECRET and STUDIO_PROVISION_KEY)",K);else console.warn("[Plans] entitlements lookup failed (gateway unreachable) \u2014 gates fail OPEN",K);return KF$(Z,Q)}}function KF$($,Z){if(Z&&Date.now()-Z.at>=_R4)return qe.delete($),null;return Z?.value??null}async function IJ($,Z,Q){let Y=await w11($,Z);return FF$(Y?.features??null,Q)}function FF$($,Z){if(!$)return!0;return $[Z]===!0}function yR4($,Z){if($!=="exhausted")return!1;return!(Z!==null&&Z>0)}async function oG($,Z,Q){let Y=await w11($,Z);if(!yR4(Y?.usageState??null,Y?.creditsUsd??null))return;throw new lW0(`${Q} is paused: this organization has used its monthly AI allowance`)}async function UF$($,Z,Q){let Y=await w11($,Z);if(!Y)return null;if(FF$(Y.features,"model_choice"))return null;return Y.modelPins?.[Q]??null}var JU,HF$=60000,_R4=600000,qe,vR4=1e4,O11,lW0;var JH=D(()=>{bK();wW();ul();MK();X$();JU=class JU extends t7{feature;code="feature_not_in_plan";constructor($,Z){super($);this.feature=Z;this.name="FeatureNotInPlanError"}};qe=new Map;O11=new Map;lW0=class lW0 extends t7{code="ai_budget_exhausted";constructor($){super($);this.name="AiBudgetExhaustedError"}}});function NF$($){let{ctx:Z,toolName:Q,organizationId:Y,durationMs:X,isError:J}=$,G={"tool.name":Q,"organization.id":Y,status:J?"error":"success"};Z.meter.createHistogram("studio_tool.execution.duration",{description:"Duration of in-process Studio tool executions in milliseconds",unit:"ms"}).record(X,G),Z.meter.createCounter("studio_tool.execution.count",{description:"Number of in-process Studio tool executions"}).add(1,G)}import{SpanStatusCode as BF$}from"@opentelemetry/api";function c($){return{...$,execute:async(Z,Q)=>{let Y=performance.now(),X=!1;return await Q.timings.measure(`tool.${$.name}`,async()=>Q.tracer.startActiveSpan(`tool.${$.name}`,{attributes:{"tool.name":$.name,"organization.id":Q.organization?.id??"system","user.id":Q.auth.user?.id??Q.auth.apiKey?.userId??"anonymous"}},async(J)=>{try{Q.toolName=$.name,Q.access.setToolName?.($.name);let G=Q.organization?.id;if(G&&!cY$($.name)&&await X30(Q.db,G))throw new is(`This organization is blocked: ${$.name} is unavailable until the block is resolved`);if(($.requiresFeature||$.requiresAiBudget)&&!G)console.warn(`[Plans] ${$.name} declares a plan gate but no organization is in scope \u2014 running UNGATED`);if($.requiresFeature&&G&&!await IJ(Q,G,$.requiresFeature))throw new JU(`${$.name} needs the ${$.requiresFeature} feature, which this organization's plan does not include`,$.requiresFeature);if($.requiresAiBudget&&G)await oG(Q,G,$.name);let W=await $.handler(Z,Q);return J.setStatus({code:BF$.OK}),W}catch(G){throw X=!0,J.setStatus({code:BF$.ERROR,message:G.message}),J.recordException(G),G}finally{NF$({ctx:Q,toolName:$.name,organizationId:Q.organization?.id??"system",durationMs:performance.now()-Y,isError:X}),J.end()}}))}}}var k0=D(()=>{T2();JH()});function J0($){if(!$.organization)throw Error("This operation requires organization scope");return $.organization}function p0($){return $.auth.user?.id??$.auth.apiKey?.userId}function a2($){return!!($.auth.user||$.auth.apiKey)}function n($){if(!a2($))throw Error("Authentication required")}import{z as H4}from"zod";var OF$,DF$=1000,gR4=500,LF$,wF$,jF$,EF$,zF$,PF$,AF$,TF$,RF$,qF$;var bc=D(()=>{OF$=H4.record(H4.string(),H4.array(H4.string())),LF$=H4.record(H4.string(),H4.array(H4.string()).max(gR4)).refine(($)=>Object.keys($).length<=DF$,{message:`Permissions cannot grant more than ${DF$} resources`}),wF$=H4.object({id:H4.string().describe("Unique identifier for the API key"),name:H4.string().describe("Human-readable name for the API key"),userId:H4.string().describe("ID of the user who owns this API key"),permissions:OF$.describe('Permissions granted to this API key. Format: { resource: [actions] } where resource is "self" for management tools or "conn_<UUID>" for connection-specific tools. Example: { "self": ["API_KEY_CREATE"], "conn_abc123": ["SEND_MESSAGE"] }'),expiresAt:H4.string().datetime().nullable().optional().describe("Expiration date of the API key (ISO 8601)"),createdAt:H4.string().datetime().describe("When the API key was created (ISO 8601)")}),jF$=H4.object({name:H4.string().min(1).max(64).describe("Human-readable name for the API key"),permissions:LF$.describe(`Permissions to grant (REQUIRED \u2014 there is no implicit default). Format: { resource: [actions] }. Resource is "self" for management tools or "conn_<UUID>" for connection-specific tools. Actions are tool names (e.g., ["ORGANIZATION_GET"]) or ["*"] for all. Example: { "self": ["ORGANIZATION_GET", "COLLECTION_CONNECTIONS_LIST"] }. The key is authorized solely by this allowlist; the creator's role does not widen it.`),expiresIn:H4.number().positive().optional().describe("Expiration time in seconds. If not provided, key never expires."),metadata:H4.record(H4.string(),H4.unknown()).optional().describe("Additional metadata to store with the API key")}),EF$=H4.object({id:H4.string().describe("Unique identifier for the API key"),name:H4.string().describe("Human-readable name for the API key"),key:H4.string().describe("The actual API key value. STORE THIS SECURELY - it will not be shown again!"),permissions:OF$.describe('Permissions granted to this API key. Format: { resource: [actions] } where resource is "self" for management tools or "conn_<UUID>" for connection-specific tools'),expiresAt:H4.string().datetime().nullable().optional().describe("Expiration date of the API key (ISO 8601)"),createdAt:H4.string().datetime().describe("When the API key was created (ISO 8601)")}),zF$=H4.object({}),PF$=H4.object({items:H4.array(wF$).describe("List of API keys (without key values)")}),AF$=H4.object({keyId:H4.string().describe("ID of the API key to update"),name:H4.string().min(1).max(64).optional().describe("New name for the API key"),permissions:LF$.optional().describe('New permissions. Format: { resource: [actions] } where resource is "self" for management tools or "conn_<UUID>" for connection-specific tools. Actions are tool names or "*" for all. Example: { "self": ["API_KEY_CREATE"] }. Replaces existing permissions.'),metadata:H4.record(H4.string(),H4.unknown()).optional().describe("New metadata. Replaces existing metadata.")}),TF$=H4.object({item:wF$.describe("The updated API key (without key value)")}),RF$=H4.object({keyId:H4.string().describe("ID of the API key to delete")}),qF$=H4.object({success:H4.boolean().describe("Whether the deletion was successful"),keyId:H4.string().describe("ID of the deleted API key")})});var j11;var MF$=D(()=>{G6();k0();bc();j11=c({name:"API_KEY_CREATE",description:"Create an API key with scoped permissions. The key value is returned only once \u2014 store it immediately.",annotations:{title:"Create API Key",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:jF$,outputSchema:EF$,handler:async($,Z)=>{n(Z),await Z.access.check();let Q=await Z.boundAuth.apiKey.create({name:$.name,permissions:$.permissions,expiresIn:$.expiresIn,metadata:{...$.metadata,organization:Z.organization}}),Y=Q.expiresAt?Q.expiresAt instanceof Date?Q.expiresAt.toISOString():Q.expiresAt:null,X=Q.createdAt instanceof Date?Q.createdAt.toISOString():Q.createdAt,J=p0(Z);if(J)f1.capture({distinctId:J,event:"api_key_created",...Z.organization?.id?{groups:{organization:Z.organization.id}}:{},properties:{key_id:Q.id,key_name:Q.name??$.name,organization_id:Z.organization?.id,has_expiry:!!Y}});return{id:Q.id,name:Q.name??$.name,key:Q.key,permissions:Q.permissions??{},expiresAt:Y,createdAt:X}}})});var E11;var IF$=D(()=>{G6();k0();bc();E11=c({name:"API_KEY_DELETE",description:"Delete and instantly revoke an API key. Cannot be undone.",annotations:{title:"Delete API Key",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:RF$,outputSchema:qF$,handler:async($,Z)=>{n(Z),await Z.access.check();let Q=p0(Z);if(!Q)throw Error("User ID required to delete API key");let X=(await Z.boundAuth.apiKey.list())?.find((K)=>K.id===$.keyId);if(!X)throw Error("API key not found");let G=X.metadata?.organization?.id,W=Z.organization?.id;if(G!==W)throw Error("Cannot delete API key from another organization");if(await Z.boundAuth.apiKey.delete($.keyId),W)f1.capture({distinctId:Q,event:"api_key_deleted",groups:{organization:W},properties:{key_id:$.keyId,organization_id:W}});return{success:!0,keyId:$.keyId}}})});var z11;var VF$=D(()=>{k0();bc();z11=c({name:"API_KEY_LIST",description:"List API keys for the current user in the current organization. Returns metadata only \u2014 key values are never shown after creation.",annotations:{title:"List API Keys",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:zF$,outputSchema:PF$,handler:async($,Z)=>{n(Z),await Z.access.check();let Q=await Z.boundAuth.apiKey.list(),Y=Z.organization?.id;return{items:(Q??[]).filter((J)=>{return J.metadata?.organization?.id===Y}).map((J)=>({id:J.id,name:J.name??"Unnamed Key",userId:J.userId,permissions:J.permissions??{},expiresAt:J.expiresAt?J.expiresAt instanceof Date?J.expiresAt.toISOString():J.expiresAt:null,createdAt:J.createdAt instanceof Date?J.createdAt.toISOString():J.createdAt}))}}})});var P11;var kF$=D(()=>{k0();bc();P11=c({name:"API_KEY_UPDATE",description:"Update an API key's name, permissions, or metadata. The key value cannot be changed or retrieved.",annotations:{title:"Update API Key",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:AF$,outputSchema:TF$,handler:async($,Z)=>{if(n(Z),await Z.access.check(),!p0(Z))throw Error("User ID required to update API key");let X=(await Z.boundAuth.apiKey.list())?.find((H)=>H.id===$.keyId);if(!X)throw Error(`API key not found: ${$.keyId}`);let G=X.metadata?.organization?.id,W=Z.organization?.id;if(G!==W)throw Error("Cannot update API key from another organization");let K=await Z.boundAuth.apiKey.update({keyId:$.keyId,name:$.name,permissions:$.permissions,metadata:{...$.metadata,organization:Z.organization}});if(!K)throw Error(`Failed to update API key: ${$.keyId}`);return{item:{id:K.id,name:K.name??$.name??"Unnamed Key",userId:K.userId,permissions:K.permissions??{},expiresAt:K.expiresAt?K.expiresAt instanceof Date?K.expiresAt.toISOString():K.expiresAt:null,createdAt:K.createdAt instanceof Date?K.createdAt.toISOString():K.createdAt}}}})});var SF$=D(()=>{MF$();IF$();VF$();kF$();bc()});function iB($){let Z=$.trim();if(!Z)return{ok:!1,error:"Enter a website URL."};let Q=uR4.test(Z),Y=lR4.test(Z),X=cR4.test(Z);if(Q&&!Y&&!X)return{ok:!1,error:"Use an HTTP or HTTPS website URL."};let J=Y?Z:`https://${Z}`,G;try{G=new URL(J)}catch{return{ok:!1,error:"Enter a valid website URL."}}if(G.protocol!=="http:"&&G.protocol!=="https:")return{ok:!1,error:"Use an HTTP or HTTPS website URL."};let W=G.hostname.split(".");if(W.length<2||W.some((K)=>!K||!mR4.test(K)))return{ok:!1,error:"Enter a valid website URL."};return G.protocol="https:",{ok:!0,value:G.origin}}function A11($){if(!$)return null;let Z=iB($);return Z.ok?new URL(Z.value).hostname:null}var uR4,lR4,cR4,mR4;var xc=D(()=>{uR4=/^[a-zA-Z][a-zA-Z\d+.-]*:/,lR4=/^[a-zA-Z][a-zA-Z\d+.-]*:\/\//,cR4=/^[^\s/:?#]+\.[^\s/:?#]+:\d+(?:[/?#]|$)/,mR4=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/i});import{z as VJ}from"zod";function cW0($){return{repository_id:$.repositoryId,provider:$.provider,host:$.host,path:$.path,default_branch:$.defaultBranch??null,web_url:$.webUrl??null}}function CF$($){let Z=dR4.safeParse($);if(!Z.success)return null;return{repositoryId:Z.data.repository_id,provider:Z.data.provider,host:Z.data.host,path:Z.data.path,defaultBranch:Z.data.default_branch??null,webUrl:Z.data.web_url??null}}function mW0($){return $.provider==="github"&&$.host.toLowerCase()==="github.com"?$.path:null}var T11,dR4;var dW0=D(()=>{T11=VJ.object({repositoryId:VJ.string().min(1),provider:VJ.enum(["github","gitlab","bitbucket"]),host:VJ.string().min(1),path:VJ.string().min(1),defaultBranch:VJ.string().nullable().optional(),webUrl:VJ.string().nullable().optional()}),dR4=VJ.object({repository_id:VJ.string().min(1),provider:VJ.enum(["github","gitlab","bitbucket"]),host:VJ.string().min(1),path:VJ.string().min(1),default_branch:VJ.string().nullable().optional(),web_url:VJ.string().nullable().optional()})});import{z as ZQ}from"zod";function jW($){if($.baseUrl)return $.baseUrl.replace(/\/+$/,"");return(($.settings??E0()).reportsInternalApiUrl??iR4).replace(/\/+$/,"")}function vF$($={}){return`${jW($)}/api/v2/mcp`}function nw($){let Z=$.apiKey??($.settings??E0()).reportsInternalApiKey;if(!Z)throw Error("REPORTS_INTERNAL_API_KEY (or the legacy COMMERCE_DISCOVERY_INTERNAL_API_KEY) is required to set up reports.");return Z}function Me($){return new URL($).hostname}function nR4($){return $==="ownership_unverified"||$==="already_claimed_by_other_org"}function tR4($,Z={}){switch($){case"ownership_unverified":{let Q=Z.email?`O e-mail ${Z.email}`:"Este e-mail",Y=Z.domain?` ${Z.domain}`:" este site";return`${Q} n\xE3o tem permiss\xE3o para reivindicar${Y}. Use um e-mail do dom\xEDnio do site ou pe\xE7a ao suporte para autorizar seu dom\xEDnio.`}case"already_claimed_by_other_org":return"Este site j\xE1 pertence a outra organiza\xE7\xE3o. Fale com o suporte para transferir o acesso.";case"unknown":return"N\xE3o foi poss\xEDvel configurar o Reports. Tente novamente ou fale com o suporte.";default:return $}}async function oR4($){let Z=await fc($);return nR4(Z?.error)?Z.error:"unknown"}async function fc($){let Z=await $.text().catch(()=>"");if(!Z)return;try{return JSON.parse(Z)}catch{return}}async function pW0($){let Z=`Reports auth failed with status ${$.status}.`,Q=await $.text().catch(()=>"");if(!Q)return Z;try{let Y=JSON.parse(Q),X=typeof Y.error==="string"?Y.error:typeof Y.message==="string"?Y.message:null;return X?`Reports auth failed: ${X}.`:Z}catch{return Z}}async function xF$($,Z={}){let Q=jW(Z),Y=nw(Z),X=Z.fetchImpl??fetch,J=Me($.siteUrl),G=`${Q}/api/v2/internal/diagnostics/${encodeURIComponent(J)}/upgrade`,W=await X(G,{method:"POST",headers:{Authorization:`Bearer ${Y}`,"Content-Type":"application/json"},body:JSON.stringify({org_id:$.orgId,...$.orgName?{name:$.orgName}:{},...$.email?{email:$.email}:{},...$.reportUrl?{report_url:$.reportUrl}:{}}),signal:AbortSignal.timeout(iW0)});if(!W.ok){let H=await oR4(W);throw new bF$(H,{email:$.email,domain:J})}let K=pR4.safeParse(await fc(W));if(!K.success)throw Error("Reports auth response did not include a token.");return{authorizationToken:K.data.token}}async function fF$($,Z={}){let Q=jW(Z),Y=nw(Z),X=Z.fetchImpl??fetch,J=Me($.siteUrl),G=`${Q}/api/v2/internal/diagnostics/${encodeURIComponent(J)}/bindings`,W=await X(G,{method:"POST",headers:{Authorization:`Bearer ${Y}`,"Content-Type":"application/json"},body:JSON.stringify({org_id:$.orgId,provider:$.provider,resource_id:$.resourceId}),signal:AbortSignal.timeout(iW0)});if(W.status===409)return{ok:!1,reason:"resource_already_bound",detail:"Este recurso j\xE1 est\xE1 vinculado a outra loja. Se ele \xE9 seu, fale com o suporte para revis\xE3o manual."};if(W.status===422){let H=_F$.safeParse(await fc(W));return{ok:!1,reason:H.success?H.data.reason??"verification_failed":"verification_failed",detail:(H.success?H.data.detail:void 0)??"N\xE3o foi poss\xEDvel verificar o acesso a este recurso."}}if(!W.ok)throw Error(await pW0(W));let K=_F$.safeParse(await fc(W));if(!K.success||!K.data.binding)throw Error("Reports bind response did not include a binding.");return{ok:!0,resourceId:K.data.binding.resource_id,evidence:K.data.binding.evidence}}async function yF$($,Z={}){let Q=jW(Z),Y=nw(Z),X=Z.fetchImpl??fetch,J=Me($.siteUrl),G=`${Q}/api/v2/internal/diagnostics/${encodeURIComponent(J)}/run`,W=await X(G,{method:"POST",headers:{Authorization:`Bearer ${Y}`,"Content-Type":"application/json"},body:JSON.stringify({org_id:$.orgId,...$.repository?{repository:cW0($.repository)}:{},...$.githubRepositoryPath?{github_repo:$.githubRepositoryPath}:{}}),signal:AbortSignal.timeout(iW0)});if(W.status===409)return{triggered:!1,reason:"not_upgraded"};if(!W.ok)throw Error(await pW0(W));return{triggered:!0}}async function gF$($,Z,Q){try{return await E8(async()=>{let Y=await $(Z,{...Q,signal:AbortSignal.timeout(iW0)});if(Y.status>=500||Y.status===429)throw new R11(await pW0(Y));return Y},{maxAttempts:3,minTimeout:200,maxTimeout:2000,multiplier:2,jitter:1,isRetriable:(Y)=>Y instanceof R11})}catch(Y){if(Y instanceof P5&&Y.cause instanceof Error)throw Y.cause;throw Y}}async function hF$($,Z={}){let Q=jW(Z),Y=nw(Z),X=Z.fetchImpl??fetch,J=Me($.siteUrl),G=`${Q}/api/v2/internal/diagnostics/${encodeURIComponent(J)}/connections/status?org_id=${encodeURIComponent($.orgId)}`,W=await gF$(X,G,{method:"GET",headers:{Authorization:`Bearer ${Y}`}});if(W.status===404||W.status===409)return{providers:{},claimed:!1};if(!W.ok)throw Error(await pW0(W));let K=rR4.safeParse(await fc(W));return{providers:K.success?K.data.providers:{},claimed:!0}}async function uF$($,Z={}){let Q=jW(Z),Y=nw(Z),X=Z.fetchImpl??fetch,J=Me($.siteUrl),G=`${Q}/api/v2/internal/diagnostics/${encodeURIComponent(J)}/unlink`,W=await gF$(X,G,{method:"POST",headers:{Authorization:`Bearer ${Y}`,"Content-Type":"application/json"},body:JSON.stringify({org_id:$.orgId})});if(!W.ok)throw Error(`Reports unlink failed with status ${W.status}.`);let K=sR4.safeParse(await fc(W));if(!K.success)throw Error("Reports unlink response did not say whether it unlinked.");return K.data}var iR4,iW0=15000,pR4,_F$,bF$,R11,rR4,sR4;var pB=D(()=>{p8();a$();dW0();X$();iR4=new URL(Ln1).origin,pR4=ZQ.object({token:ZQ.string().min(1)}),_F$=ZQ.object({binding:ZQ.object({resource_id:ZQ.string(),evidence:ZQ.string()}).optional(),reason:ZQ.string().optional(),detail:ZQ.string().optional()});bF$=class bF$ extends Error{code;constructor($,Z={}){super(tR4($,Z));this.name="ReportsClaimError",this.code=$}};R11=class R11 extends Error{};rR4=ZQ.object({providers:ZQ.record(ZQ.string(),ZQ.object({connected:ZQ.boolean(),via:ZQ.enum(["oauth","sa"]).nullable(),resource:ZQ.string().nullable()}))});sR4=ZQ.object({unlinked:ZQ.boolean(),reason:ZQ.string().optional()})});import{z as rG}from"zod";var aR4,eR4,q11;var lF$=D(()=>{xc();k0();pB();aR4=rG.object({siteUrl:rG.string().min(1).describe("Website URL of the store being bound."),provider:rG.enum(["ga4","gsc"]).describe("Which Google source to bind: ga4 (Analytics) or gsc (Search Console)."),resourceId:rG.string().min(1).describe("The resource id the client typed: GA4 numeric property id, or GSC site (sc-domain:example.com or https://example.com/).")}),eR4=rG.discriminatedUnion("ok",[rG.object({ok:rG.literal(!0),resourceId:rG.string(),evidence:rG.string()}),rG.object({ok:rG.literal(!1),reason:rG.string(),detail:rG.string()})]),q11=c({name:"REPORTS_BIND",description:"Bind a GA4 property or GSC site to the org's store via the shared service account (consent-free lane). The client grants deco-reader@\u2026 access to the resource and provides its id; Deco Score verifies the resource belongs to this domain before persisting. Returns ok:false with an actionable pt-BR detail when verification fails or the resource is already bound elsewhere.",annotations:{title:"Bind Deco Score Data Source",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:aR4,outputSchema:eR4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check("REPORTS_BIND","COMMERCE_DISCOVERY_BIND");let Y=iB($.siteUrl);if(!Y.ok)throw Error(Y.error);return fF$({siteUrl:Y.value,orgId:Q.id,provider:$.provider,resourceId:$.resourceId.trim()})}})});import{z as GU}from"zod";var $q4,Zq4,M11;var cF$=D(()=>{xc();k0();pB();$q4=GU.object({siteUrl:GU.string().min(1).describe("Website URL of the store to inspect.")}),Zq4=GU.object({providers:GU.record(GU.string(),GU.object({connected:GU.boolean(),via:GU.enum(["oauth","sa"]).nullable(),resource:GU.string().nullable()})),claimed:GU.boolean().describe("False when the site isn't claimed/upgraded for this org \u2014 providers is then empty because the status is unreadable, NOT because nothing is connected. The UI must warn instead of rendering existing bindings as disconnected.")}),M11=c({name:"REPORTS_CONNECTION_STATUS",description:"Read per-provider connection status (ga4/gsc/vtex) for the org's store \u2014 { connected, via: oauth|sa, resource }. The single source of truth for whether a data source is connected, unifying the OAuth (Studio vault) and shared-SA binding lanes. Read-only.",annotations:{title:"Deco Score Connection Status",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:$q4,outputSchema:Zq4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check("REPORTS_CONNECTION_STATUS","COMMERCE_DISCOVERY_CONNECTION_STATUS");let Y=iB($.siteUrl);if(!Y.ok)throw Error(Y.error);return hF$({siteUrl:Y.value,orgId:Q.id})}})});import{z as tw}from"zod";function Jq4($){let Z=Xq4.safeParse($),Q=Z.success?Z.data:void 0,Y=(Q?CF$(Q.repository):void 0)??void 0,X=Q&&typeof Q.github_repo==="string"&&Q.github_repo.length>0?Q.github_repo:void 0;return{repository:Y??void 0,githubRepositoryPath:(Y?mW0(Y):X)??void 0}}var Qq4,Yq4,Xq4,I11;var mF$=D(()=>{p8();dW0();xc();k0();pB();Qq4=tw.object({siteUrl:tw.string().min(1).describe("Website URL to run the diagnostic for.")}),Yq4=tw.object({triggered:tw.boolean(),reason:tw.string().optional()}),Xq4=tw.object({repository:tw.unknown().optional(),github_repo:tw.string().optional()}).passthrough().nullable().optional();I11=c({name:"REPORTS_RUN",description:"Trigger the Deco Score run for the current organization's store. Call once the data sources (GA4/GSC/VTEX) are connected \u2014 this run resolves credentials and produces the enriched Deco Score.",annotations:{title:"Run Deco Score",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:Qq4,outputSchema:Yq4,requiresFeature:"diagnostic_enriched",requiresAiBudget:!0,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check("REPORTS_RUN","COMMERCE_DISCOVERY_RUN");let Y=iB($.siteUrl);if(!Y.ok)throw Error(Y.error);let X=Y4.REPORTS(Q.id),J=await Z.storage.connections.findById(X,Q.id),{repository:G,githubRepositoryPath:W}=Jq4(J?.configuration_state);return yF$({siteUrl:Y.value,orgId:Q.id,repository:G,githubRepositoryPath:W})}})});import{z as D5}from"zod";var Gq4,Ie,Wq4,Kq4,Hq4,Fq4,dF$,iF$,WU,Ve;var pF$=D(()=>{Gq4=["github","gitlab","bitbucket"],Ie=D5.enum(Gq4),Wq4=["github_app","oauth","token","github_cli"],Kq4=D5.enum(Wq4),Hq4=["active","revoked"],Fq4=D5.enum(Hq4),dF$=D5.object({provider:Ie,host:D5.string().min(1).describe("Provider host, e.g. github.com"),path:D5.string().min(1).describe("Full namespace path, e.g. owner/name or group/sub/project")}),iF$=D5.object({id:D5.string(),organizationId:D5.string(),type:Ie,host:D5.string(),authKind:Kq4,externalAccountId:D5.string().describe("Provider-side account identity: installation id (GitHub App), user/group id (GitLab) or user/workspace uuid (Bitbucket)."),login:D5.string().describe("Display login of the account/namespace"),avatarUrl:D5.string().nullable(),installationId:D5.number().nullable().describe("GitHub App installation id; null for other auth kinds."),status:Fq4,createdAt:D5.string(),updatedAt:D5.string()}),WU=D5.string().regex(/^[a-z][a-z0-9-]{0,31}$/,"lowercase letters, digits and dashes only"),Ve=D5.object({id:D5.string(),organizationId:D5.string(),accountId:D5.string().nullable().describe("Credential-holding account; null for anonymous public clones."),provider:Ie,host:D5.string(),path:D5.string(),externalId:D5.string().nullable().describe("Provider repository/project id, when known."),defaultBranch:D5.string().nullable(),webUrl:D5.string(),visibility:D5.enum(["public","private","internal"]).nullable(),sandboxImage:WU.describe("Sandbox image this repository's sandboxes boot from."),createdAt:D5.string(),updatedAt:D5.string()})});function Bq4($){let Z=$.toLowerCase();if(Z==="github.com"||Z==="www.github.com")return"github";if(Z==="gitlab.com"||Z==="www.gitlab.com")return"gitlab";if(Z==="bitbucket.org"||Z==="www.bitbucket.org")return"bitbucket";if(/(^|[.-])gitlab([.-]|$)/.test(Z))return"gitlab";return null}function nF$($){let Z=$.toLowerCase();return Z.startsWith("www.")?Z.slice(4):Z}function IY($,Z){let Q=$.trim();if(!Q)return null;let Y,X,J=/^(?:[\w.-]+@)?([\w.-]+(?::\d+)?):(?!\/\/)(.+)$/.exec(Q);if(J&&!/^[a-z][a-z0-9+.-]*:\/\//i.test(Q))Y=J[1],X=J[2];else if(/^[a-z][a-z0-9+.-]*:\/\//i.test(Q)){let F;try{F=new URL(Q)}catch{return null}if(!/^(https?|ssh|git)(\+ssh)?:$/.test(F.protocol))return null;Y=F.host,X=F.pathname}else if(Z?.provider)Y=Z.host??nW0[Z.provider],X=Q;else return null;Y=nF$(Y);let G=Z?.provider??Bq4(Y);if(!G)return null;let W=X.split("/").map((F)=>F.trim()).filter(Boolean),K=W.indexOf("-");if(K>=0)W=W.slice(0,K);if(Nq4.has(G))W=W.slice(0,2);if(W.length<2)return null;let H=W[W.length-1];if(W[W.length-1]=H.replace(/\.git$/i,""),W.some((F)=>F.length===0||F==="."||F===".."))return null;return{provider:G,host:Y,path:W.join("/")}}function GH($){return`${$.host.toLowerCase()}/${$.path.toLowerCase()}`}function V11($){let Z=$.path.split("/");return Z[Z.length-1]??$.path}function Dq4($){let Z=$.path.lastIndexOf("/");return Z<0?"":$.path.slice(0,Z)}function k5($){return{owner:Dq4($),name:V11($)}}function kJ($){return`https://${$.host}/${$.path}`}function ke($,Z){let Q=`${$.host}/${$.path}.git`;if(!Z)return`https://${Q}`;return`https://${Uq4[$.provider]}:${encodeURIComponent(Z)}@${Q}`}function nB($,Z){let Q=nF$(Z);switch($){case"github":return Q==="github.com"?"https://api.github.com":`https://${Q}/api/v3`;case"gitlab":return`https://${Q}/api/v4`;case"bitbucket":return"https://api.bitbucket.org/2.0"}}function yc($,Z){return{provider:"github",host:nW0.github,path:`${$}/${Z}`}}var nW0,Uq4,Nq4;var k11=D(()=>{nW0={github:"github.com",gitlab:"gitlab.com",bitbucket:"bitbucket.org"},Uq4={github:"x-access-token",gitlab:"oauth2",bitbucket:"x-token-auth"},Nq4=new Set(["github","bitbucket"])});function EW($,Z){return`${kJ($)}/${Oq4[$.provider]}/${Z}`}function wq4($){let Z=$.toLowerCase();return Lq4[Z]??Z}function rF$($,Z,Q){let Y=Number($[3]);if(!Number.isSafeInteger(Y)||Y<=0)return null;let X=wq4($[1]),J=$[2],G=Z?decodeURIComponent(J):J;if(/^\d+$/.test(G))return null;let W=`https://${X}/${G}`,K=IY(W)??(Q?IY(W,{provider:Q}):null);if(!K)return null;return{repo:K,number:Y,url:EW(K,Y)}}function tW0($){let Z=$.trim();if(!Z)return null;for(let{re:Q,api:Y,provider:X}of oF$){let J=Q.exec(Z),G=J?rF$(J,Y===!0,X):null;if(G)return G}return null}function S11($){let Z=$.length>tF$?$.slice(0,tF$):$;for(let{re:Q,api:Y,provider:X}of oF$){let J=Q.exec(Z),G=J?rF$(J,Y===!0,X):null;if(G)return G}return null}var Oq4,oF$,Lq4,tF$=200000;var C11=D(()=>{k11();Oq4={github:"pull",gitlab:"-/merge_requests",bitbucket:"pull-requests"};oF$=[{re:/https?:\/\/([^/\s"']+)\/([^\s"']+?)\/-\/merge_requests\/(\d+)/,provider:"gitlab"},{re:/https?:\/\/([^/\s"']+)\/([^/\s"']+\/[^/\s"']+)\/pull\/(\d+)/},{re:/https?:\/\/([^/\s"']+)\/([^/\s"']+\/[^/\s"']+)\/pull-requests\/(\d+)/},{re:/https?:\/\/([^/\s"']+)\/repos\/([^/\s"']+\/[^/\s"']+)\/pulls\/(\d+)/,api:!0},{re:/https?:\/\/([^/\s"']+)\/api\/v4\/projects\/([^/\s"']+)\/merge_requests\/(\d+)/,api:!0,provider:"gitlab"},{re:/https?:\/\/([^/\s"']+)\/2\.0\/repositories\/([^/\s"']+\/[^/\s"']+)\/pullrequests\/(\d+)/,api:!0}],Lq4={"api.github.com":"github.com","api.bitbucket.org":"bitbucket.org"}});function sF$($){return _11[$]}function v11($,Z){return _11[$].checkoutCommand.replace("{number}",String(Z))}function aF$($,Z){let{abbreviation:Q,numberSigil:Y}=_11[$];return`${Q} ${Y}${Z}`}var _11;var eF$=D(()=>{_11={github:{name:"GitHub",cli:"gh",changeRequest:"pull request",abbreviation:"PR",createCommand:"gh pr create",checkoutCommand:"gh pr checkout {number}",numberSigil:"#"},gitlab:{name:"GitLab",cli:"glab",changeRequest:"merge request",abbreviation:"MR",createCommand:"glab mr create",checkoutCommand:"glab mr checkout {number}",numberSigil:"!"},bitbucket:{name:"Bitbucket",cli:null,changeRequest:"pull request",abbreviation:"PR",createCommand:`curl -fsS -X POST -H "Authorization: Bearer $BITBUCKET_TOKEN" -H "Content-Type: application/json" https://api.bitbucket.org/2.0/repositories/<workspace>/<repo>/pullrequests -d '{"title":"<title>","source":{"branch":{"name":"<branch>"}},"destination":{"branch":{"name":"<base>"}}}'`,checkoutCommand:"git fetch origin <source branch> && git checkout <source branch>",numberSigil:"#"}}});var i4=D(()=>{pF$();k11();C11();eF$()});async function Se($,Z,Q){let Y=new AbortController,X,J=new Promise((W,K)=>{X=setTimeout(()=>{Y.abort(),K(new $U$($.id,Q))},Q)}),G=(async()=>{let W=await sG($,Z,!0);try{return(await W.listTools(void 0,{timeout:Q,signal:Y.signal})).tools}finally{await W.close().catch(()=>{})}})();G.catch(()=>{});try{return await Promise.race([G,J])}finally{if(X)clearTimeout(X)}}var $U$;var ZU$=D(()=>{Ce();$U$=class $U$ extends Error{constructor($,Z){super(`listTools timed out after ${Z}ms for connection ${$}`);this.name="ListToolsTimeoutError"}}});var b11=b((QU$)=>{Object.defineProperty(QU$,"__esModule",{value:!0});QU$.kvPrefix=QU$.KvWatchInclude=void 0;QU$.KvWatchInclude={LastValue:"",AllHistory:"history",UpdatesOnly:"updates"};QU$.kvPrefix="KV_"});var DU$=b((NU$)=>{Object.defineProperty(NU$,"__esModule",{value:!0});NU$.KvStatusImpl=NU$.Bucket=NU$.Kvm=NU$.kvOperationHdr=void 0;NU$.Base64KeyCodec=Eq4;NU$.NoopKvCodecs=x11;NU$.defaultBucketOpts=JU$;NU$.validateKey=GU$;NU$.validateSearchKey=WU$;NU$.hasWildcards=KU$;NU$.validateBucket=oW0;var m9=OG(),X9=o50(),c9=b11();function Eq4(){let $=(Z,Q)=>{let Y=[];for(let X of Z.split("."))switch(X){case">":case"*":Y.push(X);break;default:Y.push(Q(X));break}return Y.join(".")};return{encode(Z){return $(Z,btoa)},decode(Z){return $(Z,atob)}}}function x11(){return{key:{encode($){return $},decode($){return $}},value:{encode($){return typeof $==="string"?new TextEncoder().encode($):$},decode($){return $}}}}function JU$(){return{replicas:1,history:1,timeout:2000,max_bytes:-1,maxValueSize:-1,codec:x11(),storage:X9.StorageType.File}}NU$.kvOperationHdr="KV-Operation";var XU$="$KV",zq4=/^[-/=.\w]+$/,Pq4=/^[-/=.>*\w]+$/,Aq4=/^[-\w]+$/;function GU$($){if($.startsWith(".")||$.endsWith(".")||!zq4.test($))throw Error(`invalid key: ${$}`)}function WU$($){if($.startsWith(".")||$.endsWith(".")||$.includes("..")||!Pq4.test($))throw Error(`invalid key: ${$}`)}function KU$($){if($.startsWith(".")||$.endsWith("."))throw Error(`invalid key: ${$}`);let Z=$.split("."),Q=!1;for(let Y=0;Y<Z.length;Y++)switch(Z[Y]){case"*":Q=!0;break;case">":if(Y!==Z.length-1)throw Error(`invalid key: ${$}`);Q=!0;break;default:}return Q}function oW0($){if(!Aq4.test($))throw Error(`invalid bucket name: ${$}`)}class HU${js;constructor($){this.js=(0,X9.toJetStreamClient)($)}create($,Z={}){return this.#$($,Z)}open($,Z={}){return Z.bindOnly=!0,this.#$($,Z)}#$($,Z={}){let{ok:Q,min:Y}=this.js.nc.features.get(m9.Feature.JS_KV);if(!Q)return Promise.reject(Error(`kv is only supported on servers ${Y} or better`));if(Z.bindOnly)return gc.bind(this.js,$,Z);return gc.create(this.js,$,Z)}list(){let $=(Q)=>{let X=Q.streams.filter((G)=>{return G.config.name.startsWith(c9.kvPrefix)});X.forEach((G)=>{G.config.sealed=G.config.sealed||!1,G.config.deny_delete=G.config.deny_delete||!1,G.config.deny_purge=G.config.deny_purge||!1,G.config.allow_rollup_hdrs=G.config.allow_rollup_hdrs||!1});let J="";if(X.length)J=this.js.nc.info?.cluster??"";return X.map((G)=>{return new rW0(G,J)})},Z=`${this.js.prefix}.STREAM.LIST`;return new X9.ListerImpl(Z,$,this.js)}}NU$.Kvm=HU$;class gc{js;jsm;stream;bucket;direct;codec;prefix;editPrefix;useJsPrefix;_prefixLen;constructor($,Z,Q){oW0($),this.js=Z,this.jsm=Q,this.bucket=$,this.prefix=XU$,this.editPrefix="",this.useJsPrefix=!1,this._prefixLen=0}static async create($,Z,Q={}){oW0(Z);let Y=await $.jetstreamManager(),X=new gc(Z,$,Y);return await X.init(Q),X}static async bind($,Z,Q={}){let Y=$.getOptions()?.checkAPI||Q.bindOnly===!1,X=await $.jetstreamManager(Y),J={config:{allow_direct:Q.allow_direct}};oW0(Z);let G=new gc(Z,$,X);return J.config.name=Q.streamName??G.bucketName(),Object.assign(G,J),G.stream=J.config.name,G.codec=Q.codec||x11(),G.direct=J.config.allow_direct??!1,G.initializePrefixes(J),G}async init($={}){let Z=Object.assign(JU$(),$);this.codec=Z.codec;let Q={};if(this.stream=Q.name=$.streamName??this.bucketName(),Q.retention=X9.RetentionPolicy.Limits,Q.max_msgs_per_subject=Z.history,Z.max_bytes)Q.max_bytes=Z.max_bytes;if(Q.max_msg_size=Z.maxValueSize,Q.storage=Z.storage,$.placement)Q.placement=$.placement;if($.republish)Q.republish=$.republish;if($.description)Q.description=$.description;if($.markerTTL)Q.allow_msg_ttl=!0,Q.subject_delete_marker_ttl=(0,m9.nanos)(Z.markerTTL);if($.mirror){let H=Object.assign({},$.mirror);if(!H.name.startsWith(c9.kvPrefix))H.name=`${c9.kvPrefix}${H.name}`;Q.mirror=H,Q.mirror_direct=!0}else if($.sources){let H=$.sources.map((F)=>{let U=Object.assign({},F),N=U.name.startsWith(c9.kvPrefix)?U.name.substring(c9.kvPrefix.length):U.name;if(!U.name.startsWith(c9.kvPrefix))U.name=`${c9.kvPrefix}${U.name}`;if(!F.external&&N!==this.bucket)U.subject_transforms=[{src:`$KV.${N}.>`,dest:`$KV.${this.bucket}.>`}];return U});Q.sources=H,Q.subjects=[this.subjectForBucket()]}else Q.subjects=[this.subjectForBucket()];if($.metadata)Q.metadata=$.metadata;if(typeof $.compression==="boolean")Q.compression=$.compression?X9.StoreCompression.S2:X9.StoreCompression.None;let Y=this.js.nc,X=Y.getServerVersion(),J=X?(0,m9.compare)(X,(0,m9.parseSemVer)("2.7.2"))>=0:!1;Q.discard=J?X9.DiscardPolicy.New:X9.DiscardPolicy.Old;let{ok:G,min:W}=Y.features.get(m9.Feature.JS_ALLOW_DIRECT);if(!G&&$.allow_direct===!0){let H=X?`${X.major}.${X.minor}.${X.micro}`:"unknown";return Promise.reject(Error(`allow_direct is not available on server version ${H} - requires ${W}`))}if($.allow_direct=typeof $.allow_direct==="boolean"?$.allow_direct:G,Q.allow_direct=$.allow_direct,this.direct=Q.allow_direct,Q.num_replicas=Z.replicas,Z.ttl)Q.max_age=(0,m9.nanos)(Z.ttl);Q.allow_rollup_hdrs=!0;let K;try{if(K=await this.jsm.streams.info(Q.name),!K.config.allow_direct&&this.direct===!0)this.direct=!1}catch(H){if(H.message==="stream not found")K=await this.jsm.streams.add(Q);else throw H}this.initializePrefixes(K)}initializePrefixes($){this._prefixLen=0,this.prefix=`$KV.${this.bucket}`,this.useJsPrefix=this.js.apiPrefix!=="$JS.API";let{mirror:Z}=$.config;if(Z){let Q=Z.name;if(Q.startsWith(c9.kvPrefix))Q=Q.substring(c9.kvPrefix.length);if(Z.external&&Z.external.api!==""){let Y=Z.name.substring(c9.kvPrefix.length);this.useJsPrefix=!1,this.prefix=`$KV.${Y}`,this.editPrefix=`${Z.external.api}.$KV.${Q}`}else this.editPrefix=this.prefix}}bucketName(){return this.stream??`${c9.kvPrefix}${this.bucket}`}subjectForBucket(){return`${this.prefix}.${this.bucket}.>`}subjectForKey($,Z=!1){let Q=[];if(Z){if(this.useJsPrefix)Q.push(this.js.apiPrefix);if(this.editPrefix!=="")Q.push(this.editPrefix);else Q.push(this.prefix)}else if(this.prefix)Q.push(this.prefix);return Q.push($),Q.join(".")}fullKeyName($){if(this.prefix!=="")return`${this.prefix}.${$}`;return`${XU$}.${this.bucket}.${$}`}get prefixLen(){if(this._prefixLen===0)this._prefixLen=this.prefix.length+1;return this._prefixLen}encodeKey($){let Z=[];for(let Q of $.split("."))switch(Q){case">":case"*":Z.push(Q);break;default:Z.push(this.codec.key.encode(Q));break}return Z.join(".")}decodeKey($){let Z=[];for(let Q of $.split("."))switch(Q){case">":case"*":Z.push(Q);break;default:Z.push(this.codec.key.decode(Q));break}return Z.join(".")}validateKey=GU$;validateSearchKey=WU$;hasWildcards=KU$;close(){return Promise.resolve()}dataLen($,Z){let Q=Z?Z.get(X9.JsHeaders.MessageSizeHdr)||"":"";if(Q!=="")return parseInt(Q,10);return $.length}smToEntry($){return new FU$(this.bucket,this.prefixLen,$,this.codec)}jmToWatchEntry($,Z){return new UU$(this.bucket,this.prefixLen,$,Z,this.codec)}async create($,Z,Q){let Y;try{let J={previousSeq:0},G=await this._put($,Z,J,Q);return Promise.resolve(G)}catch(J){if(Y=J,J instanceof X9.JetStreamApiError){let G=J;if(G.code!==X9.JetStreamApiCodes.StreamWrongLastSequence&&G.code!==X9.JetStreamApiCodes.StreamWrongLastSequenceUnknown)return Promise.reject(J)}}let X=0;try{let J=await this.get($);if(J?.operation==="DEL"||J?.operation==="PURGE")return X=J!==null?J.revision:0,this._put($,Z,{previousSeq:X},Q);else return Promise.reject(Y)}catch(J){return Promise.reject(J)}}update($,Z,Q,Y){if(Q<=0)throw Error("version must be greater than 0");return this.put($,Z,{previousSeq:Q,timeout:Y})}async _put($,Z,Q={},Y){let X=this.encodeKey($);this.validateKey(X),Z=this.codec.value.encode(Z);let J={timeout:Q?.timeout};if(Q.previousSeq!==void 0){let G=(0,m9.headers)();J.headers=G,G.set(X9.PubHeaders.ExpectedLastSubjectSequenceHdr,`${Q.previousSeq}`)}if(Y)(J.headers||(0,m9.headers)()).set(X9.PubHeaders.MessageTTL,Y);try{return(await this.js.publish(this.subjectForKey(X,!0),Z,J)).seq}catch(G){return Promise.reject(G)}}put($,Z,Q={}){return this._put($,Z,Q)}async get($,Z){let Q=this.encodeKey($);this.validateKey(Q);let Y={last_by_subj:this.subjectForKey(Q)};if(Z&&Z.revision>0)Y={seq:Z.revision};let X=null;try{if(this.direct)X=await this.jsm.direct.getMessage(this.bucketName(),Y);else X=await this.jsm.streams.getMessage(this.bucketName(),Y);if(X===null)return null;let J=this.smToEntry(X);if(J.rawKey!==Q)return null;return J}catch(J){throw J}}purge($,Z){return this._deleteOrPurge($,"PURGE",Z)}delete($,Z){return this._deleteOrPurge($,"DEL",Z)}async purgeDeletes($=1800000){let Z=[],Q=await this.history({key:">"});await(async()=>{for await(let G of Q)if(G.operation==="DEL"||G.operation==="PURGE")Z.push(G)})().then(),Q.stop();let Y=Date.now()-$,X=Z.map((G)=>{let W=this.subjectForKey(G.key);if(G.created.getTime()>=Y)return this.jsm.streams.purge(this.stream,{filter:W,keep:1});else return this.jsm.streams.purge(this.stream,{filter:W,keep:0})}),J=await Promise.all(X);return J.unshift({success:!0,purged:0}),J.reduce((G,W)=>{return G.purged+=W.purged,G})}async _deleteOrPurge($,Z,Q){if(!this.hasWildcards($))return this._doDeleteOrPurge($,Z,Q);let Y=await this.keys($),X=[];for await(let J of Y)if(X.push(this._doDeleteOrPurge(J,Z)),X.length===100)await Promise.all(X),X.length=0;if(X.length>0)await Promise.all(X)}async _doDeleteOrPurge($,Z,Q){let Y=this.encodeKey($);this.validateKey(Y);let X=(0,m9.headers)();if(X.set(NU$.kvOperationHdr,Z),Z==="PURGE"){let J=Q;if(X.set(X9.JsHeaders.RollupHdr,X9.JsHeaders.RollupValueSubject),typeof J?.ttl==="string"&&J.ttl!=="")X.set(X9.PubHeaders.MessageTTL,`${J.ttl}`)}if(Q?.previousSeq)X.set(X9.PubHeaders.ExpectedLastSubjectSequenceHdr,`${Q.previousSeq}`);await this.js.publish(this.subjectForKey(Y,!0),m9.Empty,{headers:X})}_buildCC($,Z,Q={}){let X=(!Array.isArray($)?[$]:$).map((W)=>{let K=this.encodeKey(W);return this.validateSearchKey(W),this.fullKeyName(K)}),J=X9.DeliverPolicy.LastPerSubject;if(Z===c9.KvWatchInclude.AllHistory)J=X9.DeliverPolicy.All;if(Z===c9.KvWatchInclude.UpdatesOnly)J=X9.DeliverPolicy.New;let G=void 0;if(X.length===1)G=X[0],X=void 0;return Object.assign({deliver_policy:J,ack_policy:X9.AckPolicy.None,filter_subjects:X,filter_subject:G,flow_control:!0,idle_heartbeat:(0,m9.nanos)(5000)},Q)}remove($){return this.purge($)}async history($={}){let Z=$.key??">",Q={};Q.headers_only=$.headers_only||!1;let Y=new m9.QueuedIteratorImpl,X=()=>{Y.stop()},J=this._buildCC(Z,c9.KvWatchInclude.AllHistory,Q),G=await this.js.consumers.getPushConsumer(this.stream,J);if(Y._data=G,(await G.info(!0)).num_pending===0)return Y.push(X),Y;let K=await G.consume({callback:(H)=>{let F=this.jmToWatchEntry(H,!1);if(Y.push(F),Y.received++,H.info.pending===0)Y.push(X)}});return K.closed().then(()=>{Y.push(X)}),(async()=>{for await(let H of K.status())switch(H.type){case"heartbeat":Y.push(()=>{Y.stop()});break}})().then(),Y.iterClosed.then(()=>{K.stop()}),Y}canSetWatcherName(){let $=this.js.nc,{ok:Z}=$.features.get(m9.Feature.JS_NEW_CONSUMER_CREATE_API);return Z}async watch($={}){let Z=$.key??">",Q=new m9.QueuedIteratorImpl,Y={};Y.headers_only=$.headers_only||!1;let X=c9.KvWatchInclude.LastValue;if($.include===c9.KvWatchInclude.AllHistory)X=c9.KvWatchInclude.AllHistory;else if($.include===c9.KvWatchInclude.UpdatesOnly)X=c9.KvWatchInclude.UpdatesOnly;let J=$.ignoreDeletes===!0,G=this._buildCC(Z,X,Y);if(G.name=`KV_WATCHER_${m9.nuid.next()}`,$.resumeFromRevision&&$.resumeFromRevision>0)G.deliver_policy=X9.DeliverPolicy.StartSequence,G.opt_start_seq=$.resumeFromRevision;let W=await this.js.consumers.getPushConsumer(this.stream,G),H=(await W.info(!0)).num_pending,F=X===c9.KvWatchInclude.UpdatesOnly||H===0;Q._data=W;let U=0,N=await W.consume({callback:(B)=>{if(!F)U++,F=U>=H;let O=this.jmToWatchEntry(B,F);if(J&&O.operation==="DEL")return;Q.push(O),Q.received++}});return Q.iterClosed.then(()=>{N.stop()}),N.closed().then(()=>{Q.push(()=>{Q.stop()})}),Q}async keys($=">"){let Z=new m9.QueuedIteratorImpl,Q=this._buildCC($,c9.KvWatchInclude.LastValue,{headers_only:!0}),Y=await this.js.consumers.getPushConsumer(this.stream,Q);if((await Y.info()).num_pending===0)return Z.stop(),Z;Z._data=Y;let J=await Y.consume({callback:(G)=>{let W=G.headers?.get(NU$.kvOperationHdr);if(W!=="DEL"&&W!=="PURGE"){let K=this.decodeKey(G.subject.substring(this.prefixLen));Z.push(K)}if(G.info.pending===0)J.stop()}});return(async()=>{for await(let G of J.status())switch(G.type){case"heartbeat":Z.push(()=>{Z.stop()});break}})().then(),J.closed().then(()=>{Z.push(()=>{Z.stop()})}),Z.iterClosed.then(()=>{J.stop()}),Z}purgeBucket($){return this.jsm.streams.purge(this.bucketName(),$)}destroy(){return this.jsm.streams.delete(this.bucketName())}async status(){let Z=this.js.nc.info?.cluster??"",Q=this.bucketName(),Y=await this.jsm.streams.info(Q);return new rW0(Y,Z)}}NU$.Bucket=gc;class rW0{si;cluster;constructor($,Z=""){this.si=$,this.cluster=Z}get bucket(){return this.si.config.name.startsWith(c9.kvPrefix)?this.si.config.name.substring(c9.kvPrefix.length):this.si.config.name}get values(){return this.si.state.messages}get history(){return this.si.config.max_msgs_per_subject}get ttl(){return(0,m9.millis)(this.si.config.max_age)}get markerTTL(){if(typeof this.si.config.subject_delete_marker_ttl==="number")return(0,m9.millis)(this.si.config.subject_delete_marker_ttl);return 0}get bucket_location(){return this.cluster}get backingStore(){return this.si.config.storage}get storage(){return this.si.config.storage}get replicas(){return this.si.config.num_replicas}get description(){return this.si.config.description??""}get maxBucketSize(){return this.si.config.max_bytes}get maxValueSize(){return this.si.config.max_msg_size}get max_bytes(){return this.si.config.max_bytes}get placement(){return this.si.config.placement||{cluster:"",tags:[]}}get placementCluster(){return this.si.config.placement?.cluster??""}get republish(){return this.si.config.republish??{src:"",dest:""}}get streamInfo(){return this.si}get size(){return this.si.state.bytes}get metadata(){return this.si.config.metadata??{}}get compression(){if(this.si.config.compression)return this.si.config.compression!==X9.StoreCompression.None;return!1}}NU$.KvStatusImpl=rW0;class FU${bucket;sm;prefixLen;codec;constructor($,Z,Q,Y){this.bucket=$,this.prefixLen=Z,this.sm=Q,this.codec=Y}get rawKey(){return this.sm.subject.substring(this.prefixLen)}get key(){return this.codec.key.decode(this.rawKey)}get value(){return this.codec.value.decode(this.sm.data)}get delta(){return 0}get created(){return this.sm.time}get revision(){return this.sm.seq}get operation(){if(this.sm.header?.has("Nats-Marker-Reason")){if(this.sm.header?.get("Nats-Marker-Reason")==="MaxAge")return"PURGE"}return this.sm.header?.get(NU$.kvOperationHdr)||"PUT"}get length(){let $=this.sm.header.get(X9.JsHeaders.MessageSizeHdr)||"";if($!=="")return parseInt($,10);return this.sm.data.length}json($){return JSON.parse(m9.TD.decode(this.value),$)}string(){return m9.TD.decode(this.value)}}class UU${bucket;sm;prefixLen;update;codec;constructor($,Z,Q,Y,X){this.bucket=$,this.prefixLen=Z,this.sm=Q,this.update=Y,this.codec=X}get rawKey(){return this.sm.subject.substring(this.prefixLen)}get key(){return this.codec.key.decode(this.rawKey)}get value(){return this.codec.value.decode(this.sm.data)}get created(){return new Date((0,m9.millis)(this.sm.info.timestampNanos))}get revision(){return this.sm.seq}get operation(){if(this.sm.headers?.has("Nats-Marker-Reason")){if(this.sm.headers?.get("Nats-Marker-Reason")==="MaxAge")return"PURGE"}return this.sm.headers?.get(NU$.kvOperationHdr)||"PUT"}get delta(){return this.sm.info.pending}get length(){let $=this.sm.headers?.get(X9.JsHeaders.MessageSizeHdr)||"";if($!=="")return parseInt($,10);return this.sm.data.length}get isUpdate(){return this.update}json($){return JSON.parse(m9.TD.decode(this.value),$)}string(){return m9.TD.decode(this.value)}}});var f11=b((WH)=>{Object.defineProperty(WH,"__esModule",{value:!0});WH.validateKey=WH.validateBucket=WH.NoopKvCodecs=WH.Kvm=WH.defaultBucketOpts=WH.Bucket=WH.Base64KeyCodec=WH.KvWatchInclude=WH.kvPrefix=void 0;var OU$=b11();Object.defineProperty(WH,"kvPrefix",{enumerable:!0,get:function(){return OU$.kvPrefix}});Object.defineProperty(WH,"KvWatchInclude",{enumerable:!0,get:function(){return OU$.KvWatchInclude}});var e2=DU$();Object.defineProperty(WH,"Base64KeyCodec",{enumerable:!0,get:function(){return e2.Base64KeyCodec}});Object.defineProperty(WH,"Bucket",{enumerable:!0,get:function(){return e2.Bucket}});Object.defineProperty(WH,"defaultBucketOpts",{enumerable:!0,get:function(){return e2.defaultBucketOpts}});Object.defineProperty(WH,"Kvm",{enumerable:!0,get:function(){return e2.Kvm}});Object.defineProperty(WH,"NoopKvCodecs",{enumerable:!0,get:function(){return e2.NoopKvCodecs}});Object.defineProperty(WH,"validateBucket",{enumerable:!0,get:function(){return e2.validateBucket}});Object.defineProperty(WH,"validateKey",{enumerable:!0,get:function(){return e2.validateKey}})});var $A=b((ow)=>{Object.defineProperty(ow,"__esModule",{value:!0});ow.NoopKvCodecs=ow.Kvm=ow.defaultBucketOpts=ow.Bucket=ow.Base64KeyCodec=ow.KvWatchInclude=void 0;var vq4=f11();Object.defineProperty(ow,"KvWatchInclude",{enumerable:!0,get:function(){return vq4.KvWatchInclude}});var ve=f11();Object.defineProperty(ow,"Base64KeyCodec",{enumerable:!0,get:function(){return ve.Base64KeyCodec}});Object.defineProperty(ow,"Bucket",{enumerable:!0,get:function(){return ve.Bucket}});Object.defineProperty(ow,"defaultBucketOpts",{enumerable:!0,get:function(){return ve.defaultBucketOpts}});Object.defineProperty(ow,"Kvm",{enumerable:!0,get:function(){return ve.Kvm}});Object.defineProperty(ow,"NoopKvCodecs",{enumerable:!0,get:function(){return ve.NoopKvCodecs}})});function rw(){let $=new TextEncoder,Z=new TextDecoder;return{encode:(Q)=>$.encode(JSON.stringify(Q)),decode:(Q)=>JSON.parse(Z.decode(Q))}}class y11{options;kv=null;codec=rw();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await new wU$.Kvm($).create(xq4,{storage:LU$.StorageType.Memory})}async get($,Z){if(!this.kv)return null;try{let Q=await this.kv.get(`${$}.${Z}`);if(!Q?.value?.length)return null;if(Q.operation==="DEL"||Q.operation==="PURGE")return null;return this.codec.decode(Q.value)}catch{return null}}async set($,Z,Q){if(!this.kv)return;try{await this.kv.put(`${$}.${Z}`,this.codec.encode(Q))}catch{}}async invalidate($){if(!this.kv)return;await Promise.all(["tools","resources","prompts"].map(async(Q)=>{try{await this.kv.delete(`${Q}.${$}`)}catch{}}))}teardown(){this.kv=null}}function fq4($,Z,Q){if(Q<=0)return!0;if($===void 0)return!0;return Z-$>=Q}function jU$($){let Z=["tools","resources","prompts"];for(let Q of Z){let Y=`${Q}:${$}`;aW0.delete(Y),xe.delete(Y)}}function sW0($){return $ instanceof k1&&$.code===x1.MethodNotFound}function yq4($){return $ instanceof k1&&$.code===-32000&&/connection closed/i.test($.message)}async function aw($,Z,Q,Y,X,J=0){if(!Y)try{return await Q()}catch(H){if(sW0(H))return[];return be.add(1,{type:$,outcome:"error",stage:"no_cache"}),null}let G=`${$}:${Z}`,W=await Y.get($,Z);if(W===null)try{let H=await Q();return Y.set($,Z,H).catch(()=>{}),aW0.set(G,Date.now()),be.add(1,{type:$,outcome:"miss",stage:"miss"}),H}catch(H){if(sW0(H))return Y.set($,Z,[]).catch(()=>{}),[];return be.add(1,{type:$,outcome:"error",stage:"miss"}),null}if(be.add(1,{type:$,outcome:"hit",stage:"hit"}),fq4(aW0.get(G),Date.now(),J)&&!xe.has(G)){xe.add(G),aW0.set(G,Date.now());let H=Q().then((F)=>Y.set($,Z,F)).catch((F)=>{if(sW0(F)||yq4(F)){if(sW0(F))Y.set($,Z,[]).catch(()=>{});return}be.add(1,{type:$,outcome:"error",stage:"revalidation"})}).finally(()=>xe.delete(G));X?.(H)}return W}function g11($){EU$=$}function LZ(){return EU$}var LU$,wU$,be,xq4="DECOCMS_MCP_LISTS",xe,aW0,sw=30000,EU$=null;var SJ=D(()=>{KZ();k6();LU$=C(BK(),1),wU$=C($A(),1),be=e1.createCounter("mcp_list_cache.fetches",{description:"MCP list cache fetch outcomes (hit, miss, error)",unit:"{fetches}"});xe=new Set;e1.createObservableGauge("mcp_list_cache.pending_revalidations",{description:"In-flight background MCP list revalidations on this pod",unit:"{revalidations}"}).addCallback(($)=>$.observe(xe.size));aW0=new Map});function eW0($){return(Z)=>{if(Z instanceof k1&&Z.code===x1.MethodNotFound)return $;throw Z}}var zU$=D(()=>{KZ()});function $K0($,Z,Q){let Y=ew($,Z,Q,LZ()??void 0),X=X2(Y,{name:"studio-mcp-server",version:"1.0.0"},{capabilities:gq4,toolCallTimeoutMs:ch});X.server.setRequestHandler(DL,async()=>{return await Y.listResources().catch(eW0({resources:[]}))}),X.server.setRequestHandler(OL,async()=>{return await Y.listResourceTemplates().catch(eW0({resourceTemplates:[]}))}),X.server.setRequestHandler(LL,async()=>{return await Y.listPrompts().catch(eW0({prompts:[]}))});let J=X.close.bind(X);return X.close=async()=>{await J(),await Y.close().catch(()=>{})},X}var gq4;var PU$=D(()=>{NJ();KZ();fe();SJ();zU$();gq4={tools:{},resources:{},prompts:{}}});var hc=D(()=>{Ce();ZU$();PU$()});async function uc($,Z,Q){await(await sG(Z,$,!1)).callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:Q.state,scopes:Q.scopes,firstRun:Q.firstRun,...Q.vault?{vault:Q.vault}:{}}})}var ZK0=D(()=>{hc()});import{z as h11}from"zod";function lq4($){let{owner:Z,name:Q}=k5({path:$.path});return{owner:Z,name:Q,url:$.webUrl??`https://${$.host}/${$.path}`,repositoryId:$.repositoryId}}function cq4($,Z){if(!Z)return $;return $.filter((Q)=>Q.connection_id!==Z)}function mq4($,Z){let{repository:Q,github_repo:Y,...X}=$,J=Z?mW0(Z):null;return{...X,...Z?{repository:cW0(Z)}:{},...J?{github_repo:J}:{}}}async function dq4($,Z,Q){let Y=Y4.REPORTS(Z),X=await $.storage.connections.findById(Y,Z);if(!X)throw Error("Reports is not set up for this organization yet");let J=mq4(X.configuration_state??{},Q);await $.storage.connections.update(Y,{configuration_state:J});try{await uc($,{...X,configuration_state:J},{state:J,scopes:X.configuration_scopes??[],firstRun:!1})}catch(G){console.error("[reports] ON_MCP_CONFIGURATION after repository change failed",G)}}async function iq4($,Z,Q,Y){let X=uh(Z),J=await $.storage.virtualMcps.findById(X,Z);if(!J)return;let G=J.metadata??{},W=G.repository,{repository:K,...H}=G;await $.storage.virtualMcps.update(X,Q,{metadata:{...H,...Y?{repository:lq4(Y)}:{}},connections:cq4(J.connections??[],W?.connectionId??null)})}var hq4,uq4,u11;var AU$=D(()=>{p8();i4();dW0();k0();ZK0();hq4=h11.object({repositoryId:h11.string().min(1).nullable().describe("Studio repository id to diagnose, or null to unlink the current one.")}),uq4=h11.object({repository:T11.nullable()});u11=c({name:"REPORTS_SET_REPOSITORY",description:"Point the organization's Deco Score at one of its linked repositories, or unlink the current one. Works for GitHub, GitLab and Bitbucket.",annotations:{title:"Set Deco Score Repository",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:hq4,outputSchema:uq4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=p0(Z);if(!Y)throw Error("User ID required to set the diagnostic's repository");let X=null;if($.repositoryId){let J=await Z.storage.repositories.get($.repositoryId,Q.id);if(!J)throw Error(`Repository ${$.repositoryId} is not linked to this organization`);let G={repositoryId:J.id,provider:J.provider,host:J.host,path:J.path,defaultBranch:J.defaultBranch,webUrl:J.webUrl},W=T11.safeParse(G);if(!W.success)throw Error(`Repository ${$.repositoryId} has invalid configuration (missing or empty host/path)`);X=W.data}return await dq4(Z,Q.id,X),await iq4(Z,Q.id,Y,X),{repository:X}}})});function $j($,Z){let Q=`/${encodeURIComponent($)}/settings`;return Z?`${Q}/${Z}`:Q}function QK0($,Z){let Q=`/${encodeURIComponent($)}/agents`,Y=Z.panel?`${Q}/${Z.panel}`:Q,X=new URLSearchParams({virtualmcpid:Z.projectId,...Z.search??{}});return`${Y}?${X.toString()}`}var Zj=D(()=>{JY0()});function TU$($,Z){if(typeof $!=="string")return null;let Q=A11($);return Q&&Q!==A11(Z)?$:null}function lc($){uF$({siteUrl:$.siteUrl,orgId:$.orgId}).then((Z)=>console.log("[reports] released site",{...$,...Z}),(Z)=>console.warn("[reports] could not release site",{...$,error:Z instanceof Error?Z.message:String(Z)}))}var YK0=D(()=>{xc();pB()});import{z as KU}from"zod";async function oq4($,Z,Q,Y){let X=await $.storage.connections.findById(Z,Q);if(X)return X;throw Y}async function rq4($,Z,Q,Y){let X=await $.storage.virtualMcps.findById(Z,Q);if(X)return X;throw Y}var l11,pq4=3600000,nq4,tq4,c11;var RU$=D(()=>{p8();xc();k0();BF();Zj();pB();YK0();l11=KY0,nq4=KU.object({siteUrl:KU.string().min(1).describe("Website URL to configure.")}),tq4=KU.object({connection:HY,virtualMcp:KY,reportApp:KU.object({connectionId:KU.string(),virtualMcpId:KU.string(),toolName:KU.literal(l11)}),created:KU.object({connection:KU.boolean(),virtualMcp:KU.boolean()})});c11=c({name:"REPORTS_SETUP",description:"Create or return the Deco Score connection and virtual MCP for the current organization.",annotations:{title:"Set Up Deco Score",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:nq4,outputSchema:tq4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check("COLLECTION_CONNECTIONS_CREATE");let Y=p0(Z);if(!Y)throw Error("User ID required to set up Reports");let X=iB($.siteUrl);if(!X.ok)throw Error(X.error);let J=Y4.REPORTS(Q.id),G=uh(Q.id),W={email:Z.auth.user?.email,reportUrl:`${Z.baseUrl}${QK0(Q.slug??Q.id,{projectId:G,panel:"app",search:{connection:J,tool:l11}})}`},K=await Z.storage.connections.findById(J,Q.id),H={connection:!1,virtualMcp:!1},F=await xF$({siteUrl:X.value,orgId:Q.id,orgName:Q.name,...W}),U=vF$();if(K){console.log("[reports] syncing connection to claimed site",{orgId:Q.id,siteUrl:X.value,connectionId:J});let L=TU$(K.metadata?.siteUrl,X.value);if(K=await Z.storage.connections.update(K.id,{connection_url:U,connection_token:F.authorizationToken,metadata:{...K.metadata??{},siteUrl:X.value}}),L)lc({siteUrl:L,orgId:Q.id,cause:"site_changed"})}else{console.log("[reports] creating connection",{orgId:Q.id,siteUrl:X.value,connectionId:J});try{let L=In1(Q.id,F.authorizationToken,U);K=await Z.storage.connections.create({...L,metadata:{...L.metadata??{},siteUrl:X.value},organization_id:Q.id,created_by:Y}),H.connection=!0}catch(L){K=await oq4(Z,J,Q.id,L)}}let N=await Z.storage.virtualMcps.findById(G,Q.id);if(!N){console.log("[reports] creating virtual MCP",{orgId:Q.id,siteUrl:X.value,connectionId:K.id,virtualMcpId:G});try{N=await Z.storage.virtualMcps.create(Q.id,Y,Vn1(Q.id,K.id),{id:G}),H.virtualMcp=!0}catch(L){N=await rq4(Z,G,Q.id,L)}}if(!N.pinned)N=await Z.storage.virtualMcps.update(N.id,Y,{pinned:!0});let B=await Z.db.selectFrom("organization").select(["createdAt"]).where("id","=",Q.id).executeTakeFirst();if((B?Date.now()-new Date(B.createdAt).getTime():Number.POSITIVE_INFINITY)<pq4){let w=(await Z.storage.organizationSettings.get(Q.id))?.flags,j={};if(w?.reports_only==null)j.reports_only=!0;if(Object.keys(j).length>0)await Z.storage.organizationSettings.upsert(Q.id,{flags:j})}return{connection:K,virtualMcp:N,reportApp:{connectionId:K.id,virtualMcpId:N.id,toolName:l11},created:H}}})});var qU$=D(()=>{lF$();cF$();mF$();AU$();RU$()});function ye($,Z,Q){if(Z.some((Y)=>Y!=="*"&&Y.startsWith("SELF::"))&&$.SELF===void 0)$.SELF={value:`${Q}_self`}}function ge($,Z){let Q=new Map;for(let Y of Z){if(Y==="*")continue;let[X,J]=rJ0(Y);if(!aq4.has(J))continue;let G=Ls(X,$);if(typeof G!=="object"||G===null||!("value"in G))continue;let W=G.value;if(typeof W!=="string")continue;Q.set(`${W}:${J}`,{targetConnectionId:W,scope:J})}return[...Q.values()]}async function he($,Z,Q,Y){for(let G of Z){if(G==="*")continue;let[W]=rJ0(G),K=Ls(W,$);if(K===void 0||K===null)throw Error(`Scope references key "${W}" but it's not present in state`)}let X=L6$($,Z),J=`${Q}_self`;for(let G of X){if(G===J)continue;let W=await Y.storage.connections.findById(G);if(!W||W.organization_id!==Q)throw Error(`Referenced connection not found: ${G}`);try{await Y.access.check(G)}catch(K){throw Error(`Access denied to referenced connection: ${G}. ${K.message}`)}}}var aq4;var m11=D(()=>{Ur0();wY0();aq4=new Set([OY0,LY0])});import{z as MU$}from"zod";var eq4,$M4,d11;var IU$=D(()=>{G6();k0();X$();SJ();ZK0();m11();oG0();BF();eq4=MU$.object({data:ZY0.describe("Data for the new connection (id is auto-generated if not provided)")}),$M4=MU$.object({item:HY.describe("The created connection entity")}),d11=c({name:"COLLECTION_CONNECTIONS_CREATE",description:"Create a new MCP connection. Auto-fetches and caches the server's tool list.",annotations:{title:"Create Connection",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:eq4,outputSchema:$M4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=p0(Z);if(!Y)throw Error("User ID required to create connection");let X={...$.data,organization_id:Q.id,created_by:Y};if(X.id){if((await Z.storage.connections.findById(X.id))?.organization_id===Q.id)throw Error("Connection already exists in organization");if(await Z.storage.connections.findBySanitizedId(X.id))throw Error("Connection id conflicts with an existing connection's isolated database schema")}if(X.connection_type==="VIRTUAL"){let U=yh(X.connection_url);if(!U)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let N=await Z.storage.virtualMcps.findById(U);if(!N)throw Error(`Virtual MCP not found: ${U}`);if(N.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");X.connection_url=gh(U)}if(X.connection_type==="STDIO"&&!E0().localMode)throw Error("STDIO connections are only available in local mode (--local-mode).");let J=await ml({id:`pending-${Date.now()}`,title:X.title,connection_type:X.connection_type,connection_url:X.connection_url,connection_token:X.connection_token,connection_headers:X.connection_headers}).catch(()=>null),G=J?.tools?.length?J.tools:null,W=J?.scopes?.length?J.scopes:X.configuration_scopes??null,K=X.configuration_state??null;if(K&&W?.length)ye(K,W,Q.id),await he(K,W,Q.id,Z);let H=await Z.storage.connections.createNew({...X,tools:null,configuration_state:K,configuration_scopes:W}),F=K&&W?.length?ge(K,W):[];if(F.length>0){let U;try{await Z.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:Q.id,subjectConnectionId:H.id,createdBy:Y,grants:F});let{plaintextToken:N,record:B}=await Z.storage.connectionCredentialVault.createOrRotateWorkloadToken({organizationId:Q.id,subjectConnectionId:H.id});U=B.id,await uc(Z,H,{state:K,scopes:W,firstRun:!0,vault:{baseUrl:Z.baseUrl,org:Q.slug??Q.id,subjectConnectionId:H.id,token:N}})}catch(N){if(U)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:Q.id,subjectConnectionId:H.id,tokenId:U});throw await Z.storage.connections.delete(H.id),N}}if(G)LZ()?.set("tools",H.id,G).catch(()=>{});return f1.capture({distinctId:Y,event:"connection_created",groups:{organization:Q.id},properties:{connection_id:H.id,connection_type:H.connection_type,app_name:H.app_name??null,organization_id:Q.id,tools_count:G?.length??0}}),{item:H}}})});import{z as zW}from"zod/v4";import{z as VU$}from"zod/v4";import{z as XK0}from"zod/v4";import{z as HU}from"zod/v4";import{z as XM4}from"zod/v4";import{z as ZA}from"zod/v4";import{z as FU}from"zod/v4";import{z as QQ}from"zod/v4";import{z as kU$}from"zod/v4";import{z as WK0}from"zod/v4";import{z as IM4}from"zod/v4";import{z as SU$}from"zod/v4";import{z as JK0}from"zod/v4";import{z as fM4}from"zod/v4";function ue($,Z){if($===Z)return!0;if($==null||Z==null)return $===Z;if(typeof $!==typeof Z)return!1;if(Array.isArray($)&&Array.isArray(Z)){if($.length!==Z.length)return!1;return $.every((Q,Y)=>ue(Q,Z[Y]))}if(typeof $==="object"&&typeof Z==="object"){let Q=Object.keys($),Y=Object.keys(Z);if(Q.length!==Y.length)return!1;return Q.every((X)=>Y.includes(X)&&ue($[X],Z[X]))}return!1}function RM4(){return($)=>{if(!Array.isArray($))return!0;let Z=[];return $.every((Q)=>{if(Z.some((X)=>ue(Q,X)))return!1;return Z.push(Q),!0})}}function GK0($,Z){return $.safeParse(Z).success}function gQ($){if(typeof $==="boolean")return $?zW.any():zW.never();let Z={};for(let X of uM4)X.apply(Z,$);let Q=[];if(Z.string!==!1)Q.push(Z.string||zW.string());if(Z.number!==!1)Q.push(Z.number||zW.number());if(Z.boolean!==!1)Q.push(Z.boolean||zW.boolean());if(Z.null!==!1)Q.push(Z.null||zW.null());if(Z.array!==!1)Q.push(Z.array||zW.array(zW.any()));if(Z.tuple!==!1&&Z.tuple!==void 0)Q.push(Z.tuple);if(Z.object!==!1)if(Z.object)Q.push(Z.object);else{let X=zW.custom((J)=>{return typeof J==="object"&&J!==null&&!Array.isArray(J)},"Must be an object, not an array");Q.push(X)}if(Z.file!==!1&&Z.file!==void 0)Q.push(Z.file);let Y;if(Q.length===0)Y=zW.never();else if(Q.length===1)Y=Q[0];else if(!Object.keys($).some((J)=>J!=="$schema"&&J!=="title"&&J!=="description"))Y=zW.any();else Y=zW.union(Q);for(let X of lM4)Y=X.apply(Y,$);return Y}var ZM4=class{apply($,Z){if(!Z.type)return;let Q=Array.isArray(Z.type)?Z.type:[Z.type],Y=new Set(Q);if(!Y.has("string"))$.string=!1;if(!Y.has("number")&&!Y.has("integer"))$.number=!1;if(!Y.has("boolean"))$.boolean=!1;if(!Y.has("null"))$.null=!1;if(!Y.has("array"))$.array=!1;if(!Y.has("object"))$.object=!1;if(Y.has("integer")&&$.number!==!1){let X=$.number||VU$.number();if(X instanceof VU$.ZodNumber)$.number=X.int()}}},QM4=class{apply($,Z){if(Z.const===void 0)return;let Q=Z.const;if($.string=!1,$.number=!1,$.boolean=!1,$.null=!1,$.array=!1,$.object=!1,typeof Q==="string")$.string=XK0.literal(Q);else if(typeof Q==="number")$.number=XK0.literal(Q);else if(typeof Q==="boolean")$.boolean=XK0.literal(Q);else if(Q===null)$.null=XK0.null();else if(Array.isArray(Q))$.array=void 0;else if(typeof Q==="object")$.object=void 0}},YM4=class{apply($,Z){if(!Z.enum)return;if(Z.enum.length===0){if(!Z.type)$.string=!1,$.number=!1,$.boolean=!1,$.null=!1,$.array=!1,$.object=!1;return}let Q={string:Z.enum.filter((Y)=>typeof Y==="string"),number:Z.enum.filter((Y)=>typeof Y==="number"),boolean:Z.enum.filter((Y)=>typeof Y==="boolean"),null:Z.enum.filter((Y)=>Y===null),array:Z.enum.filter((Y)=>Array.isArray(Y)),object:Z.enum.filter((Y)=>typeof Y==="object"&&Y!==null&&!Array.isArray(Y))};$.string=this.createTypeSchema(Q.string,"string"),$.number=this.createTypeSchema(Q.number,"number"),$.boolean=this.createTypeSchema(Q.boolean,"boolean"),$.null=Q.null.length>0?HU.null():!1,$.array=Q.array.length>0?void 0:!1,$.object=Q.object.length>0?void 0:!1}createTypeSchema($,Z){if($.length===0)return!1;if($.length===1)return HU.literal($[0]);if(Z==="string")return HU.enum($);if(Z==="number"){let[Q,Y,...X]=$;return HU.union([HU.literal(Q),HU.literal(Y),...X.map((J)=>HU.literal(J))])}if(Z==="boolean")return HU.union([HU.literal(!0),HU.literal(!1)]);return!1}},JM4=class{apply($,Z){let Q=Z;if(Q.type==="string"&&Q.format==="binary"&&Q.contentEncoding==="binary"){let Y=XM4.file();if(Q.minLength!==void 0)Y=Y.min(Q.minLength);if(Q.maxLength!==void 0)Y=Y.max(Q.maxLength);if(Q.contentMediaType!==void 0)Y=Y.mime(Q.contentMediaType);$.file=Y,$.string=!1}}},GM4=class{apply($,Z){let Q=Z;if(Z.type===void 0&&(Q.minLength!==void 0||Q.maxLength!==void 0||Q.pattern!==void 0)){if($.string===void 0)$.string=ZA.string()}}},WM4=class{apply($,Z){let Q=Z;if(Q.minLength===void 0)return;if($.string!==!1){let Y=$.string||ZA.string();if(Y instanceof ZA.ZodString)$.string=Y.refine((X)=>{return Array.from(X).length>=Q.minLength},{message:`String must be at least ${Q.minLength} characters long`})}}},KM4=class{apply($,Z){let Q=Z;if(Q.maxLength===void 0)return;if($.string!==!1){let Y=$.string||ZA.string();if(Y instanceof ZA.ZodString)$.string=Y.refine((X)=>{return Array.from(X).length<=Q.maxLength},{message:`String must be at most ${Q.maxLength} characters long`})}}},HM4=class{apply($,Z){let Q=Z;if(!Q.pattern)return;if($.string!==!1){let Y=$.string||ZA.string();if(Y instanceof ZA.ZodString){let X=new RegExp(Q.pattern);$.string=Y.regex(X)}}}},FM4=class{apply($,Z){let Q=Z;if(Q.minimum===void 0)return;if($.number!==!1){let Y=$.number||FU.number();if(Y instanceof FU.ZodNumber)$.number=Y.min(Q.minimum)}}},UM4=class{apply($,Z){let Q=Z;if(Q.maximum===void 0)return;if($.number!==!1){let Y=$.number||FU.number();if(Y instanceof FU.ZodNumber)$.number=Y.max(Q.maximum)}}},NM4=class{apply($,Z){let Q=Z;if(Q.exclusiveMinimum===void 0)return;if($.number!==!1){let Y=$.number||FU.number();if(Y instanceof FU.ZodNumber)if(typeof Q.exclusiveMinimum==="number")$.number=Y.gt(Q.exclusiveMinimum);else $.number=!1}}},BM4=class{apply($,Z){let Q=Z;if(Q.exclusiveMaximum===void 0)return;if($.number!==!1){let Y=$.number||FU.number();if(Y instanceof FU.ZodNumber)if(typeof Q.exclusiveMaximum==="number")$.number=Y.lt(Q.exclusiveMaximum);else $.number=!1}}},DM4=class{apply($,Z){let Q=Z;if(Q.multipleOf===void 0)return;if($.number!==!1){let Y=$.number||FU.number();if(Y instanceof FU.ZodNumber)$.number=Y.refine((X)=>{if(Q.multipleOf===0)return!1;let J=X/Q.multipleOf,G=Math.round(J),W=Math.min(Math.abs(X)*Number.EPSILON*10,Math.abs(Q.multipleOf)*Number.EPSILON*10);return Math.abs(J-G)<=W/Math.abs(Q.multipleOf)},{message:`Must be a multiple of ${Q.multipleOf}`})}}},OM4=class{apply($,Z){let Q=Z;if(Z.type===void 0&&(Q.minItems!==void 0||Q.maxItems!==void 0||Q.items!==void 0||Q.prefixItems!==void 0)){if($.array===void 0)$.array=QQ.array(QQ.any())}}},LM4=class{apply($,Z){let Q=Z;if(Q.minItems===void 0)return;if($.array!==!1)$.array=($.array||QQ.array(QQ.any())).min(Q.minItems)}},wM4=class{apply($,Z){let Q=Z;if(Q.maxItems===void 0)return;if($.array!==!1)$.array=($.array||QQ.array(QQ.any())).max(Q.maxItems)}},jM4=class{apply($,Z){let Q=Z;if($.array===!1)return;if(Array.isArray(Q.items))$.array=$.array||QQ.array(QQ.any());else if(Q.items&&typeof Q.items!=="boolean"&&!Q.prefixItems){let Y=gQ(Q.items),X=QQ.array(Y);if($.array&&$.array instanceof QQ.ZodArray){let J=$.array._def;if(J.checks)J.checks.forEach((G)=>{if(G._zod&&G._zod.def){let W=G._zod.def;if(W.check==="min_length"&&W.minimum!==void 0)X=X.min(W.minimum);else if(W.check==="max_length"&&W.maximum!==void 0)X=X.max(W.maximum)}})}$.array=X}else if(typeof Q.items==="boolean"&&Q.items===!1)if(!Q.prefixItems)$.array=QQ.array(QQ.any()).max(0);else $.array=$.array||QQ.array(QQ.any());else if(typeof Q.items==="boolean"&&Q.items===!0)$.array=$.array||QQ.array(QQ.any());else if(Q.prefixItems)$.array=$.array||QQ.array(QQ.any())}},EM4=class{apply($,Z){if(Z.type!=="array")return;let Q=Z;if(!Array.isArray(Q.items))return;if($.array===!1)return;let Y=Q.items.map((J)=>gQ(J)),X;if(Y.length===0)X=kU$.tuple([]);else X=kU$.tuple(Y);if(Q.minItems!==void 0&&Q.minItems>Y.length)X=!1;if(Q.maxItems!==void 0&&Q.maxItems<Y.length)X=!1;$.tuple=X,$.array=!1}},zM4=class{apply($,Z){let Q=Z;if($.object===!1)return;if(Q.properties||Q.required||Q.additionalProperties!==void 0)$.object=$.object||WK0.object({}).passthrough()}},PM4=class{apply($,Z){let Q=Z;if(Z.type===void 0&&(Q.maxProperties!==void 0||Q.minProperties!==void 0)){if($.object===void 0)$.object=WK0.object({}).passthrough()}}},AM4=class{apply($,Z){let Q=Z;if(Q.maxProperties===void 0)return;if($.object!==!1){let Y=$.object||WK0.object({}).passthrough();$.object=Y.refine((X)=>Object.keys(X).length<=Q.maxProperties,{message:`Object must have at most ${Q.maxProperties} properties`})}}},TM4=class{apply($,Z){let Q=Z;if(Q.minProperties===void 0)return;if($.object!==!1){let Y=$.object||WK0.object({}).passthrough();$.object=Y.refine((X)=>Object.keys(X).length>=Q.minProperties,{message:`Object must have at least ${Q.minProperties} properties`})}}},qM4=class{apply($,Z){if(!Z.not)return $;let Q=gQ(Z.not);return $.refine((Y)=>!GK0(Q,Y),{message:"Value must not match the 'not' schema"})}},MM4=class{apply($,Z){if(Z.uniqueItems!==!0)return $;return $.refine(RM4(),{message:"Array items must be unique"})}},VM4=class{apply($,Z){if(!Z.allOf||Z.allOf.length===0)return $;return Z.allOf.map((Y)=>gQ(Y)).reduce((Y,X)=>IM4.intersection(Y,X),$)}},kM4=class{apply($,Z){if(!Z.anyOf||Z.anyOf.length===0)return $;let Q=Z.anyOf.length===1?gQ(Z.anyOf[0]):SU$.union([gQ(Z.anyOf[0]),gQ(Z.anyOf[1]),...Z.anyOf.slice(2).map((Y)=>gQ(Y))]);return SU$.intersection($,Q)}},SM4=class{apply($,Z){if(!Z.oneOf||Z.oneOf.length===0)return $;let Q=Z.oneOf.map((Y)=>gQ(Y));return $.refine((Y)=>{let X=0;for(let J of Q)if(J.safeParse(Y).success){if(X++,X>1)return!1}return X===1},{message:"Value must match exactly one of the oneOf schemas"})}},CM4=class{apply($,Z){let Q=Z;if(Q.prefixItems&&Array.isArray(Q.prefixItems)){let X=Q.prefixItems.map((J)=>gQ(J));return $.refine((J)=>{if(!Array.isArray(J))return!0;for(let G=0;G<Math.min(J.length,X.length);G++)if(!GK0(X[G],J[G]))return!1;if(J.length>X.length){if(typeof Q.items==="boolean"&&Q.items===!1)return!1;else if(Q.items&&typeof Q.items==="object"&&!Array.isArray(Q.items)){let G=gQ(Q.items);for(let W=X.length;W<J.length;W++)if(!GK0(G,J[W]))return!1}}return!0},{message:"Array does not match prefixItems schema"})}return $}},_M4=class{apply($,Z){let Q=Z;if(!Q.properties&&!Q.required&&Q.additionalProperties!==!1)return $;if($ instanceof JK0.ZodObject||$ instanceof JK0.ZodRecord){let Y={};if(Q.properties){for(let[X,J]of Object.entries(Q.properties))if(J!==void 0)Y[X]=gQ(J)}if(Q.required&&Array.isArray(Q.required)){let X=new Set(Q.required);for(let J of Object.keys(Y))if(!X.has(J))Y[J]=Y[J].optional()}else for(let X of Object.keys(Y))Y[X]=Y[X].optional();if(Q.additionalProperties===!1)return JK0.object(Y);else return JK0.object(Y).passthrough()}return $.refine((Y)=>{if(typeof Y!=="object"||Y===null||Array.isArray(Y))return!0;if(Q.properties){for(let[X,J]of Object.entries(Q.properties))if(J!==void 0){if(Object.getOwnPropertyDescriptor(Y,X)!==void 0){if(!gQ(J).safeParse(Y[X]).success)return!1}}}if(Q.required&&Array.isArray(Q.required)){for(let X of Q.required)if(Object.getOwnPropertyDescriptor(Y,X)===void 0)return!1}if(Q.additionalProperties===!1&&Q.properties){let X=new Set(Object.keys(Q.properties));for(let J in Y)if(!X.has(J))return!1}return!0},{message:"Object constraints validation failed"})}},vM4=class{apply($,Z){if(!Z.enum||Z.enum.length===0)return $;let Q=Z.enum.filter((Y)=>Array.isArray(Y)||typeof Y==="object"&&Y!==null);if(Q.length===0)return $;return $.refine((Y)=>{if(typeof Y!=="object"||Y===null)return!0;return Q.some((X)=>ue(Y,X))},{message:"Value must match one of the enum values"})}},bM4=class{apply($,Z){if(Z.const===void 0)return $;let Q=Z.const;if(typeof Q!=="object"||Q===null)return $;return $.refine((Y)=>ue(Y,Q),{message:"Value must equal the const value"})}},xM4=class{apply($,Z){if(Z.description)$=$.describe(Z.description);return $}},yM4=class{apply($,Z){var Q;let Y=Z;if(!((Q=Y.required)==null?void 0:Q.includes("__proto__"))||Z.type!==void 0)return $;return fM4.any().refine((X)=>this.validateRequired(X,Y.required),{message:"Missing required properties"})}validateRequired($,Z){if(typeof $!=="object"||$===null||Array.isArray($))return!0;return Z.every((Q)=>Object.prototype.hasOwnProperty.call($,Q))}},gM4=class{apply($,Z){var Q;let Y=Z;if(Y.contains===void 0)return $;let X=gQ(Y.contains),J=(Q=Y.minContains)!=null?Q:1,G=Y.maxContains;return $.refine((W)=>{if(!Array.isArray(W))return!0;let K=0;for(let H of W)if(GK0(X,H))K++;if(K<J)return!1;if(G!==void 0&&K>G)return!1;return!0},{message:"Array must contain required items matching the schema"})}},hM4=class{apply($,Z){let{default:Q}=Z;if(Q===void 0)return $;if(!$.safeParse(Q).success)return $;return $.default(Q)}},uM4,lM4;var CU$=D(()=>{uM4=[new QM4,new YM4,new ZM4,new JM4,new GM4,new OM4,new PM4,new WM4,new KM4,new HM4,new FM4,new UM4,new NM4,new BM4,new DM4,new EM4,new LM4,new wM4,new jM4,new AM4,new TM4,new zM4],lM4=[new yM4,new vM4,new bM4,new VM4,new kM4,new SM4,new CM4,new _M4,new gM4,new qM4,new MM4,new hM4,new xM4]});class i11{constructor($){this._url=$}start(){if(this._socket)throw Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise(($,Z)=>{this._socket=new WebSocket(this._url,cM4),this._socket.onerror=(Q)=>{let Y="error"in Q?Q.error:Error(`WebSocket error: ${JSON.stringify(Q)}`);Z(Y),this.onerror?.(Y)},this._socket.onopen=()=>{$()},this._socket.onclose=()=>{this.onclose?.()},this._socket.onmessage=(Q)=>{let Y;try{Y=MG.parse(JSON.parse(Q.data))}catch(X){this.onerror?.(X);return}this.onmessage?.(Y)}})}async close(){this._socket?.close()}send($){return new Promise((Z,Q)=>{if(!this._socket){Q(Error("Not connected"));return}this._socket?.send(JSON.stringify($)),Z()})}}var cM4="mcp";var _U$=D(()=>{KZ()});function mM4($){let Z=$;if(!Z||typeof Z!=="object"||!("method"in Z))return null;switch(Z.method){case"initialize":{let Q=Z?.params?.protocolVersion;if(!Q)return null;return{type:"emit",message:{result:{protocolVersion:Q,capabilities:{tools:{}},serverInfo:{name:"deco-chat-server",version:"1.0.0"}},jsonrpc:Z.jsonrpc??"2.0",id:Z.id}}}case"notifications/roots/list_changed":case"notifications/initialized":case"notifications/cancelled":case"notifications/progress":return{type:"suppress"};default:return null}}var p11;var vU$=D(()=>{Il();p11=class p11 extends VF{constructor($,Z){super($,Z)}send($,Z){let Q=mM4($);if(Q?.type==="emit")return this.onmessage?.(Q.message),Promise.resolve();if(Q?.type==="suppress")return Promise.resolve();return super.send($,Z)}}});var bU$,xU$=async($,Z,Q)=>{let Y=dM4($.connection,Z,Q);if(!Y)throw Error("Unknown MCP connection type");let X=new bU$({name:$?.name??"MCP Client",version:"1.0.0"});return await X.connect(Y),{client:X}},dM4=($,Z,Q)=>{if($.type==="Websocket")return new i11(new URL($.url));if($.type!=="SSE"&&$.type!=="HTTP")return null;let X={...$.token?{authorization:`Bearer ${$.token}`}:{},...Q??{},..."headers"in $?$.headers||{}:{}};if($.type==="SSE"){let J={requestInit:{headers:X,signal:Z}};if($.token)J.eventSourceInit={fetch:(G,W)=>{return fetch(G,{...W,headers:{...X,Accept:"text/event-stream"},signal:Z})}};return new W2(new URL($.url),J)}return new p11(new URL($.url),{requestInit:{headers:X,signal:Z,credentials:"include"}})};var fU$=D(()=>{IF();oJ0();_U$();KZ();NJ();vU$();bU$=class bU$ extends sZ{constructor($,Z){super($,{jsonSchemaValidator:vZ,...Z})}async listTools($,Z){return await this.request({method:"tools/list",params:$},Qo,Z)}}});function pM4($,Z){if(QA.set($,Z),QA.size>iM4){let Q=QA.keys().next().value;if(Q!==void 0)QA.delete(Q)}}function hU$($){let Z=(Q)=>{if("connection"in $)return xU$({connection:$.connection},void 0,Q);return $.client};return new Proxy({},{get(Q,Y){if(Y==="toJSON")return null;if(typeof Y!=="string")throw Error("Name must be a string");if(Y==="listTools")return W;async function X(K,H=Y){let F=$?.debugId?.(),U=F?{"x-trace-debug-id":F}:void 0,{client:N}=await Z(U),{structuredContent:B,isError:O,content:L}=await N.callTool({name:String(H),arguments:K});if(O){let j=L?.[0]?.text,E=typeof j==="string"?yU$(j):null,z=E?.code&&typeof $?.getErrorByStatusCode==="function"?$.getErrorByStatusCode(E.code,E.message,E.traceId):null;if(z)throw z;throw Error(`Tool ${String(H)} returned an error: ${JSON.stringify(B??L)}`)}if(B!==void 0)return B;let w=L?.[0]?.text;return typeof w==="string"?yU$(w):void 0}async function J(){let{client:K}=await Z(),{tools:H}=await K.listTools();return H}async function G(){if(!("connection"in $))return J();let K=$.connection,H=JSON.stringify(K);try{if(!QA.has(H))pM4(H,J());return await QA.get(H)}catch(F){console.error("Failed to list tools",F),QA.delete(H);return}}async function W(){return(await G()??[]).map((H)=>gU$(H,X))}return X.asTool=async()=>{let H=(await G()??[]).find((F)=>F.name===Y);if(!H)throw Error(`Tool ${Y} not found`);return gU$(H,X)},X}})}var yU$=($)=>{try{return JSON.parse($)}catch{return $}},iM4=500,QA,gU$=($,Z)=>{return{...$,id:$.name,inputSchema:$.inputSchema?gQ($.inputSchema):void 0,outputSchema:$.outputSchema?gQ($.outputSchema):void 0,execute:(Q)=>{return Z(Q.context,$.name)}}};var uU$=D(()=>{CU$();fU$();QA=new Map});function le($){return hU$($)}var B19;var lU$=D(()=>{uU$();B19=new Proxy({},{get($,Z){if(Z==="toJSON")return null;if(Z==="forConnection")return(Q)=>le({connection:Q});if(Z==="forClient")return(Q)=>le({client:Q});return globalThis[Z]}})});function KK0($){return{isImplementedBy:(Z)=>{for(let Q of $){let Y=typeof Q.name==="string"?new RegExp(`^${Q.name}$`):Q.name,X=Z.find((J)=>Y.test(J.name));if(!X&&Q.opt)continue;if(!X)return!1}return!0}}}var tB=($)=>{return{...KK0($),forClient:(Z)=>{return le({client:Z})},forConnection:(Z)=>{return le({connection:Z})}}};var cc=D(()=>{lU$()});import{z as d9}from"zod";var cU$,mU$,dU$,iU$,pU$,nM4;var nU$=D(()=>{cc();cU$=d9.object({specversion:d9.literal("1.0").describe("CloudEvents specification version"),id:d9.string().describe("Unique identifier for this event (UUID recommended)"),source:d9.string().describe("Connection ID of the event publisher"),type:d9.string().describe("Event type (e.g., 'order.created', 'user.signup')"),time:d9.string().datetime().optional().describe("Timestamp of when the event occurred (ISO 8601)"),subject:d9.string().optional().describe("Subject/resource identifier (e.g., order ID, user ID)"),datacontenttype:d9.string().optional().default("application/json").describe("Content type of the data attribute"),dataschema:d9.string().url().optional().describe("URI to the schema for the data attribute"),data:d9.unknown().optional().describe("Event payload (any JSON value)")}),mU$=d9.object({events:d9.array(cU$).min(1).describe("Batch of CloudEvents to process")}),dU$=d9.object({success:d9.boolean().optional().describe("Whether this event was processed successfully"),error:d9.string().optional().describe("Error message for this event"),retryAfter:d9.number().int().positive().optional().describe("Re-deliver this event after this many ms")}),iU$=d9.object({success:d9.boolean().optional().describe("Batch success - applies to events not in results"),error:d9.string().optional().describe("Batch error message - applies to events not in results"),processedCount:d9.number().int().min(0).optional().describe("Number of events successfully processed"),retryAfter:d9.number().int().positive().optional().describe("Batch retryAfter - applies to events not in results"),results:d9.record(d9.string(),dU$).optional().describe("Per-event results keyed by event ID")}),pU$=[{name:"ON_EVENTS",inputSchema:mU$,outputSchema:iU$}],nM4=tB(pU$)});import{z as i9}from"zod";var tU$,oU$,rU$,sU$,aU$,eU$,HK0,n11;var t11=D(()=>{cc();tU$=i9.object({type:i9.literal("string"),enum:i9.array(i9.string()).optional(),description:i9.string().optional()}),oU$=i9.object({type:i9.string(),description:i9.string(),paramsSchema:i9.record(i9.string(),tU$)}),rU$=i9.object({}),sU$=i9.object({triggers:i9.array(oU$)}),aU$=i9.object({type:i9.string(),params:i9.record(i9.string(),i9.string()),enabled:i9.boolean(),callbackUrl:i9.url().optional(),callbackToken:i9.string().min(1).optional()}),eU$=i9.object({success:i9.boolean()}),HK0=[{name:"TRIGGER_LIST",inputSchema:rU$,outputSchema:sU$},{name:"TRIGGER_CONFIGURE",inputSchema:aU$,outputSchema:eU$}],n11=tB(HK0)});import{z as W8}from"zod";var tM4,oM4,rM4,sM4,aM4,eM4,$I4,ZI4,QI4,YI4,XI4,JI4,YA;var ce=D(()=>{tM4=W8.object({prefix:W8.string().optional().describe("Filter objects by prefix (e.g., 'folder/' for folder contents)"),maxKeys:W8.number().optional().default(1000).describe("Maximum number of keys to return (default: 1000)"),continuationToken:W8.string().optional().describe("Token for pagination from previous response"),delimiter:W8.string().optional().describe("Delimiter for grouping keys (typically '/'). When set, commonPrefixes returns folder paths.")}),oM4=W8.object({objects:W8.array(W8.object({key:W8.string().describe("Object key/path"),size:W8.number().describe("Object size in bytes"),lastModified:W8.string().describe("Last modified timestamp"),etag:W8.string().describe("Entity tag for the object")})),nextContinuationToken:W8.string().optional().describe("Token for fetching next page of results"),isTruncated:W8.boolean().describe("Whether there are more results available"),commonPrefixes:W8.array(W8.string()).optional().describe("Folder paths when delimiter is used (e.g., ['photos/2024/', 'photos/2025/'])")}),rM4=W8.object({key:W8.string().describe("Object key/path to get metadata for")}),sM4=W8.object({contentType:W8.string().optional().describe("MIME type of the object"),contentLength:W8.number().describe("Size of the object in bytes"),lastModified:W8.string().describe("Last modified timestamp"),etag:W8.string().describe("Entity tag for the object"),metadata:W8.record(W8.string(),W8.string()).optional().describe("Custom metadata key-value pairs")}),aM4=W8.object({key:W8.string().describe("Object key/path to generate URL for"),expiresIn:W8.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)")}),eM4=W8.object({url:W8.string().describe("Presigned URL for downloading the object"),expiresIn:W8.number().describe("Expiration time in seconds that was used")}),$I4=W8.object({key:W8.string().describe("Object key/path for the upload"),expiresIn:W8.number().optional().describe("URL expiration time in seconds (default: from state config or 3600)"),contentType:W8.string().optional().describe("MIME type for the object being uploaded")}),ZI4=W8.object({url:W8.string().describe("Presigned URL for uploading the object"),expiresIn:W8.number().describe("Expiration time in seconds that was used")}),QI4=W8.object({key:W8.string().describe("Object key/path to delete")}),YI4=W8.object({success:W8.boolean().describe("Whether the deletion was successful"),key:W8.string().describe("The key that was deleted")}),XI4=W8.object({keys:W8.array(W8.string()).max(1000).describe("Array of object keys/paths to delete (max 1000)")}),JI4=W8.object({deleted:W8.array(W8.string()).describe("Array of successfully deleted keys"),errors:W8.array(W8.object({key:W8.string(),message:W8.string()})).describe("Array of errors for failed deletions")}),YA=[{name:"LIST_OBJECTS",inputSchema:tM4,outputSchema:oM4},{name:"GET_OBJECT_METADATA",inputSchema:rM4,outputSchema:sM4},{name:"GET_PRESIGNED_URL",inputSchema:aM4,outputSchema:eM4},{name:"PUT_PRESIGNED_URL",inputSchema:$I4,outputSchema:ZI4},{name:"DELETE_OBJECT",inputSchema:QI4,outputSchema:YI4},{name:"DELETE_OBJECTS",inputSchema:XI4,outputSchema:JI4}]});import{z as O5}from"zod";var $N$,ZN$,QN$,me,FK0,UK0,NK0,BK0,GI4;var o11=D(()=>{cc();$N$=O5.object({primary:O5.string().optional().describe("Primary brand color (hex)"),secondary:O5.string().optional().describe("Secondary brand color (hex)"),accent:O5.string().optional().describe("Accent / highlight color (hex)"),background:O5.string().optional().describe("Background color (hex)"),foreground:O5.string().optional().describe("Foreground / text color (hex)")}),ZN$=O5.object({heading:O5.string().optional().describe("Font family for headings"),body:O5.string().optional().describe("Font family for body text"),code:O5.string().optional().describe("Font family for code / monospace")}),QN$=O5.object({logo:O5.string().optional().describe("Logo URL"),favicon:O5.string().optional().describe("Favicon URL"),ogImage:O5.string().optional().describe("Open Graph image URL")}),me=O5.object({id:O5.string(),name:O5.string().describe("Brand / company name"),domain:O5.string().optional().describe("Company domain (e.g. example.com)"),colors:$N$.optional().describe("Semantic color palette"),fonts:ZN$.optional().describe("Font families by role"),assets:QN$.optional().describe("Visual identity assets"),overview:O5.string().optional().describe("Company overview / description"),tagline:O5.string().optional().describe("Brand tagline"),tone:O5.string().optional().describe("Tone of voice description"),metadata:O5.record(O5.string(),O5.unknown()).optional().describe("Extra design tokens and metadata")}),FK0=O5.object({id:O5.string().optional().describe("Brand ID. Omit to get the default brand.")}),UK0=O5.object({}),NK0=O5.object({items:O5.array(me)}),BK0=[{name:"BRAND_GET",inputSchema:FK0,outputSchema:me},{name:"BRAND_LIST",inputSchema:UK0,outputSchema:NK0,opt:!0}],GI4=tB(BK0)});var YN$=D(()=>{cc();nU$();t11();ce();o11()});import{z as Q4}from"zod";function mc($){let Q=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,".");return new RegExp(`^${Q}$`,"i")}function oB($){return Q4.object({items:Q4.array($).describe("Array of collection items"),totalCount:Q4.number().int().min(0).optional().describe("Total number of matching items (if available)"),hasMore:Q4.boolean().optional().describe("Whether there are more items available")})}function ie($){return Q4.object({item:$.nullable().describe("The retrieved item, or null if not found")})}function HI4($){return Q4.object({data:$.partial().describe("Data for the new entity (id may be auto-generated)")})}function FI4($){return Q4.object({item:$.describe("The created entity with generated id")})}function UI4($){return Q4.object({id:Q4.string().describe("ID of the entity to update"),data:$.partial().describe("Partial entity data to update")})}function NI4($){return Q4.object({item:$.describe("The updated entity")})}function ne($){return Q4.object({item:$.describe("The deleted entity")})}function OK0($,Z,Q){let Y=$.toUpperCase(),X=Q?.readOnly??!1,J=[{name:`COLLECTION_${Y}_LIST`,inputSchema:KH,outputSchema:oB(Z)},{name:`COLLECTION_${Y}_GET`,inputSchema:de,outputSchema:ie(Z)}];if(!X)J.push({name:`COLLECTION_${Y}_CREATE`,inputSchema:HI4(Z),outputSchema:FI4(Z),opt:!0},{name:`COLLECTION_${Y}_UPDATE`,inputSchema:UI4(Z),outputSchema:NI4(Z),opt:!0},{name:`COLLECTION_${Y}_DELETE`,inputSchema:pe,outputSchema:ne(Z),opt:!0});return J}var DK0,WI4,XN$,KI4,KH,de,pe;var CJ=D(()=>{DK0=Q4.object({id:Q4.string().describe("Unique identifier for the entity"),title:Q4.string().describe("Human-readable title for the entity"),description:Q4.string().nullish().describe("Description of the entity"),created_at:Q4.string().datetime(),updated_at:Q4.string().datetime(),created_by:Q4.string().optional(),updated_by:Q4.string().optional()}),WI4=Q4.object({field:Q4.array(Q4.string()),operator:Q4.enum(["eq","gt","gte","lt","lte","in","like","contains"]),value:Q4.unknown()}),XN$=Q4.lazy(()=>Q4.union([WI4,Q4.object({operator:Q4.enum(["and","or","not"]),conditions:Q4.array(XN$)})]));KI4=Q4.object({field:Q4.array(Q4.string()),direction:Q4.enum(["asc","desc"]),nulls:Q4.enum(["first","last"]).optional()}),KH=Q4.object({where:XN$.optional().describe("Filter expression"),orderBy:Q4.array(KI4).optional().describe("Sort expressions"),limit:Q4.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:Q4.number().int().min(0).optional().describe("Number of items to skip")});de=Q4.object({id:Q4.string().describe("ID of the entity to retrieve")});pe=Q4.object({id:Q4.string().describe("ID of the entity to delete")})});import{z as dc}from"zod";var BI4,DI4,JN$;var GN$=D(()=>{CJ();BI4=DK0.extend({avatar:dc.string().describe("URL or data URI to the assistant's avatar image"),system_prompt:dc.string().describe("System prompt that defines the assistant's behavior"),virtual_mcp_id:dc.string().describe("Virtual MCP ID to use for this assistant"),model:dc.object({id:dc.string().describe("Model ID"),connectionId:dc.string().describe("Connection ID that provides the model")}).describe("Selected model reference for this assistant")}),DI4=OK0("assistant",BI4),JN$=[...DI4]});import{z as O0}from"zod";var te,rB,KN$,OI4,LI4,HN$,wI4,jI4,EI4,zI4,PI4,AI4,FN$,TI4,RI4,qI4,MI4,II4,VI4,kI4,SI4,CI4,_I4,d19,vI4,i19,WN$,bI4,xI4,LK0,p19;var UN$=D(()=>{cc();CJ();te=O0.lazy(()=>O0.union([O0.null(),O0.string(),O0.number(),O0.boolean(),O0.record(O0.string(),te),O0.array(te)])),rB=O0.record(O0.string(),O0.record(O0.string(),te)).optional().describe("Additional provider-specific options. Outer record keyed by provider name, inner by option key"),KN$=O0.object({type:O0.literal("text"),text:O0.string().describe("The text content"),providerOptions:rB}),OI4=O0.object({type:O0.literal("text"),text:O0.string().describe("The text content"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata")}),LI4=O0.string().describe("File data as URL string"),HN$=O0.object({type:O0.literal("file"),filename:O0.string().optional().describe("Optional filename of the file"),data:LI4,mediaType:O0.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),providerOptions:rB}),wI4=O0.object({type:O0.literal("file"),mediaType:O0.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),data:O0.string().describe("Generated file data as base64 encoded string")}),jI4=O0.object({type:O0.literal("reasoning"),text:O0.string().describe("The reasoning text"),providerOptions:rB}),EI4=O0.object({type:O0.literal("reasoning"),text:O0.string().describe("The reasoning text"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata")}),zI4=O0.object({type:O0.literal("tool-call"),toolCallId:O0.string().describe("ID of the tool call, used to match with tool result"),toolName:O0.string().describe("Name of the tool being called"),input:O0.string().describe("Arguments of the tool call (JSON-serializable object matching tool input schema)"),providerExecuted:O0.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerOptions:rB}),PI4=O0.object({type:O0.literal("tool-call"),toolCallId:O0.string().describe("ID of the tool call"),toolName:O0.string().describe("Name of the tool being called"),input:O0.string().describe("Stringified JSON object with the tool call arguments"),providerExecuted:O0.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata")}),AI4=O0.union([O0.object({type:O0.literal("text"),value:O0.string()}),O0.object({type:O0.literal("json"),value:te}),O0.object({type:O0.literal("error-text"),value:O0.string()}),O0.object({type:O0.literal("error-json"),value:te}),O0.object({type:O0.literal("content"),value:O0.array(O0.union([O0.object({type:O0.literal("text"),text:O0.string().describe("Text content")}),O0.object({type:O0.literal("media"),data:O0.string().describe("Base-64 encoded media data"),mediaType:O0.string().describe("IANA media type")})]))}),O0.object({type:O0.literal("execution-denied"),reason:O0.string().optional()}),O0.string().describe("Raw or JSON-serialized output (e.g. from AI SDK mapToolResultOutput)")]),FN$=O0.object({type:O0.literal("tool-result"),toolCallId:O0.string().describe("ID of the tool call that this result is associated with"),toolName:O0.string().describe("Name of the tool that generated this result"),output:AI4.describe("Result of the tool call"),result:O0.unknown().describe("Unknown result of the tool call"),providerOptions:rB}),TI4=O0.object({type:O0.literal("tool-result"),toolCallId:O0.string().describe("ID of the tool call that this result is associated with"),toolName:O0.string().describe("Name of the tool that generated this result"),result:O0.any().describe("Result of the tool call (JSON-serializable)"),isError:O0.boolean().optional().describe("Whether the result is an error or error message"),providerExecuted:O0.boolean().optional().describe("Whether the tool result was generated by the provider"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata")}),RI4=O0.union([O0.object({type:O0.literal("source"),sourceType:O0.literal("url"),id:O0.string().describe("The ID of the source"),url:O0.string().describe("The URL of the source"),title:O0.string().optional().describe("The title of the source"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata")}),O0.object({type:O0.literal("source"),sourceType:O0.literal("document"),id:O0.string().describe("The ID of the source"),mediaType:O0.string().describe("IANA media type of the document (e.g., application/pdf)"),title:O0.string().describe("The title of the document"),filename:O0.string().optional().describe("Optional filename of the document"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata")})]),qI4=O0.object({role:O0.literal("system"),content:O0.string().describe("System message content"),providerOptions:rB}),MI4=O0.object({role:O0.literal("user"),content:O0.array(O0.union([KN$,HN$])).describe("User message content parts (text or file)"),providerOptions:rB}),II4=O0.object({role:O0.literal("assistant"),content:O0.array(O0.union([KN$,HN$,jI4,zI4,FN$])).describe("Assistant message content parts (text, file, reasoning, tool-call, or tool-result)"),providerOptions:rB}),VI4=O0.object({role:O0.literal("tool"),content:O0.array(FN$).describe("Tool message content (tool results)"),providerOptions:rB}),kI4=O0.union([qI4,MI4,II4,VI4]),SI4=O0.array(kI4).describe("A list of messages forming the prompt"),CI4=O0.object({prompt:SI4.describe("A language model prompt is a standardized prompt type (array of messages with roles: system, user, assistant, tool)"),maxOutputTokens:O0.number().optional().describe("Maximum number of tokens to generate"),temperature:O0.number().optional().describe("Temperature setting. The range depends on the provider and model"),topP:O0.number().optional().describe("Nucleus sampling parameter"),topK:O0.number().optional().describe("Only sample from the top K options for each subsequent token. Used to remove long tail low probability responses"),presencePenalty:O0.number().optional().describe("Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt"),frequencyPenalty:O0.number().optional().describe("Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases"),seed:O0.number().optional().describe("The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results"),stopSequences:O0.array(O0.string()).optional().describe("Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated"),responseFormat:O0.union([O0.object({type:O0.literal("text")}),O0.object({type:O0.literal("json"),schema:O0.any().optional().describe("JSON schema that the generated output should conform to"),name:O0.string().optional().describe("Name of output that should be generated"),description:O0.string().optional().describe("Description of the output that should be generated")})]).optional().describe("Response format. The output can either be text or JSON. Default is text"),tools:O0.array(O0.any()).optional().describe("The tools that are available for the model"),toolChoice:O0.any().optional().describe("Specifies how the tool should be selected. Defaults to 'auto'"),includeRawChunks:O0.boolean().optional().describe("Include raw chunks in the stream. Only applicable for streaming calls"),abortSignal:O0.any().optional().describe("Abort signal for cancelling the operation"),providerOptions:O0.any().optional().describe("Additional provider-specific options")}),_I4=O0.object({content:O0.array(O0.union([OI4,wI4,EI4,PI4,TI4,RI4])).describe("Ordered content that the model has generated (text, tool-calls, reasoning, files, sources)"),finishReason:O0.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).describe("Reason why generation stopped"),usage:O0.looseObject({inputTokens:O0.number().optional(),outputTokens:O0.number().optional(),totalTokens:O0.number().optional(),reasoningTokens:O0.number().optional()}).describe("Usage information for the language model call"),providerMetadata:O0.any().optional().describe("Additional provider-specific metadata"),request:O0.object({body:O0.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:O0.object({id:O0.string().optional().describe("ID for the generated response"),timestamp:O0.iso.datetime().optional().describe("Timestamp for the start of the generated response"),modelId:O0.string().optional().describe("The ID of the response model that was used"),headers:O0.record(O0.string(),O0.string()).optional().describe("Response headers"),body:O0.any().optional().describe("Response HTTP body")}).optional().describe("Optional response information for telemetry and debugging"),warnings:O0.array(O0.any()).describe("Warnings for the call, e.g. unsupported settings")}),d19=O0.object({stream:O0.any().describe("ReadableStream of LanguageModelV2StreamPart"),request:O0.object({body:O0.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:O0.object({headers:O0.record(O0.string(),O0.string()).optional().describe("Response headers")}).optional().describe("Optional response data")}),vI4=O0.object({supportedUrls:O0.record(O0.string(),O0.array(O0.string())).describe("Supported URL patterns by media type for the provider")}),i19=O0.object({modelId:O0.string().describe("The ID of the model"),logo:O0.string().nullable(),description:O0.string().nullable(),capabilities:O0.array(O0.string()),limits:O0.object({contextWindow:O0.number(),maxOutputTokens:O0.number()}).nullable(),costs:O0.object({input:O0.number(),output:O0.number()}).nullable(),provider:O0.enum(["openai","anthropic","google","x-ai","deepseek","openai-compatible","openrouter"]).nullable()}),WN$=O0.object({modelId:O0.string().describe("The ID of the model"),callOptions:CI4}),bI4=DK0.extend({logo:O0.string().nullable(),description:O0.string().nullable(),capabilities:O0.array(O0.string()),limits:O0.object({contextWindow:O0.number(),maxOutputTokens:O0.number()}).nullable(),costs:O0.object({input:O0.number(),output:O0.number()}).nullable(),provider:O0.enum(["openai","anthropic","google","xai","deepseek","openai-compatible","openrouter"]).nullable()}),xI4=OK0("llm",bI4,{readOnly:!0}),LK0=[{name:"LLM_METADATA",inputSchema:O0.object({modelId:O0.string().describe("The ID of the model")}),outputSchema:vI4},{name:"LLM_DO_STREAM",inputSchema:WN$},{name:"LLM_DO_GENERATE",inputSchema:WN$,outputSchema:_I4},...xI4],p19=tB(LK0)});import{z as XA}from"zod";var fI4,NN$;var BN$=D(()=>{fI4=XA.object({scopes:XA.array(XA.string()).describe("List of scopes available"),stateSchema:XA.record(XA.string(),XA.unknown()).describe("JSON Schema (draft-07) defining the state structure")}),NN$=[{name:"MCP_CONFIGURATION",inputSchema:XA.object({}),outputSchema:fI4}]});import{z as p9}from"zod";var yI4,gI4,DN$;var ON$=D(()=>{yI4=p9.object({}).strict(),gI4=p9.object({billing:p9.object({mode:p9.enum(["prepaid","postpaid"]),limitPeriod:p9.enum(["daily","weekly","monthly"]).nullable()}),limit:p9.object({total:p9.number().nullable(),remaining:p9.number().nullable(),reset:p9.string().nullable()}),usage:p9.object({total:p9.number(),daily:p9.number(),weekly:p9.number(),monthly:p9.number()}),alert:p9.object({enabled:p9.boolean(),threshold_usd:p9.number(),email:p9.string().nullable()}),connectionId:p9.string()}),DN$=[{name:"GATEWAY_USAGE",inputSchema:yI4,outputSchema:gI4},{name:"GATEWAY_SET_LIMIT",inputSchema:p9.object({}),outputSchema:p9.object({}),opt:!0},{name:"GATEWAY_SET_ALERT",inputSchema:p9.object({}),outputSchema:p9.object({}),opt:!0}]});import{z as LN$}from"zod";function PW(){return HX()===null}function wK0($,Z){return $===Y4.DEV_ASSETS(Z)}function jK0($,Z){let Q=jn1(Z,$),Y=new Date().toISOString();return{id:Q.id??Y4.DEV_ASSETS($),title:Q.title,description:Q.description??null,icon:Q.icon??null,app_name:Q.app_name??null,app_id:Q.app_id??null,organization_id:$,created_by:"system",created_at:Y,updated_at:Y,connection_type:Q.connection_type,connection_url:Q.connection_url??null,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:Q.metadata??null,tools:hI4,bindings:["OBJECT_STORAGE"],status:"active"}}var hI4;var ic=D(()=>{WL();ce();p8();hI4=YA.map(($)=>({name:$.name,description:`${$.name} operation for local file storage`,inputSchema:LN$.toJSONSchema($.inputSchema),outputSchema:LN$.toJSONSchema($.outputSchema)}))});function wN$($,Z){return $||Z===0}function jN$($,Z,Q,Y,X){let J=Z?X+1:X,G=$.slice(0,Q),W=Y+Q<J;return{items:G,totalCount:J,hasMore:W}}function EN$($,Z,Q){if(!Q)return{sqlOffset:$,sqlLimit:Z};if($===0)return{sqlOffset:0,sqlLimit:Math.max(Z-1,0)};return{sqlOffset:$-1,sqlLimit:Z}}function uI4($,Z){if(Z.length===0)return;let[Q,...Y]=Z,X=Q==="slug"?EL($):$[Q];for(let J of Y){if(X===null||typeof X!=="object")return;X=X[J]}return X}function lI4($,Z,Q){if($===void 0)return!0;switch(Z){case"eq":return Q===null?$===null:$===Q;case"gt":return $>Q;case"gte":return $>=Q;case"lt":return $<Q;case"lte":return $<=Q;case"in":return Array.isArray(Q)&&Q.includes($);case"like":return typeof $==="string"&&mc(String(Q)).test($);case"contains":return String($).toLowerCase().includes(String(Q).toLowerCase());default:return!0}}function oe($,Z){if(!Z)return!0;if("conditions"in Z){let{operator:Y,conditions:X}=Z;if(X.length===0)return!0;switch(Y){case"and":return X.every((J)=>oe($,J));case"or":return X.some((J)=>oe($,J));case"not":return!X.every((J)=>oe($,J));default:return!0}}let Q=uI4($,Z.field);return lI4(Q,Z.operator,Z.value)}var zN$=D(()=>{NY0();CJ()});import{z as Qj}from"zod";var cI4=8,mI4,dI4,iI4,pI4,JA;var r11=D(()=>{YN$();GN$();CJ();UN$();BN$();ce();ON$();p8();k0();I9();SJ();hc();ic();BF();NY0();zN$();mI4=[{name:/^(COLLECTION_REGISTRY_APP_LIST|REGISTRY_ITEM_LIST)$/,inputSchema:Qj.object({})}],dI4={LLM:LK0,LLMS:LK0,ASSISTANTS:JN$,MCP:NN$,OBJECT_STORAGE:YA,AI_GATEWAY_BILLING:DN$,TRIGGER:HK0,REGISTRY:mI4,BRAND:BK0},iI4=KH.extend({binding:Qj.union([Qj.array(Qj.object({}).passthrough()),Qj.object({}).passthrough(),Qj.string()]).optional(),include_virtual:Qj.boolean().optional().describe("Whether to include VIRTUAL connections in the results. Defaults to false."),slug:Qj.string().optional().describe("Filter by connection slug. Matches against app_name, or a slug derived from connection_url or title.")}),pI4=oB(HY),JA=c({name:"COLLECTION_CONNECTIONS_LIST",description:"List all connections in the organization with filtering, sorting, and pagination",annotations:{title:"List Connections",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:iI4,outputSchema:pI4,handler:async($,Z)=>{await Z.access.check();let Q=J0(Z),Y=$.binding?typeof $.binding==="string"?(()=>{let j=dI4[$.binding.toUpperCase()];if(!j)throw Error(`Unknown binding: ${$.binding}`);return j})():$.binding:void 0,X=Y?KK0(Y):void 0,J=!!X,G=$.limit??100,W=$.offset??0,K=WZ(),H=Y4.DEV_ASSETS(Q.id),F=jK0(Q.id,K),U=(!$.slug||EL(F)===$.slug)&&oe(F,$.where),N=PW()&&!J&&U,{sqlOffset:B,sqlLimit:O}=EN$(W,G,N),{items:L,totalCount:w}=await Z.storage.connections.list(Q.id,{includeVirtual:$.include_virtual??!1,slug:$.slug,where:$.where,orderBy:$.orderBy,limit:J?void 0:O,offset:J?void 0:B});if(X){let j=LZ(),E=Y4.SELF(Q.id);await dl(L,cI4,async(z)=>{if(z.tools!==null)return;let T=z.id===E?async()=>{let{listManagementTools:P}=await Promise.resolve().then(() => (Yj(),EK0));return P(Z)}:()=>Se(z,Z,mh),A=await aw("tools",z.id,T,j,(P)=>Z.pendingRevalidations.push(P),sw);if(A!==null)z.tools=A})}if(PW()&&wN$(J,W)&&U&&!L.some((j)=>j.id===H))L.unshift(F);if(J){let j=(await Promise.all(L.map(async(A)=>{if(!A.tools||A.tools.length===0)return null;return X.isImplementedBy(A.tools.map((q)=>({name:q.name,inputSchema:q.inputSchema,outputSchema:q.outputSchema})))?A:null}))).filter((A)=>A!==null),E=j.length,z=j.slice(W,W+G),T=W+G<E;return{items:z,totalCount:E,hasMore:T}}return jN$(L,N,G,W,w)}})});var nI4,GA;var s11=D(()=>{CJ();p8();k0();I9();SJ();hc();ic();BF();nI4=ie(HY),GA=c({name:"COLLECTION_CONNECTIONS_GET",description:"Get a connection's configuration, tools list, and status by ID.",annotations:{title:"Get Connection",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},_meta:{ui:{visibility:["app"]}},inputSchema:de,outputSchema:nI4,handler:async($,Z)=>{let Q=J0(Z);if(await Z.access.check(),PW()&&wK0($.id,Q.id))return{item:jK0(Q.id,WZ())};let Y=await Z.storage.connections.findById($.id);if(!Y||Y.organization_id!==Q.id)return{item:null};if(Y.tools===null){let X=Y4.SELF(Q.id),J=Y.id===X?async()=>{let{listManagementTools:W}=await Promise.resolve().then(() => (Yj(),EK0));return W(Z)}:()=>Se(Y,Z,mh),G=await aw("tools",Y.id,J,LZ(),(W)=>Z.pendingRevalidations.push(W),sw);if(G!==null)Y.tools=G}return{item:Y}}})});class w9{db;vault;constructor($,Z){this.db=$;this.vault=Z}async get($){let Z=await this.db.selectFrom("downstream_tokens").selectAll().where("connectionId","=",$).executeTakeFirst();if(!Z)return null;return tI4(this.vault,Z)}async upsert($){let Z=new Date().toISOString(),Q=await this.vault.encrypt($.accessToken),Y=$.refreshToken?await this.vault.encrypt($.refreshToken):null,X=$.clientSecret?await this.vault.encrypt($.clientSecret):null,J=$.expiresAt?.toISOString()??null,G=await this.db.insertInto("downstream_tokens").values({id:i8("dtok"),connectionId:$.connectionId,accessToken:Q,refreshToken:Y,scope:$.scope,expiresAt:J,clientId:$.clientId,clientSecret:X,tokenEndpoint:$.tokenEndpoint,createdAt:Z,updatedAt:Z}).onConflict((W)=>W.column("connectionId").doUpdateSet({accessToken:Q,refreshToken:Y,scope:$.scope,expiresAt:J,clientId:$.clientId,clientSecret:X,tokenEndpoint:$.tokenEndpoint,updatedAt:Z})).returning(["id","createdAt"]).executeTakeFirstOrThrow();return{id:G.id,connectionId:$.connectionId,accessToken:$.accessToken,refreshToken:$.refreshToken,scope:$.scope,expiresAt:$.expiresAt,createdAt:G.createdAt,updatedAt:Z,clientId:$.clientId,clientSecret:$.clientSecret,tokenEndpoint:$.tokenEndpoint}}async delete($){await this.db.deleteFrom("downstream_tokens").where("connectionId","=",$).execute()}isExpired($,Z=0){if(!$.expiresAt)return!1;let Y=($.expiresAt instanceof Date?$.expiresAt:new Date($.expiresAt)).getTime();if(Number.isNaN(Y))return!0;return Y-Z<Date.now()}}async function tI4($,Z){try{let Q=await $.decrypt(Z.accessToken),Y=Z.refreshToken?await $.decrypt(Z.refreshToken):null,X=Z.clientSecret?await $.decrypt(Z.clientSecret):null;return{id:Z.id,connectionId:Z.connectionId,accessToken:Q,refreshToken:Y,scope:Z.scope,expiresAt:Z.expiresAt,createdAt:Z.createdAt,updatedAt:Z.updatedAt,clientId:Z.clientId,clientSecret:X,tokenEndpoint:Z.tokenEndpoint}}catch(Q){return console.warn("[DownstreamToken] failed to decrypt token row",{connectionId:Z.connectionId,message:Q instanceof Error?Q.message:String(Q)}),null}}var HH=D(()=>{FY()});function pc(...$){if(aI4)console.log("[mcp-read-cache]",...$)}function eI4($){return $.kind==="org"?"org":`u:${$.userId}`}function a11($){if($===null||typeof $!=="object")return JSON.stringify($)??"null";if(Array.isArray($))return`[${$.map(a11).join(",")}]`;return`{${Object.keys($).sort().map((Q)=>`${JSON.stringify(Q)}:${a11($[Q])}`).join(",")}}`}class AK0{config;maxEntries;now;maxTotalBytes;store=new Map;revalidating=new Set;totalBytes=0;byConnection=new Map;constructor($=oI4,Z=rI4,Q=()=>Date.now(),Y=sI4){this.config=$;this.maxEntries=Z;this.now=Q;this.maxTotalBytes=Y}stats(){return{entries:this.store.size,bytes:this.totalBytes}}deleteKey($){let Z=this.store.get($);if(Z){this.store.delete($),this.totalBytes-=Z.bytes;let Q=this.byConnection.get(Z.connectionId);if(Q){if(Q.delete($),Q.size===0)this.byConnection.delete(Z.connectionId)}}}key($,Z,Q,Y){return`${Z}:${eI4(Q)}:${$}:${a11(Y)}`}storeSet($,Z,Q,Y,X){let J;try{J=JSON.stringify(Q).length}catch{pc("SKIP non-serializable",$);return}if(J>X){pc("SKIP oversize",$,`${J}b > cap ${X}b`);return}this.deleteKey($);while(this.store.size>0&&(this.store.size>=this.maxEntries||this.totalBytes+J>this.maxTotalBytes)){let W=this.store.keys().next().value;if(W===void 0)break;this.deleteKey(W)}this.store.set($,{value:Q,storedAt:Y,bytes:J,connectionId:Z}),this.totalBytes+=J;let G=this.byConnection.get(Z);if(!G)G=new Set,this.byConnection.set(Z,G);G.add($)}async fetch($){let{type:Z,connectionId:Q,scope:Y,params:X,fetchLive:J,shouldCache:G,onRevalidation:W}=$,K=this.config[Z],H=this.key(Z,Q,Y,X),F=this.now(),U=this.store.get(H),N=U?F-U.storedAt:1/0;if(!U||N>K.maxStaleMs){zK0.add(1,{type:Z,outcome:"miss"}),pc(U?"EXPIRED":"MISS",H);let B=await J();if(G?.(B)??!0)this.storeSet(H,Q,B,this.now(),K.maxValueBytes);else pc("NOT-CACHED (shouldCache=false)",H);return B}if(this.store.delete(H),this.store.set(H,U),N>K.revalidateAfterMs&&!this.revalidating.has(H)){zK0.add(1,{type:Z,outcome:"stale"}),pc("STALE \u2192 serve + revalidate",H,`age=${N}ms`),this.revalidating.add(H);let B=J().then((O)=>{if(G?.(O)??!0)this.storeSet(H,Q,O,this.now(),K.maxValueBytes)}).catch(()=>{zK0.add(1,{type:Z,outcome:"error"})}).finally(()=>this.revalidating.delete(H));W?.(B)}else zK0.add(1,{type:Z,outcome:"hit"}),pc("HIT",H,`age=${N}ms`);return U.value}invalidate($){let Z=this.byConnection.get($);if(!Z)return;for(let Q of[...Z])this.deleteKey(Q)}}function $$1(){return E0().mcpCacheEnabled}function TK0(){return $$1()?e11:null}var zK0,PK0=1024,PN$,oI4,rI4=2000,sI4,aI4,e11;var re=D(()=>{k6();X$();zK0=e1.createCounter("mcp_read_cache.fetches",{description:"MCP read cache outcomes (hit, stale, miss, error)",unit:"{fetches}"}),PN$=PK0*PK0,oI4={"tools/call":{revalidateAfterMs:30000,maxStaleMs:300000,maxValueBytes:512*PK0},"resources/read":{revalidateAfterMs:60000,maxStaleMs:300000,maxValueBytes:4*PN$},"prompts/get":{revalidateAfterMs:60000,maxStaleMs:300000,maxValueBytes:512*PK0}},sI4=256*PN$,aI4=typeof process<"u"&&!!process.env?.MCP_CACHE_DEBUG;e11=new AK0;e1.createObservableGauge("mcp_read_cache.entries",{description:"Current entry count in the per-pod MCP read cache",unit:"{entries}"}).addCallback(($)=>$.observe(e11.stats().entries));e1.createObservableGauge("mcp_read_cache.bytes",{description:"Approximate total bytes held in the per-pod MCP read cache",unit:"By"}).addCallback(($)=>$.observe(e11.stats().bytes))});function qN$(){if(AN$)return;AN$=!0;try{TN$=e1.createCounter("virtual_mcp.aggregate_cache.lookups",{description:"Virtual MCP aggregate tool-list cache lookups by outcome (hit, miss, expired)",unit:"{lookups}"}),RN$=e1.createCounter("virtual_mcp.aggregate_cache.evictions",{description:"Virtual MCP aggregate tool-list cache entries dropped, by reason (capacity, invalidated, failed)",unit:"{entries}"}),e1.createObservableGauge("virtual_mcp.aggregate_cache.entries",{description:"Live entries in this pod's Virtual MCP aggregate tool-list cache",unit:"{entries}"}).addCallback(($)=>$.observe(AW.size))}catch($){console.error("[aggregate-cache] failed to register metrics:",$)}}function Z$1($){qN$(),TN$?.add(1,{outcome:$})}function Q$1($,Z=1){if(Z<=0)return;qN$(),RN$?.add(Z,{reason:$})}function MN$($){return[$.virtualMcpId??"",$.userId??"",$.superUser?"su":"",[...$.connectionIds].sort().join(",")].join("|")}function IN$($){let Z=AW.get($);if(!Z)return Z$1("miss"),null;if(Date.now()-Z.at>=$V4)return AW.delete($),Z$1("expired"),null;return Z$1("hit"),Z.value}function VN$($,Z,Q){let Y=Q.catch((J)=>{if(AW.get($)?.value===Y)AW.delete($),Q$1("failed");throw J});AW.delete($),AW.set($,{at:Date.now(),deps:Z,value:Y});let X=0;while(AW.size>ZV4){let J=AW.keys().next();if(J.done)break;AW.delete(J.value),X++}return Q$1("capacity",X),Y}function kN$($){let Z=0;for(let[Q,Y]of AW)if(Y.deps.includes($))AW.delete(Q),Z++;Q$1("invalidated",Z)}var $V4=30000,ZV4=500,AW,TN$=null,RN$=null,AN$=!1;var Y$1=D(()=>{k6();AW=new Map});function _N$($){TK0()?.invalidate($),jU$($),kN$($)}function nc($){_N$($);let Z=X$1?.();if(!Z)return;try{Z.publish(SN$,QV4.encode(JSON.stringify({connectionId:$,originId:CN$})))}catch(Q){console.warn("[McpCacheInvalidation] publish failed (non-critical):",Q)}}function vN$($){if(X$1=$,se)return;let Z=$();if(!Z)return;se=Z.subscribe(SN$),(async()=>{for await(let Q of se)try{let Y=JSON.parse(YV4.decode(Q.data));if(Y.originId===CN$)continue;_N$(Y.connectionId)}catch{}})().catch(console.error)}function bN$(){se?.unsubscribe(),se=null,X$1=void 0}var SN$="studio.mcp-cache.invalidate",CN$,QV4,YV4,X$1,se=null;var ae=D(()=>{re();SJ();Y$1();CN$=crypto.randomUUID(),QV4=new TextEncoder,YV4=new TextDecoder});import{z as J$1}from"zod";function JV4($){let Z={...$};for(let Q of XV4)delete Z[Q];return Z}function GV4($,Z){return $.connection_url!==void 0?$.connection_url:Z}function HV4($,Z){return $.length===Z.length&&$.every((Q,Y)=>Q===Z[Y])}var XV4,WV4,KV4,G$1;var xN$=D(()=>{ZK0();HH();k0();X$();SJ();ae();m11();oG0();BF();XV4=["id","organization_id","created_by","created_at"];WV4=J$1.object({id:J$1.string().describe("ID of the connection to update"),data:QY0.describe("Partial connection data to update")}),KV4=J$1.object({item:HY.describe("The updated connection entity")});G$1=c({name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update a connection's configuration. Re-fetches tools from the server on URL change.",annotations:{title:"Update Connection",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:WV4,outputSchema:KV4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=p0(Z);if(!Y)throw Error("User ID required to update connection");let{id:X}=$,J=JV4($.data),G=J.configuration_state!==void 0||J.configuration_scopes!==void 0,W=await Z.storage.connections.findById(X);if(!W||W.organization_id!==Q.id)throw Error("Connection not found in organization");let K=J.connection_type??W.connection_type,H=GV4(J,W.connection_url);if(K==="VIRTUAL"){let y=yh(H);if(!y)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let g=await Z.storage.virtualMcps.findById(y);if(!g)throw Error(`Virtual MCP not found: ${y}`);if(g.organization_id!==Q.id)throw Error("Virtual MCP does not belong to the current organization");H=gh(y)}let F=J.configuration_state??W.configuration_state??{},U=J.configuration_scopes??W.configuration_scopes??[];if(G){if(J.configuration_state!==void 0)F=J.configuration_state??{};else if(F===null||F===void 0)F={};if(J.configuration_scopes!==void 0)U=J.configuration_scopes??[];if(U.length>0){let y=F;ye(y,U,Q.id),await he(y,U,Q.id,Z)}}if(K==="STDIO"&&!E0().localMode)throw Error("STDIO connections are only available in local mode (--local-mode).");let N=J.connection_token??W.connection_token;if(!N)try{let g=await new w9(Z.db,Z.vault).get(X);if(g?.accessToken)N=g.accessToken}catch{}let B=await ml({id:W.id,title:J.title??W.title,connection_type:K,connection_url:H,connection_token:N,connection_headers:J.connection_headers??W.connection_headers}).catch(()=>null),O=B?.tools?.length?B.tools:null,L=!1;if(J.configuration_scopes===void 0&&B?.scopes?.length)L=!HV4(U,B.scopes),U=B.scopes;if(ye(F,U,Q.id),L&&U.length>0)await he(F,U,Q.id,Z);let w=G||L,j=w?ge(F,U):[],E=w?ge(W.configuration_state??{},W.configuration_scopes??[]):[],z=W.configuration_state,T=z==null||Object.keys(z).length===0,A,P,q=async()=>{try{await Z.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:Q.id,subjectConnectionId:X,createdBy:Y,grants:E})}catch(y){console.error("Failed to restore credential grants after credential vault mutation failed",y)}},x={...J,connection_url:H,tools:null,configuration_state:F,configuration_scopes:U,updated_by:Y},_={...W,...x};if(w)try{if(await Z.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:Q.id,subjectConnectionId:X,createdBy:Y,grants:j}),j.length>0){if(!await Z.storage.connectionCredentialVault.findActiveWorkloadToken({organizationId:Q.id,subjectConnectionId:X})){let{plaintextToken:g,record:l}=await Z.storage.connectionCredentialVault.createOrRotateWorkloadToken({organizationId:Q.id,subjectConnectionId:X});P=l.id,A={baseUrl:Z.baseUrl,org:Q.slug??Q.id,subjectConnectionId:X,token:g}}}}catch(y){if(P)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:Q.id,subjectConnectionId:X,tokenId:P});throw await q(),y}if(w&&F&&U)try{await uc(Z,_,{state:F,scopes:U,firstRun:T,...A?{vault:A}:{}})}catch(y){if(console.error("Failed to invoke ON_MCP_CONFIGURATION callback",y),P)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:Q.id,subjectConnectionId:X,tokenId:P});if(j.length>0)throw await q(),y}let V;try{V=await Z.storage.connections.update(X,x)}catch(y){if(w){if(P)await Z.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:Q.id,subjectConnectionId:X,tokenId:P});await q()}throw y}if(O)LZ()?.set("tools",X,O).catch(()=>{});return nc(X),{item:V}}})});import{z as FV4}from"zod";var UV4,W$1;var fN$=D(()=>{CJ();p8();G6();YK0();k0();SJ();ae();TW();ic();BF();UV4=pe.extend({force:FV4.boolean().optional().describe("If true, removes this connection from all agents that reference it before deleting")}),W$1=c({name:"COLLECTION_CONNECTIONS_DELETE",description:"Permanently delete a connection. Set force=true to auto-remove from referencing Virtual MCPs.",annotations:{title:"Delete Connection",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:UV4,outputSchema:ne(HY),handler:async($,Z)=>{n(Z);let Q=J0(Z);if(await Z.access.check(),PW()&&wK0($.id,Q.id))throw Error("This connection is a fixed system connection and cannot be deleted");let Y=await Z.storage.connections.findById($.id);if(!Y)throw Error(`Connection not found: ${$.id}`);if(Y.organization_id!==Q.id)throw Error("Connection not found in organization");let X=Y.metadata;if(X?.isFixed===!0)throw Error("This connection is a fixed system connection and cannot be deleted");let J=await Z.storage.virtualMcps.listByConnectionId(Q.id,$.id);if(J.length>0)if($.force)await Z.storage.virtualMcps.removeConnectionReferences($.id);else throw Error(JSON.stringify({code:"CONNECTION_IN_USE",agentNames:J.map((K)=>K.title)}));let G=await Z.storage.automations.listActiveByEventTriggerConnectionId($.id);if(G.length>0)if($.force)await Promise.all(G.map((K)=>Z.storage.automations.deactivateAutomation(K.id)));else throw Error(JSON.stringify({code:"CONNECTION_IN_USE_BY_AUTOMATION",automationNames:G.map((K)=>K.name)}));if(await Z.storage.connections.delete($.id),$.id===Y4.REPORTS(Q.id)&&typeof X?.siteUrl==="string")lc({siteUrl:X.siteUrl,orgId:Q.id,cause:"connection_deleted"});yN$($.id),await Z.storage.triggerCallbackTokens.deleteByConnection($.id,Q.id),LZ()?.invalidate($.id).catch(()=>{}),nc($.id);let W=p0(Z);if(W)f1.capture({distinctId:W,event:"connection_deleted",groups:{organization:Q.id},properties:{connection_id:Y.id,connection_type:Y.connection_type,app_name:Y.app_name??null,organization_id:Q.id,forced:$.force??!1}});return{item:Y}}})});import{z as tc}from"zod";var K$1;var gN$=D(()=>{k0();K$1=c({name:"CONNECTION_TEST",description:"Test connection health and latency",annotations:{title:"Test Connection",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:tc.object({id:tc.string()}),outputSchema:tc.object({id:tc.string(),healthy:tc.boolean(),latencyMs:tc.number()}),handler:async($,Z)=>{let Q=J0(Z);await Z.access.check();let Y=await Z.storage.connections.findById($.id);if(!Y||Y.organization_id!==Q.id)throw Error("Connection not found");let X=await Z.storage.connections.testConnection($.id);return{id:$.id,...X}}})});var hN$=D(()=>{IU$();r11();s11();xN$();fN$();gN$()});import{sql as z6}from"kysely";import{z as UU}from"zod";function uN$($){if($===null||$===void 0)return"NULL";if(typeof $==="number")return String($);if(typeof $==="boolean")return $?"TRUE":"FALSE";if(typeof $==="string")return`'${$.replace(/'/g,"''")}'`;if($ instanceof Date)return`'${$.toISOString()}'`;return`'${JSON.stringify($).replace(/'/g,"''")}'`}function DV4($,Z){let Q="",Y=0,X=!1,J=!1,G=!1,W=null;for(let K=0;K<$.length;K++){let H=$[K];if(!X&&!J&&W===null){if($.startsWith("--",K)){let F=$.indexOf(`
|
|
993
993
|
`,K),U=F===-1?$.slice(K):$.slice(K,F);Q+=U,K+=U.length-1;continue}if($.startsWith("/*",K)){let F=1,U=K+2;while(F>0&&U<$.length)if($.startsWith("/*",U))F++,U+=2;else if($.startsWith("*/",U))F--,U+=2;else U++;let N=$.slice(K,U);Q+=N,K+=N.length-1;continue}}if(W!==null){let F=`$${W}$`;if($.startsWith(F,K))Q+=F,K+=F.length-1,W=null;else Q+=H;continue}if(X&&G&&H==="\\"&&K+1<$.length){Q+=H+$[K+1],K+=1;continue}if(!J&&H==="'"){if(!X){let F=$[K-1],U=$[K-2]??"";G=(F==="e"||F==="E")&&!/[A-Za-z0-9_]/.test(U)}X=!X,Q+=H;continue}if(!X&&H==='"'){J=!J,Q+=H;continue}if(!X&&!J&&H==="$"){let F=/^\$(\d+)/.exec($.slice(K)),U=F?Number(F[1])-1:-1;if(F&&U>=0&&U<Z.length){Q+=uN$(Z[U]),K+=F[0].length-1;continue}let N=/^\$([A-Za-z_][A-Za-z0-9_]*)?\$/.exec($.slice(K));if(N){W=N[1]??"",Q+=N[0],K+=N[0].length-1;continue}}else if(!X&&!J&&H==="?"&&Y<Z.length){Q+=uN$(Z[Y]),Y++;continue}Q+=H}return Q}function lN$($){return $.replace(/-/g,"_")}function LV4($){return`app_${lN$($)}`}function wV4($){return`app_role_${lN$($)}`}function jV4($){if($ instanceof Error){let Z=$.message.toLowerCase(),Q=$.code;return Q==="3F000"||Q==="42704"||Q==="22023"||Z.includes("schema")&&Z.includes("does not exist")||Z.includes("role")&&Z.includes("does not exist")}return!1}async function EV4($,Z,Q){if(await z6`CREATE SCHEMA IF NOT EXISTS ${z6.id(Z)}`.execute($),!(await z6`
|
|
994
994
|
SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = ${Q}) as exists
|
|
995
995
|
`.execute($)).rows[0]?.exists)await z6`CREATE ROLE ${z6.id(Q)} NOLOGIN`.execute($);await z6`GRANT ${z6.id(Q)} TO CURRENT_USER`.execute($),await z6`GRANT USAGE, CREATE ON SCHEMA ${z6.id(Z)} TO ${z6.id(Q)}`.execute($),await z6`GRANT ALL ON ALL TABLES IN SCHEMA ${z6.id(Z)} TO ${z6.id(Q)}`.execute($),await z6`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${z6.id(Z)} TO ${z6.id(Q)}`.execute($),await z6`ALTER DEFAULT PRIVILEGES IN SCHEMA ${z6.id(Z)} GRANT ALL ON TABLES TO ${z6.id(Q)}`.execute($),await z6`ALTER DEFAULT PRIVILEGES IN SCHEMA ${z6.id(Z)} GRANT ALL ON SEQUENCES TO ${z6.id(Q)}`.execute($),await z6`REVOKE ALL ON SCHEMA public FROM ${z6.id(Q)}`.execute($)}async function zV4($,Z,Q,Y){try{return await $.transaction().execute(async(X)=>{return await z6`SET LOCAL ROLE ${z6.id(Q)}`.execute(X),await z6`SET LOCAL search_path TO ${z6.id(Z)}`.execute(X),await z6.raw(Y).execute(X)})}catch(X){if(jV4(X))return await EV4($,Z,Q),await $.transaction().execute(async(J)=>{return await z6`SET LOCAL ROLE ${z6.id(Q)}`.execute(J),await z6`SET LOCAL search_path TO ${z6.id(Z)}`.execute(J),await z6.raw(Y).execute(J)});throw X}}var BV4,OV4,cN$;var mN$=D(()=>{k0();BV4=UU.object({results:UU.array(UU.unknown()).optional(),success:UU.boolean().optional()});OV4=UU.object({sql:UU.string().describe("The SQL query to run"),params:UU.array(UU.unknown()).describe("The parameters to pass to the SQL query").optional()});cN$=c({name:"DATABASES_RUN_SQL",description:"Run a SQL query in a connection-scoped isolated schema. Supports SELECT, DDL, and DML.",annotations:{title:"Run SQL Query",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:OV4,outputSchema:UU.object({result:UU.array(BV4)}),handler:async($,Z)=>{n(Z),await Z.access.check();let Q=DV4($.sql,$.params||[]);if(!Z.connectionId)throw Error("Connection context required for database access");console.warn("DATABASES_RUN_SQL invoked",{"tool.deprecation_probe":"DATABASES_RUN_SQL","connection.id":Z.connectionId,"organization.id":Z.organization?.id??null,"user.id":Z.auth.user?.id??null});let Y=LV4(Z.connectionId),X=wV4(Z.connectionId);return{result:[{results:(await zV4(Z.db,Y,X,Q)).rows,success:!0}]}}})});function RK0($){let Z=$.access.getRole();if(!CZ(Z))throw new t7("Only organization owners and admins can change org-wide pin status")}var H$1=D(()=>{DY();bK()});async function qK0($,Z,Q){let Y=[...new Set(Q)],X=await Promise.all(Y.map((G)=>$.storage.connections.findById(G,Z))),J=Y.filter((G,W)=>!X[W]);if(J.length>0)throw Error(`Connection not found: ${J.join(", ")}`)}function sB($){return $.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function MK0($){let Z=2166136261;for(let Q=0;Q<$.length;Q++)Z=Math.imul(Z^$.charCodeAt(Q),16777619);return`a${(Z>>>0).toString(36).padStart(6,"0").slice(-6)}`}function IK0($){if($&&typeof $==="object"&&"gatewayClientId"in $&&typeof $.gatewayClientId==="string")return $.gatewayClientId;return}function VK0($,Z){if(!Z)return $;let Q=`${MK0(Z)}_`;return $.startsWith(Q)?$.slice(Q.length):$}function AV4($){return $.split(/[-_]/).map((Z)=>Z?Z.charAt(0).toUpperCase()+Z.slice(1):Z).join(" ")}function TV4($,Z,Q){let Y,X=new Promise((J,G)=>{Y=setTimeout(()=>G(Error(Q)),Z)});return Promise.race([$,X]).finally(()=>clearTimeout(Y))}var WA;var dN$=D(()=>{IF();WA=class WA extends sZ{static MAX_PAGES_PER_CLIENT=1000;static DEFAULT_LIST_TIMEOUT_MS=30000;clients;slugToKey=new Map;resolvedClients=new Map;toolsCache=null;resourcesCache=null;resourceTemplatesCache=null;promptsCache=null;resourceRouteMap=new Map;listTimeoutMs;constructor($,Z){super(Z?.clientInfo??{name:"gateway-client",version:"1.0.0"},{capabilities:Z?.capabilities});this.clients=$,this.listTimeoutMs=Z?.listTimeoutMs??WA.DEFAULT_LIST_TIMEOUT_MS;for(let Q of Object.keys($)){let Y=MK0(Q);if(this.slugToKey.has(Y))throw Error(`GatewayClient: duplicate namespace code "${Y}" from keys "${this.slugToKey.get(Y)}" and "${Q}"`);this.slugToKey.set(Y,Q)}}namespace($,Z){return`${MK0($)}_${Z}`}async resolveNamespacedTarget($,Z,Q){let Y=$.indexOf("_");if(Y!==-1){let X=$.slice(0,Y),J=this.slugToKey.get(X);if(J)return[J,$.slice(Y+1)]}for(let X of await Q()){let J=IK0(X._meta);if(!J)continue;if(VK0(X.name,J)===$)return[J,$]}if(Y===-1)throw Error(`GatewayClient: could not resolve ${Z} "${$}" \u2014 no namespace prefix and not found in any client`);throw Error(`GatewayClient: unknown namespace "${$.slice(0,Y)}" in "${$}" and not found by original name in any client`)}resolveToolTarget($){return this.resolveNamespacedTarget($,"tool",async()=>(await this.listTools()).tools)}resolvePromptTarget($){return this.resolveNamespacedTarget($,"prompt",async()=>(await this.listPrompts()).prompts)}resolveClient($){let Z=this.resolvedClients.get($);if(Z)return Z;let Q=this.clients[$];if(!Q)return Promise.reject(Error(`GatewayClient: unknown client key "${$}"`));let Y=Q.client,X;try{X=typeof Y==="function"?Promise.resolve(Y()):Promise.resolve(Y)}catch(G){return Promise.reject(G)}let J=X.catch((G)=>{throw this.resolvedClients.delete($),G});return this.resolvedClients.set($,J),J}getResolvedClient($){return this.resolveClient($)}async listFromClient($,Z,Q){try{return await TV4((async()=>{let Y=await this.resolveClient($);return await Z(Y)})(),this.listTimeoutMs,`timed out after ${this.listTimeoutMs}ms`)}catch(Y){return console.warn(`GatewayClient: skipping ${Q} from client "${$}" \u2014 ${Y?.message??Y}`),[]}}listFromAllClients($,Z){return Promise.all(Object.entries(this.clients).map(async([Q,Y])=>[Q,Y,await this.listFromClient(Q,(X)=>$(X,Q),Z)]))}async paginate($,Z,Q){let Y=[],X,J=0;do{let G=await Q(X);Y.push(...G.items),X=G.nextCursor,J++}while(X&&J<WA.MAX_PAGES_PER_CLIENT);if(X)console.warn(`GatewayClient: client "${$}" exceeded ${WA.MAX_PAGES_PER_CLIENT} pages listing ${Z} \u2014 truncating`);return Y}fetchAllTools($,Z){return this.paginate(Z,"tools",async(Q)=>{let Y=await $.listTools(Q?{cursor:Q}:void 0);return{items:Y.tools,nextCursor:Y.nextCursor}})}fetchAllResources($,Z){return this.paginate(Z,"resources",async(Q)=>{let Y=await $.listResources(Q?{cursor:Q}:void 0);return{items:Y.resources,nextCursor:Y.nextCursor}})}fetchAllResourceTemplates($,Z){return this.paginate(Z,"resource templates",async(Q)=>{let Y=await $.listResourceTemplates(Q?{cursor:Q}:void 0);return{items:Y.resourceTemplates,nextCursor:Y.nextCursor}})}fetchAllPrompts($,Z){return this.paginate(Z,"prompts",async(Q)=>{let Y=await $.listPrompts(Q?{cursor:Q}:void 0);return{items:Y.prompts,nextCursor:Y.nextCursor}})}listTools($,Z){if(!this.toolsCache)this.toolsCache=this.aggregateTools();return this.toolsCache}async aggregateTools(){let $=[],Z=await this.listFromAllClients((Q,Y)=>this.fetchAllTools(Q,Y),"tools");for(let[Q,Y,X]of Z){let J=Y.tools,G=J?new Set(J):null;for(let W of X){if(G&&!G.has(W.name))continue;$.push({...W,name:this.namespace(Q,W.name),_meta:{...W._meta??{},gatewayClientId:Q}})}}return{tools:$}}listResources($,Z){if(!this.resourcesCache)this.resourcesCache=this.aggregateResources();return this.resourcesCache}async aggregateResources(){let $=new Set,Z=[],Q=new Map,Y=await this.listFromAllClients((X,J)=>this.fetchAllResources(X,J),"resources");for(let[X,J,G]of Y){let W=J.resources,K=W?new Set(W):null;for(let H of G){if(K&&!K.has(H.uri)&&!(H.name&&K.has(H.name)))continue;if($.has(H.uri)){console.warn(`GatewayClient: duplicate resource "${H.uri}" from client "${X}" \u2014 skipping`);continue}$.add(H.uri),Q.set(H.uri,X),Z.push({...H,_meta:{...H._meta??{},gatewayClientId:X}})}}return this.resourceRouteMap=Q,{resources:Z}}listResourceTemplates($,Z){if(!this.resourceTemplatesCache)this.resourceTemplatesCache=this.aggregateResourceTemplates();return this.resourceTemplatesCache}async aggregateResourceTemplates(){let $=new Set,Z=[],Q=await this.listFromAllClients((Y,X)=>this.fetchAllResourceTemplates(Y,X),"resource templates");for(let[Y,X,J]of Q)for(let G of J){if($.has(G.uriTemplate)){console.warn(`GatewayClient: duplicate resource template "${G.uriTemplate}" from client "${Y}" \u2014 skipping`);continue}$.add(G.uriTemplate),Z.push({...G,_meta:{...G._meta??{},gatewayClientId:Y}})}return{resourceTemplates:Z}}listPrompts($,Z){if(!this.promptsCache)this.promptsCache=this.aggregatePrompts();return this.promptsCache}async aggregatePrompts(){let $=[],Z=await this.listFromAllClients((Q,Y)=>this.fetchAllPrompts(Q,Y),"prompts");for(let[Q,Y,X]of Z){let J=Y.prompts,G=J?new Set(J):null;for(let W of X){if(G&&!G.has(W.name))continue;$.push({...W,name:this.namespace(Q,W.name),title:W.title??AV4(W.name),_meta:{...W._meta??{},gatewayClientId:Q}})}}return{prompts:$}}async callTool($,Z,Q){let[Y,X]=await this.resolveToolTarget($.name);return(await this.resolveClient(Y)).callTool({...$,name:X},Z,Q)}async readResource($,Z){let Q=await this.resolveResourceRoute($.uri);return(await this.resolveClient(Q)).readResource($)}async getPrompt($,Z){let[Q,Y]=await this.resolvePromptTarget($.name);return(await this.resolveClient(Q)).getPrompt({...$,name:Y})}async resolveResourceRoute($){let Z=this.resourceRouteMap.get($);if(Z)return Z;if(this.resourcesCache=null,await this.listResources(),Z=this.resourceRouteMap.get($),Z)return Z;throw Error(`GatewayClient: resource "${$}" not found in any upstream client`)}getServerCapabilities(){return{tools:{},resources:{},prompts:{}}}getInstructions(){return}refresh(){this.toolsCache=null,this.resourcesCache=null,this.resourceTemplatesCache=null,this.promptsCache=null}async close(){let $=[...this.resolvedClients.values()].map((Z)=>Z.then((Q)=>Q.close()).catch(()=>{}));await Promise.allSettled($),await super.close()}}});var kK0=D(()=>{dN$()});function U$1($){return sB($)}function qV4($,Z){let Q=sB(Z)||"prompt";return`${String($).padStart(RV4,"0")}-${Q}`}async function N$1($,Z,Q){try{await $.delete(SK0,U$1(Z),{actor:Q})}catch(Y){console.error("[agent-prompts] failed to delete prompts",{agentId:Z,err:Y})}}async function CK0($,Z,Q,Y){let X=U$1(Z);await N$1($,Z,Q),await Promise.all(Y.slice(0,F$1).map(async(J,G)=>{let W=qV4(G,J.title),K={name:W,title:J.title,description:J.description,text:J.text};try{await $.write(SK0,`${X}/${W}.json`,JSON.stringify(K),{actor:Q,contentType:"application/json"})}catch(H){console.error("[agent-prompts] failed to seed prompt",{agentId:Z,name:W,err:H})}}))}async function iN$($,Z){let Q=U$1(Z),Y;try{Y=await $.listDir(SK0,Q)}catch{return[]}let X=Y.filter((G)=>G.kind==="file"&&G.path.endsWith(".json")).slice(0,F$1),J=[];for(let G of X)try{let W=await $.read(SK0,G.path),K=JSON.parse(new TextDecoder().decode(W));if(K&&typeof K.name==="string"&&typeof K.title==="string"&&typeof K.text==="string")J.push(K)}catch{}return J}var SK0="agent-prompts",F$1=20,RV4;var ee=D(()=>{kK0();RV4=String(F$1-1).length});function oc($){if(!$)return $;let Z={...$};return delete Z.sandboxMap,Z}import{z as tN$}from"zod";function MV4(){let $=pN$[Math.floor(Math.random()*pN$.length)];return`icon://${nN$[Math.floor(Math.random()*nN$.length)]}?color=${$}`}var pN$,nN$,IV4,VV4,KA;var B$1=D(()=>{k0();Zj();H$1();ee();pN$=["red","orange","amber","yellow","lime","green","emerald","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],nN$=["Star01","Zap","Heart","Globe01","Compass03","Lightbulb02","Rocket01","Flag01","BookOpen01","Shield01","Key01","Diamond01","Cube01","Target04","Award01","Briefcase01","Coffee","Feather","Hexagon01","Layers3_01","Map01","Palette","Package","Terminal"];IV4=tN$.object({data:yQ0.describe("Data for the new virtual MCP")}),VV4=tN$.object({item:KY.describe("The created virtual MCP entity")}),KA=c({name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create a Virtual MCP (agent) that aggregates tools from multiple connections into one endpoint. Pass `prompts` to seed the agent with kickstart prompts (conversation starters shown as icebreakers). Author them from the agent's role/instructions and the descriptions of the tools it will have, so the starters are coherent and immediately useful.",annotations:{title:"Create Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:IV4,outputSchema:VV4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=p0(Z);if(!Y)throw Error("User ID required to create virtual MCP");if($.data.pinned===!0)RK0(Z);let{prompts:X,metadata:J,...G}=$.data,W=oc(J);if(G.connections.length>0)await qK0(Z,Q.id,G.connections.map((F)=>F.connection_id));let K={...G,metadata:W,icon:G.icon??MV4()},H=await Z.storage.virtualMcps.create(Q.id,Y,K);if(X?.length&&Z.orgFs&&H.id)await CK0(Z.orgFs,H.id,Y,X);return{item:H}}})});function D$1($){if(!$)return null;let Z=$.projects;return Array.isArray(Z)?Z:null}function NU($,Z){if($===null)return!0;if($.includes("*"))return!0;return $.includes(Z)}async function BU($){if($.auth.apiKey)return null;let Z=$.organization?.id;if(!Z)return null;let Q=$.access.getRole()??$.organization?.role??$.auth.user?.role;if(!Q||CZ(Q))return null;if($.auth.permissions&&$.auth.permissionsOrganizationId===Z)return D$1($.auth.permissions);let Y=await HA($.db,Z,Q);return D$1(Y)}var rc=D(()=>{DY();DU()});function Xj($){return typeof $==="string"||typeof $==="number"}function O$1($,Z){let Q=Z.split("."),Y=$;for(let X of Q){if(Y==null||typeof Y!=="object")return;Y=Y[X]}return Y}function kV4($,Z){return $.connections.some((Q)=>Q.connection_id===Z)}function _K0($,Z){if("conditions"in Z){let{operator:W,conditions:K}=Z;if(K.length===0)return!0;switch(W){case"and":return K.every((H)=>_K0($,H));case"or":return K.some((H)=>_K0($,H));case"not":return!K.every((H)=>_K0($,H));default:return!0}}let{field:Q,operator:Y,value:X}=Z,J=Q.join(".");if(J==="connection_id"){if(Y!=="eq"||typeof X!=="string")return!1;return kV4($,X)}let G=O$1($,J);switch(Y){case"eq":return G===X;case"gt":return Xj(G)&&Xj(X)&&G>X;case"gte":return Xj(G)&&Xj(X)&&G>=X;case"lt":return Xj(G)&&Xj(X)&&G<X;case"lte":return Xj(G)&&Xj(X)&&G<=X;case"in":return Array.isArray(X)&&X.includes(G);case"like":if(typeof G!=="string"||typeof X!=="string")return!1;if(X.length>100)return!1;return mc(X).test(G);case"contains":if(typeof G!=="string"||typeof X!=="string")return!1;return G.toLowerCase().includes(X.toLowerCase());default:return!0}}function SV4($,Z){return[...$].sort((Q,Y)=>{for(let X of Z){let J=X.field.join("."),G=O$1(Q,J),W=O$1(Y,J),K=0;if(G==null&&W==null)continue;if(G==null)K=X.nulls==="first"?-1:1;else if(W==null)K=X.nulls==="first"?1:-1;else if(typeof G==="string"&&typeof W==="string")K=G.localeCompare(W);else if(typeof G==="number"&&typeof W==="number")K=G-W;else K=String(G).localeCompare(String(W));if(K!==0)return X.direction==="desc"?-K:K}return 0})}var CV4,_V4,FA;var L$1=D(()=>{CJ();k0();rc();Zj();CV4=KH,_V4=oB(KY),FA=c({name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List all MCP virtual MCPs in the organization",annotations:{title:"List Virtual MCPs",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:CV4,outputSchema:_V4,handler:async($,Z)=>{await Z.access.check();let Q=J0(Z),Y=$.where&&!("conditions"in $.where)&&$.where.field.join(".")==="connection_id"&&$.where.operator==="eq"&&typeof $.where.value==="string"?$.where.value:void 0,X=$.where&&!("conditions"in $.where)&&$.where.field.join(".")==="pinned"&&$.where.operator==="eq"&&typeof $.where.value==="boolean"?$.where.value:void 0,G=Y?await Z.storage.virtualMcps.listByConnectionId(Q.id,Y):await Z.storage.virtualMcps.list(Q.id,X!==void 0?{pinnedOnly:X}:void 0);if($.where)G=G.filter((B)=>_K0(B,$.where));let W=await BU(Z);if(W!==null)G=G.filter((B)=>NU(W,B.id));if($.orderBy&&$.orderBy.length>0)G=SV4(G,$.orderBy);let K=G.length,H=$.offset??0,F=$.limit??100,U=G.slice(H,H+F),N=H+F<K;return{items:U,totalCount:K,hasMore:N}}})});import{z as w$1}from"zod";var vV4,bV4,UA;var j$1=D(()=>{k0();rc();Zj();vV4=w$1.object({id:w$1.string().describe("ID of the virtual MCP to retrieve")}),bV4=w$1.object({item:KY.nullable().describe("The retrieved virtual MCP, or null if not found")}),UA=c({name:"COLLECTION_VIRTUAL_MCP_GET",description:"Get a Virtual MCP's configuration, connections, and virtual tools by ID.",annotations:{title:"Get Virtual MCP",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:vV4,outputSchema:bV4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=await Z.storage.virtualMcps.findById($.id);if(Y&&Y.organization_id!==Q.id)return{item:null};if(!Y)return{item:null};let X=await BU(Z);if(!NU(X,Y.id))return{item:null};return{item:Y}}})});function wZ($){return E$1.test($)}function NA($){let Z=(Q)=>typeof Q==="string"?Q.trim().toLowerCase():"";return Z($?.metadata?.siteSlug)||Z($?.title)||null}function oN$($){let Z=typeof $?.metadata?.analyticsSiteSlug==="string"?$.metadata.analyticsSiteSlug.trim().toLowerCase():"";if(Z&&wZ(Z))return Z;return NA($)}var E$1;var aG=D(()=>{E$1=/^[a-z0-9][a-z0-9-]{0,59}$/});function rN$($){let{nextTitle:Z,currentTitle:Q,currentSiteSlug:Y}=$;if(Y?.trim())return null;if(Z===void 0||Z===Q)return null;let X=Q?.trim().toLowerCase()??"";return wZ(X)?X:null}var sN$=D(()=>{aG()});import{z as z$1}from"zod";var xV4,fV4,BA;var P$1=D(()=>{k0();rc();ee();Zj();H$1();sN$();xV4=z$1.object({id:z$1.string().describe("ID of the virtual MCP to update"),data:gQ0.describe("Partial virtual MCP data to update")}),fV4=z$1.object({item:KY.describe("The updated virtual MCP entity")}),BA=c({name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update a Virtual MCP's name, slug, connection list, or kickstart prompts. Pass `prompts` to replace the agent's conversation starters (full set; empty array clears them).",annotations:{title:"Update Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:xV4,outputSchema:fV4,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=p0(Z);if(!Y)throw Error("User ID required to update virtual MCP");let X=await Z.storage.virtualMcps.findById($.id);if(!X)throw Error(`Virtual MCP not found: ${$.id}`);if(X.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${$.id}`);let J=await BU(Z);if(!NU(J,X.id))throw Error(`Virtual MCP not found: ${$.id}`);let{prompts:G,metadata:W,...K}=$.data,H=oc(W);if(H&&X.metadata)H={...X.metadata,...H};else if(H===null&&X.metadata?.sandboxMap)H={sandboxMap:X.metadata.sandboxMap};let F={...K,...W!==void 0?{metadata:H}:{}},U=rN$({nextTitle:F.title,currentTitle:X.title,currentSiteSlug:X.metadata?.siteSlug});if(U)F.metadata={...X.metadata,...F.metadata,siteSlug:U};if(F.pinned!==void 0&&F.pinned!==X.pinned)RK0(Z);if(F.connections?.length)await qK0(Z,Q.id,F.connections.map((B)=>B.connection_id));let N=await Z.storage.virtualMcps.update($.id,Y,F);if(G!==void 0&&Z.orgFs)await CK0(Z.orgFs,$.id,Y,G);return{item:N}}})});function T$1($){if(!$)return!1;let Z=$00.join("|");return new RegExp(`permission\\s+"?(?:${Z})"?\\s+is not allowed`,"i").test($)||/permissions exceed what the github app/i.test($)}function aN$($){let Z={...$};for(let Q of $00)Z[Q]="read";return Z}async function eN$($,Z){let Q={...Z};for(;;){let Y=await $(Q);if(!Y.isError)return{result:Y,grantedPermissions:Q};let X=Y.content?.find((K)=>K.type==="text")?.text,J=$00.find((K)=>(K in Q));if(!J||!T$1(X))return{result:Y,grantedPermissions:Q};let{[J]:G,...W}=Q;Q=W}}function yV4($){if(!$||typeof $!=="object"||Array.isArray($))return vK0;let Z=$;if(Object.values(Z).some((Q)=>typeof Q!=="string"))return vK0;return Z}function gV4($){if(typeof $!=="number"||!Number.isFinite($)||!Number.isInteger($)||$<=0)return;return $}function n9($){let Z=$.metadata?.repoScope;if(!Z||typeof Z.installationId!=="number"||!Number.isFinite(Z.installationId)||!Number.isInteger(Z.installationId)||Z.installationId<=0||typeof Z.owner!=="string"||typeof Z.repo!=="string"||Z.owner.length===0||Z.repo.length===0)return null;let Q=gV4(Z.repositoryId);return{sourceConnectionId:typeof Z.sourceConnectionId==="string"?Z.sourceConnectionId:void 0,installationId:Z.installationId,repositoryId:Q,owner:Z.owner,repo:Z.repo,permissions:yV4(Z.permissions),grantProvider:Z.grantProvider==="github-mcp"?"github-mcp":void 0}}function Jj($){return $.metadata?.orgShared===!0}function $B$($){let Z=new Set,Q=[];for(let Y of $??[]){if(Y.status!=="active")continue;let X=n9(Y);if(X===null)continue;let J=A$1(X.owner,X.repo);if(Z.has(J))continue;Z.add(J),Q.push(`${X.owner}/${X.repo}`)}return Q}function bK0($,Z,Q){let Y=A$1(Z,Q),X=($??[]).filter((J)=>{if(J.status&&J.status!=="active")return!1;let G=n9(J);return G!==null&&A$1(G.owner,G.repo)===Y});return X.find(Jj)??X[0]??null}var vK0,$00,A$1=($,Z)=>`${$}/${Z}`.toLowerCase();var _J=D(()=>{vK0={contents:"write",metadata:"read",pull_requests:"write",issues:"write",checks:"read",deployments:"read",statuses:"read"},$00=["statuses","deployments","checks"]});function ZB$($){return MQ($)!==null||HY0($)!==null}var QB$=D(()=>{p8()});import{z as R$1}from"zod";var hV4,uV4,DA;var q$1=D(()=>{_J();HH();k0();rc();ee();Zj();QB$();hV4=R$1.object({id:R$1.string().describe("ID of the virtual MCP to delete")}),uV4=R$1.object({item:KY.describe("The deleted virtual MCP entity")}),DA=c({name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Permanently delete a Virtual MCP and its virtual tools.",annotations:{title:"Delete Virtual MCP",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:hV4,outputSchema:uV4,handler:async($,Z)=>{n(Z);let Q=J0(Z);if(await Z.access.check(),ZB$($.id))throw Error(`Virtual MCP not found: ${$.id}`);let Y=await Z.storage.virtualMcps.findById($.id);if(!Y)throw Error(`Virtual MCP not found: ${$.id}`);if(Y.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${$.id}`);let X=await BU(Z);if(!NU(X,Y.id))throw Error(`Virtual MCP not found: ${$.id}`);if(await Z.storage.virtualMcps.delete($.id),Z.orgFs)await N$1(Z.orgFs,$.id,p0(Z)??"system");let J=Y.metadata?.repository?.connectionId;if(J)try{let G=await Z.storage.connections.findById(J,Q.id),W=G&&(Jj(G)||(await Z.storage.virtualMcps.listByConnectionId(Q.id,J)).length>0||await Z.storage.connections.isReferencedByThread(J));if(G&&n9(G)&&!W){let H=await new w9(Z.db,Z.vault).get(J);if(H?.accessToken)try{await fetch("https://api.github.com/installation/token",{method:"DELETE",headers:{Authorization:`Bearer ${H.accessToken}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"},signal:AbortSignal.timeout(5000)})}catch{}await Z.storage.connections.delete(J)}}catch(G){console.error("[VIRTUAL_MCP_DELETE] failed to tear down repo-scoped connection",{childConnectionId:J,error:G.message})}return{item:Y}}})});function YB$($,Z){let Q=$!==null&&typeof $==="object"&&!Array.isArray($)?$:null;if(Z===void 0)return Q;return{...Q??{},...Z}}import{z as IX}from"zod";var lV4,OA;var M$1=D(()=>{k0();rc();Zj();lV4=IX.object({connectionId:IX.string(),toolName:IX.string(),label:IX.string(),icon:IX.string().nullable().optional()}),OA=c({name:"VIRTUAL_MCP_PINNED_VIEWS_UPDATE",description:"Update the pinned sidebar views for a virtual MCP. Replaces all current pins.",annotations:{title:"Update Pinned Views",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:IX.object({virtualMcpId:IX.string().describe("Virtual MCP ID"),pinnedViews:IX.array(lV4).describe("Pinned views to set for the virtual MCP sidebar"),layout:IX.object({defaultMainView:IX.object({type:IX.string(),id:IX.string().optional(),toolName:IX.string().optional()}).nullable().optional(),chatDefaultOpen:IX.boolean().nullable().optional()}).optional()}),outputSchema:IX.object({item:KY.nullable()}),handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let{virtualMcpId:Y,pinnedViews:X,layout:J}=$,G=p0(Z),W=await Z.storage.virtualMcps.findById(Y);if(!W)throw Error(`Virtual MCP not found: ${Y}`);if(W.organization_id!==Q.id)throw Error(`Virtual MCP not found: ${Y}`);let K=await BU(Z);if(!NU(K,W.id))throw Error(`Virtual MCP not found: ${Y}`);let H=W.metadata?.ui??{},F={...H,pinnedViews:X.length>0?X:null,layout:YB$(H.layout,J)};return{item:await Z.storage.virtualMcps.update(Y,G??"system",{metadata:{...W.metadata,ui:F}})}}})});import{z as aB}from"zod";var cV4,mV4,I$1;var XB$=D(()=>{k0();cV4=aB.object({ids:aB.array(aB.string()).max(1000).describe("Virtual MCP ids to look up")}),mV4=aB.object({items:aB.array(aB.object({id:aB.string(),last_used_at:aB.string().optional(),last_used_by:aB.string().optional()}))}),I$1=c({name:"VIRTUAL_MCP_LAST_USED_LIST",description:"Get last-used info (timestamp + user) for one or more virtual MCPs, derived from the most recent thread per agent.",annotations:{title:"List Virtual MCP Last Used",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:cV4,outputSchema:mV4,handler:async($,Z)=>{n(Z),J0(Z),await Z.access.check();let Q=await Z.storage.threads.findLastUsedByVirtualMcpIds($.ids);return{items:$.ids.map((Y)=>({id:Y,last_used_at:Q.get(Y)?.last_used_at,last_used_by:Q.get(Y)?.last_used_by}))}}})});var JB$=D(()=>{B$1();L$1();j$1();P$1();q$1();M$1();XB$()});import{z as VY}from"zod";var V$1;var GB$=D(()=>{k6();k0();V$1=c({name:"MONITORING_HEATMAP",description:"Get tool-call volume broken down by agent and tool name, for spotting heavily-used tools per agent.",annotations:{title:"Get Tool-Call Heatmap",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:VY.object({startDate:VY.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:VY.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),virtualMcpIds:VY.array(VY.string()).max(100).optional().describe("Filter by specific agent (Virtual MCP) IDs"),excludeConnectionIds:VY.array(VY.string()).max(100).optional().describe("Exclude tool calls from these connection IDs"),limit:VY.number().int().min(1).max(1000).optional().describe("Max number of (agent, tool) cells to return")}),outputSchema:VY.object({cells:VY.array(VY.object({virtualMcpId:VY.string().nullable(),toolName:VY.string(),calls:VY.number(),errors:VY.number(),outputSize:VY.number().describe("Sum of tool-output character length \u2014 a proxy for context weight, not LLM token count")}))}),handler:async($,Z)=>{let Q=J0(Z);return await Z.access.check(),await oX(),Z.storage.monitoring.queryToolCallHeatmap({organizationId:Q.id,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,filters:{virtualMcpIds:$.virtualMcpIds,excludeConnectionIds:$.excludeConnectionIds},limit:$.limit})}})});import{z as j9}from"zod";var k$1;var WB$=D(()=>{k6();k0();k$1=c({name:"MONITORING_LOG_GET",description:"Get a single monitoring log by ID with full input and output data.",annotations:{title:"Get Monitoring Log",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:j9.object({id:j9.string().describe("Log ID to fetch")}),outputSchema:j9.object({log:j9.object({id:j9.string().optional(),organizationId:j9.string(),connectionId:j9.string(),toolName:j9.string(),input:j9.record(j9.string(),j9.unknown()),output:j9.record(j9.string(),j9.unknown()),isError:j9.boolean(),errorMessage:j9.string().nullish(),durationMs:j9.number(),timestamp:j9.string(),userId:j9.string().nullish(),requestId:j9.string(),userAgent:j9.string().nullish(),virtualMcpId:j9.string().nullish(),properties:j9.record(j9.string(),j9.string()).nullish()}).nullable().describe("The monitoring log, or null if not found")}),handler:async($,Z)=>{await Z.access.check(),await oX();let Q=J0(Z),Y=await Z.storage.monitoring.getById(Q.id,$.id);if(!Y)return{log:null};return{log:{...Y,timestamp:Y.timestamp instanceof Date?Y.timestamp.toISOString():Y.timestamp}}}})});import{z as t8}from"zod";var iV4,S$1;var KB$=D(()=>{k6();k0();iV4=t8.object({id:t8.string().optional().describe("Unique log identifier"),organizationId:t8.string().describe("Organization ID"),connectionId:t8.string().describe("Connection ID"),toolName:t8.string().describe("Name of the tool that was called"),isError:t8.boolean().describe("Whether the call resulted in an error"),errorMessage:t8.string().nullish().describe("Error message if applicable"),durationMs:t8.number().describe("Call duration in milliseconds"),timestamp:t8.string().describe("ISO 8601 timestamp of the call"),userId:t8.string().nullish().describe("User who triggered the call"),requestId:t8.string().describe("Unique request identifier"),userAgent:t8.string().nullish().describe("Client identifier (x-studio-client header)"),virtualMcpId:t8.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:t8.record(t8.string(),t8.string()).nullish().describe("Custom key-value metadata attached to the log")}),S$1=c({name:"MONITORING_LOGS_LIST",description:"List monitoring logs for tool calls with filtering and pagination.",annotations:{title:"List Monitoring Logs",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:t8.object({connectionId:t8.string().optional().describe("Filter by connection ID"),excludeConnectionIds:t8.array(t8.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:t8.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:t8.string().optional().describe("Filter by tool name"),isError:t8.boolean().optional().describe("Filter by error status"),startDate:t8.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:t8.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:t8.number().default(20).describe("Maximum number of results"),offset:t8.number().default(0).describe("Offset for pagination"),properties:t8.record(t8.string(),t8.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:t8.array(t8.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:t8.record(t8.string(),t8.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:t8.record(t8.string(),t8.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:t8.object({logs:t8.array(iV4).describe("Array of monitoring logs"),total:t8.number().describe("Total number of logs matching filters"),offset:t8.number().describe("Current offset for pagination"),limit:t8.number().describe("Current limit for pagination")}),handler:async($,Z)=>{await Z.access.check(),await oX();let Q=J0(Z),X=$.properties||$.propertyKeys||$.propertyPatterns||$.propertyInValues?{properties:$.properties,propertyKeys:$.propertyKeys,propertyPatterns:$.propertyPatterns,propertyInValues:$.propertyInValues}:void 0,J={organizationId:Q.id,connectionId:$.connectionId,excludeConnectionIds:$.excludeConnectionIds,virtualMcpId:$.virtualMcpId,toolName:$.toolName,isError:$.isError,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,limit:$.limit,offset:$.offset,propertyFilters:X},G=await Z.storage.monitoring.query(J);return{logs:G.logs.map(({input:W,output:K,...H})=>({...H,timestamp:H.timestamp instanceof Date?H.timestamp.toISOString():H.timestamp})),total:G.total,offset:$.offset,limit:$.limit}}})});import{z as _$}from"zod";var C$1;var HB$=D(()=>{k6();k0();C$1=c({name:"MONITORING_STATS",description:"Get aggregated statistics (counts, latency, error rates) for tool call monitoring.",annotations:{title:"Get Monitoring Stats",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:_$.object({startDate:_$.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:_$.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),interval:_$.string().regex(/^\d+[mhd]$/).optional().describe("Bucket interval for timeseries data (e.g. 1m, 5m, 2h, 1d). When provided, returns timeseries array."),connectionIds:_$.array(_$.string()).max(100).optional().describe("Filter by specific connection IDs (max 100)"),excludeConnectionIds:_$.array(_$.string()).max(100).optional().describe("Exclude specific connection IDs (max 100)"),toolNames:_$.array(_$.string()).max(100).optional().describe("Filter by specific tool names (max 100)"),status:_$.enum(["success","error"]).optional().describe("Filter metrics by execution status"),topN:_$.number().int().min(1).max(20).optional().describe("When provided with interval, also return top tools and their timeseries"),userIds:_$.array(_$.string()).max(100).optional().describe("Filter LLM usage by user IDs (only applied when llmUsage is true)"),llmUsage:_$.boolean().optional().describe("Aggregate LLM-call usage (tokens + USD cost) from raw log rows for the given connection. Returns token/cost totals and timeseries. Requires interval.")}),outputSchema:_$.object({totalCalls:_$.number().describe("Total number of tool calls"),errorRate:_$.number().optional().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:_$.number().describe("Average call duration in milliseconds"),errorRatePercent:_$.string().optional().describe("Error rate as a percentage string"),totalErrors:_$.number().optional().describe("Total number of errors"),p50DurationMs:_$.number().optional().describe("50th percentile duration in milliseconds"),p95DurationMs:_$.number().optional().describe("95th percentile duration in milliseconds"),connectionBreakdown:_$.array(_$.object({connectionId:_$.string(),calls:_$.number(),errors:_$.number(),errorRate:_$.number(),avgDurationMs:_$.number()})).optional().describe("Per-connection metric breakdown"),totalInputTokens:_$.number().optional().describe("Total input tokens (LLM usage mode)"),totalOutputTokens:_$.number().optional().describe("Total output tokens (LLM usage mode)"),totalTokens:_$.number().optional().describe("Total tokens (LLM usage mode)"),totalCostUsd:_$.number().optional().describe("Total USD cost (LLM usage mode; only non-zero for providers that report cost)"),topTools:_$.array(_$.object({toolName:_$.string(),connectionId:_$.string().nullable(),calls:_$.number(),inputTokens:_$.number().optional(),outputTokens:_$.number().optional(),costUsd:_$.number().optional()})).optional().describe("Top tools ranked by calls"),topToolsTimeseries:_$.array(_$.object({timestamp:_$.string(),toolName:_$.string(),calls:_$.number(),errors:_$.number(),avg:_$.number(),p95:_$.number()})).optional().describe("Per-tool metric timeseries for the top tools"),timeseries:_$.array(_$.object({timestamp:_$.string(),calls:_$.number(),errors:_$.number(),errorRate:_$.number(),avg:_$.number(),p50:_$.number(),p95:_$.number(),inputTokens:_$.number().optional(),outputTokens:_$.number().optional(),totalTokens:_$.number().optional(),costUsd:_$.number().optional()})).optional().describe("Timeseries data points bucketed by interval")}),handler:async($,Z)=>{let Q=J0(Z);if(await Z.access.check(),await oX(),$.interval&&$.llmUsage)return Z.storage.monitoring.queryLlmUsageStats({organizationId:Q.id,interval:$.interval,connectionId:$.connectionIds?.[0]??"decopilot",startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,userIds:$.userIds,topN:$.topN});if($.interval){let X=await Z.storage.monitoring.queryMetricTimeseries({organizationId:Q.id,interval:$.interval,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,filters:{connectionIds:$.connectionIds,excludeConnectionIds:$.excludeConnectionIds,toolNames:$.toolNames,status:$.status}});if(!$.topN)return X;let J=await Z.storage.monitoring.queryMetricTopToolsTimeseries({organizationId:Q.id,interval:$.interval,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0,topN:$.topN,filters:{connectionIds:$.connectionIds,excludeConnectionIds:$.excludeConnectionIds,toolNames:$.toolNames,status:$.status}});return{...X,topTools:J.topTools,topToolsTimeseries:J.timeseries}}let Y=await Z.storage.monitoring.getStats({organizationId:Q.id,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0});return{...Y,errorRatePercent:(Y.errorRate*100).toFixed(2)}}})});import{z as VX}from"zod";var _$1;var FB$=D(()=>{k6();k0();_$1=c({name:"MONITORING_THREAD_USAGE",description:"Aggregate LLM token usage and USD cost per thread for the given thread IDs.",annotations:{title:"Get Thread Usage",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:VX.object({threadIds:VX.array(VX.string()).min(1).max(500).describe("Thread IDs to aggregate usage for (max 500)"),connectionId:VX.string().optional().describe("LLM connection ID (defaults to 'decopilot')"),startDate:VX.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:VX.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:VX.object({items:VX.array(VX.object({threadId:VX.string(),calls:VX.number(),inputTokens:VX.number(),outputTokens:VX.number(),totalTokens:VX.number(),costUsd:VX.number()}))}),handler:async($,Z)=>{let Q=J0(Z);return await Z.access.check(),await oX(),{items:await Z.storage.monitoring.queryThreadUsage({organizationId:Q.id,connectionId:$.connectionId??"decopilot",threadIds:$.threadIds,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0})}}})});var UB$=D(()=>{GB$();WB$();KB$();HB$();FB$()});function xK0($){return typeof $==="string"&&nV4.has($.trim().toLowerCase())}var nV4;var v$1=D(()=>{nV4=new Set([".well-known","_admin","_users","api","auth","choose-editor","cli","commerce-onboarding","dbos-queue-depth","health","hosted-run-pending","login","mcp","metrics","oauth","oauth-proxy","onboarding","org","report","reports-onboarding","reset-password"])});import{z as eG}from"zod";var b$1;var NB$=D(()=>{k0();v$1();b$1=c({name:"ORGANIZATION_CREATE",description:"Create a new organization. The caller becomes the owner automatically.",annotations:{title:"Create Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:eG.object({slug:eG.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens").refine(($)=>!xK0($),"Slug is reserved by Studio"),name:eG.string().min(1).max(255),description:eG.string().max(500).optional()}),outputSchema:eG.object({id:eG.string(),name:eG.string(),slug:eG.string(),logo:eG.string().nullable().optional(),metadata:eG.any().optional(),createdAt:eG.string().datetime().describe("ISO 8601 timestamp"),members:eG.array(eG.any()).optional()}),handler:async($,Z)=>{n(Z),await Z.access.check();let Q=p0(Z);if(!Q)throw Error("User ID required to create organization");let Y=await Z.boundAuth.organization.create({name:$.name,slug:$.slug,metadata:$.description?{description:$.description}:void 0,userId:Q});if(!Y)throw Error("Failed to create organization");return{...Y,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt}}})});import{z as OU}from"zod";var x$1;var BB$=D(()=>{k0();x$1=c({name:"ORGANIZATION_LIST",description:"List organizations the current user belongs to.",annotations:{title:"List Organizations",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},_meta:{ui:{visibility:"app"}},inputSchema:OU.object({}),outputSchema:OU.object({organizations:OU.array(OU.object({id:OU.string(),name:OU.string(),slug:OU.string(),logo:OU.string().nullable().optional(),metadata:OU.any().optional(),createdAt:OU.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async($,Z)=>{if(n(Z),await Z.access.check(),!p0(Z))throw Error("User ID required to list organizations");return{organizations:(await Z.boundAuth.organization.list()).map((Y)=>({...Y,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt}))}}})});import{z as RW}from"zod";var f$1;var DB$=D(()=>{k0();f$1=c({name:"ORGANIZATION_GET",description:"Get an organization's details, members, and settings by slug or ID.",annotations:{title:"Get Organization",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:RW.object({}),outputSchema:RW.object({id:RW.string(),name:RW.string(),slug:RW.string(),logo:RW.string().nullable().optional(),metadata:RW.any().optional(),createdAt:RW.string().datetime().describe("ISO 8601 timestamp"),members:RW.array(RW.any()).optional(),invitations:RW.array(RW.any()).optional()}),handler:async($,Z)=>{n(Z),await Z.access.check();let Q=Z.organization?.id;if(!Q)throw Error("Organization ID required (no active organization in context)");let Y=await Z.boundAuth.organization.get(Q);if(!Y)throw Error("No active organization found");let X=new Date,J=Y.invitations?.filter((G)=>new Date(G.expiresAt)>X);return{...Y,invitations:J,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt}}})});import{z as FH}from"zod";var y$1;var OB$=D(()=>{k0();y$1=c({name:"ORGANIZATION_UPDATE",description:"Update an organization's name or description.",annotations:{title:"Update Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:FH.object({id:FH.string(),name:FH.string().min(1).max(255).optional(),description:FH.string().max(500).optional()}),outputSchema:FH.object({id:FH.string(),name:FH.string(),slug:FH.string(),logo:FH.string().nullable().optional(),metadata:FH.any().optional(),createdAt:FH.string().datetime().describe("ISO 8601 timestamp")}),handler:async($,Z)=>{if(n(Z),await Z.access.check(),$.id!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let Q={};if($.name)Q.name=$.name;if($.description!==void 0){let X=await Z.boundAuth.organization.get($.id);Q.metadata={...X?.metadata,description:$.description}}let Y=await Z.boundAuth.organization.update({organizationId:$.id,data:Q});if(!Y)throw Error("Failed to update organization");return{...Y,createdAt:Y.createdAt instanceof Date?Y.createdAt.toISOString():Y.createdAt}}})});import{sql as tV4}from"kysely";import{z as Z00}from"zod";var g$1;var LB$=D(()=>{p8();k0();YK0();g$1=c({name:"ORGANIZATION_DELETE",description:"Archive an organization (soft delete).",annotations:{title:"Delete Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Z00.object({id:Z00.string()}),outputSchema:Z00.object({success:Z00.boolean(),id:Z00.string()}),handler:async($,Z)=>{if(n(Z),await Z.access.check(),$.id!==Z.organization?.id)throw Error("Organization ID does not match authenticated organization");let Y=(await Z.boundAuth.organization.get($.id))?.metadata??{};if(Y.archived===!0)return{success:!0,id:$.id};let X=await Z.storage.connections.findById(Y4.REPORTS($.id),$.id);await Z.boundAuth.organization.update({organizationId:$.id,data:{metadata:{...Y,archived:!0,archivedAt:new Date().toISOString()}}}),await tV4`
|
|
@@ -1743,7 +1743,7 @@ ${Q.trim()}`}function GZ6($){return[`Your ${LU[$]} comment carries no screenshot
|
|
|
1743
1743
|
AND date >= {since:Date} AND date <= {until:Date}
|
|
1744
1744
|
GROUP BY host
|
|
1745
1745
|
ORDER BY sum(requests) DESC
|
|
1746
|
-
LIMIT 25`,{slug:$,since:Z,until:Q});return[...new Set(Y.map((X)=>id(X.host)).filter(Boolean))]}async function Fh$($){let Z=E0().oneDollarStatsApiKey;if(!Z||!gD())return{status:"not_configured"};let{slug:Q,testName:Y,since:X,until:J,goalOnDash:G}=$,W=await IZ6(Q,X,J);if(W.length===0)return{status:"no_site_data"};let K=`event:props:${Y}`,H=[X,J],F=Array.from(new Set([AM0,...$.goals])),U=async(g,l,i)=>{let p=[];for(let U0=0;U0<W.length;U0+=Hh$){let v0=await Promise.all(W.slice(U0,U0+Hh$).map(async(G0)=>{let N0=await fetch(RZ6,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":Z,Accept:"application/json"},body:JSON.stringify({site_id:G0,metrics:g,date_range:H,...l.length?{dimensions:l}:{},...i.length?{filters:i}:{},pagination:{limit:1e4,offset:0}}),signal:AbortSignal.timeout(qZ6)}).catch(()=>null);if(!N0||!N0.ok)return[];return(await N0.json().catch(()=>null))?.results??[]}));for(let G0 of v0)p.push(...G0)}return p},N=async(g,l)=>{let i=g===AM0;return(await U(["visitors"],[K,...i?[]:["event:goal"]],[["is",K,[l]],...i?[]:[["is","event:goal",[g]]]])).reduce((U0,v0)=>U0+(v0.metrics?.[0]??0),0)},B=async(g)=>{let l=G===AM0;return U(["visitors"],["time:day",K,...l?[]:["event:goal"]],[["is",K,[g]],...l?[]:[["is","event:goal",[G]]]])},[O,L,w]=await Promise.all([Promise.all(F.map(async(g)=>{let[l,i]=await Promise.all([N(g,"true"),N(g,"false")]);return{goal:g,variant:l,default:i}})),B("false"),B("true")]),j=O.find((g)=>g.goal===AM0),E={default:j?.default??0,variant:j?.variant??0},z=new Map;for(let g of L){let l=g.dimensions?.[0]?.split(" ")[0]??"";if(!l)continue;let i=z.get(l)??{default:0,variant:0};i.default+=g.metrics?.[0]??0,z.set(l,i)}for(let g of w){let l=g.dimensions?.[0]?.split(" ")[0]??"";if(!l)continue;let i=z.get(l)??{default:0,variant:0};i.variant+=g.metrics?.[0]??0,z.set(l,i)}let T=Array.from(z.entries()).map(([g,l])=>({date:g,...l})).sort((g,l)=>g.date.localeCompare(l.date)),A=L.reduce((g,l)=>g+(l.metrics?.[0]??0),0),P=w.reduce((g,l)=>g+(l.metrics?.[0]??0),0),q={successes:A,total:E.default},x={successes:P,total:E.variant},_=Kh$(q,x),V=_==null||Number.isNaN(_)?1000:_,y=Wh$(q,x);return{status:"ok",results:{visitors:E,goals:O,timeseries:T,stats:{totalParticipants:E.default+E.variant,sampleSize:V,probabilityVariantBest:y,probabilityDefaultBest:1-y}}}}var RZ6="https://deco.lilstts.com/plausible",qZ6=12000,Hh$=6,AM0="visitors",MZ6="site_id IN (SELECT id FROM default.dim_sites WHERE name = {slug:String})";var Uh$=D(()=>{X$();zM0();PM0()});import{z as l6}from"zod";function Bh$($){return $.toISOString().slice(0,10)}function VZ6(){let $=new Date,Z=new Date($);return Z.setUTCDate(Z.getUTCDate()-29),{since:Bh$(Z),until:Bh$($)}}var Nh$,rX1;var Dh$=D(()=>{aG();k0();Uh$();tf();Nh$=/^\d{4}-\d{2}-\d{2}$/;rX1=c({name:"EXPERIMENT_RESULTS",description:"A/B results for one experiment: per-goal visitor conversions for each variant, a daily timeseries for the selected goal, and the computed statistics (participants, target sample size, probability each variant is best).",annotations:{title:"Experiment Results",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:l6.object({site:l6.string().min(1).max(60).refine(wZ).describe("Site slug the experiment belongs to."),key:l6.string().min(1).describe("Analytics prop key the variants split on: `event:props:<key>` = 'true'/'false'. In the deco runtime this is the sticky segment matcher block's id (not the multivariate section name), so `key` must equal that matcher id for results to populate."),since:l6.string().regex(Nh$).optional().describe("Window start (YYYY-MM-DD)."),until:l6.string().regex(Nh$).optional().describe("Window end (YYYY-MM-DD)."),goals:l6.array(l6.string().min(1).max(200)).max(20).default([]).describe("Custom goals to aggregate conversions for."),goalOnDash:l6.string().default("visitors").describe("Goal plotted in the timeseries / used for the statistics.")}),outputSchema:l6.object({available:l6.boolean(),reason:l6.enum(["not_configured","no_site_data"]).nullable(),analyticsSite:l6.string(),results:l6.object({visitors:l6.object({default:l6.number(),variant:l6.number()}),goals:l6.array(l6.object({goal:l6.string(),default:l6.number(),variant:l6.number()})),timeseries:l6.array(l6.object({date:l6.string(),default:l6.number(),variant:l6.number()})),stats:l6.object({totalParticipants:l6.number(),sampleSize:l6.number(),probabilityVariantBest:l6.number(),probabilityDefaultBest:l6.number()})}).nullable()}),handler:async($,Z)=>{n(Z),await Z.access.check();let Q=J0(Z),Y=await ag$(Z,Q.id,$.site),X=$.since&&$.until?{since:$.since,until:$.until}:VZ6(),J=await Fh$({slug:Y,testName:$.key,since:X.since,until:X.until,goals:$.goals,goalOnDash:$.goalOnDash});return J.status==="ok"?{available:!0,reason:null,analyticsSite:Y,results:J.results}:{available:!1,reason:J.status,analyticsSite:Y,results:null}}})});var Oh$=D(()=>{eg$();$h$();Zh$();Qh$();Yh$();Dh$()});import{z as Lh$}from"zod";function _Z6($,Z){let Q=$?.[Z];if(!Q)return;return Object.entries(Q).filter(([,X])=>(uQ in X)).sort(([,X],[,J])=>(J[uQ]?.createdAt??0)-(X[uQ]?.createdAt??0))[0]?.[0]}var SZ6,CZ6,sX1;var wh$=D(()=>{G6();k0();Af();Fd();FY();lJ();SZ6=Lh$.object({data:m_$.describe("Data for the new thread (id is auto-generated if not provided)")}),CZ6=Lh$.object({item:hU.describe("The created thread entity")});sX1=c({name:"COLLECTION_THREADS_CREATE",description:"Create a new thread for organizing messages and conversations.",annotations:{title:"Create Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:SZ6,outputSchema:CZ6,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=p0(Z);if(!Y)throw Error("User ID required to create thread");let{data:X}=$,J=X.id??i8("thrd"),W=(await xR0(Z.storage.virtualMcps,X.virtual_mcp_id,Q.id)).metadata,K=W?.repository,H=null;if(K)H=X.branch??_Z6(W?.sandboxMap,Y)??TR0(AR0(Z.auth.user));let F=await Z.storage.threads.create({id:J,organization_id:Q.id,title:X.title,description:X.description,virtual_mcp_id:X.virtual_mcp_id,branch:H,created_by:Y,metadata:{runtime:X.runtime??qR0(W)}});if(F.isNew)f1.capture({distinctId:Y,event:"chat_started",groups:{organization:Q.id},properties:{organization_id:Q.id,thread_id:J,has_title:!!$.data.title,created_via:"tool"}});return{item:yW(F)}}})});import{z as aX1}from"zod";var vZ6,bZ6,eX1;var jh$=D(()=>{G6();k0();Af();Fd();vZ6=aX1.object({id:aX1.string().describe("ID of the thread to update"),data:d_$.describe("Partial thread data to update")}),bZ6=aX1.object({item:hU.describe("The updated thread entity")}),eX1=c({name:"COLLECTION_THREADS_UPDATE",description:"Update a thread's title, description, or visibility.",annotations:{title:"Update Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:vZ6,outputSchema:bZ6,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=p0(Z);if(!Y)throw Error("User ID required to update thread");let{id:X,data:J}=$,G=await Z.storage.threads.get(X);if(!G)throw Error("Thread not found in organization");let W;if(J.virtual_mcp_id!==void 0)W=await xR0(Z.storage.virtualMcps,J.virtual_mcp_id,Q.id);let K=J.virtual_mcp_id!==void 0?J.virtual_mcp_id:G.virtual_mcp_id;if(J.branch===null&&K){if((W??await Z.storage.virtualMcps.findById(K,Q.id))?.metadata?.repository)throw Error("Cannot set branch=null on a repository-linked thread (vMCP has repository)")}let H={title:J.title,description:J.description,hidden:J.hidden,updated_by:Y};if(J.status)H.status=J.status;if(J.metadata!==void 0){let U=oc(J.metadata)??{},N=zf(G.metadata?.runtime),B=zf(U.runtime);if(N&&B&&B!==N)throw Error(`Cannot change a thread's runtime (${N} \u2192 ${B}); it is stamped once at creation. Start a new chat instead.`);let O=G.metadata?.sandboxMap;H.metadata={...U,...N?{runtime:N}:{},...O!==void 0?{sandboxMap:O}:{}}}if(J.branch!==void 0)H.branch=J.branch;if(J.virtual_mcp_id!==void 0)H.virtual_mcp_id=J.virtual_mcp_id;let F=await Z.storage.threads.update(X,H);if(J.hidden!==void 0&&J.hidden!==G.hidden)f1.capture({distinctId:Y,event:J.hidden?"chat_archived":"chat_unarchived",groups:{organization:Q.id},properties:{organization_id:Q.id,thread_id:X}});return{item:yW(F)}}})});var $J1;var Eh$=D(()=>{CJ();Af();G6();k0();CD();FM0();ud();$J1=c({name:"COLLECTION_THREADS_DELETE",description:"Permanently delete a thread and all its messages.",annotations:{title:"Delete Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:pe,outputSchema:ne(hU),handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=await Z.storage.threads.get($.id);if(!Y)throw Error(`Thread not found: ${$.id}`);if(Y.status==="in_progress"){let J=(W)=>(K)=>console.error("[thread] delete-time run cancel step failed",{threadId:$.id,step:W,err:K});await hd($.id).catch(J("background-jobs")),await md($.id).catch(J("gate-head"));let G=await Z.storage.threads.getRunFence($.id).catch(()=>null);if(G)await pf($.id,G).catch(J("hosted-harness"));KM0($.id)}await Z.storage.threads.delete($.id);let X=p0(Z);if(X)f1.capture({distinctId:X,event:"chat_deleted",groups:{organization:Q.id},properties:{organization_id:Q.id,thread_id:$.id}});return{item:yW(Y)}}})});import{sql as g4}from"kysely";class ZJ1{db;constructor($){this.db=$}async rows($){return(await $.execute(this.db)).rows}async delivery($){let Z=TM0($.orgIds),[Q]=await this.rows(g4`
|
|
1746
|
+
LIMIT 25`,{slug:$,since:Z,until:Q});return[...new Set(Y.map((X)=>id(X.host)).filter(Boolean))]}async function Fh$($){let Z=E0().oneDollarStatsApiKey;if(!Z||!gD())return{status:"not_configured"};let{slug:Q,testName:Y,since:X,until:J,goalOnDash:G}=$,W=await IZ6(Q,X,J);if(W.length===0)return{status:"no_site_data"};let K=`event:props:${Y}`,H=[X,J],F=Array.from(new Set([AM0,...$.goals])),U=async(g,l,i)=>{let p=[];for(let U0=0;U0<W.length;U0+=Hh$){let v0=await Promise.all(W.slice(U0,U0+Hh$).map(async(G0)=>{let N0=await fetch(RZ6,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":Z,Accept:"application/json"},body:JSON.stringify({site_id:G0,metrics:g,date_range:H,...l.length?{dimensions:l}:{},...i.length?{filters:i}:{},pagination:{limit:1e4,offset:0}}),signal:AbortSignal.timeout(qZ6)}).catch(()=>null);if(!N0||!N0.ok)return[];return(await N0.json().catch(()=>null))?.results??[]}));for(let G0 of v0)p.push(...G0)}return p},N=async(g,l)=>{let i=g===AM0;return(await U(["visitors"],[K,...i?[]:["event:goal"]],[["is",K,[l]],...i?[]:[["is","event:goal",[g]]]])).reduce((U0,v0)=>U0+(v0.metrics?.[0]??0),0)},B=async(g)=>{let l=G===AM0;return U(["visitors"],["time:day",K,...l?[]:["event:goal"]],[["is",K,[g]],...l?[]:[["is","event:goal",[G]]]])},[O,L,w]=await Promise.all([Promise.all(F.map(async(g)=>{let[l,i]=await Promise.all([N(g,"true"),N(g,"false")]);return{goal:g,variant:l,default:i}})),B("false"),B("true")]),j=O.find((g)=>g.goal===AM0),E={default:j?.default??0,variant:j?.variant??0},z=new Map;for(let g of L){let l=g.dimensions?.[0]?.split(" ")[0]??"";if(!l)continue;let i=z.get(l)??{default:0,variant:0};i.default+=g.metrics?.[0]??0,z.set(l,i)}for(let g of w){let l=g.dimensions?.[0]?.split(" ")[0]??"";if(!l)continue;let i=z.get(l)??{default:0,variant:0};i.variant+=g.metrics?.[0]??0,z.set(l,i)}let T=Array.from(z.entries()).map(([g,l])=>({date:g,...l})).sort((g,l)=>g.date.localeCompare(l.date)),A=L.reduce((g,l)=>g+(l.metrics?.[0]??0),0),P=w.reduce((g,l)=>g+(l.metrics?.[0]??0),0),q={successes:A,total:E.default},x={successes:P,total:E.variant},_=Kh$(q,x),V=_==null||Number.isNaN(_)?1000:_,y=Wh$(q,x);return{status:"ok",results:{visitors:E,goals:O,timeseries:T,stats:{totalParticipants:E.default+E.variant,sampleSize:V,probabilityVariantBest:y,probabilityDefaultBest:1-y}}}}var RZ6="https://deco.lilstts.com/plausible",qZ6=12000,Hh$=6,AM0="visitors",MZ6="site_id IN (SELECT id FROM default.dim_sites WHERE name = {slug:String})";var Uh$=D(()=>{X$();zM0();PM0()});import{z as l6}from"zod";function Bh$($){return $.toISOString().slice(0,10)}function VZ6(){let $=new Date,Z=new Date($);return Z.setUTCDate(Z.getUTCDate()-29),{since:Bh$(Z),until:Bh$($)}}var Nh$,rX1;var Dh$=D(()=>{aG();k0();Uh$();tf();Nh$=/^\d{4}-\d{2}-\d{2}$/;rX1=c({name:"EXPERIMENT_RESULTS",description:"A/B results for one experiment: per-goal visitor conversions for each variant, a daily timeseries for the selected goal, and the computed statistics (participants, target sample size, probability each variant is best).",annotations:{title:"Experiment Results",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:l6.object({site:l6.string().min(1).max(60).refine(wZ).describe("Site slug the experiment belongs to."),key:l6.string().min(1).describe("Analytics prop key the variants split on: `event:props:<key>` = 'true'/'false'. In the deco runtime this is the sticky segment matcher block's id (not the multivariate section name), so `key` must equal that matcher id for results to populate."),since:l6.string().regex(Nh$).optional().describe("Window start (YYYY-MM-DD)."),until:l6.string().regex(Nh$).optional().describe("Window end (YYYY-MM-DD)."),goals:l6.array(l6.string().min(1).max(200)).max(20).default([]).describe("Custom goals to aggregate conversions for."),goalOnDash:l6.string().default("visitors").describe("Goal plotted in the timeseries / used for the statistics.")}).refine(($)=>!$.since||!$.until||$.since<=$.until,{message:"`since` must not be after `until`",path:["since"]}),outputSchema:l6.object({available:l6.boolean(),reason:l6.enum(["not_configured","no_site_data"]).nullable(),analyticsSite:l6.string(),results:l6.object({visitors:l6.object({default:l6.number(),variant:l6.number()}),goals:l6.array(l6.object({goal:l6.string(),default:l6.number(),variant:l6.number()})),timeseries:l6.array(l6.object({date:l6.string(),default:l6.number(),variant:l6.number()})),stats:l6.object({totalParticipants:l6.number(),sampleSize:l6.number(),probabilityVariantBest:l6.number(),probabilityDefaultBest:l6.number()})}).nullable()}),handler:async($,Z)=>{n(Z),await Z.access.check();let Q=J0(Z),Y=await ag$(Z,Q.id,$.site),X=$.since&&$.until?{since:$.since,until:$.until}:VZ6(),J=await Fh$({slug:Y,testName:$.key,since:X.since,until:X.until,goals:$.goals,goalOnDash:$.goalOnDash});return J.status==="ok"?{available:!0,reason:null,analyticsSite:Y,results:J.results}:{available:!1,reason:J.status,analyticsSite:Y,results:null}}})});var Oh$=D(()=>{eg$();$h$();Zh$();Qh$();Yh$();Dh$()});import{z as Lh$}from"zod";function _Z6($,Z){let Q=$?.[Z];if(!Q)return;return Object.entries(Q).filter(([,X])=>(uQ in X)).sort(([,X],[,J])=>(J[uQ]?.createdAt??0)-(X[uQ]?.createdAt??0))[0]?.[0]}var SZ6,CZ6,sX1;var wh$=D(()=>{G6();k0();Af();Fd();FY();lJ();SZ6=Lh$.object({data:m_$.describe("Data for the new thread (id is auto-generated if not provided)")}),CZ6=Lh$.object({item:hU.describe("The created thread entity")});sX1=c({name:"COLLECTION_THREADS_CREATE",description:"Create a new thread for organizing messages and conversations.",annotations:{title:"Create Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:SZ6,outputSchema:CZ6,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=p0(Z);if(!Y)throw Error("User ID required to create thread");let{data:X}=$,J=X.id??i8("thrd"),W=(await xR0(Z.storage.virtualMcps,X.virtual_mcp_id,Q.id)).metadata,K=W?.repository,H=null;if(K)H=X.branch??_Z6(W?.sandboxMap,Y)??TR0(AR0(Z.auth.user));let F=await Z.storage.threads.create({id:J,organization_id:Q.id,title:X.title,description:X.description,virtual_mcp_id:X.virtual_mcp_id,branch:H,created_by:Y,metadata:{runtime:X.runtime??qR0(W)}});if(F.isNew)f1.capture({distinctId:Y,event:"chat_started",groups:{organization:Q.id},properties:{organization_id:Q.id,thread_id:J,has_title:!!$.data.title,created_via:"tool"}});return{item:yW(F)}}})});import{z as aX1}from"zod";var vZ6,bZ6,eX1;var jh$=D(()=>{G6();k0();Af();Fd();vZ6=aX1.object({id:aX1.string().describe("ID of the thread to update"),data:d_$.describe("Partial thread data to update")}),bZ6=aX1.object({item:hU.describe("The updated thread entity")}),eX1=c({name:"COLLECTION_THREADS_UPDATE",description:"Update a thread's title, description, or visibility.",annotations:{title:"Update Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:vZ6,outputSchema:bZ6,handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=p0(Z);if(!Y)throw Error("User ID required to update thread");let{id:X,data:J}=$,G=await Z.storage.threads.get(X);if(!G)throw Error("Thread not found in organization");let W;if(J.virtual_mcp_id!==void 0)W=await xR0(Z.storage.virtualMcps,J.virtual_mcp_id,Q.id);let K=J.virtual_mcp_id!==void 0?J.virtual_mcp_id:G.virtual_mcp_id;if(J.branch===null&&K){if((W??await Z.storage.virtualMcps.findById(K,Q.id))?.metadata?.repository)throw Error("Cannot set branch=null on a repository-linked thread (vMCP has repository)")}let H={title:J.title,description:J.description,hidden:J.hidden,updated_by:Y};if(J.status)H.status=J.status;if(J.metadata!==void 0){let U=oc(J.metadata)??{},N=zf(G.metadata?.runtime),B=zf(U.runtime);if(N&&B&&B!==N)throw Error(`Cannot change a thread's runtime (${N} \u2192 ${B}); it is stamped once at creation. Start a new chat instead.`);let O=G.metadata?.sandboxMap;H.metadata={...U,...N?{runtime:N}:{},...O!==void 0?{sandboxMap:O}:{}}}if(J.branch!==void 0)H.branch=J.branch;if(J.virtual_mcp_id!==void 0)H.virtual_mcp_id=J.virtual_mcp_id;let F=await Z.storage.threads.update(X,H);if(J.hidden!==void 0&&J.hidden!==G.hidden)f1.capture({distinctId:Y,event:J.hidden?"chat_archived":"chat_unarchived",groups:{organization:Q.id},properties:{organization_id:Q.id,thread_id:X}});return{item:yW(F)}}})});var $J1;var Eh$=D(()=>{CJ();Af();G6();k0();CD();FM0();ud();$J1=c({name:"COLLECTION_THREADS_DELETE",description:"Permanently delete a thread and all its messages.",annotations:{title:"Delete Thread",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:pe,outputSchema:ne(hU),handler:async($,Z)=>{n(Z);let Q=J0(Z);await Z.access.check();let Y=await Z.storage.threads.get($.id);if(!Y)throw Error(`Thread not found: ${$.id}`);if(Y.status==="in_progress"){let J=(W)=>(K)=>console.error("[thread] delete-time run cancel step failed",{threadId:$.id,step:W,err:K});await hd($.id).catch(J("background-jobs")),await md($.id).catch(J("gate-head"));let G=await Z.storage.threads.getRunFence($.id).catch(()=>null);if(G)await pf($.id,G).catch(J("hosted-harness"));KM0($.id)}await Z.storage.threads.delete($.id);let X=p0(Z);if(X)f1.capture({distinctId:X,event:"chat_deleted",groups:{organization:Q.id},properties:{organization_id:Q.id,thread_id:$.id}});return{item:yW(Y)}}})});import{sql as g4}from"kysely";class ZJ1{db;constructor($){this.db=$}async rows($){return(await $.execute(this.db)).rows}async delivery($){let Z=TM0($.orgIds),[Q]=await this.rows(g4`
|
|
1747
1747
|
with moves as (${Z})
|
|
1748
1748
|
select count(distinct item_id) as completed,
|
|
1749
1749
|
count(distinct item_id) filter (
|
|
@@ -3734,7 +3734,7 @@ ${J.join(`
|
|
|
3734
3734
|
`)}`:X}function Mt6($){let Z=new Set;for(let Q of $)for(let Y of Q.split(`
|
|
3735
3735
|
`)){let X=Y.trim();if(/^Co-authored-by:\s/i.test(X))Z.add(X)}return[...Z]}var ZY8=200,Lt6=12,jt6,zt6=300,iC0=3;var kD1=D(()=>{Z7();a$();dC0();jt6={aheadBy:0,behindBy:0,files:[]}});function Vt6($){if(!$||$.includes(".."))return!1;return It6.test($)}function YY8($){return kt6.includes($)}function SD1($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!Vt6(Z))return null;let{__resolveType:Q,...Y}=$;return{resolveType:Z,payload:Y}}function CD1($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var It6,kt6;var XY8=D(()=>{It6=/^[\w./@-]+$/;kt6=["vtex/loaders/intelligentSearch/productList.ts","vtex/loaders/categories/tree.ts"]});function y60($,Z){let Q=$?.repository;if(!Q?.owner||!Q?.name)return null;if(!Q.connectionId)return Q;if(!Z.includes(Q.connectionId))return null;return Q}async function GY8($,Z,Q,Y){let X=$.organization?.id;if(!X)throw new $z(k7);let J=await Cj($.storage,X,Y);if(J&&await ND($.storage,J)){let F=await PU($,J,{forceRefresh:!0}).catch((U)=>{throw new $z(U instanceof Error?U.message:k7)});await JY8($,Z,Q,F);return}let G=Y.connectionId??J?.legacyConnectionId;if(!G)throw new $z("Push requires a connected git account. Connect the repository's provider for this project and restart the sandbox.");await Dm({ctx:$,connectionId:G,organizationId:X,forceRefresh:!0,onLegacyMintError:(F)=>{let U=F instanceof Error?F.message:k7;throw new $z(U)}});let{cloneUrl:W,gitUserName:K,gitUserEmail:H}=await TU(G,Y.owner,Y.name,$.db,$.vault).catch((F)=>{let{code:U,message:N}=QL$(F instanceof Error?F.message:String(F));throw U?new $z(N):F});await JY8($,Z,Q,{cloneUrl:W,gitUserName:K,gitUserEmail:H})}async function JY8($,Z,Q,Y){let{cloneUrl:X,gitUserName:J,gitUserEmail:G}=Y,W=Ip($),K=await Z.proxyDaemonRequest(Q,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({git:{repository:{cloneUrl:X},identity:{userName:J,userEmail:G}},...W?{operator:W}:{}})});if(!K.ok){let H=await YE(K,St6).catch(()=>K.statusText);throw Error(`Failed to refresh sandbox git credentials (${K.status}): ${H}`)}}var St6=10485760,$z;var _D1=D(()=>{TW();xC0();B$0();TH0();l00();Z7();$z=class $z extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function _t6($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!Ct6.test(Z))throw Error(`Invalid branch name: ${$}`)}function py($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(vt6)])}async function xt6($,Z){let Q=$.var.studioContext,Y=_U(Z.branch),X=$.req.query("thread")??Y,J=X&&X===Y?Z.branchThread:X?await Q.storage.threads.get(X).catch(()=>null):null,G=J?.virtual_mcp_id===Z.virtualMcpId?J:null,W=zf(G?.metadata?.runtime);if(W)return W;let K=qR0(Z.virtualMcpMetadata),H=K==="cms"?await HD1(Q,{claimName:Z.claimName}):"alive",F=K==="cms"&&H!=="alive"?"cms":"sandbox",U=!!G&&(H==="gone"||H==="alive"&&K==="cms");if(U&&G)D$0(Q,G.id,F);if(K==="cms")console.log("sandbox proxy: no runtime stamp",{route:$.req.path,method:$.req.method,reason:G?"unstamped":"threadless",liveness:H,resolved:F,stamped:U});return F}async function ft6($){let Z=$.get("vmClaim");if(Z.runner)return Z.runner;try{return await gX($.var.studioContext)}catch{return null}}function ny($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}async function _p($){let{virtualMcpMetadata:Z,connectionIds:Q}=$.get("vmClaim"),Y=$.var.studioContext,X=y60(Z,Q);if(!X)throw new f0({provider:"github",status:404,message:"Project has no repository"});let J=J0(Y);return Um(Y,J.id,X)}function bD1($,Z){let Q=Z instanceof Error?Z.message:String(Z),Y=wD$(Z);if(Y!==void 0)return $.json({error:Q},429,{...G9,...Y===null?{}:{"Retry-After":String(Math.ceil(Y/1000))}});if(Z instanceof s6)return $.json({error:Q},409,G9);let X=IW(Z);if(X!==null){let J=X===404?404:X===409||X===422?409:502;return $.json({error:Q},J,G9)}return $.json({error:Q},502,G9)}async function vD1($,Z,Q){let Y;try{Y=await fetch(Z,Q)}catch{return $.json({error:"Preview unreachable"},502)}let X;try{X=await Y.text()}catch{return $.json({error:"Preview unreachable"},502)}return new Response(X,{status:Y.status,headers:{"content-type":Y.headers.get("content-type")??"application/json"}})}async function FY8($){try{let Z=await _p($),Q=await pC0(Z,$.get("vmClaim").branch);return $.json(Q,200,G9)}catch(Z){return bD1($,Z)}}function g60($,Z){let Y=(oC0.get($)??Promise.resolve()).catch(()=>{}).then(Z),X=Y.catch(()=>{});return oC0.set($,X),X.finally(()=>{if(oC0.get($)===X)oC0.delete($)}),Y}async function NQ($,Z,Q){if(!Q?.runner&&$.get("vmClaim").runtime==="cms")return $.json({error:"sandbox not found: this session is sandbox-less"},404,G9);let Y=Q?.runner??ny($);if(Y instanceof Response)return Y;let{claimName:X,userId:J,projectRef:G}=$.get("vmClaim"),W=Q?.method??"POST",K=null,H=new Headers;if(Q?.jsonBody!==void 0)K=Q.jsonBody,H.set("content-type","application/json");else if(Q?.forwardJsonBody)K=await $.req.text(),H.set("content-type","application/json");let F=Q?.signal,U={method:W,headers:H,body:K,...F?{signal:F}:{}},N=async()=>{let B=await Y.proxyDaemonRequest(X,Z,U);if(Q?.map404to410&&B.status===404){try{await B.body?.cancel()}catch{}if(await Y.adoptLiveClaim({userId:J,projectRef:G},X))B=await Y.proxyDaemonRequest(X,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",...G9}})}}let O=await B.text(),L=Q?.redactRepoDir?yt6(O):O,w=B.headers.get("content-type")??"application/json";return new Response(L,{status:B.status,headers:{"content-type":w,...G9}})};try{if(F){let B=N();return B.catch(()=>{}),await Promise.race([B,new Promise((L,w)=>{if(F.aborted)return w(F.reason);F.addEventListener("abort",()=>w(F.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 yt6($){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 rC0($,Z,Q,Y="GET",X){let J=await $.proxyDaemonRequest(Z,Q,{method:Y,headers:new Headers,body:null});if(J.status===404&&X){try{await J.body?.cancel()}catch{}if(await $.adoptLiveClaim(X,Z))J=await $.proxyDaemonRequest(Z,Q,{method:Y,headers:new Headers,body:null})}if(J.status===404){try{await J.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let G=await J.text();if(!J.ok){let W=`Daemon error (${J.status})`;try{W=JSON.parse(G).error??W}catch{}throw Error(W)}return JSON.parse(G)}function gt6($){return UY8.includes($)}var Ct6,WY8=524288,KY8=65536,vt6=1e4,HY8=2000,bt6,oC0,G9,UY8,NY8=()=>{let $=new Z1;$.use("/:virtualMcpId/:branch/*",bt6),$.post("/:virtualMcpId/:branch/write",(Q)=>NQ(Q,"/_sandbox/write",{forwardJsonBody:!0,signal:py(Q)})),$.post("/:virtualMcpId/:branch/unlink",(Q)=>NQ(Q,"/_sandbox/unlink",{forwardJsonBody:!0,signal:py(Q)})),$.post("/:virtualMcpId/:branch/mkdir",(Q)=>NQ(Q,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:py(Q)})),$.post("/:virtualMcpId/:branch/rename",(Q)=>NQ(Q,"/_sandbox/rename",{forwardJsonBody:!0,signal:py(Q)})),$.post("/:virtualMcpId/:branch/read",(Q)=>NQ(Q,"/_sandbox/read",{forwardJsonBody:!0,signal:py(Q)})),$.post("/:virtualMcpId/:branch/glob",(Q)=>NQ(Q,"/_sandbox/glob",{forwardJsonBody:!0,signal:py(Q)})),$.post("/:virtualMcpId/:branch/grep",(Q)=>NQ(Q,"/_sandbox/grep",{forwardJsonBody:!0,signal:py(Q)})),$.post("/:virtualMcpId/:branch/exec/:script",async(Q)=>{let Y=Q.req.param("script");if(!Y)return Q.json({error:"missing script name"},400);return NQ(Q,`/_sandbox/exec/${encodeURIComponent(Y)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",async(Q)=>{let Y=Q.req.param("script");if(!Y)return Q.json({error:"missing script name"},400);return NQ(Q,`/_sandbox/exec/${encodeURIComponent(Y)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(Q)=>NQ(Q,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDir:!0})),$.put("/:virtualMcpId/:branch/config",(Q)=>NQ(Q,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(Q)=>{let Y=Q.req.param("step");if(!Y||!gt6(Y))return Q.json({error:`step must be one of: ${UY8.join(", ")}`},400);let X=Q.get("vmClaim"),J=await HD1(Q.var.studioContext,{claimName:X.claimName})==="gone"?null:await ft6(Q);if(!J)return Q.json({error:"sandbox not found: nothing is running at this ref"},404,G9);if(Y==="start"){let G=J0(Q.var.studioContext),W=Kd(X.virtualMcpMetadata);try{await PR0({ctx:Q.var.studioContext,runner:J,handle:X.claimName,orgId:G.id,userId:X.callerUserId,entries:W})}catch(K){let H=K instanceof Error?K.message:String(K);return Q.json({error:`Failed to push env to daemon: ${H}`},502)}}return NQ(Q,`/_sandbox/setup/${Y}`,{signal:Q.req.raw.signal,map404to410:!0,runner:J})}),$.get("/:virtualMcpId/:branch/events",(Q)=>{let Y=Q.get("vmClaim");if(!Y.runner)return UO(Q,async(X)=>{await X.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this studio instance."})})});return HQ8(Q,{ctx:Q.var.studioContext,claimName:Y.claimName,runner:Y.runner,virtualMcpId:Y.virtualMcpId,branch:Y.branch,userId:Y.userId,projectRef:Y.projectRef,virtualMcpMetadata:Y.virtualMcpMetadata})}),$.get("/:virtualMcpId/:branch/git/status",(Q)=>{if(Q.get("vmClaim").runtime==="cms")return FY8(Q);return Z(Q)});let Z=(Q)=>NQ(Q,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([Q.req.raw.signal,AbortSignal.timeout(HY8)])});return $.post("/:virtualMcpId/:branch/git/status",(Q)=>{if(Q.get("vmClaim").runtime==="cms")return FY8(Q);return NQ(Q,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([Q.req.raw.signal,AbortSignal.timeout(HY8)])})}),$.post("/:virtualMcpId/:branch/git/diff",async(Q)=>{let Y=Q.get("vmClaim");if(Y.runtime==="cms")try{let X=await Q.req.json().catch(()=>({})),J=await _p(Q),G=await nC0(J,Y.branch,X.base);return Q.json(G,200,G9)}catch(X){return bD1(Q,X)}return NQ(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,G9);let Y=ny(Q);if(Y instanceof Response)return Y;let{claimName:X,virtualMcpMetadata:J,connectionIds:G}=Q.get("vmClaim"),W=Q.var.studioContext;return g60(X,async()=>{try{await FD1(W,Y,X);let K=y60(J,G);if(K)await GY8(W,Y,X,K)}catch(K){if(K instanceof $z)return Q.json({error:K.message},403,G9);let H=K instanceof Error?K.message:String(K);return Q.json({error:H},502,G9)}return NQ(Q,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",async(Q)=>{let Y=Q.get("vmClaim");if(Y.runtime==="cms")return g60(Y.claimName,async()=>{let X=await Q.req.json().catch(()=>({})),J=Array.isArray(X.filepaths)?X.filepaths.filter((G)=>typeof G==="string"):[];if(J.length===0)return Q.json({error:"filepaths is required"},400,G9);try{let G=await _p(Q);return await QY8(G,Y.branch,J),Q.json({ok:!0},200,G9)}catch(G){let W=IW(G)===409||G instanceof s6?409:502,K=G instanceof Error?G.message:String(G);return Q.json({error:K},W,G9)}});return g60(Y.claimName,()=>NQ(Q,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(Q)=>{let Y=Q.get("vmClaim");if(Y.runtime==="cms")return g60(Y.claimName,async()=>{try{let W=await Q.req.json().catch(()=>({})),K=await _p(Q),H=W.base??await K.getDefaultBranch();return await tC0(K,Y.branch,H),Q.json({ok:!0},200,G9)}catch(W){return bD1(Q,W)}});let X=ny(Q);if(X instanceof Response)return X;let{claimName:J}=Q.get("vmClaim"),G=Q.var.studioContext;return g60(J,async()=>{try{await FD1(G,X,J)}catch(W){let K=W instanceof Error?W.message:String(W);return Q.json({error:K},502,G9)}return NQ(Q,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",x5({maxSize:WY8,onError:(Q)=>Q.json({error:"Payload too large"},413,G9)}),async(Q)=>{let Y=Q.get("vmClaim"),X=null;if(Y.runtime!=="cms"){let H=ny(Q);if(H instanceof Response)return H;X=H}let{claimName:J,userId:G,projectRef:W}=Y,K=Q.var.studioContext;try{let H=await Q.req.json().catch(()=>({})),F=H.status,U=H.diff,N=U!=null&&typeof U.diffs==="object"&&U.diffs!==null,[B,O]=BD1(F)&&N?[F,U]:X?await Promise.all([rC0(X,J,"/_sandbox/git/status","GET",{userId:G,projectRef:W}),rC0(X,J,"/_sandbox/git/diff","GET",{userId:G,projectRef:W})]):await(async()=>{let w=await _p(Q);return Promise.all([pC0(w,Y.branch),nC0(w,Y.branch)])})();await oG(K,J0(K).id,"suggesting a commit message");let L=await DQ8(K,B,O);return Q.json(L,200,G9)}catch(H){let F=H instanceof Error?H.message:String(H);if(F==="SANDBOX_GONE")return Q.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,G9);return Q.json({error:F},502,G9)}}),$.post("/:virtualMcpId/:branch/git/judge-review",x5({maxSize:WY8,onError:(Q)=>Q.json({error:"Payload too large"},413,G9)}),async(Q)=>{let Y=Q.get("vmClaim"),X=null;if(Y.runtime!=="cms"){let H=ny(Q);if(H instanceof Response)return H;X=H}let{claimName:J,userId:G,projectRef:W}=Y,K=Q.var.studioContext;try{let H=await Q.req.json().catch(()=>({})),F=H.status,U=H.diff,N=U!=null&&typeof U.diffs==="object"&&U.diffs!==null,[B,O]=BD1(F)&&N?[F,U]:X?await Promise.all([rC0(X,J,"/_sandbox/git/status","GET",{userId:G,projectRef:W}),rC0(X,J,"/_sandbox/git/diff","GET",{userId:G,projectRef:W})]):await(async()=>{let w=await _p(Q);return Promise.all([pC0(w,Y.branch),nC0(w,Y.branch)])})();await oG(K,J0(K).id,"judging whether a change needs review");let L=await LQ8(K,B,O,typeof H.language==="string"?H.language:void 0);return Q.json(L,200,G9)}catch(H){let F=H instanceof Error?H.message:String(H);if(F==="SANDBOX_GONE")return Q.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,G9);return Q.json({error:F},502,G9)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(Q)=>{let Y=ny(Q);if(Y instanceof Response)return Y;let{claimName:X}=Q.get("vmClaim"),J=Q.req.query("path");if(!J||!J.startsWith("/")||J.startsWith("//")||J.includes("..")||J.includes("\\"))return Q.json({error:"Path not allowed"},403);let G;try{G=await Y.getPreviewUrl(X)}catch{return Q.json({error:"Preview not available"},502)}if(!G)return Q.json({error:"Preview not available"},502);let W=G.replace(/\/+$/,"");return vD1(Q,`${W}${J}`)}),$.post("/:virtualMcpId/:branch/preview-invoke",x5({maxSize:KY8,onError:(Q)=>Q.json({error:"Payload too large"},413)}),async(Q)=>{let Y=ny(Q);if(Y instanceof Response)return Y;let{claimName:X}=Q.get("vmClaim"),J;try{J=await Y.getPreviewUrl(X)}catch{return Q.json({error:"Preview not available"},502)}if(!J)return Q.json({error:"Preview not available"},502);let G;try{G=await Q.req.json()}catch{return Q.json({error:"Invalid JSON body"},400)}if(!G||typeof G!=="object"||Array.isArray(G))return Q.json({error:"Invalid JSON body"},400);let W=SD1(G);if(!W)return Q.json({error:"Invalid or missing __resolveType"},400);let K=CD1(J,W.resolveType);return vD1(Q,K,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(W.payload),signal:AbortSignal.timeout(30000)})}),$.post("/:virtualMcpId/:branch/catalog-invoke",x5({maxSize:KY8,onError:(Q)=>Q.json({error:"Payload too large"},413)}),async(Q)=>{let{runner:Y,claimName:X,virtualMcpMetadata:J}=Q.get("vmClaim"),G;try{G=Y?await Y.getPreviewUrl(X):Hd(J)}catch{return Q.json({error:"Preview not available"},502)}if(!G)return Q.json({error:"Preview not available"},502);let W;try{W=await Q.req.json()}catch{return Q.json({error:"Invalid JSON body"},400)}if(!W||typeof W!=="object"||Array.isArray(W))return Q.json({error:"Invalid JSON body"},400);let K=SD1(W);if(!K)return Q.json({error:"Invalid or missing __resolveType"},400);if(!YY8(K.resolveType))return Q.json({error:"resolveType not allowed"},403);let H=CD1(G,K.resolveType);return vD1(Q,H,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(K.payload),signal:AbortSignal.timeout(30000)})}),$};var BY8=D(()=>{J8();eW();Mp();KD1();Wd();GQ8();xW();Fd();WQ8();vW();JH();KQ8();FQ8();D71();N$0();LD1();wQ8();Z7();T5();kD1();XY8();RR0();_D1();Ct6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;bt6=bC0(async($,Z)=>{let Q=$.var.studioContext;try{n(Q)}catch{return $.json({error:"Unauthorized"},401)}let Y=p0(Q);if(!Y)return $.json({error:"Unauthorized"},401);let X;try{X=J0(Q)}catch{return $.json({error:"Organization scope required"},403)}let J=$.req.param("virtualMcpId"),G=$.req.param("branch");if(!J||!G)return $.json({error:"virtualMcpId and branch are required"},400);try{_t6(G)}catch(L){let w=L instanceof Error?L.message:String(L);return $.json({error:w},400)}let W=await Q.storage.virtualMcps.findById(J);if(!W||W.organization_id!==X.id)return $.json({error:"Virtual MCP not found"},404);let K=L10({orgId:X.id,virtualMcpId:J,branch:G}),H=await f91(Q,G),F=y91(H,Y),U=JQ8({userId:F,projectRef:K}),N=W.metadata??null,B=await xt6($,{claimName:U,branch:G,virtualMcpId:J,sandboxUserId:F,virtualMcpMetadata:N,branchThread:H});if(B==="cms")return $.set("vmClaim",{claimName:U,callerUserId:Y,runner:null,virtualMcpId:J,branch:G,userId:F,projectRef:K,virtualMcpMetadata:N,connectionIds:W.connections?.map((L)=>L.connection_id)??[],runtime:B}),Z();let O;try{O=await gX(Q)}catch{O=null}if(!O)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:U,callerUserId:Y,runner:O,virtualMcpId:J,branch:G,userId:F,projectRef:K,virtualMcpMetadata:N,connectionIds:W.connections?.map((L)=>L.connection_id)??[],runtime:B}),Z()});oC0=new Map;G9={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};UY8=["clone","install","start"]});function DY8($,Z,Q){let Y=xD1.get($);if(!Y)Y={pending:null,running:!1},xD1.set($,Y);if(!Y.pending)Y.pending={set:new Map,del:new Set,deps:Z,resolvers:[],rejecters:[]};let X=Y.pending;X.deps=Z;for(let[G,W]of Object.entries(Q.set??{}))X.set.set(G,W),X.del.delete(G);for(let G of Q.delete??[])X.del.add(G),X.set.delete(G);let J=new Promise((G,W)=>{X.resolvers.push(G),X.rejecters.push(W)});if(!Y.running)ut6($,Y);return J}async function ut6($,Z){Z.running=!0;try{while(Z.pending){let Q=Z.pending;Z.pending=null;try{let Y=await lt6(Q);for(let X of Q.resolvers)X(Y)}catch(Y){for(let X of Q.rejecters)X(Y)}}}finally{if(Z.running=!1,!Z.pending)xD1.delete($)}}async function lt6($){let{client:Z,branch:Q,packagePath:Y}=$.deps,X=new Map;for(let J=0;;J++){let G=await Cp(Z,Q),W=await Z.listDecofileEntries(G,Y),K=MD1(W,Y),H=[],F=new Map(K.map((N)=>[N.path,{stem:N.stem,sha:N.sha}]));for(let[N,B]of $.set){let O=ID1(K,N),L=`${JSON.stringify(B,null,2)}
|
|
3736
3736
|
`;await sQ8(Z.repo,L);let w=O[0]??`${mC0(Y)}/${ED1(N)}.json`;H.push({path:w,content:L});let j=w.slice(w.lastIndexOf("/")+1,-5);F.set(w,{stem:j,content:L});for(let E of O.slice(1))H.push({path:E,deleted:!0}),F.delete(E)}for(let N of $.del)for(let B of ID1(K,N))H.push({path:B,deleted:!0}),F.delete(B);if(H.length===0)return G;let U=Y?`${Y}/.deco/blocks.gen.json`:".deco/blocks.gen.json";if(W.some((N)=>N.type==="blob"&&N.path===U)){let N=await aQ8(Z,F.values(),X),{decofile:B,skipped:O}=S60(N);if(O.length>0)console.warn("decofile gen: dropped blocks that were not valid JSON",{repo:GH(Z.repo),branch:Q,packagePath:Y,blocks:O.map((L)=>L.key)});H.push({path:U,content:B})}try{let{sha:N}=await Z.commitFiles({branch:Q,message:ct6($),expectedHead:G,changes:H});return N}catch(N){if(!(N instanceof s6)||J>=ht6-1)throw N;await O$(U7(2000,200,J,2,0.5))}}}function ct6($){let Z=(X)=>{let J=X.slice(0,3).join(", ");return X.length>3?`${J} (+${X.length-3} more)`:J},Q=[];if($.set.size>0)Q.push(`update ${Z([...$.set.keys()])}`);if($.del.size>0)Q.push(`delete ${Z([...$.del])}`);let Y=`chore(decofile): ${Q.join("; ")}`;return O51(Y,$.deps.coAuthor)}var ht6=3,xD1;var OY8=D(()=>{dA0();yC0();i4();a$();Z7();dC0();xD1=new Map});import{createHmac as LY8,randomBytes as mt6,timingSafeEqual as dt6}from"crypto";function wY8(){if(sC0)return sC0;let $;try{let Z=E0();$=Z.studioJwtSecret??Z.betterAuthSecret}catch{$=void 0}return sC0=$?Buffer.from($):mt6(32),sC0}function fD1($){let Z=$.nowMs??Date.now(),Q={o:$.organizationId,m:$.virtualMcpId,b:$.branch,e:Math.floor((Z+it6)/1000)},Y=Buffer.from(JSON.stringify(Q)).toString("base64url"),X=LY8("sha256",wY8()).update(Y).digest("base64url");return`${Y}.${X}`}function jY8($,Z){let Q=$.indexOf(".");if(Q<0)return!1;let Y=$.slice(0,Q),X=Buffer.from($.slice(Q+1)),J=Buffer.from(LY8("sha256",wY8()).update(Y).digest("base64url"));if(X.length!==J.length||!dt6(X,J))return!1;let G;try{G=JSON.parse(Buffer.from(Y,"base64url").toString())}catch{return!1}let W=Math.floor((Z.nowMs??Date.now())/1000);return G.o===Z.organizationId&&G.m===Z.virtualMcpId&&G.b===Z.branch&&typeof G.e==="number"&&G.e>=W}var it6=21600000,sC0=null;var EY8=D(()=>{X$()});function aC0($){return $&&typeof $==="object"&&!Array.isArray($)?$:null}function pt6($){for(let[Z,Q]of Object.entries($)){if(!Z.startsWith("collections/blog/posts/"))continue;let Y=aC0(Q)?.__resolveType;if(typeof Y==="string"&&Y)return Y}return"blog/loaders/Blogpost.ts"}function zY8($){let Z;try{Z=aC0(JSON.parse($))}catch{return $}if(!Z)return $;let Q=pt6(Z),Y={...Z},X=0;for(let[J,G]of Object.entries(Z)){if(!J.startsWith("blog-manager/posts/"))continue;let W=aC0(G),K=W&&aC0(W.post);if(!K)continue;if(K.status==="archived")continue;if(typeof K.slug!=="string"||!K.slug)continue;let F=`collections/blog/posts/${J.slice(19)}`;if(Object.hasOwn(Y,F))continue;Y[F]={name:F,__resolveType:Q,["post"]:{...K,status:"published"}},X++}return X>0?JSON.stringify(Y):$}import{z as vp}from"zod";function tt6($){return $.length>0&&$.length<=255&&!$.includes("..")&&!$.endsWith("/")&&!$.endsWith(".lock")&&nt6.test($)}function qY8($){return $.req.header("x-forwarded-host")??new URL($.req.url).host}async function h60($){let Z=$.get("decofileScope");return Um($.var.studioContext,Z.organizationId,Z.repository)}function u60($,Z){let Q=Z instanceof Error?Z.message:String(Z);if(Z instanceof s6)return $.json({error:Q},409);let Y=IW(Z);if(Y!==null){let X=Y===404?404:Y===409||Y===422?409:502;return $.json({error:Q},X)}return $.json({error:Q},500)}function MY8(){let $=new Z1;return $.use("/:virtualMcpId/:branch",RY8),$.use("/:virtualMcpId/:branch/*",RY8),$.get("/:virtualMcpId/:branch",async(Z)=>{let Q=Z.get("decofileScope");try{let Y=await h60(Z),X=await eQ8(Y,Q.branch,Q.packagePath,{createBranchIfMissing:!!Q.userId}),J={ETag:`"${X.sha}"`,"Cache-Control":"no-store","Access-Control-Allow-Origin":"*"};if(Z.req.header("if-none-match")===`"${X.sha}"`)return Z.body(null,304,J);if(!Q.userId)return Z.body(zY8(X.decofile),200,{...J,"content-type":"application/json"});let G=fD1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.body(`{"version":${JSON.stringify(X.sha)},"token":${JSON.stringify(G)},"apiHost":${JSON.stringify(qY8(Z))},"decofile":${X.decofile}}`,200,{...J,"content-type":"application/json"})}catch(Y){return u60(Z,Y)}}),$.get("/:virtualMcpId/:branch/meta",async(Z)=>{let Q=Z.get("decofileScope"),Y=Q.packagePath?`${Q.packagePath}/.deco/meta.gen.json`:".deco/meta.gen.json";try{let X=await h60(Z),J=await X.readFileAtRef(Q.branch,Y);if(J===null){let G=await X.getDefaultBranch();if(G!==Q.branch)J=await X.readFileAtRef(G,Y)}if(J===null)return Z.json({error:"meta.gen.json not committed"},404);return Z.body(J,200,{"content-type":"application/json","Cache-Control":"no-store","Access-Control-Allow-Origin":"*"})}catch(X){return u60(Z,X)}}),$.patch("/:virtualMcpId/:branch",rt6,async(Z)=>{let Q=Z.get("decofileScope"),Y=Z.var.studioContext,X=st6.safeParse(await Z.req.json().catch(()=>null));if(!X.success)return Z.json({error:"Invalid body",details:X.error.issues},400);let J;try{J=C60(X.data)}catch(G){if(G instanceof _60)return Z.json({error:G.message},400);throw G}for(let G of[...Object.keys(J.set??{}),...J.delete??[]])try{fC0(G)}catch(W){let K=W instanceof Error?W.message:String(W);return Z.json({error:K},400)}for(let[G,W]of Object.entries(J.set??{})){if(typeof W!=="object"||W===null||Array.isArray(W))return Z.json({error:`Block "${G}" must be a JSON object`},400);if(jD1(G))return Z.json({error:`Block key "${G}" collides with a framework resolver module and cannot be written`},400)}try{let G=await h60(Z),W=await DY8(`${Q.organizationId}/${Q.virtualMcpId}/${Q.branch}`,{client:G,branch:Q.branch,packagePath:Q.packagePath,coAuthor:Ip(Y)},J),K=fD1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.json({version:W,token:K,apiHost:qY8(Z)})}catch(G){return u60(Z,G)}}),$.post("/:virtualMcpId/:branch/publish",async(Z)=>{let Q=Z.get("decofileScope");try{let Y=await h60(Z),X=await Y.getDefaultBranch();if(X===Q.branch)return Z.json({error:"Branch is already the default branch"},400);let J=`chore(decofile): publish ${Q.branch}`;try{let G;try{G=await Y.mergeBranches(X,Q.branch,J)}catch(W){if(IW(W)!==409)throw W;await tC0(Y,Q.branch,X),G=await Y.mergeBranches(X,Q.branch,J)}return G?Z.json({result:"merged",sha:G}):Z.json({result:"up-to-date"})}catch(G){if(IW(G)===409)return Z.json({error:"merge-conflict"},409);if(IW(G)===405){let K=await Y.findOpenChangeRequest(X,Q.branch)??await Y.createChangeRequest({base:X,head:Q.branch,title:`Publish ${Q.branch}`});return Z.json({result:"pull-request",number:K.number,url:K.url})}throw G}}catch(Y){return u60(Z,Y)}}),$.get("/:virtualMcpId/:branch/status",async(Z)=>{let Q=Z.get("decofileScope");try{let Y=await h60(Z),X=await Y.getDefaultBranch();if(X===Q.branch)return Z.json({baseBranch:X,aheadBy:0,behindBy:0});try{let{aheadBy:J,behindBy:G}=await Y.compare(X,Q.branch);return Z.json({baseBranch:X,aheadBy:J,behindBy:G})}catch(J){if(IW(J)===404)return Z.json({baseBranch:X,aheadBy:0,behindBy:0});throw J}}catch(Y){return u60(Z,Y)}}),$}var nt6,PY8=500,AY8=1048576,TY8=1024,ot6=8388608,rt6,st6,RY8;var IY8=D(()=>{RR0();yC0();J8();eW();KD1();xC0();_D1();Z7();OY8();EY8();kD1();dC0();JH();nt6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;rt6=x5({maxSize:ot6,onError:($)=>$.json({error:"Payload too large"},413)}),st6=vp.object({set:vp.record(vp.string(),vp.unknown()).optional(),delete:vp.array(vp.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)<=PY8,{message:`Patch cannot touch more than ${PY8} blocks`}).refine(($)=>Object.values($.set??{}).every((Z)=>JSON.stringify(Z).length<=AY8),{message:`Each block must be at most ${AY8} bytes`}).refine(($)=>[...Object.keys($.set??{}),...$.delete??[]].every((Z)=>Z.length<=TY8),{message:`Each block key must be at most ${TY8} characters`}),RY8=bC0(async($,Z)=>{let Q=$.var.studioContext,Y=Q.organization;if(!Y)return $.json({error:"Organization scope required"},500);let X=$.req.param("virtualMcpId"),J=$.req.param("branch");if(!X||!J)return $.json({error:"virtualMcpId and branch are required"},400);if(!tt6(J))return $.json({error:`Invalid branch name: ${J}`},400);let G=Q.auth?.user?.id??null;if(!G){let B=$.req.query("token");if(!($.req.method==="GET"&&!$.req.path.match(/\/(publish|status)$/)))return $.json({error:"Unauthorized"},401);if(!B||!jY8(B,{organizationId:Y.id,virtualMcpId:X,branch:J}))return $.json({error:"Unauthorized"},401)}if(!await IJ(Q,Y.id,"cms"))return $.json({error:"This organization's plan does not include the CMS",code:"feature_not_in_plan"},403);let W=await Q.storage.virtualMcps.findById(X);if(!W||W.organization_id!==Y.id)return $.json({error:"Virtual MCP not found"},404);let K=W.metadata??null;if(!Hd(K))return $.json({error:"Project has no preview server configured"},404);let F=W.connections?.map((B)=>B.connection_id)??[],U=y60(K,F);if(!U)return $.json({error:"Project has no repository"},404);let N=K?.runtime;return $.set("decofileScope",{organizationId:Y.id,virtualMcpId:X,branch:J,packagePath:N?.path?.replace(/^\/+|\/+$/g,"")||null,repository:U,userId:G}),Z()})});var VY8=($)=>{let Z=new Z1;if(Z.use("*",Xp),Z.use("*",e68),Z.route("/",s68($.voiceSessions)),Z.route("/",mS0()),Z.route("/",x58()),Z.route("/",P58()),Z.route("/",d78()),Z.route("/",p78()),Z.route("/",f78()),Z.route("/",c78()),Z.route("/",g78()),Z.route("/",CC0()),Z.route("/tools",e78()),Z.route("/",r78()),Z.route("/",D78({kvStorage:$.kvStorage})),Z.route("/",N78()),Z.route("/fs",I78({getConnection:$.getNatsConnection})),Z.route("/sandbox",NY8()),Z.route("/decofile",MY8()),Z.route("/",v78()),Z.route("/",k78()),Z.route("/deco-sites",iS0()),Z.route("/hosting",F58()),Z.route("/monitor",w58()),Z.route("/sso",gS0()),Z.route("/",_C0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",J58()),$.mountDevAssets)Z.route("/dev-assets",oS0({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("/",Y88()),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",C78()),Z.route("/mcp",bM0()),Z.route("/mcp/self",IC0()),Z.route("/mcp",yM0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var kY8=D(()=>{J8();a68();$58();MS0();G58();kN1();U58();j58();rS0();tE();RN1();bN1();B78();O78();V78();S78();P80();LN1();gM0();eB1();_78();b78();y78();h78();QD1();i78();n78();s78();YD1();$Q8();XD1();xM0();BY8();IY8()});import{z as ty}from"zod";class yD1{adapter;getConnection;kvPromise;constructor($,Z){this.adapter=$;this.getConnection=Z}kv(){let $=this.getConnection();if(!$||$.isClosed())throw new q1(503,{message:"Voice transport is unavailable"});return this.kvPromise??=new _Y8.Kvm(eC0.jetstream($)).create("STUDIO_VOICE_SESSIONS",{storage:eC0.StorageType.Memory,ttl:vY8.nanos(qD),max_bytes:10485760}).catch((Z)=>{throw this.kvPromise=void 0,Z}),this.kvPromise}async conversationAgent($){let Z=await this.kv(),Q=`agent.${$.conversationKey}`,Y=Date.now()+45000;while(Date.now()<Y){let X=await Z.get(Q),J=X?.operation==="PUT"?CY8.parse(X.json()):null;if(J?.state==="ready")return J.agentId;if(J?.state==="creating"&&J.expiresAt>Date.now()){await O$(200);continue}let G=SY8.encode(JSON.stringify({state:"creating",expiresAt:Date.now()+40000})),W;try{W=X&&J?await Z.update(Q,G,X.revision):await Z.create(Q,G)}catch{await O$(200);continue}try{let K=await $.ensureConversationAgent();return await Z.update(Q,SY8.encode(JSON.stringify({state:"ready",agentId:K})),W),K}catch(K){throw await Z.delete(Q,{previousSeq:W}).catch(()=>{}),K}}throw new q1(503,{message:"Voice conversation is starting; try again"})}async createSession($){let Z=this.adapter.forConversationModel($.model),Q=await this.conversationAgent(Z);try{return{provider:"elevenlabs",conversationToken:await Z.createConversationToken(Q)}}catch(Y){let X=await this.kv(),J=`agent.${Z.conversationKey}`,G=await X.get(J),W=G?.operation==="PUT"?CY8.parse(G.json()):null;if(G&&W?.state==="ready"&&W.agentId===Q)await X.delete(J,{previousSeq:G.revision}).catch(()=>{});throw Y}}}var eC0,_Y8,vY8,SY8,CY8;var bY8=D(()=>{OJ();bU();a$();eC0=C(BK(),1),_Y8=C($A(),1),vY8=C(zz(),1),SY8=new TextEncoder,CY8=ty.discriminatedUnion("state",[ty.object({state:ty.literal("ready"),agentId:ty.string()}),ty.object({state:ty.literal("creating"),expiresAt:ty.number()})])});import{z as bp}from"zod";function at6($){return{model:$.model,instructions:`${nR$}
|
|
3737
|
-
Start in ${$.language==="pt"?"Brazilian Portuguese":"English"}, and follow the user's language.`,delegation:{type:"client"},audio:{output:{voice:$.voice}},store:!1}}class gD1{config;constructor($){this.config=$}async createSession(){return{provider:"openai",transport:"webrtc"}}async negotiate($){let Z=await fetch("https://api.openai.com/v1/live/sessions",{method:"POST",headers:{Authorization:`Bearer ${this.config.apiKey}`,"Content-Type":"application/json","OpenAI-Safety-Identifier":$.safetyIdentifier},body:JSON.stringify({session:at6({...this.config,language:$.language,model:$.model}),transport:{type:"webrtc",sdp:$.sdp}}),signal:AbortSignal.timeout(15000)});if(!Z.ok)throw await Z.body?.cancel(),Error(`OpenAI Live request failed (${Z.status})`);return{sdp:bp.object({session:bp.object({id:bp.string().min(1)}),transport:bp.object({type:bp.literal("webrtc"),sdp:bp.string().min(1).max(1e5)})}).parse(await Z.json()).transport.sdp}}}var xY8=D(()=>{bU()});var fY8;var yY8=D(()=>{fY8=[{name:"delegate_to_agent",description:"Submit a complete request to the selected Studio agent. Returns after acceptance while work continues in the background. Results arrive later.",parameters:{type:"object",properties:{request:{type:"string",description:"The complete user request, with relevant conversational details. Preserve intent and constraints."}},required:["request"]}},{name:"get_agent_status",description:"Read the current chat's work status and known results. This does not track independent organization tasks; delegate fresh task-status queries to the Studio agent. Use when asked, never poll.",parameters:{type:"object",properties:{}}},{name:"stop_agent_work",description:"Request cancellation in the current chat ONLY when the user explicitly asks. Speaking over the companion is not cancellation. To stop independent tasks, delegate that request to the Studio agent.",parameters:{type:"object",properties:{}}}]});function hD1($){return{conversation_config:{agent:{first_message:"",language:"en",prompt:{prompt:iR$,llm:$.conversationModel,thinking_budget:0,max_tokens:512,tools:fY8.map((Z)=>({...Z,type:"client",expects_response:!0,response_timeout_secs:Z.name==="delegate_to_agent"?20:5,...Z.name==="delegate_to_agent"?{execution_mode:"async",interruption_mode:"allow",pre_tool_speech:"off"}:{}}))}},asr:{provider:"scribe_realtime",quality:"high"},turn:{turn_eagerness:"normal",turn_timeout:-1,silence_end_call_timeout:-1},tts:{voice_id:$.voiceId,model_id:$.model},conversation:{max_duration_seconds:qD/1000,client_events:["audio","interruption","user_transcript","agent_response","client_tool_call","vad_score"]}},platform_settings:{auth:{enable_auth:!0},privacy:{record_voice:!1,retention_days:1,delete_audio:!0,delete_transcript_and_pii:!0},overrides:{conversation_config_override:{agent:{language:!0}}}}}}var gY8=D(()=>{bU();yY8()});import{z as nX}from"zod";import{createHash as et6,createHmac as $o6}from"crypto";class $_0{config;conversationKey;configurationKey;constructor($){this.config=$;this.configurationKey=et6("sha256").update(JSON.stringify(hD1($))).digest("hex"),this.conversationKey=$o6("sha256",$.apiKey).update(this.configurationKey).digest("hex")}forConversationModel($){return $===this.config.conversationModel?this:new $_0({...this.config,conversationModel:$})}async request($,Z,Q){let Y=await fetch(`https://api.elevenlabs.io/v1${$}`,{method:Z===void 0?"GET":"POST",headers:{"xi-api-key":this.config.apiKey,"Content-Type":"application/json"},body:JSON.stringify(Z),signal:Q});if(!Y.ok)throw await Y.body?.cancel(),Error(`ElevenLabs request failed (${Y.status})`);return Y}async ensureConversationAgent(){let $=`Studio voice ${this.configurationKey.slice(0,24)}`,Z=await this.request(`/convai/agents?search=${encodeURIComponent($)}&page_size=100`,void 0,AbortSignal.timeout(15000)),{agents:Q}=nX.object({agents:nX.array(nX.object({agent_id:nX.string(),name:nX.string()}))}).parse(await Z.json()),Y=Q.find((J)=>J.name===$);if(Y){let J=await this.request(`/convai/agents/${encodeURIComponent(Y.agent_id)}`,void 0,AbortSignal.timeout(15000));return nX.object({platform_settings:nX.object({auth:nX.object({enable_auth:nX.literal(!0)})})}).parse(await J.json()),Y.agent_id}let X=await this.request("/convai/agents/create",{name:$,...hD1(this.config)},AbortSignal.timeout(15000));return nX.object({agent_id:nX.string().min(1)}).parse(await X.json()).agent_id}async createConversationToken($){let Z=await this.request(`/convai/conversation/token?agent_id=${encodeURIComponent($)}`,void 0,AbortSignal.timeout(15000));return nX.object({token:nX.string().min(1)}).parse(await Z.json()).token}async createTranscriptionToken(){let $=await this.request("/single-use-token/realtime_scribe",{},AbortSignal.timeout(15000));return nX.object({token:nX.string().min(1)}).parse(await $.json()).token}synthesize($,Z){return this.request(`/text-to-speech/${encodeURIComponent(this.config.voiceId)}/stream?output_format=mp3_44100_128`,{text:$,model_id:this.config.model},AbortSignal.any([Z,AbortSignal.timeout(60000)]))}}var hY8=D(()=>{gY8()});import{createHmac as Zo6,timingSafeEqual as Qo6}from"crypto";import{z as xp}from"zod";function lY8($,Z){if(!Z)throw Error("Voice requires a shared authentication secret");return Zo6("sha256",Z).update(`studio-voice-session:v1:${$}`).digest("base64url")}function cY8($,Z){let Q=Buffer.from(JSON.stringify(uY8.parse($))).toString("base64url");return`${Q}.${lY8(Q,Z)}`}function mY8($,Z,Q=Date.now()){if(!Z||$.length>4096)return null;let Y=$.split(".");if(Y.length!==2)return null;let[X,J]=Y;if(!X||!J)return null;let G=Buffer.from(lY8(X,Z)),W=Buffer.from(J);if(W.length!==G.length||!Qo6(W,G))return null;try{let K=uY8.safeParse(JSON.parse(Buffer.from(X,"base64url").toString()));if(!K.success||K.data.expiresAt<=Q||K.data.expiresAt>Q+qD)return null;return K.data}catch{return null}}var uY8;var dY8=D(()=>{bU();uY8=xp.object({sessionId:xp.string().uuid(),organizationId:xp.string().min(1).max(256),userId:xp.string().min(1).max(256),threadId:xp.string().min(1).max(256),expiresAt:xp.number().int().positive()})});import{z as uD1}from"zod";function iY8($,Z){if(Z?.voice_model!=null&&Z.voice_provider==null)throw Error("A voice model override requires a provider");let Q=Z?.voice_provider??$.voiceConversationProvider;return lD1.parse({provider:Q,model:Z?.voice_model??(Q==="openai"?$.openaiLiveModel:$.elevenlabsConversationModel)})}var lD1;var pY8=D(()=>{lD1=uD1.object({provider:uD1.enum(["elevenlabs","openai"]),model:uD1.string().trim().min(1).max(128)})});import{createHash as Yo6}from"crypto";import{z as fp}from"zod";function yp($){return`user.${Yo6("sha256").update(JSON.stringify([$.organizationId,$.userId])).digest("hex")}`}class mD1{deps;kvPromise;constructor($){this.deps=$}kv(){let $=this.deps.getConnection();if(!$||$.isClosed())throw new q1(503,{message:"Voice transport is unavailable"});return this.kvPromise??=new nY8.Kvm(Q_0.jetstream($)).create("STUDIO_VOICE_SESSIONS",{storage:Q_0.StorageType.Memory,ttl:tY8.nanos(qD),max_bytes:10485760}).catch((Z)=>{throw this.kvPromise=void 0,Z}),this.kvPromise}adapter(){if(!this.deps.adapter)throw new q1(503,{message:"Voice is not configured on this deployment"});return this.deps.adapter}async create($,Z=!1,Q="en",Y){let X;if(Z)try{X=iY8(this.deps.defaults,Y)}catch{throw new q1(503,{message:"Voice configuration is invalid"})}let J=X?this.deps.conversationAdapters[X.provider]:this.adapter();if(!J)throw new q1(503,{message:"Voice is not configured on this deployment"});let G={...$,sessionId:crypto.randomUUID(),expiresAt:Date.now()+qD},W=cY8(G,this.deps.secret),K=await this.kv(),H=yp(G),F=await K.get(H),U=F?.operation==="PUT"?Z_0.parse(F.json()):null,N=cD1.encode(JSON.stringify({sessionId:G.sessionId,expiresAt:G.expiresAt,conversation:X,characters:0,requests:0}));try{if(F&&U&&U.expiresAt<=Date.now())await K.update(H,N,F.revision);else await K.create(H,N)}catch{throw new q1(409,{message:"Close your other voice session before starting a new one"})}try{if(X&&"createSession"in J){let O=await J.createSession({language:Q,model:X.model,safetyIdentifier:yp($)});return{token:W,...O,expiresAt:G.expiresAt}}let B=await this.adapter().createTranscriptionToken();return{token:W,transcriptionToken:B,expiresAt:G.expiresAt}}catch(B){throw await this.release(G),B}}authorize($,Z){let Q=mY8(Z,this.deps.secret);if(!Q||Q.organizationId!==$.organizationId||Q.userId!==$.userId||Q.threadId!==$.threadId)throw new q1(403,{message:"Invalid voice session"});return Q}async connect($,Z){let Q=this.authorize($,Z.token),Y=await this.kv(),X=yp(Q),J=await Y.get(X),G=J?.operation==="PUT"?Z_0.parse(J.json()):null;if(!J||!G||G.sessionId!==Q.sessionId||G.expiresAt<=Date.now())throw new q1(403,{message:"Voice session expired"});let W=G.conversation?this.deps.conversationAdapters[G.conversation.provider]:null;if(!W?.negotiate||!G.conversation)throw new q1(409,{message:"Voice session does not support SDP negotiation"});if(G.connected)throw new q1(409,{message:"Voice session already connected"});try{await Y.update(X,cD1.encode(JSON.stringify({...G,connected:!0})),J.revision)}catch{throw new q1(409,{message:"Voice session is busy"})}return W.negotiate({sdp:Z.sdp,language:Z.language,model:G.conversation.model,safetyIdentifier:X})}async speak($,Z,Q,Y){let X=this.authorize($,Z),J=await this.kv(),G=yp(X);for(let W=0;;W++){let K=await J.get(G),H=K?.operation==="PUT"?Z_0.parse(K.json()):null;if(!K||!H||H.sessionId!==X.sessionId||H.expiresAt<=Date.now())throw new q1(403,{message:"Voice session expired"});if(H.characters+Q.length>24000||H.requests>=120)throw new q1(429,{message:"Voice session speech limit reached"});try{await J.update(G,cD1.encode(JSON.stringify({...H,characters:H.characters+Q.length,requests:H.requests+1})),K.revision);break}catch{if(W>=2)throw new q1(409,{message:"Voice session is busy"})}}return this.adapter().synthesize(Q,Y)}async release($){let Z=await this.kv(),Q=await Z.get(yp($));if(Q?.operation==="PUT"&&Z_0.parse(Q.json()).sessionId===$.sessionId)await Z.delete(yp($),{previousSeq:Q.revision})}async revoke($,Z){await this.release(this.authorize($,Z))}}var Q_0,nY8,tY8,Z_0,cD1;var oY8=D(()=>{OJ();bU();dY8();pY8();Q_0=C(BK(),1),nY8=C($A(),1),tY8=C(zz(),1),Z_0=fp.object({sessionId:fp.string().uuid(),expiresAt:fp.number(),connected:fp.boolean().optional(),conversation:lD1.optional(),characters:fp.number().int().nonnegative(),requests:fp.number().int().nonnegative()}),cD1=new TextEncoder});function Xo6($){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 Jo6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},rY8=()=>{let $=new Z1;return $.use("*",Jo6),$.get("/",async(Z)=>{let Q=E0(),Y=Q.decoSupabaseUrl,X=Q.decoSupabaseServiceKey;if(!Y||!X)return Z.json({apps:[]});try{let J=await QG(Y,X,"apps?select=name,title,description,logo,category,vendors(alias,url)");return Z.json({apps:Xo6(J)})}catch(J){return console.error("[deco-apps] GET error:",J),Z.json({error:"Failed to fetch apps"},502)}}),$};var sY8=D(()=>{J8();X$();Sk0()});import{z as y1}from"zod";function jN($,Z="invalid_request_error",Q=null,Y=null){return{error:{message:$,type:Z,param:Q,code:Y}}}function Oo6($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let Q=$.substring(0,Z),Y=$.substring(Z+1);if(!Q||!Y)return null;return{credentialId:Q,modelId:Y}}function Lo6($,Z,Q){try{return JSON.parse($)}catch{throw new $X8(`Invalid JSON in tool call arguments for function '${Q}' (tool_call_id: ${Z}): ${$}`)}}function wo6($){let Z={};for(let Q of $)if(Q.role==="assistant"&&Q.tool_calls)for(let Y of Q.tool_calls)Z[Y.id]=Y.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((X)=>{if(X.type==="text")return{type:"text",text:X.text};return{type:"image",image:X.image_url.url}})};case"assistant":if(Q.tool_calls&&Q.tool_calls.length>0)return{role:"assistant",content:Q.tool_calls.map((X)=>({type:"tool-call",toolCallId:X.id,toolName:X.function.name,input:Lo6(X.function.arguments,X.id,X.function.name)}))};return{role:"assistant",content:Q.content??""};case"tool":let Y=Z[Q.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:Q.tool_call_id,toolName:Y,output:{type:"text",value:Q.content}}]}}})}function jo6($){let Z=$.map((Q)=>{let Y=Q.function.parameters?dF(Q.function.parameters):dF({type:"object",properties:{}});return[Q.function.name,n$({description:Q.function.description,inputSchema:Y})]});return Object.fromEntries(Z)}function Eo6($){if(!$)return;return{openai:{response_format:$}}}function zo6(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function aY8($,Z,Q,Y,X,J){let G={model:$,instructions:Z.filter((W)=>W.role==="system"),messages:Z.filter((W)=>W.role!=="system"),tools:Q,temperature:Y.temperature,maxOutputTokens:Y.max_tokens,topP:Y.top_p,frequencyPenalty:Y.frequency_penalty,presencePenalty:Y.presence_penalty,stopSequences:Y.stop?Array.isArray(Y.stop)?Y.stop:[Y.stop]:void 0,abortSignal:J};return X?{...G,providerOptions:X}:G}function eY8($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var Go6=256,Wo6,Ko6,Ho6,Fo6,Uo6,No6,Bo6,Do6,$X8,ZX8,QX8;var YX8=D(()=>{y4();J8();Mp();CH();Wo6=y1.object({type:y1.literal("function"),function:y1.object({name:y1.string(),description:y1.string().optional(),parameters:y1.record(y1.string(),y1.unknown()).optional()})}),Ko6=y1.object({id:y1.string(),type:y1.literal("function"),function:y1.object({name:y1.string(),arguments:y1.string()})}),Ho6=y1.discriminatedUnion("role",[y1.object({role:y1.literal("system"),content:y1.string(),name:y1.string().optional()}),y1.object({role:y1.literal("user"),content:y1.union([y1.string(),y1.array(y1.union([y1.object({type:y1.literal("text"),text:y1.string()}),y1.object({type:y1.literal("image_url"),image_url:y1.object({url:y1.string(),detail:y1.string().optional()})})]))]),name:y1.string().optional()}),y1.object({role:y1.literal("assistant"),content:y1.string().nullable().optional(),name:y1.string().optional(),tool_calls:y1.array(Ko6).optional()}),y1.object({role:y1.literal("tool"),content:y1.string(),tool_call_id:y1.string()})]),Fo6=y1.object({type:y1.literal("text")}),Uo6=y1.object({type:y1.literal("json_object")}),No6=y1.object({type:y1.literal("json_schema"),json_schema:y1.object({name:y1.string(),description:y1.string().optional(),schema:y1.record(y1.string(),y1.unknown()),strict:y1.boolean().optional()})}),Bo6=y1.union([Fo6,Uo6,No6]),Do6=y1.object({model:y1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:y1.array(Ho6),stream:y1.boolean().optional().default(!1),temperature:y1.number().min(0).max(2).optional(),max_tokens:y1.number().positive().optional(),top_p:y1.number().min(0).max(1).optional(),frequency_penalty:y1.number().min(-2).max(2).optional(),presence_penalty:y1.number().min(-2).max(2).optional(),stop:y1.union([y1.string(),y1.array(y1.string())]).optional(),tools:y1.array(Wo6).optional(),tool_choice:y1.union([y1.literal("auto"),y1.literal("none"),y1.literal("required"),y1.object({type:y1.literal("function"),function:y1.object({name:y1.string()})})]).optional(),response_format:Bo6.optional(),user:y1.string().optional()});$X8=class $X8 extends Error{constructor($){super($);this.name="MessageConversionError"}};ZX8=new Z1;ZX8.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),Q=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(jN("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(jN("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(jN("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Y=await $.req.json(),X=Do6.safeParse(Y);if(!X.success){let w=X.error.issues[0]??{message:"Invalid request",path:[]};return $.json(jN(`Invalid request: ${w.message}`,"invalid_request_error",w.path.length>0?w.path.join("."):null),400)}let J=X.data,G=Oo6(J.model);if(!G)return $.json(jN("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}=G,{modelId:K}=G;if(!W){let j=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((E)=>LP(E.providerId));if(!j)return $.json(jN("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=j.id}let H;try{H=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(jN(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let F=H.aiSdk.languageModel(K),U=wo6(J.messages),N=J.tools?jo6(J.tools):void 0,B=Eo6(J.response_format),O=zo6(),L=Math.floor(Date.now()/1000);if(J.stream)return UO($,async(w)=>{let j=aY8(F,U,N,J,B,$.req.raw.signal);try{let E=Gd(j),z=!1,T=0,A="",P=async()=>{if(A.length===0)return;let q=A;A="",await w.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:L,model:J.model,choices:[{index:0,delta:{content:q},finish_reason:null}]})})};for await(let q of E.stream){if(!z&&(q.type==="text-delta"||q.type==="tool-call"))await w.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:L,model:J.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(q.type==="text-delta"){if(A+=q.text,A.length>=Go6)await P()}else if(q.type==="tool-call"){await P();let x=T++;await w.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:L,model:J.model,choices:[{index:0,delta:{tool_calls:[{index:x,id:q.toolCallId,type:"function",function:{name:q.toolName,arguments:JSON.stringify(q.input)}}]},finish_reason:null}]})})}else if(q.type==="finish")await P(),await w.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:L,model:J.model,choices:[{index:0,delta:{},finish_reason:eY8(q.finishReason)}],usage:q.totalUsage?{prompt_tokens:q.totalUsage.inputTokens??0,completion_tokens:q.totalUsage.outputTokens??0,total_tokens:q.totalUsage.totalTokens??0}:void 0})})}await P(),await w.writeSSE({data:"[DONE]"})}catch(E){let z=E;console.error("[openai-compat:stream] Error:",z.message),await w.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let w=aY8(F,U,N,J,B,$.req.raw.signal),j=await fU(w),E={role:"assistant",content:j.text||null};if(j.toolCalls&&j.toolCalls.length>0)E.tool_calls=j.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),E.content=null;return $.json({id:O,object:"chat.completion",created:L,model:J.model,choices:[{index:0,message:E,finish_reason:eY8(j.finishReason)}],usage:{prompt_tokens:j.usage?.inputTokens??0,completion_tokens:j.usage?.outputTokens??0,total_tokens:j.usage?.totalTokens??0}})}}catch(Y){let X=Y;if(X.name==="AbortError")return $.json(jN("Request aborted","invalid_request_error"),400);if(X.name==="MessageConversionError")return $.json(jN(X.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",X.message,X.stack),$.json(jN(X.message,"server_error"),500)}});QX8=ZX8});function Po6($){if(typeof $!=="object"||$===null)return!1;let Q=$.repository?.url;return typeof Q==="string"&&Q.length>0}function XX8(){let $=new Z1;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"),Y=p0(Q);if(!Y)return Z.json({error:"Authentication required"},401);let J=(Z.req.query("site")??"").trim().toLowerCase();if(!wZ(J))return Z.json({error:"Invalid site slug"},400);let G=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","=",Y).execute(),W=[];for(let H of G){if(!H.slug||k9(H))continue;let F=await Q.storage.virtualMcps.list(H.id);for(let U of F){if(NA(U)!==J)continue;if(!Po6(U.metadata))continue;W.push({orgSlug:H.slug,orgName:H.name??H.slug,project:{id:U.id,title:U.title,icon:U.icon??null}})}}let K={matches:W};return Z.json(K)}),$}var JX8=D(()=>{J8();aG()});var WX8;var GX8=D(()=>{WX8={name:"decocms",version:"4.429.3",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^4.0.58","@ai-sdk/google":"^4.0.76","@ai-sdk/openai":"^4.0.71","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^3.1.0","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^4.0.17","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^7.0.107","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function Ro6(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??To6}}var KX8,To6="https://ph.studio.decocms.com",HX8;var FX8=D(()=>{J8();Rs();gf();I9();X$();QN1();GX8();KX8=new Z1;KX8.get("/",($)=>{let Z={version:WX8.version,theme:Q5$(),...dK().logo&&{logo:dK().logo},...fD()&&{internalUrl:Ip1()},...E0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!E0().firecrawlApiKey,hostingEnabled:!!E0().controlplaneRestUrl&&!!E0().controlplaneServiceToken,hostingControlPlaneGa:E0().hostingControlPlaneGa,monitorEnabled:!!E0().clickhouseAnalyticsUrl&&!!E0().clickhouseAnalyticsPassword,monitorGa:E0().monitorGa,plansEnabled:E0().plansEnabled,auth:o48(),posthog:Ro6(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:TO()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});HX8=KX8});function oy($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function dD1($){return(oy($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1)).join(" ")}function UX8($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(oy($))}&sz=${Z}`}function qo6($,Z){let Q=$.trim();if(Q.length<=Z)return Q;let Y=Q.slice(0,Z-1),X=Y.lastIndexOf(" ");return`${(X>Z*0.6?Y.slice(0,X):Y).trimEnd()}\u2026`}function NX8($){let{brand:Z,domain:Q,score:Y}=$,X=typeof Y==="number"?`${Z} Deco Score \u2014 ${Math.round(Y)}/100 \xB7 decocms`:`${Z} Deco Score \xB7 decocms`,J=qo6(`How does ${Q} really perform? See the full ${Z} Deco Score \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,200);return{title:X,description:J}}import{z as z$}from"zod";var Mo6,BX8;var DX8=D(()=>{Mo6=z$.object({check_id:z$.string(),title:z$.string(),description:z$.string().optional(),impact:z$.string().optional(),why:z$.string().optional(),category:z$.string(),severity:z$.string(),value_band:z$.string().optional(),value_driver:z$.string().optional(),controllability:z$.string().optional(),pages:z$.array(z$.string()),tasks:z$.array(z$.string()),evidence:z$.string(),sample_scope:z$.string().optional(),sources:z$.array(z$.string())}),BX8=z$.object({domain:z$.string(),brand:z$.string(),favicon:z$.string().optional(),scanned_at:z$.string().nullable(),lang:z$.string(),score:z$.number().nullable(),band:z$.string().nullable(),totals:z$.object({measured:z$.number(),registry_total:z$.number(),passed:z$.number(),failed:z$.number(),blocked:z$.number()}),buckets:z$.array(z$.object({id:z$.enum(["critical","important","worth"]),label:z$.string(),items:z$.array(Mo6)})),passing:z$.object({count:z$.number(),items:z$.array(z$.object({check_id:z$.string(),title:z$.string()}))}),not_measured:z$.object({count:z$.number(),groups:z$.array(z$.object({reason:z$.string(),label:z$.string(),count:z$.number(),checks:z$.array(z$.string())}))}),categories:z$.array(z$.object({key:z$.string(),label:z$.string(),score:z$.number().nullable(),band:z$.string().nullable(),pass:z$.number(),fail:z$.number()})),screenshots:z$.array(z$.object({url:z$.string(),page_type:z$.string().optional(),viewport:z$.enum(["desktop","mobile"]),image_url:z$.string()}))})});function OX8($,Z,Q){let Y=Q?`?${new URLSearchParams({lang:Q}).toString()}`:"";return`${jW({})}/api/v2/public/diagnostics/${encodeURIComponent($)}/onepager${Z}${Y}`}async function Y_0($,Z={}){let Q=await fetch(OX8($,"",Z.lang),{headers:{Accept:"application/json"},signal:Z.signal});if(Q.status===404)return null;if(!Q.ok)throw Error(`onepager read HTTP ${Q.status}`);return BX8.parse(await Q.json())}async function LX8($,Z={}){let Q=await fetch(OX8($,".md",Z.lang),{headers:{Accept:"text/markdown"},signal:Z.signal});if(Q.status===404)return null;if(!Q.ok)throw Error(`onepager markdown HTTP ${Q.status}`);return Q.text()}var iD1=D(()=>{DX8();pB()});import{join as wX8}from"path";async function Vo6($){try{let Z=await Y_0($,{signal:AbortSignal.timeout(Io6)});if(!Z?.scanned_at)return null;return{brand:Z.brand.trim()||dD1($),...Z.score!==null?{score:Z.score}:{}}}catch{return null}}function GG($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function ko6($,Z){let Q=oy($),Y=Z?.brand?.trim()||dD1(Q),X=UX8(Q,128),G=`${(E0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(Q)}`,{title:W,description:K}=NX8({brand:Y,domain:Q,score:Z?.score}),H=`${G}/og.png`,F=`${Y} Deco Score by decocms`;return[`<title>${GG(W)}</title>`,`<meta name="description" content="${GG(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="${GG(W)}" />`,`<meta property="og:description" content="${GG(K)}" />`,`<meta property="og:url" content="${GG(G)}" />`,`<meta property="og:image" content="${GG(H)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${GG(F)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${GG(W)}" />`,`<meta name="twitter:description" content="${GG(K)}" />`,`<meta name="twitter:image" content="${GG(H)}" />`,`<meta name="twitter:image:alt" content="${GG(F)}" />`,`<link rel="canonical" href="${GG(G)}" />`,`<link rel="alternate" type="text/markdown" href="${GG(G)}.md" />`,`<link rel="icon" href="${GG(X)}" sizes="any" />`].join(`
|
|
3737
|
+
Start in ${$.language==="pt"?"Brazilian Portuguese":"English"}, and follow the user's language.`,delegation:{type:"client"},audio:{output:{voice:$.voice}},store:!1}}class gD1{config;constructor($){this.config=$}async createSession(){return{provider:"openai",transport:"webrtc"}}async negotiate($){let Z=await fetch("https://api.openai.com/v1/live/sessions",{method:"POST",headers:{Authorization:`Bearer ${this.config.apiKey}`,"Content-Type":"application/json","OpenAI-Safety-Identifier":$.safetyIdentifier},body:JSON.stringify({session:at6({...this.config,language:$.language,model:$.model}),transport:{type:"webrtc",sdp:$.sdp}}),signal:AbortSignal.timeout(15000)});if(!Z.ok)throw await Z.body?.cancel(),Error(`OpenAI Live request failed (${Z.status})`);return{sdp:bp.object({session:bp.object({id:bp.string().min(1)}),transport:bp.object({type:bp.literal("webrtc"),sdp:bp.string().min(1).max(1e5)})}).parse(await Z.json()).transport.sdp}}}var xY8=D(()=>{bU()});var fY8;var yY8=D(()=>{fY8=[{name:"delegate_to_agent",description:"Submit a complete request to the selected Studio agent. Returns after acceptance while work continues in the background. Results arrive later.",parameters:{type:"object",properties:{request:{type:"string",description:"The complete user request, with relevant conversational details. Preserve intent and constraints."}},required:["request"]}},{name:"get_agent_status",description:"Read the current chat's work status and known results. This does not track independent organization tasks; delegate fresh task-status queries to the Studio agent. Use when asked, never poll.",parameters:{type:"object",properties:{}}},{name:"stop_agent_work",description:"Request cancellation in the current chat ONLY when the user explicitly asks. Speaking over the companion is not cancellation. To stop independent tasks, delegate that request to the Studio agent.",parameters:{type:"object",properties:{}}}]});function hD1($){return{conversation_config:{agent:{first_message:"",language:"en",prompt:{prompt:iR$,llm:$.conversationModel,thinking_budget:0,max_tokens:512,tools:fY8.map((Z)=>({...Z,type:"client",expects_response:!0,response_timeout_secs:Z.name==="delegate_to_agent"?20:5,...Z.name==="delegate_to_agent"?{execution_mode:"async",interruption_mode:"allow",pre_tool_speech:"off"}:{}}))}},asr:{provider:"scribe_realtime",quality:"high"},turn:{turn_eagerness:"normal",turn_timeout:-1,silence_end_call_timeout:-1},tts:{voice_id:$.voiceId,model_id:$.model},conversation:{max_duration_seconds:qD/1000,client_events:["audio","interruption","user_transcript","agent_response","client_tool_call","vad_score"]}},platform_settings:{auth:{enable_auth:!0},privacy:{record_voice:!1,retention_days:1,delete_audio:!0,delete_transcript_and_pii:!0},overrides:{conversation_config_override:{agent:{language:!0}}}}}}var gY8=D(()=>{bU();yY8()});import{z as nX}from"zod";import{createHash as et6,createHmac as $o6}from"crypto";class $_0{config;conversationKey;configurationKey;constructor($){this.config=$;this.configurationKey=et6("sha256").update(JSON.stringify(hD1($))).digest("hex"),this.conversationKey=$o6("sha256",$.apiKey).update(this.configurationKey).digest("hex")}forConversationModel($){return $===this.config.conversationModel?this:new $_0({...this.config,conversationModel:$})}async request($,Z,Q){let Y=await fetch(`https://api.elevenlabs.io/v1${$}`,{method:Z===void 0?"GET":"POST",headers:{"xi-api-key":this.config.apiKey,"Content-Type":"application/json"},body:JSON.stringify(Z),signal:Q});if(!Y.ok)throw await Y.body?.cancel(),Error(`ElevenLabs request failed (${Y.status})`);return Y}async ensureConversationAgent(){let $=`Studio voice ${this.configurationKey.slice(0,24)}`,Z=await this.request(`/convai/agents?search=${encodeURIComponent($)}&page_size=100`,void 0,AbortSignal.timeout(15000)),{agents:Q}=nX.object({agents:nX.array(nX.object({agent_id:nX.string(),name:nX.string()}))}).parse(await Z.json()),Y=Q.find((J)=>J.name===$);if(Y){let J=await this.request(`/convai/agents/${encodeURIComponent(Y.agent_id)}`,void 0,AbortSignal.timeout(15000));return nX.object({platform_settings:nX.object({auth:nX.object({enable_auth:nX.literal(!0)})})}).parse(await J.json()),Y.agent_id}let X=await this.request("/convai/agents/create",{name:$,...hD1(this.config)},AbortSignal.timeout(15000));return nX.object({agent_id:nX.string().min(1)}).parse(await X.json()).agent_id}async createConversationToken($){let Z=await this.request(`/convai/conversation/token?agent_id=${encodeURIComponent($)}`,void 0,AbortSignal.timeout(15000));return nX.object({token:nX.string().min(1)}).parse(await Z.json()).token}async createTranscriptionToken(){let $=await this.request("/single-use-token/realtime_scribe",{},AbortSignal.timeout(15000));return nX.object({token:nX.string().min(1)}).parse(await $.json()).token}synthesize($,Z){return this.request(`/text-to-speech/${encodeURIComponent(this.config.voiceId)}/stream?output_format=mp3_44100_128`,{text:$,model_id:this.config.model},AbortSignal.any([Z,AbortSignal.timeout(60000)]))}}var hY8=D(()=>{gY8()});import{createHmac as Zo6,timingSafeEqual as Qo6}from"crypto";import{z as xp}from"zod";function lY8($,Z){if(!Z)throw Error("Voice requires a shared authentication secret");return Zo6("sha256",Z).update(`studio-voice-session:v1:${$}`).digest("base64url")}function cY8($,Z){let Q=Buffer.from(JSON.stringify(uY8.parse($))).toString("base64url");return`${Q}.${lY8(Q,Z)}`}function mY8($,Z,Q=Date.now()){if(!Z||$.length>4096)return null;let Y=$.split(".");if(Y.length!==2)return null;let[X,J]=Y;if(!X||!J)return null;let G=Buffer.from(lY8(X,Z)),W=Buffer.from(J);if(W.length!==G.length||!Qo6(W,G))return null;try{let K=uY8.safeParse(JSON.parse(Buffer.from(X,"base64url").toString()));if(!K.success||K.data.expiresAt<=Q||K.data.expiresAt>Q+qD)return null;return K.data}catch{return null}}var uY8;var dY8=D(()=>{bU();uY8=xp.object({sessionId:xp.string().uuid(),organizationId:xp.string().min(1).max(256),userId:xp.string().min(1).max(256),threadId:xp.string().min(1).max(256),expiresAt:xp.number().int().positive()})});import{z as uD1}from"zod";function iY8($,Z){if(Z?.voice_model!=null&&Z.voice_provider==null)throw Error("A voice model override requires a provider");let Q=Z?.voice_provider??$.voiceConversationProvider;return lD1.parse({provider:Q,model:Z?.voice_model??(Q==="openai"?$.openaiLiveModel:$.elevenlabsConversationModel)})}var lD1;var pY8=D(()=>{lD1=uD1.object({provider:uD1.enum(["elevenlabs","openai"]),model:uD1.string().trim().min(1).max(128)})});import{createHash as Yo6}from"crypto";import{z as fp}from"zod";function yp($){return`user.${Yo6("sha256").update(JSON.stringify([$.organizationId,$.userId])).digest("hex")}`}class mD1{deps;kvPromise;constructor($){this.deps=$}kv(){let $=this.deps.getConnection();if(!$||$.isClosed())throw new q1(503,{message:"Voice transport is unavailable"});return this.kvPromise??=new nY8.Kvm(Q_0.jetstream($)).create("STUDIO_VOICE_SESSIONS",{storage:Q_0.StorageType.Memory,ttl:tY8.nanos(qD),max_bytes:10485760}).catch((Z)=>{throw this.kvPromise=void 0,Z}),this.kvPromise}adapter(){if(!this.deps.adapter)throw new q1(503,{message:"Voice is not configured on this deployment"});return this.deps.adapter}async create($,Z=!1,Q="en",Y){let X;if(Z)try{X=iY8(this.deps.defaults,Y)}catch{throw new q1(503,{message:"Voice configuration is invalid"})}let J=X?this.deps.conversationAdapters[X.provider]:this.adapter();if(!J)throw new q1(503,{message:"Voice is not configured on this deployment"});let G={...$,sessionId:crypto.randomUUID(),expiresAt:Date.now()+qD},W=cY8(G,this.deps.secret),K=await this.kv(),H=yp(G),F=await K.get(H),U=F?.operation==="PUT"?Z_0.parse(F.json()):null,N=cD1.encode(JSON.stringify({sessionId:G.sessionId,expiresAt:G.expiresAt,conversation:X,characters:0,requests:0}));try{if(F&&U&&U.expiresAt<=Date.now())await K.update(H,N,F.revision);else await K.create(H,N)}catch{throw new q1(409,{message:"Close your other voice session before starting a new one"})}try{if(X&&"createSession"in J){let O=await J.createSession({language:Q,model:X.model,safetyIdentifier:yp($)});return{token:W,...O,expiresAt:G.expiresAt}}let B=await this.adapter().createTranscriptionToken();return{token:W,transcriptionToken:B,expiresAt:G.expiresAt}}catch(B){throw await this.release(G),B}}authorize($,Z){let Q=mY8(Z,this.deps.secret);if(!Q||Q.organizationId!==$.organizationId||Q.userId!==$.userId||Q.threadId!==$.threadId)throw new q1(403,{message:"Invalid voice session"});return Q}async connect($,Z){let Q=this.authorize($,Z.token),Y=await this.kv(),X=yp(Q),J=await Y.get(X),G=J?.operation==="PUT"?Z_0.parse(J.json()):null;if(!J||!G||G.sessionId!==Q.sessionId||G.expiresAt<=Date.now())throw new q1(403,{message:"Voice session expired"});let W=G.conversation?this.deps.conversationAdapters[G.conversation.provider]:null;if(!W?.negotiate||!G.conversation)throw new q1(409,{message:"Voice session does not support SDP negotiation"});if(G.connected)throw new q1(409,{message:"Voice session already connected"});try{await Y.update(X,cD1.encode(JSON.stringify({...G,connected:!0})),J.revision)}catch{throw new q1(409,{message:"Voice session is busy"})}return W.negotiate({sdp:Z.sdp,language:Z.language,model:G.conversation.model,safetyIdentifier:X})}async speak($,Z,Q,Y){let X=this.authorize($,Z),J=await this.kv(),G=yp(X);for(let W=0;;W++){let K=await J.get(G),H=K?.operation==="PUT"?Z_0.parse(K.json()):null;if(!K||!H||H.sessionId!==X.sessionId||H.expiresAt<=Date.now())throw new q1(403,{message:"Voice session expired"});if(H.characters+Q.length>24000||H.requests>=120)throw new q1(429,{message:"Voice session speech limit reached"});try{await J.update(G,cD1.encode(JSON.stringify({...H,characters:H.characters+Q.length,requests:H.requests+1})),K.revision);break}catch{if(W>=2)throw new q1(409,{message:"Voice session is busy"})}}return this.adapter().synthesize(Q,Y)}async release($){let Z=await this.kv(),Q=await Z.get(yp($));if(Q?.operation==="PUT"&&Z_0.parse(Q.json()).sessionId===$.sessionId)await Z.delete(yp($),{previousSeq:Q.revision})}async revoke($,Z){await this.release(this.authorize($,Z))}}var Q_0,nY8,tY8,Z_0,cD1;var oY8=D(()=>{OJ();bU();dY8();pY8();Q_0=C(BK(),1),nY8=C($A(),1),tY8=C(zz(),1),Z_0=fp.object({sessionId:fp.string().uuid(),expiresAt:fp.number(),connected:fp.boolean().optional(),conversation:lD1.optional(),characters:fp.number().int().nonnegative(),requests:fp.number().int().nonnegative()}),cD1=new TextEncoder});function Xo6($){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 Jo6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},rY8=()=>{let $=new Z1;return $.use("*",Jo6),$.get("/",async(Z)=>{let Q=E0(),Y=Q.decoSupabaseUrl,X=Q.decoSupabaseServiceKey;if(!Y||!X)return Z.json({apps:[]});try{let J=await QG(Y,X,"apps?select=name,title,description,logo,category,vendors(alias,url)");return Z.json({apps:Xo6(J)})}catch(J){return console.error("[deco-apps] GET error:",J),Z.json({error:"Failed to fetch apps"},502)}}),$};var sY8=D(()=>{J8();X$();Sk0()});import{z as y1}from"zod";function jN($,Z="invalid_request_error",Q=null,Y=null){return{error:{message:$,type:Z,param:Q,code:Y}}}function Oo6($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let Q=$.substring(0,Z),Y=$.substring(Z+1);if(!Q||!Y)return null;return{credentialId:Q,modelId:Y}}function Lo6($,Z,Q){try{return JSON.parse($)}catch{throw new $X8(`Invalid JSON in tool call arguments for function '${Q}' (tool_call_id: ${Z}): ${$}`)}}function wo6($){let Z={};for(let Q of $)if(Q.role==="assistant"&&Q.tool_calls)for(let Y of Q.tool_calls)Z[Y.id]=Y.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((X)=>{if(X.type==="text")return{type:"text",text:X.text};return{type:"image",image:X.image_url.url}})};case"assistant":if(Q.tool_calls&&Q.tool_calls.length>0)return{role:"assistant",content:Q.tool_calls.map((X)=>({type:"tool-call",toolCallId:X.id,toolName:X.function.name,input:Lo6(X.function.arguments,X.id,X.function.name)}))};return{role:"assistant",content:Q.content??""};case"tool":let Y=Z[Q.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:Q.tool_call_id,toolName:Y,output:{type:"text",value:Q.content}}]}}})}function jo6($){let Z=$.map((Q)=>{let Y=Q.function.parameters?dF(Q.function.parameters):dF({type:"object",properties:{}});return[Q.function.name,n$({description:Q.function.description,inputSchema:Y})]});return Object.fromEntries(Z)}function Eo6($){if(!$)return;return{openai:{response_format:$}}}function zo6(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function aY8($,Z,Q,Y,X,J){let G={model:$,instructions:Z.filter((W)=>W.role==="system"),messages:Z.filter((W)=>W.role!=="system"),tools:Q,temperature:Y.temperature,maxOutputTokens:Y.max_tokens,topP:Y.top_p,frequencyPenalty:Y.frequency_penalty,presencePenalty:Y.presence_penalty,stopSequences:Y.stop?Array.isArray(Y.stop)?Y.stop:[Y.stop]:void 0,abortSignal:J};return X?{...G,providerOptions:X}:G}function eY8($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var Go6=256,Wo6,Ko6,Ho6,Fo6,Uo6,No6,Bo6,Do6,$X8,ZX8,QX8;var YX8=D(()=>{y4();J8();Mp();CH();Wo6=y1.object({type:y1.literal("function"),function:y1.object({name:y1.string(),description:y1.string().optional(),parameters:y1.record(y1.string(),y1.unknown()).optional()})}),Ko6=y1.object({id:y1.string(),type:y1.literal("function"),function:y1.object({name:y1.string(),arguments:y1.string()})}),Ho6=y1.discriminatedUnion("role",[y1.object({role:y1.literal("system"),content:y1.string(),name:y1.string().optional()}),y1.object({role:y1.literal("user"),content:y1.union([y1.string(),y1.array(y1.union([y1.object({type:y1.literal("text"),text:y1.string()}),y1.object({type:y1.literal("image_url"),image_url:y1.object({url:y1.string(),detail:y1.string().optional()})})]))]),name:y1.string().optional()}),y1.object({role:y1.literal("assistant"),content:y1.string().nullable().optional(),name:y1.string().optional(),tool_calls:y1.array(Ko6).optional()}),y1.object({role:y1.literal("tool"),content:y1.string(),tool_call_id:y1.string()})]),Fo6=y1.object({type:y1.literal("text")}),Uo6=y1.object({type:y1.literal("json_object")}),No6=y1.object({type:y1.literal("json_schema"),json_schema:y1.object({name:y1.string(),description:y1.string().optional(),schema:y1.record(y1.string(),y1.unknown()),strict:y1.boolean().optional()})}),Bo6=y1.union([Fo6,Uo6,No6]),Do6=y1.object({model:y1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:y1.array(Ho6),stream:y1.boolean().optional().default(!1),temperature:y1.number().min(0).max(2).optional(),max_tokens:y1.number().positive().optional(),top_p:y1.number().min(0).max(1).optional(),frequency_penalty:y1.number().min(-2).max(2).optional(),presence_penalty:y1.number().min(-2).max(2).optional(),stop:y1.union([y1.string(),y1.array(y1.string())]).optional(),tools:y1.array(Wo6).optional(),tool_choice:y1.union([y1.literal("auto"),y1.literal("none"),y1.literal("required"),y1.object({type:y1.literal("function"),function:y1.object({name:y1.string()})})]).optional(),response_format:Bo6.optional(),user:y1.string().optional()});$X8=class $X8 extends Error{constructor($){super($);this.name="MessageConversionError"}};ZX8=new Z1;ZX8.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),Q=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(jN("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(jN("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(jN("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Y=await $.req.json(),X=Do6.safeParse(Y);if(!X.success){let w=X.error.issues[0]??{message:"Invalid request",path:[]};return $.json(jN(`Invalid request: ${w.message}`,"invalid_request_error",w.path.length>0?w.path.join("."):null),400)}let J=X.data,G=Oo6(J.model);if(!G)return $.json(jN("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}=G,{modelId:K}=G;if(!W){let j=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((E)=>LP(E.providerId));if(!j)return $.json(jN("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=j.id}let H;try{H=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(jN(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let F=H.aiSdk.languageModel(K),U=wo6(J.messages),N=J.tools?jo6(J.tools):void 0,B=Eo6(J.response_format),O=zo6(),L=Math.floor(Date.now()/1000);if(J.stream)return UO($,async(w)=>{let j=aY8(F,U,N,J,B,$.req.raw.signal);try{let E=Gd(j),z=!1,T=0,A="",P=async()=>{if(A.length===0)return;let q=A;A="",await w.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:L,model:J.model,choices:[{index:0,delta:{content:q},finish_reason:null}]})})};for await(let q of E.stream){if(!z&&(q.type==="text-delta"||q.type==="tool-call"))await w.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:L,model:J.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(q.type==="text-delta"){if(A+=q.text,A.length>=Go6)await P()}else if(q.type==="tool-call"){await P();let x=T++;await w.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:L,model:J.model,choices:[{index:0,delta:{tool_calls:[{index:x,id:q.toolCallId,type:"function",function:{name:q.toolName,arguments:JSON.stringify(q.input)}}]},finish_reason:null}]})})}else if(q.type==="finish")await P(),await w.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:L,model:J.model,choices:[{index:0,delta:{},finish_reason:eY8(q.finishReason)}],usage:q.totalUsage?{prompt_tokens:q.totalUsage.inputTokens??0,completion_tokens:q.totalUsage.outputTokens??0,total_tokens:q.totalUsage.totalTokens??0}:void 0})})}await P(),await w.writeSSE({data:"[DONE]"})}catch(E){let z=E;console.error("[openai-compat:stream] Error:",z.message),await w.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let w=aY8(F,U,N,J,B,$.req.raw.signal),j=await fU(w),E={role:"assistant",content:j.text||null};if(j.toolCalls&&j.toolCalls.length>0)E.tool_calls=j.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),E.content=null;return $.json({id:O,object:"chat.completion",created:L,model:J.model,choices:[{index:0,message:E,finish_reason:eY8(j.finishReason)}],usage:{prompt_tokens:j.usage?.inputTokens??0,completion_tokens:j.usage?.outputTokens??0,total_tokens:j.usage?.totalTokens??0}})}}catch(Y){let X=Y;if(X.name==="AbortError")return $.json(jN("Request aborted","invalid_request_error"),400);if(X.name==="MessageConversionError")return $.json(jN(X.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",X.message,X.stack),$.json(jN(X.message,"server_error"),500)}});QX8=ZX8});function Po6($){if(typeof $!=="object"||$===null)return!1;let Q=$.repository?.url;return typeof Q==="string"&&Q.length>0}function XX8(){let $=new Z1;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"),Y=p0(Q);if(!Y)return Z.json({error:"Authentication required"},401);let J=(Z.req.query("site")??"").trim().toLowerCase();if(!wZ(J))return Z.json({error:"Invalid site slug"},400);let G=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","=",Y).execute(),W=[];for(let H of G){if(!H.slug||k9(H))continue;let F=await Q.storage.virtualMcps.list(H.id);for(let U of F){if(NA(U)!==J)continue;if(!Po6(U.metadata))continue;W.push({orgSlug:H.slug,orgName:H.name??H.slug,project:{id:U.id,title:U.title,icon:U.icon??null}})}}let K={matches:W};return Z.json(K)}),$}var JX8=D(()=>{J8();aG()});var WX8;var GX8=D(()=>{WX8={name:"decocms",version:"4.429.5",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^4.0.58","@ai-sdk/google":"^4.0.76","@ai-sdk/openai":"^4.0.71","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^3.1.0","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^4.0.17","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^7.0.107","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function Ro6(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??To6}}var KX8,To6="https://ph.studio.decocms.com",HX8;var FX8=D(()=>{J8();Rs();gf();I9();X$();QN1();GX8();KX8=new Z1;KX8.get("/",($)=>{let Z={version:WX8.version,theme:Q5$(),...dK().logo&&{logo:dK().logo},...fD()&&{internalUrl:Ip1()},...E0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!E0().firecrawlApiKey,hostingEnabled:!!E0().controlplaneRestUrl&&!!E0().controlplaneServiceToken,hostingControlPlaneGa:E0().hostingControlPlaneGa,monitorEnabled:!!E0().clickhouseAnalyticsUrl&&!!E0().clickhouseAnalyticsPassword,monitorGa:E0().monitorGa,plansEnabled:E0().plansEnabled,auth:o48(),posthog:Ro6(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:TO()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});HX8=KX8});function oy($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function dD1($){return(oy($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1)).join(" ")}function UX8($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(oy($))}&sz=${Z}`}function qo6($,Z){let Q=$.trim();if(Q.length<=Z)return Q;let Y=Q.slice(0,Z-1),X=Y.lastIndexOf(" ");return`${(X>Z*0.6?Y.slice(0,X):Y).trimEnd()}\u2026`}function NX8($){let{brand:Z,domain:Q,score:Y}=$,X=typeof Y==="number"?`${Z} Deco Score \u2014 ${Math.round(Y)}/100 \xB7 decocms`:`${Z} Deco Score \xB7 decocms`,J=qo6(`How does ${Q} really perform? See the full ${Z} Deco Score \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,200);return{title:X,description:J}}import{z as z$}from"zod";var Mo6,BX8;var DX8=D(()=>{Mo6=z$.object({check_id:z$.string(),title:z$.string(),description:z$.string().optional(),impact:z$.string().optional(),why:z$.string().optional(),category:z$.string(),severity:z$.string(),value_band:z$.string().optional(),value_driver:z$.string().optional(),controllability:z$.string().optional(),pages:z$.array(z$.string()),tasks:z$.array(z$.string()),evidence:z$.string(),sample_scope:z$.string().optional(),sources:z$.array(z$.string())}),BX8=z$.object({domain:z$.string(),brand:z$.string(),favicon:z$.string().optional(),scanned_at:z$.string().nullable(),lang:z$.string(),score:z$.number().nullable(),band:z$.string().nullable(),totals:z$.object({measured:z$.number(),registry_total:z$.number(),passed:z$.number(),failed:z$.number(),blocked:z$.number()}),buckets:z$.array(z$.object({id:z$.enum(["critical","important","worth"]),label:z$.string(),items:z$.array(Mo6)})),passing:z$.object({count:z$.number(),items:z$.array(z$.object({check_id:z$.string(),title:z$.string()}))}),not_measured:z$.object({count:z$.number(),groups:z$.array(z$.object({reason:z$.string(),label:z$.string(),count:z$.number(),checks:z$.array(z$.string())}))}),categories:z$.array(z$.object({key:z$.string(),label:z$.string(),score:z$.number().nullable(),band:z$.string().nullable(),pass:z$.number(),fail:z$.number()})),screenshots:z$.array(z$.object({url:z$.string(),page_type:z$.string().optional(),viewport:z$.enum(["desktop","mobile"]),image_url:z$.string()}))})});function OX8($,Z,Q){let Y=Q?`?${new URLSearchParams({lang:Q}).toString()}`:"";return`${jW({})}/api/v2/public/diagnostics/${encodeURIComponent($)}/onepager${Z}${Y}`}async function Y_0($,Z={}){let Q=await fetch(OX8($,"",Z.lang),{headers:{Accept:"application/json"},signal:Z.signal});if(Q.status===404)return null;if(!Q.ok)throw Error(`onepager read HTTP ${Q.status}`);return BX8.parse(await Q.json())}async function LX8($,Z={}){let Q=await fetch(OX8($,".md",Z.lang),{headers:{Accept:"text/markdown"},signal:Z.signal});if(Q.status===404)return null;if(!Q.ok)throw Error(`onepager markdown HTTP ${Q.status}`);return Q.text()}var iD1=D(()=>{DX8();pB()});import{join as wX8}from"path";async function Vo6($){try{let Z=await Y_0($,{signal:AbortSignal.timeout(Io6)});if(!Z?.scanned_at)return null;return{brand:Z.brand.trim()||dD1($),...Z.score!==null?{score:Z.score}:{}}}catch{return null}}function GG($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function ko6($,Z){let Q=oy($),Y=Z?.brand?.trim()||dD1(Q),X=UX8(Q,128),G=`${(E0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(Q)}`,{title:W,description:K}=NX8({brand:Y,domain:Q,score:Z?.score}),H=`${G}/og.png`,F=`${Y} Deco Score by decocms`;return[`<title>${GG(W)}</title>`,`<meta name="description" content="${GG(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="${GG(W)}" />`,`<meta property="og:description" content="${GG(K)}" />`,`<meta property="og:url" content="${GG(G)}" />`,`<meta property="og:image" content="${GG(H)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${GG(F)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${GG(W)}" />`,`<meta name="twitter:description" content="${GG(K)}" />`,`<meta name="twitter:image" content="${GG(H)}" />`,`<meta name="twitter:image:alt" content="${GG(F)}" />`,`<link rel="canonical" href="${GG(G)}" />`,`<link rel="alternate" type="text/markdown" href="${GG(G)}.md" />`,`<link rel="icon" href="${GG(X)}" sizes="any" />`].join(`
|
|
3738
3738
|
`)}function So6($,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}
|
|
3739
3739
|
</head>`)}function jX8($){let Z=new Z1;return Z.get("/:domain/og.png",async(Q)=>{let Y=oy(Q.req.param("domain")),X=async()=>{let J=$?Bun.file(wX8($,"report-og-fallback.png")):null;if(!J||!await J.exists())return Q.notFound();return Q.body(new Uint8Array(await J.arrayBuffer()),200,{"Content-Type":"image/png","Cache-Control":"public, max-age=0, s-maxage=3600"})};try{let J=await fetch(`${jW({})}/api/v2/public/diagnostics/${encodeURIComponent(Y)}/og.png`,{signal:AbortSignal.timeout(Co6)}),G=J.headers.get("content-type")??"";if(!J.ok||!G.startsWith("image/")||!J.body)return X();return Q.body(J.body,200,{"Content-Type":G,"Cache-Control":"public, max-age=0, s-maxage=604800"})}catch{return X()}}),Z.get("/:file{.+\\.md}",async(Q)=>{let Y=oy(Q.req.param("file").replace(/\.md$/,""));try{let X=await LX8(Y,{lang:Q.req.query("lang")?.trim()||void 0,signal:AbortSignal.timeout(_o6)});if(X===null)return Q.text("Deco Score not found",404);return Q.body(X,200,{"Content-Type":"text/markdown; charset=utf-8","Cache-Control":"public, max-age=600, stale-while-revalidate=3600","Access-Control-Allow-Origin":"*"})}catch{return Q.text("Deco Score unavailable",502)}}),Z.get("/:domain",async(Q)=>{let Y=Q.req.param("domain"),X=$?wX8($,"index.html"):null,J=X?Bun.file(X):null;if(!J||!await J.exists())return Q.notFound();let G=await J.text();try{let W=await Vo6(oy(Y)),K=ko6(Y,W);return Q.html(So6(G,K),200,{"Cache-Control":"public, max-age=0, s-maxage=300"})}catch{return Q.html(G)}}),Z}var Io6=2500,Co6=1e4,_o6=1e4;var EX8=D(()=>{J8();pB();iD1();X$()});function X_0($,Z){return fetch(`${jW({})}${$}`,Z)}async function vo6($,Z){let Q=await Y_0($,{lang:Z});if(!Q)return{status:"not_found",report:null};return Q.scanned_at?{status:"ready",report:Q}:{status:"empty",report:null}}function xo6($){let Z=typeof $==="object"&&$!==null?$:{},Q=typeof Z.domain==="string"?Z.domain.trim():"",Y=typeof Z.distinctId==="string"&&Z.distinctId.trim()&&Z.distinctId.length<=200?Z.distinctId.trim():void 0;return{domain:Q,distinctId:Y}}var bo6,BO,zX8=async($,Z)=>{if(!$.get("reportUser"))return $.json({error:"Authentication required"},401);await Z();return},PX8;var AX8=D(()=>{J8();Z3();pB();iD1();bo6=new Set(["complete","errored","terminated","unknown"]);BO=new Z1;BO.use("*",async($,Z)=>{let Q=await x8.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});BO.use("/link-token/*",zX8);BO.use("/suggest",zX8);BO.get("/site/:domain",async($)=>{let Z=$.req.param("domain").trim();if(!Z)return $.json({error:"domain is required"},400);let Q=$.req.query("lang")?.trim()||void 0;try{return $.json(await vo6(Z,Q))}catch{return $.json({error:"report read failed"},502)}});BO.post("/run",async($)=>{let Z=$.get("reportUser"),Q;try{Q=await $.req.json()}catch{return $.json({error:"invalid JSON"},400)}let{domain:Y,distinctId:X}=xo6(Q);if(!Y)return $.json({error:"domain is required"},400);let J=Z?.email;try{let G=await X_0("/api/v2/diagnostics/run",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${nw({})}`},body:JSON.stringify({url:Y,...J?{email:J}:{},distinct_id:X})});if(!G.ok)return $.json({error:`run HTTP ${G.status}`},502);let W=await G.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)}});BO.get("/status",async($)=>{let Z=$.req.query("id");if(!Z)return $.json({error:"id is required"},400);try{let Q=await X_0(`/api/v2/diagnostics/status?id=${encodeURIComponent(Z)}`,{headers:{Authorization:`Bearer ${nw({})}`}});if(!Q.ok)return $.json({error:`status HTTP ${Q.status}`},502);let X=(await Q.json()).status??"unknown",J={done:bo6.has(X),status:X};return $.json(J)}catch{return $.json({error:"status failed"},502)}});BO.get("/link-token/:id",async($)=>{let Z=$.req.param("id");try{let Q=await X_0(`/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)}});BO.get("/suggest",async($)=>{let Z=($.req.query("q")??"").trim().slice(0,64);if(Z.length<2)return $.json({suggestions:[]});try{let Q=await X_0(`/api/v2/public/suggest?q=${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(!Q.ok)return $.json({suggestions:[]});let Y=await Q.json();return $.json({suggestions:Array.isArray(Y.suggestions)?Y.suggestions:[]})}catch{return $.json({suggestions:[]})}});PX8=BO});var fo6=1048576,pD1;var TX8=D(()=>{J8();eW();X$();lU1();pD1=new Z1;pD1.post("/webhook",x5({maxSize:fo6,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=E0().stripeWebhookSecret;if(!Z)return $.json({error:"stripe billing not configured"},503);let Q=await $.req.text();if(!K48(Q,$.req.header("stripe-signature"),Z))return $.json({error:"invalid signature"},400);let X=H48(Q);if(!X)return $.json({error:"invalid payload"},400);let J=await F48(X);return console.log("stripe webhook",{eventId:X.id,type:X.type,livemode:X.livemode,...J}),$.json({received:!0})})});import{timingSafeEqual as yo6}from"crypto";function uo6($,Z,Q){if(!Z?.startsWith("sha256="))return!1;let Y=new Bun.CryptoHasher("sha256",Q).update($).digest("hex"),X=Z.slice(7);if(X.length!==Y.length)return!1;return yo6(Buffer.from(X),Buffer.from(Y))}function lo6($,Z){let Q=Z,Y=Q?.repository?.name,X=Q?.repository?.owner?.login;if(typeof Y!=="string"||typeof X!=="string")return[];let J=[];if($==="check_suite"){if(Q.action!=="completed")return[];let G=Q.check_suite?.pull_requests;for(let W of Array.isArray(G)?G:[]){let K=W?.number;if(typeof K==="number")J.push(K)}}else if($==="issue_comment"&&Q.issue?.pull_request){let G=Q.issue.number;if(typeof G==="number")J.push(G)}return[...new Set(J)].map((G)=>({repoOwner:X,repoName:Y,number:G}))}function RX8($){let Z=new Z1;return Z.post("/webhook",x5({maxSize:go6,onError:(Q)=>Q.json({error:"payload too large"},413)}),async(Q)=>{let Y=process.env.GITHUB_WEBHOOK_SECRET;if(!Y)return Q.json({error:"github webhook not configured"},503);let X=await Q.req.text();if(!uo6(X,Q.req.header("x-hub-signature-256"),Y))return Q.json({error:"invalid signature"},400);let J=Q.req.header("x-github-event");if(J!=="push"&&!ho6.has(J??""))return Q.json({ok:!0,ignored:"event"});let G;try{G=JSON.parse(X)}catch{return Q.json({error:"invalid payload"},400)}if(J==="push"){let H=G.ref,F=G.repository?.full_name;if(!H||!F)return Q.json({ok:!0,ignored:"shape"});return S10().then((U)=>U?.markTenantPoolsDirty(`https://github.com/${F}`,H)).catch((U)=>console.warn(`[github-webhook] tenant pool refresh for ${F}@${H} failed: ${U instanceof Error?U.message:String(U)}`)),Q.json({ok:!0})}let W=lo6(J??"",G);if(W.length===0)return Q.json({ok:!0,ignored:"no-pr"});let K=await co6($,W);return Q.json({ok:!0,refreshed:K})}),Z}async function co6($,Z){let Q=0;for(let Y of Z){let X=$.taskBoard(),J;try{J=await X.findPrLinks(Y)}catch(G){console.error("[github-webhook] pr link lookup failed:",G);continue}for(let G of J)try{let W=await X.getById(G.taskBoardItemId,G.organizationId),K=W?await $.contextFactory()(G.organizationId,W.assignedBy??W.createdBy):null;if(!K)continue;if(await fb$(K,G.organizationId,G.taskBoardItemId)!==null)Q++}catch(W){console.error(`[github-webhook] pr card refresh failed for ${G.taskBoardItemId}:`,W)}}return Q}var go6=5242880,ho6;var qX8=D(()=>{J8();eW();vW();C7();ho6=new Set(["check_suite","issue_comment"])});import{DBOS as tD1,SchedulerMode as mo6}from"@dbos-inc/dbos-sdk";async function io6(){try{return await po6()}catch($){return console.warn(`[sandbox-credential-push] push failed: ${$ instanceof Error?$.message:String($)}`),null}}async function po6(){if(!k10())return null;let[{RemoteSandboxProvider:$},{SandboxProviderRouter:Z}]=await Promise.all([Promise.resolve().then(() => (M91(),q91)),Promise.resolve().then(() => (R91(),T91))]),Q=await S10(),Y=Q instanceof Z?Q.providers.kubernetes:Q;if(!(Y instanceof $))return null;let{db:X}=D8(),{sandboxes:J,pools:G}=await Y.list(),W=Date.now(),K=QT$({sandboxes:J,pools:G,records:await YT$(X,J,G),legacyPools:YT0(process.env.STUDIO_SANDBOX_TENANT_POOLS),now:W}),{batches:H,failed:F}=await XT$(K,RH0(X,new UX(E0().encryptionKey)),{now:W,orgFsLifetimeMs:GT0}),U=0,N=0,B=0;for(let O of H)try{let L=await Y.pushCredentials(O);U+=L.stored,N+=L.kept}catch(L){B++,console.warn(`[sandbox-credential-push] a push batch failed: ${L instanceof Error?L.message:String(L)}`)}return{sandboxes:J.length,pushed:U,kept:N,refused:K.refused,failed:F+B}}async function no6($,Z){let Q=await tD1.runStep(io6,{name:"pushSandboxCredentials"});if(Q&&(Q.refused>0||Q.failed>0))console.warn(`[sandbox-credential-push] ${Q.sandboxes} sandboxes: pushed ${Q.pushed}, kept ${Q.kept}, refused ${Q.refused}, failed ${Q.failed}`)}function MX8(){if(nD1)return;if(!E0().agentSandboxEnabled||!k10())return;nD1=tD1.registerWorkflow(no6,{name:"sandboxCredentialPushWorkflow"}),tD1.registerScheduled(nD1,{name:"sandboxCredentialPushWorkflow",crontab:do6,mode:mo6.ExactlyOncePerIntervalWhenActive})}var do6="1-59/10 * * * *",nD1=null;var IX8=D(()=>{SG();FL();D41();WT0();XT0();vW();X$()});function VX8($){let Z=new $O($.db,new UX($.encryptionKey)),Q=new Z1;return Q.get("/attachments/:token",async(Y)=>{let X=s_$(Y.req.param("token"));if(!X)return Y.json({error:"Invalid or expired link"},404);let J=await Z.getByOrg(X.organizationId);if(!J)return Y.json({error:"Jira is not connected"},404);let W=await new lQ(J.siteUrl,J.email,J.apiToken).downloadAttachment(X.attachmentId);if(!W.ok||!W.body)return Y.json({error:"Jira refused the download"},502);let K=new Headers;for(let H of["content-type","content-length","content-disposition"]){let F=W.headers.get(H);if(F)K.set(H,F)}return K.set("cache-control","no-store"),new Response(W.body,{status:200,headers:K})}),Q}var kX8=D(()=>{J8();FL();u71();KE();m40()});import{DBOS as Zz,SchedulerMode as to6}from"@dbos-inc/dbos-sdk";function SX8($){rD1=$}function aD1(){if(!rD1)throw Error("[jira-trigger] runtime not initialized \u2014 setJiraTriggerSweepRuntime() must run before the workflow fires");return rD1}function eD1(){let $=aD1();return new $O($.db,new UX($.encryptionKey))}async function eo6($){try{let Z=await eD1().getById($);if(!Z?.enabled||!Z.boardId)return{integrationId:$,started:0};let Q=await MH(aD1().db,Z.organizationId);if(!Q)return{integrationId:$,started:0};if((await Q.storage.jiraIntegrations.listAutomations(Z.organizationId)).length===0)return{integrationId:$,started:0};let X=new lQ(Z.siteUrl,Z.email,Z.apiToken),G=`(${await X.getBoardScopeJql(Z.boardId)}) AND status CHANGED AFTER "-${ro6}m"`,W=0,K;for(let H=0;H<so6;H++){let F=await X.searchIssues({jql:G,nextPageToken:K});for(let U of F.issues)if(await rH1(Q,Z,{issueId:U.id,now:Date.now()})==="started")W++;if(K=F.nextPageToken??void 0,!K)break}return{integrationId:$,started:W}}catch(Z){return{integrationId:$,started:0,error:Z instanceof Error?Z.message:String(Z)}}}async function $r6($,Z){let Q=await Zz.runStep(()=>eD1().listEnabledIds(),{name:"loadJiraIntegrations"});if(Q.length===0)return;let Y=await Promise.all(Q.map((X)=>Zz.runStep(()=>eo6(X),{name:`sweepJira:${X}`})));for(let X of Y)if(X.error)console.warn(`[jira-trigger] integration ${X.integrationId} failed: ${X.error}`);else if(X.started>0)console.log(`[jira-trigger] integration ${X.integrationId} started ${X.started} run(s) the webhook missed`)}async function Zr6($,Z){try{let Q=await eD1().getById($);if(!Q?.enabled)return"disabled";let Y=await MH(aD1().db,Q.organizationId);if(!Y)return"disabled";let X=await rH1(Y,Q,{issueId:Z.issueId,changelogId:Z.changelogId});if(X==="started")console.log(`[jira-trigger] started a run for ${Z.issueKey} after it settled`);else if(X==="returned")console.log(`[jira-trigger] ${Z.issueKey} went back where it was before settling in "${Z.toStatus}"; no run`);return X}catch(Q){return console.error(`[jira-trigger] settling ${Z.issueKey} failed`,Q instanceof Error?Q.message:Q),"error"}}async function Qr6($,Z){await Zz.sleep(vk0()+ao6),await Zz.runStep(()=>Zr6($,Z),{name:"settleJiraMove"})}async function CX8($,Z){if(!sD1)throw Error("[jira-trigger] settle workflow is not registered");await Zz.startWorkflow(sD1,{workflowID:`jira-settle:${$}:${Z.changelogId}`})($,Z)}function _X8(){if(oD1)return;sD1=Zz.registerWorkflow(Qr6,{name:"jiraSettleWorkflow"}),oD1=Zz.registerWorkflow($r6,{name:"jiraTriggerSweepWorkflow"}),Zz.registerScheduled(oD1,{name:"jiraTriggerSweepWorkflow",crontab:oo6,mode:to6.ExactlyOncePerIntervalWhenActive})}var oo6="7-59/10 * * * *",ro6=35,so6=5,ao6=5000,rD1=null,sD1=null,oD1=null;var $O1=D(()=>{FL();m40();qd();KE();tH1();bk0()});function vX8($){let Z=new $O($.db,new UX($.encryptionKey));async function Q(X,J){let G=_e$(J);if(!G)return;let W=await Z.getByWebhookSecret(X);if(!W?.enabled)return;if((await Z.listAutomations(W.organizationId)).length===0)return;await CX8(W.id,G)}let Y=new Z1;return Y.post("/webhook/:secret",x5({maxSize:Yr6}),async(X)=>{let J=X.req.param("secret");if(!await Z.getByWebhookSecret(J))return X.json({error:"Unknown webhook"},404);let W;try{W=await X.req.json()}catch{return X.json({error:"Body must be JSON"},400)}return Q(J,W).catch((K)=>{console.error("[jira-webhook] trigger failed",K)}),X.body(null,202)}),Y}var Yr6=1048576;var bX8=D(()=>{J8();eW();FL();$O1();bk0();m40()});function xX8($,Z){if(Z.startsWith("text/html")||Z.startsWith("image/svg"))$.set("Content-Security-Policy","sandbox allow-scripts allow-modals allow-same-origin")}var fX8,Xr6,Jr6,yX8;var gX8=D(()=>{J8();OJ();vd();ic();fX8=new Z1,Xr6=["range","if-none-match","if-modified-since"],Jr6=["content-type","content-length","content-range","accept-ranges","etag","last-modified"];fX8.get("/:org/files/*",async($)=>{let Z=$.get("studioContext"),Q=Z.organization?.id;if(!Z.auth?.user?.id){if(Yp($))return $.redirect(`/login?next=${encodeURIComponent($.req.path)}`,302);throw new q1(401,{message:"Authentication required"})}if(!Q)throw new q1(401,{message:"Organization context required"});let Y=$.req.path.replace(/^.*\/files\//,"");if(!Y)throw new q1(400,{message:"Missing file key"});let X=await $80(Y,Z);if(!X)throw new q1(503,{message:"Object storage not configured"});if(X.startsWith("data:")&&PW()){let K=X.match(/^data:([^;]+);base64,(.+)$/s);if(!K)throw new q1(500,{message:"Invalid data URL from storage"});let[,H,F]=K,U=Buffer.from(F,"base64"),N=new Headers({"Content-Type":H,"Cache-Control":"private, max-age=86400"});return xX8(N,H),new Response(U,{status:200,headers:N})}let J=new Headers;for(let K of Xr6){let H=$.req.header(K);if(H)J.set(K,H)}let G=await fetch(X,{headers:J});if(G.status===403||G.status===404)throw new q1(404,{message:"File not found"});if(!G.ok&&G.status!==304&&G.status!==416)throw console.error(`[files] upstream storage error ${G.status} for key:`,Y),new q1(502,{message:"Upstream storage error"});let W=new Headers;for(let K of Jr6){let H=G.headers.get(K);if(H)W.set(K,H)}return W.set("Cache-Control","private, max-age=86400"),xX8(W,W.get("content-type")??""),new Response(G.body,{status:G.status,headers:W})});yX8=fX8});var l60=b((ry)=>{var Gr6=ry&&ry.__createBinding||(Object.create?function($,Z,Q,Y){if(Y===void 0)Y=Q;var X=Object.getOwnPropertyDescriptor(Z,Q);if(!X||("get"in X?!Z.__esModule:X.writable||X.configurable))X={enumerable:!0,get:function(){return Z[Q]}};Object.defineProperty($,Y,X)}:function($,Z,Q,Y){if(Y===void 0)Y=Q;$[Y]=Z[Q]}),Wr6=ry&&ry.__exportStar||function($,Z){for(var Q in $)if(Q!=="default"&&!Object.prototype.hasOwnProperty.call(Z,Q))Gr6(Z,$,Q)};Object.defineProperty(ry,"__esModule",{value:!0});Wr6(OG(),ry)});var lX8=b((hX8)=>{Object.defineProperty(hX8,"__esModule",{value:!0});hX8.version=void 0;hX8.version="3.4.0"});var dX8=b((EN)=>{var Kr6=EN&&EN.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(EN,"__esModule",{value:!0});EN.NodeTransport=EN.VERSION=void 0;EN.nodeResolveHost=Dr6;var s5=l60(),Hr6=M0("net"),ZO1=M0("tls"),Fr6=M0("path"),cX8=M0("fs"),Ur6=Kr6(M0("dns")),Nr6=lX8();EN.VERSION=Nr6.version;var Br6="nats.js";class mX8{socket;version;lang;yields=[];signal=(0,s5.deferred)();closedNotification=(0,s5.deferred)();options;connected=!1;tlsName="";done=!1;closeError;constructor(){this.lang=Br6,this.version=EN.VERSION}async connect($,Z){this.tlsName=$.tlsName,this.options=Z;let{tls:Q}=this.options,{handshakeFirst:Y}=Q||{};try{if(Y===!0)this.socket=await this.tlsFirst($);else this.socket=await this.dial($);if(this.done)this.socket?.destroy();let X=await this.peekInfo();(0,s5.checkOptions)(X,Z);let{tls_required:J,tls_available:G}=X,W=G===!0&&Z.tls!==null;if(!Y&&(J||W))this.socket=await this.startTLS();if(this.done)this.socket?.destroy();if(J&&this.socket.encrypted!==!0)throw s5.errors.InvalidArgumentError.format("tls","is not available on this server");return this.connected=!0,this.setupHandlers(),this.signal.resolve(),Promise.resolve()}catch(X){let J=X;if(!J)J=new s5.errors.ConnectionError("error connecting - node provided an undefined error");let{code:G}=J,W=G==="ECONNREFUSED"?new s5.errors.ConnectionError("connection refused",{cause:J}):J;throw this.socket?.destroy(),W}}dial($){let Z=(0,s5.deferred)(),Q,Y=(0,Hr6.createConnection)($.port,$.hostname,()=>{Z.resolve(Y),Y.removeAllListeners()});return Y.on("error",(X)=>{Q=X}),Y.on("close",()=>{Y.removeAllListeners(),Z.reject(Q)}),Y.setNoDelay(!0),Z}get isClosed(){return this.done}close($){return this._closed($,!1)}peekInfo(){let $=(0,s5.deferred)(),Z;return this.socket.on("data",(Q)=>{this.yields.push(Q);let Y=s5.DataBuffer.concat(...this.yields),X=(0,s5.extractProtocolMessage)(Y);if(X!=="")try{let J=s5.INFO.exec(X);if(!J)throw Error("unexpected response from server");let G=JSON.parse(J[1]);$.resolve(G)}catch(J){$.reject(J)}finally{this.socket.removeAllListeners()}}),this.socket.on("error",(Q)=>{Z=Q}),this.socket.on("close",()=>{this.socket.removeAllListeners(),$.reject(Z)}),$}loadFile($){if(!$)return Promise.resolve();let Z=(0,s5.deferred)();try{if($=(0,Fr6.resolve)($),!(0,cX8.existsSync)($))Z.reject(Error(`${$} doesn't exist`));(0,cX8.readFile)($,(Q,Y)=>{if(Q)return Z.reject(Q);Z.resolve(Y)})}catch(Q){Z.reject(Q)}return Z}async loadClientCerts(){let $={},{certFile:Z,cert:Q,caFile:Y,ca:X,keyFile:J,key:G}=this.options.tls;try{if(Z){let W=await this.loadFile(Z);if(W)$.cert=W}else if(Q)$.cert=Q;if(J){let W=await this.loadFile(J);if(W)$.key=W}else if(G)$.key=G;if(Y){let W=await this.loadFile(Y);if(W)$.ca=[W]}else if(X)$.ca=X;return Promise.resolve($)}catch(W){return Promise.reject(W)}}async tlsFirst($){let Z,Q={servername:this.tlsName,rejectUnauthorized:!0};if(this.socket)Q.socket=this.socket;if(typeof this.options.tls==="object")try{let X=await this.loadClientCerts()||{};Q=(0,s5.extend)(Q,this.options.tls,X)}catch(X){return Promise.reject(new s5.errors.ConnectionError(X.message,{cause:X}))}let Y=(0,s5.deferred)();try{let X=(0,ZO1.connect)($.port,$.hostname,Q,()=>{X.removeAllListeners(),Y.resolve(X)});X.on("error",(J)=>{Z=J}),X.on("secureConnect",()=>{if(Q.rejectUnauthorized===!1)return;if(!X.authorized)throw X.authorizationError}),X.on("close",()=>{Y.reject(Z),X.removeAllListeners()}),X.setNoDelay(!0)}catch(X){Y.reject(new s5.errors.ConnectionError(X.message,{cause:X}))}return Y}async startTLS(){let $,Z={socket:this.socket,servername:this.tlsName,rejectUnauthorized:!0};if(typeof this.options.tls==="object")try{let Y=await this.loadClientCerts()||{};Z=(0,s5.extend)(Z,this.options.tls,Y)}catch(Y){return Promise.reject(new s5.errors.ConnectionError(Y.message,{cause:Y}))}let Q=(0,s5.deferred)();try{let Y=(0,ZO1.connect)(Z,()=>{Y.removeAllListeners(),Q.resolve(Y)});Y.on("error",(X)=>{$=X}),Y.on("secureConnect",()=>{if(Z.rejectUnauthorized===!1)return;if(!Y.authorized)throw Y.authorizationError}),Y.on("close",()=>{Q.reject($),Y.removeAllListeners()})}catch(Y){Q.reject(new s5.errors.ConnectionError(Y.message,{cause:Y}))}return Q}setupHandlers(){let $;this.socket.on("data",(Z)=>{return this.yields.push(Z),this.signal.resolve()}),this.socket.on("error",(Z)=>{$=Z}),this.socket.on("end",()=>{if(this.socket?.destroyed)return;this.socket?.write(new Uint8Array(0),()=>{this.socket?.end()})}),this.socket.on("close",()=>{this._closed($,!1)})}[Symbol.asyncIterator](){return this.iterate()}async*iterate(){while(!0){if(this.yields.length===0)await this.signal;let $=this.yields;this.yields=[];for(let Z=0;Z<$.length;Z++){if(this.options.debug)console.info(`> ${(0,s5.render)($[Z])}`);yield $[Z]}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,s5.deferred)()}}discard(){if(this.done=!0,this.socket)try{this.socket.removeAllListeners(),this.socket.destroy()}catch{}}disconnect(){this._closed(void 0,!0).then().catch()}isEncrypted(){return this.socket instanceof ZO1.TLSSocket}_send($){if(this.isClosed||this.socket===void 0)return Promise.resolve();if(this.options.debug)console.info(`< ${(0,s5.render)($)}`);let Z=(0,s5.deferred)();try{this.socket.write($,(Q)=>{if(Q){if(this.options.debug)console.error(`!!! ${(0,s5.render)($)}: ${Q}`);return Z.reject(Q)}return Z.resolve()})}catch(Q){if(this.options.debug)console.error(`!!! ${(0,s5.render)($)}: ${Q}`);Z.reject(Q)}return Z}send($){this._send($).catch((Q)=>{})}async _closed($,Z=!0){if(!this.connected)return;if(this.done){this.socket?.destroy();return}if(this.closeError=$,!$&&this.socket&&Z)try{await this._send(new TextEncoder().encode(""))}catch(Q){if(this.options.debug)console.log("transport close terminated with an error",Q)}try{if(this.socket)this.socket.removeAllListeners(),this.socket?.destroy(),this.socket=void 0}catch(Q){console.log(Q)}this.done=!0,this.closedNotification.resolve(this.closeError)}closed(){return this.closedNotification}}EN.NodeTransport=mX8;function Dr6($){let Z=(0,s5.deferred)();return Ur6.default.lookup($,{all:!0},(Q,Y)=>{if(Q){Z.reject(Q);return}let X=[];for(let J of Y)X.push(J.address);if(X.length===0)X.push($);Z.resolve(X)}),Z}});var oX8=b((tX8)=>{Object.defineProperty(tX8,"__esModule",{value:!0});tX8.connect=Or6;var iX8=dX8(),pX8=l60(),nX8=l60();function Or6($={}){if((0,nX8.hasWsProtocol)($))return Promise.reject(nX8.errors.InvalidArgumentError.format("servers","node client doesn't support websockets, use the 'wsconnect' function instead"));return(0,pX8.setTransportFactory)({factory:()=>{return new iX8.NodeTransport},dnsResolveFn:iX8.nodeResolveHost}),pX8.NatsConnectionImpl.connect($)}});var rX8=b((DO)=>{var wr6=DO&&DO.__createBinding||(Object.create?function($,Z,Q,Y){if(Y===void 0)Y=Q;var X=Object.getOwnPropertyDescriptor(Z,Q);if(!X||("get"in X?!Z.__esModule:X.writable||X.configurable))X={enumerable:!0,get:function(){return Z[Q]}};Object.defineProperty($,Y,X)}:function($,Z,Q,Y){if(Y===void 0)Y=Q;$[Y]=Z[Q]}),jr6=DO&&DO.__exportStar||function($,Z){for(var Q in $)if(Q!=="default"&&!Object.prototype.hasOwnProperty.call(Z,Q))wr6(Z,$,Q)};Object.defineProperty(DO,"__esModule",{value:!0});DO.connect=void 0;var Er6=oX8();Object.defineProperty(DO,"connect",{enumerable:!0,get:function(){return Er6.connect}});jr6(l60(),DO)});function $J8($){let Z=$?.connectFn??Tr6,Q=null,Y=null,X=!1,J=!1,G=!1,W=[];function K(){return Q!==null&&!Q.isClosed()&&!Q.isDraining()&&!G}function H(){console.log(`[NatsProvider] fireReady: ${W.length} callbacks`);for(let N of W)try{N()}catch{}}function F(N){(async()=>{for await(let B of N.status())if(B.type==="disconnect")console.log("[NatsProvider] Disconnected"),G=!0;else if(B.type==="reconnect")console.log("[NatsProvider] Reconnected, re-firing ready callbacks"),G=!1,Y=null,H()})().catch(()=>{})}async function U(N,B){let O=0;while(!J)try{Q=await Z({servers:N,timeout:Ar6,reconnect:!0,maxReconnectAttempts:-1,...B?{authenticator:B}:{}}),console.log(`[NatsProvider] Connected to ${Q.getServer()} after ${O} attempt(s)`),Y=null,G=!1,F(Q),H();return}catch{O++;let L=U7(Pr6,zr6,O-1,2,0.5);await O$(L)}}return{init(N,B){if(X)return;X=!0,J=!1;let O=B?.creds?sX8.credsAuthenticator(new TextEncoder().encode(B.creds)):void 0;U(N,O).catch(()=>{})},isConnected(){return K()},getConnection(){return K()?Q:null},getJetStream(){if(!K())return null;if(!Y)Y=eX8.jetstream(Q);return Y},onReady(N){if(W.push(N),K())try{N()}catch{}},async drain(){if(J=!0,X=!1,Y=null,G=!1,Q){let N=Q;Q=null,await N.drain().catch(()=>{})}}}}function Tr6($){return aX8.connect($)}var sX8,aX8,eX8,zr6=100,Pr6=3000,Ar6=3000;var ZJ8=D(()=>{a$();sX8=C(zz(),1),aX8=C(rX8(),1),eX8=C(BK(),1)});function J_0($){let Z=$?.ttlMs??60000,Q=$?.maxSize??1e4,Y=$?.updateRecencyOnGet??!1,X=new Map;function J(){if(X.size<=Q)return;let G=Date.now();for(let[W,K]of X)if(K.expiresAt<=G)X.delete(W);while(X.size>Q){let W=X.keys().next().value;if(W===void 0)break;X.delete(W)}}return{get(G){let W=X.get(G);if(!W)return;if(W.expiresAt<=Date.now()){X.delete(G);return}if(Y)X.delete(G),X.set(G,W);return W.value},set(G,W){X.delete(G),X.set(G,{value:W,expiresAt:Date.now()+Z}),J()},delete(G){X.delete(G)},clear(){X.clear()},size(){return X.size}}}function G_0($,Z){return`${$}.${Z}`}class QO1{cache;constructor($){this.cache=J_0({ttlMs:$?.ttlMs??Rr6,maxSize:$?.maxSize??qr6})}async get($,Z){return this.cache.get(G_0($,Z))??null}async set($,Z,Q){this.cache.set(G_0($,Z),Q)}async invalidate($,Z){this.cache.delete(G_0($,Z)),this.cache.delete(G_0($,`${Z}:decisions`))}teardown(){this.cache.clear()}}var Rr6=600000,qr6=5000;var QJ8=()=>{};function W_0($,Z){return`${$}:${Z}`}function YO1($){let Z=J_0({ttlMs:$?.ttlMs??Mr6,maxSize:$?.maxSize??Ir6}),Q=$?.getConnection,Y=crypto.randomUUID(),X=new TextEncoder,J=new TextDecoder,G=null;function W(K,H){let F=Q?.();if(!F)return;try{F.publish(YJ8,X.encode(JSON.stringify({organizationId:K,keyId:H,originId:Y})))}catch(U){console.warn("[ProviderKeyCache] Publish failed (non-critical):",U)}}return{get(K,H){return Z.get(W_0(K,H))},set(K,H,F){Z.set(W_0(K,H),F)},invalidate(K,H){Z.delete(W_0(K,H)),W(K,H)},start(){if(G)return;let K=Q?.();if(!K)return;G=K.subscribe(YJ8),(async()=>{for await(let H of G)try{let F=JSON.parse(J.decode(H.data));if(F.originId===Y)continue;Z.delete(W_0(F.organizationId,F.keyId))}catch{}})().catch(console.error)},teardown(){G?.unsubscribe(),G=null,Z.clear()}}}var YJ8="studio.ai-provider-keys.invalidate",Mr6=30000,Ir6=5000;var XJ8=()=>{};class XO1{options;subscription=null;onCancel=null;encoder=new TextEncoder;originId=crypto.randomUUID();constructor($){this.options=$}async start($){if($)this.onCancel=$;if(this.subscription)return;if(!this.onCancel)return;let Z=this.options.getConnection();if(!Z)return;let Q=new TextDecoder,Y=Z.subscribe("studio.decopilot.cancel");this.subscription=Y,(async()=>{for await(let X of Y)try{let J=JSON.parse(Q.decode(X.data));if(J.originId===this.originId)continue;this.onCancel?.(J.taskId)}catch{}})().catch(console.error)}broadcast($){if(/[.*>\s]/.test($)){console.warn("[NatsCancelBroadcast] Invalid threadId, skipping broadcast");return}this.onCancel?.($);try{let Z=this.options.getConnection();if(!Z)return;let Q=this.encoder.encode(JSON.stringify({taskId:$,originId:this.originId}));Z.publish("studio.decopilot.cancel",Q)}catch(Z){console.warn("[NatsCancelBroadcast] Publish failed (non-critical):",Z)}}async stop(){this.subscription?.unsubscribe(),this.subscription=null,this.onCancel=null}}var JJ8=($)=>{let Z;return()=>Z??=$()},JO1,GO1;var GJ8=D(()=>{k6();JO1=JJ8(()=>e1.createHistogram("decopilot.stream.encode_ms",{description:"Per-chunk JSON.stringify+encode time for decopilot stream",unit:"ms"})),GO1=JJ8(()=>e1.createCounter("decopilot.stream.published_chunks",{description:"Logical decopilot stream chunks published to JetStream",unit:"{chunks}"}))});function br6($=HJ8){return{name:pU,subjects:[`${pY1}.>`],storage:iH.StorageType.File,max_age:Sr6,max_bytes:_r6,max_msgs_per_subject:vr6,discard:iH.DiscardPolicy.Old,retention:iH.RetentionPolicy.Limits,duplicate_window:Cr6,num_replicas:$}}class FJ8{chunks=0;encodeMs=0;maxMs=0;bytes=0;windowStart=performance.now();constructor(){setInterval(()=>this.flush(),1e4).unref?.()}record($,Z){if(this.chunks++,this.encodeMs+=$,$>this.maxMs)this.maxMs=$;this.bytes+=Z}flush(){let $=performance.now(),Z=$-this.windowStart;if(this.chunks>0&&Z>0)console.warn(JSON.stringify({msg:"stream-encode-trace",windowMs:Math.round(Z),chunks:this.chunks,encodeMs:Math.round(this.encodeMs),pctOfLoop:+(this.encodeMs/Z*100).toFixed(1),maxChunkMs:+this.maxMs.toFixed(2),mbEncoded:+(this.bytes/1048576).toFixed(2)}));this.chunks=0,this.encodeMs=0,this.maxMs=0,this.bytes=0,this.windowStart=$}}function WJ8($){let Z=KJ8.headers();for(let[Q,Y]of Object.entries($))Z.set(Q,Y);return Z}function gr6($,Z){let Q=0;return{publish(Y,X,J,G){Y.publish(X,J,G?{headers:G}:void 0).catch((W)=>{if(Q++,kr6().add(1,{"org.id":Z??"unknown"}),Q===1||Q%100===0)console.warn(`[Decopilot] JetStream publish failed for thread ${$} (${Q} total):`,W)})},get errorCount(){return Q}}}function hr6($,Z){return $.info?.cluster?Z:1}function ur6($){if(!($ instanceof Error))return!1;if(/non-clustered/i.test($.message))return!0;return/replicas?\b/i.test($.message)&&/not supported|can ?not|exceed|insufficient|greater than/i.test($.message)}class WO1{options;js=null;jsm=null;constructor($){this.options=$}async init(){let $=this.options.getConnection();if(!$){console.log("[Decopilot] StreamBuffer.init skipped: NATS not connected yet");return}let Z=async(Y,X)=>{let J=br6(X);try{await Y.streams.info(pU),await Y.streams.update(pU,J)}catch(G){if(G instanceof Error&&G.message.includes("stream not found"))await Y.streams.add(J),await Y.streams.update(pU,J);else if(G instanceof Error&&/can ?not change.*storage|storage type/i.test(G.message))await Y.streams.delete(pU),await Y.streams.add(J);else throw G}},Q=await E8(async()=>{let Y=this.options.getJetStreamManager?await this.options.getJetStreamManager():await iH.jetstreamManager($),X=hr6($,HJ8);try{await Z(Y,X)}catch(J){if(X<=1||!ur6(J))throw J;console.warn(`[Decopilot] StreamBuffer: NATS rejected num_replicas=${X} (${J.message}); falling back to an unreplicated stream`),await Z(Y,1)}return Y},{maxAttempts:5,minTimeout:250,maxTimeout:4000,jitter:0.5,isRetriable:cd});this.js=this.options.getJetStream(),this.jsm=Q,console.log(`[Decopilot] StreamBuffer.init ${this.js?"ready":"degraded (js=null)"}`)}pump($,Z,Q,Y){let X=this.js;if(!X)return console.warn(`[Decopilot] pump: JetStream client unavailable for thread ${Z}; chunks NOT published to NATS`),Promise.resolve();let J=gr6(Z,Y),G=!1,W=()=>{if(G)return;G=!0;let H=zy$(Z);X.publish(H.subject,H.data).catch(()=>{})};Q.addEventListener("abort",W,{once:!0});let K=(H)=>{let F=performance.now(),U=tY1(H,{runId:Z}),N=performance.now()-F;JO1().record(N),GO1().add(1,{"org.id":Y??"unknown"}),yr6?.record(N,U.reduce((B,O)=>B+O.data.length,0));for(let B of U)J.publish(X,B.subject,B.data,B.headers?WJ8(B.headers):void 0)};return(async()=>{let H=$.getReader(),F=0,U=0,N;try{while(!0){let{done:B,value:O}=await H.read();if(B)break;if(K(O),U++,++F>=64)F=0,await new Promise((L)=>setImmediate(L))}}catch(B){N=B,console.warn(`[Decopilot] stream pump error for thread ${Z}:`,B?.message??B)}finally{if(H.releaseLock(),W(),fr6)console.warn(JSON.stringify({msg:"decopilot-stream-diag",event:"pump-done",taskId:Z,publishedChunks:U,publishErrors:J.errorCount}))}if(N!==void 0)throw N})()}async publishSerialized($,Z){try{return await E8(()=>$.publish(Z.subject,Z.data,{...Z.headers?{headers:WJ8(Z.headers)}:{},...Z.msgId?{msgID:Z.msgId}:{}}),{maxAttempts:6,minTimeout:250,maxTimeout:5000,jitter:0.5,isRetriable:cd}),!0}catch(Q){return console.error(`[Decopilot] publish failed after retries subject=${Z.subject}`,Q),!1}}async publishRawChunk($,Z,Q){let Y=this.js;if(!Y)return!1;let X=performance.now(),J=tY1(Z,{runId:$,dedup:Q});JO1().record(performance.now()-X),GO1().add(1);for(let G of J)if(!await this.publishSerialized(Y,G))return!1;return!0}async publishDone($,Z,Q){let Y=this.js;if(!Y)return!1;let X=Ey$({runId:$,fenceToken:Z,finalSeq:Q});return await this.publishSerialized(Y,X)}async createTailStream($,Z,Q){let Y=this.js;if(!Y)return console.warn(`[Decopilot] createTailStream: JetStream client unavailable for thread ${$}; no live tail`),null;let X=Q?.deliverPolicy==="new"?iH.DeliverPolicy.New:iH.DeliverPolicy.All,J=Q?.closeOnDone??!1,G=LE($),W;try{W=await E8(async()=>{return(await Y.consumers.get(pU,{filter_subjects:G,deliver_policy:X})).consume()},{maxAttempts:6,minTimeout:250,maxTimeout:5000,jitter:0.5,isRetriable:cd})}catch(L){return console.warn("[Decopilot] JetStream tail unavailable (non-critical):",L?.message??L),null}let F=ZM0({messages:async function*(){try{for await(let L of W)yield{subject:L.subject,data:L.data,headers:L.headers}}finally{W.stop()}}(),onCancel:()=>W.stop()}).pipeThrough(sq0()).pipeThrough(aq0()).getReader(),U=!1,N=()=>{if(U)return;U=!0;try{F.releaseLock()}catch{}},B=!1,O=()=>{if(B)return;B=!0,W.stop(),F.cancel().catch(()=>{}),N()};return Z?.addEventListener("abort",O,{once:!0}),new ReadableStream({async pull(L){for(;;){let{done:w,value:j}=await F.read();if(w){O(),L.close();return}let E=j;if(E.kind==="done"){if(J){O(),L.close();return}continue}L.enqueue(E.chunk);return}},cancel(){O()}})}purge($){if(!this.jsm)return;this.jsm.streams.purge(pU,{filter:LE($)}).catch(()=>{})}teardown(){this.js=null,this.jsm=null}}var iH,KJ8,Vr6=($)=>{let Z;return()=>Z??=$()},kr6,Sr6=86400000000000,Cr6=120000000000,_r6=4294967296,HJ8,vr6=500000,xr6,fr6,yr6;var UJ8=D(()=>{a$();oY1();QM0();eq0();k6();GJ8();iH=C(BK(),1),KJ8=C(zz(),1),kr6=Vr6(()=>e1.createCounter("decopilot.stream.publish_errors",{description:"Number of JetStream publish failures for decopilot stream chunks",unit:"{errors}"})),HJ8=Math.max(1,Number(process.env.DECOPILOT_STREAM_REPLICAS??3)||3);xr6=process.env.STREAM_ENCODE_TRACE==="1",fr6=process.env.DECOPILOT_STREAM_TRACE==="1";yr6=xr6?new FJ8:null});function K_0($,Z,Q,Y){if(!Y)return!1;return $.emit(Z,NF(Q,Y.status,{title:Y.title??void 0,virtualMcpId:Y.virtual_mcp_id??void 0,createdBy:Y.created_by??void 0,triggerId:Y.trigger_id??null,branch:Y.branch??null,harnessId:Y.harness_id??void 0,createdAt:Y.created_at,updatedAt:Y.updated_at})),!0}var NJ8=D(()=>{p8()});class KO1{storage;options;timer=null;constructor($,Z={}){this.storage=$;this.options=Z}start(){if(this.timer)return;let $=this.options.intervalMs??300000;this.timer=setInterval(()=>{this.runOnce()},$)}async runOnce(){let $=this.options.staleAfterMs??3600000;try{let Z=await this.storage.sweepAbandoned($);if(Z>0)console.log(`[async-research-sweeper] marked ${Z} stale jobs as abandoned`);return Z}catch(Z){return console.error("[async-research-sweeper] sweep failed",Z),0}}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}function lr6($,Z,Q={}){let Y=$.startsWith("thread:")?AH($,Q):$;return[...new Set([Z,Y].filter((X)=>!!X))]}async function HO1($,Z){let Q=Z.organizationId;try{let Y=await $.storage.taskBoard.linkedThreadIds(Z.id,Q);for(let X of Y){let J=await vU($,X);if(!J?.owner||!J?.name)continue;let G=await $.storage.threads.get(X),W=await dm($,{threadId:X,runBranch:G?.branch}),K=await y00($,Q,F41(J)).catch(()=>null);if(!K){console.warn(`[task-board] no credential for ${J.owner}/${J.name} \u2014 `+`cannot look up ${Z.id}'s change request by branch`);continue}let H=lr6(W,await PT0($,X),{flat:Uf(K.repo.provider)});for(let F of H){let U=await K.readForBranch(F).catch(()=>null);if(!U)continue;return await $.storage.taskBoard.linkPr({taskBoardItemId:Z.id,organizationId:Q,url:U.url,prNumber:U.number,repo:K.repo}),await $.storage.taskBoard.openReviewCycleIfInProgress(Z.id,Q),await O3(Q).catch(()=>{}),console.log(`[task-board] ${Z.id}: linked ${U.url} found on branch ${F}`),!0}}}catch(Y){console.error("[task-board] PR lookup by branch failed",Y)}return!1}var BJ8=D(()=>{Z7();xW();C7()});async function DJ8($,Z,Q){let Y=Z.organizationId;if(!uX(Z))return!1;if(!vf(Q))return!1;if(await $.storage.taskBoard.hasHumanRejectedDone(Z.id,Y))return!1;let X=await $.storage.organizationSettings.get(Y),J=wU(X?.flags),G=await $.storage.taskBoard.update(Z.id,Y,{status:J},Z.updatedBy);return await $5($,{taskBoardItemId:Z.id,action:"status_changed",actorId:null,data:{from:Z.status,to:J,reason:"pr_merged"}}),L8(Y,G),console.log(`[task-board-review-sweeper] ${Z.id}: linked PR already merged \u2014 moved to ${J}`),!0}var OJ8=D(()=>{x4();cY();Id();IH();P9()});function tr6($){return $ instanceof kX}function LJ8($,Z){return Z-$>=pr6}class FO1{taskBoard;contextFactory;billing;options;timer=null;running=!1;cursor=null;constructor($,Z,Q,Y={}){this.taskBoard=$;this.contextFactory=Z;this.billing=Q;this.options=Y}start(){if(this.timer)return;let $=this.options.intervalMs??cr6;this.timer=setInterval(()=>{this.runOnce()},$),this.timer.unref()}async runOnce(){if(this.running)return 0;this.running=!0;let $=0;try{let Z=this.options.batchSize??dr6,Q=this.options.itemIntervalMs??mr6,Y=new Date(Date.now()-Q),X=await this.taskBoard.listItemsPendingReview(Z,this.cursor,Y),J=X.at(-1);this.cursor=X.length===Z&&J?{updatedAt:J.updatedAt,id:J.id}:null;for(let{id:G,organizationId:W}of X)try{if(await this.reconcileItem(G,W,Y))$++}catch(K){console.error(`[task-board-review-sweeper] ${G} failed`,K)}await this.reapNeverStartedThreads(Z),$+=await this.dispatchDueRetries(Z),await this.reactToUnhandledFailures(Z),$+=await this.settleFinishedRunsWithoutPr(Z,Y)}catch(Z){console.error("[task-board-review-sweeper] sweep failed",Z)}finally{this.running=!1}return $}async reapNeverStartedThreads($){try{let Z=await this.taskBoard.failNeverStartedLinkedThreads($,new Date(Date.now()-b71),ZY1);for(let Q of Z)console.warn(`[task-board-review-sweeper] failed never-started thread ${Q.threadId} on ${Q.itemId}`)}catch(Z){console.error("[task-board-review-sweeper] reaping failed",Z)}}async reactToUnhandledFailures($){let Z=await this.taskBoard.listItemsStuckAfterFailure($,new Date(Date.now()-nr6));for(let{id:Q,organizationId:Y,threadId:X}of Z)try{console.warn(`[task-board-review-sweeper] reacting to an unhandled failure on ${Q}`),await aQ1(this.taskBoard,X,Y),await eQ1(this.taskBoard,this.billing,X,Y)}catch(J){console.error(`[task-board-review-sweeper] unhandled-failure reaction for ${Q} failed`,J)}}async settleFinishedRunsWithoutPr($,Z){let Q=0,Y=await this.taskBoard.listItemsFinishedWithoutPr($,Z);for(let{id:X,organizationId:J,finishedAt:G}of Y)try{if(!await this.taskBoard.claimSweep(X,J,Z))continue;let W=await this.taskBoard.getById(X,J);if(!W||W.status!==R$.progress||uX(W)||W.assigneeId!==R8)continue;let K=await this.contextFactory(J,W.assignedBy??W.createdBy);if(!K)continue;if(await HO1(K,W)){if(await this.taskBoard.clearSweepBudget(X,J),await this.reconcileItem(X,J,Z))Q++;continue}if(!LJ8(G.getTime(),Date.now()))continue;let H="the run finished without opening a pull request \u2014 there is "+"nothing for a reviewer to review",F=await this.taskBoard.advanceToReviewIfInProgress(X,J,W.updatedBy);if(!F)continue;await this.taskBoard.recordActivity({taskBoardItemId:X,action:"status_changed",actorId:null,data:{from:R$.progress,to:R$.review,reason:H}}).catch(()=>{}),L8(J,F),await VH(K,F,H)}catch(W){console.error(`[task-board-review-sweeper] settling finished run on ${X} failed`,W)}return Q}async dispatchDueRetries($){let Z=0,Q=await this.taskBoard.listItemsDueForRetry($,new Date);for(let{id:Y,organizationId:X,attempts:J}of Q)try{if(!await this.taskBoard.claimDueRetry(Y,X,new Date))continue;let G=await this.taskBoard.getById(Y,X);if(!G||G.status!==R$.progress||G.assigneeId!==R8)continue;let W=await this.contextFactory(X,G.assignedBy??G.createdBy);if(!W)continue;await kH(W,G,{runClass:"retry"}),Z++,console.warn(`[task-board-review-sweeper] re-dispatched ${Y} after a failure (attempt ${J})`)}catch(G){if(console.error(`[task-board-review-sweeper] retry dispatch for ${Y} failed`,G),tr6(G)){await this.returnToTodo(Y,X,G instanceof Error?G.message:String(G));continue}await this.taskBoard.scheduleRunRetry(Y,X,J,new Date(Date.now()+ir6)).catch((W)=>console.error(`[task-board-review-sweeper] re-arming ${Y} failed`,W))}return Z}async returnToTodo($,Z,Q){try{let Y=await this.taskBoard.getById($,Z);if(!Y||Y.status!==R$.progress)return;let X=await this.taskBoard.returnToTodoAfterFailure($,Z,Y.updatedBy);if(!X)return;await this.taskBoard.recordActivity({taskBoardItemId:$,action:"status_changed",actorId:null,data:{from:"in_progress",to:"todo",reason:Q}}).catch(()=>{}),L8(Z,X)}catch(Y){console.error(`[task-board-review-sweeper] returning ${$} to todo failed`,Y)}}async handOffReviewWithoutPr($,Z){let Q=await this.taskBoard.listActivity(Z.id,Z.organizationId);if(!LJ8(JD(Q,Z.reviewCycleStartedAt),Date.now()))return;await VH($,Z,"no pull request is linked to this task \u2014 there is nothing for a "+"reviewer to review")}async reconcileItem($,Z,Q){if(!await this.taskBoard.claimSweep($,Z,Q))return!1;let Y=await this.taskBoard.getById($,Z);if(!Y)return!1;if(!uX(Y))return!1;let X=Y.assigneeId===R8,J=await this.taskBoard.listPrs($,Z),G=await this.contextFactory(Z,Y.assignedBy??Y.createdBy);if(!G)return!1;if(J.length===0){if(await HO1(G,Y))J=await this.taskBoard.listPrs($,Z);if(J.length===0){if(X)await this.handOffReviewWithoutPr(G,Y);return!1}}let W=await Promise.all(J.map(async(K)=>({...K,...await Sd(Z,K)})));if(W.every((K)=>K.state===null))console.warn(`[task-board-review-sweeper] ${$}: no live PR state from GitHub (${W.length} PR(s)) \u2014 proceeding on unknown`);if(await DJ8(G,Y,W))return!0;if(await Tg$(G,Y))return!0;if(await this.resolveConflictFromSweep(G,Y,W))return!0;if(!X)return!1;if(!tQ1(W))return!1;return await Vd(G,Y,{previewMatchesHead:oQ1(W)}),!0}async resolveConflictFromSweep($,Z,Q){let Y=Q.find((X)=>X.state!=="closed"&&X.conflict===!0);if(!Y)return!1;return await NE($,Z.organizationId,Z,{pr:{number:Y.number,url:Y.url},conflict:!0}).catch((X)=>{return console.error("[task-board-review-sweeper] conflict resolve failed",X),!1})}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}var cr6=60000,mr6=300000,dr6=50,ir6=60000,pr6=900000,nr6=120000;var wJ8=D(()=>{x4();Bq0();BJ8();dU();U80();IH();OJ8();P9();MW();QY1();C7();y$0();kd()});import{readdir as or6,rm as H_0}from"fs/promises";import{join as F_0}from"path";async function U_0($){let Z=new Date;Z.setUTCDate(Z.getUTCDate()-rr6),Z.setUTCHours(0,0,0,0);let Q=0;try{let Y=await sy($);for(let X of Y)if(/^\d{4}$/.test(X))Q+=await jJ8($,X,Z);else if(!X.startsWith(".")){let J=F_0($,X),G=await sy(J);for(let K of G){if(!/^\d{4}$/.test(K))continue;Q+=await jJ8(J,K,Z)}if((await sy(J)).length===0)await H_0(J,{recursive:!0,force:!0})}}catch(Y){console.warn("monitoring retention cleanup failed:",Y)}return Q}async function jJ8($,Z,Q){let Y=0,X=F_0($,Z),J=await sy(X);for(let W of J){if(!/^\d{2}$/.test(W))continue;let K=F_0(X,W),H=await sy(K);for(let U of H){if(!/^\d{2}$/.test(U))continue;let N=new Date(`${Z}-${W}-${U}T00:00:00Z`);if(isNaN(N.getTime()))continue;if(N<Q){let B=F_0(K,U);await H_0(B,{recursive:!0,force:!0}),Y++}}if((await sy(K)).length===0)await H_0(K,{recursive:!0,force:!0})}if((await sy(X)).length===0)await H_0(X,{recursive:!0,force:!0});return Y}async function sy($){try{return(await or6($)).filter((Q)=>!Q.startsWith("."))}catch{return[]}}var rr6=30;var UO1=()=>{};import{DBOS as NO1,SchedulerMode as sr6}from"@dbos-inc/dbos-sdk";async function er6(){let $=[JK(),Gg(),MN()],Z=0;for(let Q of $)try{Z+=await U_0(Q)}catch(Y){console.error("[monitoring-retention] cleanup failed:",Y)}return console.log(`[monitoring-retention] deleted ${Z} day-dir(s) across ${$.length} signal dir(s)`),{deleted:Z,dirs:$.length}}async function $s6($,Z){await NO1.runStep(()=>er6(),{name:"monitoringRetention"})}function zJ8(){if(EJ8)return;EJ8=!0;let $=NO1.registerWorkflow($s6,{name:"monitoringRetentionWorkflow"});NO1.registerScheduled($,{name:"monitoringRetentionWorkflow",crontab:ar6,mode:sr6.ExactlyOncePerIntervalWhenActive})}var ar6="23 4 * * *",EJ8=!1;var PJ8=D(()=>{_3();UO1()});function AJ8($){return async(Z,Q)=>{let Y=await $.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",Q).where("member.organizationId","=",Z).executeTakeFirst();if(!Y)return console.warn(`[automationContextFactory] User ${Q} not found in org ${Z} \u2014 returning null`),null;let X=await cQ.create();X.auth.user={id:Q,role:Y.role},X.organization={id:Y.orgId,slug:Y.orgSlug,name:Y.orgName};let J=await HA($.db,Z,Y.role);return X.boundAuth=vU1({auth:X.authInstance,headers:new Headers,role:Y.role,permissions:J,userId:Q}),X.access=new oP(Q,void 0,X.boundAuth,Y.role,"self"),UE(X,{id:Y.orgId,slug:Y.orgSlug}),X}}var TJ8=D(()=>{bK();DU()});function Zs6(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function Qs6(){return{services:Zs6(),migrationsStatus:"pending",serverUrl:null,logs:[]}}function Xs6(){for(let $ of Ys6)$()}function RJ8($){let Z=[...BO1.logs,$];BO1={...BO1,logs:Z.length>500?Z.slice(-500):Z},Xs6()}function DO1(){return Js6}var BO1,Ys6,Js6=!1;var OO1=D(()=>{BO1=Qs6(),Ys6=new Set});import{EventEmitter as Gs6}from"events";var LO1;var qJ8=D(()=>{OO1();LO1=new Gs6;LO1.on("request",($)=>{RJ8($)})});function MJ8(){return async($,Z)=>{let Q=Date.now(),Y=$.req.method,X=$.req.path;if(X==="/api/auth/get-session"||X.includes("favicon")){await Z();return}let J="",G=!1;if(X.startsWith("/mcp")&&Y==="POST"){G=!0;try{if($.req.header("Content-Type")?.includes("application/json")){let N=await $.req.raw.clone().json();if(N.method==="tools/call"&&N.params?.name){let B=gp(N.params.name),O=N.params.arguments||{},L=Object.keys(O).map((j)=>gp(j)),w=L.length>0?L.slice(0,3).join(",")+(L.length>3?"\u2026":""):"";J=`${W9.tool}${B}${W9.dim}(${w})${W9.reset}`}else if(N.method)J=`${W9.dim}${gp(N.method)}${W9.reset}`}}catch{}}let W=gp(X);if(X.startsWith("/mcp/conn_")){let F=X.split("/")[2]??"";W=`/mcp/${W9.mcp}${gp(F.slice(0,12))}\u2026${W9.reset}`}else if(X==="/mcp")W=`${W9.mcp}/mcp${W9.reset}`;else if(X==="/mcp/registry")W=`${W9.mcp}/mcp/registry${W9.reset}`;let K=Ks6(Y),H=G?"\u25C0":"\u2190";if(!DO1())console.log(`${W9.dim}${H}${W9.reset} ${K}${Y}${W9.reset} ${W}${J?` ${J}`:""}`);try{await Z()}finally{let F=Date.now()-Q,U=$.res.status,N=Ws6(U),B=F<1000?`${F}ms`:`${(F/1000).toFixed(1)}s`,O=G?"\u25B6":"\u2192";if(!DO1())console.log(`${W9.dim}${O}${W9.reset} ${K}${Y}${W9.reset} ${W}${J?` ${J}`:""} ${N}${U}${W9.reset} ${W9.duration}${B}${W9.reset}`);LO1.emit("request",{method:Y,path:gp(X),status:U,duration:F,timestamp:new Date})}}}var W9,Ws6=($)=>{if($>=500)return W9.serverError;if($>=400)return W9.clientError;if($>=300)return W9.redirect;return W9.ok},Ks6=($)=>{return W9[$]||W9.reset},gp=($)=>{return $.replace(/\r/g,"").replace(/\n/g,"").replace(/\x1b\[[0-9;]*m/g,"").replace(/[\x00-\x1f\x7f-\x9f]/g,"")};var IJ8=D(()=>{OO1();qJ8();W9={reset:"\x1B[0m",dim:"\x1B[2m",bold:"\x1B[1m",GET:"\x1B[36m",POST:"\x1B[33m",PUT:"\x1B[35m",DELETE:"\x1B[31m",ok:"\x1B[32m",redirect:"\x1B[36m",clientError:"\x1B[33m",serverError:"\x1B[31m",mcp:"\x1B[35m",tool:"\x1B[96m",duration:"\x1B[90m"}});import{createHmac as CJ8}from"crypto";import{mkdir as Hs6,readdir as Fs6,rm as VJ8,stat as _J8}from"fs/promises";import{join as jO1,relative as Us6}from"path";import{z as Q8}from"zod";function bJ8($){let Z=$.replace(/[^a-zA-Z0-9_-]/g,"_");return jO1(Ns6,Z)}function xJ8($){return $.replace(/^\/+/,"").replace(/\.\./g,"")}function wO1($,Z){let Q=bJ8($),Y=xJ8(Z);return jO1(Q,Y)}function Bs6($,Z,Q,Y){let X=E0().encryptionKey||"dev-secret",J=`${$}:${Z}:${Q}:${Y}`;return CJ8("sha256",X).update(J).digest("hex")}function SJ8($,Z,Q,Y,X){let J=Math.floor(Date.now()/1000)+Y,G=Bs6(Z,Q,J,X),W=new URL(`/api/dev-assets/${Z}/${xJ8(Q)}`,$);return W.searchParams.set("expires",J.toString()),W.searchParams.set("signature",G),W.searchParams.set("method",X),W.toString()}function fJ8($,Z,Q){let Y=`${$}:${Z.getTime()}:${Q}`;return`"${CJ8("md5","etag").update(Y).digest("hex")}"`}async function yJ8($,Z,Q,Y,X){try{let J=await Fs6($,{withFileTypes:!0});for(let G of J){let W=jO1($,G.name),H=Us6(Z,W).replace(/\\/g,"/");if(Q&&!H.startsWith(Q))continue;if(G.isDirectory())if(Y){let F=H+"/";if(!Q||F.startsWith(Q)){if(!(Q?H.slice(Q.length):H).includes("/"))X.commonPrefixes.add(F)}}else await yJ8(W,Z,Q,Y,X);else if(G.isFile()){if(Y&&Q){let F=H.slice(Q.length);if(F.includes(Y)){let U=F.indexOf(Y),N=Q+F.slice(0,U+1);X.commonPrefixes.add(N);continue}}try{let F=await _J8(W);X.objects.push({key:H,size:F.size,lastModified:F.mtime.toISOString(),etag:fJ8(W,F.mtime,F.size)})}catch{}}}}catch{}}function gJ8($,Z){let Y=J0($).id;return[{name:"LIST_OBJECTS",description:"List objects in the local assets directory with pagination support",inputSchema:Q8.object({prefix:Q8.string().optional(),maxKeys:Q8.number().optional().default(1000),continuationToken:Q8.string().optional(),delimiter:Q8.string().optional()}),outputSchema:Q8.object({objects:Q8.array(Q8.object({key:Q8.string(),size:Q8.number(),lastModified:Q8.string(),etag:Q8.string()})),nextContinuationToken:Q8.string().optional(),isTruncated:Q8.boolean(),commonPrefixes:Q8.array(Q8.string()).optional()}),handler:async(X)=>{let J=X,G=J.prefix||"",W=J.maxKeys??1000,K=J.delimiter,H=J.continuationToken,F=bJ8(Y);await Hs6(F,{recursive:!0});let U={objects:[],commonPrefixes:new Set};await yJ8(F,F,G,K,U),U.objects.sort((w,j)=>w.key.localeCompare(j.key));let N=0;if(H){if(N=U.objects.findIndex((w)=>w.key>H),N===-1)N=U.objects.length}let B=U.objects.slice(N,N+W),O=N+W<U.objects.length,L=O?B[B.length-1]?.key:void 0;return{objects:B,isTruncated:O,nextContinuationToken:L,commonPrefixes:Array.from(U.commonPrefixes).sort()}}},{name:"GET_OBJECT_METADATA",description:"Get metadata for a file in the local assets directory",inputSchema:Q8.object({key:Q8.string()}),outputSchema:Q8.object({contentType:Q8.string().optional(),contentLength:Q8.number(),lastModified:Q8.string(),etag:Q8.string(),metadata:Q8.record(Q8.string(),Q8.string()).optional()}),handler:async(X)=>{let J=X,G=wO1(Y,J.key),W=await _J8(G);return{contentType:_N1(J.key),contentLength:W.size,lastModified:W.mtime.toISOString(),etag:fJ8(G,W.mtime,W.size)}}},{name:"GET_PRESIGNED_URL",description:"Generate a presigned URL for downloading a file from local storage",inputSchema:Q8.object({key:Q8.string(),expiresIn:Q8.number().optional()}),outputSchema:Q8.object({url:Q8.string(),expiresIn:Q8.number()}),handler:async(X)=>{let J=X,G=oD(J.expiresIn,kJ8);return{url:SJ8(Z,Y,J.key,G,"GET"),expiresIn:G}}},{name:"PUT_PRESIGNED_URL",description:"Generate a presigned URL for uploading a file to local storage",inputSchema:Q8.object({key:Q8.string(),expiresIn:Q8.number().optional(),contentType:Q8.string().optional()}),outputSchema:Q8.object({url:Q8.string(),expiresIn:Q8.number()}),handler:async(X)=>{let J=X,G=oD(J.expiresIn,kJ8);return{url:SJ8(Z,Y,J.key,G,"PUT"),expiresIn:G}}},{name:"DELETE_OBJECT",description:"Delete a single file from local storage",inputSchema:Q8.object({key:Q8.string()}),outputSchema:Q8.object({success:Q8.boolean(),key:Q8.string()}),handler:async(X)=>{let J=X,G=wO1(Y,J.key);try{return await VJ8(G),{success:!0,key:J.key}}catch{return{success:!1,key:J.key}}}},{name:"DELETE_OBJECTS",description:"Delete multiple files from local storage",inputSchema:Q8.object({keys:Q8.array(Q8.string()).max(1000)}),outputSchema:Q8.object({deleted:Q8.array(Q8.string()),errors:Q8.array(Q8.object({key:Q8.string(),message:Q8.string()}))}),handler:async(X)=>{let J=X,G=[],W=[];return await Promise.all(J.keys.map(async(K)=>{let H=wO1(Y,K);try{await VJ8(H),G.push(K)}catch(F){W.push({key:K,message:F instanceof Error?F.message:"Unknown error"})}})),{deleted:G,errors:W}}}]}async function EO1($,Z,Q){let Y=gJ8(Z,Q),X=new Xw({name:"dev-assets-mcp",version:"1.0.0"},{capabilities:{tools:{}},jsonSchemaValidator:vZ});for(let G of Y){let W="shape"in G.inputSchema?G.inputSchema.shape:Q8.object({}).shape,K=G.outputSchema&&"shape"in G.outputSchema?G.outputSchema.shape:Q8.object({}).shape;X.registerTool(G.name,{description:G.description??"",inputSchema:W,outputSchema:K,annotations:G.annotations,_meta:G._meta},async(H)=>{try{let F=await G.handler(H);return{content:[{type:"text",text:JSON.stringify(F)}],structuredContent:F}}catch(F){return{content:[{type:"text",text:`Error: ${F.message}`}],isError:!0}}})}let J=new z3({enableJsonResponse:$.headers.get("Accept")?.includes("application/json")??!1});return await X.connect(J),mW(X,J,$,"mcp:dev-assets")}async function hJ8($,Z,Q,Y){let J=gJ8(Q,Y).find((G)=>G.name===$);if(!J)return{content:[{type:"text",text:`Tool not found: ${$}`}],isError:!0};try{let G=await J.handler(Z);return{content:[{type:"text",text:JSON.stringify(G)}]}}catch(G){return{content:[{type:"text",text:G instanceof Error?G.message:String(G)}],isError:!0}}}var Ns6="./data/assets",kJ8=3600,vJ8,uJ8;var lJ8=D(()=>{X$();od();J8();IJ0();td();NJ();rD();rS0();vJ8=new Z1;vJ8.all("/",async($)=>{let Z=$.get("studioContext"),Q=new URL($.req.url),Y=`${Q.protocol}//${Q.host}`;return EO1($.req.raw,Z,Y)});uJ8=vJ8});var cJ8={};$6(cJ8,{mountDevRoutes:()=>Ds6});function Ds6($,Z){$.all("/mcp/:connectionId{.*_dev-assets$}",Z,async(Y)=>{let X=Y.get("studioContext"),J=new URL(Y.req.url),G=`${J.protocol}//${J.host}`;return EO1(Y.req.raw,X,G)}),$.all("/mcp/:connectionId{.*_dev-assets$}/call-tool/:toolName",Z,async(Y)=>{let X=Y.get("studioContext"),J=new URL(Y.req.url),G=`${J.protocol}//${J.host}`,W=Y.req.param("toolName");if(!W)return Y.json({error:"Missing tool name"},400);let K=await Y.req.json(),H=await hJ8(W,K,X,G);if(H.isError)return Y.json(H.content,500);return Y.json(H.content)}),$.use("/mcp/dev-assets",Z),$.route("/mcp/dev-assets",uJ8);let Q=new Z1;Q.use("*",mH({mountPath:"/api/dev-assets"})),Q.route("/",oS0({orgFromPath:!1})),$.route("/api/dev-assets",Q)}var mJ8=D(()=>{J8();qN1();rS0();lJ8()});var eJ8={};$6(eJ8,{watchHandler:()=>aJ8,resolveCorsOrigin:()=>rJ8,isSsoExemptPath:()=>tJ8,isAllowedOAuthRedirectUri:()=>sJ8,createApp:()=>Rs6});import{readFileSync as Os6}from"fs";import{PrometheusSerializer as Ls6}from"@opentelemetry/exporter-prometheus";import{DBOS as OO}from"@dbos-inc/dbos-sdk";import{oAuthDiscoveryMetadata as Es6,oAuthProtectedResourceMetadata as zs6}from"better-auth/plugins";async function ws6($){let Z=$.connect(),Q;try{Q=await Promise.race([Z,iJ8(dJ8)])}catch{return Z.then((Y)=>Y.release(!0)).catch(()=>{}),!1}try{return await Promise.race([Q.query("SELECT 1"),iJ8(dJ8)]),Q.release(),!0}catch{return Q.release(!0),!1}}function iJ8($){return new Promise((Z,Q)=>setTimeout(()=>Q(Error("pg health-check timeout")),$))}function tJ8($){return $.startsWith("/api/org-sso/")||/^\/api\/[^/]+\/sso\//.test($)||$.startsWith("/api/auth/")||$.startsWith("/api/tools/management")||$.startsWith("/oauth-proxy/")||/^\/api\/[^/]+\/oauth-proxy\//.test($)||$.startsWith(`${xS0}/`)||$.startsWith(`${kS0}/`)}function oJ8($){return $==="local.studio.decocms.com"}function rJ8($,{baseUrl:Z,requestOrigin:Q}){let Y;try{Y=new URL($).hostname}catch{return null}if(Y==="localhost"||Y==="127.0.0.1")return $;if(oJ8(Y))return $;let X=Z??Q;try{if(new URL(X).origin===$)return $}catch{}return null}function sJ8($,Z){return $.origin===new URL(Z).origin||$.hostname==="localhost"||oJ8($.hostname)}async function Rs6($={}){let Z=$.database??D8(),Q=!1;_5.stop().catch((K0)=>{console.error("[SSEHub] Error stopping previous broadcast (HMR cleanup):",K0)});let Y,X,J,G,W=new QO1,K,H,F,U=null;if($.disableNats)K=YO1(),Y={get:async()=>null,set:async()=>{},invalidate:async()=>{},teardown:()=>{}},X=null,J=null,G=new z80,H={start:async()=>{},broadcast:()=>{},stop:async()=>{}},F={init:async()=>{},pump:(K0)=>{return(async()=>{let H0=K0.getReader();try{while(!0){let{done:R0}=await H0.read();if(R0)break}}catch{}finally{H0.releaseLock()}})()},publishRawChunk:async()=>!1,publishDone:async()=>!1,createTailStream:async()=>null,purge:()=>{},teardown:()=>{}};else{U=$J8();let K0=E0().natsCredsPath,H0;if(K0)try{H0=Os6(K0,"utf8")}catch(w8){console.error(`[app] failed to read NATS_CREDS at ${K0}; connecting anonymously`,w8)}U.init(E0().natsUrls,H0?{creds:H0}:void 0);let R0=$$1()?new y11({getJetStream:()=>U.getJetStream()}):null;R0?.init().catch(()=>{}),Y=R0;let A0=new r91({getJetStream:()=>U.getJetStream()});A0.init().catch(()=>{}),X=A0;let D1=new xf(cQ1,{getJetStream:()=>U.getJetStream()}),x$=new xf(g$0,{getJetStream:()=>U.getJetStream()});D1.init().catch(()=>{}),x$.init().catch(()=>{}),J={reads:D1,cards:x$};let i$=new CJ1({getJetStream:()=>U.getJetStream()});i$.init().catch(()=>{}),G=i$,K=YO1({getConnection:()=>U.getConnection()}),H=new XO1({getConnection:()=>U.getConnection()}),F=new WO1({getConnection:()=>U.getConnection(),getJetStream:()=>U.getJetStream()}),S48(U),U.onReady(()=>{R0?.init().catch((w8)=>{console.error("[McpListCache] Deferred init failed:",w8)}),A0.init().catch((w8)=>{console.error("[SkillCatalogCache] Deferred init failed:",w8)}),D1.init().catch((w8)=>{console.error("[PrReadCache] Deferred init failed:",w8)}),x$.init().catch((w8)=>{console.error("[PrCardCache] Deferred init failed:",w8)}),i$.init().catch((w8)=>{console.error("[ConnectionCircuitStore] Deferred init failed:",w8)}),K.start(),vN$(()=>U.getConnection()),F.init().catch((w8)=>{console.warn("[Decopilot] StreamBuffer init failed (late-join disabled):",w8)})})}if(Qz)await Qz();g11(Y),a91(X),mQ1(J),_J1(G);let B={storage:new ph(Z.db),sseHub:_5,onThreadFinished:async(K0,H0)=>_d(new D3(Z.db),K0,H0,new kG(Z.db))},O=new ZX1(B),L=new u40(Z.db),w=new KO1(L);w.start(),Pg$(H),H.start((K0)=>{uq0(K0),O.execute({type:"CANCEL",taskId:K0}).catch((H0)=>{console.error("[Decopilot] CancelBroadcast execute failed:",H0)})}).catch((K0)=>{console.error("[Decopilot] CancelBroadcast start failed:",K0)}),U?.onReady(()=>{H.start().catch((K0)=>{console.error("[CancelBroadcast] Deferred start failed:",K0)})});let j=()=>U?.getConnection()??null;zN1(j),U?.onReady(()=>zN1(j)),BG1(j),U?.onReady(()=>BG1(j)),F.init().catch((K0)=>{console.warn("[Decopilot] StreamBuffer init failed, attach/late-join disabled:",K0)}),Qz=async()=>{await O.stopAll(),O.dispose(),w.dispose(),H.stop().catch(()=>{}),i68(),F.teardown(),Y?.teardown(),X?.teardown(),J?.reads.teardown(),J?.cards.teardown(),W.teardown(),K.teardown(),bN$(),G.teardown(),g11(null),a91(null),mQ1(null),_J1(null)};let E=new Z1;if(E.use("*",VJ1({enabled:(K0)=>Qp(K0,"debug")==="1"})),E.use("*",v_0),E.use("/*",q48({origin:(K0,H0)=>rJ8(K0,{baseUrl:E0().baseUrl,requestOrigin:new URL(H0.req.url).origin}),credentials:!0,allowMethods:["GET","POST","PUT","DELETE","OPTIONS"],allowHeaders:["Content-Type","Authorization","mcp-protocol-version"],exposeHeaders:["WWW-Authenticate"]})),E.use("*",async(K0,H0)=>{if(await H0(),K0.req.path.includes("/files/"))return;if(K0.req.path.includes("/fs/")&&K0.req.path.endsWith("/read"))return;K0.header("X-Frame-Options","DENY"),K0.header("Content-Security-Policy","frame-ancestors 'none'")}),!E0().noTui)E.use("*",MJ8());E.use("*",async(K0,H0)=>{if(await H0(),tp(K0.req.path))return;if(K0.res.status>=500){let A0=await K0.res.clone().text();console.error(`[5xx Response] ${K0.req.method} ${K0.req.path} - ${K0.res.status}:`,A0)}}),E.get(aY.HEALTH,(K0)=>{if(Q)return K0.json({status:"shutting_down"},503);return K0.json({status:"ok"})}),E.get(aY.HEALTH_LIVE,(K0)=>{return K0.json({status:"ok"})}),E.get(aY.HEALTH_READY,async(K0)=>{if(Q)return K0.json({status:"shutting_down"},503);let H0={};if(H0.postgres={status:await ws6(Z.pool)?"up":"down"},U)H0.nats=U.isConnected()?{status:"up"}:{status:"down"};else H0.nats={status:"down"};let R0=H0.postgres.status==="up",A0=R0?200:503;return K0.json({status:R0?"ready":"not_ready",services:H0},A0)}),E.get(aY.METRICS,async(K0)=>{try{let H0=await y_0.collect(),R0=js6.serialize(H0.resourceMetrics);return K0.text(R0,200,{"Content-Type":"text/plain; version=0.0.4; charset=utf-8"})}catch(H0){return console.error("Failed to collect metrics:",H0),K0.text("# Error collecting metrics",500)}});let z=1800000;E.get(`${aY.DBOS_QUEUE_DEPTH_PREFIX}:queueName`,async(K0)=>{let H0=K0.req.param("queueName");if(!Ps6.has(H0))return K0.json({error:`Unknown queue: ${H0}`},404);let[R0,A0]=await Promise.all([OO.listQueuedWorkflows({queueName:H0,status:"ENQUEUED",loadInput:!1,loadOutput:!1}),OO.listQueuedWorkflows({queueName:H0,status:"PENDING",loadInput:!1,loadOutput:!1,dequeuedAfter:new Date(Date.now()-z).toISOString()})]);return K0.json({queue_length:R0.length,in_flight:A0.length})}),E.route("/api/config",HX8),E.route("/api/_reports",PX8),E.route("/api/_stripe",pD1),E.route("/api/_github",RX8({taskBoard:()=>i,contextFactory:()=>g})),E.route("/api/_git",Fp);let T={db:Z.db,encryptionKey:E0().encryptionKey};E.route("/api/_jira",vX8(T)),E.route("/api/_jira",VX8(T)),E.route("/report",jX8($.clientDir)),E.route("/api/auth/custom",r48),E.route("/api/auth/desktop",$68),E.all("/api/auth/admin/*",_68),E.all("/api/auth/*",async(K0)=>{return await x8.handler(K0.req.raw)});let A=Q88();A.use("/.well-known/oauth-protected-resource/mcp/:connectionId",e40),A.use("/mcp/:connectionId/.well-known/oauth-protected-resource",e40),E.route("/",A),E.get("/.well-known/oauth-protected-resource/api/:org/mcp/:connectionId",g40),E.route("/",W88()),E.use("/oauth-proxy/:connectionId/*",e40),E.all("/oauth-proxy/:connectionId/*",pJ8);let P=async(K0)=>{let R0=await As6()(K0.req.raw),A0=await R0.json();return Response.json(A0,R0)};E.use("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",e40),E.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",P);let q=async(K0)=>{let R0=await Ts6()(K0.req.raw),A0=await R0.json();return Response.json(A0,R0)};E.get("/.well-known/oauth-authorization-server/*/:gateway?/:connectionId?",q);let x=I48({ttlMs:120000}),_=await a88({db:Z.db,auth:x8,encryption:{key:E0().encryptionKey},observability:{tracer:RO,meter:e1},modelListCache:W,providerKeyCache:K,memberRoleCache:x});cQ.set(_),Lp1({db:Z.db,baseUrl:m5()}),e88({db:Z.db}),Y48({db:Z.db}),U48({db:Z.db}),SX8({db:Z.db,encryptionKey:E0().encryptionKey}),ev$({db:Z.db}),w48({db:Z.db}),Ab$({db:Z.db});let V=OX0(Z.db),y=new Vr(Z.db),g=AJ8({db:Z.db});RJ1({storage:V,studioContextFactory:g}),UX1({systemDatabaseUrl:Js0(E0().databaseUrl,E0().databasePgSsl),studioContextFactory:g,deps:{runRegistry:O,cancelBroadcast:H,streamBuffer:F,sseHub:_5}}),XX1({dispatchRunFn:Ny$,studioContextFactory:g,deps:{runRegistry:O,cancelBroadcast:H,streamBuffer:F,sseHub:_5}});let l=new ph(Z.db),i=new D3(Z.db),p=new kG(Z.db),U0=new FO1(i,g,p);if(E0().taskBoardReviewSweeperEnabled){U0.start();let K0=Qz;Qz=async()=>{await K0?.(),U0.dispose()}}vy$({getJetStream:()=>U?.getJetStream()??null,getJetStreamManager:async()=>{let K0=U?.getConnection();return K0?await nJ8.jetstreamManager(K0):null},messageParts:l.messageParts(),resolveRun:async(K0)=>{let H0=await Z.db.selectFrom("threads").select(["organization_id","created_by","message_storage_version","status","run_fence_token","title"]).where("id","=",K0).executeTakeFirst();return H0?{orgId:H0.organization_id,createdBy:H0.created_by,version:H0.message_storage_version??1,status:H0.status,runFenceToken:H0.run_fence_token,title:H0.title??null}:null},completeRunIfNotCompleted:async(K0,H0)=>{let R0=await l.completeRunIfNotCompleted(K0,H0);if(K_0(_5,H0,K0,R0),R0)await _d(i,K0,H0,p);return R0},markRunRequiresAction:async(K0,H0)=>{let R0=await l.requiresActionIfInProgress(K0,H0);return K_0(_5,H0,K0,R0),R0},markRunFailed:async(K0,H0,R0,A0)=>{let D1=await l.markRunFailed(K0,H0,R0,A0);if(K_0(_5,H0,K0,D1),D1)await _d(i,K0,H0,p);return D1},clearSynthesizedError:async(K0,H0)=>{await l.messageParts().replaceMessageParts(K0,OE(K0,H0),[])},persistTitle:(K0,H0,R0)=>l.update(K0,H0,{title:R0}),onTitleUpdated:async({runId:K0,orgId:H0,title:R0})=>{let A0=await l.get(K0,H0).catch(()=>null);_5.emit(H0,NF(K0,A0?.status??"in_progress",{title:R0,virtualMcpId:A0?.virtual_mcp_id??void 0,createdBy:A0?.created_by,triggerId:A0?.trigger_id,branch:A0?.branch??null,harnessId:A0?.harness_id??void 0,createdAt:A0?.created_at,updatedAt:A0?.updated_at}))},bumpProgress:async({runId:K0,orgId:H0})=>{await l.bumpProgress(K0,H0)},recordCompleted:async({runId:K0,orgId:H0,distinctId:R0,usage:A0})=>{f1.capture({distinctId:R0,event:"chat_message_completed",groups:{organization:H0},properties:{organization_id:H0,thread_id:K0,transport:"projector",input_tokens:A0.inputTokens,output_tokens:A0.outputTokens,total_tokens:A0.totalTokens}})},recordFailed:async({runId:K0,orgId:H0,distinctId:R0,reason:A0,kind:D1})=>{f1.capture({distinctId:R0,event:"chat_message_failed",groups:{organization:H0},properties:{organization_id:H0,thread_id:K0,transport:"projector",error_category:D1,error_message:A0}})},purgeRun:async(K0)=>{F.purge(K0)}}),gf$({studioContextFactory:g,systemDatabaseUrl:Js0(E0().databaseUrl,E0().databasePgSsl),streamBuffer:F}),zJ8(),wp1(),Z48(),J48(),B48(),_X8(),Xb$(),E48(),Tb$(),MX8();let v0=async(K0,H0,R0)=>{let A0=await V.findById(K0,H0);if(!A0)throw Error("Automation not found");return IJ1({automationId:A0.id,organizationId:A0.organization_id,triggerId:null})},G0=new Kp(V,({automation:K0,trigger:H0,contextMessages:R0,idempotencyKey:A0})=>E80({automationId:K0.id,organizationId:K0.organization_id,triggerId:H0.id,contextMessages:R0},{idempotencyKey:A0})),N0=[JK(),Gg(),MN()];for(let K0 of N0)U_0(K0).then(()=>{}).catch((H0)=>console.error("[monitoring] Retention cleanup failed:",H0));let o=()=>x8.api.deleteAllExpiredApiKeys().catch((K0)=>console.error("[auth] Expired API key cleanup failed:",K0));o(),setInterval(o,86400000).unref(),E.use("*",async(K0,H0)=>{if(C_0(K0.req.path))return H0();let R0={measure:async(D1,x$)=>{cW(K0,D1);try{return await x$()}finally{P3(K0,D1)}}},A0=await cQ.create(K0.req.raw,{timings:R0});A0.automationRunner=v0,K0.set("studioContext",A0);try{await H0()}finally{let D1=A0.pendingRevalidations;if(D1.length>0)Promise.race([Promise.allSettled(D1),O$(30000)]).catch((i$)=>console.error("[studio] revalidation cleanup error:",i$))}}),E.use("/api/:org/decopilot/*",Xp),E.use("/api/:org/v1/*",Xp),E.use("/api/:org/files/*",Xp),E.use("*",async(K0,H0)=>{if(tJ8(K0.req.path))return H0();let R0=K0.get("studioContext");if(!R0?.organization?.id||!R0?.auth?.user?.id)return H0();if(!(await R0.storage.orgSsoConfig.getByOrgId(R0.organization.id))?.enforced)return H0();if(!await R0.storage.orgSsoSessions.isValid(R0.auth.user.id,R0.organization.id))return K0.json({error:"SSO authentication required for this organization"},403);return H0()});let $0=new Z1;$0.use("*",mH({mountPath:"/api/org-sso"})),$0.route("/",gS0()),E.route("/api/org-sso",$0),E.get("/api/tools/management",(K0)=>{return K0.json({tools:un0,grouped:tP()})}),E.use("/mcp/*",async(K0,H0)=>{cW(K0,"mcp");try{return await H0()}finally{P3(K0,"mcp")}});let Z0=async(K0,H0)=>{let R0=K0.var.studioContext;if(!R0.auth.user?.id&&!R0.auth.apiKey?.id){let A0=new URL(K0.req.url),D1=K0.req.header("x-forwarded-proto")?.split(",")[0]?.trim(),x$=D1?`${D1}://${A0.host}`:A0.origin;return K0.res=new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${x$}${A0.pathname}/.well-known/oauth-protected-resource"`}})}return await H0()};if(E.use("/mcp/:connectionId?",Z0),E.use("/mcp/gateway/:virtualMcpId?",Z0),E.use("/mcp/virtual-mcp/:virtualMcpId?",Z0),E.use("/mcp/self",Z0),PW()){let{mountDevRoutes:K0}=(mJ8(),E_0(cJ8));K0(E,Z0)}let r=new Z1;r.use("*",mH({mountPath:"/mcp"})),r.route("/",bM0()),E.route("/mcp",r);let Y0=new Z1;Y0.use("*",mH({mountPath:"/mcp/self"})),Y0.route("/",IC0()),E.route("/mcp/self",Y0);let d0=new Z1;d0.use("*",mH({mountPath:"/mcp"})),d0.route("/",yM0()),E.route("/mcp",d0),E.use("/api/:org/models/*",async(K0,H0)=>{cW(K0,"llm_models");try{return await H0()}finally{P3(K0,"llm_models")}});let S0=n68({cancelBroadcast:H,streamBuffer:F,runRegistry:O});E.route("/api",S0),E.route("/api",yX8);let W1=new Z1;W1.use("*",mH({mountPath:"/api"})),W1.route("/",CC0()),E.route("/api",W1),E.route("/api",QX8);let u0=new Z1;u0.use("*",mH({mountPath:"/api"})),u0.route("/",_C0({tokenStorage:y,automationEventDispatcher:G0})),E.route("/api",u0);let L0=new Sr(Z.db),j0=new Z1;j0.use("*",mH({mountPath:"/api"})),j0.route("/",mS0()),E.route("/api",j0),E.route("/api/deco-sites",K58()),E.route("/api/deco-apps",rY8());let l0=new Z1;l0.use("*",mH({mountPath:"/api/deco-sites"})),l0.route("/",iS0()),E.route("/api/deco-sites",l0),E.route(xS0,v68()),E.route(u78,m78()),E.route("/api/_editor-resolve",XX8()),E.route(Q68,Y68()),E.route(kS0,B68());let O1=E0(),Q1=O1.elevenlabsApiKey?new $_0({apiKey:O1.elevenlabsApiKey,model:O1.elevenlabsVoiceModel,conversationModel:O1.elevenlabsConversationModel,voiceId:O1.elevenlabsVoiceId}):null,_0={openai:O1.openaiLiveApiKey?new gD1({apiKey:O1.openaiLiveApiKey,voice:O1.openaiLiveVoice}):null,elevenlabs:Q1?new yD1(Q1,()=>U?.getConnection()??null):null},m0=new mD1({adapter:Q1,conversationAdapters:_0,defaults:O1,secret:O1.studioJwtSecret??O1.betterAuthSecret,getConnection:()=>U?.getConnection()??null}),i0=VY8({voiceSessions:m0,kvStorage:L0,runRegistry:O,streamBuffer:F,sseHub:_5,cancelBroadcast:H,tokenStorage:y,automationEventDispatcher:G0,mountDevAssets:PW(),mcpAuth:Z0,oauthProxyHandler:pJ8,watchHandler:aJ8,betterAuthProtectedResourceHandler:P,getNatsConnection:()=>U?.getConnection()??null});return E.route("/api/:org",i0),E.notFound((K0)=>{return K0.json({error:"Not Found",path:K0.req.path},404)}),E.onError(o68),Object.assign(E,{markShuttingDown:()=>{Q=!0},shutdown:async()=>{if(console.log("[shutdown] Stopping workers..."),await Promise.allSettled([_5.stop(),Qz?Promise.resolve(Qz()).finally(()=>{Qz=null}):Promise.resolve()]),U)await U.drain().catch((K0)=>console.error("[shutdown] NATS drain error:",K0));console.log("[shutdown] Flushing telemetry..."),await oX().catch((K0)=>console.error("[shutdown] Telemetry flush error:",K0)),console.log("[shutdown] Closing database..."),await jZ$(Z).catch((K0)=>console.error("[shutdown] Database close error:",K0)),console.log("[shutdown] Cleanup complete.")},initDbos:async()=>{await OO.registerQueue(C3,{partitionQueue:!0,concurrency:PJ1,minPollingIntervalMs:AJ1}),await OO.registerQueue(S3,{partitionQueue:!0,concurrency:HX1,priorityEnabled:!0}),await OO.registerQueue(RN,{workerConcurrency:E0().decopilotMaxConcurrentHostedRuns,priorityEnabled:!0}),await OO.registerQueue(qN,{workerConcurrency:E0().sandboxMaxConcurrentHostedRuns,priorityEnabled:!0}),await OO.registerQueue(AO,{partitionQueue:!0,concurrency:yf$}),await OO.registerQueue(Wz,Pb$),await MN1(V),await Promise.allSettled(["automations-gate","automations-global","jira-push"].map((K0)=>OO.deleteQueue(K0))),await TJ1(Z.pool),hY$().catch((K0)=>{console.error("[studio-pack-backfill] failed:",K0)}),jp1().catch((K0)=>{console.error("[org-fs] public-sets boot sync kick failed:",K0)})}})}var nJ8,dJ8=5000,Qz=null,pJ8=async($)=>{let Z=$.req.param("connectionId");if(!Z)return $.json({error:"Missing connectionId"},400);let Q=$.req.path.split("/").filter(Boolean),Y=Q[Q.length-1],X=$.get("studioContext");if(!X)X=await cQ.create($.req.raw),$.set("studioContext",X);let J=$.req.param("org")?X.organization?.id:void 0,G=await X.storage.connections.findById(Z,J);if(!G?.connection_url)return $.json({error:"Connection not found"},404);if(Y==="register"&&G.oauth_config?.clientId){let y=await $.req.json().catch(()=>({}));return $.json({...typeof y==="object"&&y!==null?y:{},client_id:G.oauth_config.clientId,...G.oauth_config.clientSecret?{client_secret:G.oauth_config.clientSecret}:{},client_secret_expires_at:0})}let W=await ai(G.connection_url),K,H=new URL(G.connection_url),U=(typeof G.metadata?.oauthResource==="string"&&G.metadata.oauthResource.length>0?G.metadata.oauthResource:void 0)??G.connection_url;if(W.ok)K=(await W.json()).authorization_servers?.[0];if(!K)K=H.origin;let N=await h40(K);if(!N.ok)return $.json({error:"Failed to get auth server metadata"},502);let B=await N.json(),O;if(Y==="authorize")O=B.authorization_endpoint;else if(Y==="token")O=B.token_endpoint;else if(Y==="register")O=B.registration_endpoint;if(!O)return $.json({error:`Unknown OAuth endpoint: ${Y}`},404);let L=G88(O);if(L)return L;let w=new URL(O),j=new URL($.req.url);if(w.search=j.search,Y==="authorize"){let y=w.searchParams.get("redirect_uri");if(y){let g=E0().baseUrl??j.origin;try{if(!sJ8(new URL(y),g))return $.json({error:"invalid_request",error_description:"redirect_uri is not allowed"},400)}catch{return $.json({error:"invalid_request",error_description:"redirect_uri is malformed"},400)}w.searchParams.set("redirect_uri",y)}if(w.searchParams.has("resource"))w.searchParams.set("resource",U);if(P48(G.connection_url))w.searchParams.set("auto_personal","true"),w.searchParams.set("force_new","true");return $.redirect(w.toString(),302)}let E={Accept:$.req.header("Accept")||"application/json"},z=$.req.header("Content-Type");if(z)E["Content-Type"]=z;let T=$.req.header("Authorization");if(T)E.Authorization=T;let A,P=null,q=null;if($.req.method!=="GET"&&$.req.method!=="HEAD")if(Y==="token"&&z?.includes("application/x-www-form-urlencoded")){if(T?.toLowerCase().startsWith("basic "))try{let p=atob(T.slice(6).trim()),U0=p.indexOf(":");if(U0!==-1){let v0=decodeURIComponent(p.slice(0,U0)),G0=decodeURIComponent(p.slice(U0+1));P=v0||null,q=G0||null}}catch{}let y=await $.req.formData();if(y.has("resource"))y.set("resource",U);let g=y.get("client_id"),l=y.get("client_secret");if(typeof g==="string"&&g)P=g;if(typeof l==="string"&&l)q=l;let i=new URLSearchParams;for(let[p,U0]of y.entries())i.append(p,U0.toString());A=i.toString()}else if(Y==="register"&&z?.toLowerCase().includes("application/json")){let y=await X.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",G.organization_id).executeTakeFirst(),g=await $.req.text(),l={};try{l=g?JSON.parse(g):{}}catch{A=g}let i=typeof l==="object"&&l!==null&&!Array.isArray(l);if(A===void 0&&!i)A=g;if(A===void 0){let p=l,U0=p.metadata&&typeof p.metadata==="object"?p.metadata:{};p.metadata={...U0,organization_id:G.organization_id,...y?.slug?{organization_slug:y.slug}:{},...y?.name?{organization_name:y.name}:{}},A=JSON.stringify(p),E["Content-Type"]="application/json"}}else A=$.req.raw.body??void 0;let x=await fetch(w.toString(),{method:$.req.method,headers:E,body:A,duplex:"half",redirect:"manual"}),_=new Headers,V=["connection","keep-alive","transfer-encoding","content-encoding","content-length"];for(let[y,g]of x.headers.entries())if(!V.includes(y.toLowerCase()))_.set(y,g);if(Y==="token"&&x.ok){let y=await x.text();try{let g=JSON.parse(y);if(typeof g.access_token==="string"&&g.access_token){let l=typeof g.expires_in==="number"?new Date(Date.now()+g.expires_in*1000):null,i=null;try{i=await ei(G.connection_url)??O}catch{i=O}let p={connectionId:Z,accessToken:g.access_token,refreshToken:typeof g.refresh_token==="string"?g.refresh_token:null,scope:typeof g.scope==="string"?g.scope:null,expiresAt:l,clientId:P,clientSecret:q,tokenEndpoint:i};await new w9(X.db,X.vault).upsert(p)}}catch(g){console.error("[oauth-proxy] failed to persist downstream token:",g)}return new Response(y,{status:x.status,statusText:x.statusText,headers:_})}return new Response(x.body,{status:x.status,statusText:x.statusText,headers:_})},aJ8=async($)=>{let Z=$.var.studioContext,Q=Z.auth.user?.id??Z.auth.apiKey?.userId;if(!Q)return $.json({error:"Unauthorized"},401);let Y=Z.organization?.id;if(!Y)return $.json({error:"organization id missing"},400);let X=$.req.query("types"),J=X?X.split(",").map((H)=>H.trim()).filter(Boolean):null,G=$.req.query("scope")==="all";if(G&&(!cU(Y)||!await mU(Z)))return $.json({error:"forbidden"},403);let W=G?sR0:Y;if(G)vD({action:"watch_all_orgs",actorUserId:Q,actorOrgId:Y,targetOrgId:"all"});let K=crypto.randomUUID();return UO($,async(H)=>{if(await H.writeSSE({event:"connected",data:JSON.stringify({listenerId:K,organizationId:Y,typePatterns:J,connectedAt:new Date().toISOString()})}),!_5.add({id:K,organizationId:W,typePatterns:J?.length?J:null,push:(N,B)=>{H.writeSSE({id:N.id,event:N.type,data:JSON.stringify(G?{...N,organizationId:B}:N)}).catch(()=>{_5.remove(W,K)})}})){await H.writeSSE({event:"error",data:JSON.stringify({error:"Too many connections",message:"SSE connection limit reached. Try again later."})});return}let U=setInterval(()=>{H.writeSSE({event:"keepalive",data:""}).catch(()=>{clearInterval(U),_5.remove(W,K)})},30000);await new Promise((N)=>{H.onAbort(()=>{clearInterval(U),_5.remove(W,K),N()})})})},js6,Ps6,As6=()=>zs6(x8),Ts6=()=>Es6(x8);var $G8=D(()=>{a$();X$();Ep1();Q48();G48();D48();q80();qQ1();z48();y$0();I9();ic();p8();J8();RS0();M48();kJ1();Z3();DU();oU1();SG();k6();G6();QN1();Z68();X68();D68();KN1();b68();LN1();TN1();RN1();HH();GS0();qN1();r68();MS0();kY8();bY8();xY8();hY8();oY8();kN1();sY8();xM0();P80();YX8();gM0();XD1();JX8();QD1();FX8();EX8();AX8();TX8();qX8();IX8();kX8();bX8();$O1();bN1();gX8();YD1();eB1();Y50();ZJ8();SJ();xT0();iQ1();re();ae();bJ1();QJ8();XJ8();PN1();UJ8();QX1();NJ8();Fo();vr();_D();P9();LU1();wJ8();PJ8();$30();UO1();_3();IN1();CD();eY1();$30();rq0();Mn0();In0();TJ8();ou();IJ8();Mp();oU1();Rd();ud();lq0();nJ8=C(BK(),1);js6=new Ls6,Ps6=new Set([C3,S3,RN,qN,AO,Wz])});var XG8={};$6(XG8,{resolveClientDir:()=>Cs6,resolveAssetPathWithTraversalCheck:()=>YG8,isPathWithinDirectory:()=>QG8,createAssetHandler:()=>_s6});import{resolve as c60,dirname as qs6,join as Ms6,extname as Is6,basename as Vs6,sep as ZG8}from"path";function ks6($,Z){if($===Z||Vs6($)==="index.html")return{"Cache-Control":"no-cache"};if($.includes(`${ZG8}assets${ZG8}`))return{"Cache-Control":"public, max-age=31536000, immutable"};return{}}function QG8($,Z){let Q=c60(Z),Y=c60($);return Y===Q||Y.startsWith(Q+"/")}function YG8({requestPath:$,clientDir:Z}){let Q=$.startsWith("/")?$.slice(1):$,Y=c60(Z,Q);if(!QG8(Y,Z))return null;return Y}function Cs6($,Z="../client"){let Q=new URL($),Y=qs6(Q.pathname);return c60(Y,Z)}function _s6($={}){let{env:Z="production",clientDir:Q=Ss6,isServerPath:Y=()=>!1}=$;if(Z==="development")return async function(J){return null};return async function(J){if(J.method!=="GET")return null;let G=new URL(J.url),W;try{W=decodeURIComponent(G.pathname)}catch{return null}if(Y(W))return null;let K=YG8({requestPath:W,clientDir:Q});if(!K)return null;let H=Ms6(K,"index.html"),F=c60(Q,"index.html"),U=J.headers.get("accept"),B=U?.includes("text/html")||U?.includes("*/*")&&["",".html"].includes(Is6(K))?[H,F]:[];for(let O of[K,...B])try{let L=Bun.file(O);if(await L.exists())return new Response(L,{headers:ks6(O,F)})}catch{}if(W.includes("/assets/"))return new Response("Not Found",{status:404,headers:{"Cache-Control":"no-store"}});return null}}var Ss6="./dist/client";var JG8=()=>{};var GG8={};$6(GG8,{tryUpgradePreviewWs:()=>hs6,tryHandlePreviewHttp:()=>gs6,previewWebSocketHandler:()=>us6,parsePreviewBaseDomain:()=>ys6,isPreviewWsData:()=>N_0,extractHandleFromHost:()=>zO1});function xs6($){if($.method!=="GET")return!1;return($.headers.get("accept")??"").includes("text/html")}function fs6(){return new Response(bs6,{status:503,headers:{"content-type":"text/html; charset=utf-8","cache-control":"no-store","retry-after":"1","access-control-allow-origin":"*"}})}function ys6($){if(!$||$.trim()==="")return null;let Z=$.includes("{handle}")?$.replace("{handle}","__handle__"):$,Q;try{Q=new URL(Z)}catch{return null}let Y=Q.hostname;if($.includes("{handle}")){let X=Y.indexOf(".");if(X<=0||X===Y.length-1)return null;return Y.slice(X+1)}return Y}function zO1($,Z){if(!$||!Z)return null;let Q=$.indexOf(":"),Y=(Q>=0?$.slice(0,Q):$).toLowerCase(),J=`.${Z.toLowerCase().replace(/^\.+|\.+$/g,"")}`;if(!Y.endsWith(J))return null;let G=Y.slice(0,Y.length-J.length);if(!G||G.includes("."))return null;return G}async function gs6($,Z){let Q=zO1($.headers.get("host"),Z.baseDomain);if(!Q)return null;let Y=await Z.getRunner();if(!Y)return d60(503,"preview proxy not configured");let X=await Y.proxyPreviewRequest(Q,$);if(X.headers.get(fm)&&xs6($))return fs6();return X.headers.delete(fm),X}function d60($,Z){return new Response(JSON.stringify({error:Z}),{status:$,headers:{"content-type":"application/json","access-control-allow-origin":"*"}})}function N_0($){return typeof $==="object"&&$!==null&&$.kind==="preview"}async function hs6($,Z,Q){if(($.headers.get("upgrade")??"").toLowerCase()!=="websocket")return null;let Y=zO1($.headers.get("host"),Q.baseDomain);if(!Y)return null;let X=await Q.getRunner();if(!X)return d60(503,"preview proxy not configured");let J=await X.resolvePreviewUpstreamUrl(Y);if(!J)return d60(404,"sandbox not found");let G=new URL($.url);if(G.pathname.startsWith("/_sandbox"))return d60(404,"not found");let W=`${J.replace(/^http/,"ws")}${G.pathname}${G.search}`,K=$.headers.get("sec-websocket-protocol"),H=K?K.split(",").map((N)=>N.trim()).filter(Boolean):[],F={kind:"preview",upstreamUrl:W,upstreamProtocols:H,pending:[],upstream:null,closed:!1};if(!Z.upgrade($,{data:F}))return d60(426,"upgrade failed");return}function m60($,Z,Q,Y){if(Z.closed)return;Z.closed=!0;try{$.close(Q,Y)}catch{}try{Z.upstream?.close()}catch{}}var vs6=256,bs6='<!DOCTYPE html><html><head><meta charset="utf-8"><title>Connecting\u2026</title><style>body{font-family:system-ui,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0;background:#fafafa;color:#555}div{text-align:center;max-width:420px;padding:24px}h3{margin:0 0 8px}p{margin:0;font-size:14px;color:#999;line-height:1.5}</style></head><body><div><h3>Connecting to sandbox\u2026</h3><p>Waiting for the sandbox to come online. This page refreshes automatically.</p></div><script>setTimeout(function(){window.location.reload()},1500)</script></body></html>',us6;var WG8=D(()=>{P10();us6={open($){let Z=$.data;if(!N_0(Z))return;let Q;try{Q=Z.upstreamProtocols.length>0?new WebSocket(Z.upstreamUrl,Z.upstreamProtocols):new WebSocket(Z.upstreamUrl)}catch(Y){console.warn(`[preview-ws] failed to dial upstream ${Z.upstreamUrl}: ${Y instanceof Error?Y.message:String(Y)}`),m60($,Z,1011,"upstream connect failed");return}Q.binaryType="arraybuffer",Z.upstream=Q,Q.addEventListener("open",()=>{while(Z.pending.length>0){let Y=Z.pending.shift();if(Y!==void 0)Q.send(Y)}}),Q.addEventListener("message",(Y)=>{if(Z.closed)return;$.send(Y.data)}),Q.addEventListener("close",(Y)=>{m60($,Z,Y.code||1000,Y.reason||"")}),Q.addEventListener("error",()=>{m60($,Z,1011,"upstream error")})},message($,Z){let Q=$.data;if(!N_0(Q))return;let Y=Q.upstream;if(Y&&Y.readyState===WebSocket.OPEN){Y.send(Z);return}if(Q.pending.length>=vs6){m60($,Q,1011,"preview ws backlog overflow");return}Q.pending.push(Z)},close($){let Z=$.data;if(!N_0(Z))return;m60($,Z,1000,"")}}});var UG8={};$6(UG8,{printBanner:()=>cs6,bannerLines:()=>FG8,BANNER_LINES:()=>KG8,BANNER_GRADIENT:()=>HG8});function ls6($){let Z=Number.parseInt($.slice(1),16);return[Z>>16&255,Z>>8&255,Z&255]}function FG8($){let Z=KG8.map((Q,Y)=>{let[X,J,G]=ls6(HG8[Y]);return`\x1B[38;2;${X};${J};${G}m${Q}\x1B[39m`});if($!==void 0)Z.push(`\x1B[2m v${$}\x1B[22m`);return Z}function cs6($){console.log("");for(let Z of FG8($))console.log(Z);console.log("")}var KG8,HG8;var NG8=D(()=>{KG8=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],HG8=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});a$();var vO1="13";function bO1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:vO1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}a$();import SG8 from"pg";var xO1=8314027461559302n,CG8=600000,_G8=500;async function fO1($,Z){let{databaseUrl:Q,lockTimeoutMs:Y=CG8}=$,X=$.log??((K)=>console.log(K)),J=new SG8.Client({connectionString:Q});await J.connect();let G=Date.now(),W=!1;try{while(!W){if(W=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[xO1.toString()])).rows[0]?.locked===!0,W)break;if(Date.now()-G>=Y)throw Error(`Timed out after ${Y}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await O$(_G8)}let K=Date.now()-G;if(K>1000)X(`[dbos] waited ${K}ms for the migration lock; another process migrated first`);return await Z()}finally{if(W)try{await J.query("SELECT pg_advisory_unlock($1)",[xO1.toString()])}catch{}await J.end().catch(()=>{})}}X$();T_0();k6();function S38(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function u_0($,Z){for(let Q=0;Q<$.length;Q++){let Y=$[Q];if(Y===void 0)continue;if(Y===Z)return $[Q+1];if(Y.startsWith(`${Z}=`))return Y.slice(Z.length+1)}return}function EL1(){let $=S38();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:u_0($,"--cpu-prof-dir")??process.cwd(),name:u_0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(u_0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}m_0();var G50;function VL1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=Fz();if(!Q)return;let Y={};try{let{heapStats:X}=await import("bun:jsc"),J=X(),G=Object.entries(J.objectTypeCounts).sort((W,K)=>K[1]-W[1]).slice(0,20);Y={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...Y}))};return Z().catch(()=>{}),G50=setInterval(()=>void Z().catch(()=>{}),$),G50.unref?.(),process.on("SIGUSR2",()=>{try{let Q=Bun.generateHeapSnapshot("v8"),Y=typeof Q==="string"?Q:JSON.stringify(Q),X=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(X,Y),console.log(JSON.stringify({msg:"heap-snapshot-written",path:X}))}catch(Q){console.error("[heap-watch] snapshot failed:",Q)}}),()=>{if(G50)clearInterval(G50)}}import*as v38 from"bun:jsc";var{startSamplingProfiler:b38,samplingProfilerStackTraces:x38}=v38;function kL1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{b38()}catch(J){return console.error("[stall-watchdog] failed to start sampling profiler:",J),()=>{}}let Q,Y=performance.now()+Z,X=()=>{let J=performance.now(),G=J-Y;Y=J+Z;let W=[];try{W=x38()?.traces??[]}catch{}if(G>$&&W.length>0){let K=new Map;for(let F of W){let U=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;K.set(B,(K.get(B)??0)+1)}let H=[...K.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(G),samplesInWindow:W.length,top:H}))}Q=setTimeout(X,Z),Q.unref?.()};return Q=setTimeout(X,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}function SL1(){EL1();let $=[VL1(),IL1(),kL1()];return()=>{for(let Z of $)Z()}}import{existsSync as rs6}from"fs";var WG=E0();LL1();var{DBOS:i60,DBOSClient:ms6}=await import("@dbos-inc/dbos-sdk");function MO1($,Z){if(!Z)return $;let Q=new URL($);if(!Q.searchParams.has("sslmode"))Q.searchParams.set("sslmode","verify-full");return Q.toString()}var ds6=[C3,S3,RN,qN,AO,Wz],is6=WG.dispatchRole==="worker"?ds6:WG.dispatchRole==="api"?[]:void 0;i60.setConfig(bO1({systemDatabaseUrl:MO1(WG.databaseUrl,WG.databasePgSsl),poolSize:WG.dbosPoolSize,executorID:WG.podName,listenQueues:is6}));var{createApp:ps6}=await Promise.resolve().then(() => ($G8(),eJ8)),{isServerPath:ns6}=await Promise.resolve().then(() => (Y50(),eO1)),{createAssetHandler:ts6,resolveClientDir:wG8}=await Promise.resolve().then(() => (JG8(),XG8)),os6=WG.port,BG8=wG8(import.meta.url,"../client"),jG8=rs6(BG8)?BG8:wG8(import.meta.url,"../dist/client"),ss6=ts6({clientDir:jG8,isServerPath:ns6}),as6={"X-Frame-Options":"DENY","Content-Security-Policy":"frame-ancestors 'none'"};function es6($){let Z=new Headers($.headers);for(let[Q,Y]of Object.entries(as6))Z.set(Q,Y);return new Response($.body,{status:$.status,statusText:$.statusText,headers:Z})}var{parsePreviewBaseDomain:$a6,tryHandlePreviewHttp:Za6,tryUpgradePreviewWs:Qa6,previewWebSocketHandler:PO1,isPreviewWsData:AO1}=await Promise.resolve().then(() => (WG8(),GG8)),{getOrInitSharedRunner:EG8}=await Promise.resolve().then(() => (vW(),wR$)),zG8=$a6(process.env.STUDIO_SANDBOX_PREVIEW_URL_PATTERN),DG8={baseDomain:zG8??"",getRunner:EG8};if(process.env.STUDIO_SANDBOX_TENANT_POOLS?.trim())EG8().catch(($)=>{console.warn("[lifecycle] eager sandbox provider init for tenant pools failed:",$ instanceof Error?$.message:String($))});var B_0=await ps6({clientDir:jG8}),TO1=process.env.DBOS_CONDUCTOR_KEY?.trim(),OG8=process.env.DBOS_CONDUCTOR_URL?.trim();await fO1({databaseUrl:MO1(WG.databaseUrl,WG.databasePgSsl)},()=>i60.launch({...TO1?{conductorKey:TO1}:{},...TO1&&OG8?{conductorURL:OG8}:{}}));console.log(`[dbos] application version: ${i60.applicationVersion}`);var RO1=5,qO1=0;await E8(async()=>{qO1++;try{return await B_0.initDbos()}catch($){let Z=qO1>=RO1?"giving up":"retrying";throw console.warn(`[dbos] initDbos attempt ${qO1}/${RO1} failed, ${Z}`,$),$}},{maxAttempts:RO1,minTimeout:1000,maxTimeout:1e4,jitter:0.5});if(!WG.isCli){let{bannerLines:$}=await Promise.resolve().then(() => (NG8(),UG8));console.log("");for(let Z of $())console.log(Z)}var Ya6=Bun.serve({idleTimeout:0,port:os6,hostname:"0.0.0.0",fetch:async($,Z)=>{if(zG8){let Y=await Qa6($,Z,DG8);if(Y===void 0)return;if(Y)return Y;let X=await Za6($,DG8);if(X)return X}let Q=await ss6($);if(Q)return es6(Q);return B_0.fetch($,{server:Z})},websocket:{open($){if(AO1($.data))PO1.open($)},message($,Z){if(AO1($.data))PO1.message($,Z)},close($){if(AO1($.data))PO1.close($)}},development:!1}),Xa6=SL1();if(WG.localMode)Promise.resolve().then(() => (gf(),Vq0)).then(async({seedLocalMode:$,markSeedComplete:Z,healLocalJwks:Q})=>{try{let Y=await Q();if(Y>0)console.log(`[local-mode] cleared ${Y} undecryptable JWKS key(s); Better Auth will generate a fresh one`);let X=await $()}catch(Y){console.error("Failed to seed local mode:",Y)}finally{Z()}}).catch(async($)=>{console.error("Failed to load local-mode module:",$);try{let{markSeedComplete:Z}=await Promise.resolve().then(() => (gf(),Vq0));Z()}catch{}});var LG8=!1;async function Ja6($){let Z;try{Z=await ms6.create({systemDatabaseUrl:MO1(WG.databaseUrl,WG.databasePgSsl),systemDatabaseSchemaName:"dbos"});let Q=await Z.listWorkflows({status:"PENDING",queueName:S3,executorId:$,loadInput:!1,loadOutput:!1});if(Q.length===0){console.log(`[shutdown] no in-flight thread-gate gates to hand off (executor ${$})`);return}let Y=Q.map((X)=>X.workflowID);await Z.resumeWorkflows(Y,{queueName:S3}),console.log(`[shutdown] re-enqueued ${Y.length} in-flight thread-gate gate(s) for re-adoption by a live executor (from ${$}):`,Y)}catch(Q){console.error("[shutdown] thread-gate handoff failed:",Q)}finally{await Z?.destroy().catch(()=>{})}}async function D_0($){if(LG8)return;LG8=!0,console.log(`
|
|
3740
3740
|
[shutdown] Received ${$}, shutting down gracefully...`);let Z=Number(process.env.SHUTDOWN_GRACE_SECONDS??60)*1000,Q=Math.max(Z-5000,1e4),Y=setTimeout(()=>{console.error(`[shutdown] Timed out after ${Q}ms, forcing exit.`),process.exit(1)},Q);Y.unref?.();let X=0;try{Xa6(),B_0.markShuttingDown();let J=gO1(WG.dispatchRole,Q,process.env.SHUTDOWN_DRAIN_MS);await O$(J),await Ya6.stop(!0);let G=i60.executorID;await i60.shutdown(),await Ja6(G),await B_0.shutdown()}catch(J){console.error("[shutdown] Error during shutdown:",J),X=1}clearTimeout(Y),process.exit(X)}process.on("SIGTERM",()=>D_0("SIGTERM"));process.on("SIGINT",()=>D_0("SIGINT"));process.on("SIGHUP",()=>D_0("SIGHUP"));process.on("unhandledRejection",($)=>{console.error("[process] Unhandled rejection:",$)});process.on("uncaughtException",($)=>{console.error("[process] Uncaught exception:",$),D_0("uncaughtException")});
|