decocms 4.82.2 → 4.82.4
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-kCXphgPC.js → AlertCircle-C_R2gNR6.js} +1 -1
- package/dist/client/assets/{AreaChart-DKWjA3qV.js → AreaChart-C2NnxYNE.js} +1 -1
- package/dist/client/assets/{ArrowUp-E6TqJ4mA.js → ArrowUp-B1StHCTH.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-BZpDiBuo.js → ArrowUpRight-Ca8yn7_h.js} +1 -1
- package/dist/client/assets/{Check-DDIgKyAq.js → Check-CHN1T8vI.js} +1 -1
- package/dist/client/assets/{CheckCircle-CNAHpJI-.js → CheckCircle-CaqljOnz.js} +1 -1
- package/dist/client/assets/{ChevronDown-B0PANk1H.js → ChevronDown-DeKhnunA.js} +1 -1
- package/dist/client/assets/{ChevronRight-Djr4m6Pz.js → ChevronRight-C6t8IZZc.js} +1 -1
- package/dist/client/assets/{ChevronUp-Bb-UxMsa.js → ChevronUp-ByLiGcrz.js} +1 -1
- package/dist/client/assets/{Circle-BekD_nTl.js → Circle-Akjlxa1B.js} +1 -1
- package/dist/client/assets/{Copy01-UFZFC1SG.js → Copy01-D_XFEDz5.js} +1 -1
- package/dist/client/assets/{DotsVertical-BG9LVrn8.js → DotsVertical-DwGEoc3a.js} +1 -1
- package/dist/client/assets/{Eye-C9MHFHm6.js → Eye-BdDoUsgN.js} +1 -1
- package/dist/client/assets/{FilterLines-BkfCHc38.js → FilterLines-D5F51p9V.js} +1 -1
- package/dist/client/assets/{Flag01-DFy5VqmS.js → Flag01-DRon0ZUu.js} +1 -1
- package/dist/client/assets/{Globe01-iM1wwg8Y.js → Globe01-CDfSxX3-.js} +1 -1
- package/dist/client/assets/{Globe04-BQcOlksj.js → Globe04-BOvSDMUd.js} +1 -1
- package/dist/client/assets/{HardDrive-B-CKKUDy.js → HardDrive-BG6k4mGW.js} +1 -1
- package/dist/client/assets/{Image01-BgztVRKM.js → Image01-BHNPXrnC.js} +1 -1
- package/dist/client/assets/{Key01-vz6DAWYa.js → Key01-C3yVFpbS.js} +1 -1
- package/dist/client/assets/{LayoutLeft-BmZvV8ag.js → LayoutLeft-T-ESxFnl.js} +1 -1
- package/dist/client/assets/{LinkExternal01-EfZYrkeN.js → LinkExternal01-BwkQzfkf.js} +1 -1
- package/dist/client/assets/{List--GlLamQ9.js → List-B9Fa3bXa.js} +1 -1
- package/dist/client/assets/{Monitor01-BjirrIMY.js → Monitor01--TFQb6Ix.js} +1 -1
- package/dist/client/assets/{Package-1BL1u4_n.js → Package-DvWDWZFB.js} +1 -1
- package/dist/client/assets/{Palette-DOd54pwj.js → Palette-DRMDR8JV.js} +1 -1
- package/dist/client/assets/{Play-C3-QTSMK.js → Play-Bu8Z0F10.js} +1 -1
- package/dist/client/assets/{Plus-CpWJ9pKD.js → Plus-B2SZN6mH.js} +1 -1
- package/dist/client/assets/{SearchLg-LeNwTpOU.js → SearchLg-cnYdsIh9.js} +1 -1
- package/dist/client/assets/{SearchMd-BgURjN_4.js → SearchMd-DoLlnPcs.js} +1 -1
- package/dist/client/assets/{Settings02-BRQObTtv.js → Settings02-BJaUducV.js} +1 -1
- package/dist/client/assets/{Shield01-B7TT7EnM.js → Shield01-CRbVn2DO.js} +1 -1
- package/dist/client/assets/{Star01-BJ6N57-a.js → Star01-DVTMTzj3.js} +1 -1
- package/dist/client/assets/{Stars01-ry_8YpcE.js → Stars01-gidBm02o.js} +1 -1
- package/dist/client/assets/{Stars02-BFYF3gpO.js → Stars02-D25QqAmt.js} +1 -1
- package/dist/client/assets/{Sun-D7tAUdt0.js → Sun-BfpGkeDJ.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-kk32dbs0.js → SwitchHorizontal01-C8k2Pvdq.js} +1 -1
- package/dist/client/assets/{Tool01-ej0IhXS3.js → Tool01-B-H3cWyo.js} +1 -1
- package/dist/client/assets/{Tool02-DCFyP8W2.js → Tool02-CxiSJzZp.js} +1 -1
- package/dist/client/assets/{Trash01-Dba2_Fal.js → Trash01-3RGYR5ZZ.js} +1 -1
- package/dist/client/assets/{TrendUp01-FvKwKqRi.js → TrendUp01-BIZ2rqpR.js} +1 -1
- package/dist/client/assets/{Upload01-CEYHPbV3.js → Upload01-QJcrfIv8.js} +1 -1
- package/dist/client/assets/{User01-C-iyNk3q.js → User01-MduAtdbm.js} +1 -1
- package/dist/client/assets/{UserPlus01-BcqzUV8X.js → UserPlus01-DFOW-O5v.js} +1 -1
- package/dist/client/assets/{Users01-D9HxVsdl.js → Users01-BPKikrPB.js} +1 -1
- package/dist/client/assets/{Users03-DlG2V8f2.js → Users03-IG5JVRz9.js} +1 -1
- package/dist/client/assets/{X-C1CvU_EJ.js → X-CGox_cIc.js} +1 -1
- package/dist/client/assets/{XCircle-CWE11XLI.js → XCircle-CW8s2hOY.js} +1 -1
- package/dist/client/assets/{XClose-DLyl9Uce.js → XClose-B0KA3C8u.js} +1 -1
- package/dist/client/assets/{Zap-6_HWk1eI.js → Zap-I1E7lqUU.js} +1 -1
- package/dist/client/assets/{ZapSquare-BsGisY2D.js → ZapSquare-1bKpNdcW.js} +1 -1
- package/dist/client/assets/{ZoomOut-BkjxI_iz.js → ZoomOut-xslIZ2b2.js} +1 -1
- package/dist/client/assets/{access-gate-B9e61WgX.js → access-gate-Dz6XZqwf.js} +1 -1
- package/dist/client/assets/{add-section-modal-BtLfZ0Gi.js → add-section-modal-SIAZEdMS.js} +1 -1
- package/dist/client/assets/{agent-icon-CYxrqW76.js → agent-icon-DTwuae9u.js} +1 -1
- package/dist/client/assets/{agents-list-DmqL1dVc.js → agents-list-P8MujZb1.js} +1 -1
- package/dist/client/assets/{ai-providers-D1EhiJtu.js → ai-providers-C51sPi-D.js} +1 -1
- package/dist/client/assets/{alert-CIQWFMLi.js → alert-DXQE21-8.js} +1 -1
- package/dist/client/assets/{alert-dialog-D-be_2Xf.js → alert-dialog-DC9ppgrc.js} +1 -1
- package/dist/client/assets/{app-editor-iKeqr42F.js → app-editor-EHw7oC0S.js} +1 -1
- package/dist/client/assets/{auth-C7xNJNsF.js → auth-B2MrKpCt.js} +1 -1
- package/dist/client/assets/{auth-catchall-BznV9ASc.js → auth-catchall-Ku2OintM.js} +1 -1
- package/dist/client/assets/{auth-entry-WxC4oRzR.js → auth-entry-CJkn94dH.js} +1 -1
- package/dist/client/assets/{auth-split-layout-fkOr-isN.js → auth-split-layout-EWwj4ksJ.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-CXKo_JkD.js → authenticate-and-persist-oauth-hrrJBGtM.js} +1 -1
- package/dist/client/assets/{automation-list-row-BMRcsSeL.js → automation-list-row-DHlgW_F4.js} +1 -1
- package/dist/client/assets/{automation-runs-D7YWZ8Z3.js → automation-runs-ztbqdTSF.js} +1 -1
- package/dist/client/assets/automations-CWsPljNK.js +1 -0
- package/dist/client/assets/{autosend-C-H_YqRW.js → autosend-D-bsHKL6.js} +1 -1
- package/dist/client/assets/{avatar-Wy9J2SE_.js → avatar-BIRf-1JV.js} +1 -1
- package/dist/client/assets/{badge-Ca-dkAZB.js → badge-NQMfn1dt.js} +1 -1
- package/dist/client/assets/{block-document-BZUgMk-m.js → block-document-D7aa039Q.js} +1 -1
- package/dist/client/assets/{brand-context-8cRtRUkE.js → brand-context-vatlIWcL.js} +1 -1
- package/dist/client/assets/{buckets-DgKgcJZh.js → buckets-BjV0MOlQ.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-DU8QJJ1G.js → bulk-category-panel-o61dLDPe.js} +1 -1
- package/dist/client/assets/{calendar-CkffkcCy.js → calendar-BcjoSWjl.js} +1 -1
- package/dist/client/assets/{capability-load-error-D-JkMGdC.js → capability-load-error-BStQ9veQ.js} +1 -1
- package/dist/client/assets/{card-ywmDgwB6.js → card-BCHwENDj.js} +1 -1
- package/dist/client/assets/{category-editor-CUBwpX-S.js → category-editor-Cu3vO8_V.js} +1 -1
- package/dist/client/assets/{chat-context-CIWhsp6x.js → chat-context-pyYL3ixq.js} +1 -1
- package/dist/client/assets/{checkbox-Cr0u89o8.js → checkbox-CWSfmUzO.js} +1 -1
- package/dist/client/assets/{cli-auth-success-BrceJJBw.js → cli-auth-success-vIgCiHLf.js} +1 -1
- package/dist/client/assets/{collection-detail-BqzUqjVC.js → collection-detail-BlcQ7GrA.js} +1 -1
- package/dist/client/assets/{collection-display-button-XvDGYRQJ.js → collection-display-button-Mwx5_6Gd.js} +1 -1
- package/dist/client/assets/{collection-search-Bbz5Nv9F.js → collection-search-Z_8iQC5w.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-BFGQutw_.js → collection-table-wrapper-BOSeWXSE.js} +1 -1
- package/dist/client/assets/{collection-tabs-BcRdpHvw.js → collection-tabs-IXdsYZLL.js} +1 -1
- package/dist/client/assets/{command-cQr4zQ_L.js → command-DDK9C2Ku.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-CvwtMdCE.js → commerce-onboarding-Dc3MPtD5.js} +1 -1
- package/dist/client/assets/{companions-core-BGeNlDxu.js → companions-core-D0swijM3.js} +1 -1
- package/dist/client/assets/{connect-desktop-dialog-BsbEeCcQ.js → connect-desktop-dialog-W8rk23aM.js} +1 -1
- package/dist/client/assets/{connection-card-DmPCswWq.js → connection-card-DHRk2I51.js} +1 -1
- package/dist/client/assets/{connection-detail-CnOjVsgK.js → connection-detail-WLsxZT6x.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-PXddpK2-.js → connection-form-helpers-tWgv4Wes.js} +1 -1
- package/dist/client/assets/{connections-Bgd9xCbl.js → connections-Dj0WAX5w.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-oRjQOH5f.js → decopilot-sse-pool-D4sUN2DX.js} +1 -1
- package/dist/client/assets/{dialog-CFR8279q.js → dialog-Df9j8Uag.js} +1 -1
- package/dist/client/assets/{domain-settings-CivF49ux.js → domain-settings-ClsWOiiS.js} +1 -1
- package/dist/client/assets/{drawer-hDxkdbaP.js → drawer-SQ2tdg7g.js} +1 -1
- package/dist/client/assets/{dropdown-menu-CWUfXfWg.js → dropdown-menu-D3TO7NsH.js} +1 -1
- package/dist/client/assets/{empty-state-DmPNNysN.js → empty-state-CtQmVSR3.js} +1 -1
- package/dist/client/assets/{extract-connection-data--L5am0X0.js → extract-connection-data-DHZE5fNa.js} +1 -1
- package/dist/client/assets/{file-explorer-BGpqVotR.js → file-explorer-DU7EXv5i.js} +1 -1
- package/dist/client/assets/{file-type-icon-cDAzEyng.js → file-type-icon-CnZBX84T.js} +1 -1
- package/dist/client/assets/{files-aKzIBkTg.js → files-DkXTyaOg.js} +1 -1
- package/dist/client/assets/{form-CcUk_Lhq.js → form-Dfkw50Nf.js} +1 -1
- package/dist/client/assets/{general-CQ0fILgz.js → general-BDPrZlkS.js} +1 -1
- package/dist/client/assets/{github-repo-picker-hqX-jPPY.js → github-repo-picker-mjAYmFki.js} +1 -1
- package/dist/client/assets/{hooks-D6OK7B3O.js → hooks-DGbRldGt.js} +1 -1
- package/dist/client/assets/{index-Biv8PyBg.js → index-B92vyGB4.js} +1 -1
- package/dist/client/assets/{index-Dbfm_Jmz.js → index-BGtrS9Vk.js} +1 -1
- package/dist/client/assets/{index-CrbZDAjQ.js → index-BbQNPbWq.js} +1 -1
- package/dist/client/assets/{index-nYNZsV6S.js → index-BuY013d1.js} +1 -1
- package/dist/client/assets/{index-v5D-KYA4.js → index-CMhDqMuC.js} +1 -1
- package/dist/client/assets/{index-D-sbNLIH.js → index-D2dvWBW6.js} +2 -2
- package/dist/client/assets/{index-ZwARjlOh.js → index-DRJdjAA8.js} +1 -1
- package/dist/client/assets/{index-CrYJPWdM.js → index-DZaSGphN.js} +6 -6
- package/dist/client/assets/{index-DiIBJT2o.js → index-Ds-HfC6n.js} +3 -3
- package/dist/client/assets/{index-D3JZ4ODU.js → index-Dw4gy48n.js} +1 -1
- package/dist/client/assets/{index-BTYU0dZF.js → index-Dwt0b6RB.js} +1 -1
- package/dist/client/assets/{index-RXr1hzW0.js → index-jyU4Aq6-.js} +1 -1
- package/dist/client/assets/{index-DsscXMfV.js → index-ly0tFqQY.js} +1 -1
- package/dist/client/assets/{index-rzYFiJXb.js → index-rdpvJSGU.js} +1 -1
- package/dist/client/assets/{index-redirect-DIf1whP5.js → index-redirect-RB3wZKH8.js} +1 -1
- package/dist/client/assets/{input-IETNv_sZ.js → input-CwsDeRW1.js} +1 -1
- package/dist/client/assets/{integration-icon-GMA9n7qu.js → integration-icon-DLCIjog7.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-DX6YWkjh.js → invite-member-dialog-BGTRU1EK.js} +1 -1
- package/dist/client/assets/{label-CYeyf_Qq.js → label-D06iDaWq.js} +1 -1
- package/dist/client/assets/{layout-Bu5O6mzV.js → layout-DveW2ipT.js} +1 -1
- package/dist/client/assets/{login-x-Wb_Yqm.js → login-DJr0aA_v.js} +1 -1
- package/dist/client/assets/{mcp-oauth-B73qjW39.js → mcp-oauth-DsKnJBMS.js} +1 -1
- package/dist/client/assets/{members-B8YVIsJe.js → members-IAS61mQc.js} +1 -1
- package/dist/client/assets/{monaco-editor-LRisAz6w.js → monaco-editor-D3doD1gM.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-CibPx0Xo.js → monitoring-stats-row-DN4Ghntn.js} +1 -1
- package/dist/client/assets/{multi-select-BVodi58j.js → multi-select-BB72kUkY.js} +1 -1
- package/dist/client/assets/{oauth-callback-CSccaHMZ.js → oauth-callback-BcwuhfDj.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-BiPfC6Zx.js → oauth-callback-ai-provider-mJJkqzAZ.js} +1 -1
- package/dist/client/assets/{onboarding-CQbpMpi3.js → onboarding-BLJ-vfB6.js} +1 -1
- package/dist/client/assets/{org-install-CMMwFLTI.js → org-install-D7qYcSHc.js} +1 -1
- package/dist/client/assets/{org-layout-zAXVnu25.js → org-layout-B3hCZxHs.js} +1 -1
- package/dist/client/assets/{organization-choice-C4q0er75.js → organization-choice-CjDO8mq_.js} +1 -1
- package/dist/client/assets/{orgs-aTiXvzuz.js → orgs-CpmdEjfb.js} +1 -1
- package/dist/client/assets/{page-seo-form-tmKfMbAK.js → page-seo-form-Dn6l-GbC.js} +1 -1
- package/dist/client/assets/page-seo-sheet-CrljFz8_.js +1 -0
- package/dist/client/assets/{popover-D5woaeNe.js → popover-DOTl-8IJ.js} +1 -1
- package/dist/client/assets/{post-editor-OeX-85X5.js → post-editor-BCsrxsYC.js} +1 -1
- package/dist/client/assets/{primitives-B16u0MSa.js → primitives-CL8pfXwb.js} +1 -1
- package/dist/client/assets/{profile-B11-gMHq.js → profile-BX8RXmcm.js} +1 -1
- package/dist/client/assets/project-app-view-BVXgPoP_.js +1 -0
- package/dist/client/assets/record-editor-CHQ8PoX4.js +1 -0
- package/dist/client/assets/redirect-editor-Cjavuusd.js +1 -0
- package/dist/client/assets/registry-Cn3MLkyj.js +2 -0
- package/dist/client/assets/{registry-layout-BifmF5JS.js → registry-layout-E5qs1vxm.js} +1 -1
- package/dist/client/assets/{reports-Dj9YhbsA.js → reports-jslr43jc.js} +1 -1
- package/dist/client/assets/{require-capability-swOntsTe.js → require-capability-x1ztzZLs.js} +1 -1
- package/dist/client/assets/{required-auth-layout-232zARUx.js → required-auth-layout-B6YgJRpI.js} +1 -1
- package/dist/client/assets/{reset-password-moviG26C.js → reset-password-BMmVNkHt.js} +1 -1
- package/dist/client/assets/{roles-Cu4vBQfi.js → roles-lJO6OZgQ.js} +1 -1
- package/dist/client/assets/{search-input-CeoIhkHt.js → search-input-Dp4ccMqk.js} +1 -1
- package/dist/client/assets/{secrets-fGksMS_6.js → secrets-BJc7uX9z.js} +1 -1
- package/dist/client/assets/{sections-editor-BVWOSuEa.js → sections-editor-Dv7kNd1E.js} +1 -1
- package/dist/client/assets/{select-model-_ZKR8HTd.js → select-model-_p-BWObi.js} +1 -1
- package/dist/client/assets/{select-NjAGeaa9.js → select-rVmmMqu5.js} +1 -1
- package/dist/client/assets/{self-tool-result-gMaCpaU_.js → self-tool-result-BgMbqusE.js} +1 -1
- package/dist/client/assets/{seo-editor-DcbqiG7M.js → seo-editor-BRGADy3w.js} +1 -1
- package/dist/client/assets/{settings-layout-D5WECNwI.js → settings-layout-Ce73Sz_V.js} +1 -1
- package/dist/client/assets/{settings-section-CB61SYEu.js → settings-section-C7QXqmBb.js} +1 -1
- package/dist/client/assets/{shell-controls-CHD6euId.js → shell-controls-Bzt-lxOC.js} +1 -1
- package/dist/client/assets/{shell-layout-DQO1dSor.js → shell-layout-D0_WcVHi.js} +1 -1
- package/dist/client/assets/{sidebar-CtWxhSGk.js → sidebar-k4saLJHr.js} +1 -1
- package/dist/client/assets/{skeleton-Wmw9uecJ.js → skeleton-Cl7rlzcs.js} +1 -1
- package/dist/client/assets/{sso-DSS1Q_k0.js → sso-CJllknu9.js} +1 -1
- package/dist/client/assets/{store-B8wQFICw.js → store-B8KCK-yh.js} +1 -1
- package/dist/client/assets/store-registry-BtewmP4q.js +2 -0
- package/dist/client/assets/{studio-tools-DDshj8I4.js → studio-tools-BCF7Emba.js} +1 -1
- package/dist/client/assets/{switch-BdZO9M2W.js → switch-p99UQqZH.js} +1 -1
- package/dist/client/assets/{table-PBbKwVKc.js → table-4qGBxfdb.js} +1 -1
- package/dist/client/assets/{tabs-BrnYXG7i.js → tabs-ByKIufCY.js} +1 -1
- package/dist/client/assets/{textarea-C_MMPnVH.js → textarea-CNNNBEcd.js} +1 -1
- package/dist/client/assets/{toggle-group-DiIQ1Ffk.js → toggle-group-BRjSMSnU.js} +1 -1
- package/dist/client/assets/{toolbar-DLnqxt6J.js → toolbar-efUhUw5A.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-CX1jK7kv.js → toolbar-icon-button-Do2DZvKF.js} +1 -1
- package/dist/client/assets/{tooltip-DDdJkaBi.js → tooltip-DF9ELLft.js} +1 -1
- package/dist/client/assets/{use-ai-providers-Bau_XFY3.js → use-ai-providers-BhqApjOp.js} +1 -1
- package/dist/client/assets/{use-automations-GSIpa9hq.js → use-automations-DCss45mw.js} +1 -1
- package/dist/client/assets/{use-autosave-BkfnA9yg.js → use-autosave-DNyaoSmX.js} +1 -1
- package/dist/client/assets/{use-capability--unCbHPZ.js → use-capability-BFu21g24.js} +1 -1
- package/dist/client/assets/{use-clock-tick-DFYHwmbu.js → use-clock-tick-D7vB-RjW.js} +1 -1
- package/dist/client/assets/{use-collections-BMqNT8dV.js → use-collections-D-jn7che.js} +1 -1
- package/dist/client/assets/{use-connection-BLrLC_Rw.js → use-connection-BQsuZGTe.js} +1 -1
- package/dist/client/assets/{use-copy-CrJP8l4Q.js → use-copy-BwC3MtYV.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-Cebr0OYP.js → use-create-virtual-mcp-DDSfNlQ3.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-DVn1qzha.js → use-debounced-autosave-D2fWtiut.js} +1 -1
- package/dist/client/assets/{use-debounced-value-DkrkzEHA.js → use-debounced-value-Cy-FxJxI.js} +1 -1
- package/dist/client/assets/{use-deco-credits-BvbM7izZ.js → use-deco-credits-C7qriL8q.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-CXL8G0bz.js → use-decopilot-events-BnIE-ELu.js} +1 -1
- package/dist/client/assets/{use-delete-connection-DS78vDDY.js → use-delete-connection-DJVX-_Ob.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-BiYYHpJn.js → use-deployment-admin-C3Ofcw24.js} +1 -1
- package/dist/client/assets/{use-file-configs-BIKKQVrO.js → use-file-configs-p2bSDLWv.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-CXHBotMz.js → use-infinite-scroll-CNHh35jb.js} +1 -1
- package/dist/client/assets/{use-join-requests-Bpc5UFJD.js → use-join-requests-DlOBkYyR.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-CARKvOa5.js → use-mcp-auth-status-D44bggig.js} +1 -1
- package/dist/client/assets/{use-mcp-client-BR3zkk0W.js → use-mcp-client-_br2p_bf.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-DugmhFQh.js → use-mcp-tools-CUj9YOKr.js} +1 -1
- package/dist/client/assets/{use-members-C9eSrDGY.js → use-members-DICSbVvO.js} +1 -1
- package/dist/client/assets/{use-mobile-uzYzKyBm.js → use-mobile-1EYV2ZBj.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-BTrBlFLY.js → use-navigate-to-agent-B9NcIkNG.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-C2osVjcq.js → use-org-auth-client-BXLsMe6m.js} +1 -1
- package/dist/client/assets/{use-org-sso-D0wHJBFc.js → use-org-sso-BgfPMjp-.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DmJXh4BU.js → use-organization-roles-IEDYHPkh.js} +1 -1
- package/dist/client/assets/{use-organization-settings-DPTvMZlt.js → use-organization-settings-DZRIsOxS.js} +1 -1
- package/dist/client/assets/{use-registry-app-DhgnHveS.js → use-registry-app-DthhTf0w.js} +1 -1
- package/dist/client/assets/{use-registry-connections-BJe0100r.js → use-registry-connections-CMcjRfMM.js} +1 -1
- package/dist/client/assets/{use-secrets-ewLFOMpf.js → use-secrets-Du-COw7H.js} +1 -1
- package/dist/client/assets/{use-status-sounds-DejhI0h6.js → use-status-sounds-D9V29Hpa.js} +1 -1
- package/dist/client/assets/{use-view-mode-CVubbp_Z.js → use-view-mode-CueytzVI.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-7nBkTpO_.js → use-virtual-mcp-Cje5EUFo.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-BRkIiLOG.js +1 -0
- package/dist/client/assets/{useRouterState-CYV-D82S.js → useRouterState-Xqnk9hIU.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BFeUiYZI.js +1 -0
- package/dist/client/assets/{users-B2dg3cVs.js → users-DnlmOz7t.js} +1 -1
- package/dist/client/assets/{variant-calendar-BxdFIo7l.js → variant-calendar-BNHd1W7e.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-r2npVgjR.js → view-mode-toggle-DqeJHxMa.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +3 -3
- package/dist/server/server.js +3 -3
- package/package.json +1 -1
- package/dist/client/assets/automations-DPddGDKc.js +0 -1
- package/dist/client/assets/page-seo-sheet-o_BdEy5R.js +0 -1
- package/dist/client/assets/project-app-view-py7oWQvE.js +0 -1
- package/dist/client/assets/record-editor-CgwCxHm2.js +0 -1
- package/dist/client/assets/redirect-editor-DwgShNwh.js +0 -1
- package/dist/client/assets/registry-CdKEqSYA.js +0 -2
- package/dist/client/assets/store-registry-u4huSNic.js +0 -2
- package/dist/client/assets/useInfiniteQuery-BYXmKVyt.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BwPu-L8J.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -84519,7 +84519,7 @@ ${$}`;h(N);return}if(E(null,y),t.strategy==="count"){if(w--,w===0)h()}if(t.strat
|
|
|
84519
84519
|
`);function h(_){if(t===void 0)return!0;let v=sM(_),D=v&&sM(t)?Cmu(t):t,n=v?Cmu(_):Mmu(_),O=ICt(D,n);return O===""||!O.startsWith("..")&&!PCt(O)}return{upsert(_){f.run({$handle:_.handle,$status:_.status,$sandboxPath:_.sandboxPath,$port:_.port??null,$previewUrl:_.previewUrl??null,$repoCloneUrl:_.repoCloneUrl??null,$branch:_.branch??null,$projectName:_.projectName??null,$error:_.error??null,$now:Date.now()})},list(){return l.all().map(j1i)},reconcile(){let _=Date.now();for(let v of l.all().map(j1i)){if(!h(v.sandboxPath)){c.run({$handle:v.handle,$now:_});continue}if(!sM(v.sandboxPath)){E.run({$handle:v.handle,$now:_});continue}if(v.status==="spawning"||v.status==="ready"||v.status==="failed"||v.status==="missing")$.run({$handle:v.handle,$now:_})}return l.all().map(j1i)},prune(_){let v=[],D=[],n=this.reconcile();for(let O of n){if(!h(O.sandboxPath)){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"outside_root",deletedFiles:!1});continue}if(_.missing&&O.status==="missing"){w.run({$handle:O.handle}),v.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"missing",deletedFiles:!1});continue}if(!_.merged||!sM(O.sandboxPath))continue;if(O.branch===null||O.branch.trim()===""){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"no_branch",deletedFiles:!1});continue}if(!Z2(O.sandboxPath,["rev-parse","--is-inside-work-tree"]).ok){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"git_unavailable",deletedFiles:!1});continue}let N=Z2(O.sandboxPath,["status","--porcelain"]);if(!N.ok){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"git_unavailable",deletedFiles:!1});continue}if(N.stdout.trim()!==""){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"dirty_worktree",deletedFiles:!1});continue}let y=Vmu(O.sandboxPath,O.branch);if(y===null){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"git_unavailable",deletedFiles:!1});continue}if(!y){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"branch_not_merged",deletedFiles:!1});continue}FCt(O.sandboxPath,{recursive:!0,force:!0}),w.run({$handle:O.handle}),v.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"merged",deletedFiles:!0})}return{removed:v,skipped:D}},delete(_){w.run({$handle:_})},inspect(_){let v=d.get({$handle:_});if(v===null)return null;let D=j1i(v),n=0,O=null;if(sM(D.sandboxPath)&&Z2(D.sandboxPath,["rev-parse","--is-inside-work-tree"]).ok){let N=Z2(D.sandboxPath,["status","--porcelain"]);if(N.ok){let y=N.stdout.trim();n=y===""?0:y.split(`
|
|
84520
84520
|
`).length}if(D.branch!==null&&D.branch.trim()!=="")O=Vmu(D.sandboxPath,D.branch)}return{handle:D.handle,branch:D.branch,sandboxPath:D.sandboxPath,dirtyCount:n,merged:O}},close(){u.close()}}}var JRi=()=>{};function SCt(i,u){return u?[["umount","-f",i]]:[["fusermount","-uz",i],["umount","-l",i]]}function mmu(i,u){if(process.platform==="win32")return;for(let t of SCt(i,u))if(Bun.spawnSync(t,{stdout:"ignore",stderr:"ignore",timeout:5000}).exitCode===0)break}var emu=()=>{};import{existsSync as jCt,readdirSync as KCt}from"fs";import{rm as JCt}from"fs/promises";import{join as amu}from"path";async function omu(i,u={}){let t=u.detach??XCt,f=u.exists??jCt,l=u.readdir??(($)=>KCt($)),c=u.rm??(($)=>JCt($,{recursive:!0,force:!0})),E=amu(i,"org");if(f(E))for(let $ of l(E))t(amu(E,$));await c(i)}var XCt=(i)=>mmu(i,process.platform==="darwin");var smu=g(()=>{emu()});import{join as LCt}from"path";function pmu(i){let u=i.purge??omu;return{stopSandbox(t){return i.provider.deleteSandbox(t)},inspectSandbox(t){return i.registry.inspect(t)},async removeSandbox(t){try{return await Cl(async()=>{if(await i.provider.deleteSandbox(t),i.provider.hasHandle(t))throw Error("Can't delete \u2014 run in progress");let l=i.registry.inspect(t)?.sandboxPath??LCt(i.dataDir,"sandboxes",t);await u(l)},{maxAttempts:2,minTimeout:250,jitter:0}),i.registry.delete(t),{ok:!0}}catch(f){let l=f instanceof Wc?f.cause:f;return{ok:!1,error:l instanceof Error?l.message:String(l)}}}}}var ieu=g(()=>{y4();smu()});import{randomBytes as WCt}from"crypto";import{mkdir as YCt}from"fs/promises";import{createServer as QCt}from"net";import{join as zCt}from"path";function ueu(i,u){return Error(`sandbox failed to start: ${i}`,{cause:u})}function teu(i){if(!(i instanceof Error))return!1;return i.name==="TimeoutError"||/timed out|timeout|operation was aborted|aborted/i.test(i.message)}function feu(i){if(i instanceof Error){let u=i.cause;if(u instanceof Error&&u.message)return u.message;return i.message}return String(i)}function HCt(i){if(!i)return null;let u=i.trim().replace(/\/+$/,"");if(!u)return null;let t=u.split(/[/:]/).filter(Boolean).at(-1);if(!t)return null;return t.replace(/\.git$/i,"")||null}function RCt(i){return{repoCloneUrl:i.repo?.cloneUrl??null,branch:i.repo?.branch??null,projectName:HCt(i.repo?.cloneUrl)}}function leu(i){let u=i.maxSandboxes??20,t=new Map,f=i.pickPort??bCt,l=i.fetchImpl??fetch,c=i.resolvePreviewUrl??((n,O)=>`http://127.0.0.1:${O}`),E=(n)=>zCt(i.dataDir,"sandboxes",n),$=(n)=>{try{i.registry?.upsert(n)}catch(O){console.warn(`[user-desktop] failed to persist sandbox lifecycle handle=${n.handle} status=${n.status}:`,O)}},w=(n)=>{try{i.onEvent?.(n)}catch{}},d=async(n)=>{let O=new AbortController,N=setTimeout(()=>O.abort(),1500);try{let y=await l(`${n}/health`,{signal:O.signal});if(!y.ok)console.warn(`[user-desktop] probe ${n}/health \u2192 ${y.status} (treating as dead)`);return y.ok}catch(y){return console.warn(`[user-desktop] probe ${n}/health failed: ${y instanceof Error?y.message:String(y)} (treating as dead)`),!1}finally{clearTimeout(N)}},h=(n)=>{console.warn(`[user-desktop] evicting dead daemon handle=${n.handle} port=${n.port}`);try{n.process.kill("SIGTERM")}catch{}if(t.get(n.handle)===n)t.delete(n.handle),$({handle:n.handle,status:"stopped",sandboxPath:E(n.handle),port:null,previewUrl:null,...n.registryMetadata,error:null}),w({handle:n.handle,phase:"evicted"})},_=new Map;function v(){if(t.size<u)return;let n=[...t.values()].filter((N)=>N.activeDispatchCount===0).sort((N,y)=>N.lastUsedAt-y.lastUsedAt);if(n.length===0){console.warn(`[user-desktop] at cap ${t.size}/${u} but every sandbox is pinned (active dispatch) \u2014 exceeding cap temporarily`);return}let O=n[0];console.log(`[user-desktop] evicting LRU victim handle=${O.handle} port=${O.port} (cap ${u} reached, size=${t.size})`);try{O.process.kill("SIGTERM")}catch{}t.delete(O.handle),$({handle:O.handle,status:"stopped",sandboxPath:E(O.handle),port:null,previewUrl:null,...O.registryMetadata,error:null}),w({handle:O.handle,phase:"evicted"})}let D=async(n)=>{let O=RCt(n),N=E(n.handle);$({handle:n.handle,status:"spawning",sandboxPath:N,port:null,previewUrl:null,...O,error:null}),w({handle:n.handle,phase:"spawning",sandboxPath:N,projectName:O.projectName,branch:O.branch}),v();let y,Z=null,T;try{await YCt(N,{recursive:!0}),console.log(`[user-desktop] ensure handle=${n.handle} repo=${n.repo?.cloneUrl??"(none)"} branch=${n.repo?.branch??"(none)"} runtime=${n.workload?.runtime??"(autodetect)"} pm=${n.workload?.packageManager??"(autodetect)"}`),T=WCt(24).toString("hex");let[G,I]=await Promise.all([f(),f()]);y=G,console.log(`[user-desktop] spawn handle=${n.handle} port=${y} devPort=${I} workdir=${N}`),Z=await Promise.resolve(i.spawnDaemon({workdir:N,handle:n.handle,port:y,daemonToken:T,offloadAllowedHosts:n.offloadAllowedHosts??[],offloadAllowSameHostDev:n.offloadAllowSameHostDev??!1,orgFsConfigJson:n.orgFsConfigJson}));try{await i.waitForHealth(y)}catch(k){throw ueu("the sandbox didn't come online in time",k)}console.log(`[user-desktop] healthy handle=${n.handle} port=${y} \u2014 posting config`);try{await i.postConfig(y,I,{repo:n.repo,workload:n.workload,operator:n.operator},T)}catch(k){throw ueu(teu(k)?"configuration timed out":"the sandbox rejected its configuration",k)}}catch(G){if((teu(G)?console.warn:console.error)(`[user-desktop] sandbox bring-up failed handle=${n.handle} port=${y??"(none)"}${Z?" (killing daemon)":""}:`,G),Z)try{Z.kill("SIGKILL")}catch{}throw w({handle:n.handle,phase:"failed",error:feu(G),sandboxPath:N,projectName:O.projectName,branch:O.branch}),$({handle:n.handle,status:"failed",sandboxPath:N,port:null,previewUrl:null,...O,error:feu(G)}),G}if(!Z||y===void 0)throw Error("sandbox bring-up invariant violated");let B=`http://127.0.0.1:${y}`,F=c(n.handle,y);console.log(`[user-desktop] ready handle=${n.handle} port=${y} sandboxApiUrl=${B} previewUrl=${F}`);let A={handle:n.handle,port:y,process:Z,sandboxApiUrl:B,previewUrl:F,lastUsedAt:Date.now(),activeDispatchCount:0,daemonToken:T,registryMetadata:O};if(t.set(n.handle,A),$({handle:n.handle,status:"ready",sandboxPath:N,port:y,previewUrl:F,...O,error:null}),w({handle:n.handle,phase:"ready",port:y,previewUrl:F,sandboxPath:N,projectName:O.projectName,branch:O.branch}),Z.exited)Z.exited.then(()=>{if(t.get(n.handle)===A)console.warn(`[user-desktop] daemon process exited unexpectedly handle=${n.handle} port=${y} \u2014 removing from cache`),t.delete(n.handle),$({handle:n.handle,status:"stopped",sandboxPath:N,port:null,previewUrl:null,...O,error:null}),w({handle:n.handle,phase:"evicted"});else console.log(`[user-desktop] daemon process exited handle=${n.handle} port=${y} (already replaced/removed)`)});return{sandboxApiUrl:B,previewUrl:F,port:y}};return{async ensureSandbox(n){let O=t.get(n.handle);if(O){if(await d(O.sandboxApiUrl))return console.log(`[user-desktop] cache hit handle=${n.handle} port=${O.port} (alive)`),O.lastUsedAt=Date.now(),{sandboxApiUrl:O.sandboxApiUrl,previewUrl:O.previewUrl,port:O.port};console.warn(`[user-desktop] cache stale handle=${n.handle} port=${O.port} \u2014 respawning`),h(O)}let N=_.get(n.handle);if(N)return console.log(`[user-desktop] joining in-flight ensure handle=${n.handle}`),N;let y=D(n).finally(()=>{_.delete(n.handle)});return _.set(n.handle,y),y},proxyPort(n){let O=t.get(n);if(O)O.lastUsedAt=Date.now();return O?.port??null},getDaemonToken(n){return t.get(n)?.daemonToken??null},hasHandle(n){return t.has(n)||_.has(n)},recordHit(n){let O=t.get(n);if(O)O.lastUsedAt=Date.now()},acquireDispatch(n){let O=t.get(n);if(!O)return()=>{};O.activeDispatchCount+=1;let N=!1;return()=>{if(N)return;N=!0;let y=t.get(n);if(y)y.activeDispatchCount=Math.max(0,y.activeDispatchCount-1)}},listSandboxes(){return[...t.values()]},async deleteSandbox(n){let O=t.get(n);if(!O){console.log(`[user-desktop] delete handle=${n} (not found, no-op)`);return}if(O.activeDispatchCount>0){console.warn(`[user-desktop] delete handle=${n} port=${O.port} REFUSED \u2014 ${O.activeDispatchCount} active dispatch(es) in flight`);return}console.log(`[user-desktop] delete handle=${n} port=${O.port}`);try{O.process.kill("SIGTERM")}catch{}t.delete(n),$({handle:n,status:"stopped",sandboxPath:E(n),port:null,previewUrl:null,repoCloneUrl:null,branch:null,projectName:null,error:null}),w({handle:n,phase:"deleted"})},async shutdown(){console.log(`[user-desktop] shutdown \u2014 killing ${t.size} sandbox(es)`);for(let n of t.values())try{n.process.kill("SIGTERM")}catch{}t.clear()}}}function bCt(){return new Promise((i,u)=>{let t=QCt();t.unref(),t.on("error",u),t.listen(0,"127.0.0.1",()=>{let f=t.address();if(f&&typeof f==="object"){let l=f.port;t.close(()=>i(l))}else t.close(()=>u(Error("could not allocate port")))})})}var ceu=()=>{};import{randomUUID as CCt}from"crypto";import{hostname as MCt}from"os";async function Eeu(i){let u=MCt()||void 0;i.monitor?.onMachine?.(u??"this machine");let t=zbu(i.dataDir,{outFd:i.logFd,perSandboxLog:i.perSandboxLogs,hotReload:i.hotReload}),f=J1i({path:K1i(i.dataDir),managedSandboxRoot:`${i.dataDir}/sandboxes`}),l=!1,c=()=>{if(l)return;l=!0;try{f.close()}catch{}};try{let E=0,$=leu({dataDir:i.dataDir,registry:f,resolvePreviewUrl:(k,q)=>E>0?`http://${k}.localhost:${E}`:`http://127.0.0.1:${q}`,spawnDaemon:async(k)=>{let q={DAEMON_BOOT_ID:CCt(),APP_ROOT:k.workdir,PROXY_PORT:String(k.port),DAEMON_TOKEN:k.daemonToken,OFFLOAD_ALLOWED_HOSTS:k.offloadAllowedHosts.join(","),...k.offloadAllowSameHostDev?{OFFLOAD_ALLOW_SAME_HOST_DEV:"1"}:{}};if(k.orgFsConfigJson){let W=await Cbu(i.dataDir);if(W)q.ORGFS_CONFIG=k.orgFsConfigJson,q.ORGFS_RCLONE_PATH=W}let J=await t({workdir:k.workdir,env:q,daemonPort:k.port});return{port:k.port,kill:(W)=>J.kill(W),exited:J.exited.then(()=>{return})}},postConfig:async(k,q,J,W)=>{let r={port:q};if(J.workload)r.runtime=J.workload.runtime,r.packageManager={name:J.workload.packageManager,...J.workload.packageManagerPath?{path:J.workload.packageManagerPath}:{}};let Y={application:r},fi=vh(J.operator??null);if(fi)Y.operator=fi;if(J.repo)Y.git={repository:{cloneUrl:J.repo.cloneUrl,branch:J.repo.branch},...J.repo.userName&&J.repo.userEmail?{identity:{userName:J.repo.userName,userEmail:J.repo.userEmail}}:{}};await w2(`http://127.0.0.1:${k}`,W,Y)},waitForHealth:async(k)=>{await Kli(`http://127.0.0.1:${k}`)},maxSandboxes:20,onEvent:i.monitor?.onEvent}),w=await jmu({port:i.port,lookupSandboxPort:(k)=>$.proxyPort(k)});E=w.port,console.log(`Local ingress listening on http://127.0.0.1:${w.port} (use http://<handle>.localhost:${w.port}/)`),i.monitor?.onIngress?.(w.port);let d=qbu({provider:$}),h=async()=>{let k=await $2({dataDir:i.dataDir,target:i.clusterBaseUrl});if(!k)throw Object.assign(Error(`Session for ${i.clusterBaseUrl} is no longer valid \u2014 run \`deco auth login --target ${i.clusterBaseUrl}\` and restart \`deco link\`.`),{fatal:!0});return k.accessToken},_=await Rmu(i.dataDir),v=process.env.npm_package_version??"0.0.0",D=await KRi(),n=zmu(D,{onChange:(k)=>{console.log(`[link-daemon] capabilities detected: +${k.join(",")} (now: ${D.join(",")})`)}}),O=Tzi({path:`${i.dataDir}/link/outbox.sqlite`});O.clear();let N=()=>{},y=new AbortController,Z={clusterBaseUrl:i.clusterBaseUrl,getAccessToken:h,provider:$,outbox:O,controlHandler:d,capabilities:D,machineId:_,cliVersion:v,previewPort:w.port,onConnected:()=>{i.monitor?.onCluster?.("linked"),console.log(`Linked to ${i.clusterBaseUrl}`)},onShutdown:()=>N(),runLifetimeSignal:y.signal};console.log(`[link-daemon] transport=tunnel cluster=${i.clusterBaseUrl}`);let T=await Zmu(Z);console.log("[link-daemon] active transport=tunnel");let B,F=new Promise((k)=>{B=k}),A=!1,G=async()=>{if(A)return;A=!0,y.abort(),console.log(`
|
|
84521
84521
|
Shutting down\u2026`),n();try{await T.close()}catch{}try{await w.stop()}catch{}try{await $.shutdown()}catch{}try{O.close()}catch{}c(),B(0)};process.on("SIGINT",()=>void G()),process.on("SIGTERM",()=>void G()),N=()=>{console.log("Disconnect requested from the Studio web UI \u2014 shutting down. Run `bunx decocms@latest link` to reconnect."),G()},T.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!A)console.error("Cluster connection closed permanently; exiting."),G()});let I=pmu({provider:$,registry:f,dataDir:i.dataDir});return{stopped:F,stop:G,stopSandbox:I.stopSandbox,removeSandbox:I.removeSandbox,inspectSandbox:I.inspectSandbox}}catch(E){throw c(),E}}var $eu=g(()=>{Dzi();BM();Hbu();Mbu();Vbu();Bzi();Tmu();Kmu();Hmu();bmu();TM();JRi();ieu();ceu()});function XRi(i){return i.map((u)=>typeof u==="string"?u:String(u)).join(" ")}import{createServer as qCt}from"net";async function rCt(i){for(let u of VCt)if(await LRi(i,u))return u;return null}async function weu(i,{intervalMs:u=1000}={}){for(;;){let t=await rCt(i);if(t)return t;await O0(u)}}function LRi(i,u){return new Promise((t)=>{let f=qCt();f.once("error",(l)=>{t(l.code==="EADDRINUSE")}),f.listen(i,u,()=>{f.close(()=>t(!1))})})}var VCt;var WRi=g(()=>{y4();VCt=["localhost","127.0.0.1","0.0.0.0"]});function deu(i){return typeof i==="object"&&i!==null&&"code"in i&&i.code==="EADDRINUSE"}function mCt(i,u=process.platform){if(u==="win32")return`for /f "tokens=5" %P in ('netstat -ano ^| findstr /R /C:":${i} .*LISTENING"') do taskkill /F /PID %P`;return`kill -9 $(lsof -ti tcp:${i})`}function heu(i,u=process.platform){return[`Port ${i} is already in use.`,"Run this command to stop the process listening on it, then retry `decocms link`:","",` ${mCt(i,u)}`].join(`
|
|
84522
|
-
`)}var YRi;var _eu=g(()=>{YRi=class YRi extends Error{port;code="EADDRINUSE";constructor(i){super(`Port ${i} is already in use.`);this.port=i;this.name="PortInUseError"}}});var uW;var X1i=g(()=>{uW={name:"decocms",version:"4.82.2",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:ct":"playwright test -c playwright-ct.config.ts","test:ct:ui":"playwright test -c playwright-ct.config.ts --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts","smoke:link":"bun run scripts/smoke-link.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.3.181","@duckdb/node-api":"^1.5.0-r.1","@openai/codex":"0.144.3","@openai/codex-darwin-arm64":"npm:@openai/codex@0.144.3-darwin-arm64","@openai/codex-darwin-x64":"npm:@openai/codex@0.144.3-darwin-x64","@openai/codex-linux-arm64":"npm:@openai/codex@0.144.3-linux-arm64","@openai/codex-linux-x64":"npm:@openai/codex@0.144.3-linux-x64","@openai/codex-win32-arm64":"npm:@openai/codex@0.144.3-win32-arm64","@openai/codex-win32-x64":"npm:@openai/codex@0.144.3-win32-x64"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.7.1","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@tiptap/extension-text-align":"3.20.2","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0",echarts:"^5.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6","use-stick-to-bottom":"^1.1.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.210","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/harness":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/std":"workspace:*","@decocms/tunnel":"workspace:*","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/experimental-ct-react":"1.59.1","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/shadcn":"^6.6.2","@rjsf/utils":"^6.6.2","@rjsf/validator-ajv8":"^6.6.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.100.10","@tanstack/react-router":"1.169.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.208","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.22","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","lucide-react":"^0.468.0",marked:"^15.0.6",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});var pM={};Xi(pM,{printBanner:()=>oCt,bannerLines:()=>veu,BANNER_LINES:()=>L1i,BANNER_GRADIENT:()=>W1i});function aCt(i){let u=Number.parseInt(i.slice(1),16);return[u>>16&255,u>>8&255,u&255]}function veu(i){let u=L1i.map((t,f)=>{let[l,c,E]=aCt(W1i[f]);return`\x1B[38;2;${l};${c};${E}m${t}\x1B[39m`});if(i!==void 0)u.push(`\x1B[2m v${i}\x1B[22m`);return u}function oCt(i){console.log("");for(let u of veu(i))console.log(u);console.log("")}var L1i,W1i;var tW=g(()=>{L1i=[" \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 "],W1i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as sCt,Text as Deu}from"ink";import{jsx as pCt,jsxs as neu}from"react/jsx-runtime";function Y1i({version:i}){return neu(sCt,{flexDirection:"column",marginTop:1,children:[L1i.map((u,t)=>pCt(Deu,{color:W1i[t],children:u},t)),neu(Deu,{dimColor:!0,children:[" v",i]})]})}var QRi=g(()=>{tW()});function geu(i){let u=i.branch??i.handle,t=[];if(i.dirtyCount>0)t.push(`${i.dirtyCount} uncommitted file${i.dirtyCount===1?"":"s"}`);if(i.merged===!1)t.push("branch not merged");return t.length>0?`\u26A0 ${t.join(", ")} \u2014 delete ${u}? (y/n)`:`Delete ${u}? (y/n)`}function fW(i){return[...i.values()].map((u)=>u.handle).sort((u,t)=>u.localeCompare(t))}function Oeu(i,u,t){if(i.length===0)return null;let f=u===null?-1:i.indexOf(u);if(f===-1)return t>0?i[0]:i[i.length-1];let l=Math.max(0,Math.min(i.length-1,f+t));return i[l]}function Neu(i,u,t){if(t!==u)return t;let f=i.indexOf(u);if(f===-1)return t;return i[f+1]??i[f-1]??null}var bRi={};Xi(bRi,{subscribeLinkState:()=>zRi,setSelectedHandle:()=>HRi,setRemoving:()=>H1i,setPersistedSandboxes:()=>dMt,setPendingConfirm:()=>uq,setMachine:()=>cMt,setLogPath:()=>$Mt,setLinkActions:()=>wMt,setIngress:()=>lMt,setDaemonError:()=>EMt,setClusterUrl:()=>fMt,setCluster:()=>tMt,setActionError:()=>z1i,resetLinkStateForTests:()=>_Mt,removeSandboxRow:()=>RRi,pushSandboxEvent:()=>hMt,getLinkState:()=>iq,applySandboxEvent:()=>yeu});function uMt(i){return i==="spawning"||i==="ready"||i==="failed"}function yeu(i,u){let t=new Map(i),f=t.get(u.handle);if(u.phase==="evicted"||u.phase==="deleted"){if(f)t.set(u.handle,{...f,port:null,previewUrl:null,status:"stopped",error:null});return t}return t.set(u.handle,{handle:u.handle,port:u.port??f?.port??null,previewUrl:u.previewUrl??f?.previewUrl??null,status:u.phase,error:u.phase==="failed"?u.error??"failed":null,projectName:u.projectName??f?.projectName??null,branch:u.branch??f?.branch??null,sandboxPath:u.sandboxPath??f?.sandboxPath??null}),t}function Zeu(){return{cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:iMt,sandboxes:new Map,daemonError:null,logPath:null,selectedHandle:null,pendingConfirm:null,removingHandles:new Set,actionError:null,actions:null}}function z$(){for(let i of Q1i)i()}function iq(){return cf}function zRi(i){return Q1i.add(i),()=>Q1i.delete(i)}function tMt(i){cf={...cf,cluster:i},z$()}function fMt(i){cf={...cf,clusterUrl:i},z$()}function lMt(i,u){cf={...cf,ingressPort:i,ingressUrl:u},z$()}function cMt(i){cf={...cf,machine:i},z$()}function EMt(i){cf={...cf,daemonError:i},z$()}function $Mt(i){cf={...cf,logPath:i},z$()}function HRi(i){cf={...cf,selectedHandle:i},z$()}function uq(i){cf={...cf,pendingConfirm:i},z$()}function z1i(i){cf={...cf,actionError:i},z$()}function H1i(i,u){if(cf.removingHandles.has(i)===u)return;let t=new Set(cf.removingHandles);if(u)t.add(i);else t.delete(i);cf={...cf,removingHandles:t},z$()}function wMt(i){cf={...cf,actions:i},z$()}function RRi(i){let u=fW(cf.sandboxes),t=Neu(u,i,cf.selectedHandle),f=new Map(cf.sandboxes);f.delete(i);let l=new Set(cf.removingHandles);l.delete(i),cf={...cf,sandboxes:f,selectedHandle:t,pendingConfirm:null,removingHandles:l},z$()}function dMt(i){let u=new Map;for(let t of i)u.set(t.handle,{handle:t.handle,port:t.port,previewUrl:t.previewUrl,status:t.status,error:t.error,projectName:t.projectName,branch:t.branch,sandboxPath:t.sandboxPath});for(let[t,f]of cf.sandboxes)if(uMt(f.status))u.set(t,f);cf={...cf,sandboxes:u},z$()}function hMt(i){cf={...cf,sandboxes:yeu(cf.sandboxes,i)},z$()}function _Mt(){cf=Zeu(),Q1i.clear()}var iMt=20,cf,Q1i;var tq=g(()=>{cf=Zeu(),Q1i=new Set});import{spawn as vMt}from"child_process";function DMt(i){if(i==="darwin")return"open";if(i==="win32")return"start";return"xdg-open"}function Teu(i,u=process.platform){let t=DMt(u);try{vMt(t,[i],{stdio:"ignore",detached:!0}).unref()}catch{}}var Beu=()=>{};function Feu(i,u={}){let t=u.openUrl??Teu,f=iq(),l=fW(f.sandboxes),c=f.selectedHandle!==null&&l.includes(f.selectedHandle)?f.selectedHandle:l[0]??null,E=f.actions;switch(i.type){case"move":HRi(Oeu(l,f.selectedHandle,i.delta));return;case"open":{if(c===null)return;let $=f.sandboxes.get(c);if($?.status==="ready"&&$.previewUrl)t($.previewUrl);return}case"stop":if(c!==null&&E)E.stopSandbox(c);return;case"delete":{if(c===null||!E)return;let $=E.inspectSandbox(c),w=f.sandboxes.get(c);z1i(null),uq({handle:c,branch:$?.branch??w?.branch??null,dirtyCount:$?.dirtyCount??0,merged:$?.merged??null});return}case"confirmYes":{let $=f.pendingConfirm;if(uq(null),$===null||!E)return;H1i($.handle,!0),E.removeSandbox($.handle).then((w)=>{if(w.ok)RRi($.handle);else H1i($.handle,!1),z1i(w.error)});return}case"confirmNo":uq(null);return;case"quit":if(E)E.quit();return}}var Ueu=g(()=>{tq();Beu()});function Peu(i,u,t){if(t)return i==="y"||i==="Y"?{type:"confirmYes"}:{type:"confirmNo"};if(u.upArrow||i==="k")return{type:"move",delta:-1};if(u.downArrow||i==="j")return{type:"move",delta:1};if(i==="s")return{type:"stop"};if(i==="d")return{type:"delete"};if(i==="o")return{type:"open"};if(i==="q"||u.ctrl===!0&&i==="c")return{type:"quit"};return null}var Aeu={};Xi(Aeu,{LinkApp:()=>NMt});import{Box as ql,Text as _1,useInput as nMt}from"ink";import{useSyncExternalStore as gMt}from"react";import{jsx as Gf,jsxs as Uh}from"react/jsx-runtime";function OMt(i,u){if(u)return{color:"yellow",text:"\u25CC Removing\u2026"};if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};if(i.status==="stopped")return{color:"gray",text:"\u25A0 Stopped"};if(i.status==="missing")return{color:"yellow",text:"\u25A1 Missing"};if(i.status==="merged")return{color:"cyan",text:"\u2713 Merged"};if(i.status==="invalid")return{color:"red",text:"\u2717 Invalid"};if(i.status==="failed")return{color:"red",text:`\u2717 Failed: ${i.error??"failed"}`};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function NMt(){let i=gMt(zRi,iq),u=[...i.sandboxes.values()].sort((l,c)=>l.handle.localeCompare(c.handle)),t=fW(i.sandboxes),f=i.selectedHandle!==null&&t.includes(i.selectedHandle)?i.selectedHandle:t[0]??null;return nMt((l,c)=>{let E=Peu(l,c,i.pendingConfirm!==null);if(E!==null)Feu(E)}),Uh(ql,{flexDirection:"column",children:[Gf(Y1i,{version:uW.version}),Gf(ql,{marginBottom:1,children:Gf(_1,{dimColor:!0,children:"\u2500".repeat(80)})}),Gf(ql,{children:i.cluster==="linked"?Uh(_1,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?Uh(_1,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):Uh(_1,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),Gf(ql,{children:i.ingressUrl?Uh(_1,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):Gf(_1,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),Gf(ql,{marginBottom:1,children:Gf(_1,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${u.length} of ${i.cap} previews`})}),u.length===0?Gf(_1,{dimColor:!0,children:"No previews running yet."}):Uh(ql,{flexDirection:"column",children:[Uh(ql,{children:[Gf(ql,{width:2,flexShrink:0}),Gf(ql,{width:lW.project,flexShrink:0,marginRight:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),Gf(ql,{width:lW.branch,flexShrink:0,marginRight:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"BRANCH"})}),Gf(ql,{width:lW.status,flexShrink:0,marginRight:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),Gf(ql,{flexGrow:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),u.map((l)=>{let c=OMt(l,i.removingHandles.has(l.handle)),E=l.handle===f;return Uh(ql,{children:[Gf(ql,{width:2,flexShrink:0,children:Gf(_1,{color:"cyan",children:E?"\u203A":" "})}),Gf(ql,{width:lW.project,flexShrink:0,marginRight:1,children:Gf(_1,{bold:E,wrap:"truncate-end",children:l.projectName??l.handle})}),Gf(ql,{width:lW.branch,flexShrink:0,marginRight:1,children:Gf(_1,{bold:E,wrap:"truncate-end",children:l.branch??"\u2014"})}),Gf(ql,{width:lW.status,flexShrink:0,marginRight:1,children:Gf(_1,{color:c.color,bold:E,wrap:"truncate-end",children:c.text})}),Gf(ql,{flexGrow:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:l.previewUrl??"\u2014"})})]},l.handle)})]}),i.daemonError?Gf(ql,{marginTop:1,children:Uh(_1,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?Gf(ql,{marginTop:1,children:Uh(_1,{dimColor:!0,children:["Logs: ",i.logPath]})}):null,i.pendingConfirm?Gf(ql,{marginTop:1,children:Gf(_1,{color:"yellow",children:geu(i.pendingConfirm)})}):null,i.actionError?Gf(ql,{marginTop:1,children:Uh(_1,{color:"red",children:["\u2717 ",i.actionError]})}):null,Gf(ql,{marginTop:1,children:Gf(_1,{dimColor:!0,children:"\u2191\u2193 move \xB7 s stop \xB7 d delete \xB7 o open \xB7 q quit"})})]})}var lW;var Ieu=g(()=>{X1i();QRi();Ueu();tq();lW={project:18,branch:22,status:14}});var xeu={};Xi(xeu,{runLinkCommand:()=>AMt});import{closeSync as yMt,mkdirSync as ZMt,openSync as TMt,writeSync as BMt}from"fs";import{homedir as FMt}from"os";import{join as CRi}from"path";function UMt(i,u){let t={log:console.log,warn:console.warn,error:console.error},f=(l)=>{if(u===void 0)return;try{BMt(u,`${XRi(l)}
|
|
84522
|
+
`)}var YRi;var _eu=g(()=>{YRi=class YRi extends Error{port;code="EADDRINUSE";constructor(i){super(`Port ${i} is already in use.`);this.port=i;this.name="PortInUseError"}}});var uW;var X1i=g(()=>{uW={name:"decocms",version:"4.82.4",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/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:ct":"playwright test -c playwright-ct.config.ts","test:ct:ui":"playwright test -c playwright-ct.config.ts --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts","smoke:link":"bun run scripts/smoke-link.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.3.181","@duckdb/node-api":"^1.5.0-r.1","@openai/codex":"0.144.3","@openai/codex-darwin-arm64":"npm:@openai/codex@0.144.3-darwin-arm64","@openai/codex-darwin-x64":"npm:@openai/codex@0.144.3-darwin-x64","@openai/codex-linux-arm64":"npm:@openai/codex@0.144.3-linux-arm64","@openai/codex-linux-x64":"npm:@openai/codex@0.144.3-linux-x64","@openai/codex-win32-arm64":"npm:@openai/codex@0.144.3-win32-arm64","@openai/codex-win32-x64":"npm:@openai/codex@0.144.3-win32-x64"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.7.1","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@tiptap/extension-text-align":"3.20.2","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0",echarts:"^5.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6","use-stick-to-bottom":"^1.1.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.210","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/harness":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/std":"workspace:*","@decocms/tunnel":"workspace:*","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/experimental-ct-react":"1.59.1","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/shadcn":"^6.6.2","@rjsf/utils":"^6.6.2","@rjsf/validator-ajv8":"^6.6.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.100.10","@tanstack/react-router":"1.169.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.208","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.22","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","lucide-react":"^0.468.0",marked:"^15.0.6",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});var pM={};Xi(pM,{printBanner:()=>oCt,bannerLines:()=>veu,BANNER_LINES:()=>L1i,BANNER_GRADIENT:()=>W1i});function aCt(i){let u=Number.parseInt(i.slice(1),16);return[u>>16&255,u>>8&255,u&255]}function veu(i){let u=L1i.map((t,f)=>{let[l,c,E]=aCt(W1i[f]);return`\x1B[38;2;${l};${c};${E}m${t}\x1B[39m`});if(i!==void 0)u.push(`\x1B[2m v${i}\x1B[22m`);return u}function oCt(i){console.log("");for(let u of veu(i))console.log(u);console.log("")}var L1i,W1i;var tW=g(()=>{L1i=[" \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 "],W1i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as sCt,Text as Deu}from"ink";import{jsx as pCt,jsxs as neu}from"react/jsx-runtime";function Y1i({version:i}){return neu(sCt,{flexDirection:"column",marginTop:1,children:[L1i.map((u,t)=>pCt(Deu,{color:W1i[t],children:u},t)),neu(Deu,{dimColor:!0,children:[" v",i]})]})}var QRi=g(()=>{tW()});function geu(i){let u=i.branch??i.handle,t=[];if(i.dirtyCount>0)t.push(`${i.dirtyCount} uncommitted file${i.dirtyCount===1?"":"s"}`);if(i.merged===!1)t.push("branch not merged");return t.length>0?`\u26A0 ${t.join(", ")} \u2014 delete ${u}? (y/n)`:`Delete ${u}? (y/n)`}function fW(i){return[...i.values()].map((u)=>u.handle).sort((u,t)=>u.localeCompare(t))}function Oeu(i,u,t){if(i.length===0)return null;let f=u===null?-1:i.indexOf(u);if(f===-1)return t>0?i[0]:i[i.length-1];let l=Math.max(0,Math.min(i.length-1,f+t));return i[l]}function Neu(i,u,t){if(t!==u)return t;let f=i.indexOf(u);if(f===-1)return t;return i[f+1]??i[f-1]??null}var bRi={};Xi(bRi,{subscribeLinkState:()=>zRi,setSelectedHandle:()=>HRi,setRemoving:()=>H1i,setPersistedSandboxes:()=>dMt,setPendingConfirm:()=>uq,setMachine:()=>cMt,setLogPath:()=>$Mt,setLinkActions:()=>wMt,setIngress:()=>lMt,setDaemonError:()=>EMt,setClusterUrl:()=>fMt,setCluster:()=>tMt,setActionError:()=>z1i,resetLinkStateForTests:()=>_Mt,removeSandboxRow:()=>RRi,pushSandboxEvent:()=>hMt,getLinkState:()=>iq,applySandboxEvent:()=>yeu});function uMt(i){return i==="spawning"||i==="ready"||i==="failed"}function yeu(i,u){let t=new Map(i),f=t.get(u.handle);if(u.phase==="evicted"||u.phase==="deleted"){if(f)t.set(u.handle,{...f,port:null,previewUrl:null,status:"stopped",error:null});return t}return t.set(u.handle,{handle:u.handle,port:u.port??f?.port??null,previewUrl:u.previewUrl??f?.previewUrl??null,status:u.phase,error:u.phase==="failed"?u.error??"failed":null,projectName:u.projectName??f?.projectName??null,branch:u.branch??f?.branch??null,sandboxPath:u.sandboxPath??f?.sandboxPath??null}),t}function Zeu(){return{cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:iMt,sandboxes:new Map,daemonError:null,logPath:null,selectedHandle:null,pendingConfirm:null,removingHandles:new Set,actionError:null,actions:null}}function z$(){for(let i of Q1i)i()}function iq(){return cf}function zRi(i){return Q1i.add(i),()=>Q1i.delete(i)}function tMt(i){cf={...cf,cluster:i},z$()}function fMt(i){cf={...cf,clusterUrl:i},z$()}function lMt(i,u){cf={...cf,ingressPort:i,ingressUrl:u},z$()}function cMt(i){cf={...cf,machine:i},z$()}function EMt(i){cf={...cf,daemonError:i},z$()}function $Mt(i){cf={...cf,logPath:i},z$()}function HRi(i){cf={...cf,selectedHandle:i},z$()}function uq(i){cf={...cf,pendingConfirm:i},z$()}function z1i(i){cf={...cf,actionError:i},z$()}function H1i(i,u){if(cf.removingHandles.has(i)===u)return;let t=new Set(cf.removingHandles);if(u)t.add(i);else t.delete(i);cf={...cf,removingHandles:t},z$()}function wMt(i){cf={...cf,actions:i},z$()}function RRi(i){let u=fW(cf.sandboxes),t=Neu(u,i,cf.selectedHandle),f=new Map(cf.sandboxes);f.delete(i);let l=new Set(cf.removingHandles);l.delete(i),cf={...cf,sandboxes:f,selectedHandle:t,pendingConfirm:null,removingHandles:l},z$()}function dMt(i){let u=new Map;for(let t of i)u.set(t.handle,{handle:t.handle,port:t.port,previewUrl:t.previewUrl,status:t.status,error:t.error,projectName:t.projectName,branch:t.branch,sandboxPath:t.sandboxPath});for(let[t,f]of cf.sandboxes)if(uMt(f.status))u.set(t,f);cf={...cf,sandboxes:u},z$()}function hMt(i){cf={...cf,sandboxes:yeu(cf.sandboxes,i)},z$()}function _Mt(){cf=Zeu(),Q1i.clear()}var iMt=20,cf,Q1i;var tq=g(()=>{cf=Zeu(),Q1i=new Set});import{spawn as vMt}from"child_process";function DMt(i){if(i==="darwin")return"open";if(i==="win32")return"start";return"xdg-open"}function Teu(i,u=process.platform){let t=DMt(u);try{vMt(t,[i],{stdio:"ignore",detached:!0}).unref()}catch{}}var Beu=()=>{};function Feu(i,u={}){let t=u.openUrl??Teu,f=iq(),l=fW(f.sandboxes),c=f.selectedHandle!==null&&l.includes(f.selectedHandle)?f.selectedHandle:l[0]??null,E=f.actions;switch(i.type){case"move":HRi(Oeu(l,f.selectedHandle,i.delta));return;case"open":{if(c===null)return;let $=f.sandboxes.get(c);if($?.status==="ready"&&$.previewUrl)t($.previewUrl);return}case"stop":if(c!==null&&E)E.stopSandbox(c);return;case"delete":{if(c===null||!E)return;let $=E.inspectSandbox(c),w=f.sandboxes.get(c);z1i(null),uq({handle:c,branch:$?.branch??w?.branch??null,dirtyCount:$?.dirtyCount??0,merged:$?.merged??null});return}case"confirmYes":{let $=f.pendingConfirm;if(uq(null),$===null||!E)return;H1i($.handle,!0),E.removeSandbox($.handle).then((w)=>{if(w.ok)RRi($.handle);else H1i($.handle,!1),z1i(w.error)});return}case"confirmNo":uq(null);return;case"quit":if(E)E.quit();return}}var Ueu=g(()=>{tq();Beu()});function Peu(i,u,t){if(t)return i==="y"||i==="Y"?{type:"confirmYes"}:{type:"confirmNo"};if(u.upArrow||i==="k")return{type:"move",delta:-1};if(u.downArrow||i==="j")return{type:"move",delta:1};if(i==="s")return{type:"stop"};if(i==="d")return{type:"delete"};if(i==="o")return{type:"open"};if(i==="q"||u.ctrl===!0&&i==="c")return{type:"quit"};return null}var Aeu={};Xi(Aeu,{LinkApp:()=>NMt});import{Box as ql,Text as _1,useInput as nMt}from"ink";import{useSyncExternalStore as gMt}from"react";import{jsx as Gf,jsxs as Uh}from"react/jsx-runtime";function OMt(i,u){if(u)return{color:"yellow",text:"\u25CC Removing\u2026"};if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};if(i.status==="stopped")return{color:"gray",text:"\u25A0 Stopped"};if(i.status==="missing")return{color:"yellow",text:"\u25A1 Missing"};if(i.status==="merged")return{color:"cyan",text:"\u2713 Merged"};if(i.status==="invalid")return{color:"red",text:"\u2717 Invalid"};if(i.status==="failed")return{color:"red",text:`\u2717 Failed: ${i.error??"failed"}`};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function NMt(){let i=gMt(zRi,iq),u=[...i.sandboxes.values()].sort((l,c)=>l.handle.localeCompare(c.handle)),t=fW(i.sandboxes),f=i.selectedHandle!==null&&t.includes(i.selectedHandle)?i.selectedHandle:t[0]??null;return nMt((l,c)=>{let E=Peu(l,c,i.pendingConfirm!==null);if(E!==null)Feu(E)}),Uh(ql,{flexDirection:"column",children:[Gf(Y1i,{version:uW.version}),Gf(ql,{marginBottom:1,children:Gf(_1,{dimColor:!0,children:"\u2500".repeat(80)})}),Gf(ql,{children:i.cluster==="linked"?Uh(_1,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?Uh(_1,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):Uh(_1,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),Gf(ql,{children:i.ingressUrl?Uh(_1,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):Gf(_1,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),Gf(ql,{marginBottom:1,children:Gf(_1,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${u.length} of ${i.cap} previews`})}),u.length===0?Gf(_1,{dimColor:!0,children:"No previews running yet."}):Uh(ql,{flexDirection:"column",children:[Uh(ql,{children:[Gf(ql,{width:2,flexShrink:0}),Gf(ql,{width:lW.project,flexShrink:0,marginRight:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),Gf(ql,{width:lW.branch,flexShrink:0,marginRight:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"BRANCH"})}),Gf(ql,{width:lW.status,flexShrink:0,marginRight:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),Gf(ql,{flexGrow:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),u.map((l)=>{let c=OMt(l,i.removingHandles.has(l.handle)),E=l.handle===f;return Uh(ql,{children:[Gf(ql,{width:2,flexShrink:0,children:Gf(_1,{color:"cyan",children:E?"\u203A":" "})}),Gf(ql,{width:lW.project,flexShrink:0,marginRight:1,children:Gf(_1,{bold:E,wrap:"truncate-end",children:l.projectName??l.handle})}),Gf(ql,{width:lW.branch,flexShrink:0,marginRight:1,children:Gf(_1,{bold:E,wrap:"truncate-end",children:l.branch??"\u2014"})}),Gf(ql,{width:lW.status,flexShrink:0,marginRight:1,children:Gf(_1,{color:c.color,bold:E,wrap:"truncate-end",children:c.text})}),Gf(ql,{flexGrow:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:l.previewUrl??"\u2014"})})]},l.handle)})]}),i.daemonError?Gf(ql,{marginTop:1,children:Uh(_1,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?Gf(ql,{marginTop:1,children:Uh(_1,{dimColor:!0,children:["Logs: ",i.logPath]})}):null,i.pendingConfirm?Gf(ql,{marginTop:1,children:Gf(_1,{color:"yellow",children:geu(i.pendingConfirm)})}):null,i.actionError?Gf(ql,{marginTop:1,children:Uh(_1,{color:"red",children:["\u2717 ",i.actionError]})}):null,Gf(ql,{marginTop:1,children:Gf(_1,{dimColor:!0,children:"\u2191\u2193 move \xB7 s stop \xB7 d delete \xB7 o open \xB7 q quit"})})]})}var lW;var Ieu=g(()=>{X1i();QRi();Ueu();tq();lW={project:18,branch:22,status:14}});var xeu={};Xi(xeu,{runLinkCommand:()=>AMt});import{closeSync as yMt,mkdirSync as ZMt,openSync as TMt,writeSync as BMt}from"fs";import{homedir as FMt}from"os";import{join as CRi}from"path";function UMt(i,u){let t={log:console.log,warn:console.warn,error:console.error},f=(l)=>{if(u===void 0)return;try{BMt(u,`${XRi(l)}
|
|
84523
84523
|
`)}catch{}};return console.log=(...l)=>f(l),console.warn=(...l)=>f(l),console.error=(...l)=>{f(l),i(XRi(l))},()=>{console.log=t.log,console.warn=t.warn,console.error=t.error}}async function PMt(i,u){let t;try{t=await fetch(`${i}/api/links/me`,{headers:{authorization:`Bearer ${u}`},signal:AbortSignal.timeout(1e4)})}catch{return}if(t.status===401||t.status===403)throw Error(`Authentication rejected by ${i} \u2014 the session token was not accepted. `+`Run \`deco auth login --target ${i}\` and try again.`)}async function AMt(i={}){let u=i.port??5174,t=i.dataDir??process.env.DATA_DIR??process.env.DECOCMS_HOME??CRi(FMt(),"deco"),f=i.clusterBaseUrl??process.env.MESH_CLUSTER_URL??"https://studio.decocms.com",l,c,E,$=()=>{if(E===void 0)return;try{E.close()}catch{}finally{E=void 0}};try{if(await LRi(u,"127.0.0.1"))throw new YRi(u);let w=CRi(t,"sandboxes");E=J1i({path:K1i(t),managedSandboxRoot:w});let d=await kli({dataDir:t,intent:"Link",target:f});if(process.env.DECOCMS_LINK_MANAGED!=="1")await PMt(f,d.accessToken);let h=E.reconcile();if(i.prune){let n=E.prune({missing:!0,merged:!0});if(!i.tui)console.log(`Pruned local sandboxes: removed ${n.removed.length}, skipped ${n.skipped.length}.`);h=E.reconcile()}let _;if(i.tui){let{render:n}=await import("ink"),{createElement:O}=await import("react"),{LinkApp:N}=await Promise.resolve().then(() => (Ieu(),Aeu)),{pushSandboxEvent:y,setCluster:Z,setClusterUrl:T,setDaemonError:B,setIngress:F,setLogPath:A,setMachine:G,setPersistedSandboxes:I}=await Promise.resolve().then(() => (tq(),bRi));ZMt(t,{recursive:!0});let k=CRi(t,"link.log");c=TMt(k,"w"),A(k),I(h),T(f),Z("connecting"),_={onEvent:(q)=>y(q),onIngress:(q)=>F(q,`http://127.0.0.1:${q}`),onCluster:(q)=>Z(q),onMachine:(q)=>G(q)},l=UMt(B,c),n(O(N),{patchConsole:!1})}else if(i.banner!==!1){let{printBanner:n}=await Promise.resolve().then(() => (tW(),pM));n(i.version??"0.0.0")}$();let v=process.env.DECOCMS_LINK_MANAGED!=="1",D=await Eeu({port:u,clusterBaseUrl:f,dataDir:t,session:d,monitor:_,logFd:c,perSandboxLogs:v,hotReload:i.hotReload});if(i.tui){let{setLinkActions:n}=await Promise.resolve().then(() => (tq(),bRi));n({stopSandbox:D.stopSandbox,removeSandbox:D.removeSandbox,inspectSandbox:D.inspectSandbox,quit:D.stop})}return await D.stopped}catch(w){return l?.(),console.error(deu(w)?heu(u):w instanceof Error?w.message:String(w)),1}finally{if(l?.(),c!==void 0)try{yMt(c)}catch{}$()}}var keu=g(()=>{vzi();$eu();WRi();_eu();JRi()});var eRi={};Xi(eRi,{resolveDevLinkClusterUrl:()=>GMt,populateDevLinkToxiProxy:()=>Xeu,isDevLinkToxiProxyEnabled:()=>kMt,ensureDevLinkToxiProxy:()=>XMt,buildDevLinkToxiProxyConfig:()=>Keu,DEV_LINK_TOXIPROXY_SERVICE_NAME:()=>Seu,DEV_LINK_TOXIPROXY_PROXY_NAME:()=>jeu});function kMt(i=process.env){return i.DECO_DEV_LINK_TOXIPROXY==="1"}function MRi(i,u){if(!Number.isInteger(i)||i<1||i>65535)throw Error(`${u} must be an integer port in 1..65535`);return i}function Keu(i){let u=new URL(i.serverUrl);if(u.protocol!=="http:")throw Error("DECO_DEV_LINK_TOXIPROXY only supports http local Studio URLs");let t=MRi(i.apiPort,"apiPort"),f=MRi(i.listenPort,"listenPort");if(u.port.length===0)throw Error("serverUrl must include an explicit valid port");let l=MRi(Number.parseInt(u.port,10),"upstreamPort"),c=`http://127.0.0.1:${l}`,E=`http://127.0.0.1:${f}`;return{serviceName:Seu,proxyName:jeu,apiUrl:`http://127.0.0.1:${t}`,listen:`0.0.0.0:${f}`,upstream:`host.docker.internal:${l}`,publicTargetUrl:c,clusterUrl:E,logLine:`[dev-link-toxiproxy] ready: ${E} -> ${c}`}}function GMt(i){return i.toxiproxy?.clusterUrl??i.serverUrl}async function qRi(i,u,t){if(i.ok)return;let f=await i.text();throw Error(`ToxiProxy ${u} failed for ${t}: status=${i.status} statusText=${i.statusText} body=${f}`)}function mRi(i){if(i instanceof Error)return i.name==="Error"?i.message:`${i.name}: ${i.message}`;return String(i)}function Jeu(i){if(!(i instanceof Error))return!1;if(i.name==="TimeoutError")return!0;return Jeu(i.cause)}async function VRi(i,u,t,f){try{return await i(t,f)}catch(l){throw Error(`ToxiProxy ${u} failed for ${t}: ${mRi(l)}`,{cause:l})}}async function Xeu(i,u=fetch){let t=`${i.apiUrl}/reset`,f=await VRi(u,"reset",t,{method:"POST"});await qRi(f,"reset",t);let l=`${i.apiUrl}/populate`,c=await VRi(u,"populate",l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify([{name:i.proxyName,listen:i.listen,upstream:i.upstream,enabled:!0}])});await qRi(c,"populate",l)}async function SMt(i,u){let t=`${i.apiUrl}/version`;try{await Cl(async()=>{let f=await VRi(u,"readiness check",t,{method:"GET",signal:AbortSignal.timeout(xMt)});await qRi(f,"readiness check",t)},{maxAttempts:IMt,minTimeout:Geu,maxTimeout:Geu,multiplier:1,jitter:0,isRetriable:(f)=>!Jeu(f)})}catch(f){let l=f instanceof Wc?f.cause:f;throw Error(`ToxiProxy API did not become ready at ${t}: ${mRi(l)}`,{cause:l})}}async function jMt(i){if(i===null)return"";return await new Response(i).text()}async function rRi(i,u={}){let t=["docker",...i].join(" "),f=(()=>{try{return Bun.spawn(["docker",...i],{stdout:"ignore",stderr:"pipe"})}catch($){throw Error(`Docker command failed to start (${t}): ${mRi($)}`,{cause:$})}})(),[l,c]=await Promise.all([f.exited,jMt(f.stderr)]);if(l===0||u.ignoreFailure===!0)return;let E=c.trim().length>0?`: ${c.trim()}`:"";throw Error(`Docker command failed (${t}) with exit ${l}${E}`)}async function KMt(i,u){let t=`deco-dev-link-toxiproxy-${i}`;await rRi(["rm","-f",t],{ignoreFailure:!0}),await rRi(["run","--rm","-d","--name",t,"-p",`127.0.0.1:${i}:8474`,"-p",`127.0.0.1:${u}:${u}`,"ghcr.io/shopify/toxiproxy:2.12.0","-host=0.0.0.0"])}async function JMt(i,u){let t=`deco-dev-link-toxiproxy-${i}`;await rRi(["rm","-f",t],{ignoreFailure:!0})}async function XMt(i){let u=Keu(i),t=i.startDaemon??KMt,f=i.stopDaemon??(i.startDaemon===void 0?JMt:void 0);await t(i.apiPort,i.listenPort);let l=i.fetchImpl??fetch;try{await SMt(u,l),await Xeu(u,l)}catch(c){if(f!==void 0)try{await f(i.apiPort,i.listenPort)}catch{}throw c}return{config:u,stop:async()=>{if(f!==void 0)await f(i.apiPort,i.listenPort)}}}var Seu="ToxiProxy",jeu="dev_link_studio",IMt=20,Geu=100,xMt=100;var aRi=g(()=>{y4()});var Leu={};Xi(Leu,{migrateBetterAuth:()=>oRi});import{getMigrations as LMt}from"better-auth/db";import{sso as WMt}from"@better-auth/sso";import{organization as YMt}from"@decocms/better-auth/plugins";import{admin as QMt,apiKey as zMt,jwt as HMt,magicLink as RMt,mcp as bMt,openAPI as CMt}from"better-auth/plugins";import{emailOTP as MMt}from"better-auth/plugins/email-otp";async function oRi(i){let t={database:nM(i||f2()),plugins:[YMt({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),QMt(),zMt(),HMt(),CMt(),bMt({loginPage:"/login"}),WMt(),RMt({sendMagicLink:async()=>{}}),MMt({sendVerificationOTP:async()=>{}})]},{toBeAdded:f,toBeCreated:l,runMigrations:c}=await LMt(t);if(!f.length&&!l.length)return"up to date";return await c(),`${l.length+f.length} table(s) migrated`}var sRi=g(()=>{cE()});var pRi={};Xi(pRi,{up:()=>qMt,down:()=>VMt});import{sql as $v}from"kysely";async function qMt(i){await i.schema.createTable("connections").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organizationId","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(u)=>u.notNull()).addColumn("connectionUrl","text",(u)=>u.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(u)=>u.notNull().defaultTo("active")).addColumn("createdAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("api_keys").addColumn("id","text",(u)=>u.primaryKey()).addColumn("userId","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(u)=>u.notNull()).addColumn("hashedKey","text",(u)=>u.notNull().unique()).addColumn("permissions","text",(u)=>u.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("audit_logs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(u)=>u.references("user.id").onDelete("set null")).addColumn("connectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("toolName","text",(u)=>u.notNull()).addColumn("allowed","integer",(u)=>u.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createTable("oauth_clients").addColumn("id","text",(u)=>u.primaryKey()).addColumn("clientId","text",(u)=>u.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(u)=>u.notNull()).addColumn("redirectUris","text",(u)=>u.notNull()).addColumn("grantTypes","text",(u)=>u.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_authorization_codes").addColumn("code","text",(u)=>u.primaryKey()).addColumn("clientId","text",(u)=>u.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(u)=>u.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(u)=>u.notNull()).addColumn("createdAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(u)=>u.primaryKey()).addColumn("clientId","text",(u)=>u.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("downstream_tokens").addColumn("id","text",(u)=>u.primaryKey()).addColumn("connectionId","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(u)=>u.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(u)=>u.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await i.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function VMt(i){await i.schema.dropTable("downstream_tokens").execute(),await i.schema.dropTable("oauth_refresh_tokens").execute(),await i.schema.dropTable("oauth_authorization_codes").execute(),await i.schema.dropTable("oauth_clients").execute(),await i.schema.dropTable("audit_logs").execute(),await i.schema.dropTable("api_keys").execute(),await i.schema.dropTable("connections").execute()}var Weu=()=>{};var ibi={};Xi(ibi,{up:()=>rMt,down:()=>mMt});import{sql as Yeu}from"kysely";async function rMt(i){await i.schema.createTable("organization_settings").addColumn("organizationId","text",(u)=>u.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(u)=>u.notNull().defaultTo(Yeu`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo(Yeu`CURRENT_TIMESTAMP`)).execute()}async function mMt(i){await i.schema.dropTable("organization_settings").execute()}var Qeu=()=>{};var ubi={};Xi(ubi,{up:()=>eMt,down:()=>aMt});async function eMt(i){await i.schema.alterTable("connections").renameColumn("name","title").execute(),await i.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await i.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await i.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await i.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await i.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await i.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await i.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await i.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await i.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await i.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await i.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function aMt(i){await i.schema.alterTable("connections").renameColumn("title","name").execute(),await i.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await i.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await i.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await i.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await i.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await i.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await i.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await i.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await i.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await i.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await i.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var tbi={};Xi(tbi,{up:()=>oMt,down:()=>sMt});async function oMt(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(u)=>u.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(u)=>u.notNull()).addColumn("updatedAt","text",(u)=>u.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((u)=>u.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await i.schema.dropTable("organization_settings").execute(),await i.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function sMt(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(u)=>u.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(u)=>u.notNull()).addColumn("updatedAt","text",(u)=>u.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((u)=>u.selectFrom("organization_settings").select(["organizationId",u.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await i.schema.dropTable("organization_settings").execute(),await i.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var fbi={};Xi(fbi,{up:()=>pMt,down:()=>iqt});async function pMt(i){await i.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await i.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function iqt(i){await i.schema.alterTable("connections").dropColumn("configuration_state").execute(),await i.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var lbi={};Xi(lbi,{up:()=>tqt,down:()=>fqt});import{sql as uqt}from"kysely";async function tqt(i){await i.schema.alterTable("organization_settings").addColumn("sidebar_items",uqt`text`).execute()}async function fqt(i){await i.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var zeu=()=>{};var cbi={};Xi(cbi,{up:()=>lqt,down:()=>cqt});async function lqt(i){await i.schema.createTable("monitoring_logs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(u)=>u.notNull()).addColumn("tool_name","text",(u)=>u.notNull()).addColumn("input","text",(u)=>u.notNull()).addColumn("output","text",(u)=>u.notNull()).addColumn("is_error","integer",(u)=>u.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(u)=>u.notNull()).addColumn("timestamp","text",(u)=>u.notNull()).addColumn("user_id","text").addColumn("request_id","text",(u)=>u.notNull()).execute(),await i.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await i.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await i.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function cqt(i){await i.schema.dropIndex("monitoring_logs_is_error").execute(),await i.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await i.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await i.schema.dropTable("monitoring_logs").execute()}var Ebi={};Xi(Ebi,{up:()=>Eqt,down:()=>$qt});import{sql as fq}from"kysely";async function Eqt(i){await i.schema.createTable("events").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(u)=>u.notNull()).addColumn("source","text",(u)=>u.notNull()).addColumn("specversion","text",(u)=>u.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(u)=>u.notNull()).addColumn("datacontenttype","text",(u)=>u.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(u)=>u.notNull().defaultTo("pending")).addColumn("attempts","integer",(u)=>u.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(fq`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(u)=>u.notNull().defaultTo(fq`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_subscriptions").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(u)=>u.notNull()).addColumn("filter","text").addColumn("enabled","integer",(u)=>u.notNull().defaultTo(1)).addColumn("created_at","text",(u)=>u.notNull().defaultTo(fq`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(u)=>u.notNull().defaultTo(fq`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_deliveries").addColumn("id","text",(u)=>u.primaryKey()).addColumn("event_id","text",(u)=>u.notNull()).addColumn("subscription_id","text",(u)=>u.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(u)=>u.notNull().defaultTo("pending")).addColumn("attempts","integer",(u)=>u.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(fq`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await i.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await i.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await i.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await i.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await i.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await i.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await i.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await i.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await i.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await i.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function $qt(i){await i.schema.dropIndex("idx_deliveries_retry").execute(),await i.schema.dropIndex("idx_deliveries_subscription_status").execute(),await i.schema.dropIndex("idx_deliveries_event").execute(),await i.schema.dropIndex("idx_subscriptions_unique").execute(),await i.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await i.schema.dropIndex("idx_subscriptions_type").execute(),await i.schema.dropIndex("idx_subscriptions_connection").execute(),await i.schema.dropIndex("idx_events_retry").execute(),await i.schema.dropIndex("idx_events_type").execute(),await i.schema.dropIndex("idx_events_source").execute(),await i.schema.dropIndex("idx_events_org_status").execute(),await i.schema.dropTable("event_deliveries").execute(),await i.schema.dropTable("event_subscriptions").execute(),await i.schema.dropTable("events").execute()}var Heu=()=>{};var $bi={};Xi($bi,{up:()=>dqt,down:()=>hqt});import{sql as wqt}from"kysely";async function dqt(i){await i.schema.dropTable("audit_logs").ifExists().execute()}async function hqt(i){await i.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(u)=>u.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(u)=>u.references("user.id").onDelete("set null")).addColumn("connectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("toolName","text",(u)=>u.notNull()).addColumn("allowed","integer",(u)=>u.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(u)=>u.notNull().defaultTo(wqt`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await i.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Reu=()=>{};var wbi={};Xi(wbi,{up:()=>_qt,down:()=>vqt});import{sql as R1i}from"kysely";async function _qt(i){await i.schema.createTable("gateways").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(u)=>u.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(u)=>u.notNull().defaultTo("active")).addColumn("is_default","integer",(u)=>u.notNull().defaultTo(0)).addColumn("created_at","text",(u)=>u.notNull().defaultTo(R1i`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(u)=>u.notNull().defaultTo(R1i`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await i.schema.createTable("gateway_connections").addColumn("id","text",(u)=>u.primaryKey()).addColumn("gateway_id","text",(u)=>u.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(R1i`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await i.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await R1i`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(i),await i.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await i.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await i.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function vqt(i){await i.schema.dropIndex("idx_gateway_connections_unique").execute(),await i.schema.dropIndex("idx_gateway_connections_connection").execute(),await i.schema.dropIndex("idx_gateway_connections_gateway").execute(),await i.schema.dropIndex("idx_gateways_default_per_org").execute(),await i.schema.dropIndex("idx_gateways_org_status").execute(),await i.schema.dropIndex("idx_gateways_org").execute(),await i.schema.dropTable("gateway_connections").execute(),await i.schema.dropTable("gateways").execute()}var beu=()=>{};var dbi={};Xi(dbi,{up:()=>Dqt,down:()=>nqt});async function Dqt(i){await i.schema.alterTable("gateways").addColumn("icon","text").execute()}async function nqt(i){await i.schema.alterTable("gateways").dropColumn("icon").execute()}var hbi={};Xi(hbi,{up:()=>gqt,down:()=>Oqt});import{sql as b1i}from"kysely";async function gqt(i){await i.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(u)=>u.notNull().defaultTo("inclusion")).execute(),await b1i`
|
|
84524
84524
|
UPDATE gateways
|
|
84525
84525
|
SET tool_selection_mode = CASE
|
|
@@ -86433,7 +86433,7 @@ ${l}`}return i}});var o$i=K((ty)=>{var W2f=ty&&ty.__createBinding||(Object.creat
|
|
|
86433
86433
|
CASE WHEN ${W0.ref("meta_json")}::jsonb->'mcp.mesh'->>'verified' = 'true' THEN 1 ELSE 0 END
|
|
86434
86434
|
) desc`}class FQ{db;constructor(i){this.db=i}async create(i){let u=new Date().toISOString(),t=i._meta??{},f=qv0(t),l=a$(f.tags),c=a$(f.categories),E={id:i.id,organization_id:i.organization_id,title:i.title,description:i.description??null,server_json:JSON.stringify(i.server),meta_json:JSON.stringify(t),tags:Nwi(l),categories:Nwi(c),is_public:i.is_public?1:0,is_unlisted:i.is_unlisted?1:0,created_at:u,updated_at:u,created_by:i.created_by??null};await this.db.insertInto("private_registry_item").values(E).execute();let $=await this.findById(i.organization_id,i.id);if(!$)throw Error(`Failed to create registry item "${i.id}"`);return $}async findById(i,u){let t=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",i).where("id","=",u).executeTakeFirst();return t?this.deserialize(t):null}async findByIdOrName(i,u){let t=await this.findById(i,u);if(t)return t;let f=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",i).where("title","=",u).executeTakeFirst();return f?this.deserialize(f):null}async update(i,u,t){let f=await this.findById(i,u);if(!f)throw Error(`Registry item not found: ${u}`);let l=t._meta??f._meta??{},c=qv0(l),E=a$(c.tags),$=a$(c.categories),w={updated_at:new Date().toISOString()};if(t.title!==void 0)w.title=t.title;if(t.description!==void 0)w.description=t.description;if(t.server!==void 0)w.server_json=JSON.stringify(t.server);if(t._meta!==void 0)w.meta_json=JSON.stringify(t._meta);if(t._meta!==void 0)w.tags=Nwi(E),w.categories=Nwi($);if(t.is_public!==void 0)w.is_public=t.is_public?1:0;if(t.is_unlisted!==void 0)w.is_unlisted=t.is_unlisted?1:0;await this.db.updateTable("private_registry_item").set(w).where("organization_id","=",i).where("id","=",u).execute();let d=await this.findById(i,u);if(!d)throw Error(`Registry item not found after update: ${u}`);return d}async delete(i,u){let t=await this.findById(i,u);if(!t)return null;return await this.db.deleteFrom("private_registry_item").where("organization_id","=",i).where("id","=",u).execute(),t}async list(i,u={}){let t=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",i);if(!u.includeUnlisted)t=t.where("is_unlisted","=",0);let f=a$(u.tags);if(f.length>0)t=t.where(ywi("tags",f));let l=a$(u.categories);if(l.length>0)t=t.where(ywi("categories",l));if(u.where)t=t.where(zsi(u.where));let $=(await this.db.selectFrom(t.as("filtered")).select(W0`count(*)::int`.as("count")).executeTakeFirst())?.count??0;t=t.orderBy(Vv0()).orderBy("created_at","desc");let d=gwi(u.cursor)??u.offset??0,h=u.limit??24;t=t.limit(h).offset(d);let v=(await t.execute()).map((O)=>this.deserialize(O)),D=d+h<$,n=D?nwi(d+h):void 0;return{items:v,totalCount:$,hasMore:D,nextCursor:n}}async listPublic(i,u={}){let t=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",i).where("is_public","=",1).where("is_unlisted","=",0),f=a$(u.tags);if(f.length>0)t=t.where(ywi("tags",f));let l=a$(u.categories);if(l.length>0)t=t.where(ywi("categories",l));if(u.where)t=t.where(zsi(u.where));let $=(await this.db.selectFrom(t.as("filtered")).select(W0`count(*)::int`.as("count")).executeTakeFirst())?.count??0;t=t.orderBy(Vv0()).orderBy("created_at","desc");let d=gwi(u.cursor)??u.offset??0,h=u.limit??24;t=t.limit(h).offset(d);let v=(await t.execute()).map((O)=>this.deserialize(O)),D=d+h<$,n=D?nwi(d+h):void 0;return{items:v,totalCount:$,hasMore:D,nextCursor:n}}async getFilters(i,u){let t=this.db.selectFrom("private_registry_item").select(["tags","categories"]).where("organization_id","=",i);if(u?.publicOnly)t=t.where("is_public","=",1);if(!u?.includeUnlisted)t=t.where("is_unlisted","=",0);let f=await t.execute(),l=new Map,c=new Map;for(let $ of f){for(let w of Ey($.tags))l.set(w,(l.get(w)??0)+1);for(let w of Ey($.categories))c.set(w,(c.get(w)??0)+1)}let E=($)=>Array.from($.entries()).map(([w,d])=>({value:w,count:d})).sort((w,d)=>w.value.localeCompare(d.value));return{tags:E(l),categories:E(c)}}async search(i,u={},t){let f=this.db.selectFrom("private_registry_item").select(["id","title","description","meta_json","server_json","tags","categories","is_public","is_unlisted"]).where("organization_id","=",i).orderBy("created_at","desc");if(t?.publicOnly)f=f.where("is_public","=",1);if(!t?.includeUnlisted)f=f.where("is_unlisted","=",0);let l=await f.execute(),c=u.query?.trim().toLowerCase(),E=a$(u.tags),$=a$(u.categories),w=l.filter((N)=>{if(c){let y=Owi(N.server_json,{}),T=Owi(N.meta_json,{})?.["mcp.mesh"]?.short_description??"";if(![N.id,N.title,N.description??"",y.name??"",y.description??"",T].join(" ").toLowerCase().includes(c))return!1}if(E.length>0){let y=a$(Ey(N.tags));if(!E.every((Z)=>y.includes(Z)))return!1}if($.length>0){let y=a$(Ey(N.categories));if(!$.every((Z)=>y.includes(Z)))return!1}return!0}),h=gwi(u.cursor)??0,_=u.limit??20,v=w.slice(h,h+_),D=h+_<w.length,n=D?nwi(h+_):void 0;return{items:v.map((N)=>({id:N.id,title:N.title,tags:Ey(N.tags),categories:Ey(N.categories),is_public:N.is_public===1,is_unlisted:N.is_unlisted===1})),totalCount:w.length,hasMore:D,nextCursor:n}}deserialize(i){let u=Owi(i.server_json,{}),t=Owi(i.meta_json,{});return{id:i.id,name:typeof u.name==="string"?u.name:void 0,title:i.title,description:i.description,_meta:t,server:u,is_public:i.is_public===1,is_unlisted:i.is_unlisted===1,created_at:i.created_at,updated_at:i.updated_at,...i.created_by?{created_by:i.created_by}:{}}}}var c9f,E9f,$9f;var Hsi=g(()=>{c9f=new Set(["id","title","description","is_public","is_unlisted","created_at","updated_at","created_by"]),E9f=new Set(["is_public","is_unlisted"]),$9f={_meta:"meta_json",server:"server_json"}});import{randomUUID as h9f}from"crypto";function rv0(i,u){if(!i)return u;try{return JSON.parse(i)}catch{return u}}class UQ{db;constructor(i){this.db=i}async createOrUpdate(i){let u=new Date().toISOString(),t=await this.findPendingByRequestedId(i.organization_id,i.requested_id);if(t){let E={title:i.title,description:i.description??null,server_json:JSON.stringify(i.server),meta_json:i._meta?JSON.stringify(i._meta):null,requester_name:i.requester_name??null,requester_email:i.requester_email??null,updated_at:u};await this.db.updateTable("private_registry_publish_request").set(E).where("organization_id","=",i.organization_id).where("id","=",t.id).execute();let $=await this.findById(i.organization_id,t.id);if(!$)throw Error("Failed to update publish request");return $}let f=h9f(),l={id:f,organization_id:i.organization_id,requested_id:i.requested_id,status:"pending",title:i.title,description:i.description??null,server_json:JSON.stringify(i.server),meta_json:i._meta?JSON.stringify(i._meta):null,requester_name:i.requester_name??null,requester_email:i.requester_email??null,reviewer_notes:null,created_at:u,updated_at:u};await this.db.insertInto("private_registry_publish_request").values(l).execute();let c=await this.findById(i.organization_id,f);if(!c)throw Error("Failed to create publish request");return c}async findPendingByRequestedId(i,u){let t=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",i).where("requested_id","=",u).where("status","=","pending").executeTakeFirst();return t?this.deserialize(t):null}async findById(i,u){let t=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",i).where("id","=",u).executeTakeFirst();return t?this.deserialize(t):null}async list(i,u={}){let t=this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",i),f=this.db.selectFrom("private_registry_publish_request").select((d)=>d.fn.countAll().as("count")).where("organization_id","=",i);if(u.status)t=t.where("status","=",u.status),f=f.where("status","=",u.status);let l=await f.executeTakeFirst(),c=Number(l?.count??0),E=u.sortBy??"created_at",$=u.sortDirection??"desc";if(E==="title")t=t.orderBy("title",$);else t=t.orderBy("created_at",$);return{items:(await t.limit(u.limit??24).offset(u.offset??0).execute()).map((d)=>this.deserialize(d)),totalCount:c}}async updateStatus(i,u,t,f){let l={status:t,updated_at:new Date().toISOString(),reviewer_notes:f??null};await this.db.updateTable("private_registry_publish_request").set(l).where("organization_id","=",i).where("id","=",u).execute();let c=await this.findById(i,u);if(!c)throw Error(`Publish request not found: ${u}`);return c}async countPending(i){let u=await this.db.selectFrom("private_registry_publish_request").select((t)=>t.fn.countAll().as("count")).where("organization_id","=",i).where("status","=","pending").executeTakeFirst();return Number(u?.count??0)}async delete(i,u){let t=await this.findById(i,u);if(!t)return null;return await this.db.deleteFrom("private_registry_publish_request").where("organization_id","=",i).where("id","=",u).execute(),t}deserialize(i){return{id:i.id,organization_id:i.organization_id,requested_id:i.requested_id??null,status:i.status,title:i.title,description:i.description,_meta:rv0(i.meta_json,{}),server:rv0(i.server_json,{name:""}),requester_name:i.requester_name,requester_email:i.requester_email,reviewer_notes:i.reviewer_notes,created_at:i.created_at,updated_at:i.updated_at}}}var Rsi=()=>{};import{createHash as _9f,randomBytes as v9f,randomUUID as D9f}from"crypto";function mv0(i){return _9f("sha256").update(i).digest("hex")}function n9f(){return`prk_${v9f(32).toString("hex")}`}class PQ{db;constructor(i){this.db=i}async generate(i,u){let t=D9f(),f=n9f(),l=await mv0(f),c=f.slice(0,12),E=new Date().toISOString();return await this.db.insertInto("private_registry_publish_api_key").values({id:t,organization_id:i,name:u,key_hash:l,prefix:c,created_at:E}).execute(),{entity:{id:t,organization_id:i,name:u,prefix:c,created_at:E},key:f}}async list(i){return await this.db.selectFrom("private_registry_publish_api_key").select(["id","organization_id","name","prefix","created_at"]).where("organization_id","=",i).orderBy("created_at","desc").execute()}async revoke(i,u){return(await this.db.deleteFrom("private_registry_publish_api_key").where("organization_id","=",i).where("id","=",u).execute()).length>0}async validate(i,u){let t=await mv0(u),f=await this.db.selectFrom("private_registry_publish_api_key").select(["id"]).where("organization_id","=",i).where("key_hash","=",t).executeTakeFirst();return Boolean(f)}async hasKeys(i){let u=await this.db.selectFrom("private_registry_publish_api_key").select((t)=>t.fn.countAll().as("count")).where("organization_id","=",i).executeTakeFirst();return Number(u?.count??0)>0}}var bsi=()=>{};import{randomUUID as ev0}from"crypto";function av0(i,u){if(!i)return u;try{return JSON.parse(i)}catch{return u}}class Zwi{db;constructor(i){this.db=i}async create(i){let u=ev0(),t=new Date().toISOString(),f={id:u,organization_id:i.organization_id,status:i.status??"pending",config_snapshot:i.config_snapshot?JSON.stringify(i.config_snapshot):null,total_items:i.total_items??0,tested_items:0,passed_items:0,failed_items:0,skipped_items:0,current_item_id:null,started_at:i.started_at??null,finished_at:null,created_at:t};await this.db.insertInto("private_registry_monitor_run").values(f).execute();let l=await this.findById(i.organization_id,u);if(!l)throw Error(`Failed to create monitor run ${u}`);return l}async findById(i,u){let t=await this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",i).where("id","=",u).executeTakeFirst();return t?this.deserializeRun(t):null}async list(i,u={}){let t=this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",i),f=this.db.selectFrom("private_registry_monitor_run").select(($)=>$.fn.countAll().as("count")).where("organization_id","=",i);if(u.status)t=t.where("status","=",u.status),f=f.where("status","=",u.status);let l=await f.executeTakeFirst(),c=Number(l?.count??0);return{items:(await t.orderBy("created_at","desc").limit(u.limit??24).offset(u.offset??0).execute()).map(($)=>this.deserializeRun($)),totalCount:c}}async update(i,u,t){let f={};if(t.total_items!==void 0)f.total_items=t.total_items;if(t.status!==void 0)f.status=t.status;if(t.tested_items!==void 0)f.tested_items=t.tested_items;if(t.passed_items!==void 0)f.passed_items=t.passed_items;if(t.failed_items!==void 0)f.failed_items=t.failed_items;if(t.skipped_items!==void 0)f.skipped_items=t.skipped_items;if(t.current_item_id!==void 0)f.current_item_id=t.current_item_id;if(t.started_at!==void 0)f.started_at=t.started_at;if(t.finished_at!==void 0)f.finished_at=t.finished_at;await this.db.updateTable("private_registry_monitor_run").set(f).where("organization_id","=",i).where("id","=",u).execute();let l=await this.findById(i,u);if(!l)throw Error(`Monitor run not found: ${u}`);return l}deserializeRun(i){return{id:i.id,organization_id:i.organization_id,status:i.status,config_snapshot:av0(i.config_snapshot,null),total_items:Number(i.total_items??0),tested_items:Number(i.tested_items??0),passed_items:Number(i.passed_items??0),failed_items:Number(i.failed_items??0),skipped_items:Number(i.skipped_items??0),current_item_id:i.current_item_id,started_at:i.started_at,finished_at:i.finished_at,created_at:i.created_at}}}class Twi{db;constructor(i){this.db=i}async create(i){let u=ev0(),t=new Date().toISOString(),f={id:u,run_id:i.run_id,organization_id:i.organization_id,item_id:i.item_id,item_title:i.item_title,status:i.status,error_message:i.error_message??null,connection_ok:i.connection_ok?1:0,tools_listed:i.tools_listed?1:0,tool_results:i.tool_results?JSON.stringify(i.tool_results):null,agent_summary:i.agent_summary??null,duration_ms:i.duration_ms??0,action_taken:i.action_taken??"none",tested_at:t};await this.db.insertInto("private_registry_monitor_result").values(f).execute();let l=await this.findById(i.organization_id,u);if(!l)throw Error("Failed to create test result");return l}async findById(i,u){let t=await this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",i).where("id","=",u).executeTakeFirst();return t?this.deserialize(t):null}async listByRun(i,u,t={}){let f=this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",i).where("run_id","=",u),l=this.db.selectFrom("private_registry_monitor_result").select((w)=>w.fn.countAll().as("count")).where("organization_id","=",i).where("run_id","=",u);if(t.status)f=f.where("status","=",t.status),l=l.where("status","=",t.status);let c=await l.executeTakeFirst(),E=Number(c?.count??0);return{items:(await f.orderBy("tested_at","desc").limit(t.limit??50).offset(t.offset??0).execute()).map((w)=>this.deserialize(w)),totalCount:E}}async update(i,u,t){let f={};if(t.status!==void 0)f.status=t.status;if(t.error_message!==void 0)f.error_message=t.error_message;if(t.connection_ok!==void 0)f.connection_ok=t.connection_ok?1:0;if(t.tools_listed!==void 0)f.tools_listed=t.tools_listed?1:0;if(t.tool_results!==void 0)f.tool_results=JSON.stringify(t.tool_results);if(t.agent_summary!==void 0)f.agent_summary=t.agent_summary;if(t.duration_ms!==void 0)f.duration_ms=t.duration_ms;if(t.action_taken!==void 0)f.action_taken=t.action_taken;await this.db.updateTable("private_registry_monitor_result").set(f).where("organization_id","=",i).where("id","=",u).execute();let l=await this.findById(i,u);if(!l)throw Error(`Monitor result not found: ${u}`);return l}deserialize(i){return{id:i.id,run_id:i.run_id,organization_id:i.organization_id,item_id:i.item_id,item_title:i.item_title,status:i.status,error_message:i.error_message,connection_ok:i.connection_ok===1,tools_listed:i.tools_listed===1,tool_results:av0(i.tool_results,[]),agent_summary:i.agent_summary,duration_ms:Number(i.duration_ms??0),action_taken:i.action_taken,tested_at:i.tested_at}}}var ov0=()=>{};import{randomUUID as g9f}from"crypto";class Bwi{db;constructor(i){this.db=i}async findByItemId(i,u){let t=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",i).where("item_id","=",u).executeTakeFirst();return t?this.deserialize(t):null}async list(i){return(await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",i).orderBy("updated_at","desc").execute()).map((t)=>this.deserialize(t))}async findByConnectionId(i,u){let t=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",i).where("connection_id","=",u).executeTakeFirst();return t?this.deserialize(t):null}async upsert(i){let u=await this.findByItemId(i.organization_id,i.item_id),t=new Date().toISOString();if(!u){let l={id:g9f(),organization_id:i.organization_id,item_id:i.item_id,connection_id:i.connection_id,auth_status:i.auth_status??"none",created_at:t,updated_at:t};await this.db.insertInto("private_registry_monitor_connection").values(l).execute()}else{let l={connection_id:i.connection_id,auth_status:i.auth_status??u.auth_status,updated_at:t};await this.db.updateTable("private_registry_monitor_connection").set(l).where("organization_id","=",i.organization_id).where("item_id","=",i.item_id).execute()}let f=await this.findByItemId(i.organization_id,i.item_id);if(!f)throw Error("Failed to save monitor connection");return f}async updateAuthStatus(i,u,t){return await this.db.updateTable("private_registry_monitor_connection").set({auth_status:t,updated_at:new Date().toISOString()}).where("organization_id","=",i).where("item_id","=",u).execute(),this.findByItemId(i,u)}deserialize(i){return{id:i.id,organization_id:i.organization_id,item_id:i.item_id,connection_id:i.connection_id,auth_status:i.auth_status,created_at:i.created_at,updated_at:i.updated_at}}}var sv0=()=>{};var pv0=g(()=>{Hsi();Rsi();bsi();ov0();sv0()});class Csi{db;constructor(i){this.db=i}async listOrgTags(i){return(await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",i).orderBy("name","asc").execute()).map((t)=>this.tagFromDbRow(t))}async getTag(i){let u=await this.db.selectFrom("organization_tags").selectAll().where("id","=",i).executeTakeFirst();return u?this.tagFromDbRow(u):null}async getTagByName(i,u){let t=await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",i).where("name","=",u).executeTakeFirst();return t?this.tagFromDbRow(t):null}async createTag(i,u){let t=Jf("tag"),f=new Date().toISOString();await this.db.insertInto("organization_tags").values({id:t,organization_id:i,name:u,created_at:f}).onConflict((c)=>c.columns(["organization_id","name"]).doNothing()).execute();let l=await this.getTagByName(i,u);if(!l)throw Error(`Failed to create or retrieve tag: ${u}`);return l}async deleteTag(i){await this.db.deleteFrom("organization_tags").where("id","=",i).execute()}async getMemberTags(i){return(await this.db.selectFrom("member_tags").innerJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["organization_tags.id","organization_tags.organization_id","organization_tags.name","organization_tags.created_at"]).where("member_tags.member_id","=",i).orderBy("organization_tags.name","asc").execute()).map((t)=>this.tagFromDbRow(t))}async setMemberTags(i,u){await this.db.transaction().execute(async(t)=>{if(await t.deleteFrom("member_tags").where("member_id","=",i).execute(),u.length>0){let f=new Date().toISOString();await t.insertInto("member_tags").values(u.map((l)=>({id:Jf("mtag"),member_id:i,tag_id:l,created_at:f}))).execute()}})}async addMemberTag(i,u){let t=new Date().toISOString();await this.db.insertInto("member_tags").values({id:Jf("mtag"),member_id:i,tag_id:u,created_at:t}).onConflict((f)=>f.columns(["member_id","tag_id"]).doNothing()).execute()}async removeMemberTag(i,u){await this.db.deleteFrom("member_tags").where("member_id","=",i).where("tag_id","=",u).execute()}async verifyMemberOrg(i,u){return await this.db.selectFrom("member").select("id").where("id","=",i).where("organizationId","=",u).executeTakeFirst()!==void 0}async getUserTagsInOrg(i,u){return(await this.db.selectFrom("member").innerJoin("member_tags","member_tags.member_id","member.id").innerJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["organization_tags.id","organization_tags.organization_id","organization_tags.name","organization_tags.created_at"]).where("member.userId","=",i).where("member.organizationId","=",u).orderBy("organization_tags.name","asc").execute()).map((f)=>this.tagFromDbRow(f))}async getMembersWithTags(i){let u=await this.db.selectFrom("member").leftJoin("member_tags","member_tags.member_id","member.id").leftJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["member.id as memberId","organization_tags.name as tagName"]).where("member.organizationId","=",i).execute(),t=new Map;for(let f of u){if(!t.has(f.memberId))t.set(f.memberId,[]);if(f.tagName)t.get(f.memberId).push(f.tagName)}return t}tagFromDbRow(i){return{id:i.id,organizationId:i.organization_id,name:i.name,createdAt:i.created_at}}}var i50=g(()=>{c$()});class Msi{db;constructor(i){this.db=i}async findById(i,u){let t=await this.db.selectFrom("user").select(["user.id","user.name","user.email","user.image","user.createdAt","user.updatedAt"]).where("user.id","=",i).where((f)=>f.exists(f.selectFrom("member as m1").innerJoin("member as m2","m1.organizationId","m2.organizationId").select("m1.id").where("m1.userId","=",i).where("m2.userId","=",u))).executeTakeFirst();if(!t)return null;return{id:t.id,name:t.name,email:t.email,role:"",createdAt:t.createdAt,updatedAt:t.updatedAt,image:t.image??void 0}}}class $y{userId;toolName;boundAuth;role;connectionId;getToolMeta;organizationId;_granted=!1;constructor(i,u,t,f,l="self",c,E){this.userId=i;this.toolName=u;this.boundAuth=t;this.role=f;this.connectionId=l;this.getToolMeta=c;this.organizationId=E}setToolName(i){this.toolName=i}setOrganizationId(i){this.organizationId=i}getOrganizationId(){return this.organizationId}setRole(i){this.role=i}getRole(){return this.role}grant(){this._granted=!0}async check(...i){if(this._granted)return;if(this.toolName?.startsWith("MESH_PUBLIC_")){this.grant();return}if(!this.userId&&!this.boundAuth){if(this.getToolMeta&&await this.isToolPublic()){this.grant();return}throw new AQ("Authentication required. Please provide a valid OAuth token or API key.")}let u=i.length>0?i:this.toolName?[this.toolName]:[];if(u.length===0)throw new En("No resources specified for access check");for(let t of u)if(await this.checkResource(t)){this.grant();return}throw new En(`Access denied to: ${u.join(", ")}`)}async checkResource(i){if(!this.userId&&!this.boundAuth)return!1;return this.boundAuth?.isApiKeyPrincipal?this.checkApiKeyAccess(i):this.checkMemberAccess(i)}async checkApiKeyAccess(i){if(!this.boundAuth)return!1;return this.boundAuth.hasPermission({[this.connectionId]:[i]})}async checkMemberAccess(i){if(this.userId&&this.role&&nl0.has(i))return!0;if(this.role==="admin"||this.role==="owner")return!0;if(!this.boundAuth)return!1;return this.boundAuth.hasPermission({[this.connectionId]:[i]},{organizationId:this.organizationId,role:this.role})}async isToolPublic(){if(this.toolName?.startsWith("MESH_PUBLIC_"))return!0;if(!this.getToolMeta)return!1;try{let i=await this.getToolMeta();if(!i)return!1;let t=i[TE0]?.public_tool;return t===!0||t==="true"}catch{return!1}}granted(){return this._granted}}var AQ,En;var wy=g(()=>{uY();AQ=class AQ extends Error{constructor(i){super(i);this.name="UnauthorizedError"}};En=class En extends Error{constructor(i){super(i);this.name="ForbiddenError"}}});function u50(i){let u={};for(let t of Object.keys(i))u[t]=["*"];return u}function w$(i){let u=i?.metadata;if(!u)return!1;try{return(typeof u==="string"?JSON.parse(u):u).archived===!0}catch{return!1}}function Fwi(i){let u=L7.get(i);if(!u||u.state==="CLOSED")return;if(u.state==="HALF_OPEN"){if(u.halfOpenInFlight)throw new IQ(i,0);u.halfOpenInFlight=!0;return}let t=Date.now()-u.lastFailureTime;if(t>=rei){u.state="HALF_OPEN",u.halfOpenInFlight=!0;return}throw new IQ(i,rei-t)}function Uwi(i){L7.delete(i)}function Pwi(i){let u=L7.get(i);if(!u){O9f(),L7.set(i,{state:1>=Vei?"OPEN":"CLOSED",consecutiveFailures:1,lastFailureTime:Date.now(),halfOpenInFlight:!1});return}if(u.consecutiveFailures++,u.lastFailureTime=Date.now(),u.halfOpenInFlight=!1,u.consecutiveFailures>=Vei)u.state="OPEN"}function O9f(){if(L7.size<eEi)return;let i=null,u=1/0;for(let[t,f]of L7)if(f.lastFailureTime<u)u=f.lastFailureTime,i=t;if(i)L7.delete(i)}var L7,IQ;var qsi=g(()=>{jl();L7=new Map;Ft.createObservableGauge("mcp_circuit_breaker.circuits",{description:"MCP connection circuits by state (open, half_open)",unit:"{circuits}"}).addCallback((i)=>{let u=0,t=0;for(let f of L7.values())if(f.state==="OPEN")u++;else if(f.state==="HALF_OPEN")t++;i.observe(u,{state:"open"}),i.observe(t,{state:"half_open"})});IQ=class IQ extends Error{cooldownRemainingMs;constructor(i,u){super(`Connection ${i} circuit breaker is open \u2014 downstream server unreachable. `+`Retry in ${Math.ceil(u/1000)}s.`);this.name="CircuitOpenError",this.cooldownRemainingMs=u}}});function xQ(...i){if(T9f)console.log("[mcp-read-cache]",...i)}function B9f(i){return i.kind==="org"?"org":`u:${i.userId}`}function Vsi(i){if(i===null||typeof i!=="object")return JSON.stringify(i)??"null";if(Array.isArray(i))return`[${i.map(Vsi).join(",")}]`;return`{${Object.keys(i).sort().map((t)=>`${JSON.stringify(t)}:${Vsi(i[t])}`).join(",")}}`}class f50{config;maxEntries;now;maxTotalBytes;store=new Map;revalidating=new Set;totalBytes=0;constructor(i=N9f,u=y9f,t=()=>Date.now(),f=Z9f){this.config=i;this.maxEntries=u;this.now=t;this.maxTotalBytes=f}stats(){return{entries:this.store.size,bytes:this.totalBytes}}deleteKey(i){let u=this.store.get(i);if(u)this.store.delete(i),this.totalBytes-=u.bytes}key(i,u,t,f){return`${u}:${B9f(t)}:${i}:${Vsi(f)}`}storeSet(i,u,t,f){let l;try{l=JSON.stringify(u).length}catch{xQ("SKIP non-serializable",i);return}if(l>f){xQ("SKIP oversize",i,`${l}b > cap ${f}b`);return}this.deleteKey(i);while(this.store.size>0&&(this.store.size>=this.maxEntries||this.totalBytes+l>this.maxTotalBytes)){let c=this.store.keys().next().value;if(c===void 0)break;this.deleteKey(c)}this.store.set(i,{value:u,storedAt:t,bytes:l}),this.totalBytes+=l}async fetch(i){let{type:u,connectionId:t,scope:f,params:l,fetchLive:c,shouldCache:E,onRevalidation:$}=i,w=this.config[u],d=this.key(u,t,f,l),h=this.now(),_=this.store.get(d),v=_?h-_.storedAt:1/0;if(!_||v>w.maxStaleMs){Awi.add(1,{type:u,outcome:"miss"}),xQ(_?"EXPIRED":"MISS",d);let D=await c();if(E?.(D)??!0)this.storeSet(d,D,this.now(),w.maxValueBytes);else xQ("NOT-CACHED (shouldCache=false)",d);return D}if(this.store.delete(d),this.store.set(d,_),v>w.revalidateAfterMs&&!this.revalidating.has(d)){Awi.add(1,{type:u,outcome:"stale"}),xQ("STALE \u2192 serve + revalidate",d,`age=${v}ms`),this.revalidating.add(d);let D=c().then((n)=>{if(E?.(n)??!0)this.storeSet(d,n,this.now(),w.maxValueBytes)}).catch(()=>{Awi.add(1,{type:u,outcome:"error"})}).finally(()=>this.revalidating.delete(d));$?.(D)}else Awi.add(1,{type:u,outcome:"hit"}),xQ("HIT",d,`age=${v}ms`);return _.value}invalidate(i){let u=`${i}:`;for(let t of[...this.store.keys()])if(t.startsWith(u))this.deleteKey(t)}}function msi(){return yu().mcpCacheEnabled}function xwi(){return msi()?rsi:null}var Awi,Iwi=1024,t50,N9f,y9f=2000,Z9f,T9f,rsi;var kwi=g(()=>{jl();vt();Awi=Ft.createCounter("mcp_read_cache.fetches",{description:"MCP read cache outcomes (hit, stale, miss, error)",unit:"{fetches}"}),t50=Iwi*Iwi,N9f={"tools/call":{revalidateAfterMs:30000,maxStaleMs:300000,maxValueBytes:512*Iwi},"resources/read":{revalidateAfterMs:60000,maxStaleMs:300000,maxValueBytes:4*t50},"prompts/get":{revalidateAfterMs:60000,maxStaleMs:300000,maxValueBytes:512*Iwi}},Z9f=256*t50,T9f=typeof process<"u"&&!!process.env?.MCP_CACHE_DEBUG;rsi=new f50;Ft.createObservableGauge("mcp_read_cache.entries",{description:"Current entry count in the per-pod MCP read cache",unit:"{entries}"}).addCallback((i)=>i.observe(rsi.stats().entries));Ft.createObservableGauge("mcp_read_cache.bytes",{description:"Approximate total bytes held in the per-pod MCP read cache",unit:"By"}).addCallback((i)=>i.observe(rsi.stats().bytes))});function E50(i){xwi()?.invalidate(i)}function kQ(i){E50(i);let u=esi?.();if(!u)return;try{u.publish(l50,F9f.encode(JSON.stringify({connectionId:i,originId:c50})))}catch(t){console.warn("[McpCacheInvalidation] publish failed (non-critical):",t)}}function $50(i){if(esi=i,Sm)return;let u=i();if(!u)return;Sm=u.subscribe(l50),(async()=>{for await(let t of Sm)try{let f=JSON.parse(U9f.decode(t.data));if(f.originId===c50)continue;E50(f.connectionId)}catch{}})().catch(console.error)}function w50(){Sm?.unsubscribe(),Sm=null,esi=void 0}var l50="studio.mcp-cache.invalidate",c50,F9f,U9f,esi,Sm=null;var jm=g(()=>{kwi();c50=crypto.randomUUID(),F9f=new TextEncoder,U9f=new TextDecoder});function P9f(i,u,t){let f=Object.keys(t??{}),l=u?.required??[],c=l.filter((w)=>!f.includes(w)),E=(w)=>{let d=u?.properties?.[w]?.type;return d?`${w} (${d})`:w};return[`Invalid arguments for "${i}".`,l.length?`Required: ${l.map(E).join(", ")}.`:"",`You sent: ${f.length?f.join(", "):"(none)"}.`,c.length?`Missing required: ${c.join(", ")}.`:""].filter(Boolean).join(" ")}function d50(i,u,t,f){if(!(i instanceof Ku)||i.code!==zu.InvalidParams)return i;if(!u)return i;let l=P9f(u,t,f),c=i.message.replace(/^MCP error -?\d+: /,"");return new Ku(zu.InvalidParams,`${c}
|
|
86435
86435
|
|
|
86436
|
-
${l}`,i.data)}var h50=g(()=>{Kl()});async function A9f(i,u,t){if(!i)return!1;let f=await i.get("tools",u).catch(()=>null);if(!f)return!1;for(let l of f)if(typeof l==="object"&&l!==null&&l.name===t)return l.annotations?.readOnlyHint===!0;return!1}function asi(){return{kind:"org"}}function W7(i,u,t,f){let l=new G1({name:`lazy-${i.id}`,version:"1.0.0"},{capabilities:{},jsonSchemaValidator:Xl}),c=i.metadata?.isDevConnection===!0,E=null;function $(){if(Fwi(i.id),!E)E=Nc(i,u,t).then((n)=>{return Uwi(i.id),n}).catch((n)=>{throw E=null,Pwi(i.id),n});return E}let w=(n,O)=>n!==void 0||O!==void 0,d=(n,O,N,y)=>{return async(Z,T)=>{if(i.connection_type==="VIRTUAL"||c||!f||w(Z,T)){let F=await $();return O(F,Z,T)}let B=await w7(n,i.id,async()=>{let F=await $(),A=await O(F);return N(A)},f,(F)=>u.pendingRevalidations.push(F),$7);return y(B??[])}};l.listTools=d("tools",(n,O,N)=>n.listTools(O,N),(n)=>n.tools,(n)=>({tools:n})),l.listResources=d("resources",(n,O,N)=>n.listResources(O,N),(n)=>n.resources,(n)=>({resources:n})),l.listPrompts=d("prompts",(n,O,N)=>n.listPrompts(O,N),(n)=>n.prompts,(n)=>({prompts:n}));let h=xwi(),_=i.connection_type!=="VIRTUAL"&&!c,v=async(n,O,N)=>{let y=n?.name,Z=_&&typeof y==="string"&&await A9f(f,i.id,y);if(h&&Z&&!O)return await h.fetch({type:"tools/call",connectionId:i.id,scope:asi(),params:{name:y,arguments:n?.arguments},fetchLive:async()=>{return(await $()).callTool(n,O,N)},shouldCache:(F)=>F?.isError!==!0,onRevalidation:(F)=>u.pendingRevalidations.push(F)});let T=await $();if(h&&_&&!Z)try{return await T.callTool(n,O,N)}finally{kQ(i.id)}return T.callTool(n,O,N)};l.callTool=async(n,O,N)=>{try{return await v(n,O,N)}catch(y){let Z=n?.name;if(y instanceof Ku&&y.code===zu.InvalidParams&&typeof Z==="string"&&f){let B=(await f.get("tools",i.id).catch(()=>null))?.find((F)=>typeof F==="object"&&F!==null&&F.name===Z);throw d50(y,Z,B?.inputSchema,n?.arguments)}throw y}},l.getPrompt=async(n,O)=>{if(!h||!_)return(await $()).getPrompt(n,O);return await h.fetch({type:"prompts/get",connectionId:i.id,scope:asi(),params:n,fetchLive:async()=>{return(await $()).getPrompt(n,O)},onRevalidation:(y)=>u.pendingRevalidations.push(y)})},l.readResource=async(n,O)=>{if(!h||!_){if(process.env?.MCP_CACHE_DEBUG)console.log("[mcp-read-cache] BYPASS (VIRTUAL)",i.id,"resources/read");return(await $()).readResource(n,O)}return await h.fetch({type:"resources/read",connectionId:i.id,scope:asi(),params:n,fetchLive:async()=>{return(await $()).readResource(n,O)},onRevalidation:(y)=>u.pendingRevalidations.push(y)})},l.listResourceTemplates=async(n,O)=>{return(await $()).listResourceTemplates(n,O)};let D=l.close.bind(l);return l.close=async()=>{if(E){let n=await E.catch(()=>null);if(n)await n.close().catch(()=>{})}await D()},l}var Km=g(()=>{Hh();i$();Kl();qsi();Jm();jm();td();kwi();h50()});function osi(i){return{client:{callTool:i.callTool.bind(i),listTools:i.listTools.bind(i)}}}async function I9f(i,u,{superUser:t}){if(!t&&!u.organization?.id)throw Error("Organization context is required");let f=typeof i==="string"?await u.storage.connections.findById(i,u.organization?.id):i;if(!f)throw Error("Connection not found");if(u.organization&&f.organization_id!==u.organization.id)throw Error("Connection does not belong to the active organization");if(!u.organization){let d=await u.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",f.organization_id).executeTakeFirst();u.organization=d?{id:d.id,slug:d.slug,name:d.name}:{id:f.organization_id}}if(f.status!=="active")throw Error(`Connection inactive: ${f.status}`);let l=W7(f,u,t,v1()??void 0),c=qD(l,{name:"mcp-cms-proxy-client",version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},toolCallTimeoutMs:hY}),{client:E,server:$}=TV();await c.connect($);let w=new G1({name:"mcp-cms-proxy-client",version:"1.0.0"},{jsonSchemaValidator:Xl});return await w.connect(E),w}async function _50(i,u){return I9f(i,u,{superUser:!1})}var ssi=g(()=>{Km();td();jt();Hh();i$()});function Gwi(i,u){if(i==="owner")return!0;if(i==="admin")return
|
|
86436
|
+
${l}`,i.data)}var h50=g(()=>{Kl()});async function A9f(i,u,t){if(!i)return!1;let f=await i.get("tools",u).catch(()=>null);if(!f)return!1;for(let l of f)if(typeof l==="object"&&l!==null&&l.name===t)return l.annotations?.readOnlyHint===!0;return!1}function asi(){return{kind:"org"}}function W7(i,u,t,f){let l=new G1({name:`lazy-${i.id}`,version:"1.0.0"},{capabilities:{},jsonSchemaValidator:Xl}),c=i.metadata?.isDevConnection===!0,E=null;function $(){if(Fwi(i.id),!E)E=Nc(i,u,t).then((n)=>{return Uwi(i.id),n}).catch((n)=>{throw E=null,Pwi(i.id),n});return E}let w=(n,O)=>n!==void 0||O!==void 0,d=(n,O,N,y)=>{return async(Z,T)=>{if(i.connection_type==="VIRTUAL"||c||!f||w(Z,T)){let F=await $();return O(F,Z,T)}let B=await w7(n,i.id,async()=>{let F=await $(),A=await O(F);return N(A)},f,(F)=>u.pendingRevalidations.push(F),$7);return y(B??[])}};l.listTools=d("tools",(n,O,N)=>n.listTools(O,N),(n)=>n.tools,(n)=>({tools:n})),l.listResources=d("resources",(n,O,N)=>n.listResources(O,N),(n)=>n.resources,(n)=>({resources:n})),l.listPrompts=d("prompts",(n,O,N)=>n.listPrompts(O,N),(n)=>n.prompts,(n)=>({prompts:n}));let h=xwi(),_=i.connection_type!=="VIRTUAL"&&!c,v=async(n,O,N)=>{let y=n?.name,Z=_&&typeof y==="string"&&await A9f(f,i.id,y);if(h&&Z&&!O)return await h.fetch({type:"tools/call",connectionId:i.id,scope:asi(),params:{name:y,arguments:n?.arguments},fetchLive:async()=>{return(await $()).callTool(n,O,N)},shouldCache:(F)=>F?.isError!==!0,onRevalidation:(F)=>u.pendingRevalidations.push(F)});let T=await $();if(h&&_&&!Z)try{return await T.callTool(n,O,N)}finally{kQ(i.id)}return T.callTool(n,O,N)};l.callTool=async(n,O,N)=>{try{return await v(n,O,N)}catch(y){let Z=n?.name;if(y instanceof Ku&&y.code===zu.InvalidParams&&typeof Z==="string"&&f){let B=(await f.get("tools",i.id).catch(()=>null))?.find((F)=>typeof F==="object"&&F!==null&&F.name===Z);throw d50(y,Z,B?.inputSchema,n?.arguments)}throw y}},l.getPrompt=async(n,O)=>{if(!h||!_)return(await $()).getPrompt(n,O);return await h.fetch({type:"prompts/get",connectionId:i.id,scope:asi(),params:n,fetchLive:async()=>{return(await $()).getPrompt(n,O)},onRevalidation:(y)=>u.pendingRevalidations.push(y)})},l.readResource=async(n,O)=>{if(!h||!_){if(process.env?.MCP_CACHE_DEBUG)console.log("[mcp-read-cache] BYPASS (VIRTUAL)",i.id,"resources/read");return(await $()).readResource(n,O)}return await h.fetch({type:"resources/read",connectionId:i.id,scope:asi(),params:n,fetchLive:async()=>{return(await $()).readResource(n,O)},onRevalidation:(y)=>u.pendingRevalidations.push(y)})},l.listResourceTemplates=async(n,O)=>{return(await $()).listResourceTemplates(n,O)};let D=l.close.bind(l);return l.close=async()=>{if(E){let n=await E.catch(()=>null);if(n)await n.close().catch(()=>{})}await D()},l}var Km=g(()=>{Hh();i$();Kl();qsi();Jm();jm();td();kwi();h50()});function osi(i){return{client:{callTool:i.callTool.bind(i),listTools:i.listTools.bind(i)}}}async function I9f(i,u,{superUser:t}){if(!t&&!u.organization?.id)throw Error("Organization context is required");let f=typeof i==="string"?await u.storage.connections.findById(i,u.organization?.id):i;if(!f)throw Error("Connection not found");if(u.organization&&f.organization_id!==u.organization.id)throw Error("Connection does not belong to the active organization");if(!u.organization){let d=await u.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",f.organization_id).executeTakeFirst();u.organization=d?{id:d.id,slug:d.slug,name:d.name}:{id:f.organization_id}}if(f.status!=="active")throw Error(`Connection inactive: ${f.status}`);let l=W7(f,u,t,v1()??void 0),c=qD(l,{name:"mcp-cms-proxy-client",version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},toolCallTimeoutMs:hY}),{client:E,server:$}=TV();await c.connect($);let w=new G1({name:"mcp-cms-proxy-client",version:"1.0.0"},{jsonSchemaValidator:Xl});return await w.connect(E),w}async function _50(i,u){return I9f(i,u,{superUser:!1})}var ssi=g(()=>{Km();td();jt();Hh();i$()});function Gwi(i,u){let t=Array.isArray(u)?u:[u];if(t.length===0)return!1;if(i==="owner")return!0;if(i==="admin")return t.every((f)=>f!=="owner");return!1}var GQ,N3;var t_=g(()=>{GQ=["owner","admin","user"],N3=["owner","admin"]});function psi(i,u){for(let[t,f]of Object.entries(u)){let l=i[t];if(!l||l.length===0){let E=i["*"];if(!E||E.length===0)return!1;if(E.includes("*"))continue;let $=new Set(E);for(let w of f)if(!$.has(w))return!1;continue}if(l.includes("*"))continue;let c=new Set(l);for(let E of f)if(!c.has(E))return!1}return!0}import{adminAc as v50,memberAc as x9f}from"@decocms/better-auth/plugins/organization/access";function upi(i){let u=["*",...i];return{user:{self:[..._Ei],...x9f.statements},admin:{self:u,...v50.statements},owner:{self:u,...v50.statements}}}function k9f(i,u){for(let[t,f]of Object.entries(u)){let l=i[t];if(!l)return!1;for(let c of f)if(!l.includes(c)&&!l.includes("*"))return!1}return!0}function D50(i,u,t){if(!i)return"fallback";if(i.includes(","))return"fallback";if(!GQ.includes(i))return"fallback";let f=t[i];if(!f)return"fallback";return k9f(f,u)?"grant":"deny"}function n50(){if(!ipi){let i=Object.values(TN()).flatMap((u)=>u.map((t)=>t.name));ipi=upi(i)}return ipi}var ipi;var tpi=g(()=>{uY();t_()});var $n="New chat";function O50(){return`<platform>
|
|
86437
86437
|
You are an AI agent running on Deco CMS \u2014 a control plane for connecting
|
|
86438
86438
|
AI agents to external services via the Model Context Protocol (MCP).
|
|
86439
86439
|
|
|
@@ -86635,7 +86635,7 @@ conversation.
|
|
|
86635
86635
|
|
|
86636
86636
|
`);return new d3i({connections:[i],superUser:t,mcpListCache:v1()??void 0,listTimeoutMs:f?.listTimeoutMs,instructions:c},u)}var yz=g(()=>{jt();td();Eg();O90();U90()});var Vg0={};Xi(Vg0,{clientFromConnection:()=>Nc});async function Nc(i,u,t=!1){if(i.connection_type==="VIRTUAL")return A90(i,u,t);return $90(i,u,t)}var Jm=g(()=>{w90();yz()});async function k0u(i,u,t){let f=new AbortController,l,c=new Promise(($,w)=>{l=setTimeout(()=>{f.abort(),w(new x90(i.id,t))},t)}),E=(async()=>{let $=await Nc(i,u,!0);try{return(await $.listTools(void 0,{timeout:t,signal:f.signal})).tools}finally{await $.close().catch(()=>{})}})();E.catch(()=>{});try{return await Promise.race([E,c])}finally{if(l)clearTimeout(l)}}var x90;var k90=g(()=>{Jm();x90=class x90 extends Error{constructor(i,u){super(`listTools timed out after ${u}ms for connection ${i}`);this.name="ListToolsTimeoutError"}}});function D3i(i){return(u)=>{if(u instanceof Ku&&u.code===zu.MethodNotFound)return i;throw u}}var G90=g(()=>{Kl()});function n3i(i,u,t){let f=W7(i,u,t,v1()??void 0),l=qD(f,{name:"mcp-mesh-enhanced",version:"1.0.0"},{capabilities:iAf,toolCallTimeoutMs:hY});l.server.setRequestHandler(S2,async()=>{return await f.listResources().catch(D3i({resources:[]}))}),l.server.setRequestHandler(j2,async()=>{return await f.listResourceTemplates().catch(D3i({resourceTemplates:[]}))}),l.server.setRequestHandler(K2,async()=>{return await f.listPrompts().catch(D3i({prompts:[]}))});let c=l.close.bind(l);return l.close=async()=>{await c(),await f.close().catch(()=>{})},l}var iAf;var S90=g(()=>{jt();Kl();Km();td();G90();iAf={tools:{},resources:{},prompts:{}}});var $g=g(()=>{Jm();k90();S90()});function Na(i,u,t){if(u.some((f)=>f!=="*"&&f.startsWith("SELF::"))&&i.SELF===void 0)i.SELF={value:`${t}_self`}}function ya(i,u){let t=new Map;for(let f of u){if(f==="*")continue;let[l,c]=h$i(f);if(!uAf.has(c))continue;let E=vr(l,i);if(typeof E!=="object"||E===null||!("value"in E))continue;let $=E.value;if(typeof $!=="string")continue;t.set(`${$}:${c}`,{targetConnectionId:$,scope:c})}return[...t.values()]}async function Za(i,u,t,f){for(let c of u){if(c==="*")continue;let[E]=h$i(c),$=vr(E,i);if($===void 0||$===null)throw Error(`Scope references key "${E}" but it's not present in state`)}let l=Mw0(i,u);for(let c of l){if(c.endsWith("_self"))continue;let E=await f.storage.connections.findById(c);if(!E||E.organization_id!==t)throw Error(`Referenced connection not found: ${c}`);try{await f.access.check(c)}catch($){throw Error(`Access denied to referenced connection: ${c}. ${$.message}`)}}}var uAf;var G0u=g(()=>{bai();D$i();uAf=new Set([_$i,v$i])});import{z as j90}from"zod";var tAf,fAf,S0u;var K90=g(()=>{H4();Eu();vt();td();$g();G0u();lr();kv();tAf=j90.object({data:hV.describe("Data for the new connection (id is auto-generated if not provided)")}),fAf=j90.object({item:U6.describe("The created connection entity")}),S0u=ti({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:tAf,outputSchema:fAf,handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let f=Hu(u);if(!f)throw Error("User ID required to create connection");let l={...i.data,organization_id:t.id,created_by:f};if(l.id){if((await u.storage.connections.findById(l.id))?.organization_id===t.id)throw Error("Connection already exists in organization")}if(l.connection_type==="VIRTUAL"){let _=ON(l.connection_url);if(!_)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let v=await u.storage.virtualMcps.findById(_);if(!v)throw Error(`Virtual MCP not found: ${_}`);if(v.organization_id!==t.id)throw Error("Virtual MCP does not belong to the current organization");l.connection_url=NN(_)}if(l.connection_type==="STDIO"&&!yu().localMode)throw Error("STDIO connections are only available in local mode (--local-mode).");let c=await t7({id:`pending-${Date.now()}`,title:l.title,connection_type:l.connection_type,connection_url:l.connection_url,connection_token:l.connection_token,connection_headers:l.connection_headers}).catch(()=>null),E=c?.tools?.length?c.tools:null,$=c?.scopes?.length?c.scopes:l.configuration_scopes??null,w=l.configuration_state??null;if(w&&$?.length)Na(w,$,t.id),await Za(w,$,t.id,u);let d=await u.storage.connections.createNew({...l,tools:null,configuration_state:w,configuration_scopes:$}),h=w&&$?.length?ya(w,$):[];if(h.length>0){let _;try{await u.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:t.id,subjectConnectionId:d.id,createdBy:f,grants:h});let{plaintextToken:v,record:D}=await u.storage.connectionCredentialVault.createOrRotateWorkloadToken({organizationId:t.id,subjectConnectionId:d.id});_=D.id,await(await Nc(d,u,!1)).callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:w,scopes:$,firstRun:!0,vault:{baseUrl:u.baseUrl,org:t.slug??t.id,subjectConnectionId:d.id,token:v}}})}catch(v){if(_)await u.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:t.id,subjectConnectionId:d.id,tokenId:_});throw await u.storage.connections.delete(d.id),v}}if(E)v1()?.set("tools",d.id,E).catch(()=>{});return mu.capture({distinctId:f,event:"connection_created",groups:{organization:t.id},properties:{connection_id:d.id,connection_type:d.connection_type,app_name:d.app_name??null,organization_id:t.id,tools_count:E?.length??0}}),{item:d}}})});import{z as S3}from"zod/v4";import{z as J90}from"zod/v4";import{z as g3i}from"zod/v4";import{z as ov}from"zod/v4";import{z as $Af}from"zod/v4";import{z as Ry}from"zod/v4";import{z as sv}from"zod/v4";import{z as oc}from"zod/v4";import{z as X90}from"zod/v4";import{z as y3i}from"zod/v4";import{z as SAf}from"zod/v4";import{z as L90}from"zod/v4";import{z as O3i}from"zod/v4";import{z as zAf}from"zod/v4";function Ta(i,u){if(i===u)return!0;if(i==null||u==null)return i===u;if(typeof i!==typeof u)return!1;if(Array.isArray(i)&&Array.isArray(u)){if(i.length!==u.length)return!1;return i.every((t,f)=>Ta(t,u[f]))}if(typeof i==="object"&&typeof u==="object"){let t=Object.keys(i),f=Object.keys(u);if(t.length!==f.length)return!1;return t.every((l)=>f.includes(l)&&Ta(i[l],u[l]))}return!1}function xAf(){return(i)=>{if(!Array.isArray(i))return!0;let u=[];return i.every((t)=>{if(u.some((l)=>Ta(t,l)))return!1;return u.push(t),!0})}}function N3i(i,u){return i.safeParse(u).success}function J6(i){if(typeof i==="boolean")return i?S3.any():S3.never();let u={};for(let l of CAf)l.apply(u,i);let t=[];if(u.string!==!1)t.push(u.string||S3.string());if(u.number!==!1)t.push(u.number||S3.number());if(u.boolean!==!1)t.push(u.boolean||S3.boolean());if(u.null!==!1)t.push(u.null||S3.null());if(u.array!==!1)t.push(u.array||S3.array(S3.any()));if(u.tuple!==!1&&u.tuple!==void 0)t.push(u.tuple);if(u.object!==!1)if(u.object)t.push(u.object);else{let l=S3.custom((c)=>{return typeof c==="object"&&c!==null&&!Array.isArray(c)},"Must be an object, not an array");t.push(l)}if(u.file!==!1&&u.file!==void 0)t.push(u.file);let f;if(t.length===0)f=S3.never();else if(t.length===1)f=t[0];else if(!Object.keys(i).some((c)=>c!=="$schema"&&c!=="title"&&c!=="description"))f=S3.any();else f=S3.union(t);for(let l of MAf)f=l.apply(f,i);return f}var lAf=class{apply(i,u){if(!u.type)return;let t=Array.isArray(u.type)?u.type:[u.type],f=new Set(t);if(!f.has("string"))i.string=!1;if(!f.has("number")&&!f.has("integer"))i.number=!1;if(!f.has("boolean"))i.boolean=!1;if(!f.has("null"))i.null=!1;if(!f.has("array"))i.array=!1;if(!f.has("object"))i.object=!1;if(f.has("integer")&&i.number!==!1){let l=i.number||J90.number();if(l instanceof J90.ZodNumber)i.number=l.int()}}},cAf=class{apply(i,u){if(u.const===void 0)return;let t=u.const;if(i.string=!1,i.number=!1,i.boolean=!1,i.null=!1,i.array=!1,i.object=!1,typeof t==="string")i.string=g3i.literal(t);else if(typeof t==="number")i.number=g3i.literal(t);else if(typeof t==="boolean")i.boolean=g3i.literal(t);else if(t===null)i.null=g3i.null();else if(Array.isArray(t))i.array=void 0;else if(typeof t==="object")i.object=void 0}},EAf=class{apply(i,u){if(!u.enum)return;if(u.enum.length===0){if(!u.type)i.string=!1,i.number=!1,i.boolean=!1,i.null=!1,i.array=!1,i.object=!1;return}let t={string:u.enum.filter((f)=>typeof f==="string"),number:u.enum.filter((f)=>typeof f==="number"),boolean:u.enum.filter((f)=>typeof f==="boolean"),null:u.enum.filter((f)=>f===null),array:u.enum.filter((f)=>Array.isArray(f)),object:u.enum.filter((f)=>typeof f==="object"&&f!==null&&!Array.isArray(f))};i.string=this.createTypeSchema(t.string,"string"),i.number=this.createTypeSchema(t.number,"number"),i.boolean=this.createTypeSchema(t.boolean,"boolean"),i.null=t.null.length>0?ov.null():!1,i.array=t.array.length>0?void 0:!1,i.object=t.object.length>0?void 0:!1}createTypeSchema(i,u){if(i.length===0)return!1;if(i.length===1)return ov.literal(i[0]);if(u==="string")return ov.enum(i);if(u==="number"){let[t,f,...l]=i;return ov.union([ov.literal(t),ov.literal(f),...l.map((c)=>ov.literal(c))])}if(u==="boolean")return ov.union([ov.literal(!0),ov.literal(!1)]);return!1}},wAf=class{apply(i,u){let t=u;if(t.type==="string"&&t.format==="binary"&&t.contentEncoding==="binary"){let f=$Af.file();if(t.minLength!==void 0)f=f.min(t.minLength);if(t.maxLength!==void 0)f=f.max(t.maxLength);if(t.contentMediaType!==void 0)f=f.mime(t.contentMediaType);i.file=f,i.string=!1}}},dAf=class{apply(i,u){let t=u;if(u.type===void 0&&(t.minLength!==void 0||t.maxLength!==void 0||t.pattern!==void 0)){if(i.string===void 0)i.string=Ry.string()}}},hAf=class{apply(i,u){let t=u;if(t.minLength===void 0)return;if(i.string!==!1){let f=i.string||Ry.string();if(f instanceof Ry.ZodString)i.string=f.refine((l)=>{return Array.from(l).length>=t.minLength},{message:`String must be at least ${t.minLength} characters long`})}}},_Af=class{apply(i,u){let t=u;if(t.maxLength===void 0)return;if(i.string!==!1){let f=i.string||Ry.string();if(f instanceof Ry.ZodString)i.string=f.refine((l)=>{return Array.from(l).length<=t.maxLength},{message:`String must be at most ${t.maxLength} characters long`})}}},vAf=class{apply(i,u){let t=u;if(!t.pattern)return;if(i.string!==!1){let f=i.string||Ry.string();if(f instanceof Ry.ZodString){let l=new RegExp(t.pattern);i.string=f.regex(l)}}}},DAf=class{apply(i,u){let t=u;if(t.minimum===void 0)return;if(i.number!==!1){let f=i.number||sv.number();if(f instanceof sv.ZodNumber)i.number=f.min(t.minimum)}}},nAf=class{apply(i,u){let t=u;if(t.maximum===void 0)return;if(i.number!==!1){let f=i.number||sv.number();if(f instanceof sv.ZodNumber)i.number=f.max(t.maximum)}}},gAf=class{apply(i,u){let t=u;if(t.exclusiveMinimum===void 0)return;if(i.number!==!1){let f=i.number||sv.number();if(f instanceof sv.ZodNumber)if(typeof t.exclusiveMinimum==="number")i.number=f.gt(t.exclusiveMinimum);else i.number=!1}}},OAf=class{apply(i,u){let t=u;if(t.exclusiveMaximum===void 0)return;if(i.number!==!1){let f=i.number||sv.number();if(f instanceof sv.ZodNumber)if(typeof t.exclusiveMaximum==="number")i.number=f.lt(t.exclusiveMaximum);else i.number=!1}}},NAf=class{apply(i,u){let t=u;if(t.multipleOf===void 0)return;if(i.number!==!1){let f=i.number||sv.number();if(f instanceof sv.ZodNumber)i.number=f.refine((l)=>{if(t.multipleOf===0)return!1;let c=l/t.multipleOf,E=Math.round(c),$=Math.min(Math.abs(l)*Number.EPSILON*10,Math.abs(t.multipleOf)*Number.EPSILON*10);return Math.abs(c-E)<=$/Math.abs(t.multipleOf)},{message:`Must be a multiple of ${t.multipleOf}`})}}},yAf=class{apply(i,u){let t=u;if(u.type===void 0&&(t.minItems!==void 0||t.maxItems!==void 0||t.items!==void 0||t.prefixItems!==void 0)){if(i.array===void 0)i.array=oc.array(oc.any())}}},ZAf=class{apply(i,u){let t=u;if(t.minItems===void 0)return;if(i.array!==!1)i.array=(i.array||oc.array(oc.any())).min(t.minItems)}},TAf=class{apply(i,u){let t=u;if(t.maxItems===void 0)return;if(i.array!==!1)i.array=(i.array||oc.array(oc.any())).max(t.maxItems)}},BAf=class{apply(i,u){let t=u;if(i.array===!1)return;if(Array.isArray(t.items))i.array=i.array||oc.array(oc.any());else if(t.items&&typeof t.items!=="boolean"&&!t.prefixItems){let f=J6(t.items),l=oc.array(f);if(i.array&&i.array instanceof oc.ZodArray){let c=i.array._def;if(c.checks)c.checks.forEach((E)=>{if(E._zod&&E._zod.def){let $=E._zod.def;if($.check==="min_length"&&$.minimum!==void 0)l=l.min($.minimum);else if($.check==="max_length"&&$.maximum!==void 0)l=l.max($.maximum)}})}i.array=l}else if(typeof t.items==="boolean"&&t.items===!1)if(!t.prefixItems)i.array=oc.array(oc.any()).max(0);else i.array=i.array||oc.array(oc.any());else if(typeof t.items==="boolean"&&t.items===!0)i.array=i.array||oc.array(oc.any());else if(t.prefixItems)i.array=i.array||oc.array(oc.any())}},FAf=class{apply(i,u){if(u.type!=="array")return;let t=u;if(!Array.isArray(t.items))return;if(i.array===!1)return;let f=t.items.map((c)=>J6(c)),l;if(f.length===0)l=X90.tuple([]);else l=X90.tuple(f);if(t.minItems!==void 0&&t.minItems>f.length)l=!1;if(t.maxItems!==void 0&&t.maxItems<f.length)l=!1;i.tuple=l,i.array=!1}},UAf=class{apply(i,u){let t=u;if(i.object===!1)return;if(t.properties||t.required||t.additionalProperties!==void 0)i.object=i.object||y3i.object({}).passthrough()}},PAf=class{apply(i,u){let t=u;if(u.type===void 0&&(t.maxProperties!==void 0||t.minProperties!==void 0)){if(i.object===void 0)i.object=y3i.object({}).passthrough()}}},AAf=class{apply(i,u){let t=u;if(t.maxProperties===void 0)return;if(i.object!==!1){let f=i.object||y3i.object({}).passthrough();i.object=f.refine((l)=>Object.keys(l).length<=t.maxProperties,{message:`Object must have at most ${t.maxProperties} properties`})}}},IAf=class{apply(i,u){let t=u;if(t.minProperties===void 0)return;if(i.object!==!1){let f=i.object||y3i.object({}).passthrough();i.object=f.refine((l)=>Object.keys(l).length>=t.minProperties,{message:`Object must have at least ${t.minProperties} properties`})}}},kAf=class{apply(i,u){if(!u.not)return i;let t=J6(u.not);return i.refine((f)=>!N3i(t,f),{message:"Value must not match the 'not' schema"})}},GAf=class{apply(i,u){if(u.uniqueItems!==!0)return i;return i.refine(xAf(),{message:"Array items must be unique"})}},jAf=class{apply(i,u){if(!u.allOf||u.allOf.length===0)return i;return u.allOf.map((f)=>J6(f)).reduce((f,l)=>SAf.intersection(f,l),i)}},KAf=class{apply(i,u){if(!u.anyOf||u.anyOf.length===0)return i;let t=u.anyOf.length===1?J6(u.anyOf[0]):L90.union([J6(u.anyOf[0]),J6(u.anyOf[1]),...u.anyOf.slice(2).map((f)=>J6(f))]);return L90.intersection(i,t)}},JAf=class{apply(i,u){if(!u.oneOf||u.oneOf.length===0)return i;let t=u.oneOf.map((f)=>J6(f));return i.refine((f)=>{let l=0;for(let c of t)if(c.safeParse(f).success){if(l++,l>1)return!1}return l===1},{message:"Value must match exactly one of the oneOf schemas"})}},XAf=class{apply(i,u){let t=u;if(t.prefixItems&&Array.isArray(t.prefixItems)){let l=t.prefixItems.map((c)=>J6(c));return i.refine((c)=>{if(!Array.isArray(c))return!0;for(let E=0;E<Math.min(c.length,l.length);E++)if(!N3i(l[E],c[E]))return!1;if(c.length>l.length){if(typeof t.items==="boolean"&&t.items===!1)return!1;else if(t.items&&typeof t.items==="object"&&!Array.isArray(t.items)){let E=J6(t.items);for(let $=l.length;$<c.length;$++)if(!N3i(E,c[$]))return!1}}return!0},{message:"Array does not match prefixItems schema"})}return i}},LAf=class{apply(i,u){let t=u;if(!t.properties&&!t.required&&t.additionalProperties!==!1)return i;if(i instanceof O3i.ZodObject||i instanceof O3i.ZodRecord){let f={};if(t.properties){for(let[l,c]of Object.entries(t.properties))if(c!==void 0)f[l]=J6(c)}if(t.required&&Array.isArray(t.required)){let l=new Set(t.required);for(let c of Object.keys(f))if(!l.has(c))f[c]=f[c].optional()}else for(let l of Object.keys(f))f[l]=f[l].optional();if(t.additionalProperties===!1)return O3i.object(f);else return O3i.object(f).passthrough()}return i.refine((f)=>{if(typeof f!=="object"||f===null||Array.isArray(f))return!0;if(t.properties){for(let[l,c]of Object.entries(t.properties))if(c!==void 0){if(Object.getOwnPropertyDescriptor(f,l)!==void 0){if(!J6(c).safeParse(f[l]).success)return!1}}}if(t.required&&Array.isArray(t.required)){for(let l of t.required)if(Object.getOwnPropertyDescriptor(f,l)===void 0)return!1}if(t.additionalProperties===!1&&t.properties){let l=new Set(Object.keys(t.properties));for(let c in f)if(!l.has(c))return!1}return!0},{message:"Object constraints validation failed"})}},WAf=class{apply(i,u){if(!u.enum||u.enum.length===0)return i;let t=u.enum.filter((f)=>Array.isArray(f)||typeof f==="object"&&f!==null);if(t.length===0)return i;return i.refine((f)=>{if(typeof f!=="object"||f===null)return!0;return t.some((l)=>Ta(f,l))},{message:"Value must match one of the enum values"})}},YAf=class{apply(i,u){if(u.const===void 0)return i;let t=u.const;if(typeof t!=="object"||t===null)return i;return i.refine((f)=>Ta(f,t),{message:"Value must equal the const value"})}},QAf=class{apply(i,u){if(u.description)i=i.describe(u.description);return i}},HAf=class{apply(i,u){var t;let f=u;if(!((t=f.required)==null?void 0:t.includes("__proto__"))||u.type!==void 0)return i;return zAf.any().refine((l)=>this.validateRequired(l,f.required),{message:"Missing required properties"})}validateRequired(i,u){if(typeof i!=="object"||i===null||Array.isArray(i))return!0;return u.every((t)=>Object.prototype.hasOwnProperty.call(i,t))}},RAf=class{apply(i,u){var t;let f=u;if(f.contains===void 0)return i;let l=J6(f.contains),c=(t=f.minContains)!=null?t:1,E=f.maxContains;return i.refine(($)=>{if(!Array.isArray($))return!0;let w=0;for(let d of $)if(N3i(l,d))w++;if(w<c)return!1;if(E!==void 0&&w>E)return!1;return!0},{message:"Array must contain required items matching the schema"})}},bAf=class{apply(i,u){let{default:t}=u;if(t===void 0)return i;if(!i.safeParse(t).success)return i;return i.default(t)}},CAf,MAf;var W90=g(()=>{CAf=[new cAf,new EAf,new lAf,new wAf,new dAf,new yAf,new PAf,new hAf,new _Af,new vAf,new DAf,new nAf,new gAf,new OAf,new NAf,new FAf,new ZAf,new TAf,new BAf,new AAf,new IAf,new UAf],MAf=[new HAf,new WAf,new YAf,new jAf,new KAf,new JAf,new XAf,new LAf,new RAf,new kAf,new GAf,new bAf,new QAf]});class j0u{constructor(i){this._url=i}start(){if(this._socket)throw Error("WebSocketClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((i,u)=>{this._socket=new WebSocket(this._url,qAf),this._socket.onerror=(t)=>{let f="error"in t?t.error:Error(`WebSocket error: ${JSON.stringify(t)}`);u(f),this.onerror?.(f)},this._socket.onopen=()=>{i()},this._socket.onclose=()=>{this.onclose?.()},this._socket.onmessage=(t)=>{let f;try{f=ow.parse(JSON.parse(t.data))}catch(l){this.onerror?.(l);return}this.onmessage?.(f)}})}async close(){this._socket?.close()}send(i){return new Promise((u,t)=>{if(!this._socket){t(Error("Not connected"));return}this._socket?.send(JSON.stringify(i)),u()})}}var qAf="mcp";var Y90=g(()=>{Kl()});function VAf(i){let u=i;if(!u||typeof u!=="object"||!("method"in u))return null;switch(u.method){case"initialize":{let t=u?.params?.protocolVersion;if(!t)return null;return{type:"emit",message:{result:{protocolVersion:t,capabilities:{tools:{}},serverInfo:{name:"deco-chat-server",version:"1.0.0"}},jsonrpc:u.jsonrpc??"2.0",id:u.id}}}case"notifications/roots/list_changed":case"notifications/initialized":case"notifications/cancelled":case"notifications/progress":return{type:"suppress"};default:return null}}var Z3i;var K0u=g(()=>{gN();Z3i=class Z3i extends Rh{constructor(i,u){super(i,u)}send(i,u){let t=VAf(i);if(t?.type==="emit")return this.onmessage?.(t.message),Promise.resolve();if(t?.type==="suppress")return Promise.resolve();return super.send(i,u)}}});var Q90,z90=async(i,u,t)=>{let f=rAf(i.connection,u,t);if(!f)throw Error("Unknown MCP connection type");let l=new Q90({name:i?.name??"MCP Client",version:"1.0.0"});return await l.connect(f),{client:l}},rAf=(i,u,t)=>{if(i.type==="Websocket")return new j0u(new URL(i.url));if(i.type!=="SSE"&&i.type!=="HTTP")return null;let l={...i.token?{authorization:`Bearer ${i.token}`}:{},...t??{},..."headers"in i?i.headers||{}:{}};if(i.type==="SSE"){let c={requestInit:{headers:l,signal:u}};if(i.token)c.eventSourceInit={fetch:(E,$)=>{return fetch(E,{...$,headers:{...l,Accept:"text/event-stream"},signal:u})}};return new un(new URL(i.url),c)}return new Z3i(new URL(i.url),{requestInit:{headers:l,signal:u,credentials:"include"}})};var H90=g(()=>{Hh();tr();Y90();Kl();i$();K0u();Q90=class Q90 extends G1{constructor(i,u){super(i,{jsonSchemaValidator:Xl,...u})}async listTools(i,u){return await this.request({method:"tools/list",params:i},Kq,u)}}});function C90(i){let u=(t)=>{if("connection"in i)return z90({connection:i.connection},void 0,t);return i.client};return new Proxy({},{get(t,f){if(f==="toJSON")return null;if(typeof f!=="string")throw Error("Name must be a string");if(f==="listTools")return $;async function l(w,d=f){let h=i?.debugId?.(),_=h?{"x-trace-debug-id":h}:void 0,{client:v}=await u(_),{structuredContent:D,isError:n,content:O}=await v.callTool({name:String(d),arguments:w});if(n){let y=O?.[0]?.text,Z=typeof y==="string"?R90(y):null,T=Z?.code&&typeof i?.getErrorByStatusCode==="function"?i.getErrorByStatusCode(Z.code,Z.message,Z.traceId):null;if(T)throw T;throw Error(`Tool ${String(d)} returned an error: ${JSON.stringify(D??O)}`)}if(D!==void 0)return D;let N=O?.[0]?.text;return typeof N==="string"?R90(N):void 0}async function c(){let{client:w}=await u(),{tools:d}=await w.listTools();return d}async function E(){if(!("connection"in i))return c();let w=i.connection,d=JSON.stringify(w);try{if(!T3i.has(d))T3i.set(d,c());return await T3i.get(d)}catch(h){console.error("Failed to list tools",h),T3i.delete(d);return}}async function $(){return(await E()??[]).map((d)=>b90(d,l))}return l.asTool=async()=>{let d=(await E()??[]).find((h)=>h.name===f);if(!d)throw Error(`Tool ${f} not found`);return b90(d,l)},l}})}var R90=(i)=>{try{return JSON.parse(i)}catch{return i}},T3i,b90=(i,u)=>{return{...i,id:i.name,inputSchema:i.inputSchema?J6(i.inputSchema):void 0,outputSchema:i.outputSchema?J6(i.outputSchema):void 0,execute:(t)=>{return u(t.context,i.name)}}};var M90=g(()=>{W90();H90();T3i=new Map});function by(i){return C90(i)}var Zz;var J0u=g(()=>{M90();Zz=new Proxy({},{get(i,u){if(u==="toJSON")return null;if(u==="forConnection")return(t)=>by({connection:t});return global[u]}})});function B3i(i){return{isImplementedBy:(u)=>{for(let t of i){let f=typeof t.name==="string"?new RegExp(`^${t.name}$`):t.name,l=u.find((c)=>f.test(c.name));if(!l&&t.opt)continue;if(!l)return!1}return!0}}}var pv=(i)=>{return{...B3i(i),forClient:(u)=>{return by({client:u})},forConnection:(u)=>{return by({connection:u})}}};var Cy=g(()=>{J0u()});import{z as xt}from"zod";function Tn(i){return xt.object({items:xt.array(i).describe("Array of collection items"),totalCount:xt.number().int().min(0).optional().describe("Total number of matching items (if available)"),hasMore:xt.boolean().optional().describe("Whether there are more items available")})}function Fa(i){return xt.object({item:i.nullable().describe("The retrieved item, or null if not found")})}function aAf(i){return xt.object({data:i.partial().describe("Data for the new entity (id may be auto-generated)")})}function oAf(i){return xt.object({item:i.describe("The created entity with generated id")})}function sAf(i){return xt.object({id:xt.string().describe("ID of the entity to update"),data:i.partial().describe("Partial entity data to update")})}function pAf(i){return xt.object({item:i.describe("The updated entity")})}function Pa(i){return xt.object({item:i.describe("The deleted entity")})}function Bz(i,u,t){let f=i.toUpperCase(),l=t?.readOnly??!1,c=[{name:`COLLECTION_${f}_LIST`,inputSchema:g_,outputSchema:Tn(u)},{name:`COLLECTION_${f}_GET`,inputSchema:Ba,outputSchema:Fa(u)}];if(!l)c.push({name:`COLLECTION_${f}_CREATE`,inputSchema:aAf(u),outputSchema:oAf(u),opt:!0},{name:`COLLECTION_${f}_UPDATE`,inputSchema:sAf(u),outputSchema:pAf(u),opt:!0},{name:`COLLECTION_${f}_DELETE`,inputSchema:Ua,outputSchema:Pa(u),opt:!0});return c}var Tz,mAf,q90,eAf,g_,Ba,Ua;var gd=g(()=>{Tz=xt.object({id:xt.string().describe("Unique identifier for the entity"),title:xt.string().describe("Human-readable title for the entity"),description:xt.string().nullish().describe("Description of the entity"),created_at:xt.string().datetime(),updated_at:xt.string().datetime(),created_by:xt.string().optional(),updated_by:xt.string().optional()}),mAf=xt.object({field:xt.array(xt.string()),operator:xt.enum(["eq","gt","gte","lt","lte","in","like","contains"]),value:xt.unknown()}),q90=xt.lazy(()=>xt.union([mAf,xt.object({operator:xt.enum(["and","or","not"]),conditions:xt.array(q90)})])),eAf=xt.object({field:xt.array(xt.string()),direction:xt.enum(["asc","desc"]),nulls:xt.enum(["first","last"]).optional()}),g_=xt.object({where:q90.optional().describe("Filter expression"),orderBy:xt.array(eAf).optional().describe("Sort expressions"),limit:xt.number().int().min(1).max(1000).optional().describe("Maximum number of items to return"),offset:xt.number().int().min(0).optional().describe("Number of items to skip")});Ba=xt.object({id:xt.string().describe("ID of the entity to retrieve")});Ua=xt.object({id:xt.string().describe("ID of the entity to delete")})});import{z as Y0}from"zod";var iIf,V90,LVl;var r90=g(()=>{gd();iIf=Y0.object({id:Y0.string(),name:Y0.string(),description:Y0.string().optional(),inputSchema:Y0.record(Y0.string(),Y0.unknown()),outputSchema:Y0.record(Y0.string(),Y0.unknown()).optional()}),V90=Tz.extend({_meta:Y0.object({"io.decocms":Y0.object({id:Y0.string(),verified:Y0.boolean(),scopeName:Y0.string(),appName:Y0.string(),friendlyName:Y0.string().nullable().optional(),metadata:Y0.record(Y0.string(),Y0.unknown()).nullable().optional(),publishedAt:Y0.string().datetime().optional(),updatedAt:Y0.string().datetime().optional(),tools:Y0.array(iIf).nullable().optional().describe("Available tools exposed by this app")}).optional()}).optional(),server:Y0.object({$schema:Y0.string().optional(),_meta:Y0.record(Y0.string(),Y0.unknown()).optional(),name:Y0.string().describe("The server name (scope/app)"),title:Y0.string().optional().describe("User-friendly title"),description:Y0.string().optional().describe("Server description"),icons:Y0.array(Y0.object({src:Y0.string(),mimeType:Y0.string().optional(),sizes:Y0.array(Y0.string()).optional(),theme:Y0.enum(["light","dark"]).optional()})).optional(),remotes:Y0.array(Y0.object({type:Y0.enum(["http","stdio","sse"]),url:Y0.string().optional(),headers:Y0.array(Y0.unknown()).optional()})).optional(),packages:Y0.array(Y0.unknown()).optional(),repository:Y0.object({url:Y0.string(),source:Y0.string().optional(),subfolder:Y0.string().optional()}).optional(),version:Y0.string().optional(),websiteUrl:Y0.string().optional()})}),LVl=Bz("registry_app",V90,{readOnly:!0})});import{z as ol}from"zod";var m90,F3i,e90,U3i,a90,uIf;var o90=g(()=>{Cy();m90=ol.object({specversion:ol.literal("1.0").describe("CloudEvents specification version"),id:ol.string().describe("Unique identifier for this event (UUID recommended)"),source:ol.string().describe("Connection ID of the event publisher"),type:ol.string().describe("Event type (e.g., 'order.created', 'user.signup')"),time:ol.string().datetime().optional().describe("Timestamp of when the event occurred (ISO 8601)"),subject:ol.string().optional().describe("Subject/resource identifier (e.g., order ID, user ID)"),datacontenttype:ol.string().optional().default("application/json").describe("Content type of the data attribute"),dataschema:ol.string().url().optional().describe("URI to the schema for the data attribute"),data:ol.unknown().optional().describe("Event payload (any JSON value)")}),F3i=ol.object({events:ol.array(m90).min(1).describe("Batch of CloudEvents to process")}),e90=ol.object({success:ol.boolean().optional().describe("Whether this event was processed successfully"),error:ol.string().optional().describe("Error message for this event"),retryAfter:ol.number().int().positive().optional().describe("Re-deliver this event after this many ms")}),U3i=ol.object({success:ol.boolean().optional().describe("Batch success - applies to events not in results"),error:ol.string().optional().describe("Batch error message - applies to events not in results"),processedCount:ol.number().int().min(0).optional().describe("Number of events successfully processed"),retryAfter:ol.number().int().positive().optional().describe("Batch retryAfter - applies to events not in results"),results:ol.record(ol.string(),e90).optional().describe("Per-event results keyed by event ID")}),a90=[{name:"ON_EVENTS",inputSchema:F3i,outputSchema:U3i}],uIf=pv(a90)});import{z as sl}from"zod";var s90,p90,iO0,uO0,tO0,fO0,P3i,X0u;var L0u=g(()=>{Cy();s90=sl.object({type:sl.literal("string"),enum:sl.array(sl.string()).optional(),description:sl.string().optional()}),p90=sl.object({type:sl.string(),description:sl.string(),paramsSchema:sl.record(sl.string(),s90)}),iO0=sl.object({}),uO0=sl.object({triggers:sl.array(p90)}),tO0=sl.object({type:sl.string(),params:sl.record(sl.string(),sl.string()),enabled:sl.boolean(),callbackUrl:sl.url().optional(),callbackToken:sl.string().min(1).optional()}),fO0=sl.object({success:sl.boolean()}),P3i=[{name:"TRIGGER_LIST",inputSchema:iO0,outputSchema:uO0},{name:"TRIGGER_CONFIGURE",inputSchema:tO0,outputSchema:fO0}],X0u=pv(P3i)});import{z as J4}from"zod";var lO0,cO0,EO0,Aa,A3i,I3i,x3i,k3i,tIf;var W0u=g(()=>{Cy();lO0=J4.object({primary:J4.string().optional().describe("Primary brand color (hex)"),secondary:J4.string().optional().describe("Secondary brand color (hex)"),accent:J4.string().optional().describe("Accent / highlight color (hex)"),background:J4.string().optional().describe("Background color (hex)"),foreground:J4.string().optional().describe("Foreground / text color (hex)")}),cO0=J4.object({heading:J4.string().optional().describe("Font family for headings"),body:J4.string().optional().describe("Font family for body text"),code:J4.string().optional().describe("Font family for code / monospace")}),EO0=J4.object({logo:J4.string().optional().describe("Logo URL"),favicon:J4.string().optional().describe("Favicon URL"),ogImage:J4.string().optional().describe("Open Graph image URL")}),Aa=J4.object({id:J4.string(),name:J4.string().describe("Brand / company name"),domain:J4.string().optional().describe("Company domain (e.g. example.com)"),colors:lO0.optional().describe("Semantic color palette"),fonts:cO0.optional().describe("Font families by role"),assets:EO0.optional().describe("Visual identity assets"),overview:J4.string().optional().describe("Company overview / description"),tagline:J4.string().optional().describe("Brand tagline"),tone:J4.string().optional().describe("Tone of voice description"),metadata:J4.record(J4.string(),J4.unknown()).optional().describe("Extra design tokens and metadata")}),A3i=J4.object({id:J4.string().optional().describe("Brand ID. Omit to get the default brand.")}),I3i=J4.object({}),x3i=J4.object({items:J4.array(Aa)}),k3i=[{name:"BRAND_GET",inputSchema:A3i,outputSchema:Aa},{name:"BRAND_LIST",inputSchema:I3i,outputSchema:x3i,opt:!0}],tIf=pv(k3i)});var Y0u=g(()=>{Cy();r90();o90();L0u();Pq();W0u()});import{z as Fz}from"zod";var fIf,lIf,$O0;var wO0=g(()=>{gd();fIf=Tz.extend({avatar:Fz.string().describe("URL or data URI to the assistant's avatar image"),system_prompt:Fz.string().describe("System prompt that defines the assistant's behavior"),virtual_mcp_id:Fz.string().describe("Virtual MCP ID to use for this assistant"),model:Fz.object({id:Fz.string().describe("Model ID"),connectionId:Fz.string().describe("Connection ID that provides the model")}).describe("Selected model reference for this assistant")}),lIf=Bz("assistant",fIf),$O0=[...lIf]});import{z as Ai}from"zod";var Ia,Bn,hO0,cIf,EIf,_O0,$If,wIf,dIf,hIf,_If,vIf,vO0,DIf,nIf,gIf,OIf,NIf,yIf,ZIf,TIf,BIf,FIf,$rl,UIf,wrl,dO0,PIf,AIf,G3i,drl;var DO0=g(()=>{Cy();gd();Ia=Ai.lazy(()=>Ai.union([Ai.null(),Ai.string(),Ai.number(),Ai.boolean(),Ai.record(Ai.string(),Ia),Ai.array(Ia)])),Bn=Ai.record(Ai.string(),Ai.record(Ai.string(),Ia)).optional().describe("Additional provider-specific options. Outer record keyed by provider name, inner by option key"),hO0=Ai.object({type:Ai.literal("text"),text:Ai.string().describe("The text content"),providerOptions:Bn}),cIf=Ai.object({type:Ai.literal("text"),text:Ai.string().describe("The text content"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata")}),EIf=Ai.string().describe("File data as URL string"),_O0=Ai.object({type:Ai.literal("file"),filename:Ai.string().optional().describe("Optional filename of the file"),data:EIf,mediaType:Ai.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),providerOptions:Bn}),$If=Ai.object({type:Ai.literal("file"),mediaType:Ai.string().describe("IANA media type of the file (e.g., image/png, audio/mp3)"),data:Ai.string().describe("Generated file data as base64 encoded string")}),wIf=Ai.object({type:Ai.literal("reasoning"),text:Ai.string().describe("The reasoning text"),providerOptions:Bn}),dIf=Ai.object({type:Ai.literal("reasoning"),text:Ai.string().describe("The reasoning text"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata")}),hIf=Ai.object({type:Ai.literal("tool-call"),toolCallId:Ai.string().describe("ID of the tool call, used to match with tool result"),toolName:Ai.string().describe("Name of the tool being called"),input:Ai.string().describe("Arguments of the tool call (JSON-serializable object matching tool input schema)"),providerExecuted:Ai.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerOptions:Bn}),_If=Ai.object({type:Ai.literal("tool-call"),toolCallId:Ai.string().describe("ID of the tool call"),toolName:Ai.string().describe("Name of the tool being called"),input:Ai.string().describe("Stringified JSON object with the tool call arguments"),providerExecuted:Ai.boolean().optional().describe("Whether the tool call will be executed by the provider"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata")}),vIf=Ai.union([Ai.object({type:Ai.literal("text"),value:Ai.string()}),Ai.object({type:Ai.literal("json"),value:Ia}),Ai.object({type:Ai.literal("error-text"),value:Ai.string()}),Ai.object({type:Ai.literal("error-json"),value:Ia}),Ai.object({type:Ai.literal("content"),value:Ai.array(Ai.union([Ai.object({type:Ai.literal("text"),text:Ai.string().describe("Text content")}),Ai.object({type:Ai.literal("media"),data:Ai.string().describe("Base-64 encoded media data"),mediaType:Ai.string().describe("IANA media type")})]))}),Ai.object({type:Ai.literal("execution-denied"),reason:Ai.string().optional()}),Ai.string().describe("Raw or JSON-serialized output (e.g. from AI SDK mapToolResultOutput)")]),vO0=Ai.object({type:Ai.literal("tool-result"),toolCallId:Ai.string().describe("ID of the tool call that this result is associated with"),toolName:Ai.string().describe("Name of the tool that generated this result"),output:vIf.describe("Result of the tool call"),result:Ai.unknown().describe("Unknown result of the tool call"),providerOptions:Bn}),DIf=Ai.object({type:Ai.literal("tool-result"),toolCallId:Ai.string().describe("ID of the tool call that this result is associated with"),toolName:Ai.string().describe("Name of the tool that generated this result"),result:Ai.any().describe("Result of the tool call (JSON-serializable)"),isError:Ai.boolean().optional().describe("Whether the result is an error or error message"),providerExecuted:Ai.boolean().optional().describe("Whether the tool result was generated by the provider"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata")}),nIf=Ai.union([Ai.object({type:Ai.literal("source"),sourceType:Ai.literal("url"),id:Ai.string().describe("The ID of the source"),url:Ai.string().describe("The URL of the source"),title:Ai.string().optional().describe("The title of the source"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata")}),Ai.object({type:Ai.literal("source"),sourceType:Ai.literal("document"),id:Ai.string().describe("The ID of the source"),mediaType:Ai.string().describe("IANA media type of the document (e.g., application/pdf)"),title:Ai.string().describe("The title of the document"),filename:Ai.string().optional().describe("Optional filename of the document"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata")})]),gIf=Ai.object({role:Ai.literal("system"),content:Ai.string().describe("System message content"),providerOptions:Bn}),OIf=Ai.object({role:Ai.literal("user"),content:Ai.array(Ai.union([hO0,_O0])).describe("User message content parts (text or file)"),providerOptions:Bn}),NIf=Ai.object({role:Ai.literal("assistant"),content:Ai.array(Ai.union([hO0,_O0,wIf,hIf,vO0])).describe("Assistant message content parts (text, file, reasoning, tool-call, or tool-result)"),providerOptions:Bn}),yIf=Ai.object({role:Ai.literal("tool"),content:Ai.array(vO0).describe("Tool message content (tool results)"),providerOptions:Bn}),ZIf=Ai.union([gIf,OIf,NIf,yIf]),TIf=Ai.array(ZIf).describe("A list of messages forming the prompt"),BIf=Ai.object({prompt:TIf.describe("A language model prompt is a standardized prompt type (array of messages with roles: system, user, assistant, tool)"),maxOutputTokens:Ai.number().optional().describe("Maximum number of tokens to generate"),temperature:Ai.number().optional().describe("Temperature setting. The range depends on the provider and model"),topP:Ai.number().optional().describe("Nucleus sampling parameter"),topK:Ai.number().optional().describe("Only sample from the top K options for each subsequent token. Used to remove long tail low probability responses"),presencePenalty:Ai.number().optional().describe("Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt"),frequencyPenalty:Ai.number().optional().describe("Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases"),seed:Ai.number().optional().describe("The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results"),stopSequences:Ai.array(Ai.string()).optional().describe("Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated"),responseFormat:Ai.union([Ai.object({type:Ai.literal("text")}),Ai.object({type:Ai.literal("json"),schema:Ai.any().optional().describe("JSON schema that the generated output should conform to"),name:Ai.string().optional().describe("Name of output that should be generated"),description:Ai.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:Ai.array(Ai.any()).optional().describe("The tools that are available for the model"),toolChoice:Ai.any().optional().describe("Specifies how the tool should be selected. Defaults to 'auto'"),includeRawChunks:Ai.boolean().optional().describe("Include raw chunks in the stream. Only applicable for streaming calls"),abortSignal:Ai.any().optional().describe("Abort signal for cancelling the operation"),providerOptions:Ai.any().optional().describe("Additional provider-specific options")}),FIf=Ai.object({content:Ai.array(Ai.union([cIf,$If,dIf,_If,DIf,nIf])).describe("Ordered content that the model has generated (text, tool-calls, reasoning, files, sources)"),finishReason:Ai.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).describe("Reason why generation stopped"),usage:Ai.looseObject({inputTokens:Ai.number().optional(),outputTokens:Ai.number().optional(),totalTokens:Ai.number().optional(),reasoningTokens:Ai.number().optional()}).describe("Usage information for the language model call"),providerMetadata:Ai.any().optional().describe("Additional provider-specific metadata"),request:Ai.object({body:Ai.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:Ai.object({id:Ai.string().optional().describe("ID for the generated response"),timestamp:Ai.iso.datetime().optional().describe("Timestamp for the start of the generated response"),modelId:Ai.string().optional().describe("The ID of the response model that was used"),headers:Ai.record(Ai.string(),Ai.string()).optional().describe("Response headers"),body:Ai.any().optional().describe("Response HTTP body")}).optional().describe("Optional response information for telemetry and debugging"),warnings:Ai.array(Ai.any()).describe("Warnings for the call, e.g. unsupported settings")}),$rl=Ai.object({stream:Ai.any().describe("ReadableStream of LanguageModelV2StreamPart"),request:Ai.object({body:Ai.any().optional().describe("Request HTTP body sent to the provider API")}).optional().describe("Optional request information for telemetry and debugging"),response:Ai.object({headers:Ai.record(Ai.string(),Ai.string()).optional().describe("Response headers")}).optional().describe("Optional response data")}),UIf=Ai.object({supportedUrls:Ai.record(Ai.string(),Ai.array(Ai.string())).describe("Supported URL patterns by media type for the provider")}),wrl=Ai.object({modelId:Ai.string().describe("The ID of the model"),logo:Ai.string().nullable(),description:Ai.string().nullable(),capabilities:Ai.array(Ai.string()),limits:Ai.object({contextWindow:Ai.number(),maxOutputTokens:Ai.number()}).nullable(),costs:Ai.object({input:Ai.number(),output:Ai.number()}).nullable(),provider:Ai.enum(["openai","anthropic","google","x-ai","deepseek","openai-compatible","openrouter"]).nullable()}),dO0=Ai.object({modelId:Ai.string().describe("The ID of the model"),callOptions:BIf}),PIf=Tz.extend({logo:Ai.string().nullable(),description:Ai.string().nullable(),capabilities:Ai.array(Ai.string()),limits:Ai.object({contextWindow:Ai.number(),maxOutputTokens:Ai.number()}).nullable(),costs:Ai.object({input:Ai.number(),output:Ai.number()}).nullable(),provider:Ai.enum(["openai","anthropic","google","xai","deepseek","openai-compatible","openrouter"]).nullable()}),AIf=Bz("llm",PIf,{readOnly:!0}),G3i=[{name:"LLM_METADATA",inputSchema:Ai.object({modelId:Ai.string().describe("The ID of the model")}),outputSchema:UIf},{name:"LLM_DO_STREAM",inputSchema:dO0},{name:"LLM_DO_GENERATE",inputSchema:dO0,outputSchema:FIf},...AIf],drl=pv(G3i)});import{z as My}from"zod";var IIf,nO0;var gO0=g(()=>{IIf=My.object({scopes:My.array(My.string()).describe("List of scopes available"),stateSchema:My.record(My.string(),My.unknown()).describe("JSON Schema (draft-07) defining the state structure")}),nO0=[{name:"MCP_CONFIGURATION",inputSchema:My.object({}),outputSchema:IIf}]});import{z as pl}from"zod";var xIf,kIf,OO0;var NO0=g(()=>{xIf=pl.object({}).strict(),kIf=pl.object({billing:pl.object({mode:pl.enum(["prepaid","postpaid"]),limitPeriod:pl.enum(["daily","weekly","monthly"]).nullable()}),limit:pl.object({total:pl.number().nullable(),remaining:pl.number().nullable(),reset:pl.string().nullable()}),usage:pl.object({total:pl.number(),daily:pl.number(),weekly:pl.number(),monthly:pl.number()}),alert:pl.object({enabled:pl.boolean(),threshold_usd:pl.number(),email:pl.string().nullable()}),connectionId:pl.string()}),OO0=[{name:"GATEWAY_USAGE",inputSchema:xIf,outputSchema:kIf},{name:"GATEWAY_SET_LIMIT",inputSchema:pl.object({}),outputSchema:pl.object({}),opt:!0},{name:"GATEWAY_SET_ALERT",inputSchema:pl.object({}),outputSchema:pl.object({}),opt:!0}]});function GIf(i,u){if(u.length===0)return;let[t,...f]=u,l=t==="slug"?i7(i):i[t];for(let c of f){if(l===null||typeof l!=="object")return;l=l[c]}return l}function SIf(i){let t=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,".");return new RegExp(`^${t}$`,"i")}function jIf(i,u,t){if(i===void 0)return!0;switch(u){case"eq":return t===null?i===null:i===t;case"gt":return i>t;case"gte":return i>=t;case"lt":return i<t;case"lte":return i<=t;case"in":return Array.isArray(t)&&t.includes(i);case"like":return typeof i==="string"&&SIf(String(t)).test(i);case"contains":return String(i).toLowerCase().includes(String(t).toLowerCase());default:return!0}}function xa(i,u){if(!u)return!0;if("conditions"in u){let{operator:f,conditions:l}=u;if(l.length===0)return!0;switch(f){case"and":return l.every((c)=>xa(i,c));case"or":return l.some((c)=>xa(i,c));case"not":return!l.every((c)=>xa(i,c));default:return!0}}let t=GIf(i,u.field);return jIf(t,u.operator,u.value)}var yO0=g(()=>{mEi()});async function ZO0(i,u,t){if(i.length===0)return;let f=0;async function l(){while(f<i.length){let c=f++;await t(i[c])}}await Promise.all(Array.from({length:Math.min(u,i.length)},()=>l()))}import{z as wg}from"zod";var KIf=8,JIf,XIf,LIf,WIf,Q0u;var TO0=g(()=>{Y0u();wO0();gd();DO0();gO0();Pq();NO0();jt();Eu();EE();td();$g();oW();kv();mEi();yO0();JIf=[{name:/^(COLLECTION_REGISTRY_APP_LIST|REGISTRY_ITEM_LIST)$/,inputSchema:wg.object({})}],XIf={LLM:G3i,LLMS:G3i,ASSISTANTS:$O0,MCP:nO0,OBJECT_STORAGE:fN,AI_GATEWAY_BILLING:OO0,TRIGGER:P3i,REGISTRY:JIf,BRAND:k3i},LIf=g_.extend({binding:wg.union([wg.array(wg.object({}).passthrough()),wg.object({}).passthrough(),wg.string()]).optional(),include_virtual:wg.boolean().optional().describe("Whether to include VIRTUAL connections in the results. Defaults to false."),slug:wg.string().optional().describe("Filter by connection slug. Matches against app_name, or a slug derived from connection_url or title.")}),WIf=Tn(U6),Q0u=ti({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:LIf,outputSchema:WIf,handler:async(i,u)=>{await u.access.check();let t=yi(u),f=i.binding?typeof i.binding==="string"?(()=>{let _=XIf[i.binding.toUpperCase()];if(!_)throw Error(`Unknown binding: ${i.binding}`);return _})():i.binding:void 0,l=f?B3i(f):void 0,c=!!l,E=i.limit??100,$=i.offset??0,{items:w,totalCount:d}=await u.storage.connections.list(t.id,{includeVirtual:i.include_virtual??!1,slug:i.slug,where:i.where,orderBy:i.orderBy,limit:c?void 0:E,offset:c?void 0:$});if(l){let _=v1(),v=_4.SELF(t.id);await ZO0(w,KIf,async(D)=>{if(D.tools!==null)return;let n=D.id===v?async()=>{let{listManagementTools:N}=await Promise.resolve().then(() => (qy(),S3i));return N(u)}:()=>k0u(D,u,BE0),O=await w7("tools",D.id,n,_,(N)=>u.pendingRevalidations.push(N),$7);if(O!==null)D.tools=O})}if(Ch()){let _=M1(),v=_4.DEV_ASSETS(t.id);if(!w.some((D)=>D.id===v)){let D=aW(t.id,_),n=!i.slug||i7(D)===i.slug,O=xa(D,i.where);if(n&&O)w.unshift(D)}}if(c){let _=(await Promise.all(w.map(async(O)=>{if(!O.tools||O.tools.length===0)return null;return l.isImplementedBy(O.tools.map((y)=>({name:y.name,inputSchema:y.inputSchema,outputSchema:y.outputSchema})))?O:null}))).filter((O)=>O!==null),v=_.length,D=_.slice($,$+E),n=$+E<v;return{items:D,totalCount:v,hasMore:n}}let h=$+E<d;return{items:w,totalCount:d,hasMore:h}}})});var YIf,z0u;var BO0=g(()=>{gd();jt();Eu();EE();td();$g();oW();kv();YIf=Fa(U6),z0u=ti({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:Ba,outputSchema:YIf,handler:async(i,u)=>{let t=yi(u);if(await u.access.check(),Ch()&&a6i(i.id,t.id))return{item:aW(t.id,M1())};let f=await u.storage.connections.findById(i.id);if(!f||f.organization_id!==t.id)return{item:null};if(f.tools===null){let l=_4.SELF(t.id),c=f.id===l?async()=>{let{listManagementTools:$}=await Promise.resolve().then(() => (qy(),S3i));return $(u)}:async()=>{let $=await Nc(f,u,!0);try{return(await $.listTools()).tools}finally{await $.close().catch(()=>{})}},E=await w7("tools",f.id,c,v1(),($)=>u.pendingRevalidations.push($),$7);if(E!==null)f.tools=E}return{item:f}}})});import{z as H0u}from"zod";function HIf(i,u){return i.length===u.length&&i.every((t,f)=>t===u[f])}var QIf,zIf,R0u;var FO0=g(()=>{$g();n_();Eu();vt();td();jm();G0u();lr();kv();QIf=H0u.object({id:H0u.string().describe("ID of the connection to update"),data:_V.describe("Partial connection data to update")}),zIf=H0u.object({item:U6.describe("The updated connection entity")});R0u=ti({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:QIf,outputSchema:zIf,handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let f=Hu(u);if(!f)throw Error("User ID required to update connection");let{id:l,data:c}=i,E=c.configuration_state!==void 0||c.configuration_scopes!==void 0,$=await u.storage.connections.findById(l);if(!$||$.organization_id!==t.id)throw Error("Connection not found in organization");let w=c.connection_type??$.connection_type,d=c.connection_url??$.connection_url;if(w==="VIRTUAL"){let J=ON(d);if(!J)throw Error("VIRTUAL connection requires connection_url in format: virtual://$virtual_mcp_id");let W=await u.storage.virtualMcps.findById(J);if(!W)throw Error(`Virtual MCP not found: ${J}`);if(W.organization_id!==t.id)throw Error("Virtual MCP does not belong to the current organization");d=NN(J)}let h=c.configuration_state??$.configuration_state??{},_=c.configuration_scopes??$.configuration_scopes??[];if(E){if(c.configuration_state!==void 0)h=c.configuration_state??{};else if(h===null||h===void 0)h={};if(c.configuration_scopes!==void 0)_=c.configuration_scopes??[];if(_.length>0){let J=h;Na(J,_,t.id),await Za(J,_,t.id,u)}}if(w==="STDIO"&&!yu().localMode)throw Error("STDIO connections are only available in local mode (--local-mode).");let v=c.connection_token??$.connection_token;if(!v)try{let W=await new al(u.db,u.vault).get(l);if(W?.accessToken)v=W.accessToken}catch{}let D=await t7({id:$.id,title:c.title??$.title,connection_type:w,connection_url:d,connection_token:v,connection_headers:c.connection_headers??$.connection_headers}).catch(()=>null),n=D?.tools?.length?D.tools:null,O=!1;if(c.configuration_scopes===void 0&&D?.scopes?.length)O=!HIf(_,D.scopes),_=D.scopes;if(Na(h,_,t.id),O&&_.length>0)await Za(h,_,t.id,u);let N=E||O,y=N?ya(h,_):[],Z=N?ya($.configuration_state??{},$.configuration_scopes??[]):[],T=$.configuration_state,B=T==null||Object.keys(T).length===0,F,A,G=async()=>{try{await u.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:t.id,subjectConnectionId:l,createdBy:f,grants:Z})}catch(J){console.error("Failed to restore credential grants after credential vault mutation failed",J)}},I={...c,connection_url:d,tools:null,configuration_state:h,configuration_scopes:_,updated_by:f},k={...$,...I};if(N)try{if(await u.storage.connectionCredentialVault.replaceGrantsForSubject({organizationId:t.id,subjectConnectionId:l,createdBy:f,grants:y}),y.length>0){if(!await u.storage.connectionCredentialVault.findActiveWorkloadToken({organizationId:t.id,subjectConnectionId:l})){let{plaintextToken:W,record:r}=await u.storage.connectionCredentialVault.createOrRotateWorkloadToken({organizationId:t.id,subjectConnectionId:l});A=r.id,F={baseUrl:u.baseUrl,org:t.slug??t.id,subjectConnectionId:l,token:W}}}}catch(J){if(A)await u.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:t.id,subjectConnectionId:l,tokenId:A});throw await G(),J}if(N&&h&&_)try{await(await Nc(k,u,!1)).callTool({name:"ON_MCP_CONFIGURATION",arguments:{state:h,scopes:_,firstRun:B,...F?{vault:F}:{}}})}catch(J){if(console.error("Failed to invoke ON_MCP_CONFIGURATION callback",J),A)throw await u.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:t.id,subjectConnectionId:l,tokenId:A}),await G(),J}let q;try{q=await u.storage.connections.update(l,I)}catch(J){if(N){if(A)await u.storage.connectionCredentialVault.revokeWorkloadToken({organizationId:t.id,subjectConnectionId:l,tokenId:A});await G()}throw J}if(n)v1()?.set("tools",l,n).catch(()=>{});return kQ(l),{item:q}}})});import{z as RIf}from"zod";var bIf,b0u;var UO0=g(()=>{gd();H4();Eu();td();jm();kv();bIf=Ua.extend({force:RIf.boolean().optional().describe("If true, removes this connection from all agents that reference it before deleting")}),b0u=ti({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:bIf,outputSchema:Pa(U6),handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let f=await u.storage.connections.findById(i.id);if(!f)throw Error(`Connection not found: ${i.id}`);if(f.organization_id!==t.id)throw Error("Connection not found in organization");if(f.metadata?.isFixed===!0)throw Error("This connection is a fixed system connection and cannot be deleted");let c=await u.storage.virtualMcps.listByConnectionId(t.id,i.id);if(c.length>0)if(i.force)await u.storage.virtualMcps.removeConnectionReferences(i.id);else throw Error(JSON.stringify({code:"CONNECTION_IN_USE",agentNames:c.map((w)=>w.title)}));await u.storage.connections.delete(i.id);let E=await u.storage.organizationSettings.get(t.id);if(E?.registry_config){let{registries:w,blockedMcps:d}=E.registry_config;if(i.id in w){let{[i.id]:h,..._}=w;await u.storage.organizationSettings.upsert(t.id,{registry_config:{registries:_,blockedMcps:d}})}}v1()?.invalidate(i.id).catch(()=>{}),kQ(i.id);let $=Hu(u);if($)mu.capture({distinctId:$,event:"connection_deleted",groups:{organization:t.id},properties:{connection_id:f.id,connection_type:f.connection_type,app_name:f.app_name??null,organization_id:t.id,forced:i.force??!1}});return{item:f}}})});import{z as Uz}from"zod";var C0u;var PO0=g(()=>{Eu();C0u=ti({name:"CONNECTION_TEST",description:"Test connection health and latency",annotations:{title:"Test Connection",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:Uz.object({id:Uz.string()}),outputSchema:Uz.object({id:Uz.string(),healthy:Uz.boolean(),latencyMs:Uz.number()}),handler:async(i,u)=>{let t=yi(u);await u.access.check();let f=await u.storage.connections.findById(i.id);if(!f||f.organization_id!==t.id)throw Error("Connection not found");let l=await u.storage.connections.testConnection(i.id);return{id:i.id,...l}}})});var AO0=g(()=>{K90();TO0();BO0();FO0();UO0();PO0()});import{sql as rf}from"kysely";import{z as i5}from"zod";function IO0(i){if(i===null||i===void 0)return"NULL";if(typeof i==="number")return String(i);if(typeof i==="boolean")return i?"TRUE":"FALSE";if(typeof i==="string")return`'${i.replace(/'/g,"''")}'`;if(i instanceof Date)return`'${i.toISOString()}'`;return`'${JSON.stringify(i).replace(/'/g,"''")}'`}function qIf(i,u){let t=i;for(let l=u.length;l>=1;l--){let c=`$${l}`;if(t.includes(c))t=t.replaceAll(c,IO0(u[l-1]))}let f=[];for(let l=0;l<t.length;l++)if(t[l]==="?")f.push(l);for(let l=Math.min(f.length,u.length)-1;l>=0;l--){let c=f[l],E=IO0(u[l]);t=t.slice(0,c)+E+t.slice(c+1)}return t}function xO0(i){return i.replace(/-/g,"_")}function rIf(i){return`app_${xO0(i)}`}function mIf(i){return`app_role_${xO0(i)}`}function eIf(i){if(i instanceof Error){let u=i.message.toLowerCase(),t=i.code;return t==="3F000"||t==="42704"||t==="22023"||u.includes("schema")&&u.includes("does not exist")||u.includes("role")&&u.includes("does not exist")}return!1}async function aIf(i,u,t){if(await rf`CREATE SCHEMA IF NOT EXISTS ${rf.id(u)}`.execute(i),!(await rf`
|
|
86637
86637
|
SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = ${t}) as exists
|
|
86638
|
-
`.execute(i)).rows[0]?.exists)await rf`CREATE ROLE ${rf.id(t)} NOLOGIN`.execute(i);await rf`GRANT ${rf.id(t)} TO CURRENT_USER`.execute(i),await rf`GRANT USAGE, CREATE ON SCHEMA ${rf.id(u)} TO ${rf.id(t)}`.execute(i),await rf`GRANT ALL ON ALL TABLES IN SCHEMA ${rf.id(u)} TO ${rf.id(t)}`.execute(i),await rf`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${rf.id(u)} TO ${rf.id(t)}`.execute(i),await rf`ALTER DEFAULT PRIVILEGES IN SCHEMA ${rf.id(u)} GRANT ALL ON TABLES TO ${rf.id(t)}`.execute(i),await rf`ALTER DEFAULT PRIVILEGES IN SCHEMA ${rf.id(u)} GRANT ALL ON SEQUENCES TO ${rf.id(t)}`.execute(i),await rf`REVOKE ALL ON SCHEMA public FROM ${rf.id(t)}`.execute(i)}async function oIf(i,u,t,f){try{return await i.transaction().execute(async(l)=>{return await rf`SET LOCAL ROLE ${rf.id(t)}`.execute(l),await rf`SET LOCAL search_path TO ${rf.id(u)}`.execute(l),await rf.raw(f).execute(l)})}catch(l){if(eIf(l))return await aIf(i,u,t),await i.transaction().execute(async(c)=>{return await rf`SET LOCAL ROLE ${rf.id(t)}`.execute(c),await rf`SET LOCAL search_path TO ${rf.id(u)}`.execute(c),await rf.raw(f).execute(c)});throw l}}var MIf,VIf,kO0;var GO0=g(()=>{Eu();MIf=i5.object({results:i5.array(i5.unknown()).optional(),success:i5.boolean().optional()});VIf=i5.object({sql:i5.string().describe("The SQL query to run"),params:i5.array(i5.any()).describe("The parameters to pass to the SQL query").optional()});kO0=ti({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:VIf,outputSchema:i5.object({result:i5.array(MIf)}),handler:async(i,u)=>{ki(u),await u.access.check();let t=qIf(i.sql,i.params||[]);if(!u.connectionId)throw Error("Connection context required for database access");console.warn("DATABASES_RUN_SQL invoked",{"tool.deprecation_probe":"DATABASES_RUN_SQL","connection.id":u.connectionId,"organization.id":u.organization?.id??null,"user.id":u.auth.user?.id??null});let f=rIf(u.connectionId),l=mIf(u.connectionId);return{result:[{results:(await oIf(u.db,f,l,t)).rows,success:!0}]}}})});function j3i(i){let u=i.access.getRole();if(!u||!N3.includes(u))throw new En("Only organization owners and admins can change org-wide pin status")}var M0u=g(()=>{t_();wy()});import{z as KO0}from"zod";function pIf(){let i=SO0[Math.floor(Math.random()*SO0.length)];return`icon://${jO0[Math.floor(Math.random()*jO0.length)]}?color=${i}`}var SO0,jO0,ixf,uxf,q0u;var JO0=g(()=>{Eu();c7();M0u();Oa();SO0=["red","orange","amber","yellow","lime","green","emerald","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],jO0=["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"];ixf=KO0.object({data:gV.describe("Data for the new virtual MCP")}),uxf=KO0.object({item:P6.describe("The created virtual MCP entity")}),q0u=ti({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:ixf,outputSchema:uxf,handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let f=Hu(u);if(!f)throw Error("User ID required to create virtual MCP");if(i.data.pinned===!0)j3i(u);let{prompts:l,...c}=i.data,E={...c,icon:c.icon??pIf()},$=await u.storage.virtualMcps.create(t.id,f,E);if(l?.length&&u.orgFs&&$.id)await E3i(u.orgFs,$.id,f,l);return{item:$}}})});function txf(i){let u=[],t=0;while(t<i.length){let f=i[t];if(f==="%")u.push(".*");else if(f==="_")u.push(".");else if(/[.*+?^${}()|[\]\\]/.test(f))u.push("\\"+f);else u.push(f);t++}return u.join("")}function dg(i){return typeof i==="string"||typeof i==="number"}function V0u(i,u){let t=u.split("."),f=i;for(let l of t){if(f==null||typeof f!=="object")return;f=f[l]}return f}function fxf(i,u){return i.connections.some((t)=>t.connection_id===u)}function K3i(i,u){if("conditions"in u){let{operator:$,conditions:w}=u;switch($){case"and":return w.every((d)=>K3i(i,d));case"or":return w.some((d)=>K3i(i,d));case"not":return!w.every((d)=>K3i(i,d));default:return!0}}let{field:t,operator:f,value:l}=u,c=t.join(".");if(c==="connection_id"){if(f!=="eq"||typeof l!=="string")return!1;return fxf(i,l)}let E=V0u(i,c);switch(f){case"eq":return E===l;case"gt":return dg(E)&&dg(l)&&E>l;case"gte":return dg(E)&&dg(l)&&E>=l;case"lt":return dg(E)&&dg(l)&&E<l;case"lte":return dg(E)&&dg(l)&&E<=l;case"in":return Array.isArray(l)&&l.includes(E);case"like":if(typeof E!=="string"||typeof l!=="string")return!1;if(l.length>100)return!1;let $=txf(l);return new RegExp(`^${$}$`,"i").test(E);case"contains":if(typeof E!=="string"||typeof l!=="string")return!1;return E.toLowerCase().includes(l.toLowerCase());default:return!0}}function lxf(i,u){return[...i].sort((t,f)=>{for(let l of u){let c=l.field.join("."),E=V0u(t,c),$=V0u(f,c),w=0;if(E==null&&$==null)continue;if(E==null)w=l.nulls==="first"?-1:1;else if($==null)w=l.nulls==="first"?1:-1;else if(typeof E==="string"&&typeof $==="string")w=E.localeCompare($);else if(typeof E==="number"&&typeof $==="number")w=E-$;else w=String(E).localeCompare(String($));if(w!==0)return l.direction==="desc"?-w:w}return 0})}var cxf,Exf,r0u;var XO0=g(()=>{gd();Eu();c7();cxf=g_,Exf=Tn(P6),r0u=ti({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:cxf,outputSchema:Exf,handler:async(i,u)=>{await u.access.check();let t=yi(u),f=i.where&&!("conditions"in i.where)&&i.where.field.join(".")==="connection_id"&&i.where.operator==="eq"&&typeof i.where.value==="string"?i.where.value:void 0,l=i.where&&!("conditions"in i.where)&&i.where.field.join(".")==="pinned"&&i.where.operator==="eq"&&typeof i.where.value==="boolean"?i.where.value:void 0,E=f?await u.storage.virtualMcps.listByConnectionId(t.id,f):await u.storage.virtualMcps.list(t.id,l!==void 0?{pinnedOnly:l}:void 0);if(i.where)E=E.filter((v)=>K3i(v,i.where));if(i.orderBy&&i.orderBy.length>0)E=lxf(E,i.orderBy);let $=E.length,w=i.offset??0,d=i.limit??100,h=E.slice(w,w+d),_=w+d<$;return{items:h,totalCount:$,hasMore:_}}})});import{z as m0u}from"zod";var $xf,wxf,e0u;var LO0=g(()=>{Eu();c7();$xf=m0u.object({id:m0u.string().describe("ID of the virtual MCP to retrieve")}),wxf=m0u.object({item:P6.nullable().describe("The retrieved virtual MCP, or null if not found")}),e0u=ti({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:$xf,outputSchema:wxf,handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let f=await u.storage.virtualMcps.findById(i.id);if(f&&f.organization_id!==t.id)return{item:null};if(!f)return{item:null};return{item:f}}})});import{z as a0u}from"zod";var dxf,hxf,o0u;var WO0=g(()=>{Eu();Oa();c7();M0u();dxf=a0u.object({id:a0u.string().describe("ID of the virtual MCP to update"),data:OV.describe("Partial virtual MCP data to update")}),hxf=a0u.object({item:P6.describe("The updated virtual MCP entity")}),o0u=ti({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:dxf,outputSchema:hxf,handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let f=Hu(u);if(!f)throw Error("User ID required to update virtual MCP");let l=await u.storage.virtualMcps.findById(i.id);if(!l)throw Error(`Virtual MCP not found: ${i.id}`);if(l.organization_id!==t.id)throw Error(`Virtual MCP not found: ${i.id}`);let{prompts:c,...E}=i.data;if(E.metadata&&l.metadata)E.metadata={...l.metadata,...E.metadata};if(E.pinned!==void 0&&E.pinned!==l.pinned)j3i(u);let $=await u.storage.virtualMcps.update(i.id,f,E);if(c!==void 0&&u.orgFs)await E3i(u.orgFs,i.id,f,c);return{item:$}}})});import{z as s0u}from"zod";var _xf,vxf,p0u;var YO0=g(()=>{Eg();n_();Eu();Oa();c7();_xf=s0u.object({id:s0u.string().describe("ID of the virtual MCP to delete")}),vxf=s0u.object({item:P6.describe("The deleted virtual MCP entity")}),p0u=ti({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:_xf,outputSchema:vxf,handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let f=await u.storage.virtualMcps.findById(i.id);if(!f)throw Error(`Virtual MCP not found: ${i.id}`);if(f.organization_id!==t.id)throw Error(`Virtual MCP not found: ${i.id}`);if(await u.storage.virtualMcps.delete(i.id),u.orgFs)await A0u(u.orgFs,i.id,Hu(u)??"system");let l=f.metadata?.githubRepo?.connectionId;if(l)try{let c=await u.storage.connections.findById(l,t.id);if(c&&k3(c)){let $=await new al(u.db,u.vault).get(l);if($?.accessToken)try{await fetch("https://api.github.com/installation/token",{method:"DELETE",headers:{Authorization:`Bearer ${$.accessToken}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"},signal:AbortSignal.timeout(5000)})}catch{}await u.storage.connections.delete(l)}}catch(c){console.error("[VIRTUAL_MCP_DELETE] failed to tear down repo-scoped connection",{childConnectionId:l,error:c.message})}return{item:f}}})});import{z as ww}from"zod";var Dxf,itu;var QO0=g(()=>{Eu();Dxf=ww.object({id:ww.string(),virtualMcpId:ww.string(),pluginId:ww.string(),connectionId:ww.string().nullable(),settings:ww.record(ww.string(),ww.unknown()).nullable(),createdAt:ww.string(),updatedAt:ww.string()}),itu=ti({name:"VIRTUAL_MCP_PLUGIN_CONFIG_GET",description:"Get a plugin's current configuration for a specific virtual MCP.",annotations:{title:"Get Virtual MCP Plugin Config",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:ww.object({virtualMcpId:ww.string().describe("Virtual MCP ID"),pluginId:ww.string().describe("Plugin ID")}),outputSchema:ww.object({config:Dxf.nullable()}),handler:async(i,u)=>{ki(u),await u.access.check();let{virtualMcpId:t,pluginId:f}=i,l=await u.storage.virtualMcpPluginConfigs.get(t,f);if(!l)return{config:null};return{config:{id:l.id,virtualMcpId:l.virtualMcpId,pluginId:l.pluginId,connectionId:l.connectionId,settings:l.settings,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt,updatedAt:l.updatedAt instanceof Date?l.updatedAt.toISOString():l.updatedAt}}}})});import{z as sc}from"zod";var nxf,utu;var zO0=g(()=>{Eu();oW();EE();nxf=sc.object({id:sc.string(),virtualMcpId:sc.string(),pluginId:sc.string(),connectionId:sc.string().nullable(),settings:sc.record(sc.string(),sc.unknown()).nullable(),createdAt:sc.string(),updatedAt:sc.string()}),utu=ti({name:"VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE",description:"Set or update a plugin's configuration for a specific virtual MCP.",annotations:{title:"Update Virtual MCP Plugin Config",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:sc.object({virtualMcpId:sc.string().describe("Virtual MCP ID"),pluginId:sc.string().describe("Plugin ID"),connectionId:sc.string().nullable().optional().describe("MCP connection to bind"),settings:sc.record(sc.string(),sc.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:sc.object({config:nxf}),handler:async(i,u)=>{ki(u),await u.access.check();let{virtualMcpId:t,pluginId:f,connectionId:l,settings:c}=i,E=Hu(u),$=await u.storage.connections.findById(t);if(!$)throw Error(`Connection not found: ${t}`);let w=l?await u.storage.connections.findById(l):null;if(l&&$.organization_id&&!w&&Ch()){if(a6i(l,$.organization_id)){if(!E)throw Error("User ID required to create dev-assets connection");let h=aW($.organization_id,M1());await u.storage.connections.create({...h,organization_id:$.organization_id,created_by:E})}}let d=await u.storage.virtualMcpPluginConfigs.upsert(t,f,{connectionId:l,settings:c});return{config:{id:d.id,virtualMcpId:d.virtualMcpId,pluginId:d.pluginId,connectionId:d.connectionId,settings:d.settings,createdAt:d.createdAt instanceof Date?d.createdAt.toISOString():d.createdAt,updatedAt:d.updatedAt instanceof Date?d.updatedAt.toISOString():d.updatedAt}}}})});import{z as _$}from"zod";var gxf,ttu;var HO0=g(()=>{Eu();c7();gxf=_$.object({connectionId:_$.string(),toolName:_$.string(),label:_$.string(),icon:_$.string().nullable().optional()}),ttu=ti({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:_$.object({virtualMcpId:_$.string().describe("Virtual MCP ID"),pinnedViews:_$.array(gxf).describe("Pinned views to set for the virtual MCP sidebar"),layout:_$.object({defaultMainView:_$.object({type:_$.string(),id:_$.string().optional(),toolName:_$.string().optional()}).nullable().optional(),chatDefaultOpen:_$.boolean().nullable().optional()}).optional()}),outputSchema:_$.object({item:P6.nullable()}),handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let{virtualMcpId:f,pinnedViews:l,layout:c}=i,E=Hu(u),$=await u.storage.virtualMcps.findById(f);if(!$)throw Error(`Virtual MCP not found: ${f}`);if($.organization_id!==t.id)throw Error(`Virtual MCP not found: ${f}`);let w=$.metadata?.ui??{},d={...w,pinnedViews:l.length>0?l:null,layout:c??w.layout??null};return{item:await u.storage.virtualMcps.update(f,E??"system",{metadata:{...$.metadata,ui:d}})}}})});import{z as Fn}from"zod";var Oxf,Nxf,ftu;var RO0=g(()=>{Eu();Oxf=Fn.object({ids:Fn.array(Fn.string()).describe("Virtual MCP ids to look up")}),Nxf=Fn.object({items:Fn.array(Fn.object({id:Fn.string(),last_used_at:Fn.string().optional(),last_used_by:Fn.string().optional()}))}),ftu=ti({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:Oxf,outputSchema:Nxf,handler:async(i,u)=>{ki(u),yi(u),await u.access.check();let t=await u.storage.threads.findLastUsedByVirtualMcpIds(i.ids);return{items:i.ids.map((f)=>({id:f,last_used_at:t.get(f)?.last_used_at,last_used_by:t.get(f)?.last_used_by}))}}})});var bO0=g(()=>{JO0();XO0();LO0();WO0();YO0();QO0();zO0();HO0();RO0()});import{z as Pl}from"zod";var ltu;var CO0=g(()=>{jl();Eu();ltu=ti({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:Pl.object({id:Pl.string().describe("Log ID to fetch")}),outputSchema:Pl.object({log:Pl.object({id:Pl.string().optional(),organizationId:Pl.string(),connectionId:Pl.string(),toolName:Pl.string(),input:Pl.record(Pl.string(),Pl.unknown()),output:Pl.record(Pl.string(),Pl.unknown()),isError:Pl.boolean(),errorMessage:Pl.string().nullish(),durationMs:Pl.number(),timestamp:Pl.string(),userId:Pl.string().nullish(),requestId:Pl.string(),userAgent:Pl.string().nullish(),virtualMcpId:Pl.string().nullish(),properties:Pl.record(Pl.string(),Pl.string()).nullish()}).nullable().describe("The monitoring log, or null if not found")}),handler:async(i,u)=>{await u.access.check(),await sd();let t=yi(u),f=await u.storage.monitoring.getById(t.id,i.id);if(!f)return{log:null};return{log:{...f,timestamp:f.timestamp instanceof Date?f.timestamp.toISOString():f.timestamp}}}})});import{z as Tt}from"zod";var Zxf,ctu;var MO0=g(()=>{jl();Eu();Zxf=Tt.object({id:Tt.string().optional().describe("Unique log identifier"),organizationId:Tt.string().describe("Organization ID"),connectionId:Tt.string().describe("Connection ID"),toolName:Tt.string().describe("Name of the tool that was called"),isError:Tt.boolean().describe("Whether the call resulted in an error"),errorMessage:Tt.string().nullish().describe("Error message if applicable"),durationMs:Tt.number().describe("Call duration in milliseconds"),timestamp:Tt.string().describe("ISO 8601 timestamp of the call"),userId:Tt.string().nullish().describe("User who triggered the call"),requestId:Tt.string().describe("Unique request identifier"),userAgent:Tt.string().nullish().describe("Client identifier (x-mesh-client header)"),virtualMcpId:Tt.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:Tt.record(Tt.string(),Tt.string()).nullish().describe("Custom key-value metadata attached to the log")}),ctu=ti({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:Tt.object({connectionId:Tt.string().optional().describe("Filter by connection ID"),excludeConnectionIds:Tt.array(Tt.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:Tt.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:Tt.string().optional().describe("Filter by tool name"),isError:Tt.boolean().optional().describe("Filter by error status"),startDate:Tt.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:Tt.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:Tt.number().default(20).describe("Maximum number of results"),offset:Tt.number().default(0).describe("Offset for pagination"),properties:Tt.record(Tt.string(),Tt.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:Tt.array(Tt.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:Tt.record(Tt.string(),Tt.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:Tt.record(Tt.string(),Tt.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:Tt.object({logs:Tt.array(Zxf).describe("Array of monitoring logs"),total:Tt.number().describe("Total number of logs matching filters"),offset:Tt.number().describe("Current offset for pagination"),limit:Tt.number().describe("Current limit for pagination")}),handler:async(i,u)=>{await sd();let t=yi(u),l=i.properties||i.propertyKeys||i.propertyPatterns||i.propertyInValues?{properties:i.properties,propertyKeys:i.propertyKeys,propertyPatterns:i.propertyPatterns,propertyInValues:i.propertyInValues}:void 0,c={organizationId:t.id,connectionId:i.connectionId,excludeConnectionIds:i.excludeConnectionIds,virtualMcpId:i.virtualMcpId,toolName:i.toolName,isError:i.isError,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,limit:i.limit,offset:i.offset,propertyFilters:l},E=await u.storage.monitoring.query(c);return{logs:E.logs.map(({input:$,output:w,...d})=>({...d,timestamp:d.timestamp instanceof Date?d.timestamp.toISOString():d.timestamp})),total:E.total,offset:i.offset,limit:i.limit}}})});import{z as D0}from"zod";var Etu;var qO0=g(()=>{jl();Eu();Etu=ti({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:D0.object({startDate:D0.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:D0.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),interval:D0.string().regex(/^\d+[mhd]$/).optional().describe("Bucket interval for timeseries data (e.g. 1m, 5m, 2h, 1d). When provided, returns timeseries array."),connectionIds:D0.array(D0.string()).max(100).optional().describe("Filter by specific connection IDs (max 100)"),excludeConnectionIds:D0.array(D0.string()).max(100).optional().describe("Exclude specific connection IDs (max 100)"),toolNames:D0.array(D0.string()).max(100).optional().describe("Filter by specific tool names (max 100)"),status:D0.enum(["success","error"]).optional().describe("Filter metrics by execution status"),topN:D0.number().int().min(1).max(20).optional().describe("When provided with interval, also return top tools and their timeseries"),userIds:D0.array(D0.string()).max(100).optional().describe("Filter LLM usage by user IDs (only applied when llmUsage is true)"),llmUsage:D0.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:D0.object({totalCalls:D0.number().describe("Total number of tool calls"),errorRate:D0.number().optional().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:D0.number().describe("Average call duration in milliseconds"),errorRatePercent:D0.string().optional().describe("Error rate as a percentage string"),totalErrors:D0.number().optional().describe("Total number of errors"),p50DurationMs:D0.number().optional().describe("50th percentile duration in milliseconds"),p95DurationMs:D0.number().optional().describe("95th percentile duration in milliseconds"),connectionBreakdown:D0.array(D0.object({connectionId:D0.string(),calls:D0.number(),errors:D0.number(),errorRate:D0.number(),avgDurationMs:D0.number()})).optional().describe("Per-connection metric breakdown"),totalInputTokens:D0.number().optional().describe("Total input tokens (LLM usage mode)"),totalOutputTokens:D0.number().optional().describe("Total output tokens (LLM usage mode)"),totalTokens:D0.number().optional().describe("Total tokens (LLM usage mode)"),totalCostUsd:D0.number().optional().describe("Total USD cost (LLM usage mode; only non-zero for providers that report cost)"),topTools:D0.array(D0.object({toolName:D0.string(),connectionId:D0.string().nullable(),calls:D0.number(),inputTokens:D0.number().optional(),outputTokens:D0.number().optional(),costUsd:D0.number().optional()})).optional().describe("Top tools ranked by calls"),topToolsTimeseries:D0.array(D0.object({timestamp:D0.string(),toolName:D0.string(),calls:D0.number(),errors:D0.number(),avg:D0.number(),p95:D0.number()})).optional().describe("Per-tool metric timeseries for the top tools"),timeseries:D0.array(D0.object({timestamp:D0.string(),calls:D0.number(),errors:D0.number(),errorRate:D0.number(),avg:D0.number(),p50:D0.number(),p95:D0.number(),inputTokens:D0.number().optional(),outputTokens:D0.number().optional(),totalTokens:D0.number().optional(),costUsd:D0.number().optional()})).optional().describe("Timeseries data points bucketed by interval")}),handler:async(i,u)=>{let t=yi(u);if(await u.access.check(),await sd(),i.interval&&i.llmUsage)return u.storage.monitoring.queryLlmUsageStats({organizationId:t.id,interval:i.interval,connectionId:i.connectionIds?.[0]??"decopilot",startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,userIds:i.userIds,topN:i.topN});if(i.interval){let l=await u.storage.monitoring.queryMetricTimeseries({organizationId:t.id,interval:i.interval,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,filters:{connectionIds:i.connectionIds,excludeConnectionIds:i.excludeConnectionIds,toolNames:i.toolNames,status:i.status}});if(!i.topN)return l;let c=await u.storage.monitoring.queryMetricTopToolsTimeseries({organizationId:t.id,interval:i.interval,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,topN:i.topN,filters:{connectionIds:i.connectionIds,excludeConnectionIds:i.excludeConnectionIds,toolNames:i.toolNames,status:i.status}});return{...l,topTools:c.topTools,topToolsTimeseries:c.timeseries}}let f=await u.storage.monitoring.getStats({organizationId:t.id,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0});return{...f,errorRatePercent:(f.errorRate*100).toFixed(2)}}})});import{z as v$}from"zod";var $tu;var VO0=g(()=>{jl();Eu();$tu=ti({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:v$.object({threadIds:v$.array(v$.string()).min(1).max(500).describe("Thread IDs to aggregate usage for (max 500)"),connectionId:v$.string().optional().describe("LLM connection ID (defaults to 'decopilot')"),startDate:v$.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:v$.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:v$.object({items:v$.array(v$.object({threadId:v$.string(),calls:v$.number(),inputTokens:v$.number(),outputTokens:v$.number(),totalTokens:v$.number(),costUsd:v$.number()}))}),handler:async(i,u)=>{let t=yi(u);return await u.access.check(),await sd(),{items:await u.storage.monitoring.queryThreadUsage({organizationId:t.id,connectionId:i.connectionId??"decopilot",threadIds:i.threadIds,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0})}}})});var rO0=g(()=>{CO0();MO0();qO0();VO0()});function J3i(i){return typeof i==="string"&&Bxf.has(i.trim().toLowerCase())}var Bxf;var wtu=g(()=>{Bxf=new Set([".well-known","_admin","api","auth","cli","commerce-onboarding","dbos-queue-depth","health","hosted-run-pending","login","mcp","metrics","oauth","oauth-proxy","onboarding","org","report","reset-password"])});import{z as Od}from"zod";var dtu;var mO0=g(()=>{Eu();wtu();dtu=ti({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:Od.object({slug:Od.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens").refine((i)=>!J3i(i),"Slug is reserved by Studio"),name:Od.string().min(1).max(255),description:Od.string().optional()}),outputSchema:Od.object({id:Od.string(),name:Od.string(),slug:Od.string(),logo:Od.string().nullable().optional(),metadata:Od.any().optional(),createdAt:Od.string().datetime().describe("ISO 8601 timestamp"),members:Od.array(Od.any()).optional()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=Hu(u);if(!t)throw Error("User ID required to create organization");let f=await u.boundAuth.organization.create({name:i.name,slug:i.slug,metadata:i.description?{description:i.description}:void 0,userId:t});if(!f)throw Error("Failed to create organization");return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as O_}from"zod";var htu;var eO0=g(()=>{Eu();htu=ti({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:O_.object({userId:O_.string().optional()}),outputSchema:O_.object({organizations:O_.array(O_.object({id:O_.string(),name:O_.string(),slug:O_.string(),logo:O_.string().nullable().optional(),metadata:O_.any().optional(),createdAt:O_.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async(i,u)=>{ki(u),await u.access.check();let t=Hu(u),f=i.userId||t;if(!f)throw Error("User ID required to list organizations");return{organizations:(await u.boundAuth.organization.list(f)).map((c)=>({...c,createdAt:c.createdAt instanceof Date?c.createdAt.toISOString():c.createdAt}))}}})});import{z as j3}from"zod";var _tu;var aO0=g(()=>{Eu();_tu=ti({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:j3.object({}),outputSchema:j3.object({id:j3.string(),name:j3.string(),slug:j3.string(),logo:j3.string().nullable().optional(),metadata:j3.any().optional(),createdAt:j3.string().datetime().describe("ISO 8601 timestamp"),members:j3.array(j3.any()).optional(),invitations:j3.array(j3.any()).optional()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.boundAuth.organization.get(t);if(!f)throw Error("No active organization found");let l=new Date,c=f.invitations?.filter((E)=>new Date(E.expiresAt)>l);return{...f,invitations:c,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as N_}from"zod";var vtu;var oO0=g(()=>{Eu();vtu=ti({name:"ORGANIZATION_UPDATE",description:"Update an organization's name or description.",annotations:{title:"Update Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:N_.object({id:N_.string(),name:N_.string().min(1).max(255).optional(),description:N_.string().optional()}),outputSchema:N_.object({id:N_.string(),name:N_.string(),slug:N_.string(),logo:N_.string().nullable().optional(),metadata:N_.any().optional(),createdAt:N_.string().datetime().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{ki(u),await u.access.check();let t={};if(i.name)t.name=i.name;if(i.description)t.metadata={description:i.description};let f=await u.boundAuth.organization.update({organizationId:i.id,data:t});if(!f)throw Error("Failed to update organization");return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as ka}from"zod";var Dtu;var sO0=g(()=>{Eu();Dtu=ti({name:"ORGANIZATION_DELETE",description:"Archive an organization (soft delete).",annotations:{title:"Delete Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:ka.object({id:ka.string()}),outputSchema:ka.object({success:ka.boolean(),id:ka.string()}),handler:async(i,u)=>{return ki(u),await u.access.check(),await u.boundAuth.organization.update({organizationId:i.id,data:{metadata:{archived:!0,archivedAt:new Date().toISOString()}}}),{success:!0,id:i.id}}})});import{z as M0}from"zod";var Ga,Sa,Pz,pO0,X3i,ja,Ka,hg;var Un=g(()=>{Ga=M0.object({title:M0.string(),url:M0.string(),icon:M0.string()}),Sa=M0.object({registries:M0.record(M0.string(),M0.object({enabled:M0.boolean()})).describe("Per-registry enabled/disabled state. Key is connection ID. Absent registries are treated as enabled."),blockedMcps:M0.array(M0.string()).describe("List of MCP app_name or app_id values to hide from the store.")}),Pz=M0.object({keyId:M0.string(),modelId:M0.string(),title:M0.string().optional()}).nullable(),pO0=M0.enum(["fast","smart","thinking","image","web_search","deep_research"]),X3i=M0.enum(["fast","smart","thinking"]),ja=M0.object({tiers:M0.object({fast:Pz,smart:Pz,thinking:Pz,image:Pz,web_search:Pz,deep_research:Pz})}),Ka=M0.object({ids:M0.array(M0.string()).describe("Ordered list of custom virtual MCP agent ids to show on the home view.")}),hg=M0.object({id:M0.string().describe("Brand context ID"),name:M0.string().describe("Company name"),domain:M0.string().describe("Company domain (e.g. example.com)"),overview:M0.string().describe("Company overview / description"),logo:M0.string().nullable().optional().describe("Logo URL"),favicon:M0.string().nullable().optional().describe("Favicon URL"),ogImage:M0.string().nullable().optional().describe("OG image URL"),fonts:M0.object({heading:M0.string().optional().describe("Font family for headings"),body:M0.string().optional().describe("Font family for body text"),code:M0.string().optional().describe("Font family for code / monospace")}).nullable().optional().describe("Font families by semantic role"),colors:M0.object({primary:M0.string().optional().describe("Primary brand color (hex)"),secondary:M0.string().optional().describe("Secondary brand color (hex)"),accent:M0.string().optional().describe("Accent / highlight color (hex)"),background:M0.string().optional().describe("Background color (hex)"),foreground:M0.string().optional().describe("Foreground / text color (hex)")}).nullable().optional().describe("Semantic color palette"),images:M0.array(M0.record(M0.string(),M0.unknown())).nullable().optional().describe("Brand images"),metadata:M0.record(M0.string(),M0.unknown()).nullable().optional().describe("Extra design tokens (typography, components, spacing, layout, tone, etc.)"),archivedAt:M0.string().nullable().optional().describe("Archive timestamp (null to unarchive)"),isDefault:M0.boolean().optional().describe("Whether this is the default brand for the organization")})});import{z as u5}from"zod";var ntu;var iN0=g(()=>{Eu();Un();ntu=ti({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings including sidebar configuration, store registry settings, simple model mode, and default home agents.",annotations:{title:"Get Organization Settings",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:u5.object({}),outputSchema:u5.object({organizationId:u5.string(),sidebar_items:u5.array(Ga).nullable().optional(),enabled_plugins:u5.array(u5.string()).nullable().optional(),registry_config:Sa.nullable().optional(),simple_mode:ja.nullable().optional(),default_home_agents:Ka.nullable().optional(),reports_only:u5.boolean().nullable().optional(),task_board_enabled:u5.boolean().optional(),createdAt:u5.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:u5.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.storage.organizationSettings.get(t);if(!f)return{organizationId:t};return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt,updatedAt:f.updatedAt instanceof Date?f.updatedAt.toISOString():f.updatedAt}}})});import{z as AE}from"zod";var gtu;var uN0=g(()=>{Eu();Un();gtu=ti({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings such as sidebar configuration, store registry settings, simple model mode, and default home agents.",annotations:{title:"Update Organization Settings",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:AE.object({organizationId:AE.string(),sidebar_items:AE.array(Ga).optional(),enabled_plugins:AE.array(AE.string()).optional(),registry_config:Sa.optional(),simple_mode:ja.optional(),default_home_agents:Ka.optional(),reports_only:AE.boolean().optional(),task_board_enabled:AE.boolean().optional()}),outputSchema:AE.object({organizationId:AE.string(),sidebar_items:AE.array(Ga).nullable().optional(),enabled_plugins:AE.array(AE.string()).nullable().optional(),registry_config:Sa.nullable().optional(),simple_mode:ja.nullable().optional(),default_home_agents:Ka.nullable().optional(),reports_only:AE.boolean().nullable().optional(),task_board_enabled:AE.boolean().optional(),createdAt:AE.string().datetime().describe("ISO 8601 timestamp"),updatedAt:AE.string().datetime().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{if(ki(u),await u.access.check(),u.organization&&u.organization.id!==i.organizationId)throw Error("Cannot update settings for a different organization");let t=await u.storage.organizationSettings.upsert(i.organizationId,{sidebar_items:i.sidebar_items,enabled_plugins:i.enabled_plugins,registry_config:i.registry_config,simple_mode:i.simple_mode,default_home_agents:i.default_home_agents,reports_only:i.reports_only,task_board_enabled:i.task_board_enabled});return{...t,createdAt:t.createdAt instanceof Date?t.createdAt.toISOString():t.createdAt,updatedAt:t.updatedAt instanceof Date?t.updatedAt.toISOString():t.updatedAt}}})});import{z as y_}from"zod";var tN0,Otu,Ntu;var fN0=g(()=>{Eu();Un();tN0=hg.extend({organizationId:y_.string(),archivedAt:y_.string().nullable().optional().describe("ISO 8601 timestamp"),createdAt:y_.string().describe("ISO 8601 timestamp"),updatedAt:y_.string().describe("ISO 8601 timestamp")}),Otu=ti({name:"BRAND_CONTEXT_LIST",description:"List all brand contexts (company profiles) for the current organization.",annotations:{title:"List Brand Contexts",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:y_.object({includeArchived:y_.boolean().optional().describe("Include archived brands in the list")}),outputSchema:y_.object({items:y_.array(tN0)}),handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");return{items:(await u.storage.brandContext.list(t,{includeArchived:i.includeArchived})).map((l)=>({...l,archivedAt:l.archivedAt instanceof Date?l.archivedAt.toISOString():l.archivedAt,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt,updatedAt:l.updatedAt instanceof Date?l.updatedAt.toISOString():l.updatedAt}))}}}),Ntu=ti({name:"BRAND_CONTEXT_GET",description:"Get a specific brand context by ID.",annotations:{title:"Get Brand Context",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:y_.object({id:y_.string().describe("Brand context ID")}),outputSchema:tN0.extend({organizationId:y_.string()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.storage.brandContext.get(i.id,t);if(!f)throw Error("Brand context not found");return{...f,archivedAt:f.archivedAt instanceof Date?f.archivedAt.toISOString():f.archivedAt,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt,updatedAt:f.updatedAt instanceof Date?f.updatedAt.toISOString():f.updatedAt}}})});import{z as Vy}from"zod";var lN0,ytu,Ztu,Ttu;var cN0=g(()=>{Eu();Un();lN0=hg.extend({organizationId:Vy.string(),createdAt:Vy.string().describe("ISO 8601 timestamp"),updatedAt:Vy.string().describe("ISO 8601 timestamp")}),ytu=ti({name:"BRAND_CONTEXT_CREATE",description:"Create a new brand context (company profile) for the current organization.",annotations:{title:"Create Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:hg.omit({id:!0}),outputSchema:lN0,handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.storage.brandContext.create(t,{name:i.name,domain:i.domain,overview:i.overview,logo:i.logo??null,favicon:i.favicon??null,ogImage:i.ogImage??null,fonts:i.fonts??null,colors:i.colors??null,images:i.images??null,metadata:i.metadata??null});return{...f,archivedAt:f.archivedAt instanceof Date?f.archivedAt.toISOString():f.archivedAt,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt,updatedAt:f.updatedAt instanceof Date?f.updatedAt.toISOString():f.updatedAt}}}),Ztu=ti({name:"BRAND_CONTEXT_UPDATE",description:"Update an existing brand context by ID.",annotations:{title:"Update Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:hg.partial().required({id:!0}),outputSchema:lN0,handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(!await u.storage.brandContext.get(i.id,t))throw Error("Brand context not found");let{id:l,...c}=i;if(c.isDefault===!0)await u.storage.brandContext.setDefault(l,t);let E=await u.storage.brandContext.update(l,t,{name:c.name,domain:c.domain,overview:c.overview,logo:c.logo!==void 0?c.logo??null:void 0,favicon:c.favicon!==void 0?c.favicon??null:void 0,ogImage:c.ogImage!==void 0?c.ogImage??null:void 0,fonts:c.fonts!==void 0?c.fonts??null:void 0,colors:c.colors!==void 0?c.colors??null:void 0,images:c.images!==void 0?c.images??null:void 0,metadata:c.metadata!==void 0?c.metadata??null:void 0,archivedAt:c.archivedAt!==void 0?c.archivedAt??null:void 0,isDefault:c.isDefault===!1?!1:void 0});return{...E,archivedAt:E.archivedAt instanceof Date?E.archivedAt.toISOString():E.archivedAt,createdAt:E.createdAt instanceof Date?E.createdAt.toISOString():E.createdAt,updatedAt:E.updatedAt instanceof Date?E.updatedAt.toISOString():E.updatedAt}}}),Ttu=ti({name:"BRAND_CONTEXT_DELETE",description:"Archive a brand context by ID (soft delete).",annotations:{title:"Archive Brand Context",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Vy.object({id:Vy.string().describe("Brand context ID")}),outputSchema:Vy.object({success:Vy.boolean()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(!await u.storage.brandContext.get(i.id,t))throw Error("Brand context not found");return await u.storage.brandContext.update(i.id,t,{archivedAt:new Date().toISOString(),isDefault:!1}),{success:!0}}})});async function L3i(i,u,t){let f=i.trim();if(!f.startsWith("http"))f=`https://${f}`;let l=await fetch("https://api.firecrawl.dev/v1/scrape",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${u}`},body:JSON.stringify({url:f,formats:["branding"]})});if(!l.ok){let v=await l.text().catch(()=>"");throw Error(`Firecrawl API error: ${l.status} ${v.slice(0,200)}`)}let c=await l.json();if(!c.success||!c.data?.branding)return null;let E=c.data.branding,$=c.data.metadata??{},w=Pxf(E,$);return{name:$.title?.split(/[|\u2013\u2014]|\s+-\s+/).map((v)=>v.trim()).filter(Boolean)?.slice().sort((v,D)=>v.length-D.length)[0]??$.ogSiteName??t??i,domain:i,overview:$.description??"",logo:w.logo,favicon:w.favicon,ogImage:w.ogImage,fonts:w.fonts,colors:w.colors,images:null,metadata:Object.keys(w.metadata).length>0?w.metadata:null}}function Pxf(i,u){let t=i.images??{},f=i.colors??{},l={};for(let[h,_]of Object.entries(f))if(typeof _==="string"&&_&&Fxf.has(h))l[h]=_;let c={},$=(i.typography??{}).fontFamilies??{};for(let[h,_]of Object.entries($))if(typeof _==="string"&&_){let v=Uxf[h.toLowerCase()];if(v&&!c[v])c[v]=_}let w=i.fonts;if(Array.isArray(w))for(let h of w){let _=h.family;if(typeof _==="string"&&_&&!c.body)c.body=_}let d={};for(let h of["typography","components","spacing","layout","animations","icons","tone","personality","colorScheme"])if(i[h]!==void 0)d[h]=i[h];return{logo:t.logo??null,favicon:t.favicon??null,ogImage:t.ogImage??u.ogImage??null,fonts:Object.keys(c).length>0?c:null,colors:Object.keys(l).length>0?l:null,metadata:d}}var Fxf,Uxf;var Btu=g(()=>{Fxf=new Set(["primary","secondary","accent","background","foreground"]),Uxf={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"}});import{z as W3i}from"zod";var Axf,Ftu;var EN0=g(()=>{Eu();Btu();Un();Axf=hg.pick({id:!0,name:!0,domain:!0,overview:!0,logo:!0,favicon:!0,ogImage:!0,fonts:!0,colors:!0}).extend({success:W3i.boolean()}),Ftu=ti({name:"BRAND_CONTEXT_EXTRACT",description:"Extract brand context (colors, fonts, logos) from a website URL using Firecrawl.",annotations:{title:"Extract Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:W3i.object({domain:W3i.string().describe("Website domain to extract brand from"),brandId:W3i.string().optional().describe("Existing brand context ID to update (creates new if omitted)")}),outputSchema:Axf,modelSummary:(i)=>i.success?`Brand saved (id=${i.id}, name=${i.name}, domain=${i.domain}). The UI rendered the logo, colors, fonts, and overview.`:"Brand extraction failed.",handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=u.firecrawlApiKey;if(!f)throw Error("FIRECRAWL_API_KEY is not configured. Set the environment variable to enable brand extraction.");let l=await L3i(i.domain,f,i.domain);if(!l)throw Error("Firecrawl did not return branding data for this URL");let c={name:l.name,domain:l.domain,overview:l.overview,logo:l.logo,favicon:l.favicon,ogImage:l.ogImage,fonts:l.fonts,colors:l.colors,images:l.images,metadata:l.metadata},E=i.brandId?await(async()=>{if(!await u.storage.brandContext.get(i.brandId,t))throw Error("Brand context not found");return u.storage.brandContext.update(i.brandId,t,c)})():await u.storage.brandContext.create(t,c);return{id:E.id,name:E.name,domain:E.domain,overview:E.overview,logo:E.logo,favicon:E.favicon,ogImage:E.ogImage,fonts:E.fonts,colors:E.colors,success:!0}}})});function $N0(i){let u=i.metadata??{};return{id:i.id,name:i.name,domain:i.domain||void 0,colors:i.colors??void 0,fonts:i.fonts??void 0,assets:i.logo||i.favicon||i.ogImage?{logo:i.logo??void 0,favicon:i.favicon??void 0,ogImage:i.ogImage??void 0}:void 0,overview:i.overview||void 0,tagline:typeof u.tagline==="string"?u.tagline:void 0,tone:typeof u.tone==="string"?u.tone:void 0,metadata:(()=>{let t=Object.fromEntries(Object.entries(u).filter(([f])=>f!=="tagline"&&f!=="tone"));return Object.keys(t).length>0?t:void 0})()}}var Utu,Ptu;var wN0=g(()=>{W0u();Eu();Utu=ti({name:"BRAND_GET",description:"Get a brand context by ID. Omit the ID to get the default brand for the organization.",annotations:{title:"Get Brand",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:A3i,outputSchema:Aa,handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=i.id?await u.storage.brandContext.get(i.id,t):await u.storage.brandContext.getDefault(t);if(!f)throw Error(i.id?"Brand not found":"No default brand configured");return $N0(f)}}),Ptu=ti({name:"BRAND_LIST",description:"List all active brands for the current organization.",annotations:{title:"List Brands",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:I3i,outputSchema:x3i,handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");return{items:(await u.storage.brandContext.list(t)).map($N0)}}})});import{resolveTxt as Ixf}from"dns/promises";function Atu(i){return`${xxf}.${i.toLowerCase()}`}function dN0(){return`deco-verify-${crypto.randomUUID().replace(/-/g,"")}`}async function hN0(i,u,t=Ixf){if(!u)return!1;try{return(await t(Atu(i))).some((l)=>l.join("").trim()===u)}catch{return!1}}var xxf="_deco-verify";var _N0=()=>{};import{z as Ql}from"zod";function _g(i){let u=i.verificationStatus==="pending"&&Boolean(i.verificationToken);return{id:i.id,domain:i.domain,joinMode:i.joinMode,verificationStatus:i.verificationStatus,verificationMethod:i.verificationMethod,verifiedAt:i.verifiedAt?new Date(i.verifiedAt).toISOString():null,recordName:u?Atu(i.domain):null,recordValue:u?i.verificationToken:null}}function Gxf(i){let u=i.toLowerCase().trim();if(!kxf.test(u))throw Error(`Invalid domain format: "${u}". Must be a valid domain like "acme.com"`);if(Z_.has(u))throw Error(`Cannot claim generic email domain "${u}". Only corporate domains are allowed.`);return u}var kxf,Itu,Y3i,xtu,ktu,Gtu,Stu,jtu;var vN0=g(()=>{K3();_N0();Eu();kxf=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,Itu=Ql.enum(["off","auto","request"]),Y3i=Ql.object({id:Ql.string(),domain:Ql.string(),joinMode:Itu,verificationStatus:Ql.enum(["pending","verified"]),verificationMethod:Ql.enum(["email","dns"]).nullable(),verifiedAt:Ql.string().nullable(),recordName:Ql.string().nullable(),recordValue:Ql.string().nullable()});xtu=ti({name:"ORGANIZATION_DOMAIN_LIST",description:"List the email domains claimed by an organization.",annotations:{title:"List Organization Domains",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Ql.object({}),outputSchema:Ql.object({domains:Ql.array(Y3i)}),handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u);return{domains:(await u.storage.organizationDomains.listByOrganizationId(t.id)).map(_g)}}}),ktu=ti({name:"ORGANIZATION_DOMAIN_ADD",description:"Claim an email domain for an organization. If the caller's verified email matches the domain it is trusted immediately; otherwise it requires DNS verification.",annotations:{title:"Add Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Ql.object({domain:Ql.string().min(1).max(255).describe("Domain to claim, e.g. acme.com"),joinMode:Itu.optional().describe("Initial join mode (only applied when the domain is trusted immediately via email match).")}),outputSchema:Y3i,handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u),f=Gxf(i.domain),c=u.auth.user?.email?.split("@")[1]?.toLowerCase(),E=Boolean(u.auth.user?.emailVerified)&&c===f,$=await u.storage.organizationDomains.getByOrgAndDomain(t.id,f);if($){if($.verificationStatus!=="verified"&&E){let d=await u.storage.organizationDomains.markVerified($.id,"email");return _g(d)}return _g($)}let w=E?await u.storage.organizationDomains.add(t.id,f,{joinMode:i.joinMode??"off",verificationStatus:"verified",verificationMethod:"email"}):await u.storage.organizationDomains.add(t.id,f,{joinMode:"off",verificationStatus:"pending",verificationToken:dN0()});return _g(w)}}),Gtu=ti({name:"ORGANIZATION_DOMAIN_UPDATE",description:"Set the join mode for a claimed domain. Discoverable modes (auto/request) require the domain to be verified.",annotations:{title:"Update Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Ql.object({id:Ql.string(),joinMode:Itu}),outputSchema:Y3i,handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u),f=await u.storage.organizationDomains.getById(i.id);if(!f||f.organizationId!==t.id)throw Error("Domain not found");if(i.joinMode!=="off"&&f.verificationStatus!=="verified")throw Error("Verify the domain before enabling auto-join or requests.");let l=await u.storage.organizationDomains.updateJoinMode(i.id,i.joinMode);return _g(l)}}),Stu=ti({name:"ORGANIZATION_DOMAIN_VERIFY",description:"Check the DNS TXT record for a pending domain and mark it verified if present.",annotations:{title:"Verify Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:Ql.object({id:Ql.string()}),outputSchema:Ql.object({verified:Ql.boolean(),domain:Y3i}),handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u),f=await u.storage.organizationDomains.getById(i.id);if(!f||f.organizationId!==t.id)throw Error("Domain not found");if(f.verificationStatus==="verified")return{verified:!0,domain:_g(f)};if(!f.verificationToken)throw Error("Domain has no pending DNS verification.");if(!await hN0(f.domain,f.verificationToken))return{verified:!1,domain:_g(f)};let c=await u.storage.organizationDomains.markVerified(i.id,"dns");return{verified:!0,domain:_g(c)}}}),jtu=ti({name:"ORGANIZATION_DOMAIN_REMOVE",description:"Remove a claimed domain from an organization.",annotations:{title:"Remove Organization Domain",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Ql.object({id:Ql.string()}),outputSchema:Ql.object({success:Ql.boolean()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u),f=await u.storage.organizationDomains.getById(i.id);if(!f||f.organizationId!==t.id)throw Error("Domain not found");return await u.storage.organizationDomains.removeById(i.id),{success:!0}}})});function vg(i){return(i instanceof Error?i.message.toLowerCase():"").includes("already a member")}import{z as W1}from"zod";var Sxf,Ktu,Jtu,Xtu;var DN0=g(()=>{Eu();H4();Sxf=W1.object({id:W1.string(),userId:W1.string(),status:W1.enum(["pending","approved","denied"]),createdAt:W1.string(),user:W1.object({id:W1.string(),name:W1.string(),email:W1.string(),image:W1.string().nullable()}).nullable()}),Ktu=ti({name:"ORGANIZATION_JOIN_REQUEST_LIST",description:"List pending requests to join the organization.",annotations:{title:"List Join Requests",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:W1.object({}),outputSchema:W1.object({requests:W1.array(Sxf)}),handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u);return{requests:(await u.storage.organizationJoinRequests.listPendingWithUser(t.id)).map((l)=>({id:l.id,userId:l.userId,status:l.status,createdAt:new Date(l.createdAt).toISOString(),user:l.user}))}}}),Jtu=ti({name:"ORGANIZATION_JOIN_REQUEST_APPROVE",description:"Approve a pending join request, adding the user as a member.",annotations:{title:"Approve Join Request",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:W1.object({requestId:W1.string()}),outputSchema:W1.object({success:W1.boolean()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u),f=await u.storage.organizationJoinRequests.getById(i.requestId);if(!f||f.organizationId!==t.id)throw Error("Join request not found");if(f.status!=="pending")throw Error("Join request has already been decided");let l=Hu(u);if(!await u.storage.organizationJoinRequests.decide(f.id,"approved",l??f.userId))return{success:!0};try{await u.boundAuth.organization.addMember({organizationId:t.id,userId:f.userId,role:["user"]})}catch(E){if(!vg(E))throw E}if(l)mu.capture({distinctId:l,event:"organization_join_request_approved",groups:{organization:t.id},properties:{organization_id:t.id,user_id:f.userId}});return{success:!0}}}),Xtu=ti({name:"ORGANIZATION_JOIN_REQUEST_DENY",description:"Deny a pending join request.",annotations:{title:"Deny Join Request",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:W1.object({requestId:W1.string()}),outputSchema:W1.object({success:W1.boolean()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u),f=await u.storage.organizationJoinRequests.getById(i.requestId);if(!f||f.organizationId!==t.id)throw Error("Join request not found");if(f.status!=="pending")throw Error("Join request has already been decided");let l=Hu(u);if(await u.storage.organizationJoinRequests.decide(f.id,"denied",l??f.userId)&&l)mu.capture({distinctId:l,event:"organization_join_request_denied",groups:{organization:t.id},properties:{organization_id:t.id,user_id:f.userId}});return{success:!0}}})});import{z as dw}from"zod";var Ltu;var nN0=g(()=>{H4();Eu();t_();Ltu=ti({name:"ORGANIZATION_MEMBER_ADD",description:"Invite a member to the organization by email with an assigned role.",annotations:{title:"Add Organization Member",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:dw.object({organizationId:dw.string().optional(),userId:dw.string(),role:dw.array(dw.string())}),outputSchema:dw.object({id:dw.string(),organizationId:dw.string(),userId:dw.string(),role:dw.union([dw.string(),dw.array(dw.string())]),createdAt:dw.string().datetime().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{ki(u),await u.access.check();let t=i.organizationId||u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(t!==u.organization?.id)throw Error("Organization ID does not match authenticated organization");let f=Array.isArray(i.role)?i.role[0]:i.role;if(f&&!Gwi(u.auth.user?.role,f))throw Error(`Insufficient privileges to assign role "${f}"`);let l=await u.boundAuth.organization.addMember({organizationId:t,userId:i.userId,role:i.role});if(!l)throw Error("Failed to add member");let c=Hu(u);if(c)mu.capture({distinctId:c,event:"organization_member_added",groups:{organization:t},properties:{organization_id:t,added_user_id:i.userId,role:i.role}});return{...l,role:l.role,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt}}})});import{z as Az}from"zod";var Wtu;var gN0=g(()=>{H4();Eu();Wtu=ti({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from the organization. Revokes all their access immediately.",annotations:{title:"Remove Organization Member",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Az.object({organizationId:Az.string().optional(),memberIdOrEmail:Az.string()}),outputSchema:Az.object({success:Az.boolean(),memberIdOrEmail:Az.string()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=i.organizationId||u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");await u.boundAuth.organization.removeMember({organizationId:t,memberIdOrEmail:i.memberIdOrEmail});let f=Hu(u);if(f)mu.capture({distinctId:f,event:"organization_member_removed",groups:{organization:t},properties:{organization_id:t,member_id_or_email:i.memberIdOrEmail}});return{success:!0,memberIdOrEmail:i.memberIdOrEmail}}})});import{z as IE}from"zod";var Ytu;var ON0=g(()=>{Eu();Ytu=ti({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in the organization with their roles.",annotations:{title:"List Organization Members",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:IE.object({limit:IE.number().optional(),offset:IE.number().optional()}),outputSchema:IE.object({members:IE.array(IE.object({id:IE.string(),organizationId:IE.string(),userId:IE.string(),role:IE.string(),createdAt:IE.string().datetime().describe("ISO 8601 timestamp"),user:IE.object({id:IE.string(),name:IE.string(),email:IE.string(),image:IE.string().optional()}).optional()}))}),handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.boundAuth.organization.listMembers({organizationId:t,limit:i.limit,offset:i.offset});return{members:(Array.isArray(f)?f:[]).map((c)=>({...c,createdAt:c.createdAt instanceof Date?c.createdAt.toISOString():c.createdAt}))}}})});import{z as pc}from"zod";var Qtu;var NN0=g(()=>{H4();Eu();t_();Qtu=ti({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Change a member's role (e.g., admin, member) within the organization.",annotations:{title:"Update Member Role",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:pc.object({organizationId:pc.string().optional(),memberId:pc.string(),role:pc.array(pc.string())}),outputSchema:pc.object({id:pc.string(),organizationId:pc.string(),userId:pc.string(),role:pc.union([pc.literal("admin"),pc.literal("member"),pc.literal("owner")]),createdAt:pc.string().datetime().describe("ISO 8601 timestamp"),user:pc.object({email:pc.string(),name:pc.string(),image:pc.string().optional()})}),handler:async(i,u)=>{ki(u),await u.access.check();let t=i.organizationId||u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=Array.isArray(i.role)?i.role[0]:i.role;if(f&&!Gwi(u.auth.user?.role,f))throw Error(`Insufficient privileges to assign role "${f}"`);let l=await u.boundAuth.organization.updateMemberRole({organizationId:t,memberId:i.memberId,role:i.role});if(!l)throw Error("Failed to update member role");u.invalidateMemberRole?.(l.userId,t);let c=Hu(u);if(c)mu.capture({distinctId:c,event:"organization_member_role_updated",groups:{organization:t},properties:{organization_id:t,member_id:i.memberId,target_user_id:l.userId,new_role:Array.isArray(i.role)?i.role.join(","):i.role}});return{...l,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt}}})});var yN0=g(()=>{mO0();eO0();aO0();oO0();sO0();iN0();uN0();fN0();cN0();EN0();wN0();vN0();DN0();nN0();gN0();ON0();NN0()});var Nd="super-agent",ZN0="task-board.item.updated",TN0="task-board.item.deleted";import{z as mf}from"zod";var Ja,ry,Kxf,BN0,Iz;var my=g(()=>{Ja=mf.enum(["triage","todo","in_progress","in_review","done"]),ry=mf.enum(["none","low","medium","high","urgent"]),Kxf=mf.object({threadId:mf.string(),virtualMcpId:mf.string().nullable(),status:mf.enum(["in_progress","requires_action","failed","completed","expired"]).nullable(),title:mf.string().nullable(),lastMessage:mf.string().nullable(),hasPreview:mf.boolean(),createdAt:mf.string()}),BN0=mf.object({url:mf.string(),number:mf.number(),repoOwner:mf.string(),repoName:mf.string(),createdAt:mf.string(),title:mf.string().nullable(),body:mf.string().nullable(),state:mf.enum(["open","closed"]).nullable(),draft:mf.boolean().nullable(),merged:mf.boolean().nullable()}),Iz=mf.object({id:mf.string(),organizationId:mf.string(),title:mf.string(),description:mf.string().nullable(),status:Ja,priority:ry,assigneeId:mf.string().nullable(),assignedBy:mf.string().nullable(),dueDate:mf.string().datetime().nullable(),threads:mf.array(Kxf),createdBy:mf.string(),createdAt:mf.string().datetime(),updatedBy:mf.string(),updatedAt:mf.string().datetime()})});async function Q3i(i,u,t){if(t===Nd)return;let{members:f}=await i.boundAuth.organization.listMembers({organizationId:u,filterField:"userId",filterValue:t});if(!f.some((l)=>l.userId===t))throw Error("assigneeId is not a member of the organization")}var ztu=g(()=>{my()});async function t5(i,u){if(!(await i.storage.organizationSettings.get(u))?.task_board_enabled)throw Error("Task board is not enabled for this organization")}async function Htu(i,u,t){let f;try{return await Promise.race([i.aiProviders.listModels(u,t),new Promise((c,E)=>{f=setTimeout(()=>E(Error("listModels timeout")),Jxf)})])}finally{if(f)clearTimeout(f)}}function Xxf(i,u){switch(i){case"fast":return u.chat.fast;case"smart":return u.chat.smart;case"thinking":return u.chat.thinking;case"image":return u.image;case"web_search":return u.webSearch;case"deep_research":return u.deepResearch}}function Rtu(i,u,t){let f=i.find((l)=>l.modelId===u);return{title:f?.title??t??u,providerId:f?.providerId,capabilities:f?.capabilities,limits:f?.limits??null}}async function T_(i,u){let t=i.organization?.id;if(!t)throw Error("resolveTier called without an organization");let l=(await i.storage.organizationSettings.get(t))?.simple_mode?.tiers?.[u]??null,c=await i.storage.aiProviderKeys.list({organizationId:t});if(l&&c.some((h)=>h.id===l.keyId)){let h=await Htu(i,l.keyId,t).catch(()=>[]);return{credentialId:l.keyId,modelId:l.modelId,modelMeta:Rtu(h,l.modelId,l.title)}}if(c.length===0)throw new xz(u);let E={};await Promise.all(c.map(async(h)=>{E[h.id]=await Htu(i,h.id,t).catch(()=>[])}));let $=c.map((h)=>({id:h.id,providerId:h.providerId,label:h.label,presetId:h.presetId,createdBy:h.createdBy,createdAt:h.createdAt})),w=Bmi($,E),d=Xxf(u,w);if(!d)throw new xz(u);return{credentialId:d.keyId,modelId:d.modelId,modelMeta:Rtu(E[d.keyId]??[],d.modelId,d.title)}}async function FN0(i,u,t){let f=i.organization?.id;if(!f)throw Error("resolveSpecificModel called without an organization");let l=await Htu(i,u,f).catch(()=>[]);return{credentialId:u,modelId:t,modelMeta:Rtu(l,t)}}async function J3(i,u){try{return await T_(i,u)}catch(t){if(t instanceof xz)return null;return console.warn(`[resolveTier] tier "${u}" resolution failed:`,t),null}}var xz,Jxf=5000;var kz=g(()=>{jt();xz=class xz extends Error{tier;constructor(i){super(`No model available for tier "${i}". Connect a provider or configure the tier in organization settings.`);this.tier=i;this.name="TierUnavailableError"}}});function z3i(i){return i.sandboxProviderKind==="agent-sandbox"&&i.harnessId==="decopilot"}function UN0(i){return i.harnessId==="decopilot"&&(i.sandboxProviderKind==null||i.sandboxProviderKind==="agent-sandbox")}function Wxf(i){return{type:"data-run-status",id:"run-status",data:{stage:i}}}function PN0(i){if(!i||typeof i!=="object")return!1;return i.type==="data-run-status"}async function Pn(i,u,t){if(!i)return;try{await i.publishRawChunk(u,Wxf(t))}catch{}}var Lxf,Xa,ysl;var La=g(()=>{Lxf=["waiting-runner","starting-run","gathering-context","preparing-tools","starting-assistant","analyzing-scope"],Xa=["gathering-context","preparing-tools","starting-assistant","analyzing-scope"],ysl=new Set(Lxf)});function H3i(){return crypto.randomUUID()}var Ctu=K((Bsl,xN0)=>{var{defineProperty:btu,getOwnPropertyDescriptor:Yxf,getOwnPropertyNames:Qxf}=Object,zxf=Object.prototype.hasOwnProperty,Hxf=(i,u)=>{for(var t in u)btu(i,t,{get:u[t],enumerable:!0})},Rxf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Qxf(u))if(!zxf.call(i,l)&&l!==t)btu(i,l,{get:()=>u[l],enumerable:!(f=Yxf(u,l))||f.enumerable})}return i},bxf=(i)=>Rxf(btu({},"__esModule",{value:!0}),i),AN0={};Hxf(AN0,{SYMBOL_FOR_REQ_CONTEXT:()=>IN0,getContext:()=>Cxf});xN0.exports=bxf(AN0);var IN0=Symbol.for("@vercel/request-context");function Cxf(){return globalThis[IN0]?.get?.()??{}}});var Wa=K((Fsl,SN0)=>{var{defineProperty:Mtu,getOwnPropertyDescriptor:Mxf,getOwnPropertyNames:qxf}=Object,Vxf=Object.prototype.hasOwnProperty,rxf=(i,u)=>{for(var t in u)Mtu(i,t,{get:u[t],enumerable:!0})},mxf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of qxf(u))if(!Vxf.call(i,l)&&l!==t)Mtu(i,l,{get:()=>u[l],enumerable:!(f=Mxf(u,l))||f.enumerable})}return i},exf=(i)=>mxf(Mtu({},"__esModule",{value:!0}),i),kN0={};rxf(kN0,{VercelOidcTokenError:()=>GN0});SN0.exports=exf(kN0);class GN0 extends Error{constructor(i,u){super(i);this.name="VercelOidcTokenError",this.cause=u}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var XN0=K((Usl,JN0)=>{var{create:axf,defineProperty:R3i,getOwnPropertyDescriptor:oxf,getOwnPropertyNames:sxf,getPrototypeOf:pxf}=Object,ikf=Object.prototype.hasOwnProperty,ukf=(i,u)=>{for(var t in u)R3i(i,t,{get:u[t],enumerable:!0})},jN0=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of sxf(u))if(!ikf.call(i,l)&&l!==t)R3i(i,l,{get:()=>u[l],enumerable:!(f=oxf(u,l))||f.enumerable})}return i},Vtu=(i,u,t)=>(t=i!=null?axf(pxf(i)):{},jN0(u||!i||!i.__esModule?R3i(t,"default",{value:i,enumerable:!0}):t,i)),tkf=(i)=>jN0(R3i({},"__esModule",{value:!0}),i),KN0={};ukf(KN0,{findRootDir:()=>ckf,getUserDataDir:()=>Ekf});JN0.exports=tkf(KN0);var Ya=Vtu(Ni("path")),fkf=Vtu(Ni("fs")),qtu=Vtu(Ni("os")),lkf=Wa();function ckf(){try{let i=process.cwd();while(i!==Ya.default.dirname(i)){let u=Ya.default.join(i,".vercel");if(fkf.default.existsSync(u))return i;i=Ya.default.dirname(i)}}catch(i){throw new lkf.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function Ekf(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(qtu.default.platform()){case"darwin":return Ya.default.join(qtu.default.homedir(),"Library/Application Support");case"linux":return Ya.default.join(qtu.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var RN0=K((Psl,HN0)=>{var{create:$kf,defineProperty:b3i,getOwnPropertyDescriptor:wkf,getOwnPropertyNames:dkf,getPrototypeOf:hkf}=Object,_kf=Object.prototype.hasOwnProperty,vkf=(i,u)=>{for(var t in u)b3i(i,t,{get:u[t],enumerable:!0})},LN0=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of dkf(u))if(!_kf.call(i,l)&&l!==t)b3i(i,l,{get:()=>u[l],enumerable:!(f=wkf(u,l))||f.enumerable})}return i},WN0=(i,u,t)=>(t=i!=null?$kf(hkf(i)):{},LN0(u||!i||!i.__esModule?b3i(t,"default",{value:i,enumerable:!0}):t,i)),Dkf=(i)=>LN0(b3i({},"__esModule",{value:!0}),i),YN0={};vkf(YN0,{isValidAccessToken:()=>Nkf,readAuthConfig:()=>gkf,writeAuthConfig:()=>Okf});HN0.exports=Dkf(YN0);var Qa=WN0(Ni("fs")),QN0=WN0(Ni("path")),nkf=za();function zN0(){let i=(0,nkf.getVercelDataDir)();if(!i)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return QN0.join(i,"auth.json")}function gkf(){try{let i=zN0();if(!Qa.existsSync(i))return null;let u=Qa.readFileSync(i,"utf8");if(!u)return null;return JSON.parse(u)}catch(i){return null}}function Okf(i){let u=zN0(),t=QN0.dirname(u);if(!Qa.existsSync(t))Qa.mkdirSync(t,{mode:504,recursive:!0});Qa.writeFileSync(u,JSON.stringify(i,null,2),{mode:384})}function Nkf(i,u=0){if(!i.token)return!1;if(typeof i.expiresAt!=="number")return!0;let t=Math.floor(Date.now()/1000),f=u/1000;return i.expiresAt>=t+f}});var qN0=K((Asl,MN0)=>{var{defineProperty:etu,getOwnPropertyDescriptor:ykf,getOwnPropertyNames:Zkf}=Object,Tkf=Object.prototype.hasOwnProperty,Bkf=(i,u)=>{for(var t in u)etu(i,t,{get:u[t],enumerable:!0})},Fkf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Zkf(u))if(!Tkf.call(i,l)&&l!==t)etu(i,l,{get:()=>u[l],enumerable:!(f=ykf(u,l))||f.enumerable})}return i},Ukf=(i)=>Fkf(etu({},"__esModule",{value:!0}),i),bN0={};Bkf(bN0,{processTokenResponse:()=>kkf,refreshTokenRequest:()=>xkf});MN0.exports=Ukf(bN0);var rtu=Ni("os"),Pkf="https://vercel.com",Akf="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",CN0=`@vercel/oidc node-${process.version} ${(0,rtu.platform)()} (${(0,rtu.arch)()}) ${(0,rtu.hostname)()}`,mtu=null;async function Ikf(){if(mtu)return mtu;let i=`${Pkf}/.well-known/openid-configuration`,u=await fetch(i,{headers:{"user-agent":CN0}});if(!u.ok)throw Error("Failed to discover OAuth endpoints");let t=await u.json();if(!t||typeof t.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let f=t.token_endpoint;return mtu=f,f}async function xkf(i){let u=await Ikf();return await fetch(u,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":CN0},body:new URLSearchParams({client_id:Akf,grant_type:"refresh_token",...i})})}async function kkf(i){let u=await i.json();if(!i.ok){let t=typeof u==="object"&&u&&"error"in u?String(u.error):"Token refresh failed";return[Error(t)]}if(typeof u!=="object"||u===null)return[Error("Invalid token response")];if(typeof u.access_token!=="string")return[Error("Missing access_token in response")];if(u.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof u.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,u]}});var otu=K((Isl,eN0)=>{var{defineProperty:atu,getOwnPropertyDescriptor:Gkf,getOwnPropertyNames:Skf}=Object,jkf=Object.prototype.hasOwnProperty,Kkf=(i,u)=>{for(var t in u)atu(i,t,{get:u[t],enumerable:!0})},Jkf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Skf(u))if(!jkf.call(i,l)&&l!==t)atu(i,l,{get:()=>u[l],enumerable:!(f=Gkf(u,l))||f.enumerable})}return i},Xkf=(i)=>Jkf(atu({},"__esModule",{value:!0}),i),VN0={};Kkf(VN0,{AccessTokenMissingError:()=>rN0,RefreshAccessTokenFailedError:()=>mN0});eN0.exports=Xkf(VN0);class rN0 extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login).");this.name="AccessTokenMissingError"}}class mN0 extends Error{constructor(i){super("Failed to refresh authentication token.",{cause:i});this.name="RefreshAccessTokenFailedError"}}});var za=K((xsl,iy0)=>{var{create:Lkf,defineProperty:C3i,getOwnPropertyDescriptor:Wkf,getOwnPropertyNames:Ykf,getPrototypeOf:Qkf}=Object,zkf=Object.prototype.hasOwnProperty,Hkf=(i,u)=>{for(var t in u)C3i(i,t,{get:u[t],enumerable:!0})},oN0=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Ykf(u))if(!zkf.call(i,l)&&l!==t)C3i(i,l,{get:()=>u[l],enumerable:!(f=Wkf(u,l))||f.enumerable})}return i},sN0=(i,u,t)=>(t=i!=null?Lkf(Qkf(i)):{},oN0(u||!i||!i.__esModule?C3i(t,"default",{value:i,enumerable:!0}):t,i)),Rkf=(i)=>oN0(C3i({},"__esModule",{value:!0}),i),pN0={};Hkf(pN0,{assertVercelOidcTokenResponse:()=>stu,findProjectInfo:()=>qkf,getTokenPayload:()=>mkf,getVercelDataDir:()=>bkf,getVercelOidcToken:()=>Mkf,getVercelToken:()=>Ckf,isExpired:()=>ekf,loadToken:()=>rkf,saveToken:()=>Vkf});iy0.exports=Rkf(pN0);var Ha=sN0(Ni("path")),ey=sN0(Ni("fs")),jz=Wa(),M3i=XN0(),Gz=RN0(),aN0=qN0(),Sz=otu();function bkf(){let u=(0,M3i.getUserDataDir)();if(!u)return null;return Ha.join(u,"com.vercel.cli")}async function Ckf(i){let u=(0,Gz.readAuthConfig)();if(!u?.token)throw new Sz.AccessTokenMissingError;if((0,Gz.isValidAccessToken)(u,i?.expirationBufferMs))return u.token;if(!u.refreshToken)throw(0,Gz.writeAuthConfig)({}),new Sz.RefreshAccessTokenFailedError("No refresh token available");try{let t=await(0,aN0.refreshTokenRequest)({refresh_token:u.refreshToken}),[f,l]=await(0,aN0.processTokenResponse)(t);if(f||!l)throw(0,Gz.writeAuthConfig)({}),new Sz.RefreshAccessTokenFailedError(f);let c={token:l.access_token,expiresAt:Math.floor(Date.now()/1000)+l.expires_in};if(l.refresh_token)c.refreshToken=l.refresh_token;return(0,Gz.writeAuthConfig)(c),c.token}catch(t){if((0,Gz.writeAuthConfig)({}),t instanceof Sz.AccessTokenMissingError||t instanceof Sz.RefreshAccessTokenFailedError)throw t;throw new Sz.RefreshAccessTokenFailedError(t)}}async function Mkf(i,u,t){let f=`https://api.vercel.com/v1/projects/${u}/token?source=vercel-oidc-refresh${t?`&teamId=${t}`:""}`,l=await fetch(f,{method:"POST",headers:{Authorization:`Bearer ${i}`}});if(!l.ok)throw new jz.VercelOidcTokenError(`Failed to refresh OIDC token: ${l.statusText}`);let c=await l.json();return stu(c),c}function stu(i){if(!i||typeof i!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in i)||typeof i.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function qkf(){let i=(0,M3i.findRootDir)();if(!i)throw new jz.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let u=Ha.join(i,".vercel","project.json");if(!ey.existsSync(u))throw new jz.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let t=JSON.parse(ey.readFileSync(u,"utf8"));if(typeof t.projectId!=="string"&&typeof t.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:t.projectId,teamId:t.orgId}}function Vkf(i,u){let t=(0,M3i.getUserDataDir)();if(!t)throw new jz.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let f=Ha.join(t,"com.vercel.token",`${u}.json`),l=JSON.stringify(i);ey.mkdirSync(Ha.dirname(f),{mode:504,recursive:!0}),ey.writeFileSync(f,l),ey.chmodSync(f,432);return}function rkf(i){let u=(0,M3i.getUserDataDir)();if(!u)throw new jz.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let t=Ha.join(u,"com.vercel.token",`${i}.json`);if(!ey.existsSync(t))return null;let f=JSON.parse(ey.readFileSync(t,"utf8"));return stu(f),f}function mkf(i){let u=i.split(".");if(u.length!==3)throw new jz.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let t=u[1].replace(/-/g,"+").replace(/_/g,"/"),f=t.padEnd(t.length+(4-t.length%4)%4,"=");return JSON.parse(Buffer.from(f,"base64").toString("utf8"))}function ekf(i,u=0){return i.exp*1000<Date.now()+u}});var ly0=K((ksl,fy0)=>{var{defineProperty:ptu,getOwnPropertyDescriptor:akf,getOwnPropertyNames:okf}=Object,skf=Object.prototype.hasOwnProperty,pkf=(i,u)=>{for(var t in u)ptu(i,t,{get:u[t],enumerable:!0})},iGf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of okf(u))if(!skf.call(i,l)&&l!==t)ptu(i,l,{get:()=>u[l],enumerable:!(f=akf(u,l))||f.enumerable})}return i},uGf=(i)=>iGf(ptu({},"__esModule",{value:!0}),i),ty0={};pkf(ty0,{refreshToken:()=>tGf});fy0.exports=uGf(ty0);var uy0=Wa(),Dg=za();async function tGf(i){let u=i?.project,t=i?.team;if(!u&&!t){let l=(0,Dg.findProjectInfo)();u=l.projectId,t=l.teamId}else if(!u||!t){let l=(0,Dg.findProjectInfo)();u=u??l.projectId,t=t??l.teamId}if(!u)throw new uy0.VercelOidcTokenError("Failed to refresh OIDC token: No project specified. Try re-linking your project with `vc link`");let f=(0,Dg.loadToken)(u);if(!f||(0,Dg.isExpired)((0,Dg.getTokenPayload)(f.token),i?.expirationBufferMs)){let l=await(0,Dg.getVercelToken)({expirationBufferMs:i?.expirationBufferMs});if(f=await(0,Dg.getVercelOidcToken)(l,u,t),!f)throw new uy0.VercelOidcTokenError("Failed to refresh OIDC token");(0,Dg.saveToken)(f,u)}process.env.VERCEL_OIDC_TOKEN=f.token;return}});var $y0=K((Gsl,Ey0)=>{var{defineProperty:ufu,getOwnPropertyDescriptor:fGf,getOwnPropertyNames:lGf}=Object,cGf=Object.prototype.hasOwnProperty,EGf=(i,u)=>{for(var t in u)ufu(i,t,{get:u[t],enumerable:!0})},$Gf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of lGf(u))if(!cGf.call(i,l)&&l!==t)ufu(i,l,{get:()=>u[l],enumerable:!(f=fGf(u,l))||f.enumerable})}return i},wGf=(i)=>$Gf(ufu({},"__esModule",{value:!0}),i),cy0={};EGf(cy0,{getVercelOidcToken:()=>_Gf,getVercelOidcTokenSync:()=>ifu});Ey0.exports=wGf(cy0);var dGf=Ctu(),hGf=Wa();async function _Gf(i){let u="",t;try{u=ifu()}catch(f){t=f}try{let[{getTokenPayload:f,isExpired:l},{refreshToken:c}]=await Promise.all([await Promise.resolve().then(() => S(za())),await Promise.resolve().then(() => S(ly0()))]);if(!u||l(f(u),i?.expirationBufferMs))await c(i),u=ifu()}catch(f){let l=t instanceof Error?t.message:"";if(f instanceof Error)l=`${l}
|
|
86638
|
+
`.execute(i)).rows[0]?.exists)await rf`CREATE ROLE ${rf.id(t)} NOLOGIN`.execute(i);await rf`GRANT ${rf.id(t)} TO CURRENT_USER`.execute(i),await rf`GRANT USAGE, CREATE ON SCHEMA ${rf.id(u)} TO ${rf.id(t)}`.execute(i),await rf`GRANT ALL ON ALL TABLES IN SCHEMA ${rf.id(u)} TO ${rf.id(t)}`.execute(i),await rf`GRANT ALL ON ALL SEQUENCES IN SCHEMA ${rf.id(u)} TO ${rf.id(t)}`.execute(i),await rf`ALTER DEFAULT PRIVILEGES IN SCHEMA ${rf.id(u)} GRANT ALL ON TABLES TO ${rf.id(t)}`.execute(i),await rf`ALTER DEFAULT PRIVILEGES IN SCHEMA ${rf.id(u)} GRANT ALL ON SEQUENCES TO ${rf.id(t)}`.execute(i),await rf`REVOKE ALL ON SCHEMA public FROM ${rf.id(t)}`.execute(i)}async function oIf(i,u,t,f){try{return await i.transaction().execute(async(l)=>{return await rf`SET LOCAL ROLE ${rf.id(t)}`.execute(l),await rf`SET LOCAL search_path TO ${rf.id(u)}`.execute(l),await rf.raw(f).execute(l)})}catch(l){if(eIf(l))return await aIf(i,u,t),await i.transaction().execute(async(c)=>{return await rf`SET LOCAL ROLE ${rf.id(t)}`.execute(c),await rf`SET LOCAL search_path TO ${rf.id(u)}`.execute(c),await rf.raw(f).execute(c)});throw l}}var MIf,VIf,kO0;var GO0=g(()=>{Eu();MIf=i5.object({results:i5.array(i5.unknown()).optional(),success:i5.boolean().optional()});VIf=i5.object({sql:i5.string().describe("The SQL query to run"),params:i5.array(i5.any()).describe("The parameters to pass to the SQL query").optional()});kO0=ti({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:VIf,outputSchema:i5.object({result:i5.array(MIf)}),handler:async(i,u)=>{ki(u),await u.access.check();let t=qIf(i.sql,i.params||[]);if(!u.connectionId)throw Error("Connection context required for database access");console.warn("DATABASES_RUN_SQL invoked",{"tool.deprecation_probe":"DATABASES_RUN_SQL","connection.id":u.connectionId,"organization.id":u.organization?.id??null,"user.id":u.auth.user?.id??null});let f=rIf(u.connectionId),l=mIf(u.connectionId);return{result:[{results:(await oIf(u.db,f,l,t)).rows,success:!0}]}}})});function j3i(i){let u=i.access.getRole();if(!u||!N3.includes(u))throw new En("Only organization owners and admins can change org-wide pin status")}var M0u=g(()=>{t_();wy()});import{z as KO0}from"zod";function pIf(){let i=SO0[Math.floor(Math.random()*SO0.length)];return`icon://${jO0[Math.floor(Math.random()*jO0.length)]}?color=${i}`}var SO0,jO0,ixf,uxf,q0u;var JO0=g(()=>{Eu();c7();M0u();Oa();SO0=["red","orange","amber","yellow","lime","green","emerald","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],jO0=["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"];ixf=KO0.object({data:gV.describe("Data for the new virtual MCP")}),uxf=KO0.object({item:P6.describe("The created virtual MCP entity")}),q0u=ti({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:ixf,outputSchema:uxf,handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let f=Hu(u);if(!f)throw Error("User ID required to create virtual MCP");if(i.data.pinned===!0)j3i(u);let{prompts:l,...c}=i.data,E={...c,icon:c.icon??pIf()},$=await u.storage.virtualMcps.create(t.id,f,E);if(l?.length&&u.orgFs&&$.id)await E3i(u.orgFs,$.id,f,l);return{item:$}}})});function txf(i){let u=[],t=0;while(t<i.length){let f=i[t];if(f==="%")u.push(".*");else if(f==="_")u.push(".");else if(/[.*+?^${}()|[\]\\]/.test(f))u.push("\\"+f);else u.push(f);t++}return u.join("")}function dg(i){return typeof i==="string"||typeof i==="number"}function V0u(i,u){let t=u.split("."),f=i;for(let l of t){if(f==null||typeof f!=="object")return;f=f[l]}return f}function fxf(i,u){return i.connections.some((t)=>t.connection_id===u)}function K3i(i,u){if("conditions"in u){let{operator:$,conditions:w}=u;switch($){case"and":return w.every((d)=>K3i(i,d));case"or":return w.some((d)=>K3i(i,d));case"not":return!w.every((d)=>K3i(i,d));default:return!0}}let{field:t,operator:f,value:l}=u,c=t.join(".");if(c==="connection_id"){if(f!=="eq"||typeof l!=="string")return!1;return fxf(i,l)}let E=V0u(i,c);switch(f){case"eq":return E===l;case"gt":return dg(E)&&dg(l)&&E>l;case"gte":return dg(E)&&dg(l)&&E>=l;case"lt":return dg(E)&&dg(l)&&E<l;case"lte":return dg(E)&&dg(l)&&E<=l;case"in":return Array.isArray(l)&&l.includes(E);case"like":if(typeof E!=="string"||typeof l!=="string")return!1;if(l.length>100)return!1;let $=txf(l);return new RegExp(`^${$}$`,"i").test(E);case"contains":if(typeof E!=="string"||typeof l!=="string")return!1;return E.toLowerCase().includes(l.toLowerCase());default:return!0}}function lxf(i,u){return[...i].sort((t,f)=>{for(let l of u){let c=l.field.join("."),E=V0u(t,c),$=V0u(f,c),w=0;if(E==null&&$==null)continue;if(E==null)w=l.nulls==="first"?-1:1;else if($==null)w=l.nulls==="first"?1:-1;else if(typeof E==="string"&&typeof $==="string")w=E.localeCompare($);else if(typeof E==="number"&&typeof $==="number")w=E-$;else w=String(E).localeCompare(String($));if(w!==0)return l.direction==="desc"?-w:w}return 0})}var cxf,Exf,r0u;var XO0=g(()=>{gd();Eu();c7();cxf=g_,Exf=Tn(P6),r0u=ti({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:cxf,outputSchema:Exf,handler:async(i,u)=>{await u.access.check();let t=yi(u),f=i.where&&!("conditions"in i.where)&&i.where.field.join(".")==="connection_id"&&i.where.operator==="eq"&&typeof i.where.value==="string"?i.where.value:void 0,l=i.where&&!("conditions"in i.where)&&i.where.field.join(".")==="pinned"&&i.where.operator==="eq"&&typeof i.where.value==="boolean"?i.where.value:void 0,E=f?await u.storage.virtualMcps.listByConnectionId(t.id,f):await u.storage.virtualMcps.list(t.id,l!==void 0?{pinnedOnly:l}:void 0);if(i.where)E=E.filter((v)=>K3i(v,i.where));if(i.orderBy&&i.orderBy.length>0)E=lxf(E,i.orderBy);let $=E.length,w=i.offset??0,d=i.limit??100,h=E.slice(w,w+d),_=w+d<$;return{items:h,totalCount:$,hasMore:_}}})});import{z as m0u}from"zod";var $xf,wxf,e0u;var LO0=g(()=>{Eu();c7();$xf=m0u.object({id:m0u.string().describe("ID of the virtual MCP to retrieve")}),wxf=m0u.object({item:P6.nullable().describe("The retrieved virtual MCP, or null if not found")}),e0u=ti({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:$xf,outputSchema:wxf,handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let f=await u.storage.virtualMcps.findById(i.id);if(f&&f.organization_id!==t.id)return{item:null};if(!f)return{item:null};return{item:f}}})});import{z as a0u}from"zod";var dxf,hxf,o0u;var WO0=g(()=>{Eu();Oa();c7();M0u();dxf=a0u.object({id:a0u.string().describe("ID of the virtual MCP to update"),data:OV.describe("Partial virtual MCP data to update")}),hxf=a0u.object({item:P6.describe("The updated virtual MCP entity")}),o0u=ti({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:dxf,outputSchema:hxf,handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let f=Hu(u);if(!f)throw Error("User ID required to update virtual MCP");let l=await u.storage.virtualMcps.findById(i.id);if(!l)throw Error(`Virtual MCP not found: ${i.id}`);if(l.organization_id!==t.id)throw Error(`Virtual MCP not found: ${i.id}`);let{prompts:c,...E}=i.data;if(E.metadata&&l.metadata)E.metadata={...l.metadata,...E.metadata};if(E.pinned!==void 0&&E.pinned!==l.pinned)j3i(u);let $=await u.storage.virtualMcps.update(i.id,f,E);if(c!==void 0&&u.orgFs)await E3i(u.orgFs,i.id,f,c);return{item:$}}})});import{z as s0u}from"zod";var _xf,vxf,p0u;var YO0=g(()=>{Eg();n_();Eu();Oa();c7();_xf=s0u.object({id:s0u.string().describe("ID of the virtual MCP to delete")}),vxf=s0u.object({item:P6.describe("The deleted virtual MCP entity")}),p0u=ti({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:_xf,outputSchema:vxf,handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let f=await u.storage.virtualMcps.findById(i.id);if(!f)throw Error(`Virtual MCP not found: ${i.id}`);if(f.organization_id!==t.id)throw Error(`Virtual MCP not found: ${i.id}`);if(await u.storage.virtualMcps.delete(i.id),u.orgFs)await A0u(u.orgFs,i.id,Hu(u)??"system");let l=f.metadata?.githubRepo?.connectionId;if(l)try{let c=await u.storage.connections.findById(l,t.id);if(c&&k3(c)){let $=await new al(u.db,u.vault).get(l);if($?.accessToken)try{await fetch("https://api.github.com/installation/token",{method:"DELETE",headers:{Authorization:`Bearer ${$.accessToken}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"},signal:AbortSignal.timeout(5000)})}catch{}await u.storage.connections.delete(l)}}catch(c){console.error("[VIRTUAL_MCP_DELETE] failed to tear down repo-scoped connection",{childConnectionId:l,error:c.message})}return{item:f}}})});import{z as ww}from"zod";var Dxf,itu;var QO0=g(()=>{Eu();Dxf=ww.object({id:ww.string(),virtualMcpId:ww.string(),pluginId:ww.string(),connectionId:ww.string().nullable(),settings:ww.record(ww.string(),ww.unknown()).nullable(),createdAt:ww.string(),updatedAt:ww.string()}),itu=ti({name:"VIRTUAL_MCP_PLUGIN_CONFIG_GET",description:"Get a plugin's current configuration for a specific virtual MCP.",annotations:{title:"Get Virtual MCP Plugin Config",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:ww.object({virtualMcpId:ww.string().describe("Virtual MCP ID"),pluginId:ww.string().describe("Plugin ID")}),outputSchema:ww.object({config:Dxf.nullable()}),handler:async(i,u)=>{ki(u),await u.access.check();let{virtualMcpId:t,pluginId:f}=i,l=await u.storage.virtualMcpPluginConfigs.get(t,f);if(!l)return{config:null};return{config:{id:l.id,virtualMcpId:l.virtualMcpId,pluginId:l.pluginId,connectionId:l.connectionId,settings:l.settings,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt,updatedAt:l.updatedAt instanceof Date?l.updatedAt.toISOString():l.updatedAt}}}})});import{z as sc}from"zod";var nxf,utu;var zO0=g(()=>{Eu();oW();EE();nxf=sc.object({id:sc.string(),virtualMcpId:sc.string(),pluginId:sc.string(),connectionId:sc.string().nullable(),settings:sc.record(sc.string(),sc.unknown()).nullable(),createdAt:sc.string(),updatedAt:sc.string()}),utu=ti({name:"VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE",description:"Set or update a plugin's configuration for a specific virtual MCP.",annotations:{title:"Update Virtual MCP Plugin Config",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:sc.object({virtualMcpId:sc.string().describe("Virtual MCP ID"),pluginId:sc.string().describe("Plugin ID"),connectionId:sc.string().nullable().optional().describe("MCP connection to bind"),settings:sc.record(sc.string(),sc.unknown()).nullable().optional().describe("Plugin-specific settings")}),outputSchema:sc.object({config:nxf}),handler:async(i,u)=>{ki(u),await u.access.check();let{virtualMcpId:t,pluginId:f,connectionId:l,settings:c}=i,E=Hu(u),$=await u.storage.connections.findById(t);if(!$)throw Error(`Connection not found: ${t}`);let w=l?await u.storage.connections.findById(l):null;if(l&&$.organization_id&&!w&&Ch()){if(a6i(l,$.organization_id)){if(!E)throw Error("User ID required to create dev-assets connection");let h=aW($.organization_id,M1());await u.storage.connections.create({...h,organization_id:$.organization_id,created_by:E})}}let d=await u.storage.virtualMcpPluginConfigs.upsert(t,f,{connectionId:l,settings:c});return{config:{id:d.id,virtualMcpId:d.virtualMcpId,pluginId:d.pluginId,connectionId:d.connectionId,settings:d.settings,createdAt:d.createdAt instanceof Date?d.createdAt.toISOString():d.createdAt,updatedAt:d.updatedAt instanceof Date?d.updatedAt.toISOString():d.updatedAt}}}})});import{z as _$}from"zod";var gxf,ttu;var HO0=g(()=>{Eu();c7();gxf=_$.object({connectionId:_$.string(),toolName:_$.string(),label:_$.string(),icon:_$.string().nullable().optional()}),ttu=ti({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:_$.object({virtualMcpId:_$.string().describe("Virtual MCP ID"),pinnedViews:_$.array(gxf).describe("Pinned views to set for the virtual MCP sidebar"),layout:_$.object({defaultMainView:_$.object({type:_$.string(),id:_$.string().optional(),toolName:_$.string().optional()}).nullable().optional(),chatDefaultOpen:_$.boolean().nullable().optional()}).optional()}),outputSchema:_$.object({item:P6.nullable()}),handler:async(i,u)=>{ki(u);let t=yi(u);await u.access.check();let{virtualMcpId:f,pinnedViews:l,layout:c}=i,E=Hu(u),$=await u.storage.virtualMcps.findById(f);if(!$)throw Error(`Virtual MCP not found: ${f}`);if($.organization_id!==t.id)throw Error(`Virtual MCP not found: ${f}`);let w=$.metadata?.ui??{},d={...w,pinnedViews:l.length>0?l:null,layout:c??w.layout??null};return{item:await u.storage.virtualMcps.update(f,E??"system",{metadata:{...$.metadata,ui:d}})}}})});import{z as Fn}from"zod";var Oxf,Nxf,ftu;var RO0=g(()=>{Eu();Oxf=Fn.object({ids:Fn.array(Fn.string()).describe("Virtual MCP ids to look up")}),Nxf=Fn.object({items:Fn.array(Fn.object({id:Fn.string(),last_used_at:Fn.string().optional(),last_used_by:Fn.string().optional()}))}),ftu=ti({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:Oxf,outputSchema:Nxf,handler:async(i,u)=>{ki(u),yi(u),await u.access.check();let t=await u.storage.threads.findLastUsedByVirtualMcpIds(i.ids);return{items:i.ids.map((f)=>({id:f,last_used_at:t.get(f)?.last_used_at,last_used_by:t.get(f)?.last_used_by}))}}})});var bO0=g(()=>{JO0();XO0();LO0();WO0();YO0();QO0();zO0();HO0();RO0()});import{z as Pl}from"zod";var ltu;var CO0=g(()=>{jl();Eu();ltu=ti({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:Pl.object({id:Pl.string().describe("Log ID to fetch")}),outputSchema:Pl.object({log:Pl.object({id:Pl.string().optional(),organizationId:Pl.string(),connectionId:Pl.string(),toolName:Pl.string(),input:Pl.record(Pl.string(),Pl.unknown()),output:Pl.record(Pl.string(),Pl.unknown()),isError:Pl.boolean(),errorMessage:Pl.string().nullish(),durationMs:Pl.number(),timestamp:Pl.string(),userId:Pl.string().nullish(),requestId:Pl.string(),userAgent:Pl.string().nullish(),virtualMcpId:Pl.string().nullish(),properties:Pl.record(Pl.string(),Pl.string()).nullish()}).nullable().describe("The monitoring log, or null if not found")}),handler:async(i,u)=>{await u.access.check(),await sd();let t=yi(u),f=await u.storage.monitoring.getById(t.id,i.id);if(!f)return{log:null};return{log:{...f,timestamp:f.timestamp instanceof Date?f.timestamp.toISOString():f.timestamp}}}})});import{z as Tt}from"zod";var Zxf,ctu;var MO0=g(()=>{jl();Eu();Zxf=Tt.object({id:Tt.string().optional().describe("Unique log identifier"),organizationId:Tt.string().describe("Organization ID"),connectionId:Tt.string().describe("Connection ID"),toolName:Tt.string().describe("Name of the tool that was called"),isError:Tt.boolean().describe("Whether the call resulted in an error"),errorMessage:Tt.string().nullish().describe("Error message if applicable"),durationMs:Tt.number().describe("Call duration in milliseconds"),timestamp:Tt.string().describe("ISO 8601 timestamp of the call"),userId:Tt.string().nullish().describe("User who triggered the call"),requestId:Tt.string().describe("Unique request identifier"),userAgent:Tt.string().nullish().describe("Client identifier (x-mesh-client header)"),virtualMcpId:Tt.string().nullish().describe("Virtual MCP (Agent) ID if routed through an agent"),properties:Tt.record(Tt.string(),Tt.string()).nullish().describe("Custom key-value metadata attached to the log")}),ctu=ti({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:Tt.object({connectionId:Tt.string().optional().describe("Filter by connection ID"),excludeConnectionIds:Tt.array(Tt.string()).optional().describe("Exclude logs from these connection IDs (e.g. system connections)"),virtualMcpId:Tt.string().optional().describe("Filter by Virtual MCP (Agent) ID"),toolName:Tt.string().optional().describe("Filter by tool name"),isError:Tt.boolean().optional().describe("Filter by error status"),startDate:Tt.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:Tt.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),limit:Tt.number().default(20).describe("Maximum number of results"),offset:Tt.number().default(0).describe("Offset for pagination"),properties:Tt.record(Tt.string(),Tt.string()).optional().describe("Filter by exact property key=value matches"),propertyKeys:Tt.array(Tt.string()).optional().describe("Filter by logs that have these property keys"),propertyPatterns:Tt.record(Tt.string(),Tt.string()).optional().describe("Filter by property value patterns (SQL LIKE, use % as wildcard)"),propertyInValues:Tt.record(Tt.string(),Tt.string()).optional().describe("Filter by exact match within comma-separated values (e.g., user_tags in 'Engineering')")}),outputSchema:Tt.object({logs:Tt.array(Zxf).describe("Array of monitoring logs"),total:Tt.number().describe("Total number of logs matching filters"),offset:Tt.number().describe("Current offset for pagination"),limit:Tt.number().describe("Current limit for pagination")}),handler:async(i,u)=>{await sd();let t=yi(u),l=i.properties||i.propertyKeys||i.propertyPatterns||i.propertyInValues?{properties:i.properties,propertyKeys:i.propertyKeys,propertyPatterns:i.propertyPatterns,propertyInValues:i.propertyInValues}:void 0,c={organizationId:t.id,connectionId:i.connectionId,excludeConnectionIds:i.excludeConnectionIds,virtualMcpId:i.virtualMcpId,toolName:i.toolName,isError:i.isError,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,limit:i.limit,offset:i.offset,propertyFilters:l},E=await u.storage.monitoring.query(c);return{logs:E.logs.map(({input:$,output:w,...d})=>({...d,timestamp:d.timestamp instanceof Date?d.timestamp.toISOString():d.timestamp})),total:E.total,offset:i.offset,limit:i.limit}}})});import{z as D0}from"zod";var Etu;var qO0=g(()=>{jl();Eu();Etu=ti({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:D0.object({startDate:D0.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:D0.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)"),interval:D0.string().regex(/^\d+[mhd]$/).optional().describe("Bucket interval for timeseries data (e.g. 1m, 5m, 2h, 1d). When provided, returns timeseries array."),connectionIds:D0.array(D0.string()).max(100).optional().describe("Filter by specific connection IDs (max 100)"),excludeConnectionIds:D0.array(D0.string()).max(100).optional().describe("Exclude specific connection IDs (max 100)"),toolNames:D0.array(D0.string()).max(100).optional().describe("Filter by specific tool names (max 100)"),status:D0.enum(["success","error"]).optional().describe("Filter metrics by execution status"),topN:D0.number().int().min(1).max(20).optional().describe("When provided with interval, also return top tools and their timeseries"),userIds:D0.array(D0.string()).max(100).optional().describe("Filter LLM usage by user IDs (only applied when llmUsage is true)"),llmUsage:D0.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:D0.object({totalCalls:D0.number().describe("Total number of tool calls"),errorRate:D0.number().optional().describe("Error rate as a decimal (0 to 1)"),avgDurationMs:D0.number().describe("Average call duration in milliseconds"),errorRatePercent:D0.string().optional().describe("Error rate as a percentage string"),totalErrors:D0.number().optional().describe("Total number of errors"),p50DurationMs:D0.number().optional().describe("50th percentile duration in milliseconds"),p95DurationMs:D0.number().optional().describe("95th percentile duration in milliseconds"),connectionBreakdown:D0.array(D0.object({connectionId:D0.string(),calls:D0.number(),errors:D0.number(),errorRate:D0.number(),avgDurationMs:D0.number()})).optional().describe("Per-connection metric breakdown"),totalInputTokens:D0.number().optional().describe("Total input tokens (LLM usage mode)"),totalOutputTokens:D0.number().optional().describe("Total output tokens (LLM usage mode)"),totalTokens:D0.number().optional().describe("Total tokens (LLM usage mode)"),totalCostUsd:D0.number().optional().describe("Total USD cost (LLM usage mode; only non-zero for providers that report cost)"),topTools:D0.array(D0.object({toolName:D0.string(),connectionId:D0.string().nullable(),calls:D0.number(),inputTokens:D0.number().optional(),outputTokens:D0.number().optional(),costUsd:D0.number().optional()})).optional().describe("Top tools ranked by calls"),topToolsTimeseries:D0.array(D0.object({timestamp:D0.string(),toolName:D0.string(),calls:D0.number(),errors:D0.number(),avg:D0.number(),p95:D0.number()})).optional().describe("Per-tool metric timeseries for the top tools"),timeseries:D0.array(D0.object({timestamp:D0.string(),calls:D0.number(),errors:D0.number(),errorRate:D0.number(),avg:D0.number(),p50:D0.number(),p95:D0.number(),inputTokens:D0.number().optional(),outputTokens:D0.number().optional(),totalTokens:D0.number().optional(),costUsd:D0.number().optional()})).optional().describe("Timeseries data points bucketed by interval")}),handler:async(i,u)=>{let t=yi(u);if(await u.access.check(),await sd(),i.interval&&i.llmUsage)return u.storage.monitoring.queryLlmUsageStats({organizationId:t.id,interval:i.interval,connectionId:i.connectionIds?.[0]??"decopilot",startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,userIds:i.userIds,topN:i.topN});if(i.interval){let l=await u.storage.monitoring.queryMetricTimeseries({organizationId:t.id,interval:i.interval,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,filters:{connectionIds:i.connectionIds,excludeConnectionIds:i.excludeConnectionIds,toolNames:i.toolNames,status:i.status}});if(!i.topN)return l;let c=await u.storage.monitoring.queryMetricTopToolsTimeseries({organizationId:t.id,interval:i.interval,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0,topN:i.topN,filters:{connectionIds:i.connectionIds,excludeConnectionIds:i.excludeConnectionIds,toolNames:i.toolNames,status:i.status}});return{...l,topTools:c.topTools,topToolsTimeseries:c.timeseries}}let f=await u.storage.monitoring.getStats({organizationId:t.id,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0});return{...f,errorRatePercent:(f.errorRate*100).toFixed(2)}}})});import{z as v$}from"zod";var $tu;var VO0=g(()=>{jl();Eu();$tu=ti({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:v$.object({threadIds:v$.array(v$.string()).min(1).max(500).describe("Thread IDs to aggregate usage for (max 500)"),connectionId:v$.string().optional().describe("LLM connection ID (defaults to 'decopilot')"),startDate:v$.string().datetime().optional().describe("Filter by start date (ISO 8601 datetime string)"),endDate:v$.string().datetime().optional().describe("Filter by end date (ISO 8601 datetime string)")}),outputSchema:v$.object({items:v$.array(v$.object({threadId:v$.string(),calls:v$.number(),inputTokens:v$.number(),outputTokens:v$.number(),totalTokens:v$.number(),costUsd:v$.number()}))}),handler:async(i,u)=>{let t=yi(u);return await u.access.check(),await sd(),{items:await u.storage.monitoring.queryThreadUsage({organizationId:t.id,connectionId:i.connectionId??"decopilot",threadIds:i.threadIds,startDate:i.startDate?new Date(i.startDate):void 0,endDate:i.endDate?new Date(i.endDate):void 0})}}})});var rO0=g(()=>{CO0();MO0();qO0();VO0()});function J3i(i){return typeof i==="string"&&Bxf.has(i.trim().toLowerCase())}var Bxf;var wtu=g(()=>{Bxf=new Set([".well-known","_admin","api","auth","cli","commerce-onboarding","dbos-queue-depth","health","hosted-run-pending","login","mcp","metrics","oauth","oauth-proxy","onboarding","org","report","reset-password"])});import{z as Od}from"zod";var dtu;var mO0=g(()=>{Eu();wtu();dtu=ti({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:Od.object({slug:Od.string().min(1).max(50).regex(/^[a-z0-9-]+$/,"Slug must be lowercase alphanumeric with hyphens").refine((i)=>!J3i(i),"Slug is reserved by Studio"),name:Od.string().min(1).max(255),description:Od.string().optional()}),outputSchema:Od.object({id:Od.string(),name:Od.string(),slug:Od.string(),logo:Od.string().nullable().optional(),metadata:Od.any().optional(),createdAt:Od.string().datetime().describe("ISO 8601 timestamp"),members:Od.array(Od.any()).optional()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=Hu(u);if(!t)throw Error("User ID required to create organization");let f=await u.boundAuth.organization.create({name:i.name,slug:i.slug,metadata:i.description?{description:i.description}:void 0,userId:t});if(!f)throw Error("Failed to create organization");return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as O_}from"zod";var htu;var eO0=g(()=>{Eu();htu=ti({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:O_.object({userId:O_.string().optional()}),outputSchema:O_.object({organizations:O_.array(O_.object({id:O_.string(),name:O_.string(),slug:O_.string(),logo:O_.string().nullable().optional(),metadata:O_.any().optional(),createdAt:O_.string().datetime().describe("ISO 8601 timestamp")}))}),handler:async(i,u)=>{ki(u),await u.access.check();let t=Hu(u),f=i.userId||t;if(!f)throw Error("User ID required to list organizations");return{organizations:(await u.boundAuth.organization.list(f)).map((c)=>({...c,createdAt:c.createdAt instanceof Date?c.createdAt.toISOString():c.createdAt}))}}})});import{z as j3}from"zod";var _tu;var aO0=g(()=>{Eu();_tu=ti({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:j3.object({}),outputSchema:j3.object({id:j3.string(),name:j3.string(),slug:j3.string(),logo:j3.string().nullable().optional(),metadata:j3.any().optional(),createdAt:j3.string().datetime().describe("ISO 8601 timestamp"),members:j3.array(j3.any()).optional(),invitations:j3.array(j3.any()).optional()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.boundAuth.organization.get(t);if(!f)throw Error("No active organization found");let l=new Date,c=f.invitations?.filter((E)=>new Date(E.expiresAt)>l);return{...f,invitations:c,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as N_}from"zod";var vtu;var oO0=g(()=>{Eu();vtu=ti({name:"ORGANIZATION_UPDATE",description:"Update an organization's name or description.",annotations:{title:"Update Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:N_.object({id:N_.string(),name:N_.string().min(1).max(255).optional(),description:N_.string().optional()}),outputSchema:N_.object({id:N_.string(),name:N_.string(),slug:N_.string(),logo:N_.string().nullable().optional(),metadata:N_.any().optional(),createdAt:N_.string().datetime().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{ki(u),await u.access.check();let t={};if(i.name)t.name=i.name;if(i.description)t.metadata={description:i.description};let f=await u.boundAuth.organization.update({organizationId:i.id,data:t});if(!f)throw Error("Failed to update organization");return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as ka}from"zod";var Dtu;var sO0=g(()=>{Eu();Dtu=ti({name:"ORGANIZATION_DELETE",description:"Archive an organization (soft delete).",annotations:{title:"Delete Organization",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:ka.object({id:ka.string()}),outputSchema:ka.object({success:ka.boolean(),id:ka.string()}),handler:async(i,u)=>{return ki(u),await u.access.check(),await u.boundAuth.organization.update({organizationId:i.id,data:{metadata:{archived:!0,archivedAt:new Date().toISOString()}}}),{success:!0,id:i.id}}})});import{z as M0}from"zod";var Ga,Sa,Pz,pO0,X3i,ja,Ka,hg;var Un=g(()=>{Ga=M0.object({title:M0.string(),url:M0.string(),icon:M0.string()}),Sa=M0.object({registries:M0.record(M0.string(),M0.object({enabled:M0.boolean()})).describe("Per-registry enabled/disabled state. Key is connection ID. Absent registries are treated as enabled."),blockedMcps:M0.array(M0.string()).describe("List of MCP app_name or app_id values to hide from the store.")}),Pz=M0.object({keyId:M0.string(),modelId:M0.string(),title:M0.string().optional()}).nullable(),pO0=M0.enum(["fast","smart","thinking","image","web_search","deep_research"]),X3i=M0.enum(["fast","smart","thinking"]),ja=M0.object({tiers:M0.object({fast:Pz,smart:Pz,thinking:Pz,image:Pz,web_search:Pz,deep_research:Pz})}),Ka=M0.object({ids:M0.array(M0.string()).describe("Ordered list of custom virtual MCP agent ids to show on the home view.")}),hg=M0.object({id:M0.string().describe("Brand context ID"),name:M0.string().describe("Company name"),domain:M0.string().describe("Company domain (e.g. example.com)"),overview:M0.string().describe("Company overview / description"),logo:M0.string().nullable().optional().describe("Logo URL"),favicon:M0.string().nullable().optional().describe("Favicon URL"),ogImage:M0.string().nullable().optional().describe("OG image URL"),fonts:M0.object({heading:M0.string().optional().describe("Font family for headings"),body:M0.string().optional().describe("Font family for body text"),code:M0.string().optional().describe("Font family for code / monospace")}).nullable().optional().describe("Font families by semantic role"),colors:M0.object({primary:M0.string().optional().describe("Primary brand color (hex)"),secondary:M0.string().optional().describe("Secondary brand color (hex)"),accent:M0.string().optional().describe("Accent / highlight color (hex)"),background:M0.string().optional().describe("Background color (hex)"),foreground:M0.string().optional().describe("Foreground / text color (hex)")}).nullable().optional().describe("Semantic color palette"),images:M0.array(M0.record(M0.string(),M0.unknown())).nullable().optional().describe("Brand images"),metadata:M0.record(M0.string(),M0.unknown()).nullable().optional().describe("Extra design tokens (typography, components, spacing, layout, tone, etc.)"),archivedAt:M0.string().nullable().optional().describe("Archive timestamp (null to unarchive)"),isDefault:M0.boolean().optional().describe("Whether this is the default brand for the organization")})});import{z as u5}from"zod";var ntu;var iN0=g(()=>{Eu();Un();ntu=ti({name:"ORGANIZATION_SETTINGS_GET",description:"Get organization-level settings including sidebar configuration, store registry settings, simple model mode, and default home agents.",annotations:{title:"Get Organization Settings",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:u5.object({}),outputSchema:u5.object({organizationId:u5.string(),sidebar_items:u5.array(Ga).nullable().optional(),enabled_plugins:u5.array(u5.string()).nullable().optional(),registry_config:Sa.nullable().optional(),simple_mode:ja.nullable().optional(),default_home_agents:Ka.nullable().optional(),reports_only:u5.boolean().nullable().optional(),task_board_enabled:u5.boolean().optional(),createdAt:u5.string().datetime().optional().describe("ISO 8601 timestamp"),updatedAt:u5.string().datetime().optional().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.storage.organizationSettings.get(t);if(!f)return{organizationId:t};return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt,updatedAt:f.updatedAt instanceof Date?f.updatedAt.toISOString():f.updatedAt}}})});import{z as AE}from"zod";var gtu;var uN0=g(()=>{Eu();Un();gtu=ti({name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization-level settings such as sidebar configuration, store registry settings, simple model mode, and default home agents.",annotations:{title:"Update Organization Settings",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:AE.object({organizationId:AE.string(),sidebar_items:AE.array(Ga).optional(),enabled_plugins:AE.array(AE.string()).optional(),registry_config:Sa.optional(),simple_mode:ja.optional(),default_home_agents:Ka.optional(),reports_only:AE.boolean().optional(),task_board_enabled:AE.boolean().optional()}),outputSchema:AE.object({organizationId:AE.string(),sidebar_items:AE.array(Ga).nullable().optional(),enabled_plugins:AE.array(AE.string()).nullable().optional(),registry_config:Sa.nullable().optional(),simple_mode:ja.nullable().optional(),default_home_agents:Ka.nullable().optional(),reports_only:AE.boolean().nullable().optional(),task_board_enabled:AE.boolean().optional(),createdAt:AE.string().datetime().describe("ISO 8601 timestamp"),updatedAt:AE.string().datetime().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{if(ki(u),await u.access.check(),u.organization&&u.organization.id!==i.organizationId)throw Error("Cannot update settings for a different organization");let t=await u.storage.organizationSettings.upsert(i.organizationId,{sidebar_items:i.sidebar_items,enabled_plugins:i.enabled_plugins,registry_config:i.registry_config,simple_mode:i.simple_mode,default_home_agents:i.default_home_agents,reports_only:i.reports_only,task_board_enabled:i.task_board_enabled});return{...t,createdAt:t.createdAt instanceof Date?t.createdAt.toISOString():t.createdAt,updatedAt:t.updatedAt instanceof Date?t.updatedAt.toISOString():t.updatedAt}}})});import{z as y_}from"zod";var tN0,Otu,Ntu;var fN0=g(()=>{Eu();Un();tN0=hg.extend({organizationId:y_.string(),archivedAt:y_.string().nullable().optional().describe("ISO 8601 timestamp"),createdAt:y_.string().describe("ISO 8601 timestamp"),updatedAt:y_.string().describe("ISO 8601 timestamp")}),Otu=ti({name:"BRAND_CONTEXT_LIST",description:"List all brand contexts (company profiles) for the current organization.",annotations:{title:"List Brand Contexts",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:y_.object({includeArchived:y_.boolean().optional().describe("Include archived brands in the list")}),outputSchema:y_.object({items:y_.array(tN0)}),handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");return{items:(await u.storage.brandContext.list(t,{includeArchived:i.includeArchived})).map((l)=>({...l,archivedAt:l.archivedAt instanceof Date?l.archivedAt.toISOString():l.archivedAt,createdAt:l.createdAt instanceof Date?l.createdAt.toISOString():l.createdAt,updatedAt:l.updatedAt instanceof Date?l.updatedAt.toISOString():l.updatedAt}))}}}),Ntu=ti({name:"BRAND_CONTEXT_GET",description:"Get a specific brand context by ID.",annotations:{title:"Get Brand Context",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:y_.object({id:y_.string().describe("Brand context ID")}),outputSchema:tN0.extend({organizationId:y_.string()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.storage.brandContext.get(i.id,t);if(!f)throw Error("Brand context not found");return{...f,archivedAt:f.archivedAt instanceof Date?f.archivedAt.toISOString():f.archivedAt,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt,updatedAt:f.updatedAt instanceof Date?f.updatedAt.toISOString():f.updatedAt}}})});import{z as Vy}from"zod";var lN0,ytu,Ztu,Ttu;var cN0=g(()=>{Eu();Un();lN0=hg.extend({organizationId:Vy.string(),createdAt:Vy.string().describe("ISO 8601 timestamp"),updatedAt:Vy.string().describe("ISO 8601 timestamp")}),ytu=ti({name:"BRAND_CONTEXT_CREATE",description:"Create a new brand context (company profile) for the current organization.",annotations:{title:"Create Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:hg.omit({id:!0}),outputSchema:lN0,handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.storage.brandContext.create(t,{name:i.name,domain:i.domain,overview:i.overview,logo:i.logo??null,favicon:i.favicon??null,ogImage:i.ogImage??null,fonts:i.fonts??null,colors:i.colors??null,images:i.images??null,metadata:i.metadata??null});return{...f,archivedAt:f.archivedAt instanceof Date?f.archivedAt.toISOString():f.archivedAt,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt,updatedAt:f.updatedAt instanceof Date?f.updatedAt.toISOString():f.updatedAt}}}),Ztu=ti({name:"BRAND_CONTEXT_UPDATE",description:"Update an existing brand context by ID.",annotations:{title:"Update Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:hg.partial().required({id:!0}),outputSchema:lN0,handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(!await u.storage.brandContext.get(i.id,t))throw Error("Brand context not found");let{id:l,...c}=i;if(c.isDefault===!0)await u.storage.brandContext.setDefault(l,t);let E=await u.storage.brandContext.update(l,t,{name:c.name,domain:c.domain,overview:c.overview,logo:c.logo!==void 0?c.logo??null:void 0,favicon:c.favicon!==void 0?c.favicon??null:void 0,ogImage:c.ogImage!==void 0?c.ogImage??null:void 0,fonts:c.fonts!==void 0?c.fonts??null:void 0,colors:c.colors!==void 0?c.colors??null:void 0,images:c.images!==void 0?c.images??null:void 0,metadata:c.metadata!==void 0?c.metadata??null:void 0,archivedAt:c.archivedAt!==void 0?c.archivedAt??null:void 0,isDefault:c.isDefault===!1?!1:void 0});return{...E,archivedAt:E.archivedAt instanceof Date?E.archivedAt.toISOString():E.archivedAt,createdAt:E.createdAt instanceof Date?E.createdAt.toISOString():E.createdAt,updatedAt:E.updatedAt instanceof Date?E.updatedAt.toISOString():E.updatedAt}}}),Ttu=ti({name:"BRAND_CONTEXT_DELETE",description:"Archive a brand context by ID (soft delete).",annotations:{title:"Archive Brand Context",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Vy.object({id:Vy.string().describe("Brand context ID")}),outputSchema:Vy.object({success:Vy.boolean()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(!await u.storage.brandContext.get(i.id,t))throw Error("Brand context not found");return await u.storage.brandContext.update(i.id,t,{archivedAt:new Date().toISOString(),isDefault:!1}),{success:!0}}})});async function L3i(i,u,t){let f=i.trim();if(!f.startsWith("http"))f=`https://${f}`;let l=await fetch("https://api.firecrawl.dev/v1/scrape",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${u}`},body:JSON.stringify({url:f,formats:["branding"]})});if(!l.ok){let v=await l.text().catch(()=>"");throw Error(`Firecrawl API error: ${l.status} ${v.slice(0,200)}`)}let c=await l.json();if(!c.success||!c.data?.branding)return null;let E=c.data.branding,$=c.data.metadata??{},w=Pxf(E,$);return{name:$.title?.split(/[|\u2013\u2014]|\s+-\s+/).map((v)=>v.trim()).filter(Boolean)?.slice().sort((v,D)=>v.length-D.length)[0]??$.ogSiteName??t??i,domain:i,overview:$.description??"",logo:w.logo,favicon:w.favicon,ogImage:w.ogImage,fonts:w.fonts,colors:w.colors,images:null,metadata:Object.keys(w.metadata).length>0?w.metadata:null}}function Pxf(i,u){let t=i.images??{},f=i.colors??{},l={};for(let[h,_]of Object.entries(f))if(typeof _==="string"&&_&&Fxf.has(h))l[h]=_;let c={},$=(i.typography??{}).fontFamilies??{};for(let[h,_]of Object.entries($))if(typeof _==="string"&&_){let v=Uxf[h.toLowerCase()];if(v&&!c[v])c[v]=_}let w=i.fonts;if(Array.isArray(w))for(let h of w){let _=h.family;if(typeof _==="string"&&_&&!c.body)c.body=_}let d={};for(let h of["typography","components","spacing","layout","animations","icons","tone","personality","colorScheme"])if(i[h]!==void 0)d[h]=i[h];return{logo:t.logo??null,favicon:t.favicon??null,ogImage:t.ogImage??u.ogImage??null,fonts:Object.keys(c).length>0?c:null,colors:Object.keys(l).length>0?l:null,metadata:d}}var Fxf,Uxf;var Btu=g(()=>{Fxf=new Set(["primary","secondary","accent","background","foreground"]),Uxf={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"}});import{z as W3i}from"zod";var Axf,Ftu;var EN0=g(()=>{Eu();Btu();Un();Axf=hg.pick({id:!0,name:!0,domain:!0,overview:!0,logo:!0,favicon:!0,ogImage:!0,fonts:!0,colors:!0}).extend({success:W3i.boolean()}),Ftu=ti({name:"BRAND_CONTEXT_EXTRACT",description:"Extract brand context (colors, fonts, logos) from a website URL using Firecrawl.",annotations:{title:"Extract Brand Context",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:W3i.object({domain:W3i.string().describe("Website domain to extract brand from"),brandId:W3i.string().optional().describe("Existing brand context ID to update (creates new if omitted)")}),outputSchema:Axf,modelSummary:(i)=>i.success?`Brand saved (id=${i.id}, name=${i.name}, domain=${i.domain}). The UI rendered the logo, colors, fonts, and overview.`:"Brand extraction failed.",handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=u.firecrawlApiKey;if(!f)throw Error("FIRECRAWL_API_KEY is not configured. Set the environment variable to enable brand extraction.");let l=await L3i(i.domain,f,i.domain);if(!l)throw Error("Firecrawl did not return branding data for this URL");let c={name:l.name,domain:l.domain,overview:l.overview,logo:l.logo,favicon:l.favicon,ogImage:l.ogImage,fonts:l.fonts,colors:l.colors,images:l.images,metadata:l.metadata},E=i.brandId?await(async()=>{if(!await u.storage.brandContext.get(i.brandId,t))throw Error("Brand context not found");return u.storage.brandContext.update(i.brandId,t,c)})():await u.storage.brandContext.create(t,c);return{id:E.id,name:E.name,domain:E.domain,overview:E.overview,logo:E.logo,favicon:E.favicon,ogImage:E.ogImage,fonts:E.fonts,colors:E.colors,success:!0}}})});function $N0(i){let u=i.metadata??{};return{id:i.id,name:i.name,domain:i.domain||void 0,colors:i.colors??void 0,fonts:i.fonts??void 0,assets:i.logo||i.favicon||i.ogImage?{logo:i.logo??void 0,favicon:i.favicon??void 0,ogImage:i.ogImage??void 0}:void 0,overview:i.overview||void 0,tagline:typeof u.tagline==="string"?u.tagline:void 0,tone:typeof u.tone==="string"?u.tone:void 0,metadata:(()=>{let t=Object.fromEntries(Object.entries(u).filter(([f])=>f!=="tagline"&&f!=="tone"));return Object.keys(t).length>0?t:void 0})()}}var Utu,Ptu;var wN0=g(()=>{W0u();Eu();Utu=ti({name:"BRAND_GET",description:"Get a brand context by ID. Omit the ID to get the default brand for the organization.",annotations:{title:"Get Brand",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:A3i,outputSchema:Aa,handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=i.id?await u.storage.brandContext.get(i.id,t):await u.storage.brandContext.getDefault(t);if(!f)throw Error(i.id?"Brand not found":"No default brand configured");return $N0(f)}}),Ptu=ti({name:"BRAND_LIST",description:"List all active brands for the current organization.",annotations:{title:"List Brands",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:I3i,outputSchema:x3i,handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");return{items:(await u.storage.brandContext.list(t)).map($N0)}}})});import{resolveTxt as Ixf}from"dns/promises";function Atu(i){return`${xxf}.${i.toLowerCase()}`}function dN0(){return`deco-verify-${crypto.randomUUID().replace(/-/g,"")}`}async function hN0(i,u,t=Ixf){if(!u)return!1;try{return(await t(Atu(i))).some((l)=>l.join("").trim()===u)}catch{return!1}}var xxf="_deco-verify";var _N0=()=>{};import{z as Ql}from"zod";function _g(i){let u=i.verificationStatus==="pending"&&Boolean(i.verificationToken);return{id:i.id,domain:i.domain,joinMode:i.joinMode,verificationStatus:i.verificationStatus,verificationMethod:i.verificationMethod,verifiedAt:i.verifiedAt?new Date(i.verifiedAt).toISOString():null,recordName:u?Atu(i.domain):null,recordValue:u?i.verificationToken:null}}function Gxf(i){let u=i.toLowerCase().trim();if(!kxf.test(u))throw Error(`Invalid domain format: "${u}". Must be a valid domain like "acme.com"`);if(Z_.has(u))throw Error(`Cannot claim generic email domain "${u}". Only corporate domains are allowed.`);return u}var kxf,Itu,Y3i,xtu,ktu,Gtu,Stu,jtu;var vN0=g(()=>{K3();_N0();Eu();kxf=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,Itu=Ql.enum(["off","auto","request"]),Y3i=Ql.object({id:Ql.string(),domain:Ql.string(),joinMode:Itu,verificationStatus:Ql.enum(["pending","verified"]),verificationMethod:Ql.enum(["email","dns"]).nullable(),verifiedAt:Ql.string().nullable(),recordName:Ql.string().nullable(),recordValue:Ql.string().nullable()});xtu=ti({name:"ORGANIZATION_DOMAIN_LIST",description:"List the email domains claimed by an organization.",annotations:{title:"List Organization Domains",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Ql.object({}),outputSchema:Ql.object({domains:Ql.array(Y3i)}),handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u);return{domains:(await u.storage.organizationDomains.listByOrganizationId(t.id)).map(_g)}}}),ktu=ti({name:"ORGANIZATION_DOMAIN_ADD",description:"Claim an email domain for an organization. If the caller's verified email matches the domain it is trusted immediately; otherwise it requires DNS verification.",annotations:{title:"Add Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Ql.object({domain:Ql.string().min(1).max(255).describe("Domain to claim, e.g. acme.com"),joinMode:Itu.optional().describe("Initial join mode (only applied when the domain is trusted immediately via email match).")}),outputSchema:Y3i,handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u),f=Gxf(i.domain),c=u.auth.user?.email?.split("@")[1]?.toLowerCase(),E=Boolean(u.auth.user?.emailVerified)&&c===f,$=await u.storage.organizationDomains.getByOrgAndDomain(t.id,f);if($){if($.verificationStatus!=="verified"&&E){let d=await u.storage.organizationDomains.markVerified($.id,"email");return _g(d)}return _g($)}let w=E?await u.storage.organizationDomains.add(t.id,f,{joinMode:i.joinMode??"off",verificationStatus:"verified",verificationMethod:"email"}):await u.storage.organizationDomains.add(t.id,f,{joinMode:"off",verificationStatus:"pending",verificationToken:dN0()});return _g(w)}}),Gtu=ti({name:"ORGANIZATION_DOMAIN_UPDATE",description:"Set the join mode for a claimed domain. Discoverable modes (auto/request) require the domain to be verified.",annotations:{title:"Update Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:Ql.object({id:Ql.string(),joinMode:Itu}),outputSchema:Y3i,handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u),f=await u.storage.organizationDomains.getById(i.id);if(!f||f.organizationId!==t.id)throw Error("Domain not found");if(i.joinMode!=="off"&&f.verificationStatus!=="verified")throw Error("Verify the domain before enabling auto-join or requests.");let l=await u.storage.organizationDomains.updateJoinMode(i.id,i.joinMode);return _g(l)}}),Stu=ti({name:"ORGANIZATION_DOMAIN_VERIFY",description:"Check the DNS TXT record for a pending domain and mark it verified if present.",annotations:{title:"Verify Organization Domain",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},inputSchema:Ql.object({id:Ql.string()}),outputSchema:Ql.object({verified:Ql.boolean(),domain:Y3i}),handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u),f=await u.storage.organizationDomains.getById(i.id);if(!f||f.organizationId!==t.id)throw Error("Domain not found");if(f.verificationStatus==="verified")return{verified:!0,domain:_g(f)};if(!f.verificationToken)throw Error("Domain has no pending DNS verification.");if(!await hN0(f.domain,f.verificationToken))return{verified:!1,domain:_g(f)};let c=await u.storage.organizationDomains.markVerified(i.id,"dns");return{verified:!0,domain:_g(c)}}}),jtu=ti({name:"ORGANIZATION_DOMAIN_REMOVE",description:"Remove a claimed domain from an organization.",annotations:{title:"Remove Organization Domain",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Ql.object({id:Ql.string()}),outputSchema:Ql.object({success:Ql.boolean()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u),f=await u.storage.organizationDomains.getById(i.id);if(!f||f.organizationId!==t.id)throw Error("Domain not found");return await u.storage.organizationDomains.removeById(i.id),{success:!0}}})});function vg(i){return(i instanceof Error?i.message.toLowerCase():"").includes("already a member")}import{z as W1}from"zod";var Sxf,Ktu,Jtu,Xtu;var DN0=g(()=>{Eu();H4();Sxf=W1.object({id:W1.string(),userId:W1.string(),status:W1.enum(["pending","approved","denied"]),createdAt:W1.string(),user:W1.object({id:W1.string(),name:W1.string(),email:W1.string(),image:W1.string().nullable()}).nullable()}),Ktu=ti({name:"ORGANIZATION_JOIN_REQUEST_LIST",description:"List pending requests to join the organization.",annotations:{title:"List Join Requests",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:W1.object({}),outputSchema:W1.object({requests:W1.array(Sxf)}),handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u);return{requests:(await u.storage.organizationJoinRequests.listPendingWithUser(t.id)).map((l)=>({id:l.id,userId:l.userId,status:l.status,createdAt:new Date(l.createdAt).toISOString(),user:l.user}))}}}),Jtu=ti({name:"ORGANIZATION_JOIN_REQUEST_APPROVE",description:"Approve a pending join request, adding the user as a member.",annotations:{title:"Approve Join Request",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:W1.object({requestId:W1.string()}),outputSchema:W1.object({success:W1.boolean()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u),f=await u.storage.organizationJoinRequests.getById(i.requestId);if(!f||f.organizationId!==t.id)throw Error("Join request not found");if(f.status!=="pending")throw Error("Join request has already been decided");let l=Hu(u);if(!await u.storage.organizationJoinRequests.decide(f.id,"approved",l??f.userId))return{success:!0};try{await u.boundAuth.organization.addMember({organizationId:t.id,userId:f.userId,role:["user"]})}catch(E){if(!vg(E))throw E}if(l)mu.capture({distinctId:l,event:"organization_join_request_approved",groups:{organization:t.id},properties:{organization_id:t.id,user_id:f.userId}});return{success:!0}}}),Xtu=ti({name:"ORGANIZATION_JOIN_REQUEST_DENY",description:"Deny a pending join request.",annotations:{title:"Deny Join Request",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:W1.object({requestId:W1.string()}),outputSchema:W1.object({success:W1.boolean()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=yi(u),f=await u.storage.organizationJoinRequests.getById(i.requestId);if(!f||f.organizationId!==t.id)throw Error("Join request not found");if(f.status!=="pending")throw Error("Join request has already been decided");let l=Hu(u);if(await u.storage.organizationJoinRequests.decide(f.id,"denied",l??f.userId)&&l)mu.capture({distinctId:l,event:"organization_join_request_denied",groups:{organization:t.id},properties:{organization_id:t.id,user_id:f.userId}});return{success:!0}}})});import{z as dw}from"zod";var Ltu;var nN0=g(()=>{H4();Eu();t_();Ltu=ti({name:"ORGANIZATION_MEMBER_ADD",description:"Invite a member to the organization by email with an assigned role.",annotations:{title:"Add Organization Member",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:dw.object({organizationId:dw.string().optional(),userId:dw.string(),role:dw.array(dw.string())}),outputSchema:dw.object({id:dw.string(),organizationId:dw.string(),userId:dw.string(),role:dw.union([dw.string(),dw.array(dw.string())]),createdAt:dw.string().datetime().describe("ISO 8601 timestamp")}),handler:async(i,u)=>{ki(u),await u.access.check();let t=i.organizationId||u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(t!==u.organization?.id)throw Error("Organization ID does not match authenticated organization");if(!Gwi(u.auth.user?.role,i.role))throw Error(`Insufficient privileges to assign role "${i.role.join(",")}"`);let f=await u.boundAuth.organization.addMember({organizationId:t,userId:i.userId,role:i.role});if(!f)throw Error("Failed to add member");let l=Hu(u);if(l)mu.capture({distinctId:l,event:"organization_member_added",groups:{organization:t},properties:{organization_id:t,added_user_id:i.userId,role:i.role}});return{...f,role:f.role,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});import{z as Az}from"zod";var Wtu;var gN0=g(()=>{H4();Eu();Wtu=ti({name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove a member from the organization. Revokes all their access immediately.",annotations:{title:"Remove Organization Member",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:Az.object({organizationId:Az.string().optional(),memberIdOrEmail:Az.string()}),outputSchema:Az.object({success:Az.boolean(),memberIdOrEmail:Az.string()}),handler:async(i,u)=>{ki(u),await u.access.check();let t=i.organizationId||u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");await u.boundAuth.organization.removeMember({organizationId:t,memberIdOrEmail:i.memberIdOrEmail});let f=Hu(u);if(f)mu.capture({distinctId:f,event:"organization_member_removed",groups:{organization:t},properties:{organization_id:t,member_id_or_email:i.memberIdOrEmail}});return{success:!0,memberIdOrEmail:i.memberIdOrEmail}}})});import{z as IE}from"zod";var Ytu;var ON0=g(()=>{Eu();Ytu=ti({name:"ORGANIZATION_MEMBER_LIST",description:"List all members in the organization with their roles.",annotations:{title:"List Organization Members",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:IE.object({limit:IE.number().optional(),offset:IE.number().optional()}),outputSchema:IE.object({members:IE.array(IE.object({id:IE.string(),organizationId:IE.string(),userId:IE.string(),role:IE.string(),createdAt:IE.string().datetime().describe("ISO 8601 timestamp"),user:IE.object({id:IE.string(),name:IE.string(),email:IE.string(),image:IE.string().optional()}).optional()}))}),handler:async(i,u)=>{ki(u),await u.access.check();let t=u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");let f=await u.boundAuth.organization.listMembers({organizationId:t,limit:i.limit,offset:i.offset});return{members:(Array.isArray(f)?f:[]).map((c)=>({...c,createdAt:c.createdAt instanceof Date?c.createdAt.toISOString():c.createdAt}))}}})});import{z as pc}from"zod";var Qtu;var NN0=g(()=>{H4();Eu();t_();Qtu=ti({name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Change a member's role (e.g., admin, member) within the organization.",annotations:{title:"Update Member Role",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!1},inputSchema:pc.object({organizationId:pc.string().optional(),memberId:pc.string(),role:pc.array(pc.string())}),outputSchema:pc.object({id:pc.string(),organizationId:pc.string(),userId:pc.string(),role:pc.union([pc.literal("admin"),pc.literal("member"),pc.literal("owner")]),createdAt:pc.string().datetime().describe("ISO 8601 timestamp"),user:pc.object({email:pc.string(),name:pc.string(),image:pc.string().optional()})}),handler:async(i,u)=>{ki(u),await u.access.check();let t=i.organizationId||u.organization?.id;if(!t)throw Error("Organization ID required (no active organization in context)");if(!Gwi(u.auth.user?.role,i.role))throw Error(`Insufficient privileges to assign role "${i.role.join(",")}"`);let f=await u.boundAuth.organization.updateMemberRole({organizationId:t,memberId:i.memberId,role:i.role});if(!f)throw Error("Failed to update member role");u.invalidateMemberRole?.(f.userId,t);let l=Hu(u);if(l)mu.capture({distinctId:l,event:"organization_member_role_updated",groups:{organization:t},properties:{organization_id:t,member_id:i.memberId,target_user_id:f.userId,new_role:Array.isArray(i.role)?i.role.join(","):i.role}});return{...f,createdAt:f.createdAt instanceof Date?f.createdAt.toISOString():f.createdAt}}})});var yN0=g(()=>{mO0();eO0();aO0();oO0();sO0();iN0();uN0();fN0();cN0();EN0();wN0();vN0();DN0();nN0();gN0();ON0();NN0()});var Nd="super-agent",ZN0="task-board.item.updated",TN0="task-board.item.deleted";import{z as mf}from"zod";var Ja,ry,Kxf,BN0,Iz;var my=g(()=>{Ja=mf.enum(["triage","todo","in_progress","in_review","done"]),ry=mf.enum(["none","low","medium","high","urgent"]),Kxf=mf.object({threadId:mf.string(),virtualMcpId:mf.string().nullable(),status:mf.enum(["in_progress","requires_action","failed","completed","expired"]).nullable(),title:mf.string().nullable(),lastMessage:mf.string().nullable(),hasPreview:mf.boolean(),createdAt:mf.string()}),BN0=mf.object({url:mf.string(),number:mf.number(),repoOwner:mf.string(),repoName:mf.string(),createdAt:mf.string(),title:mf.string().nullable(),body:mf.string().nullable(),state:mf.enum(["open","closed"]).nullable(),draft:mf.boolean().nullable(),merged:mf.boolean().nullable()}),Iz=mf.object({id:mf.string(),organizationId:mf.string(),title:mf.string(),description:mf.string().nullable(),status:Ja,priority:ry,assigneeId:mf.string().nullable(),assignedBy:mf.string().nullable(),dueDate:mf.string().datetime().nullable(),threads:mf.array(Kxf),createdBy:mf.string(),createdAt:mf.string().datetime(),updatedBy:mf.string(),updatedAt:mf.string().datetime()})});async function Q3i(i,u,t){if(t===Nd)return;let{members:f}=await i.boundAuth.organization.listMembers({organizationId:u,filterField:"userId",filterValue:t});if(!f.some((l)=>l.userId===t))throw Error("assigneeId is not a member of the organization")}var ztu=g(()=>{my()});async function t5(i,u){if(!(await i.storage.organizationSettings.get(u))?.task_board_enabled)throw Error("Task board is not enabled for this organization")}async function Htu(i,u,t){let f;try{return await Promise.race([i.aiProviders.listModels(u,t),new Promise((c,E)=>{f=setTimeout(()=>E(Error("listModels timeout")),Jxf)})])}finally{if(f)clearTimeout(f)}}function Xxf(i,u){switch(i){case"fast":return u.chat.fast;case"smart":return u.chat.smart;case"thinking":return u.chat.thinking;case"image":return u.image;case"web_search":return u.webSearch;case"deep_research":return u.deepResearch}}function Rtu(i,u,t){let f=i.find((l)=>l.modelId===u);return{title:f?.title??t??u,providerId:f?.providerId,capabilities:f?.capabilities,limits:f?.limits??null}}async function T_(i,u){let t=i.organization?.id;if(!t)throw Error("resolveTier called without an organization");let l=(await i.storage.organizationSettings.get(t))?.simple_mode?.tiers?.[u]??null,c=await i.storage.aiProviderKeys.list({organizationId:t});if(l&&c.some((h)=>h.id===l.keyId)){let h=await Htu(i,l.keyId,t).catch(()=>[]);return{credentialId:l.keyId,modelId:l.modelId,modelMeta:Rtu(h,l.modelId,l.title)}}if(c.length===0)throw new xz(u);let E={};await Promise.all(c.map(async(h)=>{E[h.id]=await Htu(i,h.id,t).catch(()=>[])}));let $=c.map((h)=>({id:h.id,providerId:h.providerId,label:h.label,presetId:h.presetId,createdBy:h.createdBy,createdAt:h.createdAt})),w=Bmi($,E),d=Xxf(u,w);if(!d)throw new xz(u);return{credentialId:d.keyId,modelId:d.modelId,modelMeta:Rtu(E[d.keyId]??[],d.modelId,d.title)}}async function FN0(i,u,t){let f=i.organization?.id;if(!f)throw Error("resolveSpecificModel called without an organization");let l=await Htu(i,u,f).catch(()=>[]);return{credentialId:u,modelId:t,modelMeta:Rtu(l,t)}}async function J3(i,u){try{return await T_(i,u)}catch(t){if(t instanceof xz)return null;return console.warn(`[resolveTier] tier "${u}" resolution failed:`,t),null}}var xz,Jxf=5000;var kz=g(()=>{jt();xz=class xz extends Error{tier;constructor(i){super(`No model available for tier "${i}". Connect a provider or configure the tier in organization settings.`);this.tier=i;this.name="TierUnavailableError"}}});function z3i(i){return i.sandboxProviderKind==="agent-sandbox"&&i.harnessId==="decopilot"}function UN0(i){return i.harnessId==="decopilot"&&(i.sandboxProviderKind==null||i.sandboxProviderKind==="agent-sandbox")}function Wxf(i){return{type:"data-run-status",id:"run-status",data:{stage:i}}}function PN0(i){if(!i||typeof i!=="object")return!1;return i.type==="data-run-status"}async function Pn(i,u,t){if(!i)return;try{await i.publishRawChunk(u,Wxf(t))}catch{}}var Lxf,Xa,ysl;var La=g(()=>{Lxf=["waiting-runner","starting-run","gathering-context","preparing-tools","starting-assistant","analyzing-scope"],Xa=["gathering-context","preparing-tools","starting-assistant","analyzing-scope"],ysl=new Set(Lxf)});function H3i(){return crypto.randomUUID()}var Ctu=K((Bsl,xN0)=>{var{defineProperty:btu,getOwnPropertyDescriptor:Yxf,getOwnPropertyNames:Qxf}=Object,zxf=Object.prototype.hasOwnProperty,Hxf=(i,u)=>{for(var t in u)btu(i,t,{get:u[t],enumerable:!0})},Rxf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Qxf(u))if(!zxf.call(i,l)&&l!==t)btu(i,l,{get:()=>u[l],enumerable:!(f=Yxf(u,l))||f.enumerable})}return i},bxf=(i)=>Rxf(btu({},"__esModule",{value:!0}),i),AN0={};Hxf(AN0,{SYMBOL_FOR_REQ_CONTEXT:()=>IN0,getContext:()=>Cxf});xN0.exports=bxf(AN0);var IN0=Symbol.for("@vercel/request-context");function Cxf(){return globalThis[IN0]?.get?.()??{}}});var Wa=K((Fsl,SN0)=>{var{defineProperty:Mtu,getOwnPropertyDescriptor:Mxf,getOwnPropertyNames:qxf}=Object,Vxf=Object.prototype.hasOwnProperty,rxf=(i,u)=>{for(var t in u)Mtu(i,t,{get:u[t],enumerable:!0})},mxf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of qxf(u))if(!Vxf.call(i,l)&&l!==t)Mtu(i,l,{get:()=>u[l],enumerable:!(f=Mxf(u,l))||f.enumerable})}return i},exf=(i)=>mxf(Mtu({},"__esModule",{value:!0}),i),kN0={};rxf(kN0,{VercelOidcTokenError:()=>GN0});SN0.exports=exf(kN0);class GN0 extends Error{constructor(i,u){super(i);this.name="VercelOidcTokenError",this.cause=u}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var XN0=K((Usl,JN0)=>{var{create:axf,defineProperty:R3i,getOwnPropertyDescriptor:oxf,getOwnPropertyNames:sxf,getPrototypeOf:pxf}=Object,ikf=Object.prototype.hasOwnProperty,ukf=(i,u)=>{for(var t in u)R3i(i,t,{get:u[t],enumerable:!0})},jN0=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of sxf(u))if(!ikf.call(i,l)&&l!==t)R3i(i,l,{get:()=>u[l],enumerable:!(f=oxf(u,l))||f.enumerable})}return i},Vtu=(i,u,t)=>(t=i!=null?axf(pxf(i)):{},jN0(u||!i||!i.__esModule?R3i(t,"default",{value:i,enumerable:!0}):t,i)),tkf=(i)=>jN0(R3i({},"__esModule",{value:!0}),i),KN0={};ukf(KN0,{findRootDir:()=>ckf,getUserDataDir:()=>Ekf});JN0.exports=tkf(KN0);var Ya=Vtu(Ni("path")),fkf=Vtu(Ni("fs")),qtu=Vtu(Ni("os")),lkf=Wa();function ckf(){try{let i=process.cwd();while(i!==Ya.default.dirname(i)){let u=Ya.default.join(i,".vercel");if(fkf.default.existsSync(u))return i;i=Ya.default.dirname(i)}}catch(i){throw new lkf.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function Ekf(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(qtu.default.platform()){case"darwin":return Ya.default.join(qtu.default.homedir(),"Library/Application Support");case"linux":return Ya.default.join(qtu.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var RN0=K((Psl,HN0)=>{var{create:$kf,defineProperty:b3i,getOwnPropertyDescriptor:wkf,getOwnPropertyNames:dkf,getPrototypeOf:hkf}=Object,_kf=Object.prototype.hasOwnProperty,vkf=(i,u)=>{for(var t in u)b3i(i,t,{get:u[t],enumerable:!0})},LN0=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of dkf(u))if(!_kf.call(i,l)&&l!==t)b3i(i,l,{get:()=>u[l],enumerable:!(f=wkf(u,l))||f.enumerable})}return i},WN0=(i,u,t)=>(t=i!=null?$kf(hkf(i)):{},LN0(u||!i||!i.__esModule?b3i(t,"default",{value:i,enumerable:!0}):t,i)),Dkf=(i)=>LN0(b3i({},"__esModule",{value:!0}),i),YN0={};vkf(YN0,{isValidAccessToken:()=>Nkf,readAuthConfig:()=>gkf,writeAuthConfig:()=>Okf});HN0.exports=Dkf(YN0);var Qa=WN0(Ni("fs")),QN0=WN0(Ni("path")),nkf=za();function zN0(){let i=(0,nkf.getVercelDataDir)();if(!i)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return QN0.join(i,"auth.json")}function gkf(){try{let i=zN0();if(!Qa.existsSync(i))return null;let u=Qa.readFileSync(i,"utf8");if(!u)return null;return JSON.parse(u)}catch(i){return null}}function Okf(i){let u=zN0(),t=QN0.dirname(u);if(!Qa.existsSync(t))Qa.mkdirSync(t,{mode:504,recursive:!0});Qa.writeFileSync(u,JSON.stringify(i,null,2),{mode:384})}function Nkf(i,u=0){if(!i.token)return!1;if(typeof i.expiresAt!=="number")return!0;let t=Math.floor(Date.now()/1000),f=u/1000;return i.expiresAt>=t+f}});var qN0=K((Asl,MN0)=>{var{defineProperty:etu,getOwnPropertyDescriptor:ykf,getOwnPropertyNames:Zkf}=Object,Tkf=Object.prototype.hasOwnProperty,Bkf=(i,u)=>{for(var t in u)etu(i,t,{get:u[t],enumerable:!0})},Fkf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Zkf(u))if(!Tkf.call(i,l)&&l!==t)etu(i,l,{get:()=>u[l],enumerable:!(f=ykf(u,l))||f.enumerable})}return i},Ukf=(i)=>Fkf(etu({},"__esModule",{value:!0}),i),bN0={};Bkf(bN0,{processTokenResponse:()=>kkf,refreshTokenRequest:()=>xkf});MN0.exports=Ukf(bN0);var rtu=Ni("os"),Pkf="https://vercel.com",Akf="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",CN0=`@vercel/oidc node-${process.version} ${(0,rtu.platform)()} (${(0,rtu.arch)()}) ${(0,rtu.hostname)()}`,mtu=null;async function Ikf(){if(mtu)return mtu;let i=`${Pkf}/.well-known/openid-configuration`,u=await fetch(i,{headers:{"user-agent":CN0}});if(!u.ok)throw Error("Failed to discover OAuth endpoints");let t=await u.json();if(!t||typeof t.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let f=t.token_endpoint;return mtu=f,f}async function xkf(i){let u=await Ikf();return await fetch(u,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":CN0},body:new URLSearchParams({client_id:Akf,grant_type:"refresh_token",...i})})}async function kkf(i){let u=await i.json();if(!i.ok){let t=typeof u==="object"&&u&&"error"in u?String(u.error):"Token refresh failed";return[Error(t)]}if(typeof u!=="object"||u===null)return[Error("Invalid token response")];if(typeof u.access_token!=="string")return[Error("Missing access_token in response")];if(u.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof u.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,u]}});var otu=K((Isl,eN0)=>{var{defineProperty:atu,getOwnPropertyDescriptor:Gkf,getOwnPropertyNames:Skf}=Object,jkf=Object.prototype.hasOwnProperty,Kkf=(i,u)=>{for(var t in u)atu(i,t,{get:u[t],enumerable:!0})},Jkf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Skf(u))if(!jkf.call(i,l)&&l!==t)atu(i,l,{get:()=>u[l],enumerable:!(f=Gkf(u,l))||f.enumerable})}return i},Xkf=(i)=>Jkf(atu({},"__esModule",{value:!0}),i),VN0={};Kkf(VN0,{AccessTokenMissingError:()=>rN0,RefreshAccessTokenFailedError:()=>mN0});eN0.exports=Xkf(VN0);class rN0 extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login).");this.name="AccessTokenMissingError"}}class mN0 extends Error{constructor(i){super("Failed to refresh authentication token.",{cause:i});this.name="RefreshAccessTokenFailedError"}}});var za=K((xsl,iy0)=>{var{create:Lkf,defineProperty:C3i,getOwnPropertyDescriptor:Wkf,getOwnPropertyNames:Ykf,getPrototypeOf:Qkf}=Object,zkf=Object.prototype.hasOwnProperty,Hkf=(i,u)=>{for(var t in u)C3i(i,t,{get:u[t],enumerable:!0})},oN0=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of Ykf(u))if(!zkf.call(i,l)&&l!==t)C3i(i,l,{get:()=>u[l],enumerable:!(f=Wkf(u,l))||f.enumerable})}return i},sN0=(i,u,t)=>(t=i!=null?Lkf(Qkf(i)):{},oN0(u||!i||!i.__esModule?C3i(t,"default",{value:i,enumerable:!0}):t,i)),Rkf=(i)=>oN0(C3i({},"__esModule",{value:!0}),i),pN0={};Hkf(pN0,{assertVercelOidcTokenResponse:()=>stu,findProjectInfo:()=>qkf,getTokenPayload:()=>mkf,getVercelDataDir:()=>bkf,getVercelOidcToken:()=>Mkf,getVercelToken:()=>Ckf,isExpired:()=>ekf,loadToken:()=>rkf,saveToken:()=>Vkf});iy0.exports=Rkf(pN0);var Ha=sN0(Ni("path")),ey=sN0(Ni("fs")),jz=Wa(),M3i=XN0(),Gz=RN0(),aN0=qN0(),Sz=otu();function bkf(){let u=(0,M3i.getUserDataDir)();if(!u)return null;return Ha.join(u,"com.vercel.cli")}async function Ckf(i){let u=(0,Gz.readAuthConfig)();if(!u?.token)throw new Sz.AccessTokenMissingError;if((0,Gz.isValidAccessToken)(u,i?.expirationBufferMs))return u.token;if(!u.refreshToken)throw(0,Gz.writeAuthConfig)({}),new Sz.RefreshAccessTokenFailedError("No refresh token available");try{let t=await(0,aN0.refreshTokenRequest)({refresh_token:u.refreshToken}),[f,l]=await(0,aN0.processTokenResponse)(t);if(f||!l)throw(0,Gz.writeAuthConfig)({}),new Sz.RefreshAccessTokenFailedError(f);let c={token:l.access_token,expiresAt:Math.floor(Date.now()/1000)+l.expires_in};if(l.refresh_token)c.refreshToken=l.refresh_token;return(0,Gz.writeAuthConfig)(c),c.token}catch(t){if((0,Gz.writeAuthConfig)({}),t instanceof Sz.AccessTokenMissingError||t instanceof Sz.RefreshAccessTokenFailedError)throw t;throw new Sz.RefreshAccessTokenFailedError(t)}}async function Mkf(i,u,t){let f=`https://api.vercel.com/v1/projects/${u}/token?source=vercel-oidc-refresh${t?`&teamId=${t}`:""}`,l=await fetch(f,{method:"POST",headers:{Authorization:`Bearer ${i}`}});if(!l.ok)throw new jz.VercelOidcTokenError(`Failed to refresh OIDC token: ${l.statusText}`);let c=await l.json();return stu(c),c}function stu(i){if(!i||typeof i!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in i)||typeof i.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function qkf(){let i=(0,M3i.findRootDir)();if(!i)throw new jz.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let u=Ha.join(i,".vercel","project.json");if(!ey.existsSync(u))throw new jz.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let t=JSON.parse(ey.readFileSync(u,"utf8"));if(typeof t.projectId!=="string"&&typeof t.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:t.projectId,teamId:t.orgId}}function Vkf(i,u){let t=(0,M3i.getUserDataDir)();if(!t)throw new jz.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let f=Ha.join(t,"com.vercel.token",`${u}.json`),l=JSON.stringify(i);ey.mkdirSync(Ha.dirname(f),{mode:504,recursive:!0}),ey.writeFileSync(f,l),ey.chmodSync(f,432);return}function rkf(i){let u=(0,M3i.getUserDataDir)();if(!u)throw new jz.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let t=Ha.join(u,"com.vercel.token",`${i}.json`);if(!ey.existsSync(t))return null;let f=JSON.parse(ey.readFileSync(t,"utf8"));return stu(f),f}function mkf(i){let u=i.split(".");if(u.length!==3)throw new jz.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let t=u[1].replace(/-/g,"+").replace(/_/g,"/"),f=t.padEnd(t.length+(4-t.length%4)%4,"=");return JSON.parse(Buffer.from(f,"base64").toString("utf8"))}function ekf(i,u=0){return i.exp*1000<Date.now()+u}});var ly0=K((ksl,fy0)=>{var{defineProperty:ptu,getOwnPropertyDescriptor:akf,getOwnPropertyNames:okf}=Object,skf=Object.prototype.hasOwnProperty,pkf=(i,u)=>{for(var t in u)ptu(i,t,{get:u[t],enumerable:!0})},iGf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of okf(u))if(!skf.call(i,l)&&l!==t)ptu(i,l,{get:()=>u[l],enumerable:!(f=akf(u,l))||f.enumerable})}return i},uGf=(i)=>iGf(ptu({},"__esModule",{value:!0}),i),ty0={};pkf(ty0,{refreshToken:()=>tGf});fy0.exports=uGf(ty0);var uy0=Wa(),Dg=za();async function tGf(i){let u=i?.project,t=i?.team;if(!u&&!t){let l=(0,Dg.findProjectInfo)();u=l.projectId,t=l.teamId}else if(!u||!t){let l=(0,Dg.findProjectInfo)();u=u??l.projectId,t=t??l.teamId}if(!u)throw new uy0.VercelOidcTokenError("Failed to refresh OIDC token: No project specified. Try re-linking your project with `vc link`");let f=(0,Dg.loadToken)(u);if(!f||(0,Dg.isExpired)((0,Dg.getTokenPayload)(f.token),i?.expirationBufferMs)){let l=await(0,Dg.getVercelToken)({expirationBufferMs:i?.expirationBufferMs});if(f=await(0,Dg.getVercelOidcToken)(l,u,t),!f)throw new uy0.VercelOidcTokenError("Failed to refresh OIDC token");(0,Dg.saveToken)(f,u)}process.env.VERCEL_OIDC_TOKEN=f.token;return}});var $y0=K((Gsl,Ey0)=>{var{defineProperty:ufu,getOwnPropertyDescriptor:fGf,getOwnPropertyNames:lGf}=Object,cGf=Object.prototype.hasOwnProperty,EGf=(i,u)=>{for(var t in u)ufu(i,t,{get:u[t],enumerable:!0})},$Gf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of lGf(u))if(!cGf.call(i,l)&&l!==t)ufu(i,l,{get:()=>u[l],enumerable:!(f=fGf(u,l))||f.enumerable})}return i},wGf=(i)=>$Gf(ufu({},"__esModule",{value:!0}),i),cy0={};EGf(cy0,{getVercelOidcToken:()=>_Gf,getVercelOidcTokenSync:()=>ifu});Ey0.exports=wGf(cy0);var dGf=Ctu(),hGf=Wa();async function _Gf(i){let u="",t;try{u=ifu()}catch(f){t=f}try{let[{getTokenPayload:f,isExpired:l},{refreshToken:c}]=await Promise.all([await Promise.resolve().then(() => S(za())),await Promise.resolve().then(() => S(ly0()))]);if(!u||l(f(u),i?.expirationBufferMs))await c(i),u=ifu()}catch(f){let l=t instanceof Error?t.message:"";if(f instanceof Error)l=`${l}
|
|
86639
86639
|
${f.message}`;if(l)throw new hGf.VercelOidcTokenError(l);throw f}return u}function ifu(){let i=(0,dGf.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!i)throw Error("The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?");return i}});var ffu=K((Ssl,_y0)=>{var{defineProperty:tfu,getOwnPropertyDescriptor:vGf,getOwnPropertyNames:DGf}=Object,nGf=Object.prototype.hasOwnProperty,gGf=(i,u)=>{for(var t in u)tfu(i,t,{get:u[t],enumerable:!0})},OGf=(i,u,t,f)=>{if(u&&typeof u==="object"||typeof u==="function"){for(let l of DGf(u))if(!nGf.call(i,l)&&l!==t)tfu(i,l,{get:()=>u[l],enumerable:!(f=vGf(u,l))||f.enumerable})}return i},NGf=(i)=>OGf(tfu({},"__esModule",{value:!0}),i),hy0={};gGf(hy0,{AccessTokenMissingError:()=>dy0.AccessTokenMissingError,RefreshAccessTokenFailedError:()=>dy0.RefreshAccessTokenFailedError,getContext:()=>yGf.getContext,getVercelOidcToken:()=>wy0.getVercelOidcToken,getVercelOidcTokenSync:()=>wy0.getVercelOidcTokenSync,getVercelToken:()=>ZGf.getVercelToken});_y0.exports=NGf(hy0);var wy0=$y0(),yGf=Ctu(),dy0=otu(),ZGf=za()});import{z as An}from"zod/v4";import{z as Uy0}from"zod/v4";import{z as cfu}from"zod/v4";import{z as Q1}from"zod/v4";import{z as Ic}from"zod/v4";import{z as Y1}from"zod/v4";import{z as q3i}from"zod/v4";import{z as Al}from"zod/v4";import{z as tl}from"zod/v4";import{z as uf}from"zod/v4";import{z as zl}from"zod/v4";import{z as v4}from"zod";import{z as $4}from"zod";async function Hy0({response:i,statusCode:u,defaultMessage:t="Gateway request failed",cause:f,authMethod:l}){var c;let E=await n1({value:i,schema:WGf});if(!E.success){let _=typeof i==="object"&&i!==null&&"generationId"in i?i.generationId:void 0;return new LGf({message:`Invalid error response format: ${t}`,statusCode:u,response:i,validationError:E.error,cause:f,generationId:_})}let $=E.value,w=$.error.type,d=$.error.message,h=(c=$.generationId)!=null?c:void 0;switch(w){case"authentication_error":return V3i.createContextualError({apiKeyProvided:l==="api-key",oidcTokenProvided:l==="oidc",statusCode:u,cause:f,generationId:h});case"invalid_request_error":return new UGf({message:d,statusCode:u,cause:f,generationId:h});case"rate_limit_exceeded":return new AGf({message:d,statusCode:u,cause:f,generationId:h});case"model_not_found":{let _=await n1({value:$.error.param,schema:xGf});return new kGf({message:d,statusCode:u,modelId:_.success?_.value.modelId:void 0,cause:f,generationId:h})}case"internal_server_error":return new Sy0({message:d,statusCode:u,cause:f,generationId:h});case"failed_dependency":return new jGf({message:d,statusCode:u,cause:f,generationId:h});case"forbidden":return new JGf({message:d,statusCode:u,cause:f,generationId:h});default:return new Sy0({message:d,statusCode:u,cause:f,generationId:h})}}function YGf(i){if(i.data!==void 0)return i.data;if(i.responseBody!=null)try{return JSON.parse(i.responseBody)}catch(u){return i.responseBody}return{}}function qy0(i){if(!(i instanceof Error))return!1;let u=i.code;if(typeof u==="string")return["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(u);return!1}async function hw(i,u){var t;if(z1.isInstance(i))return i;if(qy0(i))return My0.createTimeoutError({originalMessage:i instanceof Error?i.message:"Unknown error",cause:i});if(Dt.isInstance(i)){if(i.cause&&qy0(i.cause))return My0.createTimeoutError({originalMessage:i.message,cause:i});return await Hy0({response:YGf(i),statusCode:(t=i.statusCode)!=null?t:500,defaultMessage:"Gateway request failed",cause:i,authMethod:u})}return await Hy0({response:{},statusCode:500,defaultMessage:i instanceof Error?`Gateway request failed: ${i.message}`:"Unknown Gateway error",cause:i,authMethod:u})}async function f5(i){let u=await n1({value:i[fZ0],schema:zGf});return u.success?u.value:void 0}function ry0(i){if(i.type==="file"&&i.data instanceof Uint8Array)return{...i,data:iw(i.data)};return i}function fSf(i){if(i.type==="file"&&i.data instanceof Uint8Array)return{...i,data:iw(i.data)};return i}async function TSf(){var i;return(i=lZ0.getContext().headers)==null?void 0:i["x-vercel-id"]}function Efu(i={}){var u,t;let f=null,l=null,c=(u=i.metadataCacheRefreshMillis)!=null?u:300000,E=0,$=(t=b7(i.baseURL))!=null?t:"https://ai-gateway.vercel.sh/v3/ai",w=async()=>{try{let Z=await USf(i);return E4({Authorization:`Bearer ${Z.token}`,"ai-gateway-protocol-version":FSf,[fZ0]:Z.authMethod,...i.headers},`ai-sdk/gateway/${BSf}`)}catch(Z){throw V3i.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:Z})}},d=()=>{let Z=zv({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),T=zv({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),B=zv({settingValue:void 0,environmentVariableName:"VERCEL_REGION"}),F=zv({settingValue:void 0,environmentVariableName:"VERCEL_PROJECT_ID"});return async()=>{let A=await TSf();return{...Z&&{"ai-o11y-deployment-id":Z},...T&&{"ai-o11y-environment":T},...B&&{"ai-o11y-region":B},...A&&{"ai-o11y-request-id":A},...F&&{"ai-o11y-project-id":F}}}},h=(Z)=>{return new rGf(Z,{provider:"gateway",baseURL:$,headers:w,fetch:i.fetch,o11yHeaders:d()})},_=async()=>{var Z,T,B;let F=(B=(T=(Z=i._internal)==null?void 0:Z.currentDate)==null?void 0:T.call(Z).getTime())!=null?B:Date.now();if(!f||F-E>c)E=F,f=new Vy0({baseURL:$,headers:w,fetch:i.fetch}).getAvailableModels().then((A)=>{return l=A,A}).catch(async(A)=>{throw await hw(A,await f5(await w()))});return l?Promise.resolve(l):f},v=async()=>{return new Vy0({baseURL:$,headers:w,fetch:i.fetch}).getCredits().catch(async(Z)=>{throw await hw(Z,await f5(await w()))})},D=async(Z)=>{return new CGf({baseURL:$,headers:w,fetch:i.fetch}).getSpendReport(Z).catch(async(T)=>{throw await hw(T,await f5(await w()))})},n=async(Z)=>{return new qGf({baseURL:$,headers:w,fetch:i.fetch}).getGenerationInfo(Z).catch(async(T)=>{throw await hw(T,await f5(await w()))})},O=function(Z){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return h(Z)};O.specificationVersion="v3",O.getAvailableModels=_,O.getCredits=v,O.getSpendReport=D,O.getGenerationInfo=n,O.imageModel=(Z)=>{return new oGf(Z,{provider:"gateway",baseURL:$,headers:w,fetch:i.fetch,o11yHeaders:d()})},O.languageModel=h;let N=(Z)=>{return new mGf(Z,{provider:"gateway",baseURL:$,headers:w,fetch:i.fetch,o11yHeaders:d()})};O.embeddingModel=N,O.textEmbeddingModel=N,O.videoModel=(Z)=>{return new tSf(Z,{provider:"gateway",baseURL:$,headers:w,fetch:i.fetch,o11yHeaders:d()})};let y=(Z)=>{return new wSf(Z,{provider:"gateway",baseURL:$,headers:w,fetch:i.fetch,o11yHeaders:d()})};return O.rerankingModel=y,O.reranking=y,O.chat=O.languageModel,O.embedding=O.embeddingModel,O.image=O.imageModel,O.video=O.videoModel,O.tools=ZSf,O}async function USf(i){let u=zv({settingValue:i.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(u)return{token:u,authMethod:"api-key"};return{token:await cZ0.getVercelOidcToken(),authMethod:"oidc"}}var lZ0,cZ0,TGf="vercel.ai.gateway.error",lfu,vy0,Dy0,z1,my0="GatewayAuthenticationError",BGf,ny0,gy0,Oy0,V3i,ey0="GatewayInvalidRequestError",FGf,Ny0,yy0,Zy0,UGf,ay0="GatewayRateLimitError",PGf,Ty0,By0,Fy0,AGf,oy0="GatewayModelNotFoundError",IGf,Py0,xGf,Ay0,Iy0,kGf,sy0="GatewayInternalServerError",GGf,xy0,ky0,Gy0,Sy0,py0="GatewayFailedDependencyError",SGf,jy0,Ky0,Jy0,jGf,iZ0="GatewayForbiddenError",KGf,Xy0,Ly0,Wy0,JGf,uZ0="GatewayResponseError",XGf,Yy0,Qy0,zy0,LGf,WGf,tZ0="GatewayTimeoutError",QGf,Ry0,by0,Cy0,My0,fZ0="ai-gateway-auth-method",zGf,HGf,Vy0=class{constructor(i){this.config=i}async getAvailableModels(){try{let{value:i}=await $d({url:`${this.config.baseURL}/config`,headers:await R0(this.config.headers()),successfulResponseHandler:wt(RGf),failedResponseHandler:Yl({errorSchema:Q1.any(),errorToMessage:(u)=>u}),fetch:this.config.fetch});return i}catch(i){throw await hw(i)}}async getCredits(){try{let i=new URL(this.config.baseURL),{value:u}=await $d({url:`${i.origin}/v1/credits`,headers:await R0(this.config.headers()),successfulResponseHandler:wt(bGf),failedResponseHandler:Yl({errorSchema:Q1.any(),errorToMessage:(t)=>t}),fetch:this.config.fetch});return u}catch(i){throw await hw(i)}}},RGf,bGf,CGf=class{constructor(i){this.config=i}async getSpendReport(i){try{let u=new URL(this.config.baseURL),t=new URLSearchParams;if(t.set("start_date",i.startDate),t.set("end_date",i.endDate),i.groupBy)t.set("group_by",i.groupBy);if(i.datePart)t.set("date_part",i.datePart);if(i.userId)t.set("user_id",i.userId);if(i.model)t.set("model",i.model);if(i.provider)t.set("provider",i.provider);if(i.credentialType)t.set("credential_type",i.credentialType);if(i.tags&&i.tags.length>0)t.set("tags",i.tags.join(","));let{value:f}=await $d({url:`${u.origin}/v1/report?${t.toString()}`,headers:await R0(this.config.headers()),successfulResponseHandler:wt(MGf),failedResponseHandler:Yl({errorSchema:Ic.any(),errorToMessage:(l)=>l}),fetch:this.config.fetch});return f}catch(u){throw await hw(u)}}},MGf,qGf=class{constructor(i){this.config=i}async getGenerationInfo(i){try{let u=new URL(this.config.baseURL),{value:t}=await $d({url:`${u.origin}/v1/generation?id=${encodeURIComponent(i.id)}`,headers:await R0(this.config.headers()),successfulResponseHandler:wt(VGf),failedResponseHandler:Yl({errorSchema:Y1.any(),errorToMessage:(f)=>f}),fetch:this.config.fetch});return t}catch(u){throw await hw(u)}}},VGf,rGf=class{constructor(i,u){this.modelId=i,this.config=u,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(i){let{abortSignal:u,...t}=i;return{args:this.maybeEncodeFileParts(t),warnings:[]}}async doGenerate(i){let{args:u,warnings:t}=await this.getArgs(i),{abortSignal:f}=i,l=await R0(this.config.headers());try{let{responseHeaders:c,value:E,rawValue:$}=await Zt({url:this.getUrl(),headers:it(l,i.headers,this.getModelConfigHeaders(this.modelId,!1),await R0(this.config.o11yHeaders)),body:u,successfulResponseHandler:wt(q3i.any()),failedResponseHandler:Yl({errorSchema:q3i.any(),errorToMessage:(w)=>w}),...f&&{abortSignal:f},fetch:this.config.fetch});return{...E,request:{body:u},response:{headers:c,body:$},warnings:t}}catch(c){throw await hw(c,await f5(l))}}async doStream(i){let{args:u,warnings:t}=await this.getArgs(i),{abortSignal:f}=i,l=await R0(this.config.headers());try{let{value:c,responseHeaders:E}=await Zt({url:this.getUrl(),headers:it(l,i.headers,this.getModelConfigHeaders(this.modelId,!0),await R0(this.config.o11yHeaders)),body:u,successfulResponseHandler:gE(q3i.any()),failedResponseHandler:Yl({errorSchema:q3i.any(),errorToMessage:($)=>$}),...f&&{abortSignal:f},fetch:this.config.fetch});return{stream:c.pipeThrough(new TransformStream({start($){if(t.length>0)$.enqueue({type:"stream-start",warnings:t})},transform($,w){if($.success){let d=$.value;if(d.type==="raw"&&!i.includeRawChunks)return;if(d.type==="response-metadata"&&d.timestamp&&typeof d.timestamp==="string")d.timestamp=new Date(d.timestamp);w.enqueue(d)}else w.error($.error)}})),request:{body:u},response:{headers:E}}}catch(c){throw await hw(c,await f5(l))}}isFilePart(i){return i&&typeof i==="object"&&"type"in i&&i.type==="file"}maybeEncodeFileParts(i){for(let u of i.prompt)for(let t of u.content)if(this.isFilePart(t)){let f=t;if(f.data instanceof Uint8Array){let l=Uint8Array.from(f.data),c=Buffer.from(l).toString("base64");f.data=new URL(`data:${f.mediaType||"application/octet-stream"};base64,${c}`)}}return i}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(i,u){return{"ai-language-model-specification-version":"3","ai-language-model-id":i,"ai-language-model-streaming":String(u)}}},mGf=class{constructor(i,u){this.modelId=i,this.config=u,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:i,headers:u,abortSignal:t,providerOptions:f}){var l,c;let E=await R0(this.config.headers());try{let{responseHeaders:$,value:w,rawValue:d}=await Zt({url:this.getUrl(),headers:it(E,u!=null?u:{},this.getModelConfigHeaders(),await R0(this.config.o11yHeaders)),body:{values:i,...f?{providerOptions:f}:{}},successfulResponseHandler:wt(aGf),failedResponseHandler:Yl({errorSchema:Al.any(),errorToMessage:(h)=>h}),...t&&{abortSignal:t},fetch:this.config.fetch});return{embeddings:w.embeddings,usage:(l=w.usage)!=null?l:void 0,providerMetadata:w.providerMetadata,response:{headers:$,body:d},warnings:(c=w.warnings)!=null?c:[]}}catch($){throw await hw($,await f5(E))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},eGf,aGf,oGf=class{constructor(i,u){this.modelId=i,this.config=u,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:i,n:u,size:t,aspectRatio:f,seed:l,files:c,mask:E,providerOptions:$,headers:w,abortSignal:d}){var h,_,v,D;let n=await R0(this.config.headers());try{let{responseHeaders:O,value:N,rawValue:y}=await Zt({url:this.getUrl(),headers:it(n,w!=null?w:{},this.getModelConfigHeaders(),await R0(this.config.o11yHeaders)),body:{prompt:i,n:u,...t&&{size:t},...f&&{aspectRatio:f},...l&&{seed:l},...$&&{providerOptions:$},...c&&{files:c.map((Z)=>ry0(Z))},...E&&{mask:ry0(E)}},successfulResponseHandler:wt(uSf),failedResponseHandler:Yl({errorSchema:tl.any(),errorToMessage:(Z)=>Z}),...d&&{abortSignal:d},fetch:this.config.fetch});return{images:N.images,warnings:(h=N.warnings)!=null?h:[],providerMetadata:N.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:O},...N.usage!=null&&{usage:{inputTokens:(_=N.usage.inputTokens)!=null?_:void 0,outputTokens:(v=N.usage.outputTokens)!=null?v:void 0,totalTokens:(D=N.usage.totalTokens)!=null?D:void 0}}}}catch(O){throw await hw(O,await f5(n))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}},sGf,pGf,iSf,uSf,tSf=class{constructor(i,u){this.modelId=i,this.config=u,this.specificationVersion="v3",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:i,n:u,aspectRatio:t,resolution:f,duration:l,fps:c,seed:E,image:$,providerOptions:w,headers:d,abortSignal:h}){var _;let v=await R0(this.config.headers());try{let{responseHeaders:D,value:n}=await Zt({url:this.getUrl(),headers:it(v,d!=null?d:{},this.getModelConfigHeaders(),await R0(this.config.o11yHeaders),{accept:"text/event-stream"}),body:{prompt:i,n:u,...t&&{aspectRatio:t},...f&&{resolution:f},...l&&{duration:l},...c&&{fps:c},...E&&{seed:E},...w&&{providerOptions:w},...$&&{image:fSf($)}},successfulResponseHandler:async({response:O,url:N,requestBodyValues:y})=>{if(O.body==null)throw new Dt({message:"SSE response body is empty",url:N,requestBodyValues:y,statusCode:O.status});let T=hn({stream:O.body,schema:$Sf}).getReader(),{done:B,value:F}=await T.read();if(T.releaseLock(),B||!F)throw new Dt({message:"SSE stream ended without a data event",url:N,requestBodyValues:y,statusCode:O.status});if(!F.success)throw new Dt({message:"Failed to parse video SSE event",cause:F.error,url:N,requestBodyValues:y,statusCode:O.status});let A=F.value;if(A.type==="error")throw new Dt({message:A.message,statusCode:A.statusCode,url:N,requestBodyValues:y,responseHeaders:Object.fromEntries([...O.headers]),responseBody:JSON.stringify(A),data:{error:{message:A.message,type:A.errorType,param:A.param}}});return{value:{videos:A.videos,warnings:A.warnings,providerMetadata:A.providerMetadata},responseHeaders:Object.fromEntries([...O.headers])}},failedResponseHandler:Yl({errorSchema:uf.any(),errorToMessage:(O)=>O}),...h&&{abortSignal:h},fetch:this.config.fetch});return{videos:n.videos,warnings:(_=n.warnings)!=null?_:[],providerMetadata:n.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:D}}}catch(D){throw await hw(D,await f5(v))}}getUrl(){return`${this.config.baseURL}/video-model`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"3","ai-model-id":this.modelId}}},lSf,cSf,ESf,$Sf,wSf=class{constructor(i,u){this.modelId=i,this.config=u,this.specificationVersion="v3"}get provider(){return this.config.provider}async doRerank({documents:i,query:u,topN:t,headers:f,abortSignal:l,providerOptions:c}){var E;let $=await R0(this.config.headers());try{let{responseHeaders:w,value:d,rawValue:h}=await Zt({url:this.getUrl(),headers:it($,f!=null?f:{},this.getModelConfigHeaders(),await R0(this.config.o11yHeaders)),body:{documents:i,query:u,...t!=null?{topN:t}:{},...c?{providerOptions:c}:{}},successfulResponseHandler:wt(hSf),failedResponseHandler:Yl({errorSchema:zl.any(),errorToMessage:(_)=>_}),...l&&{abortSignal:l},fetch:this.config.fetch});return{ranking:d.ranking,providerMetadata:d.providerMetadata,response:{headers:w,body:h},warnings:(E=d.warnings)!=null?E:[]}}catch(w){throw await hw(w,await f5($))}}getUrl(){return`${this.config.baseURL}/reranking-model`}getModelConfigHeaders(){return{"ai-reranking-model-specification-version":"3","ai-model-id":this.modelId}}},dSf,hSf,_Sf,vSf,DSf,nSf=(i={})=>DSf(i),gSf,OSf,NSf,ySf=(i={})=>NSf(i),ZSf,BSf="3.0.133",FSf="0.0.1",r3i;var Ra=g(()=>{tu();eu();tu();tu();tu();tu();tu();tu();tu();tu();tu();eu();tu();tu();tu();tu();lZ0=S(ffu(),1),cZ0=S(ffu(),1),lfu=Symbol.for(TGf),z1=class i extends(Dy0=Error,vy0=lfu,Dy0){constructor({message:u,statusCode:t=500,cause:f,generationId:l,isRetryable:c=t!=null&&(t===408||t===409||t===429||t>=500)}){super(l?`${u} [${l}]`:u);this[vy0]=!0,this.statusCode=t,this.cause=f,this.generationId=l,this.isRetryable=c}static isInstance(u){return i.hasMarker(u)}static hasMarker(u){return typeof u==="object"&&u!==null&&lfu in u&&u[lfu]===!0}},BGf=`vercel.ai.gateway.error.${my0}`,ny0=Symbol.for(BGf),V3i=class i extends(Oy0=z1,gy0=ny0,Oy0){constructor({message:u="Authentication failed",statusCode:t=401,cause:f,generationId:l}={}){super({message:u,statusCode:t,cause:f,generationId:l});this[gy0]=!0,this.name=my0,this.type="authentication_error"}static isInstance(u){return z1.hasMarker(u)&&ny0 in u}static createContextualError({apiKeyProvided:u,oidcTokenProvided:t,message:f="Authentication failed",statusCode:l=401,cause:c,generationId:E}){let $;if(u)$=`AI Gateway authentication failed: Invalid API key.
|
|
86640
86640
|
|
|
86641
86641
|
Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
|